Esempio n. 1
0
    def test_clean_orcid(self):
        orcid = '0000-0003-1527-0030'

        # Test with orcid.org prefix.
        self.assertEqual(clean_orcid('orcid.org/' + orcid), orcid)

        # Test without prefix.
        self.assertEqual(clean_orcid(orcid), orcid)
Esempio n. 2
0
    def test_clean_orcid(self):
        orcid = '0000-0003-1527-0030'

        # Test with orcid.org prefix.
        self.assertEqual(clean_orcid('orcid.org/' + orcid), orcid)

        # Test with http://orcid.org prefix.
        self.assertEqual(clean_orcid('http://orcid.org/' + orcid), orcid)

        # Test without prefix.
        self.assertEqual(clean_orcid(orcid), orcid)
Esempio n. 3
0
def fetch_orcid_profile(orcid_id):
    orcid = clean_orcid(orcid_id)
    r = requests.get('https://pub.orcid.org/v2.0/%s' % orcid,
                     headers={"Accept": "application/json"})
    if r:
        return r.json()
    else:
        raise Exception("Request to fetch ORCID profile for %s returned %s" % (orcid, r.status_code))
Esempio n. 4
0
def fetch_orcid_profile(orcid_id):
    orcid = clean_orcid(orcid_id)
    # curl -H "Accept: application/orcid+json" 'http://pub.orcid.org/v1.2/0000-0003-3441-946X/orcid-profile' -L -i
    r = requests.get("http://pub.orcid.org/v1.2/%s/orcid-profile" % orcid, headers={"Accept": "application/orcid+json"})
    if r:
        return r.json()
    else:
        raise Exception("Request to fetch ORCID profile for %s returned %s" % (orcid, r.status_code))
Esempio n. 5
0
    def crosswalk(self, orcid_id, person_uri, person_class=None, confirmed_orcid_id=False):

        # Create an RDFLib Graph
        graph = Graph(namespace_manager=ns.ns_manager)

        # 0000-0003-3441-946X
        clean_orcid_id = clean_orcid(orcid_id)
        orcid_profile = fetch_orcid_profile(clean_orcid_id)

        # Determine the class to use for the person
        person_clazz = FOAF.Person
        if person_class:
            person_clazz = getattr(VIVO, person_class)

        # ORCID
        PersonCrosswalk._add_orcid_id(person_uri, clean_orcid_id, graph, confirmed_orcid_id)

        self.bio_crosswalker.crosswalk(orcid_profile, person_uri, graph, person_class=person_clazz)
        self.works_crosswalker.crosswalk(orcid_profile, person_uri, graph)
        self.affiliations_crosswalker.crosswalk(orcid_profile, person_uri, graph)
        self.funding_crosswalker.crosswalk(orcid_profile, person_uri, graph)

        return graph, orcid_profile, person_uri