aboutsummaryrefslogtreecommitdiffstats
path: root/python
diff options
context:
space:
mode:
authorBryan Newbold <bnewbold@robocracy.org>2018-06-20 17:54:54 -0700
committerBryan Newbold <bnewbold@robocracy.org>2018-06-20 17:54:54 -0700
commit43e74c2e81c64d6d4f4e644cc5a6f75945ff660d (patch)
tree769cae1607f3b8b9fff43fce99028bda571c2145 /python
parent381fe70c56b1a936d4eef676ee8ba546f6a3cf30 (diff)
downloadfatcat-43e74c2e81c64d6d4f4e644cc5a6f75945ff660d.tar.gz
fatcat-43e74c2e81c64d6d4f4e644cc5a6f75945ff660d.zip
more progress on crossref+orcid importers
Diffstat (limited to 'python')
-rwxr-xr-xpython/client.py28
-rw-r--r--python/fatcat/crossref_importer.py85
-rw-r--r--python/fatcat/importer_common.py44
-rw-r--r--python/tests/crossref.py8
-rw-r--r--python/tests/files/ISSN-to-ISSN-L.snip.txt10
-rw-r--r--python/tests/files/crossref-works.2018-01-21.badsample.json3
6 files changed, 126 insertions, 52 deletions
diff --git a/python/client.py b/python/client.py
index 9631318a..9a2ed50d 100755
--- a/python/client.py
+++ b/python/client.py
@@ -7,13 +7,19 @@ from fatcat.orcid_importer import FatcatOrcidImporter
def run_import_crossref(args):
fcc = FatcatCrossrefClient(args.host_url)
- fcc.import_crossref_file(args.json_file)
- # create_containers=args.create_containers
+ fcc.import_crossref_file(
+ args.json_file,
+ issn_map_file=args.issn_map_file,
+ create_containers=(not args.no_create_containers))
def run_import_orcid(args):
foi = FatcatOrcidImporter(args.host_url)
foi.process_batch(args.json_file, size=args.batch_size)
+def run_import_manifest(args):
+ fmi = FatcatManifestImporter(args.host_url)
+ fmi.process_db(args.db_path, size=args.batch_size)
+
def health(args):
rfac = RawFatcatApiClient(args.host_url)
print(rfac.health())
@@ -32,10 +38,11 @@ def main():
sub_import_crossref.set_defaults(func=run_import_crossref)
sub_import_crossref.add_argument('json_file',
help="crossref JSON file to import from")
- # TODO:
- #sub_import_crossref.add_argument('--create-containers',
- # action='store_true',
- # help="if true, create containers based on ISSN")
+ sub_import_crossref.add_argument('issn_map_file',
+ help="ISSN to ISSN-L mapping file")
+ sub_import_crossref.add_argument('--no-create-containers',
+ action='store_true',
+ help="skip creation of new container entities based on ISSN")
sub_import_orcid = subparsers.add_parser('import-orcid')
sub_import_orcid.set_defaults(func=run_import_orcid)
@@ -46,6 +53,15 @@ def main():
help="size of batch to send",
default=50, type=int)
+ sub_import_manifest = subparsers.add_parser('import-orcid')
+ sub_import_manifest.set_defaults(func=run_import_orcid)
+ sub_import_manifest.add_argument('db_path',
+ help="sqlite3 database to import from",
+ type=argparse.FileType('r'))
+ sub_import_orcid.add_argument('--batch-size',
+ help="size of batch to send",
+ default=50, type=int)
+
sub_health = subparsers.add_parser('health')
sub_health.set_defaults(func=health)
diff --git a/python/fatcat/crossref_importer.py b/python/fatcat/crossref_importer.py
index 4c68230d..a7166bc3 100644
--- a/python/fatcat/crossref_importer.py
+++ b/python/fatcat/crossref_importer.py
@@ -8,7 +8,9 @@ from fatcat.importer_common import FatcatImporter
class FatcatCrossrefImporter(FatcatImporter):
- # TODO: overload __init__ to handle create_containers
+ def __init__(self, host_url, issn_map_file, create_containers=True):
+ super().__init__(host_url, issn_map_file)
+ self.create_containers = create_containers
def parse_crossref_dict(self, obj):
"""
@@ -19,50 +21,49 @@ class FatcatCrossrefImporter(FatcatImporter):
# contribs
contribs = []
for i, am in enumerate(obj['author']):
+ creator_id = None
+ if 'ORCID' in am.keys():
+ creator_id = self.lookup_orcid(am['ORCID'].split('/')[-1])
contribs.append(fatcat_client.ReleaseContrib(
- creator_id=None, # TODO: orcid lookup
- index=i,
+ creator_id=creator_id,
+ index=i+1,
# Sorry humans :(
raw="{} {}".format(am['given'], am['family']),
role="author"))
# container
- # TODO: ISSN vs. ISSN-L
issn = obj.get('ISSN', [None])[0]
- container_id = self.lookup_issnl(issn)
+ issnl = self.issn2issnl(issn)
+ container_id = None
+ if issnl:
+ container_id = self.lookup_issnl(issnl)
+ publisher = obj['publisher']
- ## TODO: create containers in-line like this?
- #container = dict(
- # issn=issn,
- # name=obj['container-title'][0],
- # container=container_id,
- # #sortname=obj['short-container-title'][0])
- # publisher=obj['publisher'])
- #if container_id is None and self.create_containers and issn != None:
- # rv = self.post('/v0/container', data=dict(
- # issn=container['issn'],
- # publisher=container['publisher']))
- # assert rv.status_code == 201
- # container_id = rv.json()['id']
- # print("created container: {}".format(issn))
- # container['id'] = container_id
- # self._issn_map[issn] = container_id
+ ce = None
+ if container_id is None and self.create_containers and issnl != None:
+ ce = fatcat_client.ContainerEntity(
+ issnl=issnl,
+ publisher=publisher,
+ name=obj['container-title'][0])
+ print("created container: {}".format(issnl))
# references
refs = []
for i, rm in enumerate(obj.get('reference', [])):
+ try:
+ year = int(rm.get('year'))
+ except:
+ year = None
refs.append(fatcat_client.ReleaseRef(
- index=i,
+ index=i+1,
target_release_id=None, # TODO: DOI lookup: rm.get("DOI", None),
- # TODO: all these
- key=None,
- year=None,
- container_title=None,
- title=None,
- locator=None,
- # TODO: how to generate a proper stub here from k/v objdata?
- # TODO: just dump JSON here if we didn't get a match?
- raw="| ".join(rm.values())))
+ # unreliable for crossref: key=rm['key'].split('|')[-1],
+ year=year,
+ container_title=rm.get('volume-title'),
+ title=rm.get('title'),
+ locator=rm.get('first-page'),
+ # TODO: just dump JSON somewhere here?
+ raw=rm.get('unstructured')))
# work
we = fatcat_client.WorkEntity(
@@ -73,34 +74,38 @@ class FatcatCrossrefImporter(FatcatImporter):
extra = dict(crossref={
'links': obj.get('link', []),
'subject': obj.get('subject'),
- 'crossref-type': obj['type'],
+ 'type': obj['type'],
+ 'license': obj.get('license', [dict(URL=None)])[0]['URL'] or None,
'alternative-id': obj.get('alternative-id', [])})
re = fatcat_client.ReleaseEntity(
- work_id='null', # XXX:
+ work_id='tbd', # gets set later, I promise!
title=obj['title'][0],
contribs=contribs,
refs=refs,
container_id=container_id,
release_type=obj['type'],
- doi=obj['DOI'],
+ doi=obj['DOI'].lower(),
release_date=obj['created']['date-time'],
- #license=obj.get('license', [dict(URL=None)])[0]['URL'] or None,
issue=obj.get('issue'),
volume=obj.get('volume'),
pages=obj.get('page'),
extra=extra)
- return (we, re)
+ return (we, re, ce)
def create_row(self, row, editgroup_id=None):
if row is None:
- continue
+ return
obj = json.loads(row)
- both = self.parse_crossref_dict(obj)
- if both is not None:
- (we, re) = both
+ entities = self.parse_crossref_dict(obj)
+ if entities is not None:
+ (we, re, ce) = entities
we.editgroup_id = editgroup_id
re.editgroup_id = editgroup_id
+ if ce is not None:
+ ce.editgroup_id = editgroup_id
+ container = self.api.create_container(ce)
+ re.container_id = container.ident
created = self.api.create_work(we)
re.work_id = created.ident
self.api.create_release(re)
diff --git a/python/fatcat/importer_common.py b/python/fatcat/importer_common.py
index 98bfb26e..c24565b4 100644
--- a/python/fatcat/importer_common.py
+++ b/python/fatcat/importer_common.py
@@ -13,11 +13,15 @@ def grouper(iterable, n, fillvalue=None):
class FatcatImporter:
- def __init__(self, host_url):
+ def __init__(self, host_url, issn_map_file=None):
conf = fatcat_client.Configuration()
conf.host = host_url
self.api = fatcat_client.DefaultApi(fatcat_client.ApiClient(conf))
- self._issnl_map = dict()
+ self._issnl_id_map = dict()
+ self._orcid_id_map = dict()
+ self._issn_issnl_map = None
+ if issn_map_file:
+ self.read_issn_map_file(issn_map_file)
def process_source(self, source, group_size=100):
"""Creates and auto-accepts editgropu every group_size rows"""
@@ -40,8 +44,8 @@ class FatcatImporter:
def lookup_issnl(self, issnl):
"""Caches calls to the ISSN-L lookup API endpoint in a local dict"""
assert len(issnl) == 9 and issnl[4] == '-'
- if issnl in self._issnl_map:
- return self._issnl_map[issn]
+ if issnl in self._issnl_id_map:
+ return self._issnl_id_map[issn]
container_id = None
try:
rv = self.api.lookup_container(issnl=issnl)
@@ -49,5 +53,35 @@ class FatcatImporter:
except ApiException as ae:
# If anything other than a 404 (not found), something is wrong
assert ae.status == 404
- self._issnl_map[issnl] = container_id # might be None
+ self._issnl_id_map[issnl] = container_id # might be None
return container_id
+
+ def lookup_orcid(self, orcid):
+ """Caches calls to the Orcid lookup API endpoint in a local dict"""
+ assert len(orcid) == 19 and orcid[4] == '-'
+ if orcid in self._orcid_id_map:
+ return self._orcid_id_map[orcid]
+ creator_id = None
+ try:
+ rv = self.api.lookup_creator(orcid=orcid)
+ creator_id = rv.ident
+ except ApiException as ae:
+ # If anything other than a 404 (not found), something is wrong
+ assert ae.status == 404
+ self._orcid_id_map[orcid] = creator_id # might be None
+ return creator_id
+
+ def read_issn_map_file(self, issn_map_file):
+ self._issn_issnl_map = dict()
+ for line in issn_map_file:
+ if line.startswith("ISSN") or len(line) == 0:
+ continue
+ (issn, issnl) = line.split()[0:2]
+ self._issn_issnl_map[issn] = issnl
+ # double mapping makes lookups easy
+ self._issn_issnl_map[issnl] = issnl
+
+ def issn2issnl(self, issn):
+ if issn is None:
+ return None
+ self._issn_issnl_map.get(issn)
diff --git a/python/tests/crossref.py b/python/tests/crossref.py
index e72f7d02..402195d7 100644
--- a/python/tests/crossref.py
+++ b/python/tests/crossref.py
@@ -5,7 +5,8 @@ from fatcat.crossref_importer import FatcatCrossrefImporter
@pytest.fixture(scope="function")
def crossref_importer():
- yield FatcatCrossrefImporter("http://localhost:9411/v0")
+ with open('tests/files/ISSN-to-ISSN-L.snip.txt', 'r') as issn_file:
+ yield FatcatCrossrefImporter("http://localhost:9411/v0", issn_file)
def test_crossref_importer_batch(crossref_importer):
with open('tests/files/crossref-works.2018-01-21.badsample.json', 'r') as f:
@@ -14,3 +15,8 @@ def test_crossref_importer_batch(crossref_importer):
def test_crossref_importer(crossref_importer):
with open('tests/files/crossref-works.2018-01-21.badsample.json', 'r') as f:
crossref_importer.process_source(f)
+
+def test_crossref_importer_create(crossref_importer):
+ crossref_importer.create_containers = True
+ with open('tests/files/crossref-works.2018-01-21.badsample.json', 'r') as f:
+ crossref_importer.process_source(f)
diff --git a/python/tests/files/ISSN-to-ISSN-L.snip.txt b/python/tests/files/ISSN-to-ISSN-L.snip.txt
new file mode 100644
index 00000000..965a49d6
--- /dev/null
+++ b/python/tests/files/ISSN-to-ISSN-L.snip.txt
@@ -0,0 +1,10 @@
+ISSN ISSN-L
+0000-0019 0000-0019
+0000-0027 0000-0027
+0000-0043 0000-0043
+0000-0051 0000-0051
+0000-006X 0000-006X
+0000-0078 0000-0078
+0000-0094 0000-0094
+0000-0108 0000-0108
+0000-0140 0000-0140
diff --git a/python/tests/files/crossref-works.2018-01-21.badsample.json b/python/tests/files/crossref-works.2018-01-21.badsample.json
index 143adf3e..84271489 100644
--- a/python/tests/files/crossref-works.2018-01-21.badsample.json
+++ b/python/tests/files/crossref-works.2018-01-21.badsample.json
@@ -8,3 +8,6 @@
{ "_id" : { "$oid" : "5a55165c88a035a45bd7e535" }, "indexed" : { "date-parts" : [ [ 2017, 10, 23 ] ], "date-time" : "2017-10-23T14:27:04Z", "timestamp" : { "$numberLong" : "1508768824539" } }, "reference-count" : 6, "publisher" : "Wiley-Blackwell", "issue" : "24", "license" : [ { "URL" : "http://doi.wiley.com/10.1002/tdm_license_1.1", "start" : { "date-parts" : [ [ 2015, 9, 1 ] ], "date-time" : "2015-09-01T00:00:00Z", "timestamp" : { "$numberLong" : "1441065600000" } }, "delay-in-days" : 5722, "content-version" : "tdm" } ], "content-domain" : { "domain" : [], "crossmark-restriction" : false }, "short-container-title" : [ "Rapid Commun. Mass Spectrom." ], "published-print" : { "date-parts" : [ [ 2000, 12, 30 ] ] }, "DOI" : "10.1002/1097-0231(20001230)14:24<2357::aid-rcm168>3.0.co;2-2", "type" : "journal-article", "created" : { "date-parts" : [ [ 2002, 9, 11 ] ], "date-time" : "2002-09-11T00:24:57Z", "timestamp" : { "$numberLong" : "1031703897000" } }, "page" : "2357-2361", "source" : "Crossref", "is-referenced-by-count" : 2, "title" : [ "Electron impact fragmentation mechanisms of some cyclic esters with helical structures" ], "prefix" : "10.1002", "volume" : "14", "author" : [ { "given" : "Jiangtao", "family" : "He", "affiliation" : [] }, { "given" : "Aihua", "family" : "Nie", "affiliation" : [] }, { "given" : "Meiyu", "family" : "He", "affiliation" : [] }, { "given" : "Xiaoran", "family" : "He", "affiliation" : [] }, { "given" : "Zhenpei", "family" : "Yu", "affiliation" : [] }, { "given" : "Xiulin", "family" : "Ye", "affiliation" : [] }, { "given" : "Qiyi", "family" : "Xing", "affiliation" : [] } ], "member" : "311", "published-online" : { "date-parts" : [ [ 2000 ] ] }, "reference" : [ { "key" : "10.1002/1097-0231(20001230)14:24<2357::AID-RCM168>3.0.CO;2-2-BIB1", "author" : "Nie", "volume" : "8", "first-page" : "141", "year" : "1997", "journal-title" : "Chinese Chem. Lett." }, { "key" : "10.1002/1097-0231(20001230)14:24<2357::AID-RCM168>3.0.CO;2-2-BIB2", "author" : "Chenevert", "first-page" : "782", "year" : "1982", "journal-title" : "Synthesis", "DOI" : "10.1055/s-1982-29945", "doi-asserted-by" : "crossref" }, { "key" : "10.1002/1097-0231(20001230)14:24<2357::AID-RCM168>3.0.CO;2-2-BIB3", "author" : "Porter", "first-page" : "296", "year" : "1985", "unstructured" : "Mass Spectrometry of Heterocyclic Compounds (2nd edn). John Wiley & Sons: New York, 1985; 296.", "volume-title" : "Mass Spectrometry of Heterocyclic Compounds" }, { "key" : "10.1002/1097-0231(20001230)14:24<2357::AID-RCM168>3.0.CO;2-2-BIB4", "author" : "Ková??ik", "volume" : "34", "first-page" : "1322", "year" : "1999", "journal-title" : "J. Mass Spectrom.", "DOI" : "10.1002/(SICI)1096-9888(199912)34:12<1322::AID-JMS888>3.0.CO;2-#", "doi-asserted-by" : "crossref" }, { "key" : "10.1002/1097-0231(20001230)14:24<2357::AID-RCM168>3.0.CO;2-2-BIB5", "author" : "Mclafferty", "year" : "1993", "unstructured" : "Interpretation of Mass Spectra (4th edn). University Science Books: Sansalito, CA, 1993.", "volume-title" : "Interpretation of Mass Spectra" }, { "key" : "10.1002/1097-0231(20001230)14:24<2357::AID-RCM168>3.0.CO;2-2-BIB6", "author" : "Williams", "year" : "1996", "unstructured" : "Spectroscopic Methods in Organic Chemistry (5th edn). McGraw-Hill: London, 1996.", "volume-title" : "Spectroscopic Methods in Organic Chemistry" } ], "container-title" : [ "Rapid Communications in Mass Spectrometry" ], "link" : [ { "URL" : "https://api.wiley.com/onlinelibrary/tdm/v1/articles/10.1002%2F1097-0231(20001230)14:24%3C2357::AID-RCM168%3E3.0.CO;2-2", "content-type" : "unspecified", "content-version" : "vor", "intended-application" : "text-mining" } ], "deposited" : { "date-parts" : [ [ 2017, 7, 31 ] ], "date-time" : "2017-07-31T21:16:20Z", "timestamp" : { "$numberLong" : "1501535780000" } }, "score" : 1, "issued" : { "date-parts" : [ [ 2000 ] ] }, "references-count" : 6, "URL" : "http://dx.doi.org/10.1002/1097-0231(20001230)14:24<2357::aid-rcm168>3.0.co;2-2", "relation" : { "cites" : [] }, "ISSN" : [ "0951-4198", "1097-0231" ], "issn-type" : [ { "value" : "0951-4198", "type" : "print" }, { "value" : "1097-0231", "type" : "electronic" } ], "subject" : [ "Organic Chemistry", "Analytical Chemistry", "Spectroscopy" ] }
{ "_id" : { "$oid" : "5a55196988a035a45bda0cb1" }, "indexed" : { "date-parts" : [ [ 2017, 10, 23 ] ], "date-time" : "2017-10-23T14:41:48Z", "timestamp" : { "$numberLong" : "1508769708308" } }, "reference-count" : 44, "publisher" : "Elsevier BV", "issue" : "1", "license" : [ { "URL" : "http://www.elsevier.com/tdm/userlicense/1.0/", "start" : { "date-parts" : [ [ 1998, 11, 1 ] ], "date-time" : "1998-11-01T00:00:00Z", "timestamp" : { "$numberLong" : "909878400000" } }, "delay-in-days" : 0, "content-version" : "tdm" } ], "content-domain" : { "domain" : [], "crossmark-restriction" : false }, "short-container-title" : [ "Toxicology and Applied Pharmacology" ], "published-print" : { "date-parts" : [ [ 1998, 11 ] ] }, "DOI" : "10.1006/taap.1998.8543", "type" : "journal-article", "created" : { "date-parts" : [ [ 2002, 9, 18 ] ], "date-time" : "2002-09-18T22:01:25Z", "timestamp" : { "$numberLong" : "1032386485000" } }, "page" : "102-108", "source" : "Crossref", "is-referenced-by-count" : 44, "title" : [ "Role of CYP1A2 in the Hepatotoxicity of Acetaminophen: Investigations UsingCyp1a2Null Mice" ], "prefix" : "10.1006", "volume" : "153", "author" : [ { "given" : "Robert P.", "family" : "Tonge", "affiliation" : [] }, { "given" : "Edward J.", "family" : "Kelly", "affiliation" : [] }, { "given" : "Sam A.", "family" : "Bruschi", "affiliation" : [] }, { "given" : "Tom", "family" : "Kalhorn", "affiliation" : [] }, { "given" : "David L.", "family" : "Eaton", "affiliation" : [] }, { "given" : "Daniel W.", "family" : "Nebert", "affiliation" : [] }, { "given" : "Sidney D.", "family" : "Nelson", "affiliation" : [] } ], "member" : "78", "container-title" : [ "Toxicology and Applied Pharmacology" ], "link" : [ { "URL" : "http://api.elsevier.com/content/article/PII:S0041008X9898543X?httpAccept=text/xml", "content-type" : "text/xml", "content-version" : "vor", "intended-application" : "text-mining" }, { "URL" : "http://api.elsevier.com/content/article/PII:S0041008X9898543X?httpAccept=text/plain", "content-type" : "text/plain", "content-version" : "vor", "intended-application" : "text-mining" } ], "deposited" : { "date-parts" : [ [ 2017, 6, 14 ] ], "date-time" : "2017-06-14T16:51:33Z", "timestamp" : { "$numberLong" : "1497459093000" } }, "score" : 1, "issued" : { "date-parts" : [ [ 1998, 11 ] ] }, "references-count" : 44, "alternative-id" : [ "S0041008X9898543X" ], "URL" : "http://dx.doi.org/10.1006/taap.1998.8543", "ISSN" : [ "0041-008X" ], "issn-type" : [ { "value" : "0041-008X", "type" : "print" } ], "subject" : [ "Toxicology", "Pharmacology" ] }
{ "_id" : { "$oid" : "5a55170088a035a45bd8490d" }, "indexed" : { "date-parts" : [ [ 2017, 10, 23 ] ], "date-time" : "2017-10-23T14:30:12Z", "timestamp" : { "$numberLong" : "1508769012416" } }, "reference-count" : 37, "publisher" : "Wiley-Blackwell", "issue" : "2", "license" : [ { "URL" : "http://doi.wiley.com/10.1002/tdm_license_1.1", "start" : { "date-parts" : [ [ 2015, 9, 1 ] ], "date-time" : "2015-09-01T00:00:00Z", "timestamp" : { "$numberLong" : "1441065600000" } }, "delay-in-days" : 5356, "content-version" : "tdm" } ], "content-domain" : { "domain" : [], "crossmark-restriction" : false }, "short-container-title" : [ "Am. J. Ind. Med." ], "published-print" : { "date-parts" : [ [ 2001, 2 ] ] }, "DOI" : "10.1002/1097-0274(200102)39:2<218::aid-ajim1009>3.0.co;2-4", "type" : "journal-article", "created" : { "date-parts" : [ [ 2002, 8, 25 ] ], "date-time" : "2002-08-25T20:41:50Z", "timestamp" : { "$numberLong" : "1030308110000" } }, "page" : "218-226", "source" : "Crossref", "is-referenced-by-count" : 10, "title" : [ "The work environment impact assessment: A methodologic framework for evaluating health-based interventions" ], "prefix" : "10.1002", "volume" : "39", "author" : [ { "given" : "Beth J.", "family" : "Rosenberg", "affiliation" : [] }, { "given" : "Elizabeth M.", "family" : "Barbeau", "affiliation" : [] }, { "given" : "Rafael", "family" : "Moure-Eraso", "affiliation" : [] }, { "given" : "Charles", "family" : "Levenstein", "affiliation" : [] } ], "member" : "311", "published-online" : { "date-parts" : [ [ 2001 ] ] }, "reference" : [ { "key" : "BIB1", "author" : "Barbeau", "year" : "1998", "unstructured" : "1998. Displaced tobacco workers, public health, and tobacco policy: moving beyond jobs versus health. Doctoral thesis, Department of Work Environment, University of Massachusetts, Lowell." }, { "key" : "BIB2", "author" : "Berberian", "volume" : "37", "first-page" : "126", "year" : "1987", "journal-title" : "J Occup Environ Med" }, { "key" : "BIB3", "author" : "Bignami", "volume" : "80", "first-page" : "265", "year" : "1981", "journal-title" : "Mutat Res", "DOI" : "10.1016/0027-5107(81)90099-3", "doi-asserted-by" : "crossref" }, { "key" : "BIB4", "author" : "Britton", "year" : "1989", "unstructured" : "1989. The post-Alar era dawns chilly for apple growers. Boston Globe. Oct. 25, p. 34." }, { "key" : "BIB5", "author" : "Brusick", "year" : "1976", "unstructured" : "1976. Mutagen and oncogen Study on 1,1-dimethylhydrazine. Prepared for the Aerospace Med. Res. Lab., Aeropsace Med. Div. Airforce Systems Command, Wright- Patterson A.F.B., Dayton OH Litton Bionetics, Inc., Kensington, MD. NTIS AD-A035475." }, { "key" : "BIB6", "author" : "Chemical Marketing Reporter", "year" : "1984", "unstructured" : "Chemical Marketing Reporter. 1984. Uniroyal pesticide to be reviewed by EPA: regulatory action prompted by its toxicity. July 23." }, { "key" : "BIB7", "author" : "Chemical Marketing Reporter", "year" : "1989", "unstructured" : "Chemical Marketing Reporter. 1989. Uniroyal pulls apple pesticide from market, citing controversy. June 5." }, { "key" : "BIB8", "year" : "1990", "unstructured" : "Du Pont Chemical Company. 1990. MSDS No. M0000057, p. 2." }, { "key" : "BIB9", "year" : "1993", "unstructured" : "Farm Chemicals Handbook '93. 1993. Willoughby, OH: Meister.", "volume-title" : "Farm Chemicals Handbook '93" }, { "key" : "BIB10", "year" : "1985", "unstructured" : "Farm Chemicals Handbook '85. 1985. Willoughby, OH: Meister.", "volume-title" : "Farm Chemicals Handbook '85" }, { "key" : "BIB11", "author" : "Federal Register", "year" : "1989", "unstructured" : "Federal Register. 1989. Daminozide: termination of special review of food uses. Vol. 54, No. 216, p. 47482, November 14." }, { "key" : "BIB12", "author" : "Fenske", "first-page" : "729", "year" : "2000", "unstructured" : "2000. Agricultural workers. In: editors. Occupational health: recognizing and preventing work-related disease and injury. 4th ed. Philadelphia: Lippincott Williams and Wilkins, p. 729-748.", "volume-title" : "Occupational health: recognizing and preventing work-related disease and injury" }, { "key" : "BIB13", "author" : "Gibson", "volume" : "5", "first-page" : "24", "year" : "1994", "journal-title" : "New Solutions", "DOI" : "10.2190/NS5.1.g", "doi-asserted-by" : "crossref" }, { "key" : "BIB14", "author" : "Goldenhar", "volume" : "29", "first-page" : "289", "year" : "1996", "journal-title" : "Am J Ind Med", "DOI" : "10.1002/(SICI)1097-0274(199604)29:4<289::AID-AJIM2>3.0.CO;2-K", "doi-asserted-by" : "crossref" }, { "key" : "BIB15", "author" : "Haun", "year" : "1984", "unstructured" : "1984. Inhalation studies of UDMH. Air Force Aerospace Medical Res Lab, TR-85-020." }, { "key" : "BIB16", "author" : "International Agency for Research on Cancer (IARC)", "year" : "1997", "unstructured" : "International Agency for Research on Cancer (IARC). 1997. Evaluation of carcinogen risks to humans: man-made mineral fibres and radon. Lyons, France." }, { "key" : "BIB17", "author" : "Lord", "year" : "1969", "unstructured" : "1969 (May-June). Thoughts on the apple harvest problem. Fruit Notes. U. S. Department of Agriculture, Massachusetts Extension Service." }, { "key" : "BIB18", "author" : "Manning", "first-page" : "34", "year" : "1989", "unstructured" : "Sales Agent for J. P. Sullivan and Co., of Ayer, MA, an apple commission house. In 1989. The post-Alar era dawns chilly for apple growers. Boston Globe Oct. 25 p. 34.", "volume-title" : "The post-Alar era dawns chilly for apple growers" }, { "key" : "BIB19", "author" : "National Cancer Institute", "year" : "1978", "unstructured" : "National Cancer Institute. 1978. Bioassay of daminozide for possible carcinogenicity. Washington, D.C., United State Department of Health, Education and Welfare, Public Health Service (NIC Carcinogenesis Technical Report Series No. 83; DHEW Publication No (NIH 78-1333)." }, { "key" : "BIB20", "author" : "Rogers", "volume" : "89", "first-page" : "321", "year" : "1981", "journal-title" : "Mutat Res", "DOI" : "10.1016/0165-1218(81)90113-0", "doi-asserted-by" : "crossref" }, { "key" : "BIB21", "author" : "Rosenberg", "year" : "1995", "unstructured" : "1995. The best laid bans: the impact of pesticide bans on workers. Doctoral thesis, Department of Work Environment, University of Massachusetts Lowell." }, { "key" : "BIB22", "author" : "Rosenberg", "volume" : "6", "first-page" : "34", "year" : "1996", "journal-title" : "New Solutions: A Journal of Environmental and Occupational Health Policy", "DOI" : "10.2190/NS6.2.d", "doi-asserted-by" : "crossref" }, { "key" : "BIB23", "author" : "Rosenberg", "volume" : "8", "first-page" : "365", "year" : "1998", "journal-title" : "New Solutions Environmental Health Policy", "DOI" : "10.2190/A2A1-CT1X-RY6D-RR3M", "doi-asserted-by" : "crossref" }, { "key" : "BIB24", "author" : "Saunders", "volume" : "29", "first-page" : "409", "year" : "1987", "journal-title" : "J Occup Environ Med" }, { "key" : "BIB25", "author" : "Toth", "volume" : "50", "first-page" : "181", "year" : "1973", "journal-title" : "J Natl Cancer Inst", "DOI" : "10.1093/jnci/50.1.181", "doi-asserted-by" : "crossref" }, { "key" : "BIB26", "author" : "Toth", "volume" : "40", "first-page" : "2427", "year" : "1977a", "journal-title" : "Cancer", "DOI" : "10.1002/1097-0142(197711)40:5+<2427::AID-CNCR2820400906>3.0.CO;2-Y", "doi-asserted-by" : "crossref" }, { "key" : "BIB27", "author" : "Toth", "volume" : "37", "first-page" : "3497", "year" : "1977b", "journal-title" : "Cancer Res" }, { "key" : "BIB28", "author" : "U.S. Environmental Protection Agency", "year" : "1986", "unstructured" : "U.S. Environmental Protection Agency. 1986. Integrated Risk Information System (IRIS). Oxamyl. December 9." }, { "key" : "BIB29", "author" : "U.S. Environmental Protection Agency", "year" : "1986", "unstructured" : "U.S. Environmental Protection Agency. 1986. Chemical Fact Sheet Number 26: Daminozide. Office of Pesticides and Toxic Substances, Washington, DC. 10-169." }, { "key" : "BIB30", "author" : "U.S. Environmental Protection Agency", "year" : "1989", "unstructured" : "U.S. Environmental Protection Agency, Office of Pesticide Programs, Office of Pesticides and Toxic Substances. 1989. Daminozide special review technical support document: Preliminary determination to cancel the food uses of Daminozide. Washington, DC: May." }, { "key" : "BIB31", "author" : "U.S. Environmental Protection Agency", "volume" : "54", "first-page" : "10", "year" : "1989", "journal-title" : "Fed Regist." }, { "key" : "BIB32", "author" : "U.S. Environmental Protection Agency", "year" : "1990", "unstructured" : "U.S. Environmental Protection Agency. 1990. Integrated Risk Information System (IRIS). Propargite. May 1." }, { "key" : "BIB33", "author" : "U.S. Environmental Protection Agency", "volume" : "57", "first-page" : "10", "year" : "1992", "journal-title" : "Fed. Regist." }, { "key" : "BIB34", "author" : "U.S. Environmental Protection Agency", "year" : "1993", "unstructured" : "U.S. Environmental Protection Agency, Office of Prevention, Pesticides and Toxic Substances. 1993. R.E.D. Facts, Document number EPA-738-F-93-007. September." }, { "key" : "BIB35", "author" : "U.S. Department of Agriculture", "year" : "1993", "journal-title" : "New England Agricultural Statistics" }, { "key" : "BIB36", "author" : "Warren", "year" : "1992", "unstructured" : "1992. Unanticipated consequences of banning a chemical: the case of Alar. Unpublished manuscript, Department of Work Environment, University of Massachusetts Lowell." }, { "key" : "BIB37", "author" : "Wood", "year" : "1990", "unstructured" : "1990. Memo to Poverty Lane, West Lebanon, New Hampshire, to members of the Risk Assessment/Risk Management Work Group, Keystone National Policy Dialogue on Food Safety, Oct. 26, 1990, cited in Rosenberg, B. 1996." } ], "container-title" : [ "American Journal of Industrial Medicine" ], "link" : [ { "URL" : "https://api.wiley.com/onlinelibrary/tdm/v1/articles/10.1002%2F1097-0274(200102)39:2%3C218::AID-AJIM1009%3E3.0.CO;2-4", "content-type" : "unspecified", "content-version" : "vor", "intended-application" : "text-mining" } ], "deposited" : { "date-parts" : [ [ 2017, 8, 4 ] ], "date-time" : "2017-08-04T20:22:16Z", "timestamp" : { "$numberLong" : "1501878136000" } }, "score" : 1, "issued" : { "date-parts" : [ [ 2001 ] ] }, "references-count" : 37, "URL" : "http://dx.doi.org/10.1002/1097-0274(200102)39:2<218::aid-ajim1009>3.0.co;2-4", "relation" : { "cites" : [] }, "ISSN" : [ "0271-3586", "1097-0274" ], "issn-type" : [ { "value" : "0271-3586", "type" : "print" }, { "value" : "1097-0274", "type" : "electronic" } ], "subject" : [ "Public Health, Environmental and Occupational Health" ] }
+{ "_id" : { "$oid" : "5a553b4388a035a45bf39150" }, "indexed" : { "date-parts" : [ [ 2017, 10, 23 ] ], "date-time" : "2017-10-23T17:10:15Z", "timestamp" : { "$numberLong" : "1508778615346" } }, "reference-count" : 22, "publisher" : "Elsevier BV", "issue" : "4", "license" : [ { "URL" : "http://www.elsevier.com/tdm/userlicense/1.0/", "start" : { "date-parts" : [ [ 2001, 12, 1 ] ], "date-time" : "2001-12-01T00:00:00Z", "timestamp" : { "$numberLong" : "1007164800000" } }, "delay-in-days" : 0, "content-version" : "tdm" } ], "content-domain" : { "domain" : [], "crossmark-restriction" : false }, "short-container-title" : [ "International Journal of Hospitality Management" ], "published-print" : { "date-parts" : [ [ 2001, 12 ] ] }, "DOI" : "10.1016/s0278-4319(01)00020-2", "type" : "journal-article", "created" : { "date-parts" : [ [ 2002, 7, 25 ] ], "date-time" : "2002-07-25T14:28:16Z", "timestamp" : { "$numberLong" : "1027607296000" } }, "page" : "325-338", "source" : "Crossref", "is-referenced-by-count" : 14, "title" : [ "Hotel management style: a study of employee perceptions and preferences" ], "prefix" : "10.1016", "volume" : "20", "author" : [ { "given" : "Margaret", "family" : "Deery", "affiliation" : [] }, { "given" : "Leo K", "family" : "Jago", "affiliation" : [] } ], "member" : "78", "container-title" : [ "International Journal of Hospitality Management" ], "link" : [ { "URL" : "http://api.elsevier.com/content/article/PII:S0278431901000202?httpAccept=text/xml", "content-type" : "text/xml", "content-version" : "vor", "intended-application" : "text-mining" }, { "URL" : "http://api.elsevier.com/content/article/PII:S0278431901000202?httpAccept=text/plain", "content-type" : "text/plain", "content-version" : "vor", "intended-application" : "text-mining" } ], "deposited" : { "date-parts" : [ [ 2017, 6, 14 ] ], "date-time" : "2017-06-14T21:24:09Z", "timestamp" : { "$numberLong" : "1497475449000" } }, "score" : 1, "issued" : { "date-parts" : [ [ 2001, 12 ] ] }, "references-count" : 22, "alternative-id" : [ "S0278431901000202" ], "URL" : "http://dx.doi.org/10.1016/s0278-4319(01)00020-2", "ISSN" : [ "0278-4319" ], "issn-type" : [ { "value" : "0278-4319", "type" : "print" } ], "subject" : [ "Tourism, Leisure and Hospitality Management", "Strategy and Management" ] }
+{ "_id" : { "$oid" : "5a55176088a035a45bd8802c" }, "indexed" : { "date-parts" : [ [ 2017, 10, 23 ] ], "date-time" : "2017-10-23T14:31:47Z", "timestamp" : { "$numberLong" : "1508769107897" } }, "reference-count" : 1, "publisher" : "Hindawi Limited", "issue" : "2", "license" : [ { "URL" : "http://creativecommons.org/licenses/by/3.0/", "start" : { "date-parts" : [ [ 2002, 1, 1 ] ], "date-time" : "2002-01-01T00:00:00Z", "timestamp" : { "$numberLong" : "1009843200000" } }, "delay-in-days" : 0, "content-version" : "vor" } ], "content-domain" : { "domain" : [], "crossmark-restriction" : false }, "short-container-title" : [ "Comparative and Functional Genomics" ], "published-print" : { "date-parts" : [ [ 2002 ] ] }, "abstract" : "<jats:p>This brief meeting review summarizes the recommendations of NSF and NPGI funded bioinformaticians concerning the future requirements for plant bioinformatics systems and databases.</jats:p>", "DOI" : "10.1002/cfg.158", "type" : "journal-article", "created" : { "date-parts" : [ [ 2002, 8, 25 ] ], "date-time" : "2002-08-25T23:45:33Z", "timestamp" : { "$numberLong" : "1030319133000" } }, "page" : "176-176", "source" : "Crossref", "is-referenced-by-count" : 4, "title" : [ "Meeting Review: Plant Bioinformatics at the NSF and NPGI (PAMGX Satellite) Meetings" ], "prefix" : "10.1155", "volume" : "3", "author" : [ { "ORCID" : "http://orcid.org/0000-0002-4447-5978", "authenticated-orcid" : true, "given" : "Richard", "family" : "Bruskiewich", "affiliation" : [ { "name" : "International Rice Research Institute (IRRI), Metro Manila DAPO 7777, Philippines" } ] } ], "member" : "98", "reference" : [ { "key" : "10.1002/cfg.158-BIB1", "author" : "Brazma", "volume" : "29", "first-page" : "365", "year" : "2001", "journal-title" : "Nature Genetics", "DOI" : "10.1038/ng1201-365", "doi-asserted-by" : "crossref" } ], "container-title" : [ "Comparative and Functional Genomics" ], "link" : [ { "URL" : "http://downloads.hindawi.com/journals/ijg/2002/250628.pdf", "content-type" : "application/pdf", "content-version" : "vor", "intended-application" : "text-mining" }, { "URL" : "http://downloads.hindawi.com/journals/ijg/2002/250628.pdf", "content-type" : "unspecified", "content-version" : "vor", "intended-application" : "similarity-checking" } ], "deposited" : { "date-parts" : [ [ 2017, 8, 5 ] ], "date-time" : "2017-08-05T06:32:00Z", "timestamp" : { "$numberLong" : "1501914720000" } }, "score" : 1, "issued" : { "date-parts" : [ [ 2002 ] ] }, "references-count" : 1, "alternative-id" : [ "250628" ], "URL" : "http://dx.doi.org/10.1002/cfg.158", "relation" : { "cites" : [] }, "ISSN" : [ "1531-6912", "1532-6268" ], "issn-type" : [ { "value" : "1531-6912", "type" : "print" }, { "value" : "1532-6268", "type" : "electronic" } ], "subject" : [ "Biotechnology", "Genetics", "Molecular Biology" ] }
+{ "_id" : { "$oid" : "5a551fbe88a035a45bdf19fd" }, "indexed" : { "date-parts" : [ [ 2017, 10, 23 ] ], "date-time" : "2017-10-23T15:12:12Z", "timestamp" : { "$numberLong" : "1508771532055" } }, "reference-count" : 0, "publisher" : "Springer Nature", "issue" : "11", "content-domain" : { "domain" : [], "crossmark-restriction" : false }, "short-container-title" : [ "Skeletal Radiol" ], "published-print" : { "date-parts" : [ [ 2001, 11 ] ] }, "DOI" : "10.1007/s002560100423", "type" : "journal-article", "created" : { "date-parts" : [ [ 2002, 10, 6 ] ], "date-time" : "2002-10-06T13:44:04Z", "timestamp" : { "$numberLong" : "1033911844000" } }, "page" : "643-647", "source" : "Crossref", "is-referenced-by-count" : 2, "title" : [ "Unilateral osteonecrosis in a patient with bilateral os centrale carpi: imaging findings" ], "prefix" : "10.1007", "volume" : "30", "author" : [ { "given" : "F.", "family" : "Abascal", "affiliation" : [] }, { "given" : "L.", "family" : "Cerezal", "affiliation" : [] }, { "given" : "F.", "family" : "del Piñal", "affiliation" : [] }, { "given" : "R.", "family" : "García-Valtuille", "affiliation" : [] }, { "given" : "A.", "family" : "García-Valtuille", "affiliation" : [] }, { "given" : "A.", "family" : "Canga", "affiliation" : [] }, { "given" : "J.", "family" : "Torcida", "affiliation" : [] } ], "member" : "297", "published-online" : { "date-parts" : [ [ 2001, 9, 14 ] ] }, "container-title" : [ "Skeletal Radiology" ], "link" : [ { "URL" : "http://link.springer.com/content/pdf/10.1007/s002560100423", "content-type" : "unspecified", "content-version" : "vor", "intended-application" : "similarity-checking" } ], "deposited" : { "date-parts" : [ [ 2014, 4, 9 ] ], "date-time" : "2014-04-09T05:21:52Z", "timestamp" : { "$numberLong" : "1397020912000" } }, "score" : 1, "issued" : { "date-parts" : [ [ 2001, 9, 14 ] ] }, "references-count" : 0, "alternative-id" : [ "423" ], "URL" : "http://dx.doi.org/10.1007/s002560100423", "ISSN" : [ "0364-2348", "1432-2161" ], "issn-type" : [ { "value" : "0364-2348", "type" : "print" }, { "value" : "1432-2161", "type" : "electronic" } ], "subject" : [ "Radiology Nuclear Medicine and imaging" ] }