PREFIX dcat:    <http://www.w3.org/ns/dcat#>
PREFIX dcterms: <http://purl.org/dc/terms/>
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#>
PREFIX vocab:   <http://relative.invalid/vocab#>
PREFIX xsd:     <http://www.w3.org/2001/XMLSchema#>

<#netztransparenzwrap>
        a             prov:SoftwareAgent;
        rdfs:comment  "Wrapper that turns the German TSOs' EEG annual settlement (EEG-Jahresabrechnung, netztransparenz.de) into per-plant RDF (Turtle / N-Triples / RDF-XML / JSON-LD / HTML). Plant IRIs reuse linked-mastr's eeg/{number} scheme. Full vocabulary at /vocab.";
        rdfs:label    "Linked Netztransparenz (netztransparenzwrap)";
        foaf:page     <index.html> .

<>      a                    ldp:BasicContainer , dcat:Dataset;
        dcterms:description  "Linked-data view of the German TSOs' EEG annual settlement (EEG-Jahresabrechnung). Per-plant Turtle for every settled renewable plant, carrying master data and the actually-settled energy per year and disposal form (Veräußerungsform). Built from the netztransparenz.de Anlagenstammdaten + Bewegungsdaten CSVs; pilot covers the TenneT control zone (Bavaria / Nuremberg).";
        dcterms:license      <https://www.govdata.de/dl-de/by-2-0>;
        dcterms:publisher    <#netztransparenzwrap>;
        dcterms:source       <https://www.netztransparenz.de/>;
        dcterms:title        "Linked Netztransparenz";
        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:returnsHeader   "ETag" , "Last-Modified" , "Vary"
                             ];
        hydra:search         [ a                             hydra:IriTemplate;
                               rdfs:comment                  "Plants by Postleitzahl, energy source and installed power; with no criterion, every plant.";
                               hydra:mapping                 [ a               hydra:IriTemplateMapping;
                                                               rdfs:comment    "An energy source label, case-insensitive (Solar, Wind, Biomasse, …).";
                                                               skos:example    "Solar";
                                                               hydra:property  vocab:energySource;
                                                               hydra:required  false;
                                                               hydra:variable  "source";
                                                               sh:pattern      "^.+$"
                                                             ];
                               hydra:mapping                 [ a               hydra:IriTemplateMapping;
                                                               rdfs:comment    "A Postleitzahl, matched exactly.";
                                                               hydra:property  vocab:postalCode;
                                                               hydra:required  false;
                                                               hydra:variable  "plz";
                                                               sh:pattern      "^[0-9]{5}$"
                                                             ];
                               hydra:mapping                 [ a               hydra:IriTemplateMapping;
                                                               rdfs:comment    "The least installed power, in kW.";
                                                               skos:example    "10";
                                                               hydra:property  vocab:installedPowerKW;
                                                               hydra:required  false;
                                                               hydra:variable  "minkw";
                                                               sh:pattern      "^[0-9]+(\\.[0-9]+)?$"
                                                             ];
                               hydra:mapping                 [ a               hydra:IriTemplateMapping;
                                                               rdfs:comment    "Representation as a suffix (.ttl, .nt, .rdf, .jsonld, .html); omit it to negotiate with the Accept header.";
                                                               hydra:required  false;
                                                               hydra:variable  "format";
                                                               sh:pattern      "^(ttl|nt|rdf|jsonld|html)$"
                                                             ];
                               hydra:mapping                 [ a               hydra:IriTemplateMapping;
                                                               rdfs:comment    "Plants 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    "Plants per page; default 100, at most 1000; hydra:next links the next page.";
                                                               hydra:property  hydra:limit;
                                                               hydra:required  false;
                                                               hydra:variable  "count";
                                                               sh:pattern      "^[1-9][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  503
                                                                                     ];
                                                               hydra:returnsHeader   "ETag" , "Last-Modified" , "Vary"
                                                             ];
                               hydra:template                "filter{.format}{?plz,source,minkw,offset,count}";
                               hydra:variableRepresentation  hydra:BasicRepresentation
                             ];
        ldp:contains         <eeg/>;
        foaf:page            <index.html> .
