SlideShare uma empresa Scribd logo
1 de 8
Baixar para ler offline
The International Arab Journal of Information Technology, Vol. 8, No. 1, January 2011                                   1




      A Constraint Programming Based Approach to
            Detect Ontology Inconsistencies
                                        Moussa Benaissa and Yahia Lebbah
                             Faculté des Sciences, Université d’Oran Es-Senia, Algeria

Abstract: This paper proposes a constraint programming based approach to handle ontologies consistency, and more
precisely user-defined consistencies. In practice, ontologies consistency is not still well handled in the current software
environments. This is due to the algorithmic and language limitations of the tools developed to handle the consistency
constraints. The idea of this paper is to tackle this problem by exploiting constraint programming which is proved to be
efficient and provides various techniques to handle many types of constraints on different domains.

Keywords: Constraint programming, filtering, ontologies, consistency checking, ontology evolution.

                                     Received January 8, 2008; accepted May 17, 2008



1. Introduction                                                  holding both on reals and Herbrand space is very
                                                                 difficult since there are no algorithmic connections
Ontologies have been widely adopted both in                      between logic and linear programming.
academic and industrial applications. They are                      Constraint programming overcomes this limitation
entities evolving continuously. One of the main                  by allowing several constraints to be expressed on
aspects to consider during this evolution process is to          various domains. It uses existing mathematical
detect their consistencies. Consistency can be defined           techniques to process general constraints with generic
as a set of constraints that should be verified. Below,          methods. In other terms, constraint programming is
we distinguish three types of consistencies [6, 14]:             not better than other techniques, but exploits and
• Structural consistency: this consistency considers             combines them to process general constraints for
  constraints required by the underlying model of                which there are no specific techniques.
  the ontology and the representational language.                   This is exactly the purpose of this paper: how can
• Logical consistency: this consistency considers                we exploit constraint programming to handle user-
  logical constraints. Ontology must not contain                 defined consistency?       We propose a constraint
  contradictory information.                                     programming based framework for processing the
• User-defined consistency: this consistency                     constraints presented in [5].
  considers constraints defined by the user.                        The paper is organized as follows. We begin by
                                                                 motivating this work and illustrating the proposed
Here, we are concerned with user defined                         approach with an example. In section 4, we present
consistency. Ontology development environments                   user axioms classification developed in an empirical
such as Protégé [10] include tools based on first order          study [5]. Section 5 introduces constraint
logic. For example Protégé Axiom Language (PAL)                  programming and more particularly the Constraint
for Protégé enables to express consistency axioms as             Satisfaction Problems (CSP) notation and its generic
a set of axioms. The work described in [7] consists of           algorithms. In section 6, we present our contribution.
studying existing ontologies and proposing a set of              It is a constraint programming model for the
axioms templates in order to facilitate composing the            classification presented in section 4. In section 7, we
user constraints. Nevertheless, algorithmic issues of            introduce two approaches to handle consistency.
handling theses constraints are problematic.                     Next, in section 8, we provide two approaches to
   Operational research and constraint (logic)                   exploit the model elaborated in section 6. Conclusion
programming techniques provide efficient algorithms              and some perspectives conclude the paper.
which can be used to handle this problem. Except
Constraint Programming (CP), other techniques are
very specific. It is very difficult to process new               2. Motivation and Contribution
constraints with them. For example linear                        Ontologies are nowadays ubiquitous. Their number,
programming can process only linear constraints.                 their complexity and the domains they model are
Logic programming handles clauses in the Herbrand                increasing considerably. Ontology management
space [5]. However the task of processing constraints            systems should be developed to support the user.
2                                   The International Arab Journal of Information Technology, Vol. 8, No. 1, January 2011


   Ontology languages cannot capture all the                    3.1. Ontological Modeling of the Tasks
knowledge embedded in various application domains.                   Assignment Problem
So, it is necessary to extend them to make easy the
expression and the treatment of other aspects of                The above problem can be modeled with the
knowledge such as constraints. In fact, some                    following ontology as shown in Figure 1. We have
expressiveness issues have been considered by some              two concepts: T whose instances are the tasks and P
works [7], but, to our knowledge, there are no                  whose instances are enterprise employees.
efficient systems for handling large ontologies with               We have two slots: The slot can-do: this slot has P
constraints in real contexts. This complexity aspect is         and T as respectively the domain and the range. It
particularly critical in dynamic industrial applications        captures employee preferences. We represent it as
where system performance is required.                           follows:
   Our contribution consists in adopting constraint                Can-do ={(Pierre, A), (Pierre, M), (Pierre, C),
programming as the framework to process ontology                (Michel, M), (Michel, C), (Michel, D), (Corinne, A),
constraints. This is a natural extension to the current         (Corinne, M), (Julie, A),(Julie, M), (Bernard, A),
trend which uses logic programming to handle                    (Bernard, M), (Bernard, C), (Jean, O), (Jean, D),
ontology      constraints.     Actually,      constraint        (Patrice,O) ,(Patrice, D)}.
programming is recognized as the appropriate                       The slot is-realized-by: This slot has T and P as
framework for studying combinatorial problems. It               respectively the domain and the range. It represents
offers more general and powerful tools than those of            the problem solution. With cardinality constraints, we
logic programming.                                              associate the following user-defined axioms:

                                                                                              Concept : P
3. Tasks Assignment Problem
                                                                            can-do                          Is-realized-by
In order to illustrate our approach, we consider a
tasks assignment problem. We have two sets: the
tasks T and the persons P. T is defined as T = {A, M,                                       Concept : T
C, O, D}; A for Administration, M for Maintenance,
C for Commercial, O for Conception, and D for                                        Figure 1. Ontology model.
Development. The instances of P are the set {Pierre,
Michel, Corinne, Julie, Bernard, Jean, Patrice}                    The value A, of the class T, has a number of
which denotes the enterprise employees.                         occurrences ranging from 1 to 2 within the slot is-
   We aim to assign tasks to persons so that the                realized-by. And with the same manner:
following constraints are verified:                             1.   The value M ranges from 1 to 3.
• The employee must execute at least one task.                  2.   The value C ranges from 1 to 1.
• The employee cannot execute more than one task.               3.   The value O ranges from 1 to 2.
• The number of assignments of some task should                 4.   The value D ranges from 1 to 5.
  be greater than some minimal value and lower                  We can abstract the above axioms by the following
  than some maximal value. For example A[1,2]                   template: the value ___ of class __ has a minimal
  means that the task A is affected to at least one             number of occurrences equal to __ and a maximal
  person and to at most two persons. The                        number of occurrences equal to __ for the slot __.
  cardinalities constraints for the different tasks are
  A[1, 2], M[1, 3], C[1, 1], O[1, 2], and D[1, 5].              3.2. The Problem
  Let be the following preferences:
• Pierre prefers the tasks A, M and C.                          Let us suppose that some changes occur in this
• Michel prefers the tasks D, M and C.                          environment by introducing new data (e.g., new
                                                                employees, new tasks, or new constraints on
• Corinne prefers the tasks A and M.
                                                                employee preferences). It is necessary to maintain
• Julie prefers the tasks A and M.
                                                                ontology consistency after these changes. Obviously,
• Bernard prefers the tasks A, M and C.                         this task is hard to realize manually. The manager
• Jean prefers the tasks O and D.                               may not find easily the solution. The question is: how
• Patrice prefers the tasks O and D.                            can we help the manager?
A solution that verifies the above constraints is:
Pierre, Michel, Corinne, Julie, Bernard, Jean,                  3.3. The Proposed Solution
Patrice realize respectively the tasks A, M, A, M, C,           The solution we propose is based on constraint
O and D.                                                        programming. More precisely, we translate the above
                                                                ontology to a Constraint Satisfaction Problem (CSP)
A Constraint Programming Based Approach to Detect Ontology Inconsistencies                                                 3


and use filtering techniques to reduce the search                      5. Constraint Programming
space.
   The CSP is defined as follows (for the details see                  Constraint Programming (CP) is a problem solving
the following sections):                                               environment exploiting various techniques coming
                                                                       from artificial intelligence, and operational research.
• The persons are denoted as variables.                                It has been successfully applied to many problems in
• The slot can-do defines variables domains.                           various domains such as planning and scheduling. It
• The axioms template defined above can be                             is particularly efficient to solve combinatorial
  modeled with global constraints such as Global                       problems.
  Cardinality Constraint (GCC) [12]. The filtering                        Within CP, a specific framework called Constraint
  algorithm proposed in [11] determines the set of                     Satisfaction Problem (CSP) is defined. Below we
  all inconsistent values with GCC. This reduces the                   present briefly this framework and we recommend
  search space and makes easy finding a consistent                     the specialized references for further details [1, 3].
  solution.
                                                                       5.1. Definition of CSP
4. User Axioms Classification                                          Formally, a CSP P is defined as a triple (X, D, C)
The constructs of ontology languages such as                           where:
Ontology Web Language (OWL), though they cover                         • X a set of n variables x1,…, xn.
the global definition of ontological knowledge base,
                                                                       • D a set of finite domains D(x1), …, D(xn) where
do not allow the expression of some constraints
                                                                         D(xi) is the domain of the variable xi.
between different ontology components.
                                                                       • C = {C1, ..., Cm} a set of constraints defined on
      Every instance of class__ appears at least once in slot __ for     some variables. A constraint Ci is defined on a
      any instance of class __.                                          subset of variables. A solution is an assignment of
      Example: Every student has at least one advisor.                   values to the variables such that all the constraints
      Every instance of Class Student appears at least once in slot
      advice: Class Professor for any instance of Class Professor.       are satisfied.
                                                                       • For example, let be the following CSP:
               Figure 2. Example of a template.                          X = {x, y, z}
                                                                         D = {D(x), D(y), D(z)} where
   For example, constraints on roles values of the                            D(x) = D(y) = {1, 2}, D(z) = {1, 2, 3, 4}.
