JSON from API uses http and https schemes in URIs
Data from the Zotero API returns for relations (also for owl:sameAs)
"relations": {
"dc:replaces": "http://zotero.org/groups/xxx/items/SIZC6NEC",
"dc:relation": "http://zotero.org/groups/xxx/items/RM2DVJX7"
},
but the item itself then identifies like so:
"links": {
"self": {
"href": "https://api.zotero.org/groups/xxx/items/SIZC6NEC",
"type": "application/json"
},
"alternate": {
"href": "https://www.zotero.org/groups/xxx/items/SIZC6NEC",
"type": "text/html"
}
},
From a semantic point of view this seems inconsistent, as it then it is impossible to relate to an existing resource (as the scheme and the www as part of the host is relevant for semantic reference in URI and IRI).
Yet, changing the scheme may break existing links from a time when the item itself was still in http or where tools manually correct this inconsistency.
How do the Zotero specifications suggest to use relations for retrieval and reference?
"relations": {
"dc:replaces": "http://zotero.org/groups/xxx/items/SIZC6NEC",
"dc:relation": "http://zotero.org/groups/xxx/items/RM2DVJX7"
},
but the item itself then identifies like so:
"links": {
"self": {
"href": "https://api.zotero.org/groups/xxx/items/SIZC6NEC",
"type": "application/json"
},
"alternate": {
"href": "https://www.zotero.org/groups/xxx/items/SIZC6NEC",
"type": "text/html"
}
},
From a semantic point of view this seems inconsistent, as it then it is impossible to relate to an existing resource (as the scheme and the www as part of the host is relevant for semantic reference in URI and IRI).
Yet, changing the scheme may break existing links from a time when the item itself was still in http or where tools manually correct this inconsistency.
How do the Zotero specifications suggest to use relations for retrieval and reference?
Upgrade Storage
The URI in the relations is just that, it's a (stable) identifier. It's available in the Zotero data model as item.uri and it's used in several places, including to link items to references in the word processor. It used to _also_ work as a link/URL, but no longer does.
The links are just that -- active links to an item. Why would that be the case? You get the item URI either locally or construct it via information available from the API -- user/group ID and item ID.
Vice versa, you can easily use the information included in the item URI to construct the API call (or the regular web library link) for an item.
I see the functional difference. Yet, the API does not return item.uri in the JSON, does it?
https://api.zotero.org/users/475425/items/X42A7DEE?v=3
So, where do I get exactly "http://zotero.org/groups/xxx/items/RM2DVJX7" as the URI that dc:relation has as its named object.
Of course, it's a simple parsing of the URL or composing it from other data returned in the JSON from the API, but I am more approaching it from a semantic web perspective where http://zotero.org/groups/xxx/items/RM2DVJX7 would be a named node.
Maye the JSON should have a key such as uri or @id with value "http://zotero.org/groups/xxx/items/RM2DVJX7" ?