BASE   <https://wunderfacts.com/adv/index>
PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX doap:    <http://usefulinc.com/ns/doap#>
PREFIX foaf:    <http://xmlns.com/foaf/0.1/>
PREFIX hydra:   <http://www.w3.org/ns/hydra/core#>
PREFIX ldp:     <http://www.w3.org/ns/ldp#>
PREFIX prov:    <http://www.w3.org/ns/prov#>
PREFIX rdfs:    <http://www.w3.org/2000/01/rdf-schema#>
PREFIX sh:      <http://www.w3.org/ns/shacl#>
PREFIX skos:    <http://www.w3.org/2004/02/skos/core#>

<>      a                  ldp:BasicContainer;
        dcterms:license    <https://www.govdata.de/dl-de/by-2-0>;
        dcterms:publisher  <#advwrap>;
        dcterms:source     <https://www.adv-online.de/>;
        dcterms:title      "Linked AdV — official German surveying data (AAA model + products) as Linked Data";
        hydra:search       [ a                             hydra:IriTemplate;
                             rdfs:comment                  "Ground heights as a Terrarium PNG tile z/x/y (height = R*256 + G + B/256 - 32768 m), from a pre-built pyramid of a bulk height model, or live from a WCS coverage; 404 outside its coverage.";
                             hydra:mapping                 [ a               hydra:IriTemplateMapping;
                                                             rdfs:comment    "A terrain pin {product}:{region} (terrain.json lists them, each with its TileJSON), or a WCS service URI from status, with coverage.";
                                                             skos:example    "dgm1:bayern";
                                                             hydra:required  true;
                                                             hydra:variable  "s";
                                                             sh:pattern      "^(https?://.+|[a-z0-9-]+:[a-z0-9-]+)$"
                                                           ];
                             hydra:mapping                 [ a               hydra:IriTemplateMapping;
                                                             rdfs:comment    "With a WCS s=: one of its coverages (status?s={s} lists them); the tile is cut live.";
                                                             hydra:required  false;
                                                             hydra:variable  "coverage";
                                                             sh:pattern      "^.+$"
                                                           ];
                             hydra:mapping                 [ a               hydra:IriTemplateMapping;
                                                             rdfs:comment    "Web-Mercator zoom, within the pin's range (terrain.json?s={s}).";
                                                             skos:example    "12";
                                                             hydra:required  true;
                                                             hydra:variable  "z";
                                                             sh:pattern      "^[0-9]+$"
                                                           ];
                             hydra:mapping                 [ a               hydra:IriTemplateMapping;
                                                             rdfs:comment    "Tile row.";
                                                             skos:example    "1421";
                                                             hydra:required  true;
                                                             hydra:variable  "y";
                                                             sh:pattern      "^[0-9]+$"
                                                           ];
                             hydra:mapping                 [ a               hydra:IriTemplateMapping;
                                                             rdfs:comment    "Tile column.";
                                                             skos:example    "2179";
                                                             hydra:required  true;
                                                             hydra:variable  "x";
                                                             sh:pattern      "^[0-9]+$"
                                                           ];
                             hydra:operation               [ a                     hydra:Operation;
                                                             hydra:method          "GET";
                                                             hydra:possibleStatus  [ a                 hydra:Status;
                                                                                     hydra:statusCode  502
                                                                                   ];
                                                             hydra:possibleStatus  [ a                 hydra:Status;
                                                                                     hydra:statusCode  304
                                                                                   ];
                                                             hydra:possibleStatus  [ a                 hydra:Status;
                                                                                     hydra:statusCode  501
                                                                                   ];
                                                             hydra:possibleStatus  [ a                 hydra:Status;
                                                                                     hydra:statusCode  200
                                                                                   ];
                                                             hydra:possibleStatus  [ a                 hydra:Status;
                                                                                     hydra:statusCode  504
                                                                                   ];
                                                             hydra:possibleStatus  [ a                 hydra:Status;
                                                                                     hydra:statusCode  404
                                                                                   ];
                                                             hydra:possibleStatus  [ a                 hydra:Status;
                                                                                     hydra:statusCode  503
                                                                                   ];
                                                             hydra:possibleStatus  [ a                 hydra:Status;
                                                                                     hydra:statusCode  400
                                                                                   ];
                                                             hydra:returnsHeader   "Last-Modified" , "Vary" , "ETag"
                                                           ];
                             hydra:template                "terrain{?s,coverage,z,x,y}";
                             hydra:variableRepresentation  hydra:BasicRepresentation
                           ];
        hydra:search       [ a                             hydra:IriTemplate;
                             rdfs:comment                  "The objects of one source that intersect a box (geo:sfIntersects: touching or overlapping it), as an RFC 9264 linkset (application/linkset+json): every object an item link to its oid/{oid}.json, all of them, no paging. A live WFS tests the geometry itself (its BBOX filter); a dump pin tests the object's bounding box, so it can also list an object whose geometry misses the box. At most 20000 objects: a box with more is 400 (make it smaller). Only ids are asked upstream.";
                             hydra:mapping                 [ a               hydra:IriTemplateMapping;
                                                             rdfs:comment    "South-west corner as lat,lon; with ne, instead of bbox.";
                                                             hydra:required  false;
                                                             hydra:variable  "sw";
                                                             sh:pattern      "^-?[0-9]+(\\.[0-9]+)?,-?[0-9]+(\\.[0-9]+)?$"
                                                           ];
                             hydra:mapping                 [ a               hydra:IriTemplateMapping;
                                                             rdfs:comment    "The ONE source asked: a WFS service that oid/{oid} resolves to (adv-oid-routes; others are 400), or a dump pin {product}:{region}.";
                                                             skos:example    "https://geoservices.bayern.de/wfs/v1/ogc_atkis_basisdlm.cgi";
                                                             hydra:property  dcterms:source;
                                                             hydra:required  true;
                                                             hydra:variable  "s";
                                                             sh:pattern      "^(https?://.+|[a-z0-9-]+:[a-z0-9-]+)$"
                                                           ];
                             hydra:mapping                 [ a               hydra:IriTemplateMapping;
                                                             rdfs:comment    "North-east corner as lat,lon; with sw, instead of bbox.";
                                                             hydra:required  false;
                                                             hydra:variable  "ne";
                                                             sh:pattern      "^-?[0-9]+(\\.[0-9]+)?,-?[0-9]+(\\.[0-9]+)?$"
                                                           ];
                             hydra:mapping                 [ a               hydra:IriTemplateMapping;
                                                             rdfs:comment    "Same as typenames.";
                                                             hydra:property  <http://rdfs.org/ns/void#class>;
                                                             hydra:required  false;
                                                             hydra:variable  "typename";
                                                             sh:pattern      "^[A-Za-z0-9_]+:[A-Za-z0-9_]+(,[A-Za-z0-9_]+:[A-Za-z0-9_]+)*$"
                                                           ];
                             hydra:mapping                 [ a               hydra:IriTemplateMapping;
                                                             rdfs:comment    "Feature types, comma-separated; without, every type of s.";
                                                             skos:example    "adv:AX_Wald";
                                                             hydra:property  <http://rdfs.org/ns/void#class>;
                                                             hydra:required  false;
                                                             hydra:variable  "typenames";
                                                             sh:pattern      "^[A-Za-z0-9_]+:[A-Za-z0-9_]+(,[A-Za-z0-9_]+:[A-Za-z0-9_]+)*$"
                                                           ];
                             hydra:mapping                 [ a               hydra:IriTemplateMapping;
                                                             rdfs:comment    "West,south,east,north in WGS84 degrees (longitude first). This or sw and ne is required.";
                                                             skos:example    "11.07,49.45,11.09,49.46";
                                                             hydra:required  false;
                                                             hydra:variable  "bbox";
                                                             sh:pattern      "^-?[0-9]+(\\.[0-9]+)?,-?[0-9]+(\\.[0-9]+)?,-?[0-9]+(\\.[0-9]+)?,-?[0-9]+(\\.[0-9]+)?$"
                                                           ];
                             hydra:operation               [ a                     hydra:Operation;
                                                             hydra:method          "GET";
                                                             hydra:possibleStatus  [ a                 hydra:Status;
                                                                                     hydra:statusCode  503
                                                                                   ];
                                                             hydra:possibleStatus  [ a                 hydra:Status;
                                                                                     hydra:statusCode  504
                                                                                   ];
                                                             hydra:possibleStatus  [ a                 hydra:Status;
                                                                                     hydra:statusCode  304
                                                                                   ];
                                                             hydra:possibleStatus  [ a                 hydra:Status;
                                                                                     hydra:statusCode  400
                                                                                   ];
                                                             hydra:possibleStatus  [ a                 hydra:Status;
                                                                                     hydra:statusCode  200
                                                                                   ];
                                                             hydra:possibleStatus  [ a                 hydra:Status;
                                                                                     hydra:statusCode  502
                                                                                   ];
                                                             hydra:possibleStatus  [ a                 hydra:Status;
                                                                                     hydra:statusCode  404
                                                                                   ];
                                                             hydra:returnsHeader   "ETag" , "Last-Modified" , "Vary"
                                                           ];
                             hydra:template                "intersects{?s,bbox,sw,ne,typenames,typename}";
                             hydra:variableRepresentation  hydra:BasicRepresentation
                           ];
        hydra:search       [ a                             hydra:IriTemplate;
                             rdfs:comment                  "Features of one source: in a box (bbox), by attribute (eq, like), or by id.";
                             hydra:mapping                 [ a               hydra:IriTemplateMapping;
                                                             rdfs:comment    "South-west corner as lat,lon; with ne, instead of bbox.";
                                                             hydra:required  false;
                                                             hydra:variable  "sw";
                                                             sh:pattern      "^-?[0-9]+(\\.[0-9]+)?,-?[0-9]+(\\.[0-9]+)?$"
                                                           ];
                             hydra:mapping                 [ a               hydra:IriTemplateMapping;
                                                             rdfs:comment    "North-east corner as lat,lon; with sw, instead of bbox.";
                                                             hydra:required  false;
                                                             hydra:variable  "ne";
                                                             sh:pattern      "^-?[0-9]+(\\.[0-9]+)?,-?[0-9]+(\\.[0-9]+)?$"
                                                           ];
                             hydra:mapping                 [ a               hydra:IriTemplateMapping;
                                                             rdfs:comment    "With id: the attribute that holds it (objid on BKG DLM250/DLM1000) instead of gml:id.";
                                                             hydra:required  false;
                                                             hydra:variable  "idattr";
                                                             sh:pattern      "^[A-Za-z0-9_]+$"
                                                           ];
                             hydra:mapping                 [ a               hydra:IriTemplateMapping;
                                                             rdfs:comment    "Features to skip; default 0.";
                                                             hydra:property  hydra:offset;
                                                             hydra:required  false;
                                                             hydra:variable  "offset";
                                                             sh:pattern      "^[0-9]+$"
                                                           ];
                             hydra:mapping                 [ a               hydra:IriTemplateMapping;
                                                             rdfs:comment    "West,south,east,north in WGS84 degrees. Without bbox and id, eq or like is required.";
                                                             skos:example    "11.40,48.00,11.50,48.10";
                                                             hydra:required  false;
                                                             hydra:variable  "bbox";
                                                             sh:pattern      "^-?[0-9]+(\\.[0-9]+)?,-?[0-9]+(\\.[0-9]+)?,-?[0-9]+(\\.[0-9]+)?,-?[0-9]+(\\.[0-9]+)?$"
                                                           ];
                             hydra:mapping                 [ a               hydra:IriTemplateMapping;
                                                             rdfs:comment    "Same as typenames.";
                                                             hydra:property  <http://rdfs.org/ns/void#class>;
                                                             hydra:required  false;
                                                             hydra:variable  "typename";
                                                             sh:pattern      "^[A-Za-z0-9_]+:[A-Za-z0-9_]+(,[A-Za-z0-9_]+:[A-Za-z0-9_]+)*$"
                                                           ];
                             hydra:mapping                 [ a               hydra:IriTemplateMapping;
                                                             rdfs:comment    "property:value equality. Without bbox it is a search of the whole source, e.g. typenames=adv:AX_Strasse&eq=bezeichnung:A9 on a Basis-DLM service or dump pin; BKG's DLM250/DLM1000 carry no bezeichnung or gewaesserkennzahl to match.";
                                                             skos:example    "vegetationsmerkmal:1100";
                                                             hydra:required  false;
                                                             hydra:variable  "eq";
                                                             sh:pattern      "^[A-Za-z0-9_]+:.+$"
                                                           ];
                             hydra:mapping                 [ a               hydra:IriTemplateMapping;
                                                             rdfs:comment    "Features per page.";
                                                             skos:example    "3";
                                                             hydra:property  hydra:limit;
                                                             hydra:required  false;
                                                             hydra:variable  "count";
                                                             sh:pattern      "^[1-9][0-9]*$"
                                                           ];
                             hydra:mapping                 [ a               hydra:IriTemplateMapping;
                                                             rdfs:comment    "The ONE source asked: a WFS service URI (a dcat:service of dct:type \"wfs\" on status), or a dump pin {product}:{region} (the dct:identifier of a dcat:dataset on status). Nothing is routed across sources; off the source's coverage the answer is empty.";
                                                             skos:example    "https://geoservices.bayern.de/wfs/v1/ogc_atkis_basisdlm.cgi";
                                                             hydra:property  dcterms:source;
                                                             hydra:required  true;
                                                             hydra:variable  "s";
                                                             sh:pattern      "^(https?://.+|[a-z0-9-]+:[a-z0-9-]+)$"
                                                           ];
                             hydra:mapping                 [ a               hydra:IriTemplateMapping;
                                                             rdfs:comment    "One object by id; for an AAA OID prefer oid/{oid}, which picks the source itself.";
                                                             hydra:required  false;
                                                             hydra:variable  "id";
                                                             sh:pattern      "^[A-Za-z0-9_.-]+$"
                                                           ];
                             hydra:mapping                 [ a               hydra:IriTemplateMapping;
                                                             rdfs:comment    "Feature types, comma-separated, as status?s={source} lists them (void:class).";
                                                             skos:example    "adv:AX_Wald";
                                                             hydra:property  <http://rdfs.org/ns/void#class>;
                                                             hydra:required  false;
                                                             hydra:variable  "typenames";
                                                             sh:pattern      "^[A-Za-z0-9_]+:[A-Za-z0-9_]+(,[A-Za-z0-9_]+:[A-Za-z0-9_]+)*$"
                                                           ];
                             hydra:mapping                 [ a               hydra:IriTemplateMapping;
                                                             rdfs:comment    "property:pattern with * as wildcard; like eq.";
                                                             hydra:required  false;
                                                             hydra:variable  "like";
                                                             sh:pattern      "^[A-Za-z0-9_]+:.+$"
                                                           ];
                             hydra:operation               [ a                     hydra:Operation;
                                                             hydra:method          "GET";
                                                             hydra:possibleStatus  [ a                 hydra:Status;
                                                                                     hydra:statusCode  400
                                                                                   ];
                                                             hydra:possibleStatus  [ a                 hydra:Status;
                                                                                     hydra:statusCode  502
                                                                                   ];
                                                             hydra:possibleStatus  [ a                 hydra:Status;
                                                                                     hydra:statusCode  404
                                                                                   ];
                                                             hydra:possibleStatus  [ a                 hydra:Status;
                                                                                     hydra:statusCode  406
                                                                                   ];
                                                             hydra:possibleStatus  [ a                 hydra:Status;
                                                                                     hydra:statusCode  429
                                                                                   ];
                                                             hydra:possibleStatus  [ a                 hydra:Status;
                                                                                     hydra:statusCode  504
                                                                                   ];
                                                             hydra:possibleStatus  [ a                 hydra:Status;
                                                                                     hydra:statusCode  200
                                                                                   ];
                                                             hydra:possibleStatus  [ a                 hydra:Status;
                                                                                     hydra:statusCode  500
                                                                                   ];
                                                             hydra:returnsHeader   "ETag" , "Last-Modified" , "Vary"
                                                           ];
                             hydra:template                "wfs{?s,typenames,typename,bbox,sw,ne,count,offset,eq,like,id,idattr}";
                             hydra:variableRepresentation  hydra:BasicRepresentation
                           ];
        hydra:search       [ a                             hydra:IriTemplate;
                             rdfs:comment                  "The catalogue of sources (dcat:Catalog): services, dumps, their products and coverage.";
                             hydra:mapping                 [ a               hydra:IriTemplateMapping;
                                                             rdfs:comment    "One source's discovered record: feature types or layers, coverage, product, licence. Not together with region (400). Without s and region: every source, live reachability only.";
                                                             hydra:required  false;
                                                             hydra:variable  "s";
                                                             sh:pattern      "^(https?://.+|[a-z0-9-]+:[a-z0-9-]+)$"
                                                           ];
                             hydra:mapping                 [ a               hydra:IriTemplateMapping;
                                                             rdfs:comment    "A NUTS-1 code (de2 Bayern, ded Sachsen, dea Nordrhein-Westfalen): that region's sources.";
                                                             skos:example    "de2";
                                                             hydra:required  false;
                                                             hydra:variable  "region";
                                                             sh:pattern      "^de[0-9a-g]?$"
                                                           ];
                             hydra:operation               [ a                     hydra:Operation;
                                                             hydra:method          "GET";
                                                             hydra:possibleStatus  [ a                 hydra:Status;
                                                                                     hydra:statusCode  200
                                                                                   ];
                                                             hydra:possibleStatus  [ a                 hydra:Status;
                                                                                     hydra:statusCode  400
                                                                                   ];
                                                             hydra:possibleStatus  [ a                 hydra:Status;
                                                                                     hydra:statusCode  404
                                                                                   ];
                                                             hydra:possibleStatus  [ a                 hydra:Status;
                                                                                     hydra:statusCode  429
                                                                                   ];
                                                             hydra:possibleStatus  [ a                 hydra:Status;
                                                                                     hydra:statusCode  503
                                                                                   ];
                                                             hydra:returns         <http://www.w3.org/ns/dcat#Catalog>;
                                                             hydra:returnsHeader   "Vary" , "Last-Modified" , "ETag"
                                                           ];
                             hydra:template                "status{?s,region}";
                             hydra:variableRepresentation  hydra:BasicRepresentation
                           ];
        hydra:search       [ a                             hydra:IriTemplate;
                             rdfs:comment                  "A Web-Mercator tile z/x/y of a WMS layer (image) or a WCS coverage (heights).";
                             hydra:mapping                 [ a               hydra:IriTemplateMapping;
                                                             rdfs:comment    "A WCS coverage of s (status lists them as dcat:distribution): the tile's heights in metres (tile.tif, tile.png 16-bit; tile.ttl describes the tile).";
                                                             hydra:required  false;
                                                             hydra:variable  "coverage";
                                                             sh:pattern      "^.+$"
                                                           ];
                             hydra:mapping                 [ a               hydra:IriTemplateMapping;
                                                             rdfs:comment    "Tile row.";
                                                             skos:example    "11190";
                                                             hydra:required  true;
                                                             hydra:variable  "y";
                                                             sh:pattern      "^[0-9]+$"
                                                           ];
                             hydra:mapping                 [ a               hydra:IriTemplateMapping;
                                                             rdfs:comment    "Tile column.";
                                                             skos:example    "17392";
                                                             hydra:required  true;
                                                             hydra:variable  "x";
                                                             sh:pattern      "^[0-9]+$"
                                                           ];
                             hydra:mapping                 [ a               hydra:IriTemplateMapping;
                                                             rdfs:comment    "A WMS layer of s: the tile as a picture.";
                                                             skos:example    "de_basemapde_web_raster_grau";
                                                             hydra:required  false;
                                                             hydra:variable  "layer";
                                                             sh:pattern      "^.+$"
                                                           ];
                             hydra:mapping                 [ a               hydra:IriTemplateMapping;
                                                             rdfs:comment    "A WMS (with layer) or WCS (with coverage) service URI from status.";
                                                             skos:example    "https://sgx.geodatenzentrum.de/wms_basemapde";
                                                             hydra:required  true;
                                                             hydra:variable  "s";
                                                             sh:pattern      "^https?://.+$"
                                                           ];
                             hydra:mapping                 [ a               hydra:IriTemplateMapping;
                                                             rdfs:comment    "Web-Mercator zoom.";
                                                             skos:example    "15";
                                                             hydra:required  true;
                                                             hydra:variable  "z";
                                                             sh:pattern      "^[0-9]+$"
                                                           ];
                             hydra:operation               [ a                     hydra:Operation;
                                                             hydra:method          "GET";
                                                             hydra:possibleStatus  [ a                 hydra:Status;
                                                                                     hydra:statusCode  504
                                                                                   ];
                                                             hydra:possibleStatus  [ a                 hydra:Status;
                                                                                     hydra:statusCode  502
                                                                                   ];
                                                             hydra:possibleStatus  [ a                 hydra:Status;
                                                                                     hydra:statusCode  501
                                                                                   ];
                                                             hydra:possibleStatus  [ a                 hydra:Status;
                                                                                     hydra:statusCode  404
                                                                                   ];
                                                             hydra:possibleStatus  [ a                 hydra:Status;
                                                                                     hydra:statusCode  429
                                                                                   ];
                                                             hydra:possibleStatus  [ a                 hydra:Status;
                                                                                     hydra:statusCode  400
                                                                                   ];
                                                             hydra:possibleStatus  [ a                 hydra:Status;
                                                                                     hydra:statusCode  200
                                                                                   ];
                                                             hydra:returnsHeader   "Vary" , "ETag" , "Last-Modified"
                                                           ];
                             hydra:template                "tile{?s,layer,coverage,z,x,y}";
                             hydra:variableRepresentation  hydra:BasicRepresentation
                           ];
        hydra:search       [ a                             hydra:IriTemplate;
                             rdfs:comment                  "One AAA object by its OID, from whichever source holds it.";
                             hydra:mapping                 [ a               hydra:IriTemplateMapping;
                                                             rdfs:comment    "An AAA object identifier (case-sensitive). Its issuing prefix picks the live WFS or dump that holds it; references to other objects in the answer are oid/{oid} links in turn.";
                                                             skos:example    "DEBYBDLMNP0006hi";
                                                             hydra:required  true;
                                                             hydra:variable  "oid";
                                                             sh:pattern      "^DE[A-Za-z0-9]{14}$"
                                                           ];
                             hydra:operation               [ a                     hydra:Operation;
                                                             hydra:method          "GET";
                                                             hydra:possibleStatus  [ a                 hydra:Status;
                                                                                     hydra:statusCode  429
                                                                                   ];
                                                             hydra:possibleStatus  [ a                 hydra:Status;
                                                                                     hydra:statusCode  406
                                                                                   ];
                                                             hydra:possibleStatus  [ a                 hydra:Status;
                                                                                     hydra:statusCode  504
                                                                                   ];
                                                             hydra:possibleStatus  [ a                 hydra:Status;
                                                                                     hydra:statusCode  404
                                                                                   ];
                                                             hydra:possibleStatus  [ a                 hydra:Status;
                                                                                     hydra:statusCode  400
                                                                                   ];
                                                             hydra:possibleStatus  [ a                 hydra:Status;
                                                                                     hydra:statusCode  502
                                                                                   ];
                                                             hydra:possibleStatus  [ a                 hydra:Status;
                                                                                     hydra:statusCode  200
                                                                                   ];
                                                             hydra:returnsHeader   "Last-Modified" , "Vary" , "ETag"
                                                           ];
                             hydra:template                "oid/{oid}";
                             hydra:variableRepresentation  hydra:BasicRepresentation
                           ];
        hydra:search       [ a                             hydra:IriTemplate;
                             rdfs:comment                  "A WMS image over a box, or (wms.json/.ttl) the features an info layer reports there.";
                             hydra:mapping                 [ a               hydra:IriTemplateMapping;
                                                             rdfs:comment    "Ground resolution in metres per pixel, or native; instead of width and height.";
                                                             hydra:required  false;
                                                             hydra:variable  "gsd";
                                                             sh:pattern      "^([0-9]+(\\.[0-9]+)?|native)$"
                                                           ];
                             hydra:mapping                 [ a               hydra:IriTemplateMapping;
                                                             rdfs:comment    "Picture width in pixels; or gsd. Not with RDF.";
                                                             hydra:required  false;
                                                             hydra:variable  "width";
                                                             sh:pattern      "^[1-9][0-9]*$"
                                                           ];
                             hydra:mapping                 [ a               hydra:IriTemplateMapping;
                                                             rdfs:comment    "A WMS service URI from status.";
                                                             skos:example    "https://www.wms.nrw.de/geobasis/wms_nw_dop";
                                                             hydra:required  true;
                                                             hydra:variable  "s";
                                                             sh:pattern      "^https?://.+$"
                                                           ];
                             hydra:mapping                 [ a               hydra:IriTemplateMapping;
                                                             rdfs:comment    "Picture height in pixels; or gsd. Not with RDF.";
                                                             hydra:required  false;
                                                             hydra:variable  "height";
                                                             sh:pattern      "^[1-9][0-9]*$"
                                                           ];
                             hydra:mapping                 [ a               hydra:IriTemplateMapping;
                                                             rdfs:comment    "West,south,east,north, WGS84 degrees (or in crs when given).";
                                                             skos:example    "7.212,51.476,7.217,51.479";
                                                             hydra:required  false;
                                                             hydra:variable  "bbox";
                                                             sh:pattern      "^-?[0-9]+(\\.[0-9]+)?,-?[0-9]+(\\.[0-9]+)?,-?[0-9]+(\\.[0-9]+)?,-?[0-9]+(\\.[0-9]+)?$"
                                                           ];
                             hydra:mapping                 [ a               hydra:IriTemplateMapping;
                                                             rdfs:comment    "A projected CRS; bbox is then in its easting/northing.";
                                                             hydra:required  false;
                                                             hydra:variable  "crs";
                                                             sh:pattern      "^EPSG:[0-9]+$"
                                                           ];
                             hydra:mapping                 [ a               hydra:IriTemplateMapping;
                                                             rdfs:comment    "North-east corner as lat,lon; with sw, instead of bbox.";
                                                             hydra:required  false;
                                                             hydra:variable  "ne";
                                                             sh:pattern      "^-?[0-9]+(\\.[0-9]+)?,-?[0-9]+(\\.[0-9]+)?$"
                                                           ];
                             hydra:mapping                 [ a               hydra:IriTemplateMapping;
                                                             rdfs:comment    "A layer of s (status?s={s} lists them). As RDF (Accept, or wms.ttl/.json): what an info layer (*_info) says over the box; as a picture: the rendering, which needs width and height or gsd.";
                                                             skos:example    "nw_dop_utm_info";
                                                             hydra:required  true;
                                                             hydra:variable  "layer";
                                                             sh:pattern      "^.+$"
                                                           ];
                             hydra:mapping                 [ a               hydra:IriTemplateMapping;
                                                             rdfs:comment    "South-west corner as lat,lon; with ne, instead of bbox.";
                                                             hydra:required  false;
                                                             hydra:variable  "sw";
                                                             sh:pattern      "^-?[0-9]+(\\.[0-9]+)?,-?[0-9]+(\\.[0-9]+)?$"
                                                           ];
                             hydra:operation               [ a                     hydra:Operation;
                                                             hydra:method          "GET";
                                                             hydra:possibleStatus  [ a                 hydra:Status;
                                                                                     hydra:statusCode  400
                                                                                   ];
                                                             hydra:possibleStatus  [ a                 hydra:Status;
                                                                                     hydra:statusCode  429
                                                                                   ];
                                                             hydra:possibleStatus  [ a                 hydra:Status;
                                                                                     hydra:statusCode  404
                                                                                   ];
                                                             hydra:possibleStatus  [ a                 hydra:Status;
                                                                                     hydra:statusCode  502
                                                                                   ];
                                                             hydra:possibleStatus  [ a                 hydra:Status;
                                                                                     hydra:statusCode  504
                                                                                   ];
                                                             hydra:possibleStatus  [ a                 hydra:Status;
                                                                                     hydra:statusCode  200
                                                                                   ];
                                                             hydra:returnsHeader   "ETag" , "Last-Modified" , "Vary"
                                                           ];
                             hydra:template                "wms{?s,layer,bbox,sw,ne,width,height,crs,gsd}";
                             hydra:variableRepresentation  hydra:BasicRepresentation
                           ];
        hydra:search       [ a                             hydra:IriTemplate;
                             rdfs:comment                  "A WCS service's capabilities, fetched live.";
                             hydra:mapping                 [ a               hydra:IriTemplateMapping;
                                                             rdfs:comment    "A WCS service URI from status: its capabilities fetched now (heights per tile come from tile).";
                                                             skos:example    "https://www.wcs.nrw.de/geobasis/wcs_nw_dgm";
                                                             hydra:required  true;
                                                             hydra:variable  "s";
                                                             sh:pattern      "^https?://.+$"
                                                           ];
                             hydra:operation               [ a                     hydra:Operation;
                                                             hydra:method          "GET";
                                                             hydra:possibleStatus  [ a                 hydra:Status;
                                                                                     hydra:statusCode  502
                                                                                   ];
                                                             hydra:possibleStatus  [ a                 hydra:Status;
                                                                                     hydra:statusCode  200
                                                                                   ];
                                                             hydra:possibleStatus  [ a                 hydra:Status;
                                                                                     hydra:statusCode  429
                                                                                   ];
                                                             hydra:possibleStatus  [ a                 hydra:Status;
                                                                                     hydra:statusCode  504
                                                                                   ];
                                                             hydra:possibleStatus  [ a                 hydra:Status;
                                                                                     hydra:statusCode  404
                                                                                   ];
                                                             hydra:possibleStatus  [ a                 hydra:Status;
                                                                                     hydra:statusCode  503
                                                                                   ];
                                                             hydra:possibleStatus  [ a                 hydra:Status;
                                                                                     hydra:statusCode  400
                                                                                   ];
                                                             hydra:returnsHeader   "Vary" , "ETag" , "Last-Modified"
                                                           ];
                             hydra:template                "wcs{?s}";
                             hydra:variableRepresentation  hydra:BasicRepresentation
                           ];
        ldp:contains       <gid/index> , <status> , <routes> , <vocab/products> , <oid/> , <ok/index> , <sources/> .

<#advwrap>  a         prov:SoftwareAgent , doap:Project;
        rdfs:label    "Linked AdV (advwrap)";
        doap:release  [ a              doap:Version;
                        doap:revision  "1.0.0-SNAPSHOT+81c917f"
                      ];
        foaf:page     <index.html> .