same class instances cannot be expressed. To                             C = {C1(x, y), C2(y, z), C3(x, z)}, where
overcome this deficiency and help the users, ontology                         C1(x, y): x ≠ y,
development environments such as Protégé [10]                                 C2(y, z): y ≠ z,
include tools, generally based on first order logic                           C3(x, z) : x + 1 ≥ z.
such as PAL (Protégé Axiom Language), to capture
these axioms.                                                          5.1.1. Solving CSPs
   However, it is pointed out [8] that these tools are
                                                                       CSP solving techniques are organized according to
not exploited and only few ontologies contain user
                                                                       the following algorithmic components: filtering,
defined axioms. The reason behind this weakness is
                                                                       exploration and enumeration. Filtering reduces the
the complexity [7] of languages underlying these
                                                                       search space induced by the CSP. Exploration
tools.
                                                                       explores intelligently the search space. Let be some
   To solve this problem, some works [7, 13] suggest
                                                                       CSP. If filtering cannot reduce the domains to a
specific user interfaces that make easy axioms
                                                                       single solution or cannot prove the non-existence of
expression without using these languages. Below we
                                                                       solutions, then the values of the variables domain are
describe briefly the approach proposed in [7] on
                                                                       enumerated.
which we have elaborated our contribution.
                                                                           The exponential complexity of this solving process
   The approach described in [7] consists of studying
                                                                       is due essentially to enumeration. Filtering has
significant existing ontologies and deriving templates
                                                                       usually a weak polynomial complexity.
from user defined axioms. About twenty templates
                                                                           More precisely [12], each constraint has a specific
that cover 85% of user defined axioms have been
                                                                       filtering algorithm. It removes, from the domains of
abstracted in this study.
                                                                       constraints variables, all the values for which some
   An environment has been developed as a plug-in
                                                                       constraint cannot be satisfied. These values are called
of the protégé environment. It consists in an interface
                                                                       non-locally consistent.
that allows the users to compose axioms by “filling in
                                                                           Arc-consistence [9] is the most used general
the blanks”. In Figure 2, we give an example of such
                                                                       property of filtering algorithms. Below, we give an
templates [7].
                                                                       informal introduction and some illustrations and we
4                                    The International Arab Journal of Information Technology, Vol. 8, No. 1, January 2011


refer the reader to specialized references [1, 3] for           Note that this definition is so general that it can
more details.                                                   consider any CSP. It is the case when Csi are all
    When a value v of some variable xi violates a               constraints of Pi-1. In fact, we suppose that only a
constraint Cj, this value cannot participate to a               portion of constraints are added or removed at each
solution; so it must be removed. We say that the                step i. (The approach described in section 7.2 can be
value v of the variable xi has no support in the                modeled with a dynamic CSP where the changes
constraint Cj, or more commonly: we say that v is not           model is known a priori. Indeed, the CSP Pi+1 results
arc-consistent. In opposite, a value v of xi, for which         from the CSP Pi by reducing the domain Di of the
we can find values in the other variables of the                variable xi to a single value vi.)
constraint Cj, is called arc-consistent. Let be the CSP
given above. We can notice that the value 1 for x has           6. CP Model for Ontologies Axioms
the support 2 in y in the constraint C1; in the same
way for 2. However, in C3, the value 4 for z has not a          We show how the axioms templates elaborated in [7]
support in C3, and then it is removed. It is the unique         can be translated to constraints within the CSP
value that must be removed with the arc-consistency             framework. This translation allows efficient
property. The arc-consistency can be verified on                algorithms developed in constraint programming to
various types of binary constraints (where each                 be used. The objective is to verify the user-defined
constraint holds on at most two variables) in a time            constraints efficiently. We propose two schemes to
weakly polynomial. There does not exist an efficient            translate axioms to CSP constraints [2].
global algorithm for n-ary constraints; however                    Below, we give some translations of some axioms
algorithms exist for specific constraints such as the           presented in [8]. The others are detailed in the
constraint of difference x1 ≠ x2 ≠ … ≠ xn.                      appendix section.
    If a value v of some variable xi leads to a solution        Scheme 1: let be the class C. We note:
for all constraints, we say that this value is globally         • I1, …, In: The instances of class C.
consistent, otherwise it is removed. Reaching the
                                                                • R1, …, Rm: The roles associated to the class C.
global consistency of some value is NP-complete. So,
                                                                • Range(Ri): The set of values associated to the role
filtering with the global consistency is naturally of
                                                                  Ri.
exponential complexity. For example in the above
CSP we see that the values 1 and 2 for z cannot be              For the role R, we consider the following
completed in x and y to form a solution, so they are            correspondence:
removed. However the value 3 finds 2 in x and 1 in
                                                                • xi corresponds to Ii, i=1...n: the instances Ii are
y.
                                                                  considered as the CSP variable xi.
    Hence, the arc-consistency filtering leads to the
following domains D(x) = D(y) = {1, 2}, D(z) = {1,              • Di = D(xi) = Range(R): The domain Di of the
2, 3}. And the global consistence filtering leads to the          variable xi is equal to the range of R.
following domains D(x) = D(y) = {1, 2}, D(z) = {1,              The user defined axioms can then be expressed as
2, 3}.                                                          CSP constraints. We give below an example.
    In the following sections, we detail how to use             Example
filtering     algorithms      to    detect     ontology         • Axiom: every instance of the class C must have a
inconsistencies.                                                  unique value for the role R.
                                                                • Corresponding CSP constraint: The axiom
5.2. Dynamic CSPs                                                 mentioned above can be expressed by the
                                                                  constraint: Alldiff(x1, …, xn) [11].
The CSP presented above is static. Its different
components (e.g., variables, domains and constraints)           Scheme2
do not change during solving. Nevertheless, in                    Let be some class C.
practice [15], this assumption is not usually verified,         • I1, …, In: The instances of class C.
particularly when we are confronted to dynamic                  • R1, …, Rm: The roles associated to the class C.
problems.                                                         We consider the following correspondence:
   The dynamic CSP model [4] has been introduced                • xi corresponds to Ri, i=1,..., m: the roles Ri are
to manage the changes occurring during solving.                   considered as CSP variable xi.
Below, we give a formal definition of dynamic CSPs.             • Di = D(xi) = Range(Ri): the domain D(xi) of the
Definition [15], a Dynamic CSP (DCSP) is a                        variable xi is equal to the range of Ri.
sequence (P1, P2, …, Pn) where for each i ∈ 1 .. n:
• Pi = (X, D, Ci) denotes a CSP.                                The user defined axioms can then be expressed as the
                                                                CSP constraints. We give below an example.
• Cai denotes a set of added constraints.
• Csi denotes a set of removed constraints.
• Csi ⊆ Ci-1 and Ci = Ci-1 + Cai - Csi.
A Constraint Programming Based Approach to Detect Ontology Inconsistencies                                                   5


Example                                                       8.1. Systematic Approach
•   Axiom: for every instance of the class C the roles        This approach consists in generating, a priori, all
    Ri and Rj cannot have the same value.                     inconsistent values with ontology constraints. This
•   Corresponding CSP constraint: The axiom                   set will be exploited to analyze the user input. Below,
    mentioned above can be expressed by the                   we describe the system architecture and the
    constraint xi ≠ xj.                                       inconsistency checking process.

7. Processing the Constraints                                 8.1.1. System Architecture

Let be a CSP modeling axioms coming from the                  The proposed system contains                    the    following
scheme of some ontology. In order to detect                   components as shown in Figure 3.
inconsistent values we propose two approaches:                1. The EZPAL interface: this interface is developed
1. An incomplete approach: in this approach, the                 by [7] as a plug-in in the Protégé editor. It allows
   filtering algorithms associated to the constraints            the user introducing his axioms simply by
   are executed iteratively until all constraints are            instantiating predefined templates. The axioms are
   locally consistent. This process detects and                  then stored in axioms base.
   computes all values of the variables that are              2. The translator: this component translates the
   locally inconsistent with each constraint                     axioms in CSP Constraints. It uses the
   separately. Obviously, this procedure does not                transformation base and generates the CSP
   detect the global inconsistencies, i.e. the                   constraints.
   inconsistencies concerning all the constraints             3. Inconsistent values generator: this component
   simultaneously.                                               executes a set of filtering algorithms developed in
2. A complete approach: in this approach we proceed              constraint programming. It generates all the
   with two phases. The first phase consists in                  inconsistent values with CSP constraints generated
   applying a global solving algorithm to find all               by the translator.
   solutions. The second one examines the solutions           4. Inconsistency checker: this component uses the
   set and detects the globally inconsistent values.             inconsistent values base generated above and
                                                                 generates all the inconsistent values in the user
Obviously, the complete approach is the ideal one as             data flow. A feedback is returned to the user.
it detects all the inconsistencies. However, it is
computationally very expensive because of its NP-             8.1.2. The Process of Consistency Checking
Hard nature. Here, the enumeration is forced by the
guarantee that all values lead to solutions.                  The process of consistency checking proposed here
   The incomplete approach, due to its low                    can be divided into two phases as shown in Figure 3.
complexity, can be a reasonable approach as it
enables finding inconsistencies as the user fixes the                                          User                  Input
ontology variables without, however, ensuring that                       Interface
these values lead to solutions.                                         EZPAL                     Inconsistent
   In the following, we propose architectures to                                              values generator.
integrate CP in inconsistencies detection. In practice,
                                                                         Axioms
we can use the complete approach if it is not                             Base                        Inconsistent
computationally very expensive; otherwise we opt for                                                  values base
the incomplete one.
                                                                         Translato
                                                                                                        Transformation
8. Consistent Handling of Changes                                                                            Base
                                                                          CSP
In this section we propose two approaches to support                    Constraints          Consistency
the user in managing consistently the ontology                                                checker
changes. These approaches go beyond the simple
detection of inconsistencies. They offer user means
                                                                                                 Inconsistent
ensuring the ontology evolution towards a consistent
                                                                                                    values
state. In the first approach, qualified with systematic,
we describe the system architecture. For the second
                                                                             Figure 3. Specification of the environment.
approach, qualified with interactive, we propose an
interaction model between a user and a CP solver.               Phase 1: the ultimate objective of this phase is to
This interaction leads to the final consistent ontology.      generate inconsistent values that enable detection of
6                                       The International Arab Journal of Information Technology, Vol. 8, No. 1, January 2011


