POSO: A Generic Positioning System Ontology

Maxim Van de Wynckel and Beat Signer
Web & Information Systems Engineering Lab
Vrije Universiteit Brussel

POsitioning System Ontology

Introduction

POSO provides the terminology needed to describe different types of positioning systems, the algorithms and technnologies that they implement and the data that is produced by these systems.

Location-based Services

Location-based Services

Location-based Services ...

Positioning System

Positioning System ...

  • Satellite positioning systems

  • Optical positioning systems

  • Inertial positioning systems

  • Integrated positioning systems

  • Indoor positioning systems

Tracked Entities and Their Properties

Ontology Design

Ontology Design ...

Ontology Design ...

Ontology Design ...

Ontology Design ...

POSO Common Module (posoc)

http://purl.org/poso/common/

  • Adds common in-use positioning systems and location-based services
    • e.g. Global Positioning System, GeolocationAPI
  • Adds common algorithm implementations
    • e.g. HectorSLAM, Trilateration, CSI fingerprinting
    • Adds graph shapes for algorithm input and output
  • Adds common frameworks/platforms
    • e.g. IndoorAtlas, AnyPlace
  • Adds common types of landmarks
    • e.g. iBeacon, Eddystone, AltBeacon

Usage

Positioning System

turtle
dbr:Some_Unversity a ssn:Deployment .
<deployment/building_a> a poso:IndoorDeployment, geosparql:Feature ;
rdfs:label "Building A"@en ;
geosparql:hasGeometry [
a geosparql:Geometry ;
geosparql:asWKT "..."^^geosparql:wktLiteral ] .
<system/OPS> a poso:LocationBasedService ;
rdfs:label "Outdoor campus positioning"@en ;
ssn:hasSubSystem posoc:GPS ;
ssn:hasDeployment dbr:Some_University .
<system/IPS> a poso:IndoorPositioningSystem ;
rdfs:label "Indoor campus positioning"@en ;
ssn:hasDeployment <deployment/building_a> ;
ssn:implements posoc:KNNFingerprinting .
<system/CampusPositioning> a poso:IntegratedPositioningSystem ;
rdfs:label "Hybrid campus positioning system"@en ;
ssn:hasSubSystem <system/OPS>, <system/IPS> ;
ssn:implements posoc:WeightedAccuracyFusion .

Usage

Positioning System

turtle
dbr:Some_Unversity a ssn:Deployment .
<deployment/building_a> a poso:IndoorDeployment, geosparql:Feature ;
rdfs:label "Building A"@en ;
geosparql:hasGeometry [
a geosparql:Geometry ;
geosparql:asWKT "..."^^geosparql:wktLiteral ] .
<system/OPS> a poso:LocationBasedService ;
rdfs:label "Outdoor campus positioning"@en ;
ssn:hasSubSystem posoc:GPS ;
ssn:hasDeployment dbr:Some_University .
<system/IPS> a poso:IndoorPositioningSystem ;
rdfs:label "Indoor campus positioning"@en ;
ssn:hasDeployment <deployment/building_a> ;
ssn:implements posoc:KNNFingerprinting .
<system/CampusPositioning> a poso:IntegratedPositioningSystem ;
rdfs:label "Hybrid campus positioning system"@en ;
ssn:hasSubSystem <system/OPS>, <system/IPS> ;
ssn:implements posoc:WeightedAccuracyFusion .

Usage

Positioning System

turtle
dbr:Some_Unversity a ssn:Deployment .
<deployment/building_a> a poso:IndoorDeployment, geosparql:Feature ;
rdfs:label "Building A"@en ;
geosparql:hasGeometry [
a geosparql:Geometry ;
geosparql:asWKT "..."^^geosparql:wktLiteral ] .
<system/OPS> a poso:LocationBasedService ;
rdfs:label "Outdoor campus positioning"@en ;
ssn:hasSubSystem posoc:GPS ;
ssn:hasDeployment dbr:Some_University .
<system/IPS> a poso:IndoorPositioningSystem ;
rdfs:label "Indoor campus positioning"@en ;
ssn:hasDeployment <deployment/building_a> ;
ssn:implements posoc:KNNFingerprinting .
<system/CampusPositioning> a poso:IntegratedPositioningSystem ;
rdfs:label "Hybrid campus positioning system"@en ;
ssn:hasSubSystem <system/OPS>, <system/IPS> ;
ssn:implements posoc:WeightedAccuracyFusion .

