@prefix altr-ext: <http://www.w3.org/ns/dx/connegp/altr-ext#> .
@prefix dcat: <http://www.w3.org/ns/dcat#> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix ex: <http://example.org/> .
@prefix ns1: <https://prez.dev/ont/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix prez: <https://prez.dev/> .
@prefix prof: <http://www.w3.org/ns/dx/prof/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix schema: <https://schema.org/> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix skos1: <http://www.w3.org/2004/02/skos/core#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

ex:catalogs-listing a ns1:DynamicEndpoint,
        ns1:ListingEndpoint ;
    rdfs:label "Catalogs Listing" ;
    prez:label "Catalogs Listing" ;
    ns1:apiPath "/catalogs" ;
    ns1:relevantShapes ex:shape-R0-HL1 .

ex:catalogs-object a ns1:DynamicEndpoint,
        ns1:ObjectEndpoint ;
    rdfs:label "Catalogs Object" ;
    prez:label "Catalogs Object" ;
    ns1:apiPath "/catalogs/{catalogId}" ;
    ns1:relevantShapes ex:shape-R0-HL1 .

ex:collections-listing a ns1:DynamicEndpoint,
        ns1:ListingEndpoint ;
    rdfs:label "Collections Listing" ;
    prez:label "Collections Listing" ;
    ns1:apiPath "/catalogs/{catalogId}/collections" ;
    ns1:relevantShapes ex:shape-R0-HL2 .

ex:collections-object a ns1:DynamicEndpoint,
        ns1:ObjectEndpoint ;
    rdfs:label "Collections Object" ;
    prez:label "Collections Object" ;
    ns1:apiPath "/catalogs/{catalogId}/collections/{recordsCollectionId}" ;
    ns1:relevantShapes ex:shape-R0-HL2 .

ex:items-listing a ns1:DynamicEndpoint,
        ns1:ListingEndpoint ;
    rdfs:label "Items Listing" ;
    prez:label "Items Listing" ;
    ns1:apiPath "/catalogs/{catalogId}/collections/{recordsCollectionId}/items" ;
    ns1:relevantShapes ex:shape-R0-HL3,
        ex:shape-R0-HL3-1,
        ex:shape-R0-HL3-activity,
        ex:shape-R0-HL3-model .

ex:items-object a ns1:DynamicEndpoint,
        ns1:ObjectEndpoint ;
    rdfs:label "Items Object" ;
    prez:label "Items Object" ;
    ns1:apiPath "/catalogs/{catalogId}/collections/{recordsCollectionId}/items/{itemId}" ;
    ns1:relevantShapes ex:shape-R0-HL3,
        ex:shape-R0-HL3-1,
        ex:shape-R0-HL3-activity,
        ex:shape-R0-HL3-model .

<http://example.org/ns#AltProfilesForListing> a sh:NodeShape ;
    sh:property [ sh:path altr-ext:constrainsClass ] ;
    sh:targetClass prez:ListingProfile ;
    ns1:hierarchyLevel 1 .

<http://example.org/ns#AltProfilesForObject> a sh:NodeShape ;
    sh:property [ sh:path altr-ext:constrainsClass ] ;
    sh:targetClass prez:ObjectProfile ;
    ns1:hierarchyLevel 1 .

<http://example.org/ns#Object> a sh:NodeShape ;
    ns1:hierarchyLevel 1,
        3 .

<http://localhost:8000> prez:sparqlEndpointEnabled true ;
    prez:version "4.7.5" .

<http://www.opengis.net/ogcapi-features-1/1.0/feature> a ns1:OGCFeaturesEndpoint,
        ns1:ObjectEndpoint ;
    ns1:relevantShapes <http://example.org/ns#Feature> .

<http://www.opengis.net/ogcapi-features-1/1.0/feature-collection> a ns1:OGCFeaturesEndpoint,
        ns1:ObjectEndpoint ;
    ns1:relevantShapes <http://example.org/ns#FeatureCollections> .

<http://www.opengis.net/ogcapi-features-1/1.0/feature-collections> a ns1:ListingEndpoint,
        ns1:OGCFeaturesEndpoint ;
    ns1:relevantShapes <http://example.org/ns#FeatureCollections> .

<http://www.opengis.net/ogcapi-features-1/1.0/features> a ns1:ListingEndpoint,
        ns1:OGCFeaturesEndpoint ;
    ns1:relevantShapes <http://example.org/ns#Feature> .

<http://www.opengis.net/ogcapi-features-1/1.0/queryables-global> a ns1:ListingEndpoint,
        ns1:OGCFeaturesEndpoint ;
    ns1:relevantShapes <http://example.org/ns#QueryablesGlobal> .

