@prefix owl: . @prefix rdf: . @prefix xsd: . @prefix rdfs: . @prefix dc: . @prefix skos: . @prefix vann: . @prefix ottr: . rdf:type owl:Ontology ; owl:versionInfo "0.2" ; owl:versionIRI ; owl:imports # ; skos:editorialNote ; owl:priorVersion # ; owl:backwardCompatibleWith ; owl:incompatibleWith ; vann:preferredNamespacePrefix "ottr" ## See https://www.w3.org/TR/void/#dublin-core ; rdfs:label "Ontology Templates" ; dc:title "Ontology Templates" # ; rdfs:comment "description" # ; dc:description "description" ; dc:creator #; dc:contributor #; dc:publisher #; dc:source ; dc:date "2017-06-29" #; dc:created #; dc:issued #; dc:modified #; skos:changeNote # ; dc:rights . ottr:hasParameter a owl:InverseFunctionalProperty . ottr:isParameterOf a owl:ObjectProperty ; owl:inverseOf ottr:hasParameter . ottr:Parameter a owl:Class ; rdfs:subClassOf [ a owl:Restriction ; owl:onProperty ottr:isParameterOf ; owl:someValuesFrom ottr:Template ] , [ a owl:Restriction ; owl:onProperty ottr:index ; owl:someValuesFrom xsd:positiveInteger ] , [ a owl:Class ; owl:unionOf ( [ a owl:Restriction ; owl:onProperty ottr:nonLiteralVariable ; owl:someValuesFrom owl:Thing ] [ a owl:Restriction ; owl:onProperty ottr:literalVariable ; owl:someValuesFrom rdfs:Literal ] ) ] ; owl:hasKey ( ottr:isParameterOf ottr:index ) . ottr:index a owl:FunctionalProperty ; rdfs:domain [ a owl:Class ; owl:unionOf ( ottr:Argument ottr:Parameter ) ] . ottr:withVariables a owl:ObjectProperty , owl:FunctionalProperty . ottr:TemplateInstance a owl:Class ; rdfs:subClassOf [ a owl:Restriction ; owl:onProperty ottr:templateRef ; owl:someValuesFrom ottr:Template ] . ottr:templateRef a owl:ObjectProperty , owl:FunctionalProperty . ottr:hasArgument a owl:InverseFunctionalProperty . ottr:isArgumentOf a owl:ObjectProperty ; owl:inverseOf ottr:hasArgument . ottr:parameterRef a owl:ObjectProperty , owl:FunctionalProperty ; rdfs:domain ottr:Argument ; rdfs:range ottr:Parameter . ottr:Argument a owl:Class ; rdfs:subClassOf [ a owl:Restriction ; owl:onProperty ottr:isArgumentOf ; owl:someValuesFrom ottr:TemplateInstance ] , [ a owl:Restriction ; owl:onProperty ottr:index ; owl:someValuesFrom xsd:positiveInteger ] , [ a owl:Restriction ; owl:onProperty ottr:parameterRef ; owl:someValuesFrom ottr:Parameter ] ; owl:hasKey ( ottr:isArgumentOf ottr:index ) . ottr:withValues a owl:ObjectProperty , owl:FunctionalProperty . ottr:List a owl:Class ; rdfs:definedBy ; rdfs:subClassOf [ a owl:Restriction ; owl:onProperty ottr:hasRest ; owl:allValuesFrom ottr:List ] . ottr:hasRest a owl:ObjectProperty , owl:TransitiveProperty ; rdfs:definedBy ; rdfs:comment "This oddly named property is ..." ; rdfs:domain ottr:List ; rdfs:range ottr:List . ottr:hasNext a owl:ObjectProperty , owl:FunctionalProperty ; rdfs:definedBy ; rdfs:subPropertyOf ottr:hasRest ; rdfs:domain ottr:List ; rdfs:range ottr:List . ottr:objectContent a owl:ObjectProperty , owl:FunctionalProperty ; rdfs:definedBy ; rdfs:domain ottr:List . ottr:dataContent a owl:DatatypeProperty , owl:FunctionalProperty ; rdfs:domain ottr:List . [ a owl:Restriction ; rdfs:comment "A list (item) can only contain either an object (via ottr:objectContent) or data value (via ottr:dataContent)." ; owl:onProperty ottr:objectContent ; owl:someValuesFrom owl:Thing ; owl:disjointWith [ a owl:Restriction ; owl:onProperty ottr:dataContent ; owl:someValuesFrom rdfs:Literal ] ] . ottr:Resource a owl:Class . ottr:NonLiteral rdfs:subClassOf ottr:Resource ; a owl:Class . ottr:Class rdfs:subClassOf ottr:NonLiteral ; a owl:Class . ottr:List rdfs:subClassOf ottr:NonLiteral ; a owl:Class . ottr:Individual rdfs:subClassOf ottr:NonLiteral ; a owl:Class . ottr:Datatype rdfs:subClassOf ottr:NonLiteral ; a owl:Class . ottr:Property rdfs:subClassOf ottr:NonLiteral ; a owl:Class . ottr:ObjectProperty rdfs:subClassOf ottr:Property ; a owl:Class . ottr:DataProperty rdfs:subClassOf ottr:Property ; a owl:Class . ottr:AnnotationProperty rdfs:subClassOf ottr:Property ; a owl:Class . ottr:literalVariable a owl:DatatypeProperty , owl:FunctionalProperty ; rdfs:domain ottr:Parameter . ottr:nonLiteralVariable a owl:ObjectProperty , owl:FunctionalProperty ; rdfs:domain ottr:Parameter . ottr:classVariable rdfs:subPropertyOf ottr:nonLiteralVariable ; a owl:ObjectProperty ; rdfs:range ottr:Class . ottr:listVariable rdfs:subPropertyOf ottr:nonLiteralVariable ; a owl:ObjectProperty ; rdfs:range ottr:List . ottr:individualVariable rdfs:subPropertyOf ottr:nonLiteralVariable ; a owl:ObjectProperty ; rdfs:range ottr:Individual . ottr:datatypeVariable rdfs:subPropertyOf ottr:nonLiteralVariable ; a owl:ObjectProperty ; rdfs:range ottr:Datatype . ottr:propertyVariable rdfs:subPropertyOf ottr:nonLiteralVariable ; a owl:ObjectProperty ; rdfs:range ottr:Property . ottr:objectPropertyVariable rdfs:subPropertyOf ottr:propertyVariable ; a owl:ObjectProperty ; rdfs:range ottr:ObjectProperty . ottr:dataPropertyVariable rdfs:subPropertyOf ottr:propertyVariable ; a owl:ObjectProperty ; rdfs:range ottr:DataProperty . ottr:annotationPropertyVariable rdfs:subPropertyOf ottr:propertyVariable ; a owl:ObjectProperty ; rdfs:range ottr:AnnotationProperty . [ a owl:AllDisjointClasses ; owl:members ( ottr:Class ottr:Property ottr:Individual ottr:Datatype ) ] . [ a owl:AllDisjointClasses ; owl:members ( ottr:ObjectProperty ottr:DataProperty ottr:AnnotationProperty ) ] . # non-literals disjoint-from literals [ a owl:AllDisjointClasses ; owl:members ( [ a owl:Restriction ; owl:onProperty ottr:nonLiteralVariable ; owl:someValuesFrom owl:Thing ] [ a owl:Restriction ; owl:onProperty ottr:literalVariable ; owl:someValuesFrom rdfs:Literal ] )] . [ a owl:AllDisjointClasses ; owl:members ( ottr:Template ottr:TemplateInstance ottr:Argument ottr:Parameter ottr:Resource ) ] .