@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix nrl: <http://tracker.api.gnome.org/ontology/v3/nrl#> .
@prefix nie: <http://tracker.api.gnome.org/ontology/v3/nie#> .
@prefix nco: <http://tracker.api.gnome.org/ontology/v3/nco#> .
@prefix slo: <http://tracker.api.gnome.org/ontology/v3/slo#> .

slo: a nrl:Namespace, nrl:Ontology ;
	nrl:prefix "slo" ;
	nrl:lastModified "2011-06-08T12:09:00Z" .

slo:LandmarkCategory a rdfs:Class ;
	rdfs:label "Landmark category";
	rdfs:comment "Predefined set of instances for categories of landmarks";
	nrl:notify true ;
	rdfs:subClassOf nie:InformationElement.

slo:isRemovable a rdf:Property ;
	rdfs:label "Is removable";
	rdfs:comment "Flag to indicate if this instance is removable. This restriction is not enforced by tracker; it is API responsability to honor the value";
	rdfs:domain slo:LandmarkCategory ;
	nrl:maxCardinality 1 ;
	rdfs:range xsd:boolean.

slo:categoryIconUrl a rdf:Property ;
	rdfs:label "Landmark category icon" ;
	rdfs:comment "Url of the icon that corresponds to this category." ;
	rdfs:domain slo:LandmarkCategory ;
	nrl:maxCardinality 1 ;
	rdfs:range rdfs:Resource .

slo:Landmark a rdfs:Class ;
	rdfs:label "Point with special relevance for the user" ;
	rdfs:subClassOf nie:InformationElement ;
	nrl:notify true ;
	rdfs:comment "Use the nie title, description, ... properties" .

slo:belongsToCategory a rdf:Property ;
	rdfs:label "Belongs to category";
	rdfs:comment "Relation of a landmark with a landmark category";
	rdfs:domain slo:Landmark ;
	rdfs:range slo:LandmarkCategory .

slo:hasContact a rdf:Property ;
	rdfs:label "Landmark contact information" ;
	rdfs:comment "The contact information of the landmark in question" ;
	rdfs:domain slo:Landmark ;
	rdfs:range nco:Contact .

slo:iconUrl a rdf:Property ;
	rdfs:label "Landmark icon" ;
	rdfs:comment "Url of the icon that corresponds to this landmark." ;
	rdfs:domain slo:Landmark ;
	nrl:maxCardinality 1 ;
	rdfs:range rdfs:Resource .

slo:GeoLocation a rdfs:Class ;
	rdfs:label "Location" ;
	rdfs:comment "A place in the space, can be defined by coordinates or text";
	nrl:notify true ;
	rdfs:subClassOf nie:InformationElement.

#Properties of GeoLocation
slo:latitude a rdf:Property ;
	rdfs:label "Latitude";
	rdfs:comment "Positive values for the north hemisphere, negative for the south" ;
	rdfs:domain slo:GeoLocation ;
	nrl:maxCardinality 1 ;
	rdfs:range  xsd:double .

slo:longitude a rdf:Property ;
	rdfs:label "Longitude" ;
	rdfs:comment "Positive to the East of the Greenwich meridian, negative to the West (following WGS-84)" ;
	rdfs:domain slo:GeoLocation ;
	nrl:maxCardinality 1 ;
	rdfs:range  xsd:double .

slo:verticalAccuracy a rdf:Property ;
	rdfs:label "Latitude";
	rdfs:comment "Represents the error estimate of vertical (earths-surface) accuracy in meters." ;
	rdfs:domain slo:GeoLocation ;
	nrl:maxCardinality 1 ;
	rdfs:range  xsd:double .

slo:horizontalAccuracy a rdf:Property ;
	rdfs:label "Longitude" ;
	rdfs:comment "Represents the error estimate of horizontal (earths-surface) accuracy in meters." ;
	rdfs:domain slo:GeoLocation ;
	nrl:maxCardinality 1 ;
	rdfs:range  xsd:double .

