Comments (5)
Here's something I tried to come up with today for an edit history, using the PROV ontology. The history
key would live at the top level of the dataset, alongside periodCollections
and define a graph with a number of prov:Activity
classes. Each patch has an associated prov:Activity
that "uses" an old dataset and a .jsonpatch to "generate" new versions of period collections. By doing this, we keep track of who last updated the dataset, as well as who last updated each period collection. This could be expanded to cover every period definition, but that seems like overkill, maybe.
This approach would require changing the dataset and the period collections so that they additionally have the type prov:Entity
.
It's still missing information about who approved the patch (and when)- maybe that's not necessary?
"@context": {
"@base": "http://n2t.net/ark:/99152/",
"Activity": "prov:Activity",
"Entity": "prov:Entity",
"Person": "prov:Agent",
"by": "prov:wasAssociatedWith",
"generated": "prov:generated",
"history": "@graph",
"id": "@id",
"name": "http://xmlns.com/foaf/0.1/name",
"prov": "http://www.w3.org/ns/prov#",
"specializationOf": {
"@id": "prov:specializationOf",
"@type": "@id"
},
"time": {
"@id": "prov:atTime",
"@type": "http://www.w3.org/2001/XMLSchema#dateTime"
}
"type": "@type",
"url": {
"@id": "http://xmlns.com/foaf/0.1/page",
"@type": "@id"
},
"used": prov:used",
"wasRevisionOf": "prov:wasRevisionOf"
},
"history": [
{
"id": "#change1",
"type": "Activity",
"time": "2015-05-22T22:34:50",
"by": [
{
"id": "http://orcid.org/0000-0002-3617-9378",
"type": "Person",
"name": "Patrick Golden"
}
]
"used": [
{
"id": "p0d?version=1",
"type": "Entity",
"specializationOf": "p0d"
},
{
"id": "#patch1",
"type": "Entity",
"url": "patches/1.jsonpatch"
}
]
"generated": [
{
"id": "p0244q7?version=2",
"type": "Entity",
"specializationOf": "p0244q7",
"wasRevisionOf": {
"id": "p0244q7?version=1",
"specializationOf": "p0244q7",
"type": "Entity"
}
},
{ ...all the other period collections affected by this patch... }
]
}
]
Does this make sense?
from periodo-data.
OK, our conclusion yesterday was that yes, we should keep track of edits to all assertions and not just collections. Further, provenance information will live in a different place than the original file, so some of my proposal can be tweaked.
from periodo-data.
Changes we should make, regardless of how we specifically model this in the end (these are maybe more server-oriented issues):
- Serving past versions of all content (collections, assertions)
- Adding prov:specializationOf statements to past versions that refer to the current canonical version
- (Possibly) adding prov:wasRevisionOf statements to past versions that are not new
from periodo-data.
I'd like to work some of this out alongside the patch submissions/acceptance interface that will be complete soon. Should I just go ahead with what I proposed?
from periodo-data.
I'm mostly out of my depth here, but I liked the direction you were going on provenance modeling. The pignolo in me feels that we should probably include in the model a reference to who approved the patch, and when, for the sake of completeness, but if this would hold up the process, I'd rather drop it and have the process in place so that we can test it this month.
from periodo-data.
Related Issues (20)
- Fix broken British Museum URLs
- Dan Hick's massive thread of period names
- Marine isotope stages (MIS) HOT 1
- Fix mis-encoded character and capitalization of authority title HOT 3
- Period missing an English label HOT 2
- Character problem with Latin rendering of Russian diacritics from LCHS HOT 17
- Duplicate LCSH periods HOT 1
- Inconsistency in storing a source's publication date
- Authorities missing source publication dates HOT 1
- Submitting an authority that is a new edition of an old source HOT 5
- Buddhist Studies Time Authority Database HOT 1
- Taiwanese periods from Academica Sinica
- Seshat Databank HOT 1
- eHRAF Archaeology database HOT 1
- chronOntology data HOT 1
- Dyson, Stephen L. — Late Iron Age stop date and alt. labels
- Mapping graphs for Chronontology and Wikidata HOT 1
- Getty ATT periods as interpreted by DAINST in Chronontology HOT 5
- Revisit the way temporal extents are modeled
- Replace OCLC URIs with Wikidata ones HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from periodo-data.