inconsistent values in the user data flow introduced in            8.2.1. The Interaction Model
phase 2. This phase can be divided into two steps:
                                                                   Let be a CSP of n variables, the interaction model
• Step 1: CSP constraints generation. The user                     consists of a succession of n cycles. Each cycle
  composes his axioms by instantiating appropriate                 consists of two successive phases described below.
  templates. He uses the EZPAL interface [7]. Then,                   Phase 1: the user sends a message to the solver.
  these axioms are transformed into CSP constraints                This message consists of a request. The purpose of
  by the translator.                                               the request is the computation of all values of xi
• Step 2: inconsistent values generation. The values               domain, Di, that are consistent with the constraint C.
  that violate the CSP constraints, developed in the                  At this level the request embodies the following
  previous step, are generated. At this level, the                 information:
  filtering algorithms generate efficiently, a priori,             • The domains D1, …, Di-1 reduced to values v1, …,
  all the values inconsistent with CSP constraints                   vi-1 determined in previous cycles.
  generated in step 1 above.
                                                                   • Di, …, Dn as defined in the initial CSP.
Phase 2: The ultimate objective of this phase is to
                                                                   Phase 2: The solver sends a message to the user,
detect the inconsistent values introduced in the user
                                                                   which consists in an answer to the request formulated
data flow. This phase can be divided into two steps:
                                                                   in Phase 1. The solver computes the set Ei (the set of
• Step 1: formulation of the user request. The user                all values of the variable xi belonging to Di that are
  request is assumed here to be of high complexity,                consistent with the constraint C) which is transmitted
  in the sense that it contains a significant amount of            to the user.
  data:
                                                                   • In Phase 1 of cycle 1, the CSP transmitted is the
• The different classes to be modified.                              initial one.
• For every class, the different instances values for              • The end of interaction occurs when the user sends
    different roles. This information can be new, for                an end message to the solver.
    instance, when adding instances or updating
                                                                   • At the end of each cycle, the user selects a value
    data.
                                                                     from the set returned by the solver and restarts the
• Step 2: Inconsistency detection. The inconsistency                 following cycle.
  checker detects all the inconsistent values
  introduced in the user data flow in step 1 of phase
  2 mentioned above. For this purpose, it uses the                 8.3. Comparison
  inconsistent values base.                                        The interactive       approach    has    the   following
The inconsistent values set are then returned to the               advantages:
user as a system feedback.                                         1. The performance of filtering algorithms developed
                                                                      in constraint programming enables a real time
8.2. Interactive Approach                                             interaction.
                                                                   2. Interaction between the user and the solver
We give the interaction model between the user and a                  converges to a consistent ontology.
CP solver. This interaction has the particularity of               3. The interaction model makes easy to the user
conducting to a final consistent state as shown in                    selecting the affected value.
Figure 4.
          User                                         Solver      In the other hand, the systematic approach has the
                  ({x1,…,xn}, {D(x1),…,D(xn)}, C)                  advantage of reducing the search space to only
                                                                   consistent values. This allows the user managing
                                  E1                               consistently the ontology changes. However, this
                                                                   approach requires also user intervention.
              ({x1,…,xn}, {D(x1)={v1},D(x2),…,D(xn)}, C)

                                                                   9. Conclusions and Perspectives
                                   Ei
                                                                   In this paper we showed that constraint programming
        ({x1,…,xn}, {D(x1)={v1},…,D(xi),={vi},…,,D(xn)}, C)        can really serve ontologies consistency management.
                                                                   More precisely, filtering algorithms developed in
                                                                   constraint programming can contribute efficiently to
                                   En                              the ontology user defined consistency checking. We
                              Dialogue end.                        proposed a translation model of axioms to constraints
                                                                   which is the core of an environment for supporting
                   Figure 4 . Dialogue model.                      the user in managing consistently the ontology
                                                                   changes.
A Constraint Programming Based Approach to Detect Ontology Inconsistencies                                       7


   Large CSPs (with many variables), however,                      Habilitation à Diriger des Recherches,
should be generated by the system. This is the main                Université de Nice Sophia Antipolis, 2004.
limit of the approach presented here. We are                  [13] Staab S. and Maedeche A., “Axioms are
considering this issue by studying the boundary upon               Objects too Ontology Engineering Beyond the
which the dialogue model will be hardly practicable.               Modelling of Concepts and Relations,” in
   The first perspective of this work is to implement              Proceedings of The 14th Electronic Cultural
our framework as a Protégé plug-in. In fact, the                   Atlas Initiative, Workshop on Ontologies and
system is under development. The second perspective                Problem Solving Methods, Berlin, pp. 159-163,
is to consider more general axioms not mentioned in                2000.
[7].                                                          [14] Stojanovic L., “Methods and Tools for
   The system presented here is built upon axioms                  Ontology Evolution,” PHD Thesis, University
which are abstractions of constraints expressed in                 of Karlshue, 2004.
much significant ontologies belonging to various              [15] Verfaillie G. and Jussien N., “Constraint
domains. Hence, the system applications range is                   Solving     in    Uncertain      and    Dynamic
large: bioinformatics, management, etc., It can be                 Environment a Survey,” Computer Journal of
plugged in every ontology management system.                       Constraints, vol. 10, no. 3, pp. 253-281, 2005.

References
[1]   Apt K., Principles of Constraint Programming,                             Moussa Benaissa received his
     Cambridge University Press, 2003.                                          engineering degree and his Master
[2] Beldiceanu N., Carlson M., Demassey S., and                                 degree in computer science from
     Petit T., “Global Constraints Catalog: Past,                               the University of Es-Senia Oran,
     Present and Future,” Computer Journal of                                   Algeria, in 1988 and 1992,
     Constraints, vol. 12, no. 1, pp. 21-62, 2007.                              respectively. He is actually a
[3] Dechter R., Constraint Processing, Morgan                                   lecturer at University of Oran Es-
     Kaufmann Press, 2003.                                    Senia. His research interest includes e-learning,
[4] Dechter R. and Dechter A., “Belief                        ontologies, and constraint programming.
     Maintenance        in     Dynamic       Constraint
     Networks,” in Proceedings of 7th National                                  Yahia Lebbah received his
     Conference on Artificial Intelligence, USA, pp.                            engineering degree in 1995 from
     37-42, 1988.                                                               the University of Es-Senia Oran,
[5] Fages J., Programmation Logique et Par                                      Algeria, and his MS degree in 1996,
     Contraintes, Ellipses Presse, 1996.                                        from the University of Paris 13, and
[6] Haase P. and           Stojanovic L., “Consistent                           PhD degree in 1999 from Ecole des
     Evolution of OWL Ontologies,” Lecture Notes                                Mines de Nantes, France. All
     in Computer Science, 2005.                               degrees are in computer science. He is currently a
[7] Hou J., Musen A., and Noy F., “EZPAL:                     professor in the Computer Science Department at the
     Environment for Composing Constraint                     University of Es-Senia Oran, Algeria.
     Axioms        by     Instantiating    Templates,”
     International Journal of Human Computer
     Studies, vol. 62, no. 5, pp. 578-596, 2005.              Appendix
[8] Hou J., Noy F., and Musen A., “A Template-
                                                              C denotes some class. I denotes an instance. R
     Based Approach Toward Acquisition of Logical
                                                              denotes a slot.
     Sentences,” in Proceedings of the Conference
                                                              Axiom 1. Every instance of class C must have a
     of     Intelligent     Information     Processing
                                                                  unique value in slot R.
     Montréal, Canada, pp. 25-28, 2002.
                                                                 Constraint: ∀ I1, I2 ∈ C, R(I1) ≠ R(I2).
[9] Mackworth A., “Consistency in Networks of
                                                              Axiom 2. For every instance of class C, slots Ri and
     Relations,” Computer Journal of Artificial
                                                                  Rj cannot have the same value.
     Intelligence, vol. 8, no. 1, pp. 99-118, 1997.
[10] The Protégé Project, http://protege.stanford.edu.            Constraint: ∀ I ∈ C, Ri(I) ≠ Rj.
[11] Régin C., “A Filtering Algorithm for                     Axiom 3. At least one instance of class C contains
     Constraints      of      Difference     Constraint           value v in slot R.
     Satisfaction Problems,” in Proceedings of                Constraint: ∃ I ∈ C, v ∈ R(I).
     Association for the Advancement of Artificial            Axiom 4. If an instance of class C contains value v1
     Intelligence, USA, pp. 362-367, 1994.                        in slot Ri it must contain value v2 in slot Rj.
[12] Régin C., “Modélisation et Contraintes                       Constraint: ∀ I ∈ C, v ∈ Ri(I) ⇒ v2 ∈ Rj(I).
     Globales en Programmation Par Contraintes,”
8                                     The International Arab Journal of Information Technology, Vol. 8, No. 1, January 2011


Axiom 5. Every instance of class C1 appears at least                  contains I2 in slot Rj of class C3.
    once in slot R of any instance of Class C2.                       Constraint: ∀ I1 ∈ C1, Ri(I1) = I2 ⇒ ∃ I3 ∈ C3, I2
    Constraint: ∀ I1 ∈ C1, I1 ∈ R(C2).                                ∈ Rj(I3).
Axiom 6. For every instance of class C, value of slot            Axiom 18.         For every instance I1 of class C1, if
    Ri is > (or =, <), than the value of slot Rj.                     the value of slot Ri is an instance I2 of class C2,
    Constraint: ∀ I ∈ C, Ri(I) op Rj(I) where op ∈                    then there is an instance I3 of class C3 that
    {>, =, <}.                                                        contain I1 in slot R1 and I2 in slot R2.
Axiom 7. For every instance of class C, slot Ri and                   Constraint: ∀ I1 ∈ C1, Ri(I1) = I2 ⇒ ∃I3 ∈ C3,
    slot Rj must have instances of the same class.                    Rj(I3) = I1, R2(I3) = I2.
    Constraint: ∀ I ∈ C, ∃ C1, Ri(I) ∈ C1 and Rj(I) ∈            Axiom 19.         For every instance I1 of class C1, if
    C1.                                                               the value of slot Ri has an instance I2 of class
