diff --git a/context-ore.json b/context-ore.json index 1defc04..fa604b4 100644 --- a/context-ore.json +++ b/context-ore.json @@ -43,8 +43,8 @@ "ore:Aggregation" : { "@id" : "http://www.openarchives.org/ore/terms/Aggregation" }, - "ore:proxies": { - "@reverse" : "http://www.openarchives.org/ore/terms/proxyIn" + "ore:proxy": { + "@reverse" : "http://www.openarchives.org/ore/terms/proxyFor" } } } diff --git a/context.json b/context.json index b9ded39..efaecf9 100644 --- a/context.json +++ b/context.json @@ -7,6 +7,10 @@ "@id" : "http://www.openarchives.org/ore/terms/proxyFor", "@type" : "@id" }, + "proxyIn" : { + "@id" : "http://www.openarchives.org/ore/terms/proxyFor", + "@type" : "@id" + }, "lineage" : { "@id" : "http://www.openarchives.org/ore/terms/lineage", "@type" : "@id" @@ -32,10 +36,6 @@ "@id" : "http://www.openarchives.org/ore/terms/isAggregatedBy", "@type" : "@id" }, - "proxyIn" : { - "@id" : "http://www.openarchives.org/ore/terms/proxyIn", - "@type" : "@id" - }, "aggregates" : { "@id" : "http://www.openarchives.org/ore/terms/aggregates", "@type" : "@id", @@ -46,8 +46,8 @@ "@type" : "@id", "@container": "@set" }, - "proxies": { - "@reverse" : "http://www.openarchives.org/ore/terms/proxyIn", + "proxy": { + "@reverse" : "http://www.openarchives.org/ore/terms/proxyFor", "@container": "@set" } } diff --git a/frame.json b/frame.json index 35b9ba5..95d477f 100644 --- a/frame.json +++ b/frame.json @@ -3,7 +3,6 @@ "describes": { "@type": "Aggregation", "isDescribedBy": { "@embed": false } , - "aggregates": { "@embed": true } , - "proxies": { "@embed": true } + "aggregates": { "@embed": true } } } diff --git a/jsonld-examples/complete-example.json b/jsonld-examples/complete-example.json index 8d86bbb..48ef0d0 100644 --- a/jsonld-examples/complete-example.json +++ b/jsonld-examples/complete-example.json @@ -9,48 +9,51 @@ "http://example.com/aggregation-1.jsonld" ], "aggregates": [ - "http://example.com/document-1", + { "@id": "http://example.com/document-1", + "proxy": { + "@id": "urn:uuid:d4e63599-d28d-4966-8606-dbb985a865f2", + "@type": "Proxy", + "proxyIn": "http://example.com/aggregation-1" + } + }, { "@id": "http://other.example.org/data-2", "isAggregatedBy": { "@id": "http://other.example.org/aggregation-2", "@type": "Aggregation", "isDescribedBy": "http://other.example.org/aggregation-2.rdf" - } + }, + "proxy": { + "@id": "urn:uuid:05bd5e0c-94c7-4856-a53f-7f6cf0756751", + "@type": "Proxy", + "proxyIn": "http://example.com/aggregation-1", + "lineage": { + "@id": "urn:uuid:360ea070-efee-11e3-ac10-0800200c9a66", + "@type": "Proxy", + "proxyFor": "http://other.example.org/data-2", + "proxyIn": "http://other.example.org/aggregation-2" } + } }, { "@id": "http://other.example.org/aggregation-3", "@type": "Aggregation", "isDescribedBy": [ "http://other.example.org/aggregation-3.rdf", - "http://other.example.org/aggregation-3.jsonld" ] + "http://other.example.org/aggregation-3.jsonld" ], + "proxy": { + "@id": "urn:uuid:c0f5f1ad-5269-4cfc-b9f5-e9621c499f53", + "@type": "Proxy", + "proxyIn": "http://example.com/aggregation-1" + } }, { "@id": "urn:uuid:09561248-bf55-4c85-930a-9a7a60e81602", "@type": "Proxy", "proxyFor": "http://example.com/document-1", - "proxyIn": "http://other.example.org/aggregation-3" - } - ], - "proxies": [ - { "@id": "urn:uuid:d4e63599-d28d-4966-8606-dbb985a865f2", + "proxyIn": "http://other.example.org/aggregation-3", + "proxy": { + "@id": "urn:uuid:318745e0-5ea4-4a68-8a0a-ab27ab96985a", "@type": "Proxy", - "proxyFor": "http://example.com/document-1" - }, - { "@id": "urn:uuid:05bd5e0c-94c7-4856-a53f-7f6cf0756751", - "@type": "Proxy", - "proxyFor": "http://other.example.org/data-2", - "lineage": { - "@id": "urn:uuid:360ea070-efee-11e3-ac10-0800200c9a66", - "@type": "Proxy", - "proxyFor": "http://other.example.org/data-2", - "proxyIn": "http://other.example.org/aggregation-2" } - }, - { "@id": "urn:uuid:c0f5f1ad-5269-4cfc-b9f5-e9621c499f53", - "@type": "Proxy", - "proxyFor": "http://other.example.org/aggregation-3" - }, - { "@id": "urn:uuid:318745e0-5ea4-4a68-8a0a-ab27ab96985a", - "@type": "Proxy", - "proxyFor": "urn:uuid:09561248-bf55-4c85-930a-9a7a60e81602" - } + "proxyIn": "http://example.com/aggregation-1" + } + } ], "similarTo": "http://dx.doi.org/10.1002/cpe.1594" } -} +} \ No newline at end of file diff --git a/jsonld.html b/jsonld.html index 5c9e323..3070e53 100644 --- a/jsonld.html +++ b/jsonld.html @@ -31,25 +31,23 @@ - +
OAI logoOpen Archives Initiative
Object Reuse and Exchange
Open Archives Initiative
Object Raeuse and Exchange
ORE logo

