PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX s4city: <https://saref.etsi.org/saref4city/>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

<http://purl.org/vocab/cpsv#PublicService> a rdfs:Class ;
  rdfs:label "Public Service"@en ;
  rdfs:comment "This class represents the service itself. A public service is the capacity to carry out a procedure and exists whether it is used or not. It is a set of deeds and acts performed by or on behalf of a public agency for the benefit of a citizen, a business or another public agency."@en .

s4city:AdministrativeArea a rdfs:Class ;
  rdfs:label "Administrative area"@en ;
  rdfs:comment "An administrative division, unit, entity, area or region, also referred to as a subnational entity, constituent unit, or country subdivision, is a portion of a country or other region delineated for the purpose of administration. (https://en.wikipedia.org/wiki/Administrative_division)"@en ;
  rdfs:subClassOf <http://www.opengis.net/ont/geosparql#Feature> .

<http://www.opengis.net/ont/geosparql#hasGeometry> a rdf:Property ;
  rdfs:label "has geometry"@en ;
  rdfs:comment "A spatial representation for a given feature."@en ;
  rdfs:domain <http://www.opengis.net/ont/geosparql#Feature> ;
  rdfs:range <http://www.opengis.net/ont/geosparql#SpatialObject> .

<http://www.opengis.net/ont/geosparql#sfWithin> a rdf:Property ;
  rdfs:label "within"@en ;
  rdfs:comment "Exists if the subject SpatialObject is spatially within the object SpatialObject. DE-9IM: T*F**F***"@en ;
  rdfs:domain <http://www.opengis.net/ont/geosparql#SpatialObject> ;
  rdfs:range <http://www.opengis.net/ont/geosparql#SpatialObject> .

<http://www.opengis.net/ont/geosparql#sfContains> a rdf:Property ;
  rdfs:label "contains"@en ;
  rdfs:comment "Exists if the subject SpatialObject spatially contains the object SpatialObject. DE-9IM: T*****FF*"@en ;
  rdfs:domain <http://www.opengis.net/ont/geosparql#SpatialObject> ;
  rdfs:range <http://www.opengis.net/ont/geosparql#SpatialObject> .

<http://www.opengis.net/ont/geosparql#Geometry> a rdfs:Class ;
  rdfs:label "Geometry"@en ;
  rdfs:comment "The class represents the top-level geometry type. This class is equivalent to the UML class GM_Object defined in ISO 19107, and it is superclass of all geometry types."@en ;
  rdfs:subClassOf <http://www.opengis.net/ont/geosparql#SpatialObject> .

<http://www.opengis.net/ont/sf#Point> a rdfs:Class ;
  rdfs:label "Point"@en ;
  rdfs:comment """A Point is a 0-dimensional geometric object and represents a single location in coordinate space. 
A Point has an x-coordinate value, a y-coordinate value. If called for by the associated Spatial Reference System, it may also have coordinate values for z and m.
The boundary of a Point is the empty set."""@en ;
  rdfs:subClassOf <http://www.opengis.net/ont/sf#Geometry> .

<http://xmlns.com/foaf/0.1/Agent> a rdfs:Class ;
  rdfs:label "Agent"@en .

<http://xmlns.com/foaf/0.1/Person> a rdfs:Class ;
  rdfs:label "Person"@en ;
  rdfs:subClassOf <http://xmlns.com/foaf/0.1/Agent> .

<http://www.w3.org/2006/time#TemporalEntity> a rdfs:Class ;
  rdfs:label "Temporal entity"@en ;
  rdfs:comment "A temporal interval or instant."@en .

<http://www.w3.org/ns/org#Organization> a rdfs:Class ;
  rdfs:label "Organization"@en ;
  rdfs:subClassOf <http://xmlns.com/foaf/0.1/Agent> .

<https://saref.etsi.org/core/UnitOfMeasure> a rdfs:Class .

s4city:Event a rdfs:Class ;
  rdfs:label "Event"@en ;
  rdfs:comment "Temporary and scheduled event, like a festival or competition. (Definition taken from Wikidata)"@en ;
  rdfs:seeAlso <https://www.wikidata.org/wiki/Q1656682> .

s4city:isSubEventOf a rdf:Property ;
  rdfs:label "is subevent of"@en ;
  rdfs:comment "Relation between an event and a more general event it is part of."@en ;
  rdfs:domain s4city:Event ;
  rdfs:range s4city:Event .