Axiom 8. For every instance I1 of class C1, there                     C2, then slot R1 of I1 has value > (or =,<) than
    must be an instance I2 of class C2 which contains                 value of slot R2 of I2.
    I1 in R.                                                         Constraint: ∀ I1 ∈ C1, Ri(I1) = I2 ⇒ R1(I1) op
    Constraint: ∀ I1 ∈ C1, ∃ I2 ∈ C2, I1 ∈ R(I2).                R2(I2) where op ∈ {>, = >}.
Axiom 9. Every instance of class C that shares the               Axiom 20.         If an instance I1 of class C1 has
    same value in slot Ri can not (resp. must) have                   instance I2 of class C2 in slot R1 of I1 and I2 of
    identical            values           in           Rj.            class C2 has instance I3 of class C3 in slot R2 of I2
    Constraint: ∀ I1, I2 ∈ C, Ri(I1) = Ri(I2) ⇒ Rj(I1)                then I3 must (resp. cannot) have I1 in slot R3.
    ≠ Rj(I2) (resp. ∀ I1, I2 ∈ C, Ri(I1) = Ri(I2) ⇒                   Constraint: R1(I1) = I2 and R2(I2) = I3 ⇒ R3(I3) =
    Rj(I1) = Rj(I2)).                                                 I1 (resp. R2(I2) = I3 ⇒ R3(I3) ≠ I1).
Axiom 10.        For every instance of class C1, value           Axiom 21.         For every instance I1 of class C1, if
    of slot Ri must also be a value of slot Rj of an                  the value of slot R1 has an instance I2 of class C2,
    instance of class C2.                                             then if slot R1 of I1 has value v1 slot R2 of I2 has
    Constraint: ∀ I1 ∈ C1, ∃ I2 ∈ C2, Ri(I1) = Rj(I2).                value v2.
Axiom 11.        For every instances of class C slot Ri              Constraint: ∀ I1 ∈ C1, Ri(I1) = I2 ⇒ (R1(I1) = v1
    cannot contain both instances of class C2 and                    ⇒ R2(I2) = v2).
    class C3.                                                    Axiom 22.         Every instance I1 of class C1 which
    Constraint: ∀ I ∈ C, R(I) ∉ C2 ∩ C3.                              contains value v in slot R1 must have values in
Axiom 12.        For every instance I1 of class C1 if the             slot R2 which are instances of class C2.
    value of slot Ri is an instance I2 of class C2, they              Constraint: ∀ I1 ∈ C1, v ∈ R1(I1) ⇒ R2(I1) ∈ C2.
    must share the same value in slot Rj for I1 and
    slot Rk for I2.
   Constraint: ∀ I1 ∈ C1, Ri(I1) = I2 ⇒ Rj(I1) =
   Rk(I2).
Axiom 13.        For every instance I1 of class C1 slot
    Ri must have values that are instances of classes
    specified by slot Rj of class C2.
    Constraint: ∀ I1 ∈ C1, Ri(I1) ∈ Rj(C2).
Axiom 14.        If an instance I1 of class C1 has slot Ri
    that contains value v then I2 of class C2 cannot
    (resp. must) contain I1 in slot Rj.
    Constraint: ∀ I1 ∈ C1, Ri(I1) = I2 ⇒ I1 ∉ Rj(I2)
    (resp. ∀ I1 ∈ C1, Ri(I1) = I2 ⇒ I1 ∈ Rj(I2)).
Axiom 15.        Every instance of class C1, which has
    a value in slot Ri > (or =, <) than every (resp. at
    least one) value of slot Rj of class C2.
    Constraint: ∀ I1 ∈ C1, ∀ I2 ∈ C2, Ri(I1) op Rj(I2)
    (resp. ∀ I1 ∈ C1, ∃ I2 ∈ C2, Ri(I1) op Rj(I2)) where
    op ∈ {>, =, <}.
Axiom 16.        For every instance I1 of class C1, if
    the value of slot Ri has an instance I2 of class C2,
    I2 must have value v in slot Rj.
    Constraint: ∀ I1 ∈ C1, Ri(I1) = I2 ⇒ Rj(I1) = v.
Axiom 17.        For every instance I1 of class C1, if
    the value of slot Ri has an instance I2 of class C2,
    then there is an instance I3 of class C3 that

Mais conteúdo relacionado

Mais procurados

Comparing human solving time with SAT-solving for Sudoku problems
Comparing human solving time with SAT-solving for Sudoku problemsComparing human solving time with SAT-solving for Sudoku problems
Comparing human solving time with SAT-solving for Sudoku problemsTimdeBoer16
 
Progressive learning and Disentanglement of hierarchical representations
Progressive learning and Disentanglement of hierarchical representationsProgressive learning and Disentanglement of hierarchical representations
Progressive learning and Disentanglement of hierarchical representationsSeunghyun Hwang
 
Presentation v2
Presentation v2Presentation v2
Presentation v2MehrnooshV
 
IRJET-In sequence Polemical Pertinence via Soft Enumerating Repertoire
IRJET-In sequence Polemical Pertinence via Soft Enumerating RepertoireIRJET-In sequence Polemical Pertinence via Soft Enumerating Repertoire
IRJET-In sequence Polemical Pertinence via Soft Enumerating RepertoireIRJET Journal
 
Seminar_Koga_Yuki_v2.pdf
Seminar_Koga_Yuki_v2.pdfSeminar_Koga_Yuki_v2.pdf
Seminar_Koga_Yuki_v2.pdfIkedaYuki
 
352735344 rsh-qam11-tif-10-doc
352735344 rsh-qam11-tif-10-doc352735344 rsh-qam11-tif-10-doc
352735344 rsh-qam11-tif-10-docFiras Husseini
 
Capital Investment Industrial Modeling Framework - IMPRESS
Capital Investment Industrial Modeling Framework - IMPRESSCapital Investment Industrial Modeling Framework - IMPRESS
Capital Investment Industrial Modeling Framework - IMPRESSAlkis Vazacopoulos
 
A SURVEY ON USER MODELING IN HCI
A SURVEY ON USER MODELING IN HCIA SURVEY ON USER MODELING IN HCI
A SURVEY ON USER MODELING IN HCIcaijjournal
 
Chapter 7 basics of computational thinking
Chapter 7 basics of computational thinkingChapter 7 basics of computational thinking
Chapter 7 basics of computational thinkingPraveen M Jigajinni
 
Genetic Approach to Parallel Scheduling
Genetic Approach to Parallel SchedulingGenetic Approach to Parallel Scheduling
Genetic Approach to Parallel SchedulingIOSR Journals
 

Mais procurados (13)

Comparing human solving time with SAT-solving for Sudoku problems
Comparing human solving time with SAT-solving for Sudoku problemsComparing human solving time with SAT-solving for Sudoku problems
Comparing human solving time with SAT-solving for Sudoku problems
 
Machine Translation of Discontinuous Multiword Units
Machine Translation of Discontinuous Multiword UnitsMachine Translation of Discontinuous Multiword Units
Machine Translation of Discontinuous Multiword Units
 
50120140504022
5012014050402250120140504022
50120140504022
 
PB ITC
PB ITCPB ITC
PB ITC
 
Progressive learning and Disentanglement of hierarchical representations
Progressive learning and Disentanglement of hierarchical representationsProgressive learning and Disentanglement of hierarchical representations
Progressive learning and Disentanglement of hierarchical representations
 
Presentation v2
Presentation v2Presentation v2
Presentation v2
 
IRJET-In sequence Polemical Pertinence via Soft Enumerating Repertoire
IRJET-In sequence Polemical Pertinence via Soft Enumerating RepertoireIRJET-In sequence Polemical Pertinence via Soft Enumerating Repertoire
IRJET-In sequence Polemical Pertinence via Soft Enumerating Repertoire
 
Seminar_Koga_Yuki_v2.pdf
Seminar_Koga_Yuki_v2.pdfSeminar_Koga_Yuki_v2.pdf
Seminar_Koga_Yuki_v2.pdf
 
352735344 rsh-qam11-tif-10-doc
352735344 rsh-qam11-tif-10-doc352735344 rsh-qam11-tif-10-doc
352735344 rsh-qam11-tif-10-doc
 
Capital Investment Industrial Modeling Framework - IMPRESS
Capital Investment Industrial Modeling Framework - IMPRESSCapital Investment Industrial Modeling Framework - IMPRESS
Capital Investment Industrial Modeling Framework - IMPRESS
 
A SURVEY ON USER MODELING IN HCI
A SURVEY ON USER MODELING IN HCIA SURVEY ON USER MODELING IN HCI
A SURVEY ON USER MODELING IN HCI
 
Chapter 7 basics of computational thinking
Chapter 7 basics of computational thinkingChapter 7 basics of computational thinking
Chapter 7 basics of computational thinking
 
Genetic Approach to Parallel Scheduling
Genetic Approach to Parallel SchedulingGenetic Approach to Parallel Scheduling
Genetic Approach to Parallel Scheduling
 

Semelhante a A constraint programming based approach to

A_multi-objective_set_covering_problem_A_case_stud.pdf
A_multi-objective_set_covering_problem_A_case_stud.pdfA_multi-objective_set_covering_problem_A_case_stud.pdf
A_multi-objective_set_covering_problem_A_case_stud.pdfappaji nayak
 
Proposal of an Ontology Applied to Technical Debt on PL/SQL Development
Proposal of an Ontology Applied to Technical Debt on PL/SQL DevelopmentProposal of an Ontology Applied to Technical Debt on PL/SQL Development
Proposal of an Ontology Applied to Technical Debt on PL/SQL DevelopmentJorge Barreto
 
Nonlinear Programming: Theories and Algorithms of Some Unconstrained Optimiza...
Nonlinear Programming: Theories and Algorithms of Some Unconstrained Optimiza...Nonlinear Programming: Theories and Algorithms of Some Unconstrained Optimiza...
Nonlinear Programming: Theories and Algorithms of Some Unconstrained Optimiza...Dr. Amarjeet Singh
 