ORE User Guide - Resource Map Implementation in JSON-LD

-

2014-08-14

+

2015-01-05

This version:
-
http://www.openarchives.org/ore/0.9/jsonld
+
http://www.openarchives.org/ore/0.9.1/jsonld
doi:10.5281/zenodo.11293
Latest version:
http://www.openarchives.org/ore/jsonld
-
Editors
@@ -66,6 +64,9 @@

2014-08-14

Simeon Warner, Cornell University
+
+ Robert Sanderson, + Stanford University
@@ -568,7 +569,7 @@

isAggregatedBy, isDescribedBy

-

proxies, proxyFor, proxyIn

+

proxy, proxyFor, proxyIn

A Proxy @@ -586,41 +587,38 @@

proxies, proxyFor, proxyIn

"@id": "http://example.com/aggregation-1", "@type": "Aggregation", "aggregates": [ - { "@id": "http://example.com/document-1" } - ], - - "proxies": [ - { "@id": "urn:uuid:d4e63599-d28d-4966-8606-dbb985a865f2", + { "@id": "http://example.com/document-1", + + "proxy": { + "@id": "urn:uuid:d4e63599-d28d-4966-8606-dbb985a865f2", "@type": "Proxy", - "proxyFor": "http://example.com/document-1" } + "proxyIn": "http://example.com/aggregation-1" + } + + } ] - } }

-The property proxies SHOULD be a JSON List of resources, -each of which SHOULD have +The property proxy SHOULD be a JSON object, which SHOULD have "@type": "Proxy" and MUST -identify the aggregated resource using proxyFor. -The resource identified by proxyFor MUST be listed under aggregates. +identify the aggregation using proxyIn. +The resource referenced by proxyIn MUST be the Aggregation that the ResourceMap describes.

The proxy MUST be identified with an URI using @id, which MAY be a randomly generated UUID -[UUID] -using the urn:uuuid: scheme. +[UUID] using the urn:uuuid: scheme.

Note that, unlike in other serializations of ORE resource maps, -the property proxyIn -SHOULD NOT be given for proxies listed under -proxies (it is already given as proxies is a +the property proxyFor +SHOULD NOT be given for proxies listed under the aggregated resources (it is already given, as proxy is a @reverse -property for proxyIn); -however in the special case of aggregating -a proxy, that MUST specify proxyIn, which MUST be a different Aggregation:

+property for proxyFor); +however in the special case of aggregating a proxy, it MUST specify both proxyIn and proxyFor:

 { "@context": "https://w3id.org/ore/context",
@@ -641,9 +639,7 @@ 

proxies, proxyFor, proxyIn

}

-Such "external" proxies MUST NOT be listed under proxies as a proxy can -only be proxyFor for a single Aggregation, and an -aggregation SHOULD NOT aggregate its own proxies. The proxyIn +An aggregation SHOULD NOT aggregate its own proxies. The proxyIn MAY be expanded to a JSON Object with @id and "@type": "Aggregation" to provide isDescribedBy .

@@ -664,12 +660,11 @@

lineage and provenance of proxy

"@id": "http://example.com/aggregation-1", "@type": "Aggregation", "aggregates": [ - { "@id": "http://example.com/document-1" }, - ], - "proxies": [ - { "@id": "urn:uuid:d4e63599-d28d-4966-8606-dbb985a865f2", + { "@id": "http://example.com/document-1", + "proxy": { + "@id": "urn:uuid:d4e63599-d28d-4966-8606-dbb985a865f2", "@type": "Proxy", - "proxyFor": "http://example.com/document-1" + "proxyIn": "http://example.com/aggregation-1" "lineage" { "@id": "urn:uuid:09561248-bf55-4c85-930a-9a7a60e81602", @@ -678,6 +673,8 @@

lineage and provenance of proxy

"proxyIn": "http://other.example.org/aggregation-3" }
+ } + } ] } } @@ -707,29 +704,27 @@

lineage and provenance of proxy