s4city:takesPlaceAtTime a rdf:Property ;
  rdfs:label "takes place at time"@en ;
  rdfs:comment "Relation between an event and the tiem when it takes place."@en ;
  rdfs:domain s4city:Event ;
  rdfs:range <http://www.w3.org/2006/time#TemporalEntity> .

s4city:isOrganizedBy a rdf:Property ;
  rdfs:label "is organized by"@en ;
  rdfs:range s4city:Agent .

s4city:hasAccessibility a rdf:Property ;
  rdfs:label "has accessibility"@en ;
  rdfs:comment "relation between an event and the accesility modes provided"@en ;
  rdfs:domain s4city:Event ;
  rdfs:range s4city:AccessibilityConcept .

s4city:takesPlaceAtFacility a rdf:Property ;
  rdfs:label "takes place at facility"@en ;
  rdfs:comment "Relation between an event and the facilities it takes place at."@en ;
  rdfs:domain s4city:Event ;
  rdfs:range s4city:Facility .

s4city:Country a rdfs:Class ;
  rdfs:label "Country"@en ;
  rdfs:comment "A country is a region that is identified as a distinct national entity in political geography. (https://en.wikipedia.org/wiki/Country)"@en ;
  rdfs:subClassOf s4city:AdministrativeArea .

<http://www.opengis.net/ont/sf#Geometry> a rdfs:Class ;
  rdfs:label "Geometry"@en ;
  rdfs:comment """Geometry is the root class of the hierarchy.

The instantiable subclasses of Geometry are restricted to 0, 1 and 2-dimensional geometric objects that exist in 2, 3 or 4-dimensional coordinate space (R2, R3 or R4). Geometry values in R2 have points with coordinate values for x and y. Geometry values in R3 have points with coordinate values for x, y and z or for x, y and m. Geometry values in R4 have points with coordinate values for x, y, z and m.

The interpretation of the coordinates is subject to the coordinate reference systems associated to the point. All coordinates within a geometry object should be in the same coordinate reference systems. Each coordinate shall be unambiguously associated to a coordinate reference system either directly or through its containing geometry. The z coordinate of a point is typically, but not necessarily, represents altitude or elevation. The m coordinate represents a measurement.

All Geometry classes described in this specification are defined so that instances of Geometry are topologically closed, i.e. all represented geometries include their boundary as point sets. This does not affect their representation, and open versions of the same classes may be used in other circumstances, such as topological representations."""@en ;
  rdfs:subClassOf <http://www.opengis.net/ont/geosparql#Geometry> .

s4city:KeyPerformanceIndicator a rdfs:Class ;
  rdfs:label "Key Performance Indicator"@en ;
  rdfs:comment "A Key Performance Indicator (KPI) is a type of performance measurement. KPIs evaluate the success of an organization or of a particular activity in which it engages. (Definition taken from FIWARE)"@en ;
  rdfs:seeAlso <http://fiware-datamodels.readthedocs.io/en/latest/KeyPerformanceIndicator/doc/spec/index.html> .

s4city:hasCalculationPeriod a rdf:Property ;
  rdfs:label "has calculation period"@en ;
  rdfs:comment "Relation between a KPI  and the temporal period it refers to"@en ;
  rdfs:range xsd:duration .

s4city:isKPIOf a rdf:Property ;
  rdfs:label "is key performance indicator of"@en ;
  rdfs:domain s4city:KeyPerformanceIndicator ;
  rdfs:range <https://saref.etsi.org/core/FeatureOfInterest> .

s4city:CityObject a rdfs:Class ;
  rdfs:label "City object"@en ;
  rdfs:comment "Generic class for describing city objects."@en ;
  rdfs:subClassOf <http://www.opengis.net/ont/geosparql#Feature> .

<http://www.opengis.net/ont/geosparql#SpatialObject> a rdfs:Class ;
  rdfs:label "SpatialObject"@en ;
  rdfs:comment "The class spatial-object represents everything that can have a spatial representation. It is superclass of feature and geometry."@en .

s4city:Facility a rdfs:Class ;
  rdfs:label "Facility"@en ;
  rdfs:comment "A place, amenity, or piece of equipment provided for a particular purpose. (Definition taken from https://en.oxforddictionaries.com/definition/facility)"@en ;
  rdfs:subClassOf <http://www.opengis.net/ont/geosparql#Feature> .

