- From: Michael Schneider <schneid@fzi.de>
- Date: Tue, 5 Aug 2008 10:46:49 +0200
- To: "Jeff Thompson" <jeff@thefirst.org>
- Cc: <public-owl-dev@w3.org>
- Message-ID: <0EF30CAA69519C4CB91D01481AEA06A0AD922E@judith.fzi.de>
Jeff Thompson wrote: >Please forgive my naive question as I try to clarify: If I published an >ontology with a million axioms, I used OWL because it is decidable so that a >rules engine examining the ontology won't choke. BUT before I published the ontology >I made sure that it didn't have any contradicting statements. What rules >engine did I use to do THAT? And I ran that rules engine to check for >contradictions without worrying that it would choke, even though the ontology has a >million axioms. So, either > 1) it is a decidable (terminating) problem to determine if an >ontology has >contradictions, or > 2) it is not decidable so I have to just publish my ontology not >knowing if it has contradictory assertions and just hope for the best. > >I suspect 1) is the truth. Am I wrong? Aren't people using some tool >or another to check for contradictions in their ontology? You are asking whether a given OWL DL knowledge base (axioms + assertions) is consistent or not (has contradictions), and this is indeed a decidable problem. You can use any compliant OWL DL reasoner (e.g. Pellet) to check for consistency. But since you stress the fact that you use an ontology with a "million axioms", you should note that decidability is only ensured in theory. Actually, the consistency problem in OWL DL has a terrible worst case complexity, being NExpTime-complete. So, depending on the size and form of your ontology, it might happen that you have to wait for the result of the consistency check for a pretty long time - maybe the universe will die its heat death before. ;-) >And why can't these rules used by this tool be expressed in the ontology itself? I'm not sure I understand this question. IIRC, Pellet will tell you that it cannot do reasoning on inconsistent ontologies, so Pellet actually performs a consistency check before it starts a reasoning task. From what you say, it seems to me that you want to do a consistency check once before deploying your ontology. For this, simply use Pellet (or any other OWL DL compliant reasoner), which will do the job for you. But if you want to use some rule engine, like the one shipping with Jena, e.g. to expand an ontology given in RDF into an inference graph, and if you want to do a consistency check each time you perform this expansion process, then you probably will need to produce a few lines of programming code: First call Pellet to perform the consistency check, and afterwards apply Jena to expand the graph. Cheers, Michael -- Dipl.-Inform. Michael Schneider FZI Forschungszentrum Informatik Karlsruhe Abtl. Information Process Engineering (IPE) Tel : +49-721-9654-726 Fax : +49-721-9654-727 Email: Michael.Schneider@fzi.de Web : http://www.fzi.de/ipe/eng/mitarbeiter.php?id=555 FZI Forschungszentrum Informatik an der Universität Karlsruhe Haid-und-Neu-Str. 10-14, D-76131 Karlsruhe Tel.: +49-721-9654-0, Fax: +49-721-9654-959 Stiftung des bürgerlichen Rechts Az: 14-0563.1 Regierungspräsidium Karlsruhe Vorstand: Rüdiger Dillmann, Michael Flor, Jivka Ovtcharova, Rudi Studer Vorsitzender des Kuratoriums: Ministerialdirigent Günther Leßnerkraus
Received on Tuesday, 5 August 2008 08:47:38 UTC