PREFIX ontoexposure: <https://www.theworldavatar.com/kg/ontoexposure/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

ontoexposure:TrajectoryArea a rdfs:Class ;
  rdfs:label "Area" ;
  rdfs:comment "Total intersected area between the trajectory buffer and exposure elements (polygons)" ;
  rdfs:subClassOf ontoexposure:Calculation .

ontoexposure:hasDatasetFilter a rdf:Property ;
  rdfs:comment "Dataset filter to filter a table" ;
  rdfs:domain ontoexposure:Calculation ;
  rdfs:range ontoexposure:DatasetFilter .

ontoexposure:hasDistance a rdf:Property ;
  rdfs:domain ontoexposure:Calculation ;
  rdfs:range xsd:decimal .

<http://www.opengis.net/ont/geosparql#Geometry> a rdfs:Class .

ontoexposure:ColumnBasedCalculation a rdfs:Class ;
  rdfs:comment "A calculation that extracts values from a specified dataset column" ;
  rdfs:subClassOf ontoexposure:Calculation .

ontoexposure:hasColumnName a rdf:Property ;
  rdfs:comment "Column to extract value from" ;
  rdfs:domain ontoexposure:ColumnBasedCalculation ;
  rdfs:range xsd:string .

ontoexposure:TimeZone a rdfs:Class ;
  rdfs:comment "An instance with a representative WKT literal (polygon) and an associated time zone ID" ;
  rdfs:subClassOf <http://www.opengis.net/ont/geosparql#Geometry> .

ontoexposure:tzid a rdf:Property ;
  rdfs:comment "Time zone ID as string" ;
  rdfs:domain ontoexposure:TimeZone ;
  rdfs:range xsd:string .

ontoexposure:WeightedAverage a rdfs:Class ;
  rdfs:label "Weighted average" ;
  rdfs:comment "Weighted average of intersected features" ;
  rdfs:subClassOf ontoexposure:ColumnBasedCalculation .

ontoexposure:TotalLength a rdfs:Class ;
  rdfs:label "Total length" ;
  rdfs:comment "Sum of length of lines enclosed by buffer" ;
  rdfs:subClassOf ontoexposure:Calculation .

ontoexposure:RasterAverage a rdfs:Class ;
  rdfs:label "Raster average" ;
  rdfs:comment "Average of pixel values enclosed by buffer" ;
  rdfs:subClassOf ontoexposure:Calculation .

ontoexposure:Area a rdfs:Class ;
  rdfs:label "Area" ;
  rdfs:comment "Total intersected area between the buffer of a fixed vector element and the exposure elements (polygons)" ;
  rdfs:subClassOf ontoexposure:Calculation .

ontoexposure:AreaWeightedSum a rdfs:Class ;
  rdfs:label "Area weighted sum" ;
  rdfs:comment "The sum of the product between the value and area associated with the intersected vector elements" ;
  rdfs:subClassOf ontoexposure:Calculation .

<https://www.theworldavatar.com/kg/ontoderivation/Derivation> a rdfs:Class .

ontoexposure:hasExposureDataset a rdf:Property ;
  rdfs:comment "Links a derivation to a exposure dataset" ;
  rdfs:domain <https://www.theworldavatar.com/kg/ontoderivation/Derivation> ;
  rdfs:range ontoexposure:ExposureDataset .

ontoexposure:hasSubject a rdf:Property ;
  rdfs:comment "Links a derivation to a exposure subject" ;
  rdfs:domain <https://www.theworldavatar.com/kg/ontoderivation/Derivation> ;
  rdfs:range ontoexposure:Subject .

ontoexposure:TrajectoryCount a rdfs:Class ;
  rdfs:label "Count" ;
  rdfs:comment "Number of features within the buffer of the trajectory" ;
  rdfs:subClassOf ontoexposure:Calculation .

ontoexposure:hasLowerbound a rdf:Property ;
  rdfs:domain ontoexposure:TrajectoryCount ;
  rdfs:range xsd:long .

ontoexposure:hasUpperbound a rdf:Property ;
  rdfs:domain ontoexposure:TrajectoryCount ;
  rdfs:range xsd:long .

ontoexposure:Subject a rdfs:Class ;
  rdfs:comment "Defines the subject of exposure for calculations" ;
  rdfs:subClassOf <http://www.opengis.net/ont/geosparql#Geometry> .

<http://www.w3.org/ns/dcat#Dataset> a rdfs:Class .

