From fe761650318fcdbff0a601da124a089ab18321a4 Mon Sep 17 00:00:00 2001
From: Rob Sanderson
Date: Mon, 5 Jan 2015 09:21:17 -0800
Subject: [PATCH 1/2] proxies to proxy switch, other than full docs
---
context-ore.json | 4 +-
context.json | 12 +++---
frame.json | 3 +-
jsonld-examples/complete-example.json | 59 ++++++++++++++-------------
4 files changed, 40 insertions(+), 38 deletions(-)
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
From 68641e0701cba8b4d87d40fab17c377f56fdf46d Mon Sep 17 00:00:00 2001
From: Rob Sanderson
Date: Mon, 5 Jan 2015 09:36:00 -0800
Subject: [PATCH 2/2] Updated documentation
---
jsonld.html | 157 ++++++++++++++++++++++++++--------------------------
1 file changed, 77 insertions(+), 80 deletions(-)
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 |
 |
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: