@prefix :      <http://ontology.cybershare.utep.edu/dbowl/relational-to-ontology-mapping-primitive.owl#> .
@prefix dc:    <http://purl.org/dc/elements/1.1/> .
@prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .
@prefix owl2xml: <http://www.w3.org/2006/12/owl2-xml#> .
@prefix dbowl: <http://ontology.cybershare.utep.edu/resource/dbowl/> .
@prefix ns0:   <http://protege.stanford.edu/plugins/owl/protege#> .
@prefix terms: <http://purl.org/dc/terms/> .
@prefix resource: <http://ontology.cybershare.utep.edu/resource/> .
@prefix xsd:   <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:   <http://www.w3.org/2002/07/owl#> .
@prefix vann:  <http://purl.org/vocab/vann/> .
@prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix cc:    <http://creativecommons.org/ns#> .

dbowl:ObjectPropertyMapping
        a                owl:Class ;
        rdfs:comment     "A mapping from a relational database element to an object property in RDF/OWL."^^xsd:string ;
        rdfs:label       "Object Property Mapping."^^xsd:string ;
        rdfs:subClassOf  dbowl:DB2SWMapping .

dbowl:hasGroupingAttributeMapping
        a                   owl:ObjectProperty ;
        rdfs:subPropertyOf  dbowl:isCollectionOfMapping .

rdfs:comment  a  owl:AnnotationProperty .

dbowl:hasPartMapping  a  owl:ObjectProperty ;
        rdfs:label  "has part mapping"^^xsd:string .

dbowl:DB2SWMapping  a  owl:Class ;
        rdfs:comment  "A mapping from an relational model to a Semantic Web ontology."^^xsd:string ;
        rdfs:label    "Database to Semantic Web mapping"^^xsd:string .

dbowl:ConceptMapping  a  owl:Class ;
        rdfs:label       "Concept Mapping."^^xsd:string , "A mapping from an entity or relation from a relational database to a concept/class in RDF/OWL."^^xsd:string ;
        rdfs:subClassOf  dbowl:DB2SWMapping .

dbowl:VirtualConceptMapping
        a                owl:Class ;
        rdfs:comment     "A virtual concept mapping will map a database query description into a concept that is defined by the constraints defined in the query."^^xsd:string ;
        rdfs:label       "Virtual concept mapping"^^xsd:string ;
        rdfs:subClassOf  dbowl:VirtualMapping .

dbowl:min0CardinalityRestriction
        a           owl:ObjectProperty ;
        rdfs:label  "min 0 restriction"^^xsd:string .

dbowl:TransitiveObjectPropertyMapping
        a                owl:Class ;
        rdfs:comment     "A mapping from a relational database element to an object property asserted as transitive."^^xsd:string ;
        rdfs:label       "Transitive Object Property Mapping."^^xsd:string ;
        rdfs:subClassOf  dbowl:ObjectPropertyMapping .

dbowl:min1CardinalityRestriction
        a           owl:ObjectProperty ;
        rdfs:label  "min 1 restriction"^^xsd:string .

dbowl:VirtualPropertyMapping
        a                owl:Class ;
        rdfs:comment     "A virtual property mapping will map a view to an object property restricted by a condition or a projection. This is used to map views that contain relations that were mapped as binary object properties and not as concepts."^^xsd:string ;
        rdfs:label       "Virtual property mapping"^^xsd:string ;
        rdfs:subClassOf  dbowl:VirtualMapping .

dbowl:VirtualCollectionMapping
        a                owl:Class ;
        rdfs:subClassOf  dbowl:VirtualMapping .

dbowl:hasRangeMapping
        a           owl:ObjectProperty ;
        rdfs:label  "has range mapping"^^xsd:string .

dbowl:equivalentClassMapping
        a           owl:ObjectProperty ;
        rdfs:label  "equivalent class mapping"^^xsd:string .

dbowl:hasAggregateFunctionMapping
        a       owl:DatatypeProperty .

dbowl:BinaryObjectPropertyMapping
        a                owl:Class ;
        rdfs:comment     "A mapping from a relational database element to a set of two inverse object properties in RDF/OWL."^^xsd:string ;
        rdfs:label       "Binary Object Property mapping."^^xsd:string ;
        rdfs:subClassOf  dbowl:ObjectPropertyMapping .

