Conference PaperPDF Available

Implementation and Compliance Benchmarking of a DGGS-enabled, GeoSPARQL-aware Triplestore

Authors:

Abstract and Figures

We set out to determine the feasibility of implementing Discrete Global Grid System (DGGS) representations of geometry support in a GeoSPARQL-enabled triplestore, and test the GeoSPARQL compliance for it. The implementation is a variant of Apache Jena's existing GeoSPARQL support. Compliance is tested using an adapted implementation of the GeoSPARQL Compliance Benchmark testing system developed previously to test for GeoSPARQL 1.0 compliance. The benchmark results confirm that a majority of the functions which were set out to be implemented in the course of this paper were implemented correctly and points out possible future work for full compliance.
Content may be subject to copyright.
Implementation and Compliance Benchmarking of a
DGGS-enabled, GeoSPARQL-aware Triplestore
David Habgoodb,Timo Homburga,Nicholas J. Carb,c and Milos Jovanovikd,e
ai3mainz Institute for Spatial Information & Surveying Technology, Mainz University of Applied Sciences, 55128
Mainz, Germany
bSURROUND Australia Pty. Ltd, New Acton, Canberra, ACT 2601, Australia
cAustralian National University, Canberra, ACT 2600, Australia
dOpenLink Soware Ltd., Croydon, Surrey, CR0 0XZ, United Kingdom
eFaculty of Computer Science and Engineering, Ss. Cyril and Methodius University in Skopje, 1000 Skopje, North
Macedonia
Abstract
We set out to determine the feasibility of implementing Discrete Global Grid System (DGGS) representa-
tions of geometry support in a GeoSPARQL-enabled triplestore, and test the GeoSPARQL compliance for
it. The implementation is a variant of Apache Jena’s existing GeoSPARQL support. Compliance is tested
using an adapted implementation of the GeoSPARQL Compliance Benchmark testing system developed
previously to test for GeoSPARQL 1.0 compliance. The benchmark results conrm that a majority of the
functions which were set out to be implemented in the course of this paper were implemented correctly
and points out possible future work for full compliance.
Keywords
Geospatial Data, DGGS, GeoSPARQL, Apache Jena Fuseki, Compliance Benchmarking, RDFLib
1. Introduction
This paper presents compliance tests results of extensions to existing GeoSPARQL [
1
] system
implementation, that of Apache’s Jena database
1
, for Discrete Global Grid System (DGGS) [
2
]
geometry representations. Conformance testing was performed with an updated version of an
existing GeoSPARQL compliance benchmark test. [3].
1.1. GeoSPARQL
GeoSPARQL is an Open Geospatial Consortium implementation standard that denes “a core
set of classes, properties and datatypes that can be used to construct query patterns” for the
GeoLD 2022: 5th International Workshop on Geospatial Linked Data co-located with ESWC, May 30 2022, Hersonissos,
Greece
david.habgood@surroundaustralia.com (D. Habgood); timo.homburg@hs-mainz.de (T. Homburg);
nicholas.car@anu.edu.au (N. J. Car); milos.jovanovik@nki.ukim.mk (M. Jovanovik)
https://surroundaustralia.com/about-us (D. Habgood); https://situx.github.io/ (T. Homburg);
https://cecs.anu.edu.au/people/nicholas-car (N. J. Car); https://mjovanovik.com (M. Jovanovik)
0000-0002-9499-5840 (T. Homburg); 0000-0002-8742-7730 (N. J. Car); 0000-0001-7360-8015 (M. Jovanovik)
© 2022 Copyright for this paper by its authors. Use permitted under Creative Commons License Attribution 4.0 International (CC BY 4.0).
CEUR
Workshop
Proceedings
http://ceur-ws.org
ISSN 1613-0073
CEUR Workshop Proceedings (CEUR-WS.org)
1https://jena.apache.org

        
 
             
           
             
Data Catalog Vocabulary     
          
           
           
   

        
              
          
      

    
             
   
     
              
           
            


           
            
           
           
            
           
    
              
           
         
    
           
           
            
           Discrete