<http://www.opengis.net/ogcapi-features-1/1.0/queryables-local> a ns1:ListingEndpoint,
        ns1:OGCFeaturesEndpoint ;
    ns1:relevantShapes <http://example.org/ns#QueryablesLocal> .

rdf:first prez:description "The first item in the subject RDF list." ;
    prez:label "first" .

rdf:rest prez:description "The rest of the subject RDF list after the first item." ;
    prez:label "rest" .

rdf:type prez:description "The subject is an instance of a class." ;
    prez:label "type" .

xsd:boolean prez:label "boolean" .

xsd:integer prez:label "integer" .

sh:alternativePath prez:description "The (single) value of this property must be a list of path elements, representing the elements of alternative paths."@en ;
    prez:label "alternative path"@en .

sh:class prez:description "The type that all value nodes must have."@en ;
    prez:label "class"@en .

sh:inversePath prez:description "The (single) value of this property represents an inverse path (object to subject)."@en ;
    prez:label "inverse path"@en .

sh:or prez:description "Specifies a list of shapes so that the value nodes must conform to at least one of the shapes."@en ;
    prez:label "or"@en .

sh:path prez:description "Specifies the property path of a property shape."@en ;
    prez:label "path"@en .

sh:property prez:description "Links a shape to its property shapes."@en ;
    prez:label "property"@en .

sh:targetClass prez:description "Links a shape to a class, indicating that all instances of the class must conform to the shape."@en ;
    prez:label "target class"@en .