dbowl:UnaryObjectPropertyMapping
        a                owl:Class ;
        rdfs:comment     "Unary Object Property Mapping"^^xsd:string , "A mapping from a relational database element to one object property, i.e. an inverse object property will not be created."^^xsd:string ;
        rdfs:subClassOf  dbowl:ObjectPropertyMapping .

dbowl:max0CardinalityRestriction
        a           owl:ObjectProperty ;
        rdfs:label  "max 0 restriction"^^xsd:string .

dbowl:max1CardinalityRestriction
        a           owl:ObjectProperty ;
        rdfs:label  "max 1 restriction"^^xsd:string .

dbowl:existsSomeRestriction
        a           owl:ObjectProperty ;
        rdfs:label  "exists some restriction"^^xsd:string .

dbowl:hasDomainMapping
        a           owl:ObjectProperty ;
        rdfs:label  "has domain mapping"^^xsd:string .

dbowl:PropertyRangeMapping
        a                owl:Class ;
        rdfs:comment     "A mapping from a relational database element as the range of an object property."^^xsd:string ;
        rdfs:label       "Property Range Mapping"^^xsd:string ;
        rdfs:subClassOf  dbowl:DB2SWMapping .

dbowl:onlyFromPropertyRestriction
        a           owl:ObjectProperty ;
        rdfs:label  "only from restriction"^^xsd:string .

rdfs:label  a   owl:AnnotationProperty .

dbowl:exactly1CardinalityRestriction
        a           owl:ObjectProperty ;
        rdfs:label  "exactly one restriction"^^xsd:string .

dbowl:hasInversePropertyMapping
        a           owl:ObjectProperty ;
        rdfs:label  "has inverse property mapping"^^xsd:string .

dbowl:isCollectionOfMapping
        a       owl:ObjectProperty .

dbowl:hasTypeMapping  a  owl:ObjectProperty ;
        rdfs:label  "has type mapping"^^xsd:string .

dbowl:isSubClassOfDomainOfMapping
        a              owl:ObjectProperty ;
        owl:inverseOf  dbowl:hasSubClassOfDomainMapping .

<http://ontology.cybershare.utep.edu/dbowl/relational-to-ontology-mapping-primitive.owl>
        a                              owl:Ontology ;
        rdfs:isDefinedBy               <http://ontology.cybershare.utep.edu/dbowl/relational-to-ontology-mapping-primitive.owl> ;
        cc:license                     "http://creativecommons.org/licenses/by/3.0/"^^xsd:anyURI ;
        ns0:defaultLanguage            "en" ;
        dc:contributor                 "Contributors are those that engage in discussions during the development of this ontology (in alphabetical order):\n\t\tmichel dumontier\n\t\tluis garnica\n\t\t"^^xsd:string ;
        dc:creator                     "Natalia Villanueva-Rosales"@en , "iLink @ UTEP"@en , "http://cybershare.utep.edu"^^xsd:anyURI ;
        dc:description                 "\n\t\tPrimitive ontology for database to Semantic Web mapping which subsumes classes that\n\t\trepresent mappings to explicit OWL constructs, such as OWL class, object property, data\n\t\tproperty, etc. Classes in this ontology are populated by individuals representing components of the database schema being mapped.\n\t\t"@en ;
        dc:issued                      "2016-03-01"^^xsd:date ;
        dc:rights                      "free to use,share,modify. modify with attribution [http://creativecommons.org/licenses/by/3.0/]."^^xsd:string ;
        dc:title                       "Relational to Ontology Mapping Primitive"@en ;
        terms:identifier               "relational-to-ontology-mapping-primitive.owl" ;
        terms:modified                 "2016-04-01"^^xsd:date ;
        vann:preferredNamespacePrefix  "dbowl"@en ;
        vann:preferredNamespaceUri     "http://ontology.cybershare.utep.edu/dbowl/"^^xsd:string ;
        owl:versionIRI                 <http://ontology.cybershare.utep.edu/dbowl/relational-to-ontology-mapping-primitive.owl> ;
        owl:versionInfo                "2.0"^^xsd:string .