Global Grid Systems - Part 1 Core 
            
  
       AusPIX 


                
           
   
              

                  
       
               
            
 
   
          

          
              
            
              
            

         
           
      
         
   
geo:asDGGS

geo:
     
ex:auspixDggsLiteral

ex:
 
example.org
  
   AusPIX 

        
             AusPIX
             
    
           
               
CELLLIST
    
POLYGON
               
      

             
             
         
 
         
             
  
@prefix geo: <http://www.opengis.net/ont/geosparql#> .
<https://linked.data.gov.au/dataset/asgs2016/commonwealthelectoraldivision/304>
ageo:Feature ;
geo:hasGeometry [
geo:asWKT """
POLYGON ((
153.099932 -27.445258, 153.092961 -27.447432, 153.080142 -27.446423,
...
153.053422 -27.439453, 153.053451 -27.439456, 153.053452 -27.439456))
"""^^geo:wktLiteral ;
] ;
.
 
         
           
    
@prefix dggs: <h ttp s:/ /w3i d.o rg/ dggs /> .
@prefix geo: <http://www.opengis.net/ont/geosparql#> .
<https://linked.data.gov.au/dataset/asgs2016/commonwealthelectoraldivision/304>
ageo:Feature ;
geo:hasGeometry [
geo:asDGGS """
CELLLIST ((
R8338506 R8338507 R8338508 R8338516 R8338530
R8338531 R8338532 R8338534 R8338540))
"""^^dggs:auspixLiteral ;
] ;
.
         
   
               
           
 rHEALPixDGGS Python Package
      
    
         
            
              
                
             
             Shapely
    
             
               
         
  
               
            
          Simple
Features Access

      


            
          
             
 
           
             
  
             
             
          
        
geof:sfContains
 
        
sf
  
geof:sfCrosses

            
            Simple
Features Relation Family  Annex B         
     
           
            
             
                 
             
        on the y     
          


  

    
                
          


          
             

  
         
   
            
              
            
             
           
            







                
             

   
           
             

              
           
            
















                 
   
Polygon
        
Point

   
LineString
     
Point
              
             
             
            


                  
 
  
              
       
              
        
             
             
           


      
geo:asDGGS

       
          
    
            
         
Requirement 19   
geof:distance
geof:buffer
geof:convexHull
geof:intersection
geof:union
geof:difference
geof:symDifference
geof:envelope

geof:boundary
        
        
        
Requirement 21   
geof:relate
  
          
Requirement 22   
geof:sfEquals
geof:sfDisjoint
geof:sfIntersects
geof:sfTouches
geof:sfCrosses
geof:sfWithin
geof:sfContains
geof:sfOverlaps
       
        
Requirement 23   
geof:ehEquals
geof:ehDisjoint
geof:ehMeet
geof:ehOverlap
geof:ehCovers
geof:ehCoveredBy
geof:ehInside
geof:ehContains
       
        
Requirement 24   
geof:rcc8eq
geof:rcc8dc
geof:rcc8ec
geof:rcc8po
geof:rcc8tppi
geof:rcc8tpp
geof:rcc8ntpp
geof:rcc8ntppi
 
        
     
           
                
                 
     
  
              

              

         
Correct answers         
Compliance percentage         
        

correct answers
         
             
compliance
percentage
           
               
                  
              
              
               
           
             
       
             
           
               
           
             
             
              
           
             
             
             
            
                
                 
   
function(type1, type2)
   
function(type2, type1)

               
               
              
              
             
             
               
   
  
            
     
 


 
 
  
 
  
    
     

           
              
               
     
   
               
            
             
           
           
            
       
            
 
         
            
            
           
           

geof:sfCrosses
           
          
geof:sfTouches

geof:sfIntersects
           
             Future Work
             
               
             
 
          
           
           
      
         
            

             
              

geof:sfTouches

geof:sfIntersects
       

  
            
           
             
          
              
        
            
            
           
             
 


           
   

           


         
       
10.3390/ijgi10070487

           
    


            
       
   

           
          
   

             
        
