Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Describe the funding of a person/project/creative work #383

Open
hubgit opened this issue Mar 17, 2015 · 114 comments
Open

Describe the funding of a person/project/creative work #383

hubgit opened this issue Mar 17, 2015 · 114 comments
Labels
schema.org vocab General top level tag for issues on the vocabulary

Comments

@hubgit
Copy link

hubgit commented Mar 17, 2015

A schema (funder name, funder identifier, award number) for describing the funding of academic research and journal articles is published as part of FundRef.

It would be useful to have something similar - and more broadly applicable - in schema.org, to describe the funding of various things.

As an example:

  • A CreativeWork would have one or more funding, the value of which is a Funding.
  • A Funding would have one or more funder, the value of which is one or more Organisation or Person.
  • A Funding would have zero or more awardNumber, the value of which is text (e.g. an NIH grant number).
  • A Funding would have zero or more startDate and endDate.

To consider:

  • Should the funding property be attached to the CreativeWork, the project, or each Person/contributor?
  • When attached to a Person, should this include professional awards, such as fellowships, or employers?
@chaals
Copy link
Contributor

chaals commented Mar 20, 2015

The best example I can think of for noting people being funded are politicians, but there are certainly cases of both projects, and creative works they produce, being funded and wanting to acknowledge that funding.

@chaals
Copy link
Contributor

chaals commented Mar 20, 2015

For schema.org's purposes, if we do this I would be inclined to keep it pretty generic - i.e. Thing could have a funder (by the time we allow for organisations, people, documents, sculptures, projects and so on, I'm not sure what we gain by trying to think of the things that cannot be funded…

@thadguidry
Copy link
Contributor

@hubgit Your ideas are similar to mine in the past: https://www.freebase.com/user/thadguidry/default_domain/grant_program?schema=

here's my past playground, you might find some interesting types and properties to explore:
https://www.freebase.com/user/thadguidry/default_domain

So I suggest that Grants be an extension of Schema.org and try to make it as generic as possible starting out. It seems as if your data is aligned with a list of Grants. So I would start with a basic Grant type that anyone at any organization could use (USA, Europe, etc). After that then you can see the abstractions needed, and perhaps then create a higher type if needed for Fund (where a project can be funded by a Grant, or Online Funding Campaign, i.e. Kickstarter, Backme, etc., or Investment and then create those other types as well, if need be... OnlineCampaign, Investment, etc...)

Best of luck.

@hubgit
Copy link
Author

hubgit commented Mar 21, 2015

I wonder if the existing PayAction would be appropriate (perhaps with an inverse property).

@rvguha
Copy link
Contributor

rvguha commented Mar 21, 2015

I would strongly prefer to stay away from putting everything on Thing.

Lets start with CreativeWork and Project (or something like that). We can
then proceed from there.

guha

On Fri, Mar 20, 2015 at 3:52 AM, chaals notifications@github.com wrote:

