HydraCG/Specifications

Geospatial tiling description in Hydra

pietercolpaert opened this issue · 3 comments

Geospatial tiling in e.g., OpenStreetMap works according to a formula. When you open a map, and you want to know which tiles you have to show, you have to use a formula (https://wiki.openstreetmap.org/wiki/Slippy_map_tilenames#ECMAScript_(JavaScript/ActionScript,_etc.)) to calculate which tiles you need, and fill out the description of these tiles in a URI template as follows:
https://c.tile.openstreetmap.org/{z}/{x}/{y}.png which results in a URL like https://c.tile.openstreetmap.org/15/16722/10964.png

I think this tiling strategy is pretty powerful, and want to be able to express this in my Linked Data documents as a hypermedia form.

My current suggestion to describe this would be as follows:

<https://tiles.openplanner.team/planet> a hydra:Collection ;
            hydra:search [
              hydra:template "https://c.tile.openstreetmap.org/{z}/{x}/{y}.examplejsonld";
              hydra:variableRepresentation hydra:BasicRepresentation;
              hydra:mapping [
                a hydra:IriTemplateMapping;
                hydra:variable "x";
                hydra:property tiles:longitudeTile ;
                hydra:required true .
              ],[
                a hydra:IriTemplateMapping;
                hydra:variable "y";
                hydra:property tiles:latitudeTile ;
                hydra:required true .
              ],[
                a hydra:IriTemplateMapping;
                hydra:variable "z";
                hydra:property tiles:zoomTile ;
                hydra:required true .
              ] ;
            dcterms:hasPart <this_page> .

Currently this introduces 3 new properties: tiles:longitudeTile, tiles:latitudeTile, and tiles:zoomTile. Do you think adding these semantics within the Hydra spec makes sense, or should I add these elsewhere?

This seems like a good use of Hydra.
However, I would not add tiles:longitudeTile, tiles:latitudeTile, and tiles:zoomTile to Hydra itself, I would definitely create a separate vocab (+spec?) for this. Hydra could refer to this as a good example though.

What do we mean to indicate by hydra:manages <http://www.wikidata.org/entity/Q34442>?

What do we mean to indicate by hydra:manages <http://www.wikidata.org/entity/Q34442>?

I removed that from my proposal above now. It was a gimmick to say that the types of the things in this collection were of the type Roads. I’m working on a JSON-LD tiling mechanism to describe roads.