=Paper= {{Paper |id=Vol-1442/paper_16 |storemode=property |title=OCIP – An OntoClean Evaluation System Based on a Constraint Prolog Extension Language |pdfUrl=https://ceur-ws.org/Vol-1442/paper_16.pdf |volume=Vol-1442 |dblpUrl=https://dblp.org/rec/conf/ontobras/RodriguesFA15 }} ==OCIP – An OntoClean Evaluation System Based on a Constraint Prolog Extension Language== https://ceur-ws.org/Vol-1442/paper_16.pdf
        OCIP – An OntoClean Evaluation System Based on a
            Constraint Prolog Extension Language
  Cleyton Mário de Oliveira Rodrigues1,2, Frederico Luiz Gonçalves de Freitas1,
                          Ryan Ribeiro de Azevedo1,3
           1
               Center of Informatics – Federal University of Pernambuco, UFPE
                               50.732-970, Recife-PE, Brazil
                          2
                              FACETEG – University of Pernambuco, UPE
                                 55.294-902, Garanhuns-PE, Brazil
                  3
                      UAG – Rural Federal University of Pernambuco, UFRPE
                              55.292-270, Garanhuns-PE, Brazil
                                  {cmor,fred,rra2}@cin.ufpe.br

    Abstract. An ontological model must evolve, since several and different
    knowledge sources can contribute to the addition of new concepts, relations
    and properties. Hence, we expect a certain level of quality during the
    engineering of ontologies, as well as the ontological commitment, in order to
    produce clear, well-formulated and correct subsumption relations. OntoClean
    is a methodology that addresses the creation of clean ontologies, i.e. the
    creation of taxonomic hierarchies to model properly the concepts in the
    domain. Due the lack of stable implementations in the literature, this paper
    presents OCIP: an OntoClean implementation in Constraint Handling Rules
    (CHR), a Constraint Programming Prolog extension.

1. Introduction
Ontologies, in a higher level of abstraction, establish a common and unambiguous
terminology for the domain in question. The idea of ontology is often restricted to what
is called “formal ontology” [Guarino 1998]. This means that the content of an ontology
is described using mathematical logic, which can provide computer system’s ability of
logical inference. You can also support autonomous discovery from recorded data, as
well as reuse and exchange of knowledge. Recently the use of ontologies has been
popularized through various other sub-areas of computer science, such as Software
Engineering, Database and Information System.
        OntoClean [Guarino and Welty 2000] [Welty and Guarino 2001], on the other
hand, is a methodology that addresses the creation of clean ontologies, i.e. the creation
of taxonomic hierarchies to model properly the concepts in the domain of discourse.
OntoClean comprises a set of meta properties, restrictions and assumptions which
together defines a methodology for conceptual analysis of taxonomic subsumption (is-a)
in any arbitrary ontology. OntoClean does not care about the semantics of the
relationship itself, but with the ontological nature of concepts in the relationship. Due to
the lack of stable implementations in the literature, this paper presents an OntoClean
implementation in Constraint Handling Rules (CHRv), a Constraint Programming
Prolog extension.
       CHRv [Frühwirth 2009] is a rule based language which was initially conceived
to represent white box constraint solvers, but that has been shown to be able to
implement many different reasoning services in a straightforward way. Through this
language, we have defined a set of rules to check any restrictions violation imposed by
OntoClean, known as OCIP (OntoClean Implementation in Prolog).
        This paper is organized as follows. Section 2 explores the OntoClean
methodology, highlighting the meta properties and restrictions used in this work. Then,
Section 3 illustrates CHRv language through an example for coloring maps. Syntax and
Semantics are briefly discussed. Section 4 discusses the implementation of OntoClean in
Prolog. Following, Section 5 explains the evaluation of a legal ontology through OCIP,
highlighting some violations. Sections 6 explores some related work. Finally, last
section presents a conclusion of what has been achieved so far in this research, as well
as outlines up prospects for the continuation of this work.

2. OntoClean
An ontological model must evolve, since several and different knowledge sources can
contribute to the addition of new concepts, relations and properties. Hence, we expect a
certain level of quality during the engineering of ontologies, as well as the ontological
commitment, in order to produce clear, well-formulated and correct subsumption
relations. That is, decisions regarding the taxonomic structure must faithfully represent
the real domain elements and their associations. In addition to leveraging the
understanding with a cleaner ontology, the correct establishment of subsumption
between these concepts (relying on the ontological nature of them) favors the reuse and
integration of these models. Hence, it avoids rework to adjust/tune ontologies by adding
new knowledge, allowing them to be widely shared across several information systems.
        Therefore, it is suggested that a methodology for decision evaluation is widely
required. Furthermore, this methodology must not be directed to a particular domain. It
must be general enough to be used and reused in different fields, without adjustments.
Thus, this work explores a domain-independent methodology for assessing decisions
about the ontological nature of the elements in subsumption relations, namely the
OntoClean [Guarino and Welty 2000], [Guarino and Welty 2004]. This methodology,
relying on notions arising from philosophical ontology, was proposed by the Ontology
Group at the Italian National Research Council (CNR).
        OntoClean is a methodology that allows the construction of clean ontologies.
Firstly, establishing a set of general and well formalized meta properties so that the
concepts can be properly characterized. Secondly, as a result, these meta properties
impose a set of constraints between a super and a subclass. Regarding the ontology
definition proposed by [Studer et al 1998]: “A formal explicit specification of a shared
conceptualization”, hopefully, through the methodology is possible to detect possible
disagreements amongst different conceptualizations, so that some corrective action can
be taken.
2.1. OntoClean Meta Properties
Table 1 summarizes the basic notions extracted from philosophical sphere, in which
OntoClean is based, namely: Rigidity, Identity, Unity and Dependence. Herein, we will
consider concepts and classes as equivalent. Therefore, they represent a collection of
individuals, which have been grouped by having common characteristics. The concepts
are related by subsumption association, where concept ρ subsumes concept σ, if σ → ρ
which means that all individuals from σ, are also part of ρ, but the reverse is not
necessarily true. For further information, the complete basic notions as well as a brief
formal analysis can be found at [Welty and Guarino 2001].
                               Table 1. OntoClean Meta Properties

Meta Property         Symbol            Label                           Definition
Rigidity                 +R              Rigid         All the instance will always be instances of
                                                       this concept in every possible world
                         -R           Non-Rigid        There are instances that will stop being
                                                       instances of the concept
                         ~R           Anti-Rigid       All instances will no longer be instance of
                                                       that concept
Identity                 +I         Carry Identity     Instances carry an unique identification (IC)
                                                       criteria from any superclass
                         -I       Non Carry Identity   There is no identification criteria (IC)
                         +O         Supply Identity    Instances themselves provide an unique
                                                       identification criteria (IC)
Unity                    +U             Unity          Instan es are     hole , and ha e a single unit
                                                       criteria (UC)
                         -U           Non-Unity        Instan es are hole , ut they do not ha e
                                                       a single unit criteria (UC)
                         ~U           Anti-Unity       Instan es are not     holes
Dependence               +D      External Dependence   There is dependency on external concept
                         -D          Non External      There is no dependency
                                     Dependence

2.2. OntoClean Constraints
From the methodology, emerges a set of restrictions on the subsumption relations
present in the taxonomy. In total, there were defined five restrictions [Guarino and
Welty 2000], which follow:
          Anti-rigid class cannot subsume a rigid subclass;
          A class with identity cannot subsume a non-identity subclass;
          A class with the unity meta property cannot subsume a subclass without unity
           criterion;
          Anti-Unit class cannot subsume unity class;
          Dependent class cannot subsume non-dependent class.
3. CHRv
Constraint Handling Rules with Disjunction (CHRv) [Abdennadher and Schütz 1998] is
a general concurrent logic programming language, rule-based, which has been adapted
to a wide set of applications as: constraint satisfaction [Wolf 2005], abduction
[Gavanelli et al 2008], component-development engineering [Fages et al 2008], and so
on. The language also emerges as an attempt to integrate an ontological language of the
Semantic Web with some rule-based logic programming [Frühwirth 2007]. In essence, it
is designed for creation of constraint solvers. CHRv is a fully accepted logic
programming language, since it subsumes the main types of reasoning systems
[Frühwirth 2009]: the production system, the term rewriting system, besides Prolog
rules. Additionally, the language is syntactically and semantically well-defined
[Abdennadher and Schütz 1998].
        Without loss of generality, a CHRv program is a conjunction of simpagation
rules, whose syntax is described as follows:
                             rule_name@ Hk \ Hr <=> G | B.
        rule_name@ is the non-compulsory rule identification. The head is defined by
the predicates represented by Hk and Hr, with which an engine tries to match with the
constraints in the store. Further, G stands for the set of guard predicates, that is, a
condition imposed to be verified to fire any rule. Finally, B is the disjunctive body,
corresponding to a set of constraints added within the store, whenever the rule fires. The
logical conjunction and disjunction of predicates are syntactically expressed by the
symbols ’,’ and ’;’, respectively. Logically, the interpretation of the rule is as follows:
                      VGH (G  ((Hk  Hr)  (  VB\GH B  Hk))),
                       where VGH = vars(G) U vars(Hk) U vars(Hr),
                                   VB\GH = vars(B) \ VGH
       For the sake of space, we ask the reader to check the bibliography for further
reference to the declarative semantics. Besides the simpagation rule, there are two other
cases that are specializations of the former: the simplification (Hr <=> G | B.) which
replaces constraints by others equivalent; and the propagation rules (Hk ==> G | B.)
which add new constraints within the store, leading to further simplification.




                     Figure 1: A Pedagogical Map Coloring Problem

      Figure 1 illustrates a pedagogical map coloring problem. There are 7 places (X1,
X2, X3, X4, X5, X6, X7) whose neighborhood is expressed by an arc connecting these
locations. Further, each one can assume one of the following domain values: D =
{r,g,b}, referring to the colors, red, green, and blue, respectively. The only constraint
imposed restricts the neighboring places (that is, each pair of nodes linked by an arc) to
have different colors. As usual, this problem can be reformulated into a search tree
problem, where the branches represent all the possible paths to a consistent solution. By
definition, each branch not in accordance with the restriction must be pruned. The
problem depicted in Figure 1 is represented by the logical conjunction of the following
CHRv rules:

f@ facts ==> m, d(x1,C1), d(x7,C7), d(x4,C4), d(x3,C3), d(x2,C2), d(x5,C5), d(x6,C6).
d1@ d(x1,C) ==> C=red; C=green; C=blue.
d7@ d(x7,C) ==> C=red; C=green; C=blue.
d4@ d(x4,C) ==> C=red; C=green; C=blue.
d3@ d(x3,C) ==> C=red; C=green; C=blue.
d2@ d(x2,C) ==> C=red; C=green; C=blue.
d5@ d(x5,C) ==> C=red; C=green; C=blue.
d6@ d(x6,C) ==> C=red; C=green; C=blue.
m@ m <=> n(x1,x2), n(x1,x3), n(x1,x4), n(x1,x7), n(x2,x6), n(x3,x7), n(x4,x7), n(x4,x5), n(x5,x7),
n(x5,x6).
n1@ n(Ri,Rj), d(Ri,Ci), d(Rj,Cj) <=> Ci=Cj | fail.

        The first rule f introduces the constraints into the store, which is a set of
predicates with functor d and two arguments: the location and a variable to store the
possible color. The seven following rules relate the locations with the respective
domain. Additionally, rule m adds all the conceptual constraints, in the following sense:
n(Ri,Rj) means there is an arc linking Ri to Rj, thus, both places could not share the same
color. Finally, the last rule is a sort of integrity constraint. It fires whenever the
constraints imposed are violated. Logically, it says that if two linked locations n(Ri,Rj)
share the same color (condition ensured by the guard), then the engine needs to
backtrack to a new (consistent) valuation.

4. OCIP
Due to lack of implementations for OntoClean as already discussed briefly, this paper
proposes a new, simple Prolog-based implementation, particularly using the CHR
library provided by SWI-Prolog1. Being a logic, rule-based and constraint-oriented
language, CHRv has allowed a rapid prototyping of an ontology analyser: OCIP
(OntoClean Implementation in Prolog). Through propagation rules, a forward chaining
reasoner analyzes metaproperties and restrictions pointing out the inconsistencies.
       In essence, the analyzer focuses on two logical predicates: sub/2 and oc/5. The
former establishes a subsumption relation between two classes of the ontology, i.e.
sub(ClassA, ClassB) means ClassA subsumes ClassB. Only direct subsumption relations
(between an arbitrary parent class and its immediately children classes) have to be




1
    http://www.swi-prolog.org/
directly defined by the user. The other relations (involving ancestor classes) are trivially
propagated through the following transitivity rule:
transitivityRule@ sub(CA,CB), sub(CB,CC) ==> sub(CA,CC).
        Following, the logical predicate oc/5 lists the metaproperties of any class, which
is the first argument, and the four other defining respectively the Rigidity, Identity,
Unity and Dependence criteria. oc(agent, r, ni, nu, nd) states that the Agent Class is
rigid, besides it has non identity, non unity, and non external dependence. Other
available labeling criteria are: Anti Rigid (ar), Non Rigid (nr), Identity (i), Owner
Identity(o), Unity (u), Anti Unit (au) and finally, Dependence (d).
       In order to avoid trivial non-termination (when forward chaining reasoners
match indefinitely the same predicates with the same rules), besides the CHRv
operational semantics [Duck et al 2004] fully adopted by the SWI-Prolog, some
simpagation rules delete equivalent predicates.
sympaOcRule@ oc(Class,R,I,U,D) \ oc(Class,R,I,U,D) <=> true.
sympaSubRule@ sub(CA,CB) \ sub(CA,CB) <=> true.
        In essence, OCIP is based on three blocks rules: rules of natural propagation,
horizontal constraints and vertical constraints, plus some auxiliary predicates for
explanation of violating constraints. With regard to the rules of natural propagation, new
facts contemplating the same class are propagated into the knowledge base. It is known,
for example, a class that provide their own identification criterion (+O), is logically a
rigid class (+R), which carries an identification criterion (+I). Also, anti-unit classes
(~U) are also non-unit classes (-U). The same logical consequence is valid for
metaproperties Anti-Ridig (~R) and Non-Rigid (-R).
supplyPropagRule@ oc(Class, ,o,X,Y) ==> oc(Class,r,i,X,Y).
unityPropagRule@ oc(Class,X,Y,au,Z) ==> oc(Class,X,Y,nu,Z).
rigidPropagRule@ oc(Class,ar,X,Y,Z) ==> oc(Class, nr,X,Y,Z).
        Horizontal constraints have this name because they do not analyze
superclass/subclass relationships. Unlike, these only evaluate whenever a class has been
erroneously characterized with inconsistent metaproperties, like (+R and -R). Therefore,
this block has four rules, one for each metaproperty. It is worth noting that anti-
properties (~U and ~R) have not been codified, since firing the propagation rules (of the
last block), classes should also be classified as -U and -R, respectively.
rigidRule@ oc(Class,r, , , ), oc(Class,nr, , , ) ==> rigidViolation(Class).
identityRule@ oc(Class, ,i, , ), oc(Class, ,ni, , ) ==> identityViolation(Class).
unityRule@ oc(Class, , ,u, ), oc(Class, , ,nu, ) ==> unityViolation(Class).
depedenceRule@ oc(Class, , , ,d), oc(Class, , , ,nd) ==> dependentViolation(Class).
        The 1-ary prolog predicates (rigidViolation, identityViolation, unityViolation,
dependentViolation) use other built-in predicates to generate explanations to the user
about inconsistencies detected by class. The last rule block corresponds the vertical
constraints, that is, those which evaluate the relations of subsumption. For each
OntoClean constraint (mentioned before), a CHRv rule will identify whether there is any
violation.
antiRigidRule@ oc(ClassSuper,ar, , , ), oc(ClassSub,r, , , ), sub(ClassSuper,ClassSub) ==>
antiRigidViolation(ClassSuper,ClassSub).
noIdentityRule@ oc(ClassSuper, ,i, , ), oc(ClassSub, ,ni, , ), sub(ClassSuper,ClassSub)
==> noIdentityViolation(ClassSuper,ClassSub).
nonUnityRule@ oc(ClassSuper, , ,u, ), oc(ClassSub, , ,nu, ), sub(ClassSuper,ClassSub)
==> noUnityViolation(ClassSuper,ClassSub).
antiUnityRule@ oc(ClassSuper, , ,au, ), oc(ClassSub, , ,u, ), sub(ClassSuper,ClassSub)
==> antiUnityViolation(ClassSuper,ClassSub).
nonDependentRule@ oc(ClassSuper, , , ,d), oc(ClassSub, , , ,nd),
sub(ClassSuper,ClassSub) ==> noDependentViolation(ClassSuper,ClassSub).

5. Evaluating OCIP through Legal Ontologies

5.1. Legal Ontologies
OntoCrime and OntoLegalTask [Rodrigues 2015] are ontological representations,
through which it is possible to formalize the Brazilian Penal Code2, making it possible
to check the violation of norms, the resolution of legal conflicts (known as antinomies)
and the automation of legal reasoning. These formalities have arisen due to semantic
deficiencies found in legal texts, either linguistic or conceptual order. OntoCrime
emerges as a Domain ontology, defining key concepts and relationships arising from the
Penal Code, such as Crime, Punishment, Rules and Articles. OntoLegalTask extends
these concepts by defining the tasks mentioned above.
        The formalization expected for sound representation and complete reasoning
relies on the Descriptions Logic (DLs) [Sirin et al 2007], a decidable subset of First
Order Logic (FOL). DLs are the core of OntoCrime and OntoLegalTask representation,
for structuring the knowledge bases and for providing reasoning services. Below, we list
some DL expressions, which indicate: (i) a person who cannot be criminally punished is
the one with a mental illness or a child, teenager or elderly person, (ii) an attributable
person is one who does not fit the above profile, (iii) a prohibitive norm prohibits some
conduct, (iv) a conduct is prohibited by some article, (v) Crime is a prohibited conduct
(vi) with arrest or detention as punishment. For the sake of space, we ask the reader to
check the reference for further information.
     i.    UnimputablePerson ≡ NaturalPerson                       (hasDisorder.MentalDisorder
           hasAge.(Child Teenager Elderly)
     ii.   AttributablePerson ⊑ UnimputablePerson
    iii.   ProhibitiveArticle ≡ prohibits.ConductProhibited        prohibits.ConductProhibited
    iv.    ConductProhibited ⊑ isProhibitedBy.ProhibitiveArticle



2
    http://www.planalto.gov.br/ccivil 03/decreto-lei/del2848.htm
     v.    Crime ⊑ ConductProhibited

    vi.    Crime ≡ hasPunishment.(Arrest          Detention)

5.2. Legal Ontologies Labelling
Figures 2 and 3 illustrate a partial view of the the is-a relationships extracted from the
legal ontologies for analysis. In the legal field conceptualization, Agent is a rigid class
whose instances are “whole”, but with different unit criteria since the class specializes in
Person and Organization. Similarly, instances do not have the same criterion of identity.
An instance of an Organization will always be necessarily an organization. Whenever an
Organization faces bankruptcy, the entity ceases to be an organization, but also ceases to
exist. If an Organization is bought by other, and change the CNPJ3, the organization also
is not the same, it ceased to exist and became a new one. Clearly, the criterion of
identity of the instances is the CNPJ itself. A Person, in turn, has as a criterion of
identity their own fingerprint.




                            Figure 2: Agent and Comportment subclasses

        In criminal law, the passive person is one who suffered the criminal action (or
their dependents in the case of murder), while the Active person is the one who practices
the act. Thus, a Person may cease to be passive, but it will be the same person. Suppose
that this person is an active agent in another crime, notably, it cannot be also passive by
the restrictions of the penal code. Another point is that a passive person could be passive
in different crimes, but there is not a global criterion of identification; a passive person
may be the victim of a thief, or may be the daughter of someone who was murdered, for
example. Instances of this class must be related to a criminal conduct, there is an
external dependency. The ActivePerson class fits in the same labels.
       Class AttributablePerson is anti-rigid: people become old naturally. On the other
hand, when a teenager goes into adulthood, he is no longer unimputable. Nevertheless,
whether a person has been diagnosed with a mental disorder, even after the legal age, he


3
    CNPJ is the National Register of Legal Entities: a unique number that identifies a legal person
cannot be criminally penalized. Therefore, some instances of UnimputablePerson4
remain unimputable while live.
        With respect to class Comportment (and its subclasses), this depends on the
agent who performs the comportment. An instance is bound to be a behavior in all
possible worlds. Comportment instances can be identified by a set of variables such as:
the action, the agent, place and time. However, there is no single unit criterion: some
actions are performed with (criminals) objects, others do not.




                                  Figure 3: Conduct sublcasses

        Similar to Comportment class, Conduct has the same metaproperties, except
that it does not provide its own criterion of identity. According to the Criminal Code,
Conduct is a voluntary Comportment (thus implicitly Conduct becomes a Voluntary
subclass). Among its subclasses, Action class brings together some peculiar
characteristics. While a Conduct depends on other external factors, an Action is
something more specific, self-contained. Action instances do not share a common IC.
Furthermore, their instances have a morphological unit in common (linguistically
speaking): are verbs. Finally, the class is labeled with non-rigid metaproperty.
Depending on the context, some instances can no longer be part of that concept. When
one says, “He walked down the street when he was hit by a car” clearly there is an
action. However, when someone says, “He walked nervously”, we just have an agent
state/condition5.
        ConductProhibited is non-rigid because there may be decriminalization.
Instances have an IC in common: the Article prohibitive, with ongoing dependence.
Nevertheless, with decriminalization, this prohibitive document will no longer be valid.
In principle, the conduct boundaries are known (wholes instances), but there is no single
UC for all of them. The ConductProhibited subclasses have the same metaproperties. In
GuiltConduct, for example, there are dependencies, as it needs to know the agent

4
 Dead people, animals and legal people cannot be criminally penalized.
5
 In the Portuguese Grammar, in this context, walk is a linking verb, which does not indicate action,
but a state.
liability. Similarly, for Contravention and Crime, the dependence relates to the kind of
penalty imposed by the article of the law. In contrast, due to criminalization,
ConductPermitted is labeled as non rigid. The class also has no common IC criteria.

5.3. OCIP Evaluation
In order to carry out the ontological evaluation through OCIP implementation, it was
necessary to add into a knowledge base the facts concerning the subsumption relation
and the meta properties of the ontology concepts, as previously shown. Some violations
were identified as the identity and dependence criteria, between Comportment,
Voluntary, Action and Omission classes:
          Identity Class Comportment can not subsume Non Identity Class Action;
          Dependent Class Comportment can not subsume Non Dependent Class Action;
          Identity Class Voluntary can not subsume Non Identity Class Action;
          Identity Class Comportment can not subsume Non Identity Class Omission;
         Revisiting the General Theory of Crime within the Brazilian Penal Code, it is
said that: “Conduct is any human action or omission, conscious and voluntary, focused
on one purpose”. Then, at a first glance, a misinterpretation leads us to believe that a
conduct is accomplished through an action or omission, besides being a purely voluntary
comportment. Poor written specifications has caused inconsistencies such as these
detected by OCIP. Unfortunately, these flaws and ambiguities (besides other linguist and
conceptual problems) are present in other legal documents. To fix the inconsistency, it is
enough to say that: “Conduct has a human action or omission, conscious and voluntary
[...]”. From this perspective, the classes Action and Omission were disconnected as of
Conduct specializations. In fact, a Conduct has an action/omission.

6. Related Work
OntOWLClean is a proposal for cleaning ontologies using OWL. The approach has been
implemented both in SWOOP tool, as through Protégé [Welty 2006]. In the former case,
the tool is no longer available, and in the latter case the plug-in was discontinued. This
research had defined two ontologies: one with the metaproperties and restrictions and
the other with the semantic definitions to map the classes from a domain ontology in the
metaproperties (classes of OntOWLClean). Each new domain ontology then needed to
be mapped into OntOWLClean. In addition, the tools have had problems to clearly
display or explain the inconsistency.
       WebODE6 was a framework for editing ontologies, which had allowed
Ontological analysis, but the environment was discontinued in 2006. Also, the plug-ins
available for Ontology edition/evaluation in NeOn project7 does not support analysis by
OntoClean. Being a framework for defining, creating and analyzing, WebODE
presented portability issues with other platforms. So an ontology created in WebODE
would hardly be analyzed in another tool.


6
    http://mayor2.dia.fi.upm.es/oeg-upm/index.php/en/old-technologies/60-webode
7
    http://www.neon-project.org/
       UFO [Guizzardi and Wagner 2004] is a foundational ontology for evaluate
business modeling methods, based on other foundational ontologies as
OntoClean/DOLCE. OCIP is designed to be a simple tool to assess domain ontologies,
even without a foundational ontology. OCIP will be transformed into a plug-in for
Protégé that people have a more simple and intuitive interface for analysis. It will be
possible for the user, for example, to choose specific metaproperties for analysis, or
even graphically shows the backbone of ontology (rigid classes). In fact, the
CHRv/Prolog language enables rapid rule prototyping for forward and backward
reasoning to manipulate the metaproperties and restrictions. Although, as a future
research, we plan to deepen the analysis amongst UFO and OCIP.

6. Conclusion and Future Steps
For a correct and ambiguity-free formalization of knowledge, an important and
necessary step is the ontological validation to determine whether there is a close
correlation between the domain knowledge and that modeled. OntoClean has emerged
as a simple and precise methodology by grouping a set of metaproperties, constraints
and assumptions to produce clean and consistent ontological structures. Surprisingly, as
far as we know, it has not been identified any valid implementation of OntoClean
methodology.
        On the other hand, CHRv has become a general and powerful logic language
capable of creating constraint-oriented systems through rewriting, propagation, and
Prolog-based system. Then this project has followed the idea of creating the OCIP: a
Prolog-based implementation (in particular through CHR library), where the OntoClean
metaproperties could be attributed, and consequently, the restrictions could be verified.
Furthermore, the general purpose CHRv language led to the creation of a simple
validator, but that fully covers the methodology proposed by OntoClean.
       Our next step will be to make the OCIP implementation plug-in available, so
that more and more researchers can use and share their experiences, difficulties and
improvements. A key step will be to build a parser able to read the RDF/OWL
ontologies code and automatically create the necessary facts (metaproperties and
subsumption relationships), leaving the user only labeling directly on the facts of the
knowledge base.
       Finally, it’s worthy of remembering that due to the large amount and the
heterogeneity of documents, the ontological evaluation is essential. As soon as more and
more models are being built, justify the need for the plug-in to evaluate whether the
concepts, their relationships and properties, really express what you see.

References
Abdennadher S. and Schütz, H. (1998) “CHRv, a flexible query language,” pp. 1–14.
Baader. F., Calvatese. D., McGuinness. D., Nardi, D. and Patel-Schneider, P. F. (2007)
  “The description logic handbook, theory, implementation, and applications” (2nd
  edition). CAMBRIDGE: Cambridge University Press.
Duck, J. D., Stuckey, P. J., de la Banda, M. J. G. and Holzbaur, C. (2004) “The refined
  operational semantics of constraint handling rules.” in ICLP, ser. Lecture Notes in
  Computer Science, B. Demoen and V. Lifschitz, Eds. Springer, pp. 90–104.
Fages, F., Rodrigues, C. M. O. and Martinez, T. (1998) “Modular CHR with ask and
  tell,” In: CHR ’08: Proc. 5th Workshop on Constraint Handling Rules, (Linz,
  Austria) pp. 95–110.
Frühwirth, T. (2007) “Description logic and rules the CHR way,” pp. 49–61, extended
   Abstract.
Frühwirth, T. (2009) Constraint Handling Rules, 1st ed. New York, NY, USA:
   Cambridge University Press.
Gavanelli, M., Alberti, M. and Lamma, E. (2008) “Integrating abduction and constraint
  optimization in constraint handling rules,” in Proceedings of the 2008 Conference on
  ECAI 2008: 18th European Conference on Artificial Intelligence. Amsterdam, The
  Netherlands, The Netherlands: IOS Press, pp. 903–904. [Online].
Guarino, N. (1998) “Formal Ontology in Information Systems”. Proceedings of the 1st
  International Conference June 6-8, 1998, Trento, Italy, 1st ed. Amsterdam, The
  Netherlands, The Netherlands: IOS Press.
Guarino, N. and Welty, C. (2000) “Ontological analysis of taxonomic relationships,” in
  Conceptual Modeling ER 2000, ser. Lecture Notes in Computer Science, A. Laender,
  S. Liddle, and V. Storey, Eds., vol. 1920.
Guarino, N. and Welty, C. (2004) “An Overview of OntoClean”, in Handbook on
  Ontologies, ser. International Handbooks on Information Systems, S. Staab and R.
  Studer, Eds.
Guizzardi, G. and Wagner G (2004) A Unified Foundational Ontology and some
  Applications of it in Business Modelling. Proc on Ws on Enterprise Modelling and
  Ontologies for interoperability (EMOI-INTEROP).
Rodrigues, C. M. O., Freitas, F. L. G., Silva, E. P., Azevedo, R. R. and Vieira, P. (2015)
  “An ontological approach for simulating legal action in the brazilian penal code,” in
  Proceedings of The 2015 ACM Symposium on Applied Computing, University of
  Salamanca, Salamanca, Spain, pp. 376–381.
Sirin, E., Parsia, B., Grau, B. C., Kalyanpur, A. and Katz, Y. (2007) “Pellet: A practical
   owl-dl reasoner,” Web Semant., vol. 5, no. 2, pp. 51–53.
Studer, R., Benjamins, V.R. and Fensel, D. (1998) “Knowledge engineering: Principles
   and methods,” Data Knowl. Eng., vol. 25, no. 1-2, pp. 161–197.
Welty, C. and Guarino, N. (2001) “Supporting ontological analysis of taxonomic
  relationships,” Data Knowledge Engineering, vol. 39, no. 1, pp. 51–74. [Online].
Welty, C. (2006) “OntOWLClean: Cleaning OWL ontologies with OWL,” in
  Proceeding of the 2006 conference on Formal Ontology in Information Systems.
  Amsterdam, The Netherlands, The Netherlands: IOS Press, pp. 347–359.
Wolf, A. (2005) “Intelligent search strategies based on adaptive constraint handling
 rules.,” Theory and Pratice of Logic Programming 5(4-5), 567-594.