10.1007/
s00799-016-0192-4

          
       

         
      

           
        


              
    
10.17487/RFC7946

             
      

           
          
      

10.3390/ijgi11020117

                
          
         

10.1109/IGARSS.2016.7729935

            
          
  

           
      
10.26186/
140152
             
      
10.7931/J2D21VHM

          
          
     

                
 
... While GeoSPARQL 1.1 [Car et al., 2023] introduces a generic format for DGGS geometry serialization , it does not yet provide the ability to interpret specific cell IDs according to the various DGGS frameworks available. Furthermore, testing this implementation in RDF databases is still in its early stages [Habgood et al., 2022]. Few graph databases support DGGS-based indexing, such as those using S2 and H3 (e.g., NebulaGraphDB), but these are not RDF-based or GeoSPARQL-compliant [Jovanovik et al., 2021]. ...
Preprint
Full-text available
Geospatial Knowledge Graphs (GeoKGs) have become integral to the growing field of Geospatial Artificial Intelligence. Initiatives like the U.S. National Science Foundation's Open Knowledge Network program aim to create an ecosystem of nation-scale, cross-disciplinary GeoKGs that provide AI-ready geospatial data aligned with FAIR principles. However, building this infrastructure presents key challenges, including 1) managing large volumes of data, 2) the computational complexity of discovering topological relations via SPARQL, and 3) conflating multi-scale raster and vector data. Discrete Global Grid Systems (DGGS) help tackle these issues by offering efficient data integration and representation strategies. The KnowWhereGraph utilizes Google's S2 Geometry -- a DGGS framework -- to enable efficient multi-source data processing, qualitative spatial querying, and cross-graph integration. This paper outlines the implementation of S2 within KnowWhereGraph, emphasizing its role in topologically enriching and semantically compressing data. Ultimately, this work demonstrates the potential of DGGS frameworks, particularly S2, for building scalable GeoKGs.
Article
Full-text available
In 2012 the Open Geospatial Consortium published GeoSPARQL defining ``an RDF/OWL ontology for [spatial] information'', ``SPARQL extension functions'' for performing spatial operations on RDF data and ``RIF rules'' defining entailments to be drawn from graph pattern matching. In the 8+ years since its publication, GeoSPARQL has become the most important spatial Semantic Web standard, as judged by references to it in other Semantic Web standards and its wide use for Semantic Web data. An update to GeoSPARQL was proposed in 2019 to deliver a version 1.1 with a charter to: handle outstanding change requests and source new ones from the user community and to "better present" the standard, that is to better link all the standard's parts and better document \& exemplify elements. Expected updates included new geometry representations, alignments to other ontologies, handling of new spatial referencing systems, and new artifact presentation. This paper describes motivating change requests and actual resultant updates in the candidate version 1.1 of the standard alongside reference implementations and usage examples. We also describe the theory behind particular updates, initial implementations of many parts of the standard, and our expectations for GeoSPARQL 1.1's use.
Article
Full-text available
GeoSPARQL is an important standard for the geospatial linked data community, given that it defines a vocabulary for representing geospatial data in RDF, defines an extension to SPARQL for processing geospatial data, and provides support for both qualitative and quantitative spatial reasoning. However, what the community is missing is a comprehensive and objective way to measure the extent of GeoSPARQL support in GeoSPARQL-enabled RDF triplestores. To fill this gap, we developed the GeoSPARQL compliance benchmark. We propose a series of tests that check for the compliance of RDF triplestores with the GeoSPARQL standard, in order to test how many of the requirements outlined in the standard a tested system supports. This topic is of concern because the support of GeoSPARQL varies greatly between different triplestore implementations, and the extent of support is of great importance for different users. In order to showcase the benchmark and its applicability, we present a comparison of the benchmark results of several triplestores, providing an insight into their current GeoSPARQL support and the overall GeoSPARQL support in the geospatial linked data domain.
Article
Full-text available
CRMgeo is a formal ontology intended to be used as a global schema for integrating spatiotemporal properties of temporal entities and persistent items. Its primary purpose is to provide a schema consistent with the CIDOC CRM to integrate geoinformation using the conceptualizations, formal definitions, encoding standards and topological relations defined by the Open Geospatial Consortium in GeoSPARQL. To build the ontology, the same ontology engineering methodology was used as in the CIDOC CRM. CRMgeo first introduced the concept of Spacetime volume that was subsequently included in the CIDOC CRM and provides a differentiation between phenomenal and declarative Spacetime volume, Place and Time-Span. Phenomenal classes derive their identity from real world phenomena like events or things and declarative classes derive their identity from human declarations like dates or coordinates. This differentiation is an essential conceptual background to link CIDOC CRM to the classes, topological relations and encodings provided by Geo-SPARQL and thus allowing spatiotemporal analysis offered by geoinformation systems based on the semantic distinctions of the CIDOC CRM. CRMgeo introduces the classes and relations necessary to model the spatiotemporal properties of real world phenomena and their topological and semantic relations to spatiotemporal information about these phenomena that was derived from historic sources, maps, observations or measurements. It is able to model the full chain of approximating and finding again a phenomenal place, like the actual site of a ship wreck, by a declarative place, like a mark on a sea chart.
Article
Full-text available
The Resource Description Framework (RDF) is a framework for representing information in the Web. RDF 1.1 Concepts and Abstract Syntax defines an abstract syntax (a data model) which serves to link all RDF-based languages and specifications. The abstract syntax has two key data structures: RDF graphs are sets of subject-predicate-object triples, where the elements may be IRIs, blank nodes, or datatyped literals. They are used to express descriptions of resources. RDF datasets are used to organize collections of RDF graphs, and comprise a default graph and zero or more named graphs. This document also introduces key concepts and terminology, and discusses datatyping and the handling of fragment identifiers in IRIs within RDF graphs.
Book
This Abstract Specification lays the foundations for Discrete Global Grid Systems (DGGS). It defines Common classes for spatio-temporal geometry, topology, and reference systems using identifiers, a DGGS Core Reference system as a reference system using zonal identifiers with structured geometry that may be spatio-temporal, a suite of DGGS Core Functions, and it specifies Equal-Area Earth DGGS. The OGC DGGS Abstract Specification supports the specification of standardized DGGS infrastructures that enable the integrated analysis of very large, multi-source, multi-resolution, multi-dimensional, distributed geospatial data. Interoperability between OGC DGGS implementations is anticipated through implementation standards, and extension interface encodings of OGC Web Services.
Book
Data Formats XML and JSON.- Web Technologies, Getting Data from the Web.- General XML Application Areas.- Bibliography.- General Index.- R Function and Parameter Index.- R Package Index.- R Class Index.- Colophon.
Article
Download the specification from https://www.opengeospatial.org/standards/citygml
Article
In recent years, a number of data structures for global geo-referenced data sets have been proposed based on regular, multi-resolution partitions of polyhedra. We present a survey of the most promising of such systems, which we call Geodesic Discrete Global Grid Systems (Geodesic DGGSs). We show that Geodesic DGGS alternatives can be constructed by specifying five substantially indepen- dent design choices: a base regular polyhedron, a fixed orientation of the base regular polyhedron relative to the Earth, a hierarchical spatial partitioning method defined symmetrically on a face (or set of faces) of the base regular polyhedron, a method for transforming that planar partition to the corresponding spherical/ellipsoidal surface, and a method for assigning point representations to grid cells. The majority of systems surveyed are based on the icosahedron, use an aperture 4 triangle or hexagon partition, and are either created directly on the surface of the sphere or by using an equal- area transformation. An examination of the design choice options leads us to the construction of the Icosahedral Snyder Equal Area aperture 3 Hexagon (ISEA3H) Geodesic DGGS.
OGC GeoSPARQL -A Geographic Query Language for RDF Data
  • M Perry
  • J Herring
M. Perry, J. Herring, OGC GeoSPARQL -A Geographic Query Language for RDF Data, OGC Implementation Standard, 2011.