slo:altitude a rdf:Property ;
	rdfs:label "Altitude" ;
	rdfs:comment "Altitude following WGS 84 reference";
	rdfs:domain slo:GeoLocation ;
	nrl:maxCardinality 1 ;
	rdfs:range  xsd:double .

slo:boundingLatitudeMin a rdf:Property ;
	rdfs:label "Latitude";
	rdfs:comment "Southern latitude of the bounding box" ;
	rdfs:domain slo:GeoLocation ;
	nrl:maxCardinality 1 ;
	rdfs:range  xsd:double .

slo:boundingLatitudeMax a rdf:Property ;
	rdfs:label "Latitude";
	rdfs:comment "Northern latitude of the bounding box" ;
	rdfs:domain slo:GeoLocation ;
	nrl:maxCardinality 1 ;
	rdfs:range  xsd:double .

slo:boundingLongitudeMin a rdf:Property ;
	rdfs:label "Longitude" ;
	rdfs:comment "Western longitude of the bounding box" ;
	rdfs:domain slo:GeoLocation ;
	nrl:maxCardinality 1 ;
	rdfs:range  xsd:double .

slo:boundingLongitudeMax a rdf:Property ;
	rdfs:label "Longitude" ;
	rdfs:comment "Eastern longitude of the bounding box" ;
	rdfs:domain slo:GeoLocation ;
	nrl:maxCardinality 1 ;
	rdfs:range  xsd:double .

slo:radius a rdf:Property ;
	rdfs:label "Radius";
	rdfs:comment "Radius from the center to define an area. Some applications can use it in 2D sense, making then a circle instead of a sphere" ;
	rdfs:domain slo:GeoLocation ;
	nrl:maxCardinality 1 ;
	rdfs:range xsd:double .

slo:timestamp a rdf:Property ;
	rdfs:label "Timestamp" ;
	rdfs:comment "Timestamp when the geolocation is referenced. Create subproperties for certain use cases" ;
	rdfs:domain slo:GeoLocation ;
	nrl:maxCardinality 1 ;
	rdfs:range xsd:dateTime .

slo:postalAddress a rdf:Property ;
	rdfs:label "As postal address" ;
	rdfs:comment "Representation of the location as text address" ;
	nrl:indexed true ;
	rdfs:domain slo:GeoLocation ;
	nrl:maxCardinality 1 ;
	rdfs:range nco:PostalAddress .

# FIXME Domain rdfs:Resource?? to link files and not only content?
slo:location a rdf:Property ;
	rdfs:label "Property linking something to a location" ;
	rdfs:comment "This can be subclassed to add semantics" ;
	rdfs:domain nie:InformationElement ;
	nrl:indexed true ;
	nrl:maxCardinality 1 ;
	rdfs:range slo:GeoLocation .

# Comment for rethinking, this used to be subclass of bounding box..
# now location, properties other than the bounding box set to the starting point
slo:Route a rdfs:Class ;
	rdfs:label "Minimum box containing all the points traversed in route" ;
	rdfs:subClassOf slo:GeoLocation .

# Properties of Route
slo:startTime a rdf:Property ;
	rdfs:label "Time when the first point in the route was saved" ;
	rdfs:domain slo:Route ;
	nrl:maxCardinality 1 ;
	rdfs:range  xsd:dateTime .

slo:endTime a rdf:Property ;
	rdfs:label "Time when the last point in the route was saved" ;
	rdfs:domain slo:Route ;
	nrl:maxCardinality 1 ;
	rdfs:range  xsd:dateTime .

slo:routeDetails a rdf:Property ;
	rdfs:label "Pointer to a file containing route details (e.g. KML file)." ;
	rdfs:comment "FIXME Domain can be resource if we handle map-files correctly in the ontology";
	nrl:maxCardinality 1 ;
	rdfs:domain slo:Route ;
	rdfs:range  xsd:string .
