1

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.

Median Hilal
  • 1,483
  • 9
  • 17
  • duplicated at http://answers.semanticweb.com/questions/30306/difference-between-a-reasoner-sparql-and-owl-api-in-java – Ignazio Sep 16 '14 at 21:05
  • bro where are you from? plz email me. jamalkio@yahoo.com. we need to share some ideas. Indeed i need your help. Thanks. – learner Sep 18 '14 at 15:15

1 Answers1

1

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

Ignazio
  • 10,504
  • 1
  • 14
  • 25
  • To clarify 1 and 4: 1- In a health care domain ontology: Let's consider a patient class and a disease class, one patient may have more than one disease (e.g. ten at most), so we may define a cardinality restriction in our ontology for the (patient hasDisease disease) with a minimum cardinality of 1 and maximum of 10. I want to retrieve these cardinalities restrictions for some classes inside the ontology. What is the best way for so? – Median Hilal Sep 16 '14 at 22:11
  • 4- Let's consider the following axioms within our ontology (patient hasDisease disease), (disease hasCure cure), (cure hasCost cost), then I want to retrieve this whole set of classes and their object properties (patient, hasDisease, disease, hasCure, cure, hasCost, cost), (it can be considered as graph in-depth search) how to perform it using ontology tools? – Median Hilal Sep 16 '14 at 22:11
  • And a notice finally, I'm interested only in TBox. I don't care about instances if that makse some different. But still didn't get how is sparql is different from reasoner. what type of queries is sparql used for? – Median Hilal Sep 16 '14 at 22:14
  • SPARQL is different from a reasoner the same way SQL is different from a database: one is a language for asking queries, the other is a tool for answering those queries. Regarding the other questions, both OWL API and Jena can be used for this purpose. I recommend going through their documentation, there are tutorials and examples to get the feeling of how they work. I've added the links to the answer. – Ignazio Sep 16 '14 at 22:21