<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Declarative Evaluation of Ontologies with Rules</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Dietmar Seipel</string-name>
          <email>seipel@informatik.uni-wuerzburg.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Joachim Baumeister</string-name>
          <email>baumeister@informatik.uni-wuerzburg.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Klaus Prätor</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>University of Würzburg, Institute of Computer Science</institution>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Currently, the extension of ontologies by a rule representation is a very popular research issue. A rule language increases the expressiveness of the underlying knowledge in many ways. Likewise, the integration creates new challenges for the design process of such ontologies, but also existing evaluation methodologies have to cope with the extension of ontologies by rules. In this work, we introduce supplements to existing verification techniques to support the design of ontologies with rule enhancements, and we focus on the detection of anomalies that can especially occur due to the combined use of rules and ontological definitions.</p>
      </abstract>
      <kwd-group>
        <kwd />
        <kwd>evaluation</kwd>
        <kwd>anomalies</kwd>
        <kwd>OWL</kwd>
        <kwd>SWRL</kwd>
        <kwd>RULEML</kwd>
        <kwd>PROLOG</kwd>
        <kwd>DATALOG</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>The use of ontologies has shown its benefits in many applications of intelligent systems
in the last years. It is not only a fantasy of computer scientists, but it correesponds to
real needs. E.g., in scholarly editions, the lack of semantic search is very obvious. The
works of the poet Stifter, e.g., are full of geological metaphors but the word geological is
never mentioned. The philosopher Wittgenstein is dealing with philosophical problems,
but does not use traditional philosophical terminology. So the editors are considering an
ontology for the work of Wittgenstein. In the context of [PZW13], Pichler and Zöllner–
Weber were also exploring the potential of PROLOG ontologies and logic reasoning as
tools in the Humanities [Zoe09].</p>
      <p>
        Whereas, the implementation of lower parts of the semantic web stack has