dbowl:RelationConceptMapping
        a                owl:Class ;
        rdfs:comment     "A mapping from an entity or relation from a relational database to a concept/class in RDF/OWL that will represent a relationship."^^xsd:string ;
        rdfs:label       "Relation Concept Mapping."^^xsd:string ;
        rdfs:subClassOf  dbowl:ConceptMapping .

dbowl:hasPropertyMapping
        a       owl:ObjectProperty .

dbowl:FunctionalDatatypePropertyMapping
        a                owl:Class ;
        rdfs:subClassOf  dbowl:DatatypePropertyMapping .

dbowl:DatatypePropertyMapping
        a                owl:Class ;
        rdfs:comment     "A mapping from a relational database element to a datatype property in RDF/OWL."^^xsd:string ;
        rdfs:label       "Datatype property mapping."^^xsd:string ;
        rdfs:subClassOf  dbowl:DB2SWMapping .

dbowl:PropertyDomainMapping
        a                owl:Class ;
        rdfs:comment     "A mapping from a relational database element as the domain of an object property."^^xsd:string ;
        rdfs:label       "Property Domain Mapping"^^xsd:string ;
        rdfs:subClassOf  dbowl:DB2SWMapping .

dbowl:SpecificRelationMapping
        a                owl:Class ;
        rdfs:label       "Specific Relation Mapping."^^xsd:string , "A mapping from a relational database element to the subclass (i.e. is-a) relation between to classes."^^xsd:string ;
        rdfs:subClassOf  dbowl:DB2SWMapping .

dbowl:EntityConceptMapping
        a                owl:Class ;
        rdfs:label       "Entity Concept Mapping."^^xsd:string , "A mapping from an entity or relation from a relational database to a concept/class in RDF/OWL that will represent an entity."^^xsd:string ;
        rdfs:subClassOf  dbowl:ConceptMapping .

dbowl:EnnumerationPropertyRangeMapping
        a                owl:Class ;
        rdfs:subClassOf  dbowl:PropertyRangeMapping .

dbowl:FunctionalObjectPropertyMapping
        a                owl:Class ;
        rdfs:comment     "Functional Object Property Mapping."^^xsd:string , "A mapping from a relational database element to an object property asserted as functional."^^xsd:string ;
        rdfs:subClassOf  dbowl:ObjectPropertyMapping .

dbowl:hasSubClassOfRangeMapping
        a       owl:ObjectProperty .

dbowl:SymmetricObjectPropertyMapping
        a                owl:Class ;
        rdfs:comment     "A mapping from a relational database element to an object property asserted as symmetric."^^xsd:string ;
        rdfs:label       "Symmetric Object Property Mapping"^^xsd:string ;
        rdfs:subClassOf  dbowl:ObjectPropertyMapping .

dbowl:VirtualMapping  a  owl:Class ;
        rdfs:comment     "A virtual mapping will create concepts that will not be populated from the database. Instead, it will contain the restrictions that will define the membership for that concept. They can be used to map restrictions described in views, queries, etc."^^xsd:string ;
        rdfs:label       "Dabatase virtual concept mapping"^^xsd:string ;
        rdfs:subClassOf  dbowl:DB2SWMapping .

dbowl:hasSubClassOfDomainMapping
        a       owl:ObjectProperty .

dbowl:AggregationRelationMapping
        a                owl:Class ;
        rdfs:comment     "A mapping from a relational database element to the parthood (i.e. hasPart) relation between to cclasses."^^xsd:string ;
        rdfs:label       "Aggregation Relation Mapping."^^xsd:string ;
        rdfs:subClassOf  dbowl:DB2SWMapping .

dbowl:InverseFunctionalObjectPropertyMapping
        a                owl:Class ;
        rdfs:comment     "A mapping from a relational database element to an object property asserted as inverse functional."^^xsd:string ;
        rdfs:label       "Inverse Functional Object Property Mapping."^^xsd:string ;
        rdfs:subClassOf  dbowl:ObjectPropertyMapping .

dbowl:isSubClassOfRangeOfMapping
        a              owl:ObjectProperty ;
        owl:inverseOf  dbowl:hasSubClassOfRangeMapping .
