solutions for semantic web (OWL ontologies, SPARQL, reasoning) and model driven development (metamodel, model design, model transformation, code generation)

Querying OWL Ontologies with OWL Syntax

| Sunday, February 14, 2010
Writing SPARQL queries for OWL ontologies can be time-consuming for those who do not do it everyday. Therefore, Mark Schneider has built a handy language, allowing users querying using OWL syntax -- SPARQLAS. These queries are translated into SPARQL queries that can be executed in a SPARQL engine that supports the OWL DL entailment regime, e.g., pellet.

The syntax is simple: You use the OWL Functional Syntax or a shortened version of it, and you can use variables wherever you have an entity (Class, Datatype, ObjectProperty, DataProperty, NamedIndividual) or a literal. You can construct nested expressions that use these variables.

Example

All subclasses of pizza that have as topping some topping with spiciness hot.

In SPARQLAS OWL Functional Syntax:
Namespace ( = <http://www.co-ode.org/ontologies/pizza/pizza.owl#> )
Query (
  SubClassOf ( ?x ObjectIntersectionOf ( Pizza ObjectSomeValuesFrom ( hasTopping ObjectIntersectionOf ( PizzaTopping ObjectSomeValuesFrom ( hasSpiciness Hot ) ) ) ) )
)

In SPARQLAS Shortened Functional Syntax:
Namespace ( = <http://www.co-ode.org/ontologies/pizza/pizza.owl#> )
Query (
  SubClassOf ( ?x And ( Pizza Some ( hasTopping And ( PizzaTopping Some (hasSpiciness Hot ) ) ) ) )
)


You can try it in two different ways:

Integrate it in your application

0 comments:

Post a Comment