<https://saref.etsi.org/core/Observation> a rdfs:Class .

s4city:AccessibilityConcept a rdfs:Class ;
  rdfs:label "Accessibility concept"@en ;
  rdfs:comment "SKOS concept to list  accessibility modes."@en ;
  rdfs:subClassOf <http://www.w3.org/2004/02/skos/core#Concept> .

s4city:KeyPerformanceIndicatorAssessment a rdfs:Class ;
  rdfs:label "Key performance indicator assessment"@en ;
  rdfs:comment "A Key Performance Indicator assessment represents the assessment of a KPI calculated by a given agent in a given time."@en .

s4city:refersToFeature a rdf:Property ;
  rdfs:label "refers to feature"@en ;
  rdfs:comment "Relation between a KPI assessment and the geographical feature it refers to"@en ;
  rdfs:domain s4city:KeyPerformanceIndicatorAssessment ;
  rdfs:range <http://www.opengis.net/ont/geosparql#Feature> .

s4city:quantifiesKPI a rdf:Property ;
  rdfs:label "quantifies KPI"@en ;
  rdfs:comment "Relation between a Key Performance Indicator Assessment and the genral Key Performance Indicator being assessed"@en ;
  rdfs:range s4city:KeyPerformanceIndicator .

s4city:isDerivedFrom a rdf:Property ;
  rdfs:label "is derived from"@en ;
  rdfs:comment "Relation between a Key Performance Indicator Assessmente and te observations used to calculate it"@en ;
  rdfs:range <https://saref.etsi.org/core/Observation> .

<https://saref.etsi.org/core/hasValue> a rdf:Property ;
  rdfs:range <https://w3id.org/linkml/Any> .

s4city:assesses a rdf:Property ;
  rdfs:label "assesses"@en ;
  rdfs:comment "Relation between a Key Performance Indicator and the feature of interest being assessed"@en ;
  rdfs:range <https://saref.etsi.org/core/FeatureOfInterest> .

s4city:isAssessedBy a rdf:Property ;
  rdfs:label "is assessed by"@en ;
  rdfs:comment "Relation between a Key Performance Indicator assessment and the agent perfoming the assessment"@en ;
  rdfs:range s4city:Agent .

s4city:hasLastUpdateDate a rdf:Property ;
  rdfs:label "has last update date"@en ;
  rdfs:comment "Las update of a KPI assessment"@en ;
  rdfs:range xsd:dateTime .

s4city:refersToTime a rdf:Property ;
  rdfs:label "refers to time"@en ;
  rdfs:comment "Relation between a KPI assessment and the tempral entity it refers to"@en ;
  rdfs:range <http://www.w3.org/2006/time#TemporalEntity> .

<https://saref.etsi.org/core/isMeasuredIn> a rdf:Property ;
  rdfs:range <https://saref.etsi.org/core/UnitOfMeasure> .

s4city:hasExpirationDate a rdf:Property ;
  rdfs:label "has expiration date"@en ;
  rdfs:comment "Expiration date of a KPI assessment"@en ;
  rdfs:range xsd:dateTime .

s4city:hasCreationDate a rdf:Property ;
  rdfs:label "has creation date"@en ;
  rdfs:comment "Creation date of a KPI assessment"@en ;
  rdfs:range xsd:dateTime .

<http://purl.org/dc/terms/LinguisticSystem> a rdfs:Class .

s4city:City a rdfs:Class ;
  rdfs:label "City"@en ;
  rdfs:comment "A city is a large human settlement. A city is distinguished from other human settlements by its relatively great size, but also by its functions and its special symbolic status, which may be conferred by a central authority. (https://en.wikipedia.org/wiki/City)"@en ;
  rdfs:subClassOf s4city:AdministrativeArea .

s4city:Agent a rdfs:Class ;
  rdfs:label "Agent"@en ;
  rdfs:comment "An agent making an action in the context of a city. An agent could be a person, software, etc."@en ;
  rdfs:subClassOf <http://xmlns.com/foaf/0.1/Agent> .

<http://purl.org/vocab/cpsv#provides> a rdf:Property ;
  rdfs:label "provides"@en ;
  rdfs:comment "The provides property links an Agent to a Public Service for which it is responsible. Whether it provides the service directly or outsources it is not relevant, the Agent that provides the service is the one that is ultimately responsible for its provision."@en ;
  rdfs:range s4city:PublicService .

