PREFIX hydra: <http://www.w3.org/ns/hydra/core#>
PREFIX ldp:   <http://www.w3.org/ns/ldp#>
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#>
PREFIX vocab: <http://relative.invalid/vocab#>

<anbindungsleitung/>  a  ldp:BasicContainer .

<enlag/>  a     ldp:BasicContainer .

<bbplg/>  a     ldp:BasicContainer .

<punkt/>  a     ldp:BasicContainer .

<>      a                      hydra:PartialCollectionView , hydra:Collection , ldp:BasicContainer;
        rdfs:label             "netzausbau.de Vorhaben, by layer";
        hydra:first            <>;
        hydra:last             <>;
        hydra:member           <enlag/> , <anbindungsleitung/> , <bbplg/> , <punkt/>;
        hydra:memberAssertion  [ hydra:object    ldp:BasicContainer;
                                 hydra:property  <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
                               ];
        hydra:operation        [ a                     hydra:Operation;
                                 hydra:method          "GET";
                                 hydra:possibleStatus  [ a                 hydra:Status;
                                                         hydra:statusCode  200
                                                       ];
                                 hydra:possibleStatus  [ a                 hydra:Status;
                                                         hydra:statusCode  304
                                                       ];
                                 hydra:possibleStatus  [ a                 hydra:Status;
                                                         hydra:statusCode  400
                                                       ];
                                 hydra:possibleStatus  [ a                 hydra:Status;
                                                         hydra:statusCode  503
                                                       ];
                                 hydra:returnsHeader   "ETag" , "Last-Modified" , "Vary"
                               ];
        hydra:search           [ a                             hydra:IriTemplate;
                                 rdfs:comment                  "The Vorhaben (points and lines) whose geometry touches a bounding box: bbox, or sw and ne. One page of at most 1000; the total is hydra:totalItems (GeoJSON: numberMatched), the rest is behind hydra:next (GeoJSON: the next link).";
                                 hydra:mapping                 [ a               hydra:IriTemplateMapping;
                                                                 rdfs:comment    "The 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    "minLon,minLat,maxLon,maxLat in WGS84 (CRS84) degrees; edges included.";
                                                                 skos:example    "13.2,52.5,13.3,52.6";
                                                                 hydra:required  false;
                                                                 hydra:variable  "bbox";
                                                                 sh:pattern      "^-?[0-9]+(\\.[0-9]+)?(,-?[0-9]+(\\.[0-9]+)?){3}$"
                                                               ];
                                 hydra:mapping                 [ a               hydra:IriTemplateMapping;
                                                                 rdfs:comment    "The 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    "Only this layer; omitted, every layer.";
                                                                 hydra:property  vocab:layer;
                                                                 hydra:required  false;
                                                                 hydra:variable  "layer";
                                                                 sh:pattern      "^(punkt|anbindungsleitung|bbplg|enlag)$"
                                                               ];
                                 hydra:mapping                 [ a               hydra:IriTemplateMapping;
                                                                 rdfs:comment    "Members per page; default 100, at most 1000.";
                                                                 hydra:property  hydra:limit;
                                                                 hydra:required  false;
                                                                 hydra:variable  "count";
                                                                 sh:pattern      "^[1-9][0-9]*$"
                                                               ];
                                 hydra:mapping                 [ a               hydra:IriTemplateMapping;
                                                                 rdfs:comment    "Representation as a suffix: .geojson (a FeatureCollection, also Accept: application/geo+json), .ttl, .nt, .rdf, .jsonld, .html; omit it to negotiate with the Accept header.";
                                                                 hydra:required  false;
                                                                 hydra:variable  "format";
                                                                 sh:pattern      "^(geojson|ttl|nt|rdf|jsonld|html)$"
                                                               ];
                                 hydra:mapping                 [ a               hydra:IriTemplateMapping;
                                                                 rdfs:comment    "Members to skip; default 0.";
                                                                 hydra:property  hydra:offset;
                                                                 hydra:required  false;
                                                                 hydra:variable  "offset";
                                                                 sh:pattern      "^[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  200
                                                                                       ];
                                                                 hydra:possibleStatus  [ a                 hydra:Status;
                                                                                         hydra:statusCode  400
                                                                                       ];
                                                                 hydra:possibleStatus  [ a                 hydra:Status;
                                                                                         hydra:statusCode  304
                                                                                       ];
                                                                 hydra:possibleStatus  [ a                 hydra:Status;
                                                                                         hydra:statusCode  502
                                                                                       ];
                                                                 hydra:returns         hydra:Collection;
                                                                 hydra:returnsHeader   "Last-Modified" , "Vary" , "ETag"
                                                               ];
                                 hydra:template                "within{.format}{?bbox,sw,ne,layer,offset,count}";
                                 hydra:variableRepresentation  hydra:BasicRepresentation
                               ];
        hydra:search           [ a                             hydra:IriTemplate;
                                 rdfs:comment                  "A page of this collection's members, in id order.";
                                 hydra:mapping                 [ a               hydra:IriTemplateMapping;
                                                                 rdfs:comment    "Members per page; default 100, at most 1000.";
                                                                 hydra:property  hydra:limit;
                                                                 hydra:required  false;
                                                                 hydra:variable  "count";
                                                                 sh:pattern      "^[1-9][0-9]*$"
                                                               ];
                                 hydra:mapping                 [ a               hydra:IriTemplateMapping;
                                                                 rdfs:comment    "Members to skip; default 0.";
                                                                 hydra:property  hydra:offset;
                                                                 hydra:required  false;
                                                                 hydra:variable  "offset";
                                                                 sh:pattern      "^[0-9]+$"
                                                               ];
                                 hydra:operation               [ a                     hydra:Operation;
                                                                 hydra:method          "GET";
                                                                 hydra:possibleStatus  [ a                 hydra:Status;
                                                                                         hydra:statusCode  200
                                                                                       ];
                                                                 hydra:possibleStatus  [ a                 hydra:Status;
                                                                                         hydra:statusCode  304
                                                                                       ];
                                                                 hydra:possibleStatus  [ a                 hydra:Status;
                                                                                         hydra:statusCode  400
                                                                                       ];
                                                                 hydra:possibleStatus  [ a                 hydra:Status;
                                                                                         hydra:statusCode  503
                                                                                       ];
                                                                 hydra:returnsHeader   "ETag" , "Last-Modified" , "Vary"
                                                               ];
                                 hydra:template                "{?offset,count}";
                                 hydra:variableRepresentation  hydra:BasicRepresentation
                               ];
        hydra:search           [ a                             hydra:IriTemplate;
                                 rdfs:comment                  "One layer's collection.";
                                 hydra:mapping                 [ a               hydra:IriTemplateMapping;
                                                                 rdfs:comment    "The layer: punkt (waypoints), anbindungsleitung (connection lines), bbplg (Bundesbedarfsplangesetz) or enlag (Energieleitungsausbaugesetz).";
                                                                 skos:example    "bbplg";
                                                                 hydra:required  true;
                                                                 hydra:variable  "layer";
                                                                 sh:pattern      "^(punkt|anbindungsleitung|bbplg|enlag)$"
                                                               ];
                                 hydra:operation               [ a                     hydra:Operation;
                                                                 hydra:method          "GET";
                                                                 hydra:possibleStatus  [ a                 hydra:Status;
                                                                                         hydra:statusCode  200
                                                                                       ];
                                                                 hydra:possibleStatus  [ a                 hydra:Status;
                                                                                         hydra:statusCode  304
                                                                                       ];
                                                                 hydra:possibleStatus  [ a                 hydra:Status;
                                                                                         hydra:statusCode  400
                                                                                       ];
                                                                 hydra:possibleStatus  [ a                 hydra:Status;
                                                                                         hydra:statusCode  503
                                                                                       ];
                                                                 hydra:returns         ldp:BasicContainer;
                                                                 hydra:returnsHeader   "Last-Modified" , "Vary" , "ETag"
                                                               ];
                                 hydra:template                "{layer}/";
                                 hydra:variableRepresentation  hydra:BasicRepresentation
                               ];
        hydra:totalItems       "4"^^<http://www.w3.org/2001/XMLSchema#nonNegativeInteger>;
        hydra:view             <>;
        ldp:contains           <punkt/> , <bbplg/> , <anbindungsleitung/> , <enlag/> .
