-
Notifications
You must be signed in to change notification settings - Fork 32
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
Multiple Geolocating Assertions #140
Comments
There are multiple ways to do this depending on your situation. If you own the resource, you can either add a If you choose to annotate, here is what that looks like in Presentation API 3 {
"id":"https://example.com/annotation/12345",
"type":"Annotation",
"@context":"http://iiif.io/api/presentation/3/context.json",
"motivation":"geocode",
"body":{
"id":"https://example.org/geojson/id/123",
"@context":"http://geojson.org/geojson-ld/geojson-context.jsonld",
"type":"Feature",
"properties":{
"label":"String this geometry node should use as a label.",
"description":"Some description to go along with node."
},
"geometry":{
"type":"Point",
"coordinates":[
7,
7
]
}
},
"target":"https://iiif.example.org/canvas/123"
} You can target the same resource with many of these Annotations that represent separate geographic assertions. You can also create an {
"id":"https://iiif.example.org/canvas/123",
"type":"Canvas",
"@context":"http://iiif.io/api/presentation/3/context.json",
"label":{
"none":[
"pg. 2"
]
},
"height":1000,
"width":750,
"items":[
],
"annotations":[
{
"@context":"http://iiif.io/api/presentation/3/context.json",
"id":"https://example.org/iiif/annopage/123",
"type":"AnnotationPage",
"items":[
{
"id":"https://example.com/annotation/12345",
"type":"Annotation",
"@context":"http://iiif.io/api/presentation/3/context.json",
"motivation":"geocode",
"body":{
"id":"https://example.org/geojson/id/123",
"@context":"http://geojson.org/geojson-ld/geojson-context.jsonld",
"type":"Feature",
"properties":{
"label":"String this geometry node should use as a label.",
"description":"Some description to go along with node."
},
"geometry":{
"type":"Point",
"coordinates":[
7,
7
]
}
},
"target":"https://iiif.example.org/canvas/123"
},
.
.
.
]
}
]
} It is a little trickier with presentation 2, since the atomic annotation is not as supported. You would have to make an {
"@context":"http://iiif.io/api/presentation/2/context.json",
"@id":"http://example.org/iiif/book1/canvas/p1",
"@type":"sc:Canvas",
"label":"p. 1",
"height":1000,
"width":750,
"images":[
],
"otherContent":[
{
"@id":"http://example.org/annolist/123",
"@context":"http://iiif.io/api/presentation/2/context.json",
"@type":"sc:AnnotationList",
"resources":[
{
"@type":"oa:Annotation",
"motivation":"geocode",
"resource":{
"@id":"https://example.org/geojson/id/123",
"@context":"http://geojson.org/geojson-ld/geojson-context.jsonld",
"@type":"Feature",
"properties":{
"label":"String this geometry node should use as a label.",
"description":"Some description to go along with node."
},
"geometry":{
"type":"Point",
"coordinates":[
7,
7
]
}
},
"on":"https://iiif.example.org/canvas/123"
},
.
.
.
]
}
]
} If you choose to implement using a {
"id":"https://example.org/iiif/book1/canvas/p2",
"type":"Canvas",
"@context":"http://iiif.io/api/presentation/3/context.json",
"label":{
"none":[
"pg. 2"
]
},
"height":1000,
"width":750,
"items":[
],
"service":[
{
"id":"https://example.org/geo/service/point(7,7)&format=geojson",
"type":"GeoJSON_Serivce",
"profile":"http://geojson.org/geojson-spec.html",
"@context":"http://geojson.org/geojson-ld/geojson-context.jsonld",
"properties":{
"type":"Feature",
"label":"String this geometry node should use as a label.",
"description":"Some description to go along with node.",
"motivation":"geocode"
},
"geometry":{
"type":"Point",
"coordinates":[
7,
7
]
}
},
.
.
.
]
} This has a small issue with how This is what that service block looks like in Presentation 2. It is a bit different since {
"@context":"http://iiif.io/api/presentation/2/context.json",
"@id":"http://example.org/iiif/book1/canvas/p1",
"@type":"sc:Canvas",
"label":"p. 1",
"height":1000,
"width":750,
"images":[
],
"otherContent":[
],
"service":{
"@id":"https://example.org/geo/service/point-collection()&format=geojson",
"@context":"http://geojson.org/geojson-ld/geojson-context.jsonld",
"profile":"http://geojson.org/geojson-spec.html",
"@type":"FeatureCollection",
"features":[
{
"@type":"Feature",
"properties":{
"label":"String this geometry node should use as a label.",
"description":"Some description to go along with node.",
"motivation":"geocode"
},
"geometry":{
"type":"Point",
"coordinates":[
7,
7
]
}
}
]
}
} You will also notice I have chosen the Note that Note that Note that |
Going to focus this recipe as a solution for IIIF/iiif-stories#116 using IIIF Annotation Page(s). |
This variation is too similar to #139 and will not be implemented. |
Multiple Geocoding Assertions
(Provide link to
index.md
of the issue, if available. To be filled in after issue is created - you need the issue number!)Use case
SLU is using geographic Annotations to describe JSON-LD resources. We use mapping tools like Leaflet to render these Annotations into meaningful interfaces. The general use case is I know the JSON-LD URI of some data resource. I may own the database in which it presides, I may own the resources, or it may be entirely third party. The resource might not be IIIF, but for our purposes here say that it is. I have geographic information, which may include some metadata beyond geographic coordinates, that applies to this resource. In this case, I have a multitude of geographic data to describe this resource (its origin, its demise, etc.). I would like to make multiple geographic assertions about this single resource in a IIIF compliant manner.
Further Information
This is originating from the IIIF + Maps conference, the original issue can be found at IIIF/iiif-stories#119.
This recipe is an extension of #139.
The text was updated successfully, but these errors were encountered: