Hi Ricardo,
Virtuoso has its own built-in Inference & Reasoning capabilities. That said, if absolutely necessary, you can integrate 3rd party reasoners via a custom development efforts using the Server Extension API which allows integrated using a variety of runtime environments supported by Virtuoso (e.g., Java, Python, PHP, .NET, Ruby, Mono, etc.) or directly using ‘C’.
Virtuoso Functionality
Virtuoso Open Source Edition supports built-in Reasoning and Inference. By that I mean it automatically applies said functionality for the following relationship types:
- owl:sameAs
- owl:equivalentProperty
- owl:equivalentClass
- owl:inverseOf
- owl:InverseFunctionalProperty
- rdfs:subPropertyOf
- rdfs:subClassOf
All of the above are enabled via pragmas (within SPARQL Queries) and rules mapped to a named graph (created via SQL).
The commercial editions of Virtuoso go further by supporting Custom Inference Rules, courtesy of SPARQL as the Rules Language – facilitated by terms from the SPIN Ontology.
You would use Custom Inference rules to implement rules based on other reasoning profiles described by terms from OWL. Basically, you are only limited by imagination since SPARQL offers functionality delivered by Rules Languages of yore, e.g., Datalog etc.
All of this functionality is native to Virtuoso and scales massively.
Related
-
Various Virtuoso Reasoning & Inference Examples Collection — these live examples are usable against Live instances of Virtuoso, e.g., DBpedia and Wikidata editions deployed using Virtuoso
-
Built-In Reasoning & Inference Guide — using British Royal Family Relationship Types
-
Custom Reasoning & Inference Guide — using British Royal Family Relationship Types