Presentation is loading. Please wait.

Presentation is loading. Please wait.

OGC GeoSPARQL: Standardizing Spatial Query on the Semantic Web

Similar presentations


Presentation on theme: "OGC GeoSPARQL: Standardizing Spatial Query on the Semantic Web"— Presentation transcript:

1 OGC GeoSPARQL: Standardizing Spatial Query on the Semantic Web
Matthew Perry, Oracle 4th Annual Spatial Ontology Community of Practice Workshop USGS, Sunrise Valley Drive , Reston VA December 2, 2011

2 Agenda About the OGC GeoSPARQL SWG Overview of GeoSPARQL GeoSPARQL FAQ
Use Cases GeoSPARQL Vocabulary Query Functions Entailment Components GeoSPARQL FAQ Future Work

3 THE FOLLOWING IS INTENDED TO OUTLINE OUR GENERAL PRODUCT DIRECTION
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

4 About the OGC GeoSPARQL SWG

5 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)

6 Standardization Process
Form SWG (June 2010) Release candidate standard (May 2011) OAB vote on candidate standard (June 2011) 30-day public comment period (July 2011) Process comments and update document (Now) TC/PC vote on final document Publish standard

7 GeoSPARQL Overview

8 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

9 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! Simple Features Well Known Text (WKT) GML KML GeoJSON ISO – Spatial Schema ISO – SQL/MM

10 A Simple Example :OGCSept2011TC :locatedIn :Reston . :Reston :hasPointGeometry [ ogc:asWKT “POINT( )”^^ogc:WKTLiteral ] . Example Data: December 2011 SOCoP Workshop is located in Reston, VA SELECT ?airport WHERE { ?airport rdf:type :Airport . ?airport :hasPointGeometry [ ogc:asWKT ?aPointGeom ] FILTER(ogcf:distance(?aPointGeom, “POINT( )”^^ogc:WKTLiteral, ogc:km) <= 100) } Example Query: Find airports within 100 KM of Reston, VA

11 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

12 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

13 GeoSPARQL Vocabulary

14 GeoSPARQL Vocabulary: Basic Classes and Relations
ogc:SpatialObject Same as ISO GM_Object ogc:hasGeometry 0 .. * ogc:Feature ogc:Geometry ogc:dimension : xsd:int ogc:coordinateDimension : xsd:int ogc:spatialDimension : xsd:int ogc:isEmpty : xsd:boolean ogc:isSimple : xsd:boolean ogc:asWKT : ogc:WKTLiteral ogc:asGML : ogc:GMLLiteral 0 .. 1 metadata ogc:hasDefaultGeometry Same as ISO GFI_Feature serializations Geometry encoded as a Literal

15 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 ]. “<http://www.opengis.net/def/crs/OGC/1.3/CRS84> POINT( )”^^ogc:WKTLiteral WGS84 longitude – latitude is the default CRS “POINT( )”^^ogc:WKTLiteral European Petroleum Survey Group (EPSG) maintains a set of CRS identifiers.

16 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 ]. "<gml:Point srsName=\"http://www.opengis.net/def/crs/OGC/1.3/CRS84\" xmlns:gml=\"http://www.opengis.net/gml\"> <gml:pos> </gml:pos> </gml:Point>"^^ogc:GMLLiteral Note that GMLLiterals are NOT rdf:XMLLiterals

17 Topological Relations between ogc:SpatialObject
A/B A B A B B ogc:sfEquals ogc:sfTouches ogc:sfOverlaps ogc:sfContains A B A B A B B A ogc:sfWithin ogc:sfDisjoint ogc:sfIntersects ogc:sfCrosses Assumes Simple Features Relation Family

18 RCC8, Egenhofer & Simple Features
equals equal EQ disjoint DC intersects ¬ disjoint ¬ DC touches meet EC within inside+coveredBy NTPP+TPP contains contains+covers NTPPi+TPPi overlaps overlap PO