ontoexposure:RasterArea a rdfs:Class ;
  rdfs:label "Raster area" ;
  rdfs:comment "Sum of pixel area enclosed by buffer" ;
  rdfs:subClassOf ontoexposure:Calculation .

ontoexposure:Trip a rdfs:Class .

ontoexposure:Count a rdfs:Class ;
  rdfs:label "Count" ;
  rdfs:comment "Number of features within the buffer of a fixed vector element" ;
  rdfs:subClassOf ontoexposure:Calculation .

ontoexposure:Areal a rdfs:Class ;
  rdfs:label "Areal" ;
  rdfs:comment "Direct assignment of features with values attached" ;
  rdfs:subClassOf ontoexposure:ColumnBasedCalculation .

ontoexposure:ExposureDataset a rdfs:Class ;
  rdfs:comment "Super class of exposure datasets" ;
  rdfs:subClassOf <http://www.w3.org/ns/dcat#Dataset> .

ontoexposure:hasIriColumn a rdf:Property ;
  rdfs:comment "Name of the column containing the IRI of the feature" ;
  rdfs:domain ontoexposure:ExposureDataset ;
  rdfs:range xsd:string .

ontoexposure:hasGeometryColumn a rdf:Property ;
  rdfs:comment "Name of the geometry column of the dataset" ;
  rdfs:domain ontoexposure:ExposureDataset ;
  rdfs:range xsd:string .

ontoexposure:Calculation a rdfs:Class ;
  rdfs:comment "Defines the calculation method used to derive an ExposureResult" .

ontoexposure:ExposureResult a rdfs:Class ;
  rdfs:comment "Result of a calculation" .

ontoexposure:hasPercentile a rdf:Property ;
  rdfs:comment "Percentile of the value" ;
  rdfs:domain ontoexposure:ExposureResult ;
  rdfs:range xsd:decimal .

ontoexposure:hasUnit a rdf:Property ;
  rdfs:comment "Unit of exposure result" ;
  rdfs:domain ontoexposure:ExposureResult ;
  rdfs:range xsd:string .

ontoexposure:hasCalculationMethod a rdf:Property ;
  rdfs:comment "Calculation method used to derive exposure result" ;
  rdfs:domain ontoexposure:ExposureResult ;
  rdfs:range ontoexposure:Calculation .

ontoexposure:hasValue a rdf:Property ;
  rdfs:comment "Numerical value of exposure result" ;
  rdfs:domain ontoexposure:ExposureResult ;
  rdfs:range xsd:decimal .

ontoexposure:AreaWeightedDataset a rdfs:Class ;
  rdfs:comment "A raster dataset with an area column specifying the area of a pixel" ;
  rdfs:subClassOf ontoexposure:ExposureDataset .

ontoexposure:hasAreaColumn a rdf:Property ;
  rdfs:comment "Name of the column holding area values" ;
  rdfs:domain ontoexposure:AreaWeightedDataset ;
  rdfs:range xsd:string .

ontoexposure:ClosestDistance a rdfs:Class ;
  rdfs:label "Closest distance" ;
  rdfs:comment "Calculates the closest distance between the subject and features in the exposure dataset" ;
  rdfs:subClassOf ontoexposure:Calculation .

ontoexposure:Average a rdfs:Class ;
  rdfs:label "Average" ;
  rdfs:comment "Average of intersected features" ;
  rdfs:subClassOf ontoexposure:ColumnBasedCalculation .

<https://w3id.org/linkml/Any> a rdfs:Class ;
  rdfs:comment "An unconstrained type or object" .

ontoexposure:DatasetFilter a rdfs:Class ;
  rdfs:comment "Instructs agent how to filter a dataset" .

ontoexposure:hasFilterColumn a rdf:Property ;
  rdfs:comment "Name of the column to filter" ;
  rdfs:domain ontoexposure:DatasetFilter ;
  rdfs:range xsd:string .

ontoexposure:hasFilterValue a rdf:Property ;
  rdfs:comment "Value to filter" ;
  rdfs:domain ontoexposure:DatasetFilter ;
  rdfs:range <https://w3id.org/linkml/Any> .

ontoexposure:RasterSum a rdfs:Class ;
  rdfs:label "Raster sum" ;
  rdfs:comment "Sum of pixel values enclosed by buffer" ;
  rdfs:subClassOf ontoexposure:Calculation .