<http://purl.org/vocab/cpsv#uses> a rdf:Property ;
  rdfs:label "uses"@en ;
  rdfs:comment "The uses property links an Agent to a Public Service in which it plays the specific role of user, meaning that it provides the input and receives the output but does not play any direct role in providing the service. This will typically be an individual citizen or an outside organisation."@en ;
  rdfs:range s4city:PublicService .

s4city:PublicService a rdfs:Class ;
  rdfs:label "Public service"@en ;
  rdfs:comment "Public service is a service which is provided by government either directly (through the public sector) or by financing provision of services. (Definition taken from Wikipedia)"@en ;
  rdfs:seeAlso <https://en.wikipedia.org/wiki/Public_service> ;
  rdfs:subClassOf <http://purl.org/vocab/cpsv#PublicService> .

s4city:involvesFacility a rdf:Property ;
  rdfs:label "involves facility"@en ;
  rdfs:comment "Relation between public services and the facilities involved"@en ;
  rdfs:domain s4city:PublicService ;
  rdfs:range s4city:Facility .

<http://purl.org/vocab/cpsv#physicallyAvailableAt> a rdf:Property ;
  rdfs:label "physically available at"@en ;
  rdfs:comment "A physical location at which a user may interact with the Public Service."@en ;
  rdfs:range s4city:AdministrativeArea .

s4city:isAvailableInLanguage a rdf:Property ;
  rdfs:label "is available in language"@en ;
  rdfs:comment "Relation between a public service and the languages it is available in."@en ;
  rdfs:domain s4city:PublicService ;
  rdfs:range <http://purl.org/dc/terms/LinguisticSystem> .

s4city:PublicAdministration a rdfs:Class ;
  rdfs:label "Public administration"@en ;
  rdfs:comment "Public leadership of public affairs directly responsible for executive action. (Definition taken from wikidata)"@en ;
  rdfs:seeAlso <https://www.wikidata.org/wiki/Q31728> ;
  rdfs:subClassOf <http://www.w3.org/ns/org#Organization> .

s4city:District a rdfs:Class ;
  rdfs:label "District"@en ;
  rdfs:comment "A district is a type of administrative division that, in some countries, is managed by local government. Across the world, areas known as \"districts\" vary greatly in size, spanning regions or counties, several municipalities, subdivisions of municipalities, school district, or political district. (https://en.wikipedia.org/wiki/District)"@en ;
  rdfs:subClassOf s4city:AdministrativeArea .

<http://www.w3.org/2004/02/skos/core#Concept> a rdfs:Class .

s4city:Neighbourhood a rdfs:Class ;
  rdfs:label "Neighbourhood"@en ;
  rdfs:comment "A neighbourhood (British English), or neighborhood (American English; see spelling differences), is a geographically localised community within a larger city, town, suburb or rural area. (https://en.wikipedia.org/wiki/Neighbourhood)"@en ;
  rdfs:subClassOf s4city:AdministrativeArea .

<http://www.opengis.net/ont/geosparql#Feature> a rdfs:Class ;
  rdfs:label "Feature"@en ;
  rdfs:comment "This class represents the top-level feature type. This class is equivalent to GFI_Feature defined in ISO 19156:2011, and it is superclass of all feature types."@en ;
  rdfs:subClassOf <http://www.opengis.net/ont/geosparql#SpatialObject> .

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

<https://saref.etsi.org/core/FeatureOfInterest> a rdfs:Class .

s4city:hasKPI a rdf:Property ;
  rdfs:label "has key performance indicator"@en ;
  rdfs:comment "Relation between a feature of interes and Key Performance Indicators"@en ;
  rdfs:domain <https://saref.etsi.org/core/FeatureOfInterest> ;
  rdfs:range s4city:KeyPerformanceIndicator .

s4city:hasDescription a rdf:Property ;
  rdfs:label "has description"@en ;
  rdfs:comment "Description of an entity like a KPI or KPI assessment"@en ;
  rdfs:range <https://w3id.org/linkml/Any> .

s4city:hasName a rdf:Property ;
  rdfs:label "has name"@en ;
  rdfs:comment "Name of an entity like a KPI or KPI assessment"@en ;
  rdfs:range <https://w3id.org/linkml/Any> .
