PREFIX :     <https://www.w3.org/ns/ldt#>
PREFIX dct:  <http://purl.org/dc/terms/>
PREFIX owl:  <http://www.w3.org/2002/07/owl#>
PREFIX rdf:  <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX sd:   <http://www.w3.org/ns/sparql-service-description#>
PREFIX sp:   <http://spinrdf.org/sp#>
PREFIX spin: <http://spinrdf.org/spin#>
PREFIX spl:  <http://spinrdf.org/spl#>
PREFIX vann: <http://purl.org/vocab/vann/>
PREFIX xsd:  <http://www.w3.org/2001/XMLSchema#>

:base   rdf:type          owl:FunctionalProperty , owl:ObjectProperty;
        rdfs:comment      "Base URI uniquely identifies the application";
        rdfs:domain       :Application;
        rdfs:isDefinedBy  :;
        rdfs:label        "Base URI" .

:param  rdf:type          owl:ObjectProperty;
        rdfs:comment      "Template parameter";
        rdfs:domain       :Template;
        rdfs:isDefinedBy  :;
        rdfs:label        "Parameter";
        rdfs:range        :Parameter;
        rdfs:seeAlso      spin:constraint .

:Update  rdf:type         rdfs:Class;
        rdfs:isDefinedBy  :;
        rdfs:label        "Update";
        rdfs:subClassOf   sp:Update .

:update  rdf:type           :InheritedProperty , owl:ObjectProperty;
        rdfs:comment        "SPIN update to remove resource description";
        rdfs:domain         :Template;
        rdfs:isDefinedBy    :;
        rdfs:label          "Update";
        rdfs:range          :Update;
        rdfs:subPropertyOf  spin:update .

:arg    rdf:type          owl:ObjectProperty;
        rdfs:comment      "Template call argument";
        rdfs:domain       :View;
        rdfs:isDefinedBy  :;
        rdfs:label        "Argument" .

:Template  rdf:type       rdfs:Class;
        rdfs:comment      "A class of RDF resources that share the same URI template and SPARQL query template";
        rdfs:isDefinedBy  :;
        rdfs:label        "Resource template" .

:       rdf:type                       owl:Ontology;
        rdfs:comment                   "Must be imported and reused by LDT applications";
        rdfs:label                     "Linked Data Templates ontology";
        dct:created                    "2012-10-26T01:04:00+03:00"^^xsd:dateTime;
        dct:license                    <http://www.opendatacommons.org/licenses/pddl/1.0/>;
        dct:modified                   "2012-12-19T02:29:00+03:00"^^xsd:dateTime , "2018-05-21T23:42:00+02:00"^^xsd:dateTime , "2014-08-24T02:04:00+02:00"^^xsd:dateTime , "2013-03-09T12:33:00+03:00"^^xsd:dateTime;
        vann:preferredNamespacePrefix  "ldt";
        vann:preferredNamespaceUri     "https://www.w3.org/ns/ldt#";
        owl:imports                    <http://spinrdf.org/sp> , sd: , <http://spinrdf.org/spin>;
        owl:versionInfo                "1.1.4" .

:path   rdf:type          :InheritedProperty , owl:AnnotationProperty;
        rdfs:comment      "Base-relative URI template for URI building (JAX-RS syntax)";
        rdfs:isDefinedBy  :;
        rdfs:label        "Path";
        rdfs:seeAlso      <http://www.w3.org/TR/rdf11-concepts/#section-skolemization> , <http://docs.oracle.com/cd/E19798-01/821-1841/6nmq2cp26/index.html> .

:query  rdf:type            :InheritedProperty , owl:ObjectProperty;
        rdfs:comment        "SPIN query to retrieve resource description (DESCRIBE or CONSTRUCT)";
        rdfs:domain         :Template;
        rdfs:isDefinedBy    :;
        rdfs:label          "Query";
        rdfs:range          :Query;
        rdfs:subPropertyOf  spin:query .

:match  rdf:type          :InheritedProperty , owl:DatatypeProperty;
        rdfs:comment      "Base-relative URI template for URI matching (JAX-RS syntax)";
        rdfs:domain       :Template;
        rdfs:isDefinedBy  :;
        rdfs:label        "Match";
        rdfs:range        xsd:string;
        rdfs:seeAlso      <http://docs.oracle.com/cd/E19798-01/821-1841/6nmq2cp26/index.html> .

:Parameter  rdf:type      rdfs:Class;
        rdfs:comment      "Represents a query parameter that has predicate, value type, default value etc.";
        rdfs:isDefinedBy  :;
        rdfs:label        "Parameter";
        rdfs:subClassOf   spl:Argument .

