metaphacts / semopenalex

42 stars 5 forks source link

Emit "grants" (funding information) of Works #55

Open VladimirAlexiev opened 1 year ago

VladimirAlexiev commented 1 year ago

Emit "grants" (funding information) of Works. This is crucially important if you need to track the research output of a project or research programme.

Eg our paper Towards InnoGraph: A Knowledge Graph for AI Innovation has Acknowledgements:

Which are parsed out at https://dl.acm.org/doi/10.1145/3543873.3587614 "CrossMark check" (by CrossRef) as

And served by OpenAlex as https://api.openalex.org/works/W4327890772 has this:

  "grants": [
    {
      "funder": "https://openalex.org/F4320323299",
      "funder_display_name": "Norges Forskningsråd",
      "award_id": "309691"
    },
    {
      "funder": "https://openalex.org/F4320332999",
      "funder_display_name": "Horizon 2020 Framework Programme",
      "award_id": "101016835"
    },
    {
      "funder": "https://openalex.org/F4320334322",
      "funder_display_name": "HORIZON EUROPE Framework Programme",
      "award_id": "101070284,101093202"
    }
linnaung commented 1 year ago

We will amend the mapping and include these in the next data generation.

VladimirAlexiev commented 10 months ago

@linnaung Thanks but the work is half-done. Now I see this (and both URLs resolve):

<https://semopenalex.org/work/W4327890772>
soa:hasFunder
<https://semopenalex.org/funder/F4320334322>

However, you also need to parse the "award_id". There are many thousands of projects funded through Horizon Europe, but for bibliograpphic/scientometric purposes one needs to know the precise award (grant, project) so one can find all research output of a project. In this case there are two grants that OpenAlex dumps as "101070284,101093202", so you should parse them out and emit something like this:

<https://semopenalex.org/work/W4327890772>
soa:hasFunding
  [a soa:Funding; soa:hasFunder <https://semopenalex.org/funder/F4320334322>, soa:grantNumber "101070284"],
  [a soa:Funding; soa:hasFunder <https://semopenalex.org/funder/F4320334322>, soa:grantNumber "101093202"]

This will allow someone else to make further links

If you don't want to use blank nodes then you can make up some URLs (eg https://semopenalex.org/funding/F4320334322G101093202) but in some cases the grant may be empty.

VladimirAlexiev commented 3 months ago

Rather than blank nodes as shown above, it's better to use URLs like:

<https://semopenalex.org/work/W4327890772> soa:hasFunding
  <https://semopenalex.org/funding/W4327890772F4320334322G101070284>,
  <https://semopenalex.org/funding/W4327890772F4320334322G101093202>.
<https://semopenalex.org/funding/W4327890772F4320334322G101070284> a soa:Funding; 
  soa:hasFunder <https://semopenalex.org/funder/F4320334322>, soa:grantNumber "101070284".
<https://semopenalex.org/funding/W4327890772F4320334322G101093202> a soa:Funding; 
  soa:hasFunder <https://semopenalex.org/funder/F4320334322>, soa:grantNumber "101093202".