Search code examples
sparqlowlontologyowl-apireasoning

What can be done using OWL reasoning?


I'm working on an OWL ontology and I need some specific issues I only need ontology schema (TBox) and I got lost, what are the operations that can be completed using reasoning and sparql and OWL API?

More specifically, I need the following: 1- check cardinalities between classes and properties. 2- find subsumption relationships for a specific class. 3- check whether specific facts hold (e.g. are two classes are disjoint) 4- find the paths (a class-property series) between a set of classes.

What each of reasoning, sparql and OWL API used for? and which one is suitable for my situation?

Actually I don't know how to start and what technique to use. In addition. Would you please refer me to some reference?

Thanks.


Solution

  • Number 1 is not clear: do you want to know which cardinality axioms are asserted? This can be done without a reasoner. Number 4 is a bit vague as well, can you provide an example?

    2, 3 and 5 require a reasoner to be perform accurately.

    A reasoner is a program that will explicit implicit information: subsumption, realisation, consistency checks are all operations for which a reasoner is needed. In your tasks, subsumption is clearly needed.

    OWLAPI is a Java API to manipulate OWL ontologies; in your case, it could be useful to write the connecting code to use a reasoner for your tasks. Compatible reasoners are Pellet, HermiT, FaCT++, and a few more.

    SPARQL is an RDF query language. OWLAPI does not support it. You could use it for your tasks, but they look more OWL oriented than RDF oriented to me. Jena is a Java library supporting RDF, OWL, SPARQL and interfaces with reasoners such as Pellet. Depending on how you decide to solve the above tasks, it might fit more of your requirements than the OWLAPI.

    Jena tutorials: https://jena.apache.org/tutorials/index.html

    OWLAPI documentation: https://github.com/owlcs/owlapi/wiki/Documentation