successfully led to standardizations, the upper parts, especially rules and the logic
framework, are still heavily discussed in the research community, e.g., see Horrocks et al. [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
This insight has led to many proposals for rule languages compatible with the semantic
web stack, e.g., the definition of SWRL (semantic web rule language) originating from
RULEML and similar approaches [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. It is well agreed that the combination of
ontologies with rule–based knowledge is essential for many interesting semantic web tasks,
e.g., the realization of semantic web agents and services. SWRL allows for the
combination of a high–level abstract syntax for Horn–like rules with OWL, and a model
theoretic semantics is given for the combination of OWL with SWRL rules. An XML
syntax derived from RULEML allows for a syntactical compatibility with OWL. However,
with the increased expressiveness of such ontologies, new demands for the development
and for maintenance guidelines arise. Thus, conventional approaches for evaluating and
maintaining ontologies need to be extended and revised in the light of rules, and new
measures need to be defined to cover the implied aspects of rules and their combination
with conceptual knowledge in the ontology.
      </p>
      <p>
        Concerning the expressiveness of the ontology language we focus on the basic
subset of OWL DL (that should make the work transferable to ontology languages other
than OWL) and we mostly describe syntactic methods for the analysis of the considered
ontology. We also focus on the basic features of SWRL: we consider Horn clauses with
class or property descriptions as literals, and we omit a discussion of SWRL built–ins.
Due to the use of rules with OWL DL the detection of all anomalies is an undecidable
task, cf. [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
      </p>
      <p>
        Here, the term verification denotes the syntactic analysis of ontologies for detecting
anomalies. On one hand, the discussed issues of the presented work originate from the
evaluation of taxonomic structures in ontologies introduced by Gómez–Pérez [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. On
the other hand, in the context of rule ontologies classical work on the verification of
rule–based knowledge has to be reconsidered as done, e.g., by Preece and Shinghal [
        <xref ref-type="bibr" rid="ref6 ref7">6,
7</xref>
        ]. In their works, the verification of ontologies (mostly taxonomies) and rules (based on
predicate logic), respectively, has been investigated separately. However, the
combination of taxonomic and other ontological knowledge with a rule extension leads to new
evaluation metrics that can cause redundant or even inconsistent behavior. The main
contribution of our work is the extension of these measures by novel anomalies that
are emerging from the combination of rule–based and ontological knowledge. Here, the
concept of dependency graphs from deductive databases can be used [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. Of course, the
collection of possible anomalies may always be incomplete, since additional elements
of the ontology language may also introduce new possibilities of occurring anomalies.
      </p>
      <p>In detail, we investigate the implications and problems that can be drawn from rule
definitions in combination with some of the following ontological descriptions: 1. class
relations like subclass of, complement of, disjointness 2. basic property characteristics
like transitivity, ranges and domains, and cardinality restrictions. We distinguish the
following classes of anomalies:
– Circularity in taxonomies and rule definitions.
– Redundancy due to duplicate or subsuming knowledge.
– Inconsistency because of contradicting definitions.
– Deficiency as a category comprising subtle issues describing questionable design in
an ontology.</p>
      <p>
        The presented work is different from the evaluation of an ontology with respect
to the intended semantic meaning: the OntoClean methodology [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] is an example for
semantic checks of taxonomic decisions made in an ontology. We also do not consider
common errors that can be implemented due to the incorrect understanding of logical
implications of OWL descriptions as described by Rector et al. [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ].
      </p>
      <p>This paper is organized as follows: The next section gives basic definitions and
describes the expressiveness of the underlying knowledge representation; in the context
of this work a subset of OWL DL is used. Then, the four main classes of anomalies are
discussed. In Section 3, we present a case study with anomalies in OWL ontologies. The
paper is concluded with a discussion.</p>
    </sec>
    <sec id="sec-2">
      <title>Expressiveness and Basic Notions</title>
      <p>For the analysis of ontologies with rules, we restrict the range of the considered
constructs to a subset of OWL DL: we investigate the implications of rules that are mixed
with subclass relations and/or the property characteristics transitivity, cardinality
restrictions, complement, and disjointness.</p>
      <p>Given a class C and a property P . When used in rules, we call C(x) a class atom and
P (x; y) a property atom. For the following it will be useful to extend the relations on
classes and properties to relations on class and property atoms. Given two atoms A; A0,
we write (A; A0), if both atoms have the same argument tuple, and their predicate
symbols are related by , i.e., if A and A0 both are
– class atoms, such that A = C(x), A0 = C0(x), and (C; C0), or
– property atoms, such that A = P (x; y), A0 = P 0(x; y), and (P; P 0).
E.g., the relation can be sub_class, isa, disjoint, complement, etc. From
a relationship (A; A0) it follows that A and A0 are of the same type.
2.1</p>
    </sec>
    <sec id="sec-3">
      <title>Implementation in DATALOG?</title>
      <p>
        The detection of anomalies has been done using a PROLOG meta–interpreter
DATALOG?, which we have implemented in SWI PROLOG [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. Due to their compactness
and conciseness, we give the corresponding formal definitions for the anomalies, which
are evaluated using a mixed bottom–up/top–down approach based on DATALOG and
PROLOG concepts, respectively.
      </p>
      <p>Variables such A, B, C, . . . , A0, or Bi can denote both class atoms and property
atoms, whereas As, Bs, . . . , denote sets of class atoms and property atoms. We denote
a relationship A is-a A’ by isa(A, A’). SWRL rules B1 ^ ^ Bn ) A are
represented as non–ground DATALOG? facts rule(A-Bs) (with variable symbols), where
Bs = [B1; : : : ; Bn] is the list of body atoms and A is the head atom. Since SWRL rules
with conjunctive rule heads can be split into several rules, we can – without loss of
generality – assume rule heads are atomic. In DATALOG? and PROLOG rules, conjunction
(and) is denoted by ”,”, disjunction (or) is denoted by ”;”, and negation by ”\+”.
Incompatible Classes: Complements and Disjointness. For classes, there exists the
construct complementOf to point to instances that do not belong to a specified class. In
DATALOG?, the complement relation between two classes C1 and C2 is denoted by
complement(C1,C2). In OWL, the disjointness between two classes is defined by
the disjointWith constructor; with disjoint(C1,C2) we denote the disjointness
between two classes C1 and C2. We call two classes C1 and C2 incompatible, if there
exists a disjoint or a complement relation between them. This is detected by the
following PROLOG predicate:
incompatible(C1, C2)
:( complement(C1, C2)
; disjoint(C1, C2) ).</p>
      <p>Taxonomic Relationships and Rules An obvious equivalence exists between the
relationships B is-a A – where A and B are both class atoms or both property atoms with
the same arguments – and rules of the form B ) A with a single atom B in the body
having the same argument as A. Thus, we combine them into the single formalism
derives in DATALOG?:
derives(C1, C2)
:( isa(C1, C2)
; rule(A-[B]) B =.. [C1, X1], A =.. [C2, X2],</p>
      <p>var(X1), X1 == X2 ).
isa(C1, C2)
:</p>
      <p>sub_class(C1, C2).
isa(C1, C3)
:</p>
      <p>isa(C1, C2), sub_class(C2, C3).</p>
      <p>Observe, that the call var(X1), X1 == X2 tests if X1 and X2 are bound to the
same variable.</p>
      <p>With the existence of equivalence definitions E1 E2 in an ontology language,
e.g., the OWL definitions equivalent_class and equivalent_property, we
can further extend the definition of derives: an element E1 is derived by an element
E2, if the elements are equivalent classes or properties. Since such an equivalence is
symmetrical, the predicate derives/2 always creates cyclic dervations of equivalent
elements with length 1.</p>
      <p>derives(E1, E2)
:( equivalent_class(E1, E2)
; equivalent_property(E1, E2) ).</p>
      <p>We compute the transitive closure tc_derives of derives using the following
simple, standard DATALOG? scheme:
tc_derives(E1, E2)
:</p>
      <p>derives(E1, E2).
tc_derives(E1, E3)
:</p>
      <p>derives(E1, E2), tc_derives(E2, E3).
tcr_derives(E1, E2)
:( E1 = E2
; tc_derives(E1, E2) ).</p>
      <p>Subsequently, the reflexive transitive closure tcr_derives of derives is
computed using the following PROLOG predicate:
Remark on Examples. In the following we give examples for most of the described
anomalies. For this task, we use a printer domain, because to its popularity and intuitive
understanding.</p>
      <sec id="sec-3-1">
        <title>Mixing DATALOG and PROLOG: Forward and Backward Chaining</title>
        <p>The detection of anomalies in SWRL ontologies could not be formulated using PROLOG
backward chaining or DATALOG forward chaining alone, since we may need recursion
on cyclic data, function symbols (mainly for representing lists), non–ground facts,
negation and disjunction in rule bodies, aggregation, and stratification.</p>
        <p>
          Thus we have developed a new approach that extends the DATALOG paradigm to
DATALOG? and mixes in with PROLOG. However, an intuitive understanding of the
presented, mixed rule sets is possible without understanding the new inference method.
The interested reader can run the analysis using our DisLog system [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ].
DATALOG?. We distinguish between DATALOG? rules and PROLOG rules. DATALOG?
rules are forward chaining rules (not necessarily range–restricted) that may contain
function symbols (in rule heads and bodies) as well as negation, disjunction, and
PROLOG predicates in rule bodies. DATALOG? rules are evaluated bottom–up, and all
possible conclusions are derived.
        </p>
        <p>The supporting PROLOG rules are evaluated top–down, and for efficiency reasons
only on demand, and they can in turn refer to DATALOG? facts. The PROLOG rules are
also necessary for expressivity reasons: the are used for some computations on complex
terms, and more importantly for computing very general aggregations of DATALOG?
facts.</p>
        <p>Ontology Evaluation in DATALOG?. For ontology evaluation, we have implemented
two layers D1 and D2 of DATALOG? rules:
– The upper layer D2 consists of the rules for the predicate anomaly/2 and some</p>
        <p>DATALOG? rules that are stated together with them.
– The lower layer D1 consists of all other DATALOG? rules. E.g., the rules for
predicates derives and tc_derives are in D1.</p>
        <p>D1 is applied to the DATALOG? facts for the following basic predicates, which have to
be derived from the underlying SWRL document:
rule, class, sub_class, complement, incompatible,
equivalent_class, equivalent_property,
transitive_property, symmetric_property,
property_restriction, min_cardinality_restriction,
max_cardinality_restriction, class_has_property.
The resulting DATALOG? facts are the input for D2. The stratification into two layers is
necessary, because D2 refers to D1 through negation and aggregation. Most PROLOG
predicates in this paper support the layer D2.</p>
        <p>E.g., the following predicates with calls to DATALOG? facts generalize tc_derives
and incompatible to atoms:
tc_derives_atom(A1, A2)
:</p>
        <p>tc_derives(P1, P2), A1 =.. [P1|Xs], A2 =.. [P2|Xs].
incompatible_atoms(A1, A2)
:</p>
        <p>incompatible(P1, P2), A1 =.. [P1|Xs], A2 =.. [P2|Xs].
We cannot evaluate these rules using forward chaining, since Xs is a unknown list.</p>
        <p>The head and body predicates of a rule can be determined using the following pure
PROLOG predicates:
head_predicate(A-_, P)
:</p>
        <p>functor(A, P, _).
body_predicate(_-Bs, P)
:</p>
        <p>member(B, Bs), functor(B, P, _).</p>
        <p>The following PROLOG rules define siblings and aggregate the siblings Z of a class
X to a list Xs using the well–known meta–predicate findall, respectively:
sibling(X, Y)
:</p>
        <p>sub_class(X, Z), sub_class(Y, Z), X \= Y.
siblings(Xs)
:sibling(X, _),
findall( Z,
sibling(X, Z),</p>
        <p>Xs ).</p>
        <p>These rules could also be evaluated in DATALOG? using forward chaining. But, since
we need siblings only for certain lists Xs, this would be far to inefficient.
Evaluation of DATALOG?. DATALOG? rules cannot be evaluated in PROLOG or
DATALOG alone for the following reasons: Current DATALOG engines cannot handle function
symbols and non–ground facts, and they do not allow for the embedded computations,
which we need. Standard PROLOG systems cannot easily handle recursion with cycles,
because of non–termination, and are inefficient, because of subqueries that are posed
and answered multiply. Thus, they have to be extended by some DATALOG? facilities
(our approach) or memoing/tabling facilities (the approach of the PROLOG extension
XSB). Since we wanted to use SWI PROLOG – because of its publicly available
graphical API – we have implemented a new inference machine that can handle mixed,
stratified DATALOG?/PROLOG rule systems.
3</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Case Study</title>
      <p>Knowledge representation in the Semantic Web is based on ontologies and logic. The
reasoning tasks require search (query answering) and knowledge engineering /
modeling (analysis of the structure of the ontologies for anomalies). Knowledge
engineering and reasoning in the Semantic Web is based on ontology editors and specialized
databases. It can further be supported by deductive databases and logic programming
techniques.</p>
      <p>In the Semantic Web, it is possible to reason about the ontology / taxonomy (i.e.,
the schema) and the instances. This is called terminological or assertional (T–Box or A–
Box) reasoning, respectively. This makes search in the Semantic Web more effective.
– In the following printer ontology, we could search for a printer from HP, and the
result could be a laser–jet printer from HP, since the system knows that
hpLaserJetPrinter is a sub–class of hpPrinter.
– It can also be derived, that all laser–jet printers from HP are no laser writers from
Apple; in this case, this is very easy, since it is explicitely stored in the ontology.
product
printer</p>
      <p>{disjoint}
hpApplePrinter
hpProduct
personalPrinter
laserJetPrinter
hpPrinter
ibmLaserPrinter
appleLaserWriter
hpLaserJetPrinter</p>
      <p>Moreover, we will show in the following how to support knowledge engineering by
detecting anomalies in OWL ontologies. In the Web Ontology Language (OWL), we can
mix concepts from rdf (Resource Description Framework) for defining instances and
rdfs (rdf Schema) for defining the schema of an application. Moreover, tags with the
namespace owl are allowed. The Semantic Web Rule Language (SWRL) incorporates
logic programming rules into OWL ontologies. There exist well–known, powerful tools
for asking queries on and for reasoning with OWL ontologies.</p>
      <sec id="sec-4-1">
        <title>3.1 The Printer Ontology in OWL</title>
        <p>
          The following examples are given in Turtle syntax [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ] using the namespace p for
resources of the printer ontology. First of all, every laserJetPrinter is a printer, and every
hpPrinter is an hpProduct:
p:printer rdf:type owl:Class .
p:hpProduct rdf:type owl:Class .
p:laserJetPrinter rdfs:subClassOf p:printer .
hpPrinter rdfs:subClassOf p:hpProduct .
        </p>
        <p>The following owl:Class element defines the class appleLaserWriter:
p:appleLaserWriter rdf:type owl:Class ;
rdfs:comment "Apple laser writers are laser jet printers" ;
rdfs:subClassOf p:laserJetPrinter ;
owl:disjointWith p:hpLaserJetPrinter .</p>
        <p>The rdfs:subClassOf sub–element states that appleLaserWriter is a sub–class of
laserJetPrinter. The owl:disjointWith sub–element states that
appleLaserWriter is disjoint from hpLaserJetPrinter.</p>
        <p>The following owl:Class element defines a class of printers from a joint venture
of HP and Apple:
p:hpApplePrinter
rdfs:comment "Printers from a joint venture of HP and Apple" ;
rdfs:subClassOf p:hpLaserJetPrinter, p:appleLaserWriter .
The existence of such printers would contradict the disjointWith restriction
between the classes hpLaserJetPrinter and apperLaserWriter. The emptiness of
the class hpApplePrinter can be detected by reasoners used, for instance, by
ontology editors like Protégé.</p>
        <p>Redundant subClassOf Relation. Since hpLaserJetPrinter is a sub–class of the
class hpPrinter, and hpPrinter is a sub–class of hpProduct, it is redundant to
explicitly state that hpLaserJetPrinter is a sub–class of hpProduct.
p:hpLaserJetPrinter
rdfs:subClassOf p:laserJetPrinter, p:hpPrinter, p:hpProduct ;
owl:disjointWith p:appleLaserWriter .</p>
        <p>This redundancy is not an error. We could simply consider it as an anomaly, that should
be reported to the knowledge engineer. This anomaly is usually not reported by
reasoners in standard ontology editors.</p>
        <p>Instances. Finally, we have some instances of the defined classes:
p:1001 rdf:type p:appleLaserWriter .
p:1002 rdf:type p:appleLaserWriter .
p:1003 rdf:type p:hpLaserJetPrinter .
p:1004 rdf:type p:hpLaserJetPrinter .</p>
        <p>As mentioned before, there cannot exist instances of the class hpApplePrinter.</p>
        <p>The ontology editor Protégé offers plugged–in reasoners, such as FaCT++, HermiT,
and Racer. The ontology reasoner FaCT++ can inferr that the class hpApplePrinter
is EquivalentTo the empty class Nothing. By clicking the question mark, an
explanation can be shown. There are also databases for handling rdf data, so called triple
stores, such as Sesame or Jena. They use extensions of SQL– most notably SPARQL –
as a query language.</p>
        <p>Please note, that for the presented Turtle syntax the corresponding XML syntax can
be generated. For instance, the definition of the joint HP and Apple printer would read
as follows:
&lt;rdf:Description rdf:about="printer#hpLaserJetPrinter"&gt;
&lt;rdfs:subClassOf rdf:resource="printer#hpPrinter"/&gt;
&lt;rdfs:subClassOf rdf:resource="printer#laserJetPrinter"/&gt;
&lt;/rdf:Description&gt;
Protégé. Figure 1 shows the printer ontology in the standard ontolgy editor Protégé.</p>
      </sec>
      <sec id="sec-4-2">
        <title>3.2 Declarative Queries in FNQuery</title>
        <p>In PROLOG, an XML element can be represented as a term structure T:As:C, called
FN–triple. T is the tag of the element, As is the list of the attribute/value pairs A:V of
the element, and C is a list of FN–triples for the sub–elements.</p>
        <p>’owl:Class’:[’rdf:ID’:’appleLaserWriter’]:[
’rdfs:comment’:[’Apple laser ...’],
’rdfs:subClassOf’:[</p>
        <p>’rdf:resource’:’#laserJetPrinter’]:[],
’owl:disjointWith’:[</p>
        <p>’rdf:resource’:’#hpLaserJetPrinter’]:[] ]</p>
        <p>In an OWL knowledge base Owl, there exists an isa relation between two classes
C1 and C2, if a subclassOf relation is stated explicitely, or if C1 was defined as the
interesection of C2 and some other classes:
% isa(+Owl, ?C1, ?C2)
&lt;isa(Owl, C1, C2)
:</p>
        <p>C := Owl/’owl:Class’::[@’rdf:ID’=C1],
( R2 := C/’rdfs:subClassOf’@’rdf:resource’
; R2 := C/’owl:intersectionOf’/’owl:Class’@’rdf:about’ ),
owl_reference_to_id(R2, C2).</p>
        <sec id="sec-4-2-1">
          <title>Disjointness of Classes.</title>
          <p>% disjointWith(+Owl, ?C1, ?C2)
&lt;</p>
          <p>In the following, we often suppress the ontology argument Owl.
Transitive Closure of isa.</p>
          <p>% subClassOf(?C1, ?C2)
&lt;subClassOf(C1, C2)
:</p>
          <p>isa(C1, C2).
subClassOf(C1, C2)
:</p>
          <p>isa(C1, C), subClassOf(C, C2).</p>
        </sec>
      </sec>
      <sec id="sec-4-3">
        <title>3.3 Anomalies in Ontologies</title>
        <sec id="sec-4-3-1">
          <title>Cycle.</title>
          <p>?- isa(C1, C2), subClassOf(C2, C1).</p>
          <p>C1 = personalPrinter,</p>
          <p>C2 = printer
Partition Error. The class C is a sub–class of two disjoint classes C1 and C2.
?- disjointWith(C1, C2),</p>
          <p>subClassOf(C, C1), subClassOf(C, C2).</p>
          <p>C = hpApplePrinter,
C1 = hpLaserJetPrinter,</p>
          <p>C2 = appleLaserWriter
Incompleteness. The class C has three sub–classes C1, C2 and C3, from which only
the two sub–classes C1 and C2 are declared as disjoint in the knowledge base.
?- isa(C1, C), isa(C2, C), isa(C3, C),</p>
          <p>disjointWith(C1, C2), not(disjointWith(C2, C3)).</p>
          <p>C = laserJetPrinter,
C1 = hpLaserJetPrinter,
C2 = appleLaserWriter,</p>
          <p>C3 = ibmLaserPrinter
The fact that C2 and C3 are disjoint and that C1 and C3 are disjoint as well, possibly
was forgotten by the knowledge engineer during the creation of the knowledge base.
Redundant subClassOf/instanceOf Relations. The sub–class relation between C1 and
C3 can be derived by transitivity over the class C2.</p>
          <p>% redundant_isa(?Chain)
&lt;redundant_isa(C1-&gt;C2-&gt;C3)
:isa(C1, C2), subClassOf(C2, C3),
isa(C1, C3).
?- redundant_isa(Chain).</p>
          <p>Chain = hpLaserJetPrinter -&gt; hpPrinter -&gt; hpProduct</p>
          <p>Here, isa(C1, C2), subClassOf(C2, C3), requires that this deduction is
done over at least two levels.</p>
          <p>Undefined Reference. During the development of an ontology in OWL, it is possible
that we reference a class that we have not yet defined.</p>
          <p>% undefined_reference(+Owl, ?Ref)
&lt;undefined_reference(Owl, Ref)
:rdf_reference(Owl, Ref),
not(owl_class(Owl, Ref)).
rdf_reference(Owl, Ref)
:( R := Owl/descendant_or_self::’*’@’rdf:resource’
; R := Owl/descendant_or_self::’*’@’rdf:about’ ),
owl_reference_to_id(R, Ref).
owl_class(Owl, Ref)
:</p>
          <p>Ref := Owl/’owl:Class’@’rdf:ID’.</p>
          <p>If we load such an ontology into Protégé, then the ontology reasoners may produce
wrong results, even for unrelated parts of the ontology.
4</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Discussion</title>
      <p>In the last years ontologies have played a major role for building intelligent systems.
Currently, standard ontology languages like OWL are extended by rule–based elements,
e.g., RULEML and the semantic web rule language SWRL.</p>
      <p>We have shown that with the increased expressiveness of ontologies – now also
including rules – a number of new evaluation issues have to be considered. In this paper,
we have presented a framework for verifying ontologies with rules comprising a
collection of anomalies, that verify the represented knowledge in a combined methodology.
For all anomalies, we have described a DATALOG? implementation which is used in
a prototype for ontology verification. Due to its declarative nature, new methods for
anomaly detection can be easily added to the existing work. From our point of view, the
declarative approach is crucial because of the incompleteness of the presented
anomalies: in principle, an entire overview of possible anomalies is not possible, since the
number of anomalies depends on the used expressiveness of the ontology and the rule
representation, respectively.</p>
      <p>The actual frequency of the introduced anomalies is an interesting issue. However,
only a small number of ontologies (mostly toy examples) is available that actually use
a rule extension. A sound review of anomaly occurrences would require a reasonable
number of ontologies having a significant size.</p>
      <p>
        For many real–world applications, we expect a more expressive rule language to
be used than SWRL. With SWRL FOL, an extension of SWRL to first–order logic is
currently discussed as a proposal. Furthermore, larger systems may also include parts of
a non–monotonic rule base. Here, some work has been done on the verification of non–
monotonic rule bases [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ], that has to be re–considered in the presence of an ontological
layer.
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>J.</given-names>
            <surname>Baumeister</surname>
          </string-name>
          ,
          <string-name>
            <surname>D.</surname>
          </string-name>
          <article-title>Seipel: Anomalies in Ontologies with Rules.</article-title>
          .
          <source>Journal of Web Semantics: Science, Services and Agents on the World Wide Web</source>
          <volume>8</volume>
          (
          <year>2010</year>
          ),
          <source>No. 1</source>
          , pp.
          <fpage>55</fpage>
          -
          <lpage>68</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>D.</given-names>
            <surname>Seipel</surname>
          </string-name>
          , DisLog
          <article-title>- A System for Reasoning in Disjunctive Deductive Databases</article-title>
          , http://www1.pub.informatik.uni-wuerzburg.de/databases/DisLog/dislog_nmr.html.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>I.</given-names>
            <surname>Horrocks</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Parsia</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Patel-Schneider</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Hendler</surname>
          </string-name>
          , Semantic Web Architecture:
          <article-title>Stack or Two Towers?</article-title>
          , in: F.
          <string-name>
            <surname>Fages</surname>
          </string-name>
          , S. Soliman (Eds.),
          <source>Principles and Practice of Semantic Web Reasoning (PPSWR)</source>
          ,
          <source>No. 3703 in LNCS</source>
          , Springer,
          <year>2005</year>
          , pp.
          <fpage>37</fpage>
          -
          <lpage>41</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>I.</given-names>
            <surname>Horrocks</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P. F.</given-names>
            <surname>Patel-Schneider</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Bechhofer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Tsarkov</surname>
          </string-name>
          , OWL Rules:
          <article-title>A Proposal and Prototype Implementation</article-title>
          ,
          <source>Journal of Web Semantics</source>
          <volume>3</volume>
          (
          <issue>1</issue>
          ) (
          <year>2005</year>
          ) pp.
          <fpage>23</fpage>
          -
          <lpage>40</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>A.</given-names>
            <surname>Gómez-Pérez</surname>
          </string-name>
          , Evaluation of Ontologies,
          <source>International Journal of Intelligent Systems</source>
          <volume>16</volume>
          (
          <issue>3</issue>
          ) (
          <year>2001</year>
          ), pp.
          <fpage>391</fpage>
          -
          <lpage>409</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>A.</given-names>
            <surname>Preece</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Shinghal</surname>
          </string-name>
          ,
          <article-title>Foundation and Application of Knowledge Base Verification</article-title>
          ,
          <source>International Journal of Intelligent Systems</source>
          <volume>9</volume>
          (
          <year>1994</year>
          ), pp.
          <fpage>683</fpage>
          -
          <lpage>702</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>A.</given-names>
            <surname>Preece</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Shinghal</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Batarekh</surname>
          </string-name>
          ,
          <source>Principles and Practice in Verifying Rule-Based Systems, The Knowledge Engineering Review</source>
          <volume>7</volume>
          (
          <issue>2</issue>
          ) (
          <year>1992</year>
          ), pp.
          <fpage>115</fpage>
          -
          <lpage>141</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>S.</given-names>
            <surname>Ceri</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Gottlob</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Tanca</surname>
          </string-name>
          ,
          <source>Logic Programming and Databases</source>
          , Springer, Berlin,
          <year>1990</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>N.</given-names>
            <surname>Guarino</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Welty</surname>
          </string-name>
          ,
          <article-title>Evaluating Ontological Decisions with OntoClean</article-title>
          ,
          <source>Communications of the ACM</source>
          <volume>45</volume>
          (
          <issue>2</issue>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10. OWL 2:
          <string-name>
            <given-names>Web</given-names>
            <surname>Ontology</surname>
          </string-name>
          <string-name>
            <given-names>Language</given-names>
            , Document
            <surname>Overview</surname>
          </string-name>
          (Second Edition),
          <source>W3C Recommendation</source>
          , http://www.w3.org/TR/owl2-overview/ (
          <year>December 2012</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <given-names>A.</given-names>
            <surname>Pichler</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Zöllner-Weber</surname>
          </string-name>
          ,
          <article-title>Sharing and Debating Wittgenstein by Using an Ontology</article-title>
          , Wittgenstein Archives at the University of Bergen, Norway,
          <source>Literary and Linguistic Computing</source>
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>A. L. Rector</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          <string-name>
            <surname>Drummond</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Horridge</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Rogers</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          <string-name>
            <surname>Knublauch</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Stevens</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          <string-name>
            <surname>Wang</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          <string-name>
            <surname>Wroe</surname>
          </string-name>
          , OWL Pizzas:
          <article-title>Practical Experience of Teaching OWL-DL: Common Errors &amp; Common Patterns, in: Engineering Knowledge in the Age of the Semantic Web: 14th International Conference (EKAW)</article-title>
          ,
          <source>LNAI 3257</source>
          , Springer,
          <year>2004</year>
          , pp.
          <fpage>157</fpage>
          -
          <lpage>171</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>J. Wielemaker</surname>
          </string-name>
          ,
          <article-title>An Overview of the SWI-Prolog Programming Environment</article-title>
          ,
          <source>in: Proc. of the 13th International Workshop on Logic Programming Environments (WLPE)</source>
          ,
          <year>2003</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>16</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <given-names>Y.</given-names>
            <surname>Guo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Pan</surname>
          </string-name>
          ,
          <string-name>
            <surname>J. Heflin,</surname>
          </string-name>
          <article-title>LUBM: A Benchmark for OWL Knowledge Base Systems</article-title>
          ,
          <source>Journal of Web Semantics</source>
          <volume>3</volume>
          (
          <issue>2</issue>
          ) (
          <year>2005</year>
          ), pp.
          <fpage>158</fpage>
          -
          <lpage>182</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15. W3C, RDF 1.1 Turtle - W3C
          <string-name>
            <surname>Recommendation</surname>
          </string-name>
          , http://www.w3.org/TR/turtle/ (
          <year>February 2014</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16. N.
          <article-title>Zlatareva, Testing the Integrity of Non-Monotonic Knowledge Bases Containing SemiNormal Defaults</article-title>
          ,
          <source>in: Proc. of the 17th International Florida Artificial Intelligence Research Society Conference (FLAIRS)</source>
          , AAAI Press,
          <year>2004</year>
          , pp.
          <fpage>349</fpage>
          -
          <lpage>354</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17. A.
          <string-name>
            <surname>Zöllner-Weber</surname>
          </string-name>
          ,
          <article-title>Ontologies and Logic Reasoning as Tools in Humanities</article-title>
          ,
          <source>in: DHQ: Digital Humanities Quarterly</source>
          <year>2009</year>
          , Vol.
          <volume>3</volume>
          ,
          <issue>Nr</issue>
          . 4.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>