An Ontology For Building A Conceptual Problem Solving Model
An Ontology For Building A Conceptual Problem Solving ModelAn Ontology For Building A Conceptual Problem Solving Model
An Ontology For Building A Conceptual Problem Solving ModelAmy Isleb
 
A Decomposition Technique For Solving Integer Programming Problems
A Decomposition Technique For Solving Integer Programming ProblemsA Decomposition Technique For Solving Integer Programming Problems
A Decomposition Technique For Solving Integer Programming ProblemsCarrie Romero
 
#2. Limitations of Operation Research.pdf
#2. Limitations of Operation Research.pdf#2. Limitations of Operation Research.pdf
#2. Limitations of Operation Research.pdfbizuayehuadmasu1
 
Re2018 Semios for Requirements
Re2018 Semios for RequirementsRe2018 Semios for Requirements
Re2018 Semios for RequirementsClément Portet
 
A NATURAL LANGUAGE REQUIREMENTS ENGINEERING APPROACH FOR MDA
A NATURAL LANGUAGE REQUIREMENTS ENGINEERING APPROACH FOR MDA A NATURAL LANGUAGE REQUIREMENTS ENGINEERING APPROACH FOR MDA
A NATURAL LANGUAGE REQUIREMENTS ENGINEERING APPROACH FOR MDA IJCSEA Journal
 
A NATURAL LANGUAGE REQUIREMENTS ENGINEERING APPROACH FOR MDA
A NATURAL LANGUAGE REQUIREMENTS ENGINEERING APPROACH FOR MDA A NATURAL LANGUAGE REQUIREMENTS ENGINEERING APPROACH FOR MDA
A NATURAL LANGUAGE REQUIREMENTS ENGINEERING APPROACH FOR MDA IJCSEA Journal
 
A Natural Language Requirements Engineering Approach for MDA
A Natural Language Requirements Engineering Approach for MDAA Natural Language Requirements Engineering Approach for MDA
A Natural Language Requirements Engineering Approach for MDAIJCSEA Journal
 
A natural language requirements engineering approach for mda
A natural language requirements engineering approach for mdaA natural language requirements engineering approach for mda
A natural language requirements engineering approach for mdaIJCSEA Journal
 
A NATURAL LANGUAGE REQUIREMENTS ENGINEERING APPROACH FOR MDA
A NATURAL LANGUAGE REQUIREMENTS ENGINEERING APPROACH FOR MDA A NATURAL LANGUAGE REQUIREMENTS ENGINEERING APPROACH FOR MDA
A NATURAL LANGUAGE REQUIREMENTS ENGINEERING APPROACH FOR MDA IJCSEA Journal
 