Usage

Positioning System

turtle
dbr:Some_Unversity a ssn:Deployment .
<deployment/building_a> a poso:IndoorDeployment, geosparql:Feature ;
rdfs:label "Building A"@en ;
geosparql:hasGeometry [
a geosparql:Geometry ;
geosparql:asWKT "..."^^geosparql:wktLiteral ] .
<system/OPS> a poso:LocationBasedService ;
rdfs:label "Outdoor campus positioning"@en ;
ssn:hasSubSystem posoc:GPS ;
ssn:hasDeployment dbr:Some_University .
<system/IPS> a poso:IndoorPositioningSystem ;
rdfs:label "Indoor campus positioning"@en ;
ssn:hasDeployment <deployment/building_a> ;
ssn:implements posoc:KNNFingerprinting .
<system/CampusPositioning> a poso:IntegratedPositioningSystem ;
rdfs:label "Hybrid campus positioning system"@en ;
ssn:hasSubSystem <system/OPS>, <system/IPS> ;
ssn:implements posoc:WeightedAccuracyFusion .

Usage

Tracked Feature and Properties

turtle
<me> a poso:TrackedFeature, foaf:Person ;
foaf:name "Maxim Van de Wynckel"@en ;
poso:hasPosition <me/position> ;
poso:hasOrientation <me/orientation> .
<me/position> a poso:AbsolutePosition ;
rdfs:comment "Absolute position of Maxim Van de Wynckel"@en ;
poso:hasAccuracy <me/position/accuracy> .
<me/position/accuracy> a ssns:Accuracy ;
schema:maxValue "2.0"^^xsd:float ; schema:unitCode unit:M .
<me/orientation> a poso:Orientation ;
rdfs:comment: "Orientation of Maxim Van de Wynckel"@en ;
poso:hasAccuracy <me/orientation/accuracy> .
<me/orientation/accuracy> a ssns:Accuracy ;
schema:maxValue "15.0"^^xsd:float ; schema:unitCode unit:Deg .

Usage

Observation

turtle
<position/1654350300000> a sosa:Observation ;
sosa:hasFeatureOfInterest <me> ;
sosa:observedProperty <me/position> ;
sosa:resultTime "2022-06-04T15:55:00+02:00"^^xsd:dateTimeStamp ;
poso:usedSystem <system/OPS> ;
sosa:hasResult [ a geosparql:Geometry ;
geosparql:hasSpatialAccuracy [ a qudt:QuantityValue ;
qudt:unit unit:CentiM ; qudt:numericValue "28"^^xsd:float ] ;
geosparql:asWKT """
<http://www.opengis.net/def/crs/OGC/1.3/CRS84>
Point(4.888028 50.31397)"""^^geosparql:wktLiteral ;
geosparql:dimension 2 ] .

Usage

Observation ...

turtle
<position/1647513000000> a sosa:Observation ;
sosa:hasFeatureOfInterest <me> ;
sosa:observedProperty <me/position> ;
sosa:resultTime "2022-03-17T11:30:00+01:00"^^xsd:dateTimeStamp ;
sosa:usedProcedure posoc:KNNFingerprinting ;
poso:usedSystem <system/IPS> ;
sosa:hasResult [ a poso:AbsolutePosition ;
poso:inDeployment <deployment/building_a> ;
poso:hasAccuracy [ a ssns:Accuracy ;
schema:maxValue "25.0"^^xsd:float ;
schema:unitCode unit:CentiM ] ;
poso:xAxisValue [ a qudt:QuantityValue ;
qudt:unit unit:M ; qudt:numericValue "5"^^xsd:double ] ;
poso:yAxisValue [ a qudt:QuantityValue ;
qudt:unit unit:M ; qudt:numericValue "6"^^xsd:double ] ;
poso:zAxisValue [ a qudt:QuantityValue ;
qudt:unit unit:M ; qudt:numericValue "3.5"^^xsd:double ] ] .

Usage

Observation ...

turtle
<position/1647513000000> a sosa:Observation ;
sosa:hasFeatureOfInterest <me> ;
sosa:observedProperty <me/position> ;
sosa:resultTime "2022-03-17T11:30:00+01:00"^^xsd:dateTimeStamp ;
sosa:usedProcedure posoc:KNNFingerprinting ;
poso:usedSystem <system/IPS> ;
sosa:hasResult [ a poso:AbsolutePosition ;
poso:inDeployment <deployment/building_a> ;
poso:hasAccuracy [ a ssns:Accuracy ;
schema:maxValue "25.0"^^xsd:float ;
schema:unitCode unit:CentiM ] ;
poso:xAxisValue [ a qudt:QuantityValue ;
qudt:unit unit:M ; qudt:numericValue "5"^^xsd:double ] ;
poso:yAxisValue [ a qudt:QuantityValue ;
qudt:unit unit:M ; qudt:numericValue "6"^^xsd:double ] ;
poso:zAxisValue [ a qudt:QuantityValue ;
qudt:unit unit:M ; qudt:numericValue "3.5"^^xsd:double ] ] .

Usage

Observation ...

turtle
<position/1647513000000> a sosa:Observation ;
sosa:hasFeatureOfInterest <me> ;
sosa:observedProperty <me/position> ;
sosa:resultTime "2022-03-17T11:30:00+01:00"^^xsd:dateTimeStamp ;
sosa:usedProcedure posoc:KNNFingerprinting ;
poso:usedSystem <system/IPS> ;
sosa:hasResult [ a poso:AbsolutePosition ;
poso:inDeployment <deployment/building_a> ;
poso:hasAccuracy [ a ssns:Accuracy ;
schema:maxValue "25.0"^^xsd:float ;
schema:unitCode unit:CentiM ] ;
poso:xAxisValue [ a qudt:QuantityValue ;
qudt:unit unit:M ; qudt:numericValue "5"^^xsd:double ] ;
poso:yAxisValue [ a qudt:QuantityValue ;
qudt:unit unit:M ; qudt:numericValue "6"^^xsd:double ] ;
poso:zAxisValue [ a qudt:QuantityValue ;
qudt:unit unit:M ; qudt:numericValue "3.5"^^xsd:double ] ] .

Usage

Relative Position

turtle
<landmark/wap_1> a poso:Landmark ;
rdfs:label "Wireless Access Point 1"@en ;
poso:hasPosition [ a poso:AbsolutePosition ;
poso:hasAccuracy [ ... ] ;
poso:xAxisValue [ ... ] ; poso:yAxisValue [ ... ] ; poso:zAxisValue [ ... ] ] .
<me/position/relative/wap_1> a poso:RelativeDistance ;
ssn:isPropertyOf <me> ; # Relative distance from <me> ...
poso:isRelativeTo <landmark/wap_1> ; # to <landmark/wap_1>
rdfs:comment "Relative position of Maxim Van de Wynckel to WAP_1"@en .
<position/relative/wap_1/1646891100000> a sosa:Observation ;
sosa:hasFeatureOfInterest <me>, <landmark/wap_1> ;
sosa:observedProperty <me/position/relative/wap_1> ;
sosa:resultTime "2022-03-10T06:45:00+01:00"^^xsd:dateTimeStamp ;
poso:madeBySystem <system/IPS> ;
sosa:usedProcedure posoc:LDPL ; # Log-distance path loss
sosa:hasResult [ a qudt:QuantityValue ;
qudt:unit unit:Meter ; qudt:value "3.7"^^xsd:double ] ;
sosa:hasResult [ a qudt:QuantityValue ;
qudt:unit unit:DeciB_M ; qudt:value "-82"^^xsd:integer ] .

Usage

Relative Position

