From SPARQL Working Group
Jump to: navigation, search

Feature: Control Of Inference

An implementation may offer inference either at run time or may hold precalculated inference results apart from the original data. In both cases, it will be relevant to specify what inferred triples will be considered in producing an evaluation of a query.

Feature description

Virtuoso implements this by introducing a so-called inference context. Such a context specifies what subclasses, subproperties, IFP's and the like will be considered in evaluating a query. Either the whole query or a single triple pattern may be qualified with an inference context.

?x a yago:entity matches if ?x is a direct instance of yago:entity. ?x a yago:entity option (input:inference <yago>) matches if ?x is an instance of yago:entity or any subclass thereof, as specified in the inference context <yago>.

For a query wide declaration, the clause define input:inference <yago> may be added in the preface of the query, together with namespace prefixes.

Specifying what functionality including an inference context may imply is beyond the scope of the WG but specifying an interoperable syntax is useful. We propose using the pragma feature above for declaring this.

An implementation might be able to include a set of RIF rules, RDFS or OWL ontologies inside an inference context. Evaluating a query in such a context would evaluate it as if the entailed triples were present.


e.g. sample Query highlighting necessary syntax extensions, expected output, or modified/extended result format, endpoint self description mock-up syntax, etc.

Existing Implementation(s)

List existing applications, if applicable (e.g. aggregates, we do not want a use case page for every implementation of aggregates, but all implementations listed per use case. Different syntax proposals can be listed as separate subsections in the Examples section)

Existing Specification / Documentation

List any existing text that attempts a formal definition of this extension. This could be a draft specification, API or syntax documentation, etc.


The proposed implementation is a partial case of a feature that will be upward-compatible with existing spec and implementations.

Links to postponed Issues

Has this extension/use case some history in the group already? I.e. are there posponed issues or archived mail-threads related to this originating from DAWG?

Related Features

XQuery-like pragmas

Parameterized Inference


Use cases

Non-trivial querying of B3S (Billion Triples Challenge data set) and any other big collection of data from different origin. As soon as data are of large scale and not perfectly clean, control of inference is critical.