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 @@
![]() |
- Open Archives Initiative Object Reuse and Exchange |
+ Open Archives Initiative Object Raeuse and Exchange |
![]() |
A Proxy @@ -586,41 +587,38 @@
-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:
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 .
- 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: