-
Notifications
You must be signed in to change notification settings - Fork 14
Adding Recipe for Versioning #284
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
monotasker
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks good to me. I think we should merge this while we decide what to do about the case of external version links.
|
On the question of external links, I might suggest that we just allow external URIs in the hasVersion array, in which case those external versions don't have a corresponding |
|
I think I'd do this a little bit differently (maybe slightly simpler?)
{
"@context": "https://distributed-text-services.github.io/specifications/context/1.0rc1.json",
"dtsVersion": "1.0rc1",
"@id": "https://digitallatin.org/ids/Calpurnius_Siculus-Bucolica_9a18bc",
"@type": "Resource",
"title": "Bucolica",
"totalParents": 1,
"totalChildren": 2,
"collection": "/api/dts/collection/?id=https://digitallatin.org/ids/Calpurnius_Siculus-Bucolica_9a18bc(&nav}",
"document": "/api/dts/document?resource=https://digitallatin.org/ids/Calpurnius_Siculus-Bucolica_9a18bc{&ref,start,end,tree,mediaType}",
"navigation": "/api/dts/navigation?resource=https://digitallatin.org/ids/Calpurnius_Siculus-Bucolica_9a18bc{&ref,start,end,tree}",
"dublinCore": {
"creator": [
"Calpurnius Siculus"
],
"isVersionOf": [
"/api/dts/collection/?id=https://digitallatin.org/ids/Calpurnius_Siculus-Bucolica_8c36a8"
]
},
"citationTrees": [
{
/* ... */
}
],
"member": [
{
"@id": "https://digitallatin.org/ids/Calpurnius_Siculus-Bucolica_8c36a8",
"@type": "Resource",
"title": "Bucolica",
"totalParents": 1,
"totalChildren": 0,
"collection": "/api/dts/collection/?id=https://digitallatin.org/ids/Calpurnius_Siculus-Bucolica_8c36a8(&nav}",
"document": "/api/dts/document?resource=https://digitallatin.org/ids/Calpurnius_Siculus-Bucolica_8c36a8{&ref,start,end,tree,mediaType}",
"navigation": "/api/dts/navigation?resource=https://digitallatin.org/ids/Calpurnius_Siculus-Bucolica_8c36a8{&ref,start,end,tree}",
"dublinCore": {
"isVersionOf": [
"/api/dts/collection/?id=https://digitallatin.org/ids/Calpurnius_Siculus-Bucolica_2fe456"
],
"hasVersion": [
"/api/dts/collection/?id=https://digitallatin.org/ids/Calpurnius_Siculus-Bucolica_9a18bc"
]
},
"citationTrees": [
{
/* ... */
}
]
},
{
"@id": "https://digitallatin.org/ids/Calpurnius_Siculus-Bucolica_2fe456",
"@type": "Resource",
"title": "Bucolica",
"totalParents": 1,
"totalChildren": 0,
"collection": "/api/dts/collection/?id=https://digitallatin.org/ids/Calpurnius_Siculus-Bucolica_2fe456(&nav}",
"document": "/api/dts/document?resource=https://digitallatin.org/ids/Calpurnius_Siculus-Bucolica_2fe456{&ref,start,end,tree,mediaType}",
"navigation": "/api/dts/navigation?resource=https://digitallatin.org/ids/Calpurnius_Siculus-Bucolica_2fe456{&ref,start,end,tree}",
"dublinCore": {
"hasVersion": [
"/api/dts/collection/?id=https://digitallatin.org/ids/Calpurnius_Siculus-Bucolica_8c36a8"
]
},
"citationTrees": [
{
/* ... */
}
]
}
]
} |
|
@hcayless, so the isVersionOf and hasVersion function like genetic descent pointers? With the isVersionOf on the top-level Resource pointing back to the prior version? I suppose this would work even if we don't have a neat linear descent chain. If a number of parallel versions are made from one ancestor, it could have multiple hasVersion links? And if a later version consolidated a number of earlier ones together it could have multiple isVersionOf links? My question then would be how someone would handle looser relationships between "editions" of a work--e.g. different translations or alternate manuscripts--where there isn't simple genetic descent. In this case, would someone create a parent Collection representing the notional work, and then create separate Resources representing the different editions? If that's our model, I think we should be very clear about when versioning is appropriate. And we should include a separate recipe for handling multiple editions. |
|
I think the answer is that what you describe is outside the scope of "versioning" where the versions are basically releases. We could recommend |
|
Agreed. We'll just have to make it clear because people will likely confuse them. |
Fixes #282
I think this addresses how I would do that, and how I talked about it.
One thing I am not sure I like is that if you are linking to version outside of DTS, it becomes unclear. I am wondering if we should allow in 1.0 typed URIs, aka:
{'@id': URI, '@type': 'Resource'}, but I would generally think it's a bad idea.