For schema.org's purposes, if we do this I would be inclined to keep it
pretty generic - i.e. Thing could have a funder (by the time we allow for
organisations, people, documents, sculptures, projects and so on, I'm not
sure what we gain by trying to think of the things that cannot be funded…


Reply to this email directly or view it on GitHub
#383 (comment).

@rvguha
Copy link
Contributor

rvguha commented Mar 21, 2015

In keeping with our desired naming convention, let us not have both Funding
and funding. Lets come up with different terms.

Further, the term 'Funding' is a bit too generic. Lets use something more
descriptive

guha

On Tue, Mar 17, 2015 at 7:05 AM, Alf Eaton notifications@github.com wrote:

A schema (funder name, funder identifier, award number) for describing the
funding of academic research and journal articles is published as part of
FundRef http://help.crossref.org/fundref.

It would be useful to have something similar - and more broadly applicable

  • in schema.org, to describe the funding of various things.

As an example:

  • A ScholarlyArticle would have one or more funding, the value of
    which is a Funding.
  • A Funding would have one or more funder, the value of which is one
    or more Organisation or Person.
  • A Funding would have zero or more awardNumber, the value of which is
    text (e.g. an NIH grant number
    http://era.nih.gov/commons/commons-help/198.htm).

To consider:

  • Should the funding property be attached to the CreativeWork, the
    project, or each Person/contributor?
  • When attached to a Person, should this include professional awards,
    such as fellowships, or employers?


Reply to this email directly or view it on GitHub
#383.

@rvguha
Copy link
Contributor

rvguha commented Mar 21, 2015

Yes. There is a whole domain around 'grants', which should cover all the
use cases you mention. Including some additional ones like donations. There
is quite a bit of interest in getting this kind of data made public
(especially the donation case).

guha

On Fri, Mar 20, 2015 at 8:37 AM, Thad Guidry notifications@github.com
wrote:

@hubgit https://github.com/hubgit Your ideas are similar to mine in the
past:
https://www.freebase.com/user/thadguidry/default_domain/grant_program?schema=

here's my past playground, you might find some interesting types and
properties to explore:
https://www.freebase.com/user/thadguidry/default_domain

So I suggest that Grants be an extension of Schema.org and try to make it
as generic as possible starting out. It seems as if your data is aligned
with a list of Grants. So I would start with a basic Grant type that anyone
at any organization could use (USA, Europe, etc). After that then you can
see the abstractions needed, and perhaps then create a higher type if
needed for Fund (where a project can be funded by a Grant, or Online
Funding Campaign, i.e. Kickstarter, Backme, etc., or Investment and then
create those other types as well, if need be... OnlineCampaign, Investment,
etc...)

Best of luck.


Reply to this email directly or view it on GitHub
#383 (comment).

@hubgit
Copy link
Author

hubgit commented Apr 13, 2015

Exploring some terms (deliberately broad, to try to include all the possiblities):

  • grant
  • payment / Pay (agent, recipient, description, amount, start + end date)
  • sponsor (in some fields implies "guarantor")
  • backer
  • funder / fund
  • contributor (using Role)

Properties needed (see PayAction):

  • donor/giver (agent)
  • recipient
  • start ± end date
  • purpose / assistance type
  • amount + currency (price)
  • description
  • award id / program number (local identifier)
  • id (global identifier)
  • program (larger body that the grant is part of)
  • other roles (administrator, institution, etc)

@hubgit
Copy link
Author

hubgit commented Apr 13, 2015

An experiment at giving grant donors a "contributor" role on the work:

[http://example.org/works/1]:
  type: CreativeWork
  contributor:
    - type: FundingRole
      roleName: "donor" # could be "sponsor", "backer", etc
      contributor:
        - type: Organization
          name: "Medical Research Council"
      award:
        - type: Grant
          awardId: "MRC123"
          startDate: 2014-01-01
          endDate: 2015-01-01
          recipient:
            - type: Person
              name: "Bob Smith"

In this example, FundingRole has an extra award property, which is a Grant, which has similar properties to a PayAction.

@hubgit
Copy link
Author

hubgit commented Apr 13, 2015

An experiment at attaching the grant (with properties copied from PayAction) directly to the work:

[http://example.org/works/1]:
  type: CreativeWork
  funding:
    - type: Grant      
      awardId: "MRC123"
      startDate: 2014-01-01
      endDate: 2015-01-01
      agent:
        - type: Organization
          name: "Medical Research Council"
      recipient:
        - type: Person
          name: "Bob Smith"

@hubgit
Copy link
Author

hubgit commented Apr 13, 2015

Question: Is Grant a generic enough name to cover all of the following (and more)?:

  • Kickstarter backing
  • Donations to a political party
  • Research funding by a charity
  • Sponsorship by a commercial organisation
  • Charitable donations
  • Venture capital
  • Film production companies/record labels paying for production of a movie/album.
  • Employer contributions to an employee's work on an open-source project.

@hubgit
Copy link
Author

hubgit commented Apr 13, 2015

An experiment at using PayAction to attach a Grant to a CreativeWork (following the example of potentialAction => AssessAction => resultReview => Review => itemReviewed => CreativeWork):

[http://example.org/works/1]:
  type: CreativeWork
  potentialAction:
    - type: PayAction
  funding:
    - type: Grant
      url: http://example.org/grants/1

[http://example.org/payments/1]:
  type: PayAction
  startDate: 2014-01-01
  endDate: 2015-01-01
  agent:
    - type: Organization
      name: "Medical Research Council"
  recipient:
    - type: Person
      name: "Bob Smith"
  resultGrant:
    - type: Grant
      url: http://example.org/grants/1
      awardId: "MRC123"
      itemFunded:
        - type: CreativeWork
          url: http://example.org/works/1

I quite like this example, except that there's no way of getting from the Grant to the agent and recipient. It seems like the properties of the grant should actually be properties of the PayAction (perhaps as a GrantAction), but then there's no Grant object to use in the reverse direction…

@danbri danbri added the schema.org vocab General top level tag for issues on the vocabulary label May 27, 2015
@sballesteros
Copy link

Another experiment leveraging sponsor and assuming that it would be reasonable to bump the domain of sponsor from MedicalStudy to CreativeWork:

{
  "@type": "ScholarlyArticle",
  "sponsor": { // bump domain to CreativeWork
    "@type": "SponsorRole", //subclass of schema:Role
    "sponsor": {
      "@type": "Organization"
    },
    "roleOffer": {
      "@type": "FundingSource", // subclass of schema:Offer
      "serialNumber": "grantId"
    },
    "startDate": "2015-01-01"
  }
}

@darobin
Copy link
Contributor

darobin commented Nov 1, 2015

FWIW we use the experiment that @sballesteros describes over at http://scholarly.vernacular.io/#funding.

@danbri
Copy link
Contributor

danbri commented May 31, 2016

How about broadening http://schema.org/sponsor and also adding funder as a subproperty?

@hubgit
Copy link
Author

hubgit commented May 31, 2016

sponsor sounds good to me - would it still need something like SponsorRole to attach the properties of the sponsorship to?

@jaygray0919
Copy link

Here is a reference to support @sballesteros comment: http://ns.science.ai/ (about which I believe he may be an author). IOHO it is comprehensive approach to this thread topic and, importantly, is an extension to schema.org and the BIB extension https://bib.schema.org/. A presentation is here http://scholarly.vernacular.io/

@sballesteros
Copy link

sballesteros commented Jun 1, 2016

yes, @darobin and I are maintaining http://ns.science.ai/ . We also have https://science.ai/documentation/archive which contains multiple examples of how we use schema.org (and our little extension) in the context of scholarly publishing. In particular you can find example of funding statements (and the corresponding JSON-LD / RDFa markup).

@janober
Copy link

janober commented Jun 15, 2016

Hi,
came also across this issue and would have expected something roughly like this:

{
    "@type": "Corporation",
    "name": "Big Company",
    "fundingReceived": 3000000,
    "fundingReceivedCurrency": "USD",
    "funding": [
      {
        "@type": "FundingRound",
        "name": "Seed",
        "Lead Investor": {
          "@type": "Corporation",
          "name": "Big VC"
        },
        "fundingDate": "2014-01-01",
        "amount": 3000000,
        "amountCurrency": "USD",
        "investments": [
          {
            "@type": "Investment",
            "investmentType": "Convertible Note",
            "amount": 1000000,
            "amountCurrency": "USD",
            "investor": [
              {
                "@type": "Person",
                "name": "Rich Guy"
              },
              {
                "@type": "Person",
                "name": "Another Rich Guy"
              }
            ]
          },
          {
            "@type": "Investment",
            "investmentType": "Convertible Note",
            "amount": 2000000,
            "amountCurrency": "USD",
            "investor": {
              "@type": "Corporation",
              "name": "Big VC"
            }
          }
        ]
      }
    ]
  }

Some remarks:
-Think it is important to have somewhere the whole funding received amount because the often not every single amount of every investment is known only the full amount (therefor "fundingReceived")
-Not a big fan of the "fundingReceived" & "fundingReceivedCurrency" on the "Corporation" but I think probably makes sense unless another type gets created to contain the whole funding for a company
-"funding" could either have directly "Investment" or the "FundingRound"

@RichardWallis
Copy link
Contributor

Using MonetaryAmount would work better eg:

        ....
         {
            "@type": "Investment",
            "investmentType": "Convertible Note",
            "amount": {
                   "@type": "MonetaryAmount",
                   "currency": "USD",
                   "value": "2000000"
            },
            "investor": {
              "@type": "Corporation",
              "name": "Big VC"
            }

@janober
Copy link

janober commented Jun 15, 2016

Ah yes great, that is exactly what I was looking for! Much prettier! The same then for "fundingReceived". Thanks!

@hubgit
Copy link
Author

hubgit commented Nov 1, 2016

Noting that the funder property now exists, as a sub-property of sponsor.
"A person or organization that supports (sponsors) something through some kind of financial contribution."

@agbeltran
Copy link

Following up from discussions in #1083, I think that http://schema.org/MonetaryAmount, suggested above, would work as supertype for Grant.

(while there might be in kind contributions too, I think that MonetaryAmount would cover the most important aspects - NIH activity codes would help confirming this: http://grants.nih.gov/grants/funding/ac_search_results.htm)

Could also another property associating a CreativeWork (and in particular a Dataset for our use cases from #1083) and a Grant also be added?

We have used 'acknowledges' in DATS (https://github.com/biocaddie/WG3-MetadataSpecifications/) but also fundedBy would work.

@agbeltran
Copy link

Previous comment follows this issue: #1196 (instead of #1083)

@smrgeoinfo
Copy link

@dr-shorthair
Copy link

@dr-shorthair I like that extension for PROV, quite straight forward, and with the important aspect of project duration as well.

Thanks @stain. Fixed duration is certainly considered a key characteristic of the concept 'project' in my work context. It is the difference between research and operations.

@dr-shorthair
Copy link

Project is in fact an "activity or effort" of an Organization(s). That's what is meant in the description saying "An enterprise..."

@thadguidry in that case I suggest that schema:Project is in the wrong place in the types system. It would be better as a sub-class of schema:Action.

@acka47
Copy link
Contributor

acka47 commented Jun 8, 2020

I suggest that schema:Project is in the wrong place in the types system. It would be better as a sub-class of schema:Action.

+1 As noted in #383 (comment), we have been using Action for typing projects for lack of a Project class.

@stain
Copy link

stain commented Jun 29, 2020 via email

stain added a commit to ResearchObject/ro-crate that referenced this issue Jun 29, 2020
..although it is consistent with the http://schema.org/Grant example 3,
see schemaorg/schemaorg#383

Using https:/bioschemas.org/Workflow#input etc
stain added a commit to stain/schemaorg that referenced this issue Jun 29, 2020
See schemaorg#383 (comment)

To avoid adding to Thing I made the domainIncludes more specific to
CreativeWork, Organization or Person.

Perhaps rangeIncludes in fundedItems should be updated accordingly.
stain added a commit to stain/schemaorg that referenced this issue Jun 29, 2020
See schemaorg#383 (comment)

To avoid adding to Thing I made the domainIncludes more specific to
CreativeWork, Organization or Person.

Perhaps rangeIncludes in fundedItems should be updated accordingly.
@stain
Copy link

stain commented Jun 30, 2020

See also discussion on pull request #2618 on if funder should have the opposite domain/range of fundedItems - which with Thing becomes a bit awkward.

@stain
Copy link

stain commented Jul 7, 2020

Why is https://schema.org/FundingAgency a subclass of Project, while https://schema.org/FundingScheme is subclass of Organization?

I would think it was the other way around, as a FundingAgency is an ongoing, often larger organization like NIH or Chan Zuckerberg Initiative (and the grant a miniscule thing within), while a https://schema.org/FundingScheme is a targeted and often time-limited endeavour that is very much managed like a project, where the Grant to some extent fit into the (project) goals of that scheme.

@smrgeoinfo
Copy link

I think you meant
Why is https://schema.org/FundingAgency a subclass of Project, while https://schema.org/FundingScheme is subclass of Organization?

I agree, agency should be an organization, and FundingScheme would make more sense as a project.

stain added a commit to stain/schemaorg that referenced this issue Jul 14, 2020
See schemaorg#383 (comment)

To avoid adding to Thing I made the domainIncludes more specific to
CreativeWork, Organization or Person.

Perhaps rangeIncludes in fundedItems should be updated accordingly.
@judgewooden
Copy link

We are going around in circles, a FundingAgency could also be the result of a raffle. It does not need to be an organization. FundingScheme should be where all the complexity is, because of the complexity of T&C, legal information, etc. The funding table itself must be very simple and easy for computer programmers to code to. So if somebody wants to know who the agency is behind FundingScheme, the meaning of agency will hardly ever be the same. If they want to know who contributed they can look at field-2 as proposed below. We are in this quagmire because we focus on one type of funding a lot (ie. Grant) and should stop doing that.

The new table called Funding must be simple.

  1. the recipient
  2. the contributor
  3. the amount
  4. the legal terms -> links to FundingScheme
  5. the intermediary (funding are often via 3rd party, NGO, Broker, platforms. etc)

I also propose three additional fields;

  1. source: (Where does the funding come from? Is it cash, a grand, tax-rebate, subsidy, venture capital, etc.)
  2. purpose: (Why was this funding done? Is if for research, a charity, an investment, emergency government relief, etc.)
  3. method: (How is the funding obtained? Is it a raffle, IPO, Nobel Prize, Gift, Platform, cookie sales, etc.)

Perhaps we could add some basic fields so that those who does not want to use FundingScheme because of its complexity could codify them here, things like start / end date, Parent organizations, etc. it should be a limited subset. I agree with others ITT that FundingScheme should not always be needed. Let's be honest with each other, by the time we get lawyers to insist we put contracts, T&C into schemas, FundingScheme should be the place for the discussion.

In an earlier post you can find how fields link to the rest of schema.org,

@github-actions
Copy link

github-actions bot commented Oct 4, 2020

This issue is being tagged as Stale due to inactivity.

@github-actions github-actions bot added the no-issue-activity Discuss has gone quiet. Auto-tagging to encourage people to re-engage with the issue (or close it!). label Oct 4, 2020
@ashepherd
Copy link

ashepherd commented Mar 27, 2021

For now, we could use JSON-lD @reverse to achieve linking a MonetaryGrant to a Dataset (or CreativeWork) from a Dataset page:

{
  "@context":"http://schema.org/",
  "@type": "Dataset",
  "@id": "urn:example:dataset:1",
  "@reverse": {
    "fundedItem":[
      {
        "@id": "urn:example:award:123456789",
        "@type": "MonetaryGrant",
        "name": "NSF-123456789"
      }
    ]
  }
}

@Safaa87
Copy link

Safaa87 commented Mar 30, 2021

Web creep

@njarboe
Copy link

njarboe commented May 3, 2021

At the Magnetics Information Consortium data repository (https://www2.earthref.org/MagIC) we need to describe who is funding the creation of datasets that are archived in our data repository in our schema.org headers.

We will be using the format as described by #383 (comment) for now but would be happier to use a format that does not involve the "@reverse" term when it becomes available.

danbri added a commit that referenced this issue Mar 2, 2022
…included.

This brings the schemas into alignment with the currently published example for Grant.
Updated range/domain lists to enumerate the most likely subtypes of Thing rather than clutter Thing.
Cross-linked ownershipFundingInfo from both definitions.

This commit is pretty close to that drafted by @stain at stain@52a06ce
with minor differences for wording and integration.

Thanks to @stain and everyone else on #383 for their persistence on this topic.
@danbri
Copy link
Contributor

danbri commented Mar 2, 2022

I have just added the missing "funding" property, which was originally intended to bi included. This brings the schemas into alignment with the currently published example for Grant. Also updated range/domain lists to enumerate the most likely subtypes of Thing rather than clutter Thing. Cross-linked ownershipFundingInfo from both definitions.

(please ignore that I typo'd "funder" for "funding" in the git commit msg; perhaps a hint on how we ended up here in first place...).

Thischange is pretty close to that drafted by @stain at stain@52a06ce and #2618
with minor differences for wording and integration.

Thanks to @stain and everyone else on #383 for their persistence on this topic.

@hubgit
Copy link
Author

hubgit commented Mar 2, 2022

Thanks @danbri! Feel free to close this issue as fixed 😀

@tobiasschweizer
Copy link

tobiasschweizer commented Jul 4, 2022

Hi @danbri

Also updated range/domain lists to enumerate the most likely subtypes of Thing rather than clutter Thing.

I have noticed that we still use schema:Thing as a range on Grant -> fundedItem in our schema (SHACL shapes). So far, I've assumed that schema.org releases are backward compatible. What's the recommended way to handle this? Is there release notes with breaking changes etc.?

Thanks for your feedback.

EDIT: Is fundedItem a not yet approved property so changes are possible until being approved?

@dkrefta
Copy link

dkrefta commented Aug 25, 2022

Do we have some real examples for Project Schema? I'm also trying to figure out how to work with that schema for a website with some projects ( agency projects, design projects and etc), can somebody give me a light here, please (:

@github-actions github-actions bot removed the no-issue-activity Discuss has gone quiet. Auto-tagging to encourage people to re-engage with the issue (or close it!). label Nov 29, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
schema.org vocab General top level tag for issues on the vocabulary
Projects
None yet
Development

No branches or pull requests