Linked data de información geográfica Colombia conforme a GeoSPARQL
® OGC GeoSPARQL: Standardizing Spatial Query on the Semantic Web Matthew Perry, Oracle 4th Annual...
-
Upload
kevin-barrett -
Category
Documents
-
view
220 -
download
0
Transcript of ® OGC GeoSPARQL: Standardizing Spatial Query on the Semantic Web Matthew Perry, Oracle 4th Annual...
®
OGC GeoSPARQL: Standardizing Spatial OGC GeoSPARQL: Standardizing Spatial Query on the Semantic WebQuery 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
OGC®
AgendaAgenda
• About the OGC GeoSPARQL SWG
• Overview of GeoSPARQL– Use Cases– GeoSPARQL Vocabulary– Query Functions– Entailment Components
• GeoSPARQL FAQ
• Future Work
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
OGC®
About the OGC GeoSPARQL SWGAbout the OGC GeoSPARQL SWG
4
OGC®
Group MembersGroup 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 ProcessStandardization Process
6
OGC®
GeoSPARQL OverviewGeoSPARQL Overview
7
OGC®
Some Use CasesSome 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
8
OGC®
Goals for GeoSPARQLGoals 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 SchemaISO 13249 – SQL/MM
Simple FeaturesWell Known Text (WKT)GMLKMLGeoJSON
9
OGC®
A Simple ExampleA Simple Example
:OGCSept2011TC :locatedIn :Reston .:Reston :hasPointGeometry [
ogc:asWKT “POINT(-77.2 38.57)”^^ogc:WKTLiteral ] .
Example Data: December 2011 SOCoP Workshop is located in Reston, VA
SELECT ?airportWHERE { ?airport rdf:type :Airport . ?airport :hasPointGeometry [ ogc:asWKT ?aPointGeom ] FILTER(ogcf:distance(?aPointGeom, “POINT(-77.2 38.57)”^^ogc:WKTLiteral, ogc:km) <= 100) }
Example Query: Find airports within 100 KM of Reston, VA
10
OGC®
What Does GeoSPARQL Give Us?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
11
OGC®
Some Features of the SpecSome 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
12
OGC®
GeoSPARQL VocabularyGeoSPARQL Vocabulary
13
OGC®
serializations
metadata
ogc:SpatialObject
ogc:Feature0 .. *
0 .. 1
ogc:hasGeometry
ogc:hasDefaultGeometry
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
…
GeoSPARQL Vocabulary: Basic Classes and RelationsGeoSPARQL Vocabulary: Basic Classes and Relations
Same as ISO GFI_Feature
Same as ISO GM_Object
14
Geometry encoded as a Literal
OGC®
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
European Petroleum Survey Group (EPSG)maintains a set of CRS identifiers.
WGS84 longitude – latitudeis the default CRS
“POINT(-122.4192 37.7793)”^^ogc:WKTLiteral
Details of ogc:WKTLiteralDetails of ogc:WKTLiteral
15
OGC®
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].
Details of ogc:GMLLiteralDetails of ogc:GMLLiteral
16
"<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®
A/B A B A B A B
A B A B BBA
ogc:sfEquals ogc:sfTouches ogc:sfOverlaps ogc:sfContains
ogc:sfWithin ogc:sfDisjoint ogc:sfIntersects ogc:sfCrosses
Topological Relations between ogc:SpatialObjectTopological Relations between ogc:SpatialObject
Assumes Simple FeaturesRelation Family
17
A
OGC®
RCC8, Egenhofer & Simple FeaturesRCC8, Egenhofer & Simple Features
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
OGC®
: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 “1950-03-01”^^xsd:date .
:MinesFallsPark :exactGeometry :geo1 .:geo1 ogc:asWKT “Polygon((…))”^^ogc:WKTLiteral .
:Nashua :exactGeometry :geo2 .:geo2 ogc:asWKT “Polygon((…))”^^ogc:WKTLiteral .
:MinesFallsPark ogc:sfWithin :Nashua .
Meta Information
Non-spatial Properties
Spatial Properties
Example DataExample Data
19
OGC®
GeoSPARQL Query FunctionsGeoSPARQL Query Functions
20
OGC®
– 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
GeoSPARQL Query FunctionsGeoSPARQL Query Functions
geom
geom1 geom2
geom
OGC®
GeoSPARQL Query FunctionsGeoSPARQL Query Functions
– ogcf:intersection(geom1: ogc:WKTLiteral, geom2: ogc:WKTLiteral): ogc:WKTLiteral
– ogcf:union(geom1: ogc:WKTLiteral, geom2: ogc:WKTLiteral): ogc:WKTLiteral
geom1
geom2
geom1
geom2
OGC®
GeoSPARQL Query FunctionsGeoSPARQL Query Functions
– ogcf:difference(geom1: ogc:WKTLiteral, geom2: ogc:WKTLiteral): ogc:WKTLiteral
– ogcf:symDifference(geom1: ogc:WKTLiteral, geom2: ogc:WKTLiteral): ogc:WKTLiteral
geom1
geom2
geom1
geom2
OGC®
– ogcf:envelope(geom: ogc:WKTLiteral): ogc:WKTLiteral
– ogcf:boundary(geom1: ogc:WKTLiteral): ogc:WKTLiteral
– ogcf:getSRID(geom: ogc:WKTLiteral): xsd:anyURI
GeoSPARQL Query FunctionsGeoSPARQL Query Functions
geom
geom
OGC®
– ogcf:relate(geom1: ogc:WKTLiteral, geom2: ogc:WKTLiteral, patternMatrix: xsd:string): xsd:boolean
GeoSPARQL Topological Query FunctionsGeoSPARQL Topological Query Functions
DE-9IM Intersection Matrix
geom2
Interior Boundary Exterior
geom1Interior T T T
Boundary F F T
Exterior F F T
geom1
geom2
ogc:contains
patternMatrix: TTTFFTFFT
OGC®
– 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
GeoSPARQL Topological Query FunctionsGeoSPARQL Topological Query Functions
26
Assumes Simple FeaturesRelation Family
OGC®
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 ?parcelWHERE { ?parcel rdf:type :Residential . ?parcel :exactGeometry ?pGeo . ?pGeo ogc:asWKT ?pWKT .
:District1 :exactGeometry ?dGeo . ?dGeo ogc:asWKT ?dWKT .
:City1 :extent ?cGeo . ?cGeo ogc:asWKT ?cWKT . FILTER(ogcf:sfWithin(?pWKT, ogcf:intersection(?dWKT,?cWKT)))}
Find all land parcels that are within the intersection of :City1 and :District1
Example QueryExample Query
27
OGC®
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 ?restaurantWHERE { ?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
Find the three closest Mexican restaurants
Example QueryExample Query
28
OGC®
GeoSPARQL Entailment ComponentsGeoSPARQL Entailment Components
29
OGC®
GeoSPARQL RDFS Entailment ExtensionGeoSPARQL RDFS Entailment Extension
30
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
Main Requirements:
OGC®
Simple Features Geometry TypesSimple Features Geometry Types
ogc:Point
ogc:Geometry
ogc:Curve ogc:Surface ogc:GeometryCollection
ogc:LineString ogc:Polygon ogc:PolyhedralSurface
ogc:Line ogc:LinearRing
ogc:Triangle ogc:TIN
ogc:MultiSurface ogc:MultiCurve ogc:MultiPoint
ogc:MultiPolygon ogc:MultiLineString
OGC®
SELECT ?waterWHERE { ?water rdf:type :WaterBody . ?water ogc:rcc8Within :NH }
Find all water bodies within New Hampshire
RCC8 Backward Chaining
SELECT ?waterWHERE { ?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 SpecificationQualitative
Quantitative
Query Rewrite
Specified with a RIF rule
GeoSPARQL Query Rewrite ExtensionGeoSPARQL Query Rewrite Extension
32
OGC®
GeoSPARQL Query Rewrite ExtensionGeoSPARQL Query Rewrite Extension
33
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.
Main Requirement:
OGC®
Query Rewrite RulesQuery 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))) ))
34
OGC®
Summary of Conformance ClassesSummary of Conformance Classes
35
Core
Topology Vocabulary Extension (relation_family)
Geometry Extension (serialization, version)
Geometry Topology Extension (serialization, version, relation_family)
Query Rewrite Extension (serialization, version, relation_family)
RDFS Entailment Extension (serialization, version, relation_family)
Parameters
• Serialization– WKT– GML
• Relation Family– Simple Features– RCC8– Egenhofer
Determines geometry classes and geometry literal datatype
Determines topologyproperties and topology functions
OGC®
GeoSPARQL FAQGeoSPARQL FAQ
36
OGC®
Why don’t you have ogc:myFavoriteProperty?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
37
OGC®
Advantage: single self-contained unit
SELECT ?water ?wWKTWHERE { ?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) }
Find all water bodies that are within 1 km of Route 3
Consistent way to pass geometry information around
Consistent way to select geometry information
Why Encode Geometry Data as a Literal?Why Encode Geometry Data as a Literal?
38
OGC®
Why is SRID encoded in Geometry Literal?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
39
OGC®
Why don’t you support W3C Basic Geo?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 }
40
OGC®
Can I support both GML and WKT?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 …
41
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®
Why no Universal Geometry Ontology?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
42
OGC®
Why do I have to support RDFS entailment?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)
43
OGC®
SummarySummary
• 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)
44
OGC®
Future WorkFuture 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)
45
OGC®
Questions?Questions?
46
Thanks to all members of the GeoSPARQL SWG !