:lang   rdf:type          :InheritedProperty , owl:ObjectProperty;
        rdfs:comment      "List of  BCP 47 language tags";
        rdfs:domain       :Template;
        rdfs:isDefinedBy  :;
        rdfs:label        "Content language";
        rdfs:range        rdf:List;
        rdfs:seeAlso      <https://www.w3.org/International/articles/language-tags/> .

:service  rdf:type        owl:FunctionalProperty , owl:ObjectProperty;
        rdfs:comment      "Service implementing SPARQL Protocol and Graph Store Protocol";
        rdfs:domain       :Application;
        rdfs:isDefinedBy  :;
        rdfs:label        "SPARQL service";
        rdfs:range        sd:Service .

:Application  rdf:type    rdfs:Class;
        rdfs:comment      "Declarative Linked Data application which structure is defined by its ontology and data is access via its SPARQL service";
        rdfs:isDefinedBy  :;
        rdfs:label        "Application" .

:cacheControl  rdf:type   :InheritedProperty , owl:DatatypeProperty;
        rdfs:comment      "Value of the HTTP Cache-Control response header";
        rdfs:domain       :Template;
        rdfs:isDefinedBy  :;
        rdfs:label        "Cache control";
        rdfs:range        xsd:string;
        rdfs:seeAlso      <http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html#sec13.1.3> .

:ontology  rdf:type       owl:FunctionalProperty , owl:ObjectProperty;
        rdfs:comment      "Application ontology with domain classes and LDT templates";
        rdfs:domain       :Application;
        rdfs:isDefinedBy  :;
        rdfs:label        "Ontology";
        rdfs:range        :Ontology .

:extends  rdf:type        owl:ObjectProperty;
        rdfs:comment      "Super-template from which this template will inherit properties";
        rdfs:domain       :Template;
        rdfs:isDefinedBy  :;
        rdfs:label        "Extends";
        rdfs:range        :Template .

:paramName  rdf:type      owl:DatatypeProperty;
        rdfs:comment      "Local name of the parameter property";
        rdfs:isDefinedBy  :;
        rdfs:label        "Parameter name";
        rdfs:range        xsd:string .

:priority  rdf:type       :InheritedProperty , owl:DatatypeProperty;
        rdfs:comment      "Template priority (overrides URI template priority)";
        rdfs:domain       :Template;
        rdfs:isDefinedBy  :;
        rdfs:label        "Priority";
        rdfs:range        xsd:float;
        rdfs:seeAlso      <https://www.w3.org/TR/xslt20/#conflict> .

:InheritedProperty  rdf:type  rdfs:Class;
        rdfs:comment      "Values of this property are inherited by subclasses that do not have this property";
        rdfs:isDefinedBy  :;
        rdfs:label        "Inherited property";
        rdfs:subClassOf   owl:AnnotationProperty .

:Query  rdf:type          rdfs:Class;
        rdfs:isDefinedBy  :;
        rdfs:label        "Query";
        rdfs:subClassOf   sp:Query;
        rdfs:subClassOf   [ rdf:type     owl:Class;
                            rdfs:label   "Graph query forms";
                            owl:unionOf  ( sp:Describe sp:Construct )
                          ] .

:fragment  rdf:type       :InheritedProperty , owl:AnnotationProperty;
        rdfs:comment      "URI fragment template for blank node skolemization (JAX-RS syntax)";
        rdfs:isDefinedBy  :;
        rdfs:label        "Fragment";
        rdfs:seeAlso      <http://www.w3.org/TR/rdf11-concepts/#section-skolemization> , <http://docs.oracle.com/cd/E19798-01/821-1841/6nmq2cp26/index.html> .

spl:Argument  rdf:type  spin:ConstructTemplate .

:Ontology  rdf:type       rdfs:Class;
        rdfs:comment      "Ontology annotated with Linked Data Templates";
        rdfs:isDefinedBy  :;
        rdfs:label        "Ontology";
        rdfs:subClassOf   owl:Ontology .

:loadClass  rdf:type      :InheritedProperty , owl:ObjectProperty;
        rdfs:comment      "Indicates the Java class that will handle requests matched by this template. Needs to start with 'java:' URI scheme.";
        rdfs:domain       :Template;
        rdfs:isDefinedBy  :;
        rdfs:label        "Load class";
        rdfs:seeAlso      <http://jena.hpl.hp.com/2005/11/Assembler#loadClass> .
