Export to GitHub

owl1-1 - SparqlOwl.wiki


Rationale

Given that the SPARQL query language will be a W3C recommendation in 2007, that several OWL implementations use SPARQL syntax as a query langauge, that many users want a (standard) query language for OWL and expect to be able to use SPARQL to query OWL, and that, nominally, SPARQL is designed to be extensible to OWL, there should be an extension of SPARQL to query OWL.

Three goals: 1. to cover what we "know" how to do 1. to describe existing implementations 1. to meet user desires with minimal "surprise" when transitioning from RDF(S)

Features

  • Arbitrary conjunctive queries
  • Syntactic higher orderness:
    • Property variables
    • TBox queries and mixed ABox/TBox queries
  • Sensible profiles
    • ABox query only
    • All distinguished variables
  • Specification using OWL1.1 functional syntax

Big Issues

  • Alternative syntaxes (e.g., for the XML and functional syntaxes?)
  • Syntax for non-distinguished vars

Currently, in Pellet, BNodes in BGPs are non-distinguished variables; all query variables are distinguished, though they may be projected away. I.e.,

SELECT ?x WHERE {?x loves _:x. _:x loves ?y} has three variables (?x, _:x, and ?y), ?x and ?y are distinguished (though ?y is projected away) and _:x is non-distinguished.

This query is equivalent to retrieving the instances of the following concept (assuming that in your ABox that for every distinct name of an individual you add the type assertion that they are an instance of the dummy class :O):

ObjectSomeValuesFrom(ObjectProperty(loves) ObjectSomeValuesFrom(ObjectProperty(loves) OWLClass(O))) * BNodes (in data and in results)

Bibliography

Implementations

For brevity and clarity we only list implementations that cover a significant fraction of OWL, e.g., one of the named fragments (more than RDFS).

Query Engines

| Name | Sparql Syntax |DL | TBox | Non-dist vars | Property vars | Algebra | Comments | |:-----|:--------------|:--|:-----|:--------------|:--------------|:--------|:---------| | Pellet | Yes | OWL 1.1/SROIQ | No | Yes | No | Yes (via ARQ) | | | KAON2| Yes | SHIQ | No | No | No | ? | DL safe rules might encode algebra | | Racer | No (nRQL, OWL-QL) | SHIQ | With special constructs | No | ? | UNION | nRQL is rather expressive | | QuOnto | No (SQL, Datalog) | DL-Lite | No | ? | ? | ? | |

Clients

| Name | Type | Notes | |:-----|:-----|:------| | Protege 4 alpha | Editor | Oops, only DIG like queries| | Protege/OWL 3.2 | Editor | May be tricky to get OWL semantics| | Swoop | Editor | | | TopBraid Composer | Editor | | | Pellet demo | Web demo | Examples of non-dist vars| | QuOnto demo | Web demo | Limited ontologies |

People