@prefix rdf:    <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs:   <http://www.w3.org/2000/01/rdf-schema#> .
@prefix owl:    <http://www.w3.org/2002/07/owl#> .
@prefix xsd:    <http://www.w3.org/2001/XMLSchema#> .
@prefix obsl:   <https://ralforion.com/ns/obsl#> .

obsl: a owl:Ontology ;
  rdfs:label "OrionBelt Semantic Layer Core Vocabulary" ;
  rdfs:comment "Finalized OBSL-Core 0.1 vocabulary." .

obsl:SemanticModel a owl:Class ; rdfs:label "Semantic Model" .
obsl:DataObject a owl:Class ; rdfs:label "Data Object" .
obsl:Column a owl:Class ; rdfs:label "Column" .
obsl:Join a owl:Class ; rdfs:label "Join" .
obsl:Dimension a owl:Class ; rdfs:label "Dimension" .
obsl:Measure a owl:Class ; rdfs:label "Measure" .
obsl:Metric a owl:Class ; rdfs:label "Metric" .

obsl:hasDataObject a owl:ObjectProperty ; rdfs:domain obsl:SemanticModel ; rdfs:range obsl:DataObject .
obsl:hasDimension a owl:ObjectProperty ; rdfs:domain obsl:SemanticModel ; rdfs:range obsl:Dimension .
obsl:hasMeasure a owl:ObjectProperty ; rdfs:domain obsl:SemanticModel ; rdfs:range obsl:Measure .
obsl:hasMetric a owl:ObjectProperty ; rdfs:domain obsl:SemanticModel ; rdfs:range obsl:Metric .
obsl:belongsToModel a owl:ObjectProperty ; rdfs:range obsl:SemanticModel .

obsl:hasColumn a owl:ObjectProperty ; rdfs:domain obsl:DataObject ; rdfs:range obsl:Column .
obsl:hasJoin a owl:ObjectProperty ; rdfs:domain obsl:DataObject ; rdfs:range obsl:Join .
obsl:joinTo a owl:ObjectProperty ; rdfs:domain obsl:Join ; rdfs:range obsl:DataObject .
obsl:columnFrom a owl:ObjectProperty ; rdfs:domain obsl:Join ; rdfs:range obsl:Column .
obsl:columnTo a owl:ObjectProperty ; rdfs:domain obsl:Join ; rdfs:range obsl:Column .

obsl:dataObject a owl:ObjectProperty ; rdfs:range obsl:DataObject .
obsl:column a owl:ObjectProperty ; rdfs:range obsl:Column .
obsl:sourceColumn a owl:ObjectProperty ; rdfs:domain obsl:Measure ; rdfs:range obsl:Column .
obsl:baseMeasure a owl:ObjectProperty ; rdfs:domain obsl:Metric ; rdfs:range obsl:Measure .
obsl:referencesMeasure a owl:ObjectProperty ; rdfs:domain obsl:Metric ; rdfs:range obsl:Measure .

obsl:code a owl:DatatypeProperty ; rdfs:range xsd:string .
obsl:database a owl:DatatypeProperty ; rdfs:range xsd:string .
obsl:schema a owl:DatatypeProperty ; rdfs:range xsd:string .
obsl:physicalName a owl:DatatypeProperty ; rdfs:range xsd:string .
obsl:resultType a owl:DatatypeProperty ; rdfs:range xsd:string .
obsl:aggregation a owl:DatatypeProperty ; rdfs:range xsd:string .
obsl:metricType a owl:DatatypeProperty ; rdfs:range xsd:string .
obsl:cardinality a owl:DatatypeProperty ; rdfs:range xsd:string .
obsl:timeGrain a owl:DatatypeProperty ; rdfs:range xsd:string .
obsl:expressionSource a owl:DatatypeProperty ; rdfs:range xsd:string .
obsl:secondary a owl:DatatypeProperty ; rdfs:range xsd:boolean .
obsl:pathName a owl:DatatypeProperty ; rdfs:range xsd:string .
obsl:synonym a owl:DatatypeProperty ; rdfs:range xsd:string .
obsl:distinct a owl:DatatypeProperty ; rdfs:range xsd:boolean .
obsl:total a owl:DatatypeProperty ; rdfs:range xsd:boolean .
obsl:allowFanOut a owl:DatatypeProperty ; rdfs:range xsd:boolean .