19 Example Data Meta Information Non-spatial Properties
:City rdfs:subClassOf ogc:Feature . :Park rdfs:subClassOf ogc:Feature . :exactGeometry rdfs:subPropertyOf ogc:hasGeometry . :Nashua rdf:type :City . :MinesFallsPark rdf:type :Park . :MinesFallsPark :opened “ ”^^xsd:date . :MinesFallsPark :exactGeometry :geo1 . :geo1 ogc:asWKT “Polygon((…))”^^ogc:WKTLiteral . :Nashua :exactGeometry :geo2 . :geo2 ogc:asWKT “Polygon((…))”^^ogc:WKTLiteral . :MinesFallsPark ogc:sfWithin :Nashua . Non-spatial Properties Spatial Properties

20 GeoSPARQL Query Functions

21 GeoSPARQL Query Functions
ogcf:distance(geom1: ogc:WKTLiteral, geom2: ogc:WKTLiteral, units: xsd:anyURI): xsd:double ogcf:buffer(geom: ogc:WKTLiteral, radius: xsd:double, units: xsd:anyURI): ogc:WKTLiteral ogcf:convexHull(geom: ogc:WKTLiteral): ogc:WKTLiteral geom1 geom2 geom geom

22 GeoSPARQL Query Functions
ogcf:intersection(geom1: ogc:WKTLiteral, geom2: ogc:WKTLiteral): ogc:WKTLiteral ogcf:union(geom1: ogc:WKTLiteral, geom2: ogc:WKTLiteral): ogc:WKTLiteral geom2 geom1 geom2 geom1

23 GeoSPARQL Query Functions
ogcf:difference(geom1: ogc:WKTLiteral, geom2: ogc:WKTLiteral): ogc:WKTLiteral ogcf:symDifference(geom1: ogc:WKTLiteral, geom2: ogc:WKTLiteral): ogc:WKTLiteral geom2 geom1 geom2 geom1

24 GeoSPARQL Query Functions
ogcf:envelope(geom: ogc:WKTLiteral): ogc:WKTLiteral ogcf:boundary(geom1: ogc:WKTLiteral): ogc:WKTLiteral ogcf:getSRID(geom: ogc:WKTLiteral): xsd:anyURI geom geom

25 GeoSPARQL Topological Query Functions
ogcf:relate(geom1: ogc:WKTLiteral, geom2: ogc:WKTLiteral, patternMatrix: xsd:string): xsd:boolean DE-9IM Intersection Matrix geom2 Interior Boundary Exterior geom1 T F geom1 geom2 ogc:contains patternMatrix: TTTFFTFFT

26 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 Assumes Simple Features Relation Family

27 Example Query Find all land parcels that are within the intersection of :City1 and :District1 PREFIX : <http://my.com/appSchema#> PREFIX ogc: <http://www.opengis.net/geosparql#> PREFIX ogcf: <http://www.opengis.net/geosparql/functions#> PREFIX epsg: <http://www.opengis.net/def/crs/EPSG/0/> SELECT ?parcel WHERE { ?parcel rdf:type :Residential . ?parcel :exactGeometry ?pGeo . ?pGeo ogc:asWKT ?pWKT . :District1 :exactGeometry ?dGeo . ?dGeo ogc:asWKT ?dWKT . :City :extent ?cGeo . ?cGeo ogc:asWKT ?cWKT . FILTER(ogcf:sfWithin(?pWKT, ogcf:intersection(?dWKT,?cWKT)))}

28 Example Query Find the three closest Mexican restaurants
PREFIX : <http://my.com/appSchema#> PREFIX ogc: <http://www.opengis.net/geosparql#> PREFIX ogcf: <http://www.opengis.net/geosparql/functions#> PREFIX 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

29 GeoSPARQL Entailment Components

30 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

31 Simple Features Geometry Types
ogc:Geometry ogc:Point ogc:Curve ogc:Surface ogc:GeometryCollection ogc:LineString ogc:Polygon ogc:PolyhedralSurface ogc:MultiSurface ogc:MultiCurve ogc:MultiPoint ogc:Triangle ogc:TIN ogc:Line ogc:LinearRing ogc:MultiPolygon ogc:MultiLineString

32 GeoSPARQL Query Rewrite Extension
Find all water bodies within New Hampshire SELECT ?water WHERE { ?water rdf:type :WaterBody . ?water ogc:rcc8Within :NH } RCC8 Backward Chaining 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)) } Same Query Specification Qualitative Quantitative Query Rewrite Specified with a RIF rule

