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

Open
hubgit opened this Issue Mar 17, 2015 · 21 comments

Projects

None yet

10 participants

@hubgit

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

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

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

@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

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

@rvguha
@rvguha
@rvguha
@hubgit

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

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

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

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

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…

@sballesteros

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

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

@danbri

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

@hubgit

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

@jaygray0919

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

yes, @darobin and I are maintaining http://ns.science.ai/ . We also have http://docx.science.ai 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 in the view collected data sections).

@janober

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

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

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

@danbri danbri pushed a commit that referenced this issue Jul 15, 2016
Dan Brickley Broadened 'sponsor' to apply to CreativeWork e.g. Dataset, added 'fun…
…der' subproperty.

See #383
3cca63b
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment