SOCoP_GeoSPARQL_2011

advertisement
®
OGC GeoSPARQL: Standardizing
Spatial Query on the Semantic Web
Matthew Perry, Oracle
4th Annual Spatial Ontology Community of Practice Workshop
USGS, 12201 Sunrise Valley Drive , Reston VA
December 2, 2011
Agenda
• About the OGC GeoSPARQL SWG
• Overview of GeoSPARQL
–
–
–
–
Use Cases
GeoSPARQL Vocabulary
Query Functions
Entailment Components
• GeoSPARQL FAQ
• Future Work
OGC
®
2
THE FOLLOWING IS INTENDED TO OUTLINE
OUR GENERAL PRODUCT DIRECTION. IT IS
INTENDED FOR INFORMATION PURPOSES
ONLY, AND MAY NOT BE INCORPORATED INTO
ANY CONTRACT. IT IS NOT A COMMITMENT TO
DELIVER ANY MATERIAL, CODE, OR
FUNCTIONALITY, AND SHOULD NOT BE RELIED
UPON IN MAKING PURCHASING DECISION. THE
DEVELOPMENT, RELEASE, AND TIMING OF ANY
FEATURES OR FUNCTIONALITY DESCRIBED
FOR ORACLE'S PRODUCTS REMAINS AT THE
SOLE DISCRETION OF ORACLE.
3
About the OGC GeoSPARQL SWG
OGC
®
4
Group Members
• Open Geospatial Consortium standards working group
– 13 voting members, 36 observers
– Editors: Matthew Perry and John Herring
– Chairs: John Herring and Dave Kolas
• Submitting Organizations
–
–
–
–
–
–
–
–
–
–
–
Australian Bureau of Meteorology
Bentley Systems, Inc.
CSIRO
Defence Geospatial Information Working Group (DGIWG)
GeoConnections - Natural Resources Canada
Interactive Instruments GmbH
Oracle America
Ordnance Survey
Raytheon Company
Traverse Technologies, Inc.
US Geological Survey (USGS)
OGC
®
Standardization Process
Form SWG
OAB vote
on
candidate
standard
Process
comments
and update
document
(June 2010)
(June 2011)
(Now)
Release
candidate
standard
(May 2011)
30-day
public
comment
period
Publish
standard
TC/PC
vote on
final
document
(July 2011)
OGC
®
6
GeoSPARQL Overview
OGC
®
7
Some Use Cases
• Existing LOD RDF datasets with some simple spatial data
– DBPedia, GeoNames, etc.
– Mainly simple, WGS84 Lat Long points
• GIS applications with semantically complex thematic
aspects
– Reasoning based on complex land cover type hierarchy
• Qualitative reasoning applications without explicit
geometries
– RCC8-based reasoning
• Data integration applications
– RDB2RDF + Federated SPARQL over spatial datasets
OGC
®
8
Goals for GeoSPARQL
• Provide a common target for implementers & users
– Oracle, BBN Parliament, Virtuoso, OWLIM, Franz, …
• Work within SPARQL’s extensibility framework
• Simple enough for general users but capable enough for
GIS professionals
• Accommodate systems based on qualitative spatial
reasoning and systems based on quantitative geometries
• Don’t re-invent the wheel!
ISO 19107 – Spatial Schema
ISO 13249 – SQL/MM
OGC
®
Simple Features
Well Known Text (WKT)
GML
KML
GeoJSON
9
A Simple Example
Example Data: December 2011 SOCoP Workshop is located in Reston, VA
:OGCSept2011TC :locatedIn
:Reston .
:Reston
:hasPointGeometry [
ogc:asWKT “POINT(-77.2 38.57)”^^ogc:WKTLiteral ] .
Example Query: Find airports within 100 KM of Reston, VA
SELECT ?airport
WHERE { ?airport rdf:type :Airport .
?airport :hasPointGeometry [
ogc:asWKT ?aPointGeom ]
FILTER(ogcf:distance(?aPointGeom,
“POINT(-77.2 38.57)”^^ogc:WKTLiteral,
ogc:km) <= 100) }
OGC
®
10
What Does GeoSPARQL Give Us?
• Vocabulary for Query Patterns
– Classes
• Spatial Object, Feature, Geometry
– Properties
• Topological relations
• Links between features and geometries
– Datatypes for geometry literals
• ogc:WKTLiteral, ogc:GMLLiteral
• Query Functions
– Topological relations, distance, buffer, intersection, …
• Entailment Components
– RIF rules to expand feature-feature query into geometry query
– Gives a common interface for qualitative and quantitative systems
OGC
®
11
Some Features of the Spec
• Uses a Modular Design
– Consists of several components
• It’s Parameterized
– Serialization: WKT, GML, KML, …
– Relation Family: Simple Features, Egenhofer, RCC8, …
• Benefits
– Vendors can easily identify what they support
• We support components X, Y and Z for WKT and GML serializations and
Simple Features relations
– Extensible
• Can easily add new components
• Can easily add new spatial relations and serializations
OGC
®
12
GeoSPARQL Vocabulary
OGC
®
13
GeoSPARQL Vocabulary: Basic Classes and Relations
ogc:SpatialObject
Same as ISO
GM_Object
ogc:hasGeometry
0 .. *
ogc:Feature
ogc:Geometry
0 .. 1
ogc:hasDefaultGeometry
Same as ISO
GFI_Feature
metadata
ogc:dimension : xsd:int
ogc:coordinateDimension : xsd:int
ogc:spatialDimension : xsd:int
ogc:isEmpty : xsd:boolean
ogc:isSimple : xsd:boolean
serializations
Geometry encoded
as a Literal
OGC
®
ogc:asWKT : ogc:WKTLiteral
ogc:asGML : ogc:GMLLiteral
…
14
Details of ogc:WKTLiteral
All RDFS Literals of type ogc:WKTLiteral shall consist of an
optional IRI identifying the spatial reference system followed
by Simple Features Well Known Text (WKT) describing a
geometric value [ISO 19125-1].
“<http://www.opengis.net/def/crs/OGC/1.3/CRS84>
POINT(-122.4192 37.7793)”^^ogc:WKTLiteral
WGS84 longitude – latitude
is the default CRS
“POINT(-122.4192 37.7793)”^^ogc:WKTLiteral
OGC
®
European Petroleum Survey Group (EPSG)
maintains a set of CRS identifiers.
15
Details of ogc:GMLLiteral
All ogc:GMLLiterals shall consist of a valid element from the
GML schema that implements a subtype of GM_Object as
defined in [OGC 07-036].
"<gml:Point
srsName=\"http://www.opengis.net/def/crs/OGC/1.3/CRS84\"
xmlns:gml=\"http://www.opengis.net/gml\">
<gml:pos>-83.38 33.95</gml:pos>
</gml:Point>"^^ogc:GMLLiteral
Note that GMLLiterals are
NOT rdf:XMLLiterals
OGC
®
16
Topological Relations between ogc:SpatialObject
A/B
ogc:sfEquals
AB
ogc:sfWithin
A
B
A
ogc:sfTouches
B
ogc:sfOverlaps
AB
ogc:sfContains
A
A
B
ogc:sfDisjoint
A
B
ogc:sfIntersects
B
ogc:sfCrosses
Assumes Simple Features
Relation Family
OGC
®
17
RCC8, Egenhofer & Simple Features
OGC
Simple Features
Egenhofer
RCC8
equals
equal
EQ
disjoint
disjoint
DC
intersects
¬ disjoint
¬ DC
touches
meet
EC
within
inside+coveredBy
NTPP+TPP
contains
contains+covers
NTPPi+TPPi
overlaps
overlap
PO
®
Example Data
Meta Information
:City
rdfs:subClassOf
ogc:Feature .
:Park
rdfs:subClassOf
ogc:Feature .
:exactGeometry rdfs:subPropertyOf ogc:hasGeometry .
:Nashua
:MinesFallsPark
:MinesFallsPark
rdf:type
rdf:type
:opened
:City .
Non-spatial Properties
:Park .
“1950-03-01”^^xsd:date .
Spatial Properties
:MinesFallsPark :exactGeometry
:geo1
ogc:asWKT
:geo1 .
“Polygon((…))”^^ogc:WKTLiteral .
:Nashua
:geo2
:geo2 .
“Polygon((…))”^^ogc:WKTLiteral .
:exactGeometry
ogc:asWKT
:MinesFallsPark ogc:sfWithin
OGC
:Nashua .
®
19
GeoSPARQL Query Functions
OGC
®
20
GeoSPARQL Query Functions
– ogcf:distance(geom1: ogc:WKTLiteral, geom2: ogc:WKTLiteral,
units: xsd:anyURI): xsd:double
geom1
geom2
– ogcf:buffer(geom: ogc:WKTLiteral, radius: xsd:double,
units: xsd:anyURI): ogc:WKTLiteral
geom
– ogcf:convexHull(geom: ogc:WKTLiteral): ogc:WKTLiteral
geom
OGC
®
GeoSPARQL Query Functions
– ogcf:intersection(geom1: ogc:WKTLiteral,
geom2: ogc:WKTLiteral): ogc:WKTLiteral
geom2
geom1
– ogcf:union(geom1: ogc:WKTLiteral,
geom2: ogc:WKTLiteral): ogc:WKTLiteral
geom2
geom1
OGC
®
GeoSPARQL Query Functions
– ogcf:difference(geom1: ogc:WKTLiteral,
geom2: ogc:WKTLiteral): ogc:WKTLiteral
geom2
geom1
– ogcf:symDifference(geom1: ogc:WKTLiteral,
geom2: ogc:WKTLiteral): ogc:WKTLiteral
geom2
geom1
OGC
®
GeoSPARQL Query Functions
– ogcf:envelope(geom: ogc:WKTLiteral): ogc:WKTLiteral
geom
– ogcf:boundary(geom1: ogc:WKTLiteral): ogc:WKTLiteral
geom
– ogcf:getSRID(geom: ogc:WKTLiteral): xsd:anyURI
OGC
®
GeoSPARQL Topological Query Functions
– ogcf:relate(geom1: ogc:WKTLiteral,
geom2: ogc:WKTLiteral,
patternMatrix: xsd:string): xsd:boolean
DE-9IM Intersection Matrix
geom2
geom1
geom2
Interior Boundary
Exterior
Interior
T
T
T
Boundary
F
F
T
Exterior
F
F
T
geom1
ogc:contains
patternMatrix: TTTFFTFFT
OGC
®
GeoSPARQL Topological Query Functions
– ogcf:sfEquals(geom1: ogc:WKTLiteral,
geom2: ogc:WKTLiteral): xsd:boolean
– ogcf:sfDisjoint(geom1: ogc:WKTLiteral,
geom2: ogc:WKTLiteral): xsd:boolean
– ogcf:sfIntersects(geom1: ogc:WKTLiteral,
geom2: ogc:WKTLiteral): xsd:boolean
– ogcf:sfTouches(geom1: ogc:WKTLiteral,
geom2: ogc:WKTLiteral): xsd:boolean
– ogcf:sfCrosses(geom1: ogc:WKTLiteral,
geom2: ogc:WKTLiteral): xsd:boolean
– ogcf:sfWithin(geom1: ogc:WKTLiteral,
geom2: ogc:WKTLiteral): xsd:boolean
– ogcf:sfContains(geom1: ogc:WKTLiteral,
geom2: ogc:WKTLiteral): xsd:boolean
– ogcf:sfOverlaps(geom1: ogc:WKTLiteral,
geom2: ogc:WKTLiteral): xsd:boolean
OGC
®
Assumes Simple Features
Relation Family
26
Example Query
Find all land parcels that are within the intersection of :City1 and
:District1
PREFIX
PREFIX
PREFIX
PREFIX
: <http://my.com/appSchema#>
ogc: <http://www.opengis.net/geosparql#>
ogcf: <http://www.opengis.net/geosparql/functions#>
epsg: <http://www.opengis.net/def/crs/EPSG/0/>
SELECT ?parcel
WHERE { ?parcel
?parcel
?pGeo
:District1
?dGeo
rdf:type
:exactGeometry
ogc:asWKT
:Residential .
?pGeo .
?pWKT .
:exactGeometry
ogc:asWKT
?dGeo .
?dWKT .
:City1
:extent
?cGeo .
?cGeo
ogc:asWKT
?cWKT .
FILTER(ogcf:sfWithin(?pWKT,
ogcf:intersection(?dWKT,?cWKT)))}
OGC
®
27
Example Query
Find the three closest Mexican restaurants
PREFIX
PREFIX
PREFIX
PREFIX
: <http://my.com/appSchema#>
ogc: <http://www.opengis.net/geosparql#>
ogcf: <http://www.opengis.net/geosparql/functions#>
epsg: <http://www.opengis.net/def/crs/EPSG/0/>
SELECT ?restaurant
WHERE { ?restaurant rdf:type
:Restaurant .
?restaurant :cuisine
:Mexican .
?restaurant :pointGeometry ?rGeo .
?rGeo
ogc:asWKT
?rWKT }
ORDER BY ASC(ogcf:distance(“POINT(…)”^^ogc:WKTLiteral,
?rWKT, ogc:KM))
LIMIT 3
OGC
®
28
GeoSPARQL Entailment Components
OGC
®
29
GeoSPARQL RDFS Entailment Extension
Main Requirements:
Basic graph pattern matching shall use the semantics defined
by the RDFS Entailment Regime [W3C SPARQL Entailment]
Implementations shall support graph patterns involving terms
from an RDFS/OWL class hierarchy of geometry types
consistent with the one in the specified version of Simple
Features / GML
OGC
®
30
Simple Features Geometry Types
ogc:Geometry
ogc:Point
ogc:Curve
ogc:LineString
ogc:Polygon
ogc:Surface
ogc:GeometryCollection
ogc:PolyhedralSurface
ogc:MultiSurface
ogc:Triangle
ogc:Line
ogc:MultiPoint
ogc:TIN
ogc:LinearRing
ogc:MultiPolygon
OGC
ogc:MultiCurve
®
ogc:MultiLineString
GeoSPARQL Query Rewrite Extension
Find all water bodies within New Hampshire
SELECT ?water
WHERE { ?water
?water
rdf:type
:WaterBody .
ogc:rcc8Within
:NH }
Same Query Specification
Qualitative
RCC8 Backward
Chaining
Quantitative
SELECT ?water
WHERE { ?water rdf:type
:WaterBody .
?water ogc:hasDefaultGeometry ?wGeo
?wGeo
ogc:asWKT
?wWKT
:NH
ogc:hasDefaultGeometry ?nGeo
?nGeo
ogc:asWKT
?nWKT
FILTER(ogcf:rcc8Within(?wWKT, ?nWKT))
OGC
.
.
.
.
}
Query
Rewrite
Specified with
a RIF rule
®
32
GeoSPARQL Query Rewrite Extension
Main Requirement:
Basic graph pattern matching shall use the semantics defined
by the RIF Core Entailment Regime [W3C SPARQL
Entailment] for the RIF rules [W3C RIF Core] geor:sfequals, geor:sf-disjoint, geor:sf-intersects, geor:sftouches, geor:sf-crosses, geor:sf-within, geor:sfcontains, geor:sf-overlaps.
OGC
®
33
Query Rewrite Rules
• Used to compute Feature-Feature spatial relations based
on default geometries
• Specified as a collection of RIF rules
• Example: ogcr:sfEquals
(Forall ?f1 ?f2 ?g1 ?g2 ?g1Serial ?g2Serial
(f1[ogc:sfEquals->?f2] :And
(?f1[ogc:hasDefaultGeometry->?g1]
?f2[ogc:hasDefaultGeometry->?g2]
?g1[ogc:asWKT->?g1Serial]
?g2[ogc:asWKT->?g2Serial]
External(ogcf:sfEquals(?g1Serial,?g2Serial)))
)
)
OGC
®
34
Summary of Conformance Classes
Parameters
Core
• Serialization
Topology Vocabulary
Extension (relation_family)
Geometry Extension
(serialization, version)
Geometry Topology
Extension (serialization,
version, relation_family)
Query Rewrite
Extension (serialization,
version, relation_family)
OGC
RDFS Entailment
Extension (serialization,
version, relation_family)
– WKT
– GML
Determines geometry
classes and geometry
literal datatype
• Relation Family
– Simple Features
– RCC8
– Egenhofer
Determines topology
properties and
topology functions
®
35
GeoSPARQL FAQ
OGC
®
36
Why don’t you have ogc:myFavoriteProperty?
• GeoSPARQL vocabulary is not comprehensive
– Just enough to define a reasonable set of query patterns
• There are other efforts for more comprehensive
vocabularies
– ISO / TC 211
– SOCoP
– GeoVocamps
• GeoSPARQL vocabulary can easily be extended with other
application/domain-specific vocabularies
OGC
®
37
Why Encode Geometry Data as a Literal?
Advantage: single self-contained unit
Consistent way to select geometry information
Find all water bodies that are within 1 km of Route 3
SELECT ?water ?wWKT
WHERE { ?water
rdf:type
:WaterBody .
?water
:hasExactGeometry
?wGeo .
?wGeo
ogc:asWKT
?wWKT .
:Route_3
:hasExactGeometry
?r3Geo .
:r3Geo
ogc:asWKT
?r3WKT .
FILTER(ogcf:distance(?r3WKT, ?wWKT,…) <= 1000)
}
Consistent way to pass geometry information around
OGC
®
38
Why is SRID encoded in Geometry Literal?
• The query functions need the SRID to perform
computations
• SRID is really a property of the serialization not
fundamental to the geometry itself
• GML already encodes it, only WKT has to be modified
• Adding a separate property is redundant and potentially
inconsistent
– Note: geometry type class is also redundant but can be useful for
entailment
• We have an ogcf:getSRID() function to aid in filtering
based on SRID
OGC
®
39
Why don’t you support W3C Basic Geo?
• Too simple to meet our requirements
– Can’t use different datums and coordinate systems
– Limited number of geometry types
• W3C Basic Geo data can easily be converted to
WKTLiteral
PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos#>
PREFIX ogc: <http://www.opengis.net/def/dataType/OGC-SF/1.0/>
SELECT (STRDT(CONCAT("POINT(",?long," ",?lat,")"),
ogc:WKTLiteral) AS ?wktLit)
WHERE { ?point geo:long ?long .
?point geo:lat ?lat }
OGC
®
40
Can I support both GML and WKT?
• YES
• A valid GMLLiteral is an invalid WKTLiteral and vice versa
• An operation on these two objects is an error according to
the GeoSPARQL spec, but …
From Section 11.3.1 of the SPARQL specification [W3C SPARQL]
(http://www.w3.org/TR/rdf-sparql-query/#operatorExtensibility):
SPARQL language extensions may provide additional associations
between operators and operator functions; this amounts to adding
rows to the table above. No additional operator may yield a result that
replaces any result other than a type error in the semantics defined
above. The consequence of this rule is that SPARQL extensions will
produce at least the same solutions as an unextended implementation,
and may, for some queries, produce more solutions.
OGC
®
41
Why no Universal Geometry Ontology?
• Geometry types in existing standards are different
abstractions
– e.g. Polygon edges can be arcs in ISO 19107 / GML but must be
straight lines in Simple Features
• Any hierarchy we get may be too restrictive
– You should be able to conceptualize a geometry any way you want
as long as you can support the required operations.
• All we’re left with is a single root Geometry class in the core
vocabulary
– More detailed Geometry types are available with RDFS Entailment
Extension
– Supported Geometry types tied to serialization
• Can’t use a geometry type if you can’t serialize it
OGC
®
42
Why do I have to support RDFS entailment?
• Support for only geometry literals and query functions could
be a popular use case
• All entailment requirements are contained in a separate
conformance class
– RDFS Entailment Extension (serialization, version)
– Query Rewrite Extension (serialization, version, relation_family)
OGC
®
43
Summary
• GeoSPARQL Defines:
– Basic vocabulary, Query functions, Entailment component
• Based on existing OGC/ISO standards
– WKT, GML, Simple Features, ISO 19107
• Uses SPARQL’s built-in extensibility framework
• Modular specification
– Allows flexibility in implementations
– Easy to extend
• Accommodates qualitative and quantitative systems
– Same query specification for qualitative (core + topology vocabulary)
and quantitative (all components, incl. query rewrite)
OGC
®
44
Future Work
• Define new conformance classes
– KML, GeoJSON
• Define OWL axioms for qualitative spatial reasoning
– ogc:sfWithin rdf:type owl:TransitiveProperty
• Hybrid qualitative / quantitative spatial reasoning
• Define standard methodology for (virtually) converting
legacy feature data represented using the general feature
model to RDF (RDB2RDF for spatial)
OGC
®
45
Thanks to all members of
the GeoSPARQL SWG !
Questions?
OGC
®
46
Download