adiwg / mdJson-schemas

JSON schemas, examples, and templates for ADIwg metadata standards
http://www.adiwg.org/projects/
GNU Lesser General Public License v3.0
18 stars 15 forks source link

Support for Award ID in funding allocation #150

Closed stansmith907 closed 7 years ago

stansmith907 commented 7 years ago

Schema changes to funding model.

Here's the consensus or our discussions...

Internal objects:

def newFunding
   {
      description: nil,
      timePeriod: {},
      allocations: []
   }
end

def newAllocation
   {
      id: nil,
      amount: nil,
      currency: nil,
      sourceId: nil,
      recipientId: nil,
      matching: false,
      onlineResources: [],
      comment: nil
   }
end

mdJson schema:

   "funding": {
      "description": "",
      "timePeriod": {},
      "allocation": [
         {
            "sourceAllocationId": "",
            "amount": 0.00,
            "currency": "",
            "sourceId": "",
            "recipientId": "",
            "matching": false,
            "onlineResource": [],
            "comment": ""
         }
      ]
   }

The mdTranslator tasks are ...

jlblcc commented 7 years ago

Hmm...I think having a funder citation is duplicative since we already have the sourceId. Also, I think having the funds grouped by time period makes more sense. Calculating totals per year is probably the most common summary stat(although that does make calculating funding per source trickier). Plus it represents how most folks are tracking funding. I think for right now, we can just add sourceAllocationId and call it good or if we want to make it more flexible, we can make it an array of objects, like so:

{
  funding: {
    allocation: [{
      award: [
        awardId: "",
        responsibleParty: {},
        onlineResource: [{}]
      ],
      amount: 0.00,
      currency: "",
      sourceId: "",
      recipientId: "",
      matching: false,
      comment: ""
    }],
    timePeriod: {}
  }
}

Or we could just make the award a citation, which I think is overkill and would require a title.

stansmith907 commented 7 years ago

Guess I don't understand the award process. I thought each award would have it's own amount, matching, timePeriod, recipient, etc. Or are there just multiple award IDs for the same allocation? Or are these values updated when an award is renewed? Also not sure how responsibleParty and onlineResource would be used, they seem to conflict with have separate fields for sourceId and recipientId.

jlblcc commented 7 years ago

Quite often agencies(at least federal) have multiple awards to different entities for a single timePeriod. There's also the issue of matching allocations, which would usually be for the same timePeriod. Of course, folks can always repeat the whole block for each allocation.

I made award an array to allow for instances where more than one awardid is assigned from different institutions. We could simplify and put awardId and onlineResource into the allocation object, since I'm not sure how much value there is in tracking more than one id.

stansmith907 commented 7 years ago

I updated the top object model and schema per our telephone conversation

jlblcc commented 7 years ago

Changed awardId to sourceAllocationId.

stansmith907 commented 7 years ago

Josh - the schema didn't declare the onlineResource in allocation to be an array . Was this intentional? Looked like it should have been from your comment above.

 award: [
   awardId: "",
   responsibleParty: {},
   onlineResource: [{}]
 ],

I local patched online description to be:

        "onlineResource": {
          "type": "array",
          "description": "On-line information related to the allocation.",
          "items": {
            "$ref": "onlineResource.json#"
          }
        }

I guess I should know this before I make any more changes with funding :)