edi3 / edi3-json-ld-ndr

GNU General Public License v3.0
0 stars 2 forks source link

versioning of vocabularies and code lists #30

Open onthebreeze opened 3 years ago

onthebreeze commented 3 years ago

We also need to document a strategy to handle versioning.

The current UN/CEFACt process is to release updates roughly every 6 months - as a re-release of the entire dictionary. for example

In general there is very little assistance to indicate what has changed - it is up to the user to compare current and previous dictionaries to see what has changed. On the positive side, in the vast majority of cases, the dictionary updates are additions and not changes to existing dictionary terms - so generally non-breaking.

for JSON-LD vocabularies we will obviously not be re-publishing the entire vocabulary each time! But we should expect a reasonable number of new properties and codes to appear each 6 months and a smaller number of new classes.

What I might suggest when a new RDM/CodeList is released is:

Allowed statuses could be

something like this?

{
  "@id": "edi3:consignor",
  "rdfs:type": "rdfs:Property",
  "rdfs:domain": "edi3:Consignment",
  "rdfs:range": "edi3:Party",
  "edi3:cefactElementMetadata": [
    {
      "@id": "cefact:UN01011054",
      "@type": "edi3:AssociationBIE", 
      "edi3:cefactDictEntryName": "Referenced_ Supply Chain_ Consignment. Consignor. Trade_ Party",
      "edi3:cefactBusinessProcess": "Buy-Ship-Pay",
      "edi3:currentStatus":"active",
      "edi3:createdDate": "21-03-2020"
    },
    {
      "@id": "cefact:UN01004212",
      "@type": "edi3:AssociationBIE", 
      "edi3:cefactDictEntryName": "Supply Chain_ Consignment. Consignor. Trade_ Party",
      "edi3:cefactBusinessProcess": "Buy-Ship-Pay"
      "edi3:currentStatus":"deprecated",
      "edi3:createdDate": "01-04-2017"
      "edi3:deprecatedDate": "21-03-2020"
    },
  ]
}

separately governed major code lists like UN/LOCODE Code lists would be similar - status and date at the code item level and master release level

Fak3 commented 3 years ago

Json-ld context will also be updated every 6 moths. I think the context url should include vocab version in it. Something like https://edi3.org/vocab/2020.06/context.json So when a data consumer receives the data with unknown context url at the top, it should fetch that new context and cache forever. But this has to be done carefully, as an adversary could try to force a data receiver cache to grow by sending him flood of forged data packets. I am still uncertain of the optimal policy to prevent this.