prez:AnnotationPropertyList prez:descriptionList ( skos1:definition dcterms:description schema:description ) ;
    prez:labelList ( skos1:prefLabel dcterms:title rdfs:label schema:name ) ;
    prez:otherList ( schema:color <http://purl.org/linked-data/registry#status> ) ;
    prez:provenanceList ( dcterms:provenance ) .

<https://prez.dev/endpoint/extended-ogc-records/cql-get> a ns1:ListingEndpoint ;
    ns1:relevantShapes <http://example.org/ns#CQL> .

<https://prez.dev/endpoint/extended-ogc-records/cql-post> a ns1:ListingEndpoint ;
    ns1:relevantShapes <http://example.org/ns#CQL> .

<https://prez.dev/endpoint/extended-ogc-records/narrowers> a ns1:ListingEndpoint ;
    ns1:relevantShapes <http://example.org/ns#Narrowers> .

<https://prez.dev/endpoint/extended-ogc-records/search> a ns1:ListingEndpoint ;
    ns1:relevantShapes <http://example.org/ns#Search> .

<https://prez.dev/endpoint/extended-ogc-records/top-concepts> a ns1:ListingEndpoint ;
    ns1:relevantShapes <http://example.org/ns#TopConcepts> .

<https://prez.dev/endpoint/system/object> a ns1:ObjectEndpoint,
        ns1:SystemEndpoint ;
    ns1:relevantShapes <http://example.org/ns#Profiles> .

<https://prez.dev/endpoint/system/profile-listing> a ns1:ListingEndpoint,
        ns1:SystemEndpoint ;
    ns1:relevantShapes <http://example.org/ns#Profiles> .

<https://prez.dev/endpoint/system/profile-object> a ns1:ObjectEndpoint,
        ns1:SystemEndpoint ;
    ns1:relevantShapes <http://example.org/ns#Profiles> .

<http://example.org/ns#Narrowers> a sh:NodeShape ;
    sh:targetClass skos1:Concept ;
    ns1:hierarchyLevel 1 .

<http://example.org/ns#QueryablesGlobal> a sh:NodeShape ;
    sh:targetClass <http://www.opengis.net/ont/geosparql#Feature> ;
    ns1:hierarchyLevel 3 .

<http://example.org/ns#QueryablesLocal> a sh:NodeShape ;
    sh:targetClass <http://www.opengis.net/ont/geosparql#Feature> ;
    ns1:hierarchyLevel 4 .

<http://example.org/ns#Search> a sh:NodeShape ;
    sh:targetClass prez:SearchResult ;
    ns1:hierarchyLevel 1 .

<http://example.org/ns#TopConcepts> a sh:NodeShape ;
    sh:targetClass skos1:Concept ;
    ns1:hierarchyLevel 1 .

dcterms:description prez:description "An account of the resource."@en,
        "Description may include but is not limited to: an abstract, a table of contents, a graphical representation, or a free-text account of the resource."@en ;
    prez:label "Description"@en .

dcterms:provenance prez:description "A statement of any changes in ownership and custody of the resource since its creation that are significant for its authenticity, integrity, and interpretation."@en,
        "The statement may include a description of any changes successive custodians made to the resource."@en ;
    prez:label "Provenance"@en .

dcterms:title prez:description "A name given to the resource."@en ;
    prez:label "Title"@en .

<http://purl.org/linked-data/registry#status> prez:description "The status of this register entry"@en ;
    prez:label "status"@en .

rdfs:label prez:description "A human-readable name for the subject." ;
    prez:label "label" .

owl:AnnotationProperty prez:description "The class of annotation properties." ;
    prez:label "AnnotationProperty" .

owl:Class prez:description "The class of OWL classes." ;
    prez:label "Class" .

owl:DatatypeProperty prez:description "The class of data properties." ;
    prez:label "DatatypeProperty" .

owl:ObjectProperty prez:description "The class of object properties." ;
    prez:label "ObjectProperty" .

skos1:definition prez:description "A statement or formal explanation of the meaning of a concept."@en ;
    prez:label "definition"@en .

skos1:prefLabel prez:description "A resource has no more than one value of skos:prefLabel per language tag, and no more than one value of skos:prefLabel without language tag."@en,
        "The preferred lexical label for a resource, in a given language."@en,
        "The range of skos:prefLabel is the class of RDF plain literals."@en,
        """skos:prefLabel, skos:altLabel and skos:hiddenLabel are pairwise
      disjoint properties."""@en ;
    prez:label "preferred label"@en .

dcat:Resource prez:description "Resource published or curated by a single agent."@en ;
    prez:label "Catalogued resource"@en .

prof:Profile prez:description """A specification that constrains, extends, combines, or provides guidance or explanation about the usage of other specifications.

This definition includes what are often called "application profiles", "metadata application profiles", or "metadata profiles"."""@en ;
    prez:label "Profile" .

schema:DataCatalog prez:description "A collection of datasets." ;
    prez:label "Data catalog" .

schema:color prez:description "The color of the product." ;
    prez:label "color" .

schema:description prez:description "A description of the item." ;
    prez:label "description" .

schema:name prez:description "The name of the item." ;
    prez:label "name" .

<http://example.org/ns#CQL> a sh:NodeShape ;
    sh:targetClass prez:CQLFilterResult ;
    ns1:hierarchyLevel 1 .

<http://example.org/ns#Feature> a sh:NodeShape ;
    sh:property [ sh:class <http://www.opengis.net/ont/geosparql#FeatureCollection> ;
            sh:path [ sh:inversePath rdfs:member ] ],
        [ sh:class dcat:Dataset ;
            sh:path ( [ sh:inversePath rdfs:member ] <http://rdfs.org/ns/void#inDataset> ) ] ;
    sh:targetClass <http://www.opengis.net/ont/geosparql#Feature> ;
    ns1:hierarchyLevel 4 .

<http://example.org/ns#FeatureCollections> a sh:NodeShape ;
    sh:property [ sh:class dcat:Dataset ;
            sh:path <http://rdfs.org/ns/void#inDataset> ] ;
    sh:targetClass <http://www.opengis.net/ont/geosparql#FeatureCollection> ;
    ns1:hierarchyLevel 3 .

ex:shape-R0-HL1 a sh:NodeShape ;
    sh:property [ sh:or ( [ sh:class skos1:Collection ] [ sh:class dcat:Dataset ] [ sh:class dcat:Resource ] [ sh:class skos1:ConceptScheme ] [ sh:class owl:Ontology ] [ sh:class schema:DataCatalog ] [ sh:class dcat:Catalog ] [ sh:class ex:GeoprocessingActivity ] ) ;
            sh:path [ sh:alternativePath ( ( [ sh:inversePath schema:memberOf ] [ sh:inversePath ex:qualifiedStatus ] ) ( [ sh:inversePath schema:memberOf ] [ sh:inversePath ex:qualifiedStatus ] ) ) ] ] ;
    sh:targetClass ex:TopLevelCatalog ;
    ns1:hierarchyLevel 1 .

ex:shape-R0-HL2 a sh:NodeShape ;
    sh:property [ sh:class dcat:Catalog ;
            sh:path [ sh:alternativePath ( ( ex:qualifiedStatus schema:memberOf ) ( ex:qualifiedStatus schema:memberOf ) ) ] ] ;
    sh:targetClass owl:Ontology,
        skos1:ConceptScheme,
        dcat:Catalog ;
    ns1:hierarchyLevel 2 .

ex:shape-R0-HL3 a sh:NodeShape ;
    sh:property [ sh:class skos1:ConceptScheme ;
            sh:path skos1:inScheme ],
        [ sh:class dcat:Catalog ;
            sh:path ( skos1:inScheme [ sh:alternativePath ( ( ex:qualifiedStatus schema:memberOf ) ( ex:qualifiedStatus schema:memberOf ) ) ] ) ] ;
    sh:targetClass skos1:Collection,
        skos1:Concept ;
    ns1:hierarchyLevel 3 .

ex:shape-R0-HL3-1 a sh:NodeShape ;
    sh:property [ sh:class dcat:Catalog ;
            sh:path ( [ sh:inversePath skos1:member ] [ sh:alternativePath ( ( ex:qualifiedStatus schema:memberOf ) ( ex:qualifiedStatus schema:memberOf ) ) ] ) ],
        [ sh:class skos1:Collection ;
            sh:path [ sh:inversePath skos1:member ] ] ;
    sh:targetClass skos1:Concept ;
    ns1:hierarchyLevel 3 .

ex:shape-R0-HL3-activity a sh:NodeShape ;
    sh:property [ sh:class ex:TopLevelCatalog ;
            sh:path ( [ sh:alternativePath ( ( ex:qualifiedStatus schema:memberOf ) ( ex:qualifiedStatus schema:memberOf ) ) ] [ sh:alternativePath ( ( ex:qualifiedStatus schema:memberOf ) ( ex:qualifiedStatus schema:memberOf ) ) ] ) ],
        [ sh:class dcat:Catalog ;
            sh:path [ sh:alternativePath ( ( ex:qualifiedStatus schema:memberOf ) ( ex:qualifiedStatus schema:memberOf ) ) ] ] ;
    sh:targetClass ex:GeoprocessingActivity ;
    ns1:hierarchyLevel 3 .

ex:shape-R0-HL3-model a sh:NodeShape ;
    sh:property [ sh:class owl:Ontology ;
            sh:path rdfs:isDefinedBy ],
        [ sh:class dcat:Catalog ;
            sh:path ( rdfs:isDefinedBy [ sh:alternativePath ( ( ex:qualifiedStatus schema:memberOf ) ) ] ) ] ;
    sh:targetClass owl:AnnotationProperty,
        owl:Class,
        owl:DatatypeProperty,
        owl:ObjectProperty ;
    ns1:hierarchyLevel 3 .

<http://rdfs.org/ns/void#inDataset> prez:description "Points to the void:Dataset that a document is a part of." ;
    prez:label "in dataset" .

<http://www.opengis.net/ont/geosparql#FeatureCollection> prez:description "The class Feature Collection represents any collection of individual Features."@en ;
    prez:label "Feature Collection"@en .

rdfs:isDefinedBy prez:description "The defininition of the subject resource." ;
    prez:label "is defined by" .

rdfs:member prez:description "A member of the subject resource." ;
    prez:label "member" .

skos1:inScheme prez:description "Relates a resource (for example a concept) to a concept scheme in which it is included."@en ;
    prez:label "is in scheme"@en .

skos1:member prez:description "Relates a collection to one of its members."@en ;
    prez:label "has member"@en .

altr-ext:constrainsClass prez:label "Constrains Class" .

<http://example.org/ns#Profiles> a sh:NodeShape ;
    sh:targetClass prof:Profile ;
    ns1:hierarchyLevel 1 .

<http://www.opengis.net/ont/geosparql#Feature> prez:description "A discrete spatial phenomenon in a universe of discourse."@en ;
    prez:label "Feature"@en .

owl:Ontology prez:description "The class of ontologies." ;
    prez:label "Ontology" .

skos1:Collection prez:description "A meaningful collection of concepts."@en ;
    prez:label "Collection"@en .

skos1:ConceptScheme prez:description "A set of concepts, optionally including statements about semantic relationships between those concepts."@en ;
    prez:label "Concept Scheme"@en .

dcat:Dataset prez:description "A collection of data, published or curated by a single source, and available for access or download in one or more represenations."@en,
        "A collection of data, published or curated by a single source, and available for access or download in one or more representations."@en ;
    prez:label "Dataset"@en .

skos1:Concept prez:description "An idea or notion; a unit of thought."@en ;
    prez:label "Concept"@en .

dcat:Catalog prez:description "A curated collection of metadata about resources (e.g., datasets and data services in the context of a data catalog)."@en ;
    prez:label "Catalog"@en .

schema:memberOf prez:description "An Organization (or ProgramMembership) to which this Person or Organization belongs." ;
    prez:label "member of" .

sh:NodeShape prez:description "A node shape is a shape that specifies constraint that need to be met with respect to focus nodes."@en ;
    prez:label "Node shape"@en .

() prez:description "The empty list, with no items in it. If the rest of a list is nil then the list has no more items in it." ;
    prez:label "nil" .