Application of Linear Programming to Profit Maximization (A Case Study of.pdf
Application of Linear Programming to Profit Maximization (A Case Study of.pdfApplication of Linear Programming to Profit Maximization (A Case Study of.pdf
Application of Linear Programming to Profit Maximization (A Case Study of.pdfBrittany Allen
 
Mc0083 object oriented analysis & design using uml
Mc0083 object oriented analysis & design using umlMc0083 object oriented analysis & design using uml
Mc0083 object oriented analysis & design using umlsmumbahelp
 
Concurrency Issues in Object-Oriented Modeling
Concurrency Issues in Object-Oriented ModelingConcurrency Issues in Object-Oriented Modeling
Concurrency Issues in Object-Oriented ModelingIRJET Journal
 
An Integrated Solver For Optimization Problems
An Integrated Solver For Optimization ProblemsAn Integrated Solver For Optimization Problems
An Integrated Solver For Optimization ProblemsMonica Waters
 
Csc 102 lecture note(introduction to problem solving)
Csc 102 lecture note(introduction to problem solving)Csc 102 lecture note(introduction to problem solving)
Csc 102 lecture note(introduction to problem solving)Christopher Chizoba
 
A Framework For Unifying Problem-Solving Knowledge And Workflow Modelling
A Framework For Unifying Problem-Solving Knowledge And Workflow ModellingA Framework For Unifying Problem-Solving Knowledge And Workflow Modelling
A Framework For Unifying Problem-Solving Knowledge And Workflow ModellingAndrew Parish
 
A Framework For Unifying Problem-Solving Knowledge And Workflow Modeling
A Framework For Unifying Problem-Solving Knowledge And Workflow ModelingA Framework For Unifying Problem-Solving Knowledge And Workflow Modeling
A Framework For Unifying Problem-Solving Knowledge And Workflow ModelingLinda Garcia
 
11-miwai10_submission_12
11-miwai10_submission_1211-miwai10_submission_12
11-miwai10_submission_12Long Tran
 

Semelhante a A constraint programming based approach to (20)

A_multi-objective_set_covering_problem_A_case_stud.pdf
A_multi-objective_set_covering_problem_A_case_stud.pdfA_multi-objective_set_covering_problem_A_case_stud.pdf
A_multi-objective_set_covering_problem_A_case_stud.pdf
 
Proposal of an Ontology Applied to Technical Debt on PL/SQL Development
Proposal of an Ontology Applied to Technical Debt on PL/SQL DevelopmentProposal of an Ontology Applied to Technical Debt on PL/SQL Development
Proposal of an Ontology Applied to Technical Debt on PL/SQL Development
 
Nonlinear Programming: Theories and Algorithms of Some Unconstrained Optimiza...
Nonlinear Programming: Theories and Algorithms of Some Unconstrained Optimiza...Nonlinear Programming: Theories and Algorithms of Some Unconstrained Optimiza...
Nonlinear Programming: Theories and Algorithms of Some Unconstrained Optimiza...
 
An Ontology For Building A Conceptual Problem Solving Model
An Ontology For Building A Conceptual Problem Solving ModelAn Ontology For Building A Conceptual Problem Solving Model
An Ontology For Building A Conceptual Problem Solving Model
 
A Decomposition Technique For Solving Integer Programming Problems
A Decomposition Technique For Solving Integer Programming ProblemsA Decomposition Technique For Solving Integer Programming Problems
A Decomposition Technique For Solving Integer Programming Problems
 
#2. Limitations of Operation Research.pdf
#2. Limitations of Operation Research.pdf#2. Limitations of Operation Research.pdf
#2. Limitations of Operation Research.pdf
 
Re2018 Semios for Requirements
Re2018 Semios for RequirementsRe2018 Semios for Requirements
Re2018 Semios for Requirements
 
A NATURAL LANGUAGE REQUIREMENTS ENGINEERING APPROACH FOR MDA
A NATURAL LANGUAGE REQUIREMENTS ENGINEERING APPROACH FOR MDA A NATURAL LANGUAGE REQUIREMENTS ENGINEERING APPROACH FOR MDA
A NATURAL LANGUAGE REQUIREMENTS ENGINEERING APPROACH FOR MDA
 
A NATURAL LANGUAGE REQUIREMENTS ENGINEERING APPROACH FOR MDA
A NATURAL LANGUAGE REQUIREMENTS ENGINEERING APPROACH FOR MDA A NATURAL LANGUAGE REQUIREMENTS ENGINEERING APPROACH FOR MDA
A NATURAL LANGUAGE REQUIREMENTS ENGINEERING APPROACH FOR MDA
 
A Natural Language Requirements Engineering Approach for MDA
A Natural Language Requirements Engineering Approach for MDAA Natural Language Requirements Engineering Approach for MDA
A Natural Language Requirements Engineering Approach for MDA
 
A natural language requirements engineering approach for mda
A natural language requirements engineering approach for mdaA natural language requirements engineering approach for mda
A natural language requirements engineering approach for mda
 
A NATURAL LANGUAGE REQUIREMENTS ENGINEERING APPROACH FOR MDA
A NATURAL LANGUAGE REQUIREMENTS ENGINEERING APPROACH FOR MDA A NATURAL LANGUAGE REQUIREMENTS ENGINEERING APPROACH FOR MDA
A NATURAL LANGUAGE REQUIREMENTS ENGINEERING APPROACH FOR MDA
 
Application of Linear Programming to Profit Maximization (A Case Study of.pdf
Application of Linear Programming to Profit Maximization (A Case Study of.pdfApplication of Linear Programming to Profit Maximization (A Case Study of.pdf
Application of Linear Programming to Profit Maximization (A Case Study of.pdf
 
Mc0083 object oriented analysis & design using uml
Mc0083 object oriented analysis & design using umlMc0083 object oriented analysis & design using uml
Mc0083 object oriented analysis & design using uml
 
Concurrency Issues in Object-Oriented Modeling
Concurrency Issues in Object-Oriented ModelingConcurrency Issues in Object-Oriented Modeling
Concurrency Issues in Object-Oriented Modeling
 
An Integrated Solver For Optimization Problems
An Integrated Solver For Optimization ProblemsAn Integrated Solver For Optimization Problems
An Integrated Solver For Optimization Problems
 
Csc 102 lecture note(introduction to problem solving)
Csc 102 lecture note(introduction to problem solving)Csc 102 lecture note(introduction to problem solving)
Csc 102 lecture note(introduction to problem solving)
 
A Framework For Unifying Problem-Solving Knowledge And Workflow Modelling
A Framework For Unifying Problem-Solving Knowledge And Workflow ModellingA Framework For Unifying Problem-Solving Knowledge And Workflow Modelling
A Framework For Unifying Problem-Solving Knowledge And Workflow Modelling
 
A Framework For Unifying Problem-Solving Knowledge And Workflow Modeling
A Framework For Unifying Problem-Solving Knowledge And Workflow ModelingA Framework For Unifying Problem-Solving Knowledge And Workflow Modeling
A Framework For Unifying Problem-Solving Knowledge And Workflow Modeling
 
11-miwai10_submission_12
11-miwai10_submission_1211-miwai10_submission_12
11-miwai10_submission_12
 

A constraint programming based approach to

  • 1. The International Arab Journal of Information Technology, Vol. 8, No. 1, January 2011 1 A Constraint Programming Based Approach to Detect Ontology Inconsistencies Moussa Benaissa and Yahia Lebbah Faculté des Sciences, Université d’Oran Es-Senia, Algeria Abstract: This paper proposes a constraint programming based approach to handle ontologies consistency, and more precisely user-defined consistencies. In practice, ontologies consistency is not still well handled in the current software environments. This is due to the algorithmic and language limitations of the tools developed to handle the consistency constraints. The idea of this paper is to tackle this problem by exploiting constraint programming which is proved to be efficient and provides various techniques to handle many types of constraints on different domains. Keywords: Constraint programming, filtering, ontologies, consistency checking, ontology evolution. Received January 8, 2008; accepted May 17, 2008 1. Introduction holding both on reals and Herbrand space is very difficult since there are no algorithmic connections Ontologies have been widely adopted both in between logic and linear programming. academic and industrial applications. They are Constraint programming overcomes this limitation entities evolving continuously. One of the main by allowing several constraints to be expressed on aspects to consider during this evolution process is to various domains. It uses existing mathematical detect their consistencies. Consistency can be defined techniques to process general constraints with generic as a set of constraints that should be verified. Below, methods. In other terms, constraint programming is we distinguish three types of consistencies [6, 14]: not better than other techniques, but exploits and • Structural consistency: this consistency considers combines them to process general constraints for constraints required by the underlying model of which there are no specific techniques. the ontology and the representational language. This is exactly the purpose of this paper: how can • Logical consistency: this consistency considers we exploit constraint programming to handle user- logical constraints. Ontology must not contain defined consistency? We propose a constraint contradictory information. programming based framework for processing the • User-defined consistency: this consistency constraints presented in [5]. considers constraints defined by the user. The paper is organized as follows. We begin by motivating this work and illustrating the proposed Here, we are concerned with user defined approach with an example. In section 4, we present consistency. Ontology development environments user axioms classification developed in an empirical such as Protégé [10] include tools based on first order study [5]. Section 5 introduces constraint logic. For example Protégé Axiom Language (PAL) programming and more particularly the Constraint for Protégé enables to express consistency axioms as Satisfaction Problems (CSP) notation and its generic a set of axioms. The work described in [7] consists of algorithms. In section 6, we present our contribution. studying existing ontologies and proposing a set of It is a constraint programming model for the axioms templates in order to facilitate composing the classification presented in section 4. In section 7, we user constraints. Nevertheless, algorithmic issues of introduce two approaches to handle consistency. handling theses constraints are problematic. Next, in section 8, we provide two approaches to Operational research and constraint (logic) exploit the model elaborated in section 6. Conclusion programming techniques provide efficient algorithms and some perspectives conclude the paper. which can be used to handle this problem. Except Constraint Programming (CP), other techniques are very specific. It is very difficult to process new 2. Motivation and Contribution constraints with them. For example linear Ontologies are nowadays ubiquitous. Their number, programming can process only linear constraints. their complexity and the domains they model are Logic programming handles clauses in the Herbrand increasing considerably. Ontology management space [5]. However the task of processing constraints systems should be developed to support the user.
  • 2. 2 The International Arab Journal of Information Technology, Vol. 8, No. 1, January 2011 Ontology languages cannot capture all the 3.1. Ontological Modeling of the Tasks knowledge embedded in various application domains. Assignment Problem So, it is necessary to extend them to make easy the expression and the treatment of other aspects of The above problem can be modeled with the knowledge such as constraints. In fact, some following ontology as shown in Figure 1. We have expressiveness issues have been considered by some two concepts: T whose instances are the tasks and P works [7], but, to our knowledge, there are no whose instances are enterprise employees. efficient systems for handling large ontologies with We have two slots: The slot can-do: this slot has P constraints in real contexts. This complexity aspect is and T as respectively the domain and the range. It particularly critical in dynamic industrial applications captures employee preferences. We represent it as where system performance is required. follows: Our contribution consists in adopting constraint Can-do ={(Pierre, A), (Pierre, M), (Pierre, C), programming as the framework to process ontology (Michel, M), (Michel, C), (Michel, D), (Corinne, A), constraints. This is a natural extension to the current (Corinne, M), (Julie, A),(Julie, M), (Bernard, A), trend which uses logic programming to handle (Bernard, M), (Bernard, C), (Jean, O), (Jean, D), ontology constraints. Actually, constraint (Patrice,O) ,(Patrice, D)}. programming is recognized as the appropriate The slot is-realized-by: This slot has T and P as framework for studying combinatorial problems. It respectively the domain and the range. It represents offers more general and powerful tools than those of the problem solution. With cardinality constraints, we logic programming. associate the following user-defined axioms: Concept : P 3. Tasks Assignment Problem can-do Is-realized-by In order to illustrate our approach, we consider a tasks assignment problem. We have two sets: the tasks T and the persons P. T is defined as T = {A, M, Concept : T C, O, D}; A for Administration, M for Maintenance, C for Commercial, O for Conception, and D for Figure 1. Ontology model. Development. The instances of P are the set {Pierre, Michel, Corinne, Julie, Bernard, Jean, Patrice} The value A, of the class T, has a number of which denotes the enterprise employees. occurrences ranging from 1 to 2 within the slot is- We aim to assign tasks to persons so that the realized-by. And with the same manner: following constraints are verified: 1. The value M ranges from 1 to 3. • The employee must execute at least one task. 2. The value C ranges from 1 to 1. • The employee cannot execute more than one task. 3. The value O ranges from 1 to 2. • The number of assignments of some task should 4. The value D ranges from 1 to 5. be greater than some minimal value and lower We can abstract the above axioms by the following than some maximal value. For example A[1,2] template: the value ___ of class __ has a minimal means that the task A is affected to at least one number of occurrences equal to __ and a maximal person and to at most two persons. The number of occurrences equal to __ for the slot __. cardinalities constraints for the different tasks are A[1, 2], M[1, 3], C[1, 1], O[1, 2], and D[1, 5]. 3.2. The Problem Let be the following preferences: • Pierre prefers the tasks A, M and C. Let us suppose that some changes occur in this • Michel prefers the tasks D, M and C. environment by introducing new data (e.g., new employees, new tasks, or new constraints on • Corinne prefers the tasks A and M. employee preferences). It is necessary to maintain • Julie prefers the tasks A and M. ontology consistency after these changes. Obviously, • Bernard prefers the tasks A, M and C. this task is hard to realize manually. The manager • Jean prefers the tasks O and D. may not find easily the solution. The question is: how • Patrice prefers the tasks O and D. can we help the manager? A solution that verifies the above constraints is: Pierre, Michel, Corinne, Julie, Bernard, Jean, 3.3. The Proposed Solution Patrice realize respectively the tasks A, M, A, M, C, The solution we propose is based on constraint O and D. programming. More precisely, we translate the above ontology to a Constraint Satisfaction Problem (CSP)
  • 3. A Constraint Programming Based Approach to Detect Ontology Inconsistencies 3 and use filtering techniques to reduce the search 5. Constraint Programming space. The CSP is defined as follows (for the details see Constraint Programming (CP) is a problem solving the following sections): environment exploiting various techniques coming from artificial intelligence, and operational research. • The persons are denoted as variables. It has been successfully applied to many problems in • The slot can-do defines variables domains. various domains such as planning and scheduling. It • The axioms template defined above can be is particularly efficient to solve combinatorial modeled with global constraints such as Global problems. Cardinality Constraint (GCC) [12]. The filtering Within CP, a specific framework called Constraint algorithm proposed in [11] determines the set of Satisfaction Problem (CSP) is defined. Below we all inconsistent values with GCC. This reduces the present briefly this framework and we recommend search space and makes easy finding a consistent the specialized references for further details [1, 3]. solution. 5.1. Definition of CSP 4. User Axioms Classification Formally, a CSP P is defined as a triple (X, D, C) The constructs of ontology languages such as where: Ontology Web Language (OWL), though they cover • X a set of n variables x1,…, xn. the global definition of ontological knowledge base, • D a set of finite domains D(x1), …, D(xn) where do not allow the expression of some constraints D(xi) is the domain of the variable xi. between different ontology components. • C = {C1, ..., Cm} a set of constraints defined on Every instance of class__ appears at least once in slot __ for some variables. A constraint Ci is defined on a any instance of class __. subset of variables. A solution is an assignment of Example: Every student has at least one advisor. values to the variables such that all the constraints Every instance of Class Student appears at least once in slot advice: Class Professor for any instance of Class Professor. are satisfied. • For example, let be the following CSP: Figure 2. Example of a template. X = {x, y, z} D = {D(x), D(y), D(z)} where For example, constraints on roles values of the D(x) = D(y) = {1, 2}, D(z) = {1, 2, 3, 4}. same class instances cannot be expressed. To C = {C1(x, y), C2(y, z), C3(x, z)}, where overcome this deficiency and help the users, ontology C1(x, y): x ≠ y, development environments such as Protégé [10] C2(y, z): y ≠ z, include tools, generally based on first order logic C3(x, z) : x + 1 ≥ z. such as PAL (Protégé Axiom Language), to capture these axioms. 5.1.1. Solving CSPs However, it is pointed out [8] that these tools are CSP solving techniques are organized according to not exploited and only few ontologies contain user the following algorithmic components: filtering, defined axioms. The reason behind this weakness is exploration and enumeration. Filtering reduces the the complexity [7] of languages underlying these search space induced by the CSP. Exploration tools. explores intelligently the search space. Let be some To solve this problem, some works [7, 13] suggest CSP. If filtering cannot reduce the domains to a specific user interfaces that make easy axioms single solution or cannot prove the non-existence of expression without using these languages. Below we solutions, then the values of the variables domain are describe briefly the approach proposed in [7] on enumerated. which we have elaborated our contribution. The exponential complexity of this solving process The approach described in [7] consists of studying is due essentially to enumeration. Filtering has significant existing ontologies and deriving templates usually a weak polynomial complexity. from user defined axioms. About twenty templates More precisely [12], each constraint has a specific that cover 85% of user defined axioms have been filtering algorithm. It removes, from the domains of abstracted in this study. constraints variables, all the values for which some An environment has been developed as a plug-in constraint cannot be satisfied. These values are called of the protégé environment. It consists in an interface non-locally consistent. that allows the users to compose axioms by “filling in Arc-consistence [9] is the most used general the blanks”. In Figure 2, we give an example of such property of filtering algorithms. Below, we give an templates [7]. informal introduction and some illustrations and we
  • 4. 4 The International Arab Journal of Information Technology, Vol. 8, No. 1, January 2011 refer the reader to specialized references [1, 3] for Note that this definition is so general that it can more details. consider any CSP. It is the case when Csi are all When a value v of some variable xi violates a constraints of Pi-1. In fact, we suppose that only a constraint Cj, this value cannot participate to a portion of constraints are added or removed at each solution; so it must be removed. We say that the step i. (The approach described in section 7.2 can be value v of the variable xi has no support in the modeled with a dynamic CSP where the changes constraint Cj, or more commonly: we say that v is not model is known a priori. Indeed, the CSP Pi+1 results arc-consistent. In opposite, a value v of xi, for which from the CSP Pi by reducing the domain Di of the we can find values in the other variables of the variable xi to a single value vi.) constraint Cj, is called arc-consistent. Let be the CSP given above. We can notice that the value 1 for x has 6. CP Model for Ontologies Axioms the support 2 in y in the constraint C1; in the same way for 2. However, in C3, the value 4 for z has not a We show how the axioms templates elaborated in [7] support in C3, and then it is removed. It is the unique can be translated to constraints within the CSP value that must be removed with the arc-consistency framework. This translation allows efficient property. The arc-consistency can be verified on algorithms developed in constraint programming to various types of binary constraints (where each be used. The objective is to verify the user-defined constraint holds on at most two variables) in a time constraints efficiently. We propose two schemes to weakly polynomial. There does not exist an efficient translate axioms to CSP constraints [2]. global algorithm for n-ary constraints; however Below, we give some translations of some axioms algorithms exist for specific constraints such as the presented in [8]. The others are detailed in the constraint of difference x1 ≠ x2 ≠ … ≠ xn. appendix section. If a value v of some variable xi leads to a solution Scheme 1: let be the class C. We note: for all constraints, we say that this value is globally • I1, …, In: The instances of class C. consistent, otherwise it is removed. Reaching the • R1, …, Rm: The roles associated to the class C. global consistency of some value is NP-complete. So, • Range(Ri): The set of values associated to the role filtering with the global consistency is naturally of Ri. exponential complexity. For example in the above CSP we see that the values 1 and 2 for z cannot be For the role R, we consider the following completed in x and y to form a solution, so they are correspondence: removed. However the value 3 finds 2 in x and 1 in • xi corresponds to Ii, i=1...n: the instances Ii are y. considered as the CSP variable xi. Hence, the arc-consistency filtering leads to the following domains D(x) = D(y) = {1, 2}, D(z) = {1, • Di = D(xi) = Range(R): The domain Di of the 2, 3}. And the global consistence filtering leads to the variable xi is equal to the range of R. following domains D(x) = D(y) = {1, 2}, D(z) = {1, The user defined axioms can then be expressed as 2, 3}. CSP constraints. We give below an example. In the following sections, we detail how to use Example filtering algorithms to detect ontology • Axiom: every instance of the class C must have a inconsistencies. unique value for the role R. • Corresponding CSP constraint: The axiom 5.2. Dynamic CSPs mentioned above can be expressed by the constraint: Alldiff(x1, …, xn) [11]. The CSP presented above is static. Its different components (e.g., variables, domains and constraints) Scheme2 do not change during solving. Nevertheless, in Let be some class C. practice [15], this assumption is not usually verified, • I1, …, In: The instances of class C. particularly when we are confronted to dynamic • R1, …, Rm: The roles associated to the class C. problems. We consider the following correspondence: The dynamic CSP model [4] has been introduced • xi corresponds to Ri, i=1,..., m: the roles Ri are to manage the changes occurring during solving. considered as CSP variable xi. Below, we give a formal definition of dynamic CSPs. • Di = D(xi) = Range(Ri): the domain D(xi) of the Definition [15], a Dynamic CSP (DCSP) is a variable xi is equal to the range of Ri. sequence (P1, P2, …, Pn) where for each i ∈ 1 .. n: • Pi = (X, D, Ci) denotes a CSP. The user defined axioms can then be expressed as the CSP constraints. We give below an example. • Cai denotes a set of added constraints. • Csi denotes a set of removed constraints. • Csi ⊆ Ci-1 and Ci = Ci-1 + Cai - Csi.
  • 5. A Constraint Programming Based Approach to Detect Ontology Inconsistencies 5 Example 8.1. Systematic Approach • Axiom: for every instance of the class C the roles This approach consists in generating, a priori, all Ri and Rj cannot have the same value. inconsistent values with ontology constraints. This • Corresponding CSP constraint: The axiom set will be exploited to analyze the user input. Below, mentioned above can be expressed by the we describe the system architecture and the constraint xi ≠ xj. inconsistency checking process. 7. Processing the Constraints 8.1.1. System Architecture Let be a CSP modeling axioms coming from the The proposed system contains the following scheme of some ontology. In order to detect components as shown in Figure 3. inconsistent values we propose two approaches: 1. The EZPAL interface: this interface is developed 1. An incomplete approach: in this approach, the by [7] as a plug-in in the Protégé editor. It allows filtering algorithms associated to the constraints the user introducing his axioms simply by are executed iteratively until all constraints are instantiating predefined templates. The axioms are locally consistent. This process detects and then stored in axioms base. computes all values of the variables that are 2. The translator: this component translates the locally inconsistent with each constraint axioms in CSP Constraints. It uses the separately. Obviously, this procedure does not transformation base and generates the CSP detect the global inconsistencies, i.e. the constraints. inconsistencies concerning all the constraints 3. Inconsistent values generator: this component simultaneously. executes a set of filtering algorithms developed in 2. A complete approach: in this approach we proceed constraint programming. It generates all the with two phases. The first phase consists in inconsistent values with CSP constraints generated applying a global solving algorithm to find all by the translator. solutions. The second one examines the solutions 4. Inconsistency checker: this component uses the set and detects the globally inconsistent values. inconsistent values base generated above and generates all the inconsistent values in the user Obviously, the complete approach is the ideal one as data flow. A feedback is returned to the user. it detects all the inconsistencies. However, it is computationally very expensive because of its NP- 8.1.2. The Process of Consistency Checking Hard nature. Here, the enumeration is forced by the guarantee that all values lead to solutions. The process of consistency checking proposed here The incomplete approach, due to its low can be divided into two phases as shown in Figure 3. complexity, can be a reasonable approach as it enables finding inconsistencies as the user fixes the User Input ontology variables without, however, ensuring that Interface these values lead to solutions. EZPAL Inconsistent In the following, we propose architectures to values generator. integrate CP in inconsistencies detection. In practice, Axioms we can use the complete approach if it is not Base Inconsistent computationally very expensive; otherwise we opt for values base the incomplete one. Translato Transformation 8. Consistent Handling of Changes Base CSP In this section we propose two approaches to support Constraints Consistency the user in managing consistently the ontology checker changes. These approaches go beyond the simple detection of inconsistencies. They offer user means Inconsistent ensuring the ontology evolution towards a consistent values state. In the first approach, qualified with systematic, we describe the system architecture. For the second Figure 3. Specification of the environment. approach, qualified with interactive, we propose an interaction model between a user and a CP solver. Phase 1: the ultimate objective of this phase is to This interaction leads to the final consistent ontology. generate inconsistent values that enable detection of
  • 6. 6 The International Arab Journal of Information Technology, Vol. 8, No. 1, January 2011 inconsistent values in the user data flow introduced in 8.2.1. The Interaction Model phase 2. This phase can be divided into two steps: Let be a CSP of n variables, the interaction model • Step 1: CSP constraints generation. The user consists of a succession of n cycles. Each cycle composes his axioms by instantiating appropriate consists of two successive phases described below. templates. He uses the EZPAL interface [7]. Then, Phase 1: the user sends a message to the solver. these axioms are transformed into CSP constraints This message consists of a request. The purpose of by the translator. the request is the computation of all values of xi • Step 2: inconsistent values generation. The values domain, Di, that are consistent with the constraint C. that violate the CSP constraints, developed in the At this level the request embodies the following previous step, are generated. At this level, the information: filtering algorithms generate efficiently, a priori, • The domains D1, …, Di-1 reduced to values v1, …, all the values inconsistent with CSP constraints vi-1 determined in previous cycles. generated in step 1 above. • Di, …, Dn as defined in the initial CSP. Phase 2: The ultimate objective of this phase is to Phase 2: The solver sends a message to the user, detect the inconsistent values introduced in the user which consists in an answer to the request formulated data flow. This phase can be divided into two steps: in Phase 1. The solver computes the set Ei (the set of • Step 1: formulation of the user request. The user all values of the variable xi belonging to Di that are request is assumed here to be of high complexity, consistent with the constraint C) which is transmitted in the sense that it contains a significant amount of to the user. data: • In Phase 1 of cycle 1, the CSP transmitted is the • The different classes to be modified. initial one. • For every class, the different instances values for • The end of interaction occurs when the user sends different roles. This information can be new, for an end message to the solver. instance, when adding instances or updating • At the end of each cycle, the user selects a value data. from the set returned by the solver and restarts the • Step 2: Inconsistency detection. The inconsistency following cycle. checker detects all the inconsistent values introduced in the user data flow in step 1 of phase 2 mentioned above. For this purpose, it uses the 8.3. Comparison inconsistent values base. The interactive approach has the following The inconsistent values set are then returned to the advantages: user as a system feedback. 1. The performance of filtering algorithms developed in constraint programming enables a real time 8.2. Interactive Approach interaction. 2. Interaction between the user and the solver We give the interaction model between the user and a converges to a consistent ontology. CP solver. This interaction has the particularity of 3. The interaction model makes easy to the user conducting to a final consistent state as shown in selecting the affected value. Figure 4. User Solver In the other hand, the systematic approach has the ({x1,…,xn}, {D(x1),…,D(xn)}, C) advantage of reducing the search space to only consistent values. This allows the user managing E1 consistently the ontology changes. However, this approach requires also user intervention. ({x1,…,xn}, {D(x1)={v1},D(x2),…,D(xn)}, C) 9. Conclusions and Perspectives Ei In this paper we showed that constraint programming ({x1,…,xn}, {D(x1)={v1},…,D(xi),={vi},…,,D(xn)}, C) can really serve ontologies consistency management. More precisely, filtering algorithms developed in constraint programming can contribute efficiently to En the ontology user defined consistency checking. We Dialogue end. proposed a translation model of axioms to constraints which is the core of an environment for supporting Figure 4 . Dialogue model. the user in managing consistently the ontology changes.
  • 7. A Constraint Programming Based Approach to Detect Ontology Inconsistencies 7 Large CSPs (with many variables), however, Habilitation à Diriger des Recherches, should be generated by the system. This is the main Université de Nice Sophia Antipolis, 2004. limit of the approach presented here. We are [13] Staab S. and Maedeche A., “Axioms are considering this issue by studying the boundary upon Objects too Ontology Engineering Beyond the which the dialogue model will be hardly practicable. Modelling of Concepts and Relations,” in The first perspective of this work is to implement Proceedings of The 14th Electronic Cultural our framework as a Protégé plug-in. In fact, the Atlas Initiative, Workshop on Ontologies and system is under development. The second perspective Problem Solving Methods, Berlin, pp. 159-163, is to consider more general axioms not mentioned in 2000. [7]. [14] Stojanovic L., “Methods and Tools for The system presented here is built upon axioms Ontology Evolution,” PHD Thesis, University which are abstractions of constraints expressed in of Karlshue, 2004. much significant ontologies belonging to various [15] Verfaillie G. and Jussien N., “Constraint domains. Hence, the system applications range is Solving in Uncertain and Dynamic large: bioinformatics, management, etc., It can be Environment a Survey,” Computer Journal of plugged in every ontology management system. Constraints, vol. 10, no. 3, pp. 253-281, 2005. References [1] Apt K., Principles of Constraint Programming, Moussa Benaissa received his Cambridge University Press, 2003. engineering degree and his Master [2] Beldiceanu N., Carlson M., Demassey S., and degree in computer science from Petit T., “Global Constraints Catalog: Past, the University of Es-Senia Oran, Present and Future,” Computer Journal of Algeria, in 1988 and 1992, Constraints, vol. 12, no. 1, pp. 21-62, 2007. respectively. He is actually a [3] Dechter R., Constraint Processing, Morgan lecturer at University of Oran Es- Kaufmann Press, 2003. Senia. His research interest includes e-learning, [4] Dechter R. and Dechter A., “Belief ontologies, and constraint programming. Maintenance in Dynamic Constraint Networks,” in Proceedings of 7th National Yahia Lebbah received his Conference on Artificial Intelligence, USA, pp. engineering degree in 1995 from 37-42, 1988. the University of Es-Senia Oran, [5] Fages J., Programmation Logique et Par Algeria, and his MS degree in 1996, Contraintes, Ellipses Presse, 1996. from the University of Paris 13, and [6] Haase P. and Stojanovic L., “Consistent PhD degree in 1999 from Ecole des Evolution of OWL Ontologies,” Lecture Notes Mines de Nantes, France. All in Computer Science, 2005. degrees are in computer science. He is currently a [7] Hou J., Musen A., and Noy F., “EZPAL: professor in the Computer Science Department at the Environment for Composing Constraint University of Es-Senia Oran, Algeria. Axioms by Instantiating Templates,” International Journal of Human Computer Studies, vol. 62, no. 5, pp. 578-596, 2005. Appendix [8] Hou J., Noy F., and Musen A., “A Template- C denotes some class. I denotes an instance. R Based Approach Toward Acquisition of Logical denotes a slot. Sentences,” in Proceedings of the Conference Axiom 1. Every instance of class C must have a of Intelligent Information Processing unique value in slot R. Montréal, Canada, pp. 25-28, 2002. Constraint: ∀ I1, I2 ∈ C, R(I1) ≠ R(I2). [9] Mackworth A., “Consistency in Networks of Axiom 2. For every instance of class C, slots Ri and Relations,” Computer Journal of Artificial Rj cannot have the same value. Intelligence, vol. 8, no. 1, pp. 99-118, 1997. [10] The Protégé Project, http://protege.stanford.edu. Constraint: ∀ I ∈ C, Ri(I) ≠ Rj. [11] Régin C., “A Filtering Algorithm for Axiom 3. At least one instance of class C contains Constraints of Difference Constraint value v in slot R. Satisfaction Problems,” in Proceedings of Constraint: ∃ I ∈ C, v ∈ R(I). Association for the Advancement of Artificial Axiom 4. If an instance of class C contains value v1 Intelligence, USA, pp. 362-367, 1994. in slot Ri it must contain value v2 in slot Rj. [12] Régin C., “Modélisation et Contraintes Constraint: ∀ I ∈ C, v ∈ Ri(I) ⇒ v2 ∈ Rj(I). Globales en Programmation Par Contraintes,”
  • 8. 8 The International Arab Journal of Information Technology, Vol. 8, No. 1, January 2011 Axiom 5. Every instance of class C1 appears at least contains I2 in slot Rj of class C3. once in slot R of any instance of Class C2. Constraint: ∀ I1 ∈ C1, Ri(I1) = I2 ⇒ ∃ I3 ∈ C3, I2 Constraint: ∀ I1 ∈ C1, I1 ∈ R(C2). ∈ Rj(I3). Axiom 6. For every instance of class C, value of slot Axiom 18. For every instance I1 of class C1, if Ri is > (or =, <), than the value of slot Rj. the value of slot Ri is an instance I2 of class C2, Constraint: ∀ I ∈ C, Ri(I) op Rj(I) where op ∈ then there is an instance I3 of class C3 that {>, =, <}. contain I1 in slot R1 and I2 in slot R2. Axiom 7. For every instance of class C, slot Ri and Constraint: ∀ I1 ∈ C1, Ri(I1) = I2 ⇒ ∃I3 ∈ C3, slot Rj must have instances of the same class. Rj(I3) = I1, R2(I3) = I2. Constraint: ∀ I ∈ C, ∃ C1, Ri(I) ∈ C1 and Rj(I) ∈ Axiom 19. For every instance I1 of class C1, if C1. the value of slot Ri has an instance I2 of class Axiom 8. For every instance I1 of class C1, there C2, then slot R1 of I1 has value > (or =,<) than must be an instance I2 of class C2 which contains value of slot R2 of I2. I1 in R. Constraint: ∀ I1 ∈ C1, Ri(I1) = I2 ⇒ R1(I1) op Constraint: ∀ I1 ∈ C1, ∃ I2 ∈ C2, I1 ∈ R(I2). R2(I2) where op ∈ {>, = >}. Axiom 9. Every instance of class C that shares the Axiom 20. If an instance I1 of class C1 has same value in slot Ri can not (resp. must) have instance I2 of class C2 in slot R1 of I1 and I2 of identical values in Rj. class C2 has instance I3 of class C3 in slot R2 of I2 Constraint: ∀ I1, I2 ∈ C, Ri(I1) = Ri(I2) ⇒ Rj(I1) then I3 must (resp. cannot) have I1 in slot R3. ≠ Rj(I2) (resp. ∀ I1, I2 ∈ C, Ri(I1) = Ri(I2) ⇒ Constraint: R1(I1) = I2 and R2(I2) = I3 ⇒ R3(I3) = Rj(I1) = Rj(I2)). I1 (resp. R2(I2) = I3 ⇒ R3(I3) ≠ I1). Axiom 10. For every instance of class C1, value Axiom 21. For every instance I1 of class C1, if of slot Ri must also be a value of slot Rj of an the value of slot R1 has an instance I2 of class C2, instance of class C2. then if slot R1 of I1 has value v1 slot R2 of I2 has Constraint: ∀ I1 ∈ C1, ∃ I2 ∈ C2, Ri(I1) = Rj(I2). value v2. Axiom 11. For every instances of class C slot Ri Constraint: ∀ I1 ∈ C1, Ri(I1) = I2 ⇒ (R1(I1) = v1 cannot contain both instances of class C2 and ⇒ R2(I2) = v2). class C3. Axiom 22. Every instance I1 of class C1 which Constraint: ∀ I ∈ C, R(I) ∉ C2 ∩ C3. contains value v in slot R1 must have values in Axiom 12. For every instance I1 of class C1 if the slot R2 which are instances of class C2. value of slot Ri is an instance I2 of class C2, they Constraint: ∀ I1 ∈ C1, v ∈ R1(I1) ⇒ R2(I1) ∈ C2. must share the same value in slot Rj for I1 and slot Rk for I2. Constraint: ∀ I1 ∈ C1, Ri(I1) = I2 ⇒ Rj(I1) = Rk(I2). Axiom 13. For every instance I1 of class C1 slot Ri must have values that are instances of classes specified by slot Rj of class C2. Constraint: ∀ I1 ∈ C1, Ri(I1) ∈ Rj(C2). Axiom 14. If an instance I1 of class C1 has slot Ri that contains value v then I2 of class C2 cannot (resp. must) contain I1 in slot Rj. Constraint: ∀ I1 ∈ C1, Ri(I1) = I2 ⇒ I1 ∉ Rj(I2) (resp. ∀ I1 ∈ C1, Ri(I1) = I2 ⇒ I1 ∈ Rj(I2)). Axiom 15. Every instance of class C1, which has a value in slot Ri > (or =, <) than every (resp. at least one) value of slot Rj of class C2. Constraint: ∀ I1 ∈ C1, ∀ I2 ∈ C2, Ri(I1) op Rj(I2) (resp. ∀ I1 ∈ C1, ∃ I2 ∈ C2, Ri(I1) op Rj(I2)) where op ∈ {>, =, <}. Axiom 16. For every instance I1 of class C1, if the value of slot Ri has an instance I2 of class C2, I2 must have value v in slot Rj. Constraint: ∀ I1 ∈ C1, Ri(I1) = I2 ⇒ Rj(I1) = v. Axiom 17. For every instance I1 of class C1, if the value of slot Ri has an instance I2 of class C2, then there is an instance I3 of class C3 that