PID Graph GraphQL Example Researcher Profile

User story

As a researcher, I want to get a list of all my research outputs (publications, datasets, software, etc.) supported by grant funding, and how often they are cited, to demonstrate the impact of my work.

Query strategy

We start with the ORCID ID of the researcher, and then find all DOIs from Crossref or DataCite that include this ORCID ID in the metadata. We filter the results to only include research outputs that include funding information. For the results we show the number of citations we found in Crossref or DataCite.

The results show only a small subset, as adoption of ORCID and Crossref Funder ID is still not comprehensive, and tracking of citations for research outputs that are not journal articles is still hard.

Why GraphQL

The query combines information about research outputs from two DOI registration agencies (Crossref and DataCite), and uses information from two more services (ORCID and Crossref Funder Registry), all in a single API call. Collecting the same information would be much more complicated using the REST APIs of these various services.

The query can be easily modified, e.g. showing all research outputs (not just those with funding), also showing views and downloads, showing the citing publications, or showing co-authors.
DataCite has built a Researcher Profile dashboard showing essentially the information from this example, go to https://doi.datacite.org/users/0000-0001-5934-7525/info.

Use the following query in the GraphQL client at https://api.datacite.org/graphql

{
  person(id: "https://orcid.org/0000-0001-5934-7525") {
    id
    name
    givenName
    familyName
    citationCount
    works(hasFunder: true) {
      totalCount
      years {
        title
        count
      }
      resourceTypes {
        title
        count
      }
      nodes {
        id
        type
        titles {
          title
        }
        rights {
          rights
        }
        citationCount
      }
    }
  }
}

Related GitHub issues from 2018 FREYA workshop:

This query gives you all the data needed to address the user story. I have tried other APIs, and I couldn’t find a way to reproduce a similar request. I think this query shows the potential of mixing three different services.