Bridging the Gap between RIF and SPARQL: Implementation of a RIF Dialect with a SPARQL Rule Engine

Semantic Web knowledge representation standards have close relationships with rule-based languages and systems. In particular, the sparql query language can be seen as a rule language: answering a construct query is similar to applying a rule in forward chaining to enrich an rdf base, with the rule antecedent corresponding to the where clause and its consequent to the construct clause of the sparql query. In this paper we present the correspondances between sparql and rif, the rule interchange format recommended by the W3C. We have characterized the subset of sparql that can be expressed in rif and, conversely, we have searched for the maximal rif dialect that can be expressed in sparql. We have extended the Corese semantic engine which enables to query rdf/s data with sparql and is provided with both a forward and a backward chaining rule system, so that it now supports rif: we have developed (1) a rif parser which builds an internal representation of a rif rule into an abstract syntax tree (AST) and (2) a translator of a rif AST into a sparql AST so that Corese has become an implementation of a rif-sparql dialect.