33 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:sf-equals, geor:sf-disjoint, geor:sf-intersects, geor:sf-touches, geor:sf-crosses, geor:sf-within, geor:sf-contains, geor:sf-overlaps.

34 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))) )

35 Summary of Conformance Classes
Parameters Core Serialization WKT GML Relation Family Simple Features RCC8 Egenhofer Topology Vocabulary Extension (relation_family) Geometry Extension (serialization, version) Determines geometry classes and geometry literal datatype Geometry Topology Extension (serialization, version, relation_family) Query Rewrite Extension (serialization, version, relation_family) RDFS Entailment Extension (serialization, version, relation_family) Determines topology properties and topology functions

36 GeoSPARQL FAQ

37 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

38 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

39 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

40 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 }

41 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 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.

42 Why no Universal Geometry Ontology?
Geometry types in existing standards are different abstractions e.g. Polygon edges can be arcs in ISO / 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

43 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)

44 Summary GeoSPARQL Defines: Based on existing OGC/ISO standards
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)

45 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)

46 Thanks to all members of the GeoSPARQL SWG !
Questions?

47 Find all water bodies that are within 1 km of Route 3
Example Queries Find all water bodies that are within 1 km of Route 3 PREFIX : <http://my.com/appSchema#> PREFIX ogc: <http://www.opengis.net/geosparql#> PREFIX ogcf: <http://www.opengis.net/geosparql/functions#> PREFIX epsg: <http://www.opengis.net/def/crs/EPSG/0/> SELECT ?water ?wWKT WHERE { ?water rdf:type :WaterBody . ?water :exactGeometry ?wGeo . ?wGeo ogc:asWKT ?wWKT . :Route_3 :exactGeometry ?r3Geo . :r3Geo ogc:asWKT ?r3WKT . FILTER(ogcf:distance(?r3WKT, ?wWKT, ogc:km) <= 1) }

48 Find all land parcels for sale within a constant search polygon
Example Queries Find all land parcels for sale within a constant search polygon PREFIX : <http://my.com/appSchema#> PREFIX ogc: <http://www.opengis.net/geosparql#> PREFIX ogcf: <http://www.opengis.net/geosparql/functions#> PREFIX epsg: <http://www.opengis.net/def/crs/EPSG/0/> SELECT ?parcel WHERE { ?parcel rdf:type :Residential . ?parcel :for_sale “true”^^xsd:boolean . ?parcel :exactGeometry ?pGeo . ?pGeo :asWKT ?pWKT FILTER(ogcf:within(?pWKT, “Polygon((…))”^^ogc:WKTLiteral)) }

49 Non-topological Query Functions
ogcf:distance(geom1: ogc:WKTLiteral, geom2: ogc:WKTLiteral, units: xsd:anyURI): xsd:double ogcf:buffer(geom: ogc:WKTLiteral, radius: xsd:double, units: xsd:anyURI): ogc:WKTLiteral ogcf:convexHull(geom: ogc:WKTLiteral): ogc:WKTLiteral ogcf:intersection(geom1: ogc:WKTLiteral, geom2: ogc:WKTLiteral): ogcf:WKTLiteral ogcf:union(geom1: ogc:WKTLiteral, geom2: ogc:WKTLiteral): ogc:WKTLiteral ogcf:difference(geom1: ogc:WKTLiteral, geom2: ogc:WKTLiteral): ogcf:WKTLiteral ogcf:symDifference(geom1: ogc:WKTLiteral, geom2: ogc:WKTLiteral): ogc:WKTLiteral ogcf:envelope(geom: ogc:WKTLiteral): ogcf:WKTLiteral ogcf:boundary(geom1: ogc:WKTLiteral): ogc:WKTLiteral

50 OGC & ISO Geo Semantic Web Activities
GeoSPARQL Standards Working Group Geosemantics Domain Working Group ISO ISO/RS 19150 Geographic information – Ontology ISO rev Geographic information – Reference model - Part 1: Fundamentals ISO/PT Geographic information – Ontology - Part 1: Framework ISO/PT Geographic information – Ontology - Part 2: Rules for developing ontologies in the Web Ontology Language (OWL)


Download ppt "OGC GeoSPARQL: Standardizing Spatial Query on the Semantic Web"

Similar presentations


Ads by Google