Simple CLI useable OWL Reasoner


Hi All,

I am looking for a simple to use OWL reasoner. e.g: preferably reasoner -owl core.owl -rdf P05067.rdf which will tell me if the small P05067.rdf file contradicts any rules in the core.owl As well as show which triples are inferred. Preferably explaining which rules are the source of the contradiction and/or inference.

The use case is debugging and testing a owl or the rdf file for correctness. i.e. sometimes I want to check that the OWL file does not declare OWL legal inferences that are real world wrong. And at other times I want to check if an class instance in a RDF file does not contain contradiction.




I want to check if meets the requirements of without adapting either file if at all possible.

For example an owl:restriction? e.g. one of the things I think I can say in OWL is that the species in the following example must be one of the Rank instances defined in the core.owl. Using something like

@base .
t a :Taxon
[ a owl:Restriction;
    owl:onProperty t:rank
    owl:allValuesFrom :Rank ]

@base .
@prefix rdf: .
@prefix rdfs: .
@prefix owl: .> rdf:type :Taxon ;
    :rank :Species ;

As well as cardinality restricitions etc...


to be able to answer your question (well, attempting to do so) I should understand it in details which I don't:-( I am not sure what 'core owl' means, for example. But I will try anyway, in the hope that this will be helpful...

There are different aspects that I can try to reflect on...

  1. proper OWL engines will give you an answer two out of the three issues, namely finding the 'contradictions' (ie, whether there is consistency error) and showing which triples are inferred. There are several sites that list implementations; the implementation report of the OWL Working group is probably one of the most recent. Note that, afaik, some of the editors in the list will also detect inconsistencies, or at least some of them, so it is worth looking at those. (I am not a user of Pellet, but I must admit I did not understand your answer to that proposal. Merging two RDF files into one is really not a difficult issue, if this is the only problem you have with Pellet...)

I could not look at the details of your ontology, it is fairly large, but you might want to see whether it fits one of the OWL 2 profiles. If so, there might be some simpler tools around. Eg, if it falls under the OWL 2 RL category, then simpler rule engine based implementation may also work. (I do not know whether there is already a Jena based implementation available, but if not, it is only a question of time.

  1. you also asked "explaining which rules are the source of the contradiction and/or inference". That is much more of an R&D question, I am afraid. The best paper award for the ISWC2008 conference, for example, touched exactly on that aspect; current tools still have to evolve in this area...

As I said, I hope this helps...


Pellet should be what you are looking for.