"@id": "http://example.com/aggregation-1", "@type": "Aggregation", "aggregates": [ - "http://example.com/document-1" - ], - "proxies": [ - { "@id": "urn:uuid:d4e63599-d28d-4966-8606-dbb985a865f2", - "@type": "Proxy", - "proxyFor": "http://example.com/document-1", + { "@id": "http://example.com/document-1", + "proxy": { + "@id": "urn:uuid:d4e63599-d28d-4966-8606-dbb985a865f2", + "@type": "Proxy", + "proxyIn": "http://example.com/aggregation-1", - "prov:attributedTo": { - "@id": "http://orcid.org/0000-0003-4913-1485", - "foaf:name": "Matthew Gamble" - }, - "prov:generatedAtTime": "2014-05-17T14:00:00Z" + "prov:attributedTo": { + "@id": "http://orcid.org/0000-0003-4913-1485", + "foaf:name": "Matthew Gamble" + }, + "prov:generatedAtTime": "2014-05-17T14:00:00Z" - } + } + } ] } } -
-

3. ORE JSON-LD context

@@ -848,8 +843,8 @@

3.2 Content of ORE JSON-LD context

"@id" : "http://www.openarchives.org/ore/terms/isDescribedBy", "@type" : "@id" }, - "proxies": { - "@reverse" : "http://www.openarchives.org/ore/terms/proxyIn" + "proxy": { + "@reverse" : "http://www.openarchives.org/ore/terms/proxyFor" } } } @@ -896,47 +891,50 @@

4.1 Example JSON-LD

"http://example.com/aggregation-1.jsonld" ], "aggregates": [ - "http://example.com/document-1", + { "@id": "http://example.com/document-1", + "proxy": { + "@id": "urn:uuid:d4e63599-d28d-4966-8606-dbb985a865f2", + "@type": "Proxy", + "proxyIn": "http://example.com/aggregation-1" + } + }, { "@id": "http://other.example.org/data-2", "isAggregatedBy": { "@id": "http://other.example.org/aggregation-2", "@type": "Aggregation", "isDescribedBy": "http://other.example.org/aggregation-2.rdf" - } + }, + "proxy": { + "@id": "urn:uuid:05bd5e0c-94c7-4856-a53f-7f6cf0756751", + "@type": "Proxy", + "proxyIn": "http://example.com/aggregation-1", + "lineage": { + "@id": "urn:uuid:360ea070-efee-11e3-ac10-0800200c9a66", + "@type": "Proxy", + "proxyFor": "http://other.example.org/data-2", + "proxyIn": "http://other.example.org/aggregation-2" } + } }, { "@id": "http://other.example.org/aggregation-3", "@type": "Aggregation", "isDescribedBy": [ "http://other.example.org/aggregation-3.rdf", - "http://other.example.org/aggregation-3.jsonld" ] + "http://other.example.org/aggregation-3.jsonld" ], + "proxy": { + "@id": "urn:uuid:c0f5f1ad-5269-4cfc-b9f5-e9621c499f53", + "@type": "Proxy", + "proxyIn": "http://example.com/aggregation-1" + } }, { "@id": "urn:uuid:09561248-bf55-4c85-930a-9a7a60e81602", "@type": "Proxy", "proxyFor": "http://example.com/document-1", - "proxyIn": "http://other.example.org/aggregation-3" - } - ], - "proxies": [ - { "@id": "urn:uuid:d4e63599-d28d-4966-8606-dbb985a865f2", + "proxyIn": "http://other.example.org/aggregation-3", + "proxy": { + "@id": "urn:uuid:318745e0-5ea4-4a68-8a0a-ab27ab96985a", "@type": "Proxy", - "proxyFor": "http://example.com/document-1" - }, - { "@id": "urn:uuid:05bd5e0c-94c7-4856-a53f-7f6cf0756751", - "@type": "Proxy", - "proxyFor": "http://other.example.org/data-2", - "lineage": { - "@id": "urn:uuid:360ea070-efee-11e3-ac10-0800200c9a66", - "@type": "Proxy", - "proxyFor": "http://other.example.org/data-2", - "proxyIn": "http://other.example.org/aggregation-2" } - }, - { "@id": "urn:uuid:c0f5f1ad-5269-4cfc-b9f5-e9621c499f53", - "@type": "Proxy", - "proxyFor": "http://other.example.org/aggregation-3" - }, - { "@id": "urn:uuid:318745e0-5ea4-4a68-8a0a-ab27ab96985a", - "@type": "Proxy", - "proxyFor": "urn:uuid:09561248-bf55-4c85-930a-9a7a60e81602" - } + "proxyIn": "http://example.com/aggregation-1" + } + } ], "similarTo": "http://dx.doi.org/10.1002/cpe.1594" } @@ -1048,9 +1046,8 @@

5. ORE JSON-LD frame

{ "@context": "https://w3id.org/ore/context", "describes": { "@type": "Aggregation", - "isDescribedBy": { "@embed": false } , - "aggregates": { "@embed": true } , - "proxies": { "@embed": true } + "isDescribedBy": { "@embed": false }, + "aggregates": { "@embed": true } } } @@ -1261,7 +1258,7 @@

5.1 Example framing

5.2 Framing proxies

- Note: @reverse properties like proxies is not + Note: @reverse properties like proxy is not at the time of writing commonly supported by JSON-LD Framing processors, and therefore have to be extracted separately using this frame for proxies: