NCI-Agency / anet

Advisor Network
MIT License
23 stars 11 forks source link

Epic 552 - Decentralize data model #552

Open VassilIordanov opened 6 years ago

VassilIordanov commented 6 years ago
VassilIordanov commented 6 years ago

Requirements

  1. Design a universal method for handling Entities (Reports, People, Places, Organizations, Positions, etc)
  2. An entity should have a life cycle beyond the data store of its creation. For example, it should be easily moved from one store to another without the need for complex manipulations
  3. Two datastores, with or without a common ancestor should be able to be merged, provided with a conflict resolution strategy, without the need for complex manipulations
  4. A datastore should support non destructive edits

Proposed Approach

Vocabulary

Data structures

Example of a Person entity

{
    "http://anet.org/entity/uuid": "63ee47c7-b56f-4847-9f91-bd7416d5ee63",
    "http://anet.org/entity/timeStamp": " ",
    "http://anet.org/entity/hash": "64AA9268A1949A76343085A4D6494B5AD5EBE6BE",
    "http://anet.org/entity/state": "published",

    "http://anet.org/person/name": "SMITH, John",
    "http://anet.org/country": "Suburbia",
    "http://anet.org/telephone": "123 3454"
}

Example of a Position entity

{
    "http://anet.org/entity/uuid": "7f778bc2-1f2c-4bf2-95a9-160f1b3fd8ba",
    "http://anet.org/entity/timeStamp": " ",
    "http://anet.org/entity/hash": "64AA9268A1949A76343085A4D6494B5AD5EBE6BE",
    "http://anet.org/entity/state": "published",

    "http://anet.org/position/name": "Director",
    "http://anet.org/position/personRef": "63ee47c7-b56f-4847-9f91-bd7416d5ee63"
}

Possible datastructure technologies

Semantic behavior