turtle
<landmark/wap_1> a poso:Landmark ;
rdfs:label "Wireless Access Point 1"@en ;
poso:hasPosition [ a poso:AbsolutePosition ;
poso:hasAccuracy [ ... ] ;
poso:xAxisValue [ ... ] ; poso:yAxisValue [ ... ] ; poso:zAxisValue [ ... ] ] .
<me/position/relative/wap_1> a poso:RelativeDistance ;
ssn:isPropertyOf <me> ; # Relative distance from <me> ...
poso:isRelativeTo <landmark/wap_1> ; # to <landmark/wap_1>
rdfs:comment "Relative position of Maxim Van de Wynckel to WAP_1"@en .
<position/relative/wap_1/1646891100000> a sosa:Observation ;
sosa:hasFeatureOfInterest <me>, <landmark/wap_1> ;
sosa:observedProperty <me/position/relative/wap_1> ;
sosa:resultTime "2022-03-10T06:45:00+01:00"^^xsd:dateTimeStamp ;
poso:madeBySystem <system/IPS> ;
sosa:usedProcedure posoc:LDPL ; # Log-distance path loss
sosa:hasResult [ a qudt:QuantityValue ;
qudt:unit unit:Meter ; qudt:value "3.7"^^xsd:double ] ;
sosa:hasResult [ a qudt:QuantityValue ;
qudt:unit unit:DeciB_M ; qudt:value "-82"^^xsd:integer ] .

Usage

Relative Position

turtle
<landmark/wap_1> a poso:Landmark ;
rdfs:label "Wireless Access Point 1"@en ;
poso:hasPosition [ a poso:AbsolutePosition ;
poso:hasAccuracy [ ... ] ;
poso:xAxisValue [ ... ] ; poso:yAxisValue [ ... ] ; poso:zAxisValue [ ... ] ] .
<me/position/relative/wap_1> a poso:RelativeDistance ;
ssn:isPropertyOf <me> ; # Relative distance from <me> ...
poso:isRelativeTo <landmark/wap_1> ; # to <landmark/wap_1>
rdfs:comment "Relative position of Maxim Van de Wynckel to WAP_1"@en .
<position/relative/wap_1/1646891100000> a sosa:Observation ;
sosa:hasFeatureOfInterest <me>, <landmark/wap_1> ;
sosa:observedProperty <me/position/relative/wap_1> ;
sosa:resultTime "2022-03-10T06:45:00+01:00"^^xsd:dateTimeStamp ;
poso:madeBySystem <system/IPS> ;
sosa:usedProcedure posoc:LDPL ; # Log-distance path loss
sosa:hasResult [ a qudt:QuantityValue ;
qudt:unit unit:Meter ; qudt:value "3.7"^^xsd:double ] ;
sosa:hasResult [ a qudt:QuantityValue ;
qudt:unit unit:DeciB_M ; qudt:value "-82"^^xsd:integer ] .

Usage

Relative Position

turtle
<landmark/wap_1> a poso:Landmark ;
rdfs:label "Wireless Access Point 1"@en ;
poso:hasPosition [ a poso:AbsolutePosition ;
poso:hasAccuracy [ ... ] ;
poso:xAxisValue [ ... ] ; poso:yAxisValue [ ... ] ; poso:zAxisValue [ ... ] ] .
<me/position/relative/wap_1> a poso:RelativeDistance ;
ssn:isPropertyOf <me> ; # Relative distance from <me> ...
poso:isRelativeTo <landmark/wap_1> ; # to <landmark/wap_1>
rdfs:comment "Relative position of Maxim Van de Wynckel to WAP_1"@en .
<position/relative/wap_1/1646891100000> a sosa:Observation ;
sosa:hasFeatureOfInterest <me>, <landmark/wap_1> ;
sosa:observedProperty <me/position/relative/wap_1> ;
sosa:resultTime "2022-03-10T06:45:00+01:00"^^xsd:dateTimeStamp ;
poso:madeBySystem <system/IPS> ;
sosa:usedProcedure posoc:LDPL ; # Log-distance path loss
sosa:hasResult [ a qudt:QuantityValue ;
qudt:unit unit:Meter ; qudt:value "3.7"^^xsd:double ] ;
sosa:hasResult [ a qudt:QuantityValue ;
qudt:unit unit:DeciB_M ; qudt:value "-82"^^xsd:integer ] .

Conclusion and Future Work

  • We presented the new POSO ontology
    • Describe positioning systems, their algorithms and technologies
    • Describe observations and the type of observation
  • Additional poso-common module for common algorithms and systems
  • Interoperability between positioning systems
  • Future allignment modules for sensors and specific algorithms