Search code examples
sparqlrdfsemantic-webinferencelinked-data

Inference over linked data SPARQL endpoints


When querying some linked data SPARQL endpoints via SPARQL queries, what is the type of reasoning provided (if any)?

For example, DBpedia SNORQL endpoint doesn't even provide the basic subclass inference (if A subClassOf B and B subClassOf C, then A subClassOf C). While FactForge SPARQL endpoint provides some inference (though it is not clear what kind of inference it is), and provides the possibility to switch that inference on and off.

My question: How is it possible to identify the kind of inference applied? and if the inference support is limited, could it be extended using the endpoint only?


Solution

  • Inference controls will vary with the engine as well as the endpoint.

    The public DBpedia SPARQL endpoint (powered by Virtuoso, from my employer, OpenLink Software) does provide various inference rules (accessible through the "Inference rules" link at the top right corner of the SPARQL endpoint query form page) which are controlled by pragmas in your SPARQL (not SNORQL, to which form you linked), such as --

    DEFINE  input:inference  'urn:rules.skos'
    

    You can see the content of any predefined ruleset via SPARQL -- for the above

    SELECT  * 
      FROM  <urn:rules.skos> 
     WHERE  { ?s ?p ?o }
    

    You can see the live query and results.

    See this tutorial containing many examples.