Title: Departamento de Inform
1- Universidade do Minho
- Departamento de Informática
- Lic. Matemática e Ciências de Computação
- Laboratório de Métodos Formais
- Marlene Azevedo
- marlene.azevedo_at_correio.ci.uminho.pt
-
2- Integration of OntoClean in XOL
- XOL
3The Objectives
- Motivations
- Ontology
- XOL Language
- OntoClean Method
- XOL
- Example
- Future Work
4Motivations
- Know How acquired
- Stimulant subject
- Topic Maps specification
5 Ontology
- an ontology is, simply, a specification of a
conceptualization -
by Gruber - An ontology is a description (like a formal
specification of a program) of the concepts and
relationships that can exist for an agent or a
community of agents - Ontologies are about languages for expressing
contracts between entities - Ontologies provide a way of capturing a shared
understanding of terms that can be used by humans
and programs to aid in information exchange and
gives a method of providing a specification of a
controlled vocabulary.
6XOL LanguageIntroduction
- The language, called XOL, is designed to provide
a format for exchanging ontology definitions
among a set of interested parties - The syntax of XOL is based on XML
- The design of XOL deliberately uses a generic
approach to define ontologies, meaning that the
single set of XML tags (defined by a single XML
DTD) defined for XOL can describe any and every
ontology. - Significant differences between an ontology
- and an DTD.
Invariants
7XOL LanguageComparing DTD and Ontologies
- There is nothing in a DTD that corresponds to
the is-a relationship of classes that is usually
central in an ontology - DTDs lack any notion of inheritance
- DTDs provide a rather poor means for defining the
semantics of elementary tags - DTDs define the order in which tags appear in a
document.
8XOL Language
- ltontologygt
- ltnamegt...lt/namegt
- ltkb-typegt...lt/kb-typegt
- ltpackagegt...lt/packagegt
- ltversiongt...lt/versiongt
- ltdocumentationgt...lt/documentationgt
- ltclassgt...lt/classgt
- ltclassgt...lt/classgt
- ...
- ltslotgt...lt/slotgt
- ltslotgt...lt/slotgt
- ...
- ltindividualgt...lt/individualgt
- ltindividualgt...lt/individualgt
- ...
- lt/ontologygt
9XOL LanguageTypes Specification
- lt!ELEMENT (module ontology kb database
dataset) (name, ( kb-type db-type)?, package?,
version?, documentation?, class, slot,
individual)gt - module, ontology, kb, database, dataset are all
synonymous - Ontology N Name
- C1 Kb-type Db-type
- P Package
- V Version
- D Documentation
- C Classes
- S Slots
- I Individuals
- inv ont snameCC(ont) and snameSS(ont) and
snameII(ont) and snameCS(ont) and
snameCI(ont) and snameSI(ont) and
subClass(ont) and transClass(ont)
10XOL Language
- ltclassgt
- ltnamegt...lt/namegt
- ltdocumentationgt...lt/documentationgt
- ltsubclass-ofgt...lt/subclass-ofgt
- lt/classgt
11XOL LanguageTypes Specification
- lt!ELEMENT class ( (name, documentation?,
- ( subclass-of
instance-of slot-values))gt - Classes C-Id Class
- C-Id token
- Class N Name
- D Documentation
- C2 (C-Id Slot-values)-set
- P C-Id-set
-
12 XOL Language
- ltslotgt
- ltnamegt...lt/namegt
- ltdocumentationgt...lt/documentationgt
- ltdomaingt...lt/domaingt
- ltslot-value-typegt...lt/slot-value-typegt
- lt/slotgt
13XOL LanguageTypes Specification
- lt!ELEMENT slot (name, documentation?, ( domain
slot-value-type slot-inverse slot-cardinality
slot-maximum-cardinality slot-minimum-cardinali
ty slot-numeric-minimum slot-numeric-maximum
slot-collection-type slot-values ) gt - Slots S-Id Slot
- S-Id token
- Slot N Name
- D Documentation
- C3 Slot-Ch-set
- A SlotAtt
- P C-Id-set
14XOL LanguageTypes Specification
- lt!ATTLIST slot
- type ( template own )
"own"gt - SlotAtt T (Template OWN)
- Template token
15 XOL Language
- ltindividualgt
- ltnamegt...lt/namegt
- ltdocumentationgt...lt/documentationgt
- ltinstance-ofgt...lt/instance-ofgt
- ltslot-valuesgt
- ltnamegt...lt/namegt
- ltvaluegt...lt/valuegt
- lt/slot-valuesgt
- lt/individualgt
16XOL LanguageTypes Specification
- lt!ELEMENT individual
- (name, documentation?,
(type slot-values)gt - Individuals I -Id Individual
- I -Id token
- Individual N Name
- D Documentation
- C4 (Type Slot-values)-set
- P C-Id-set
17XOL LanguageTypes Specification
- lt!ELEMENT slot-values (name, value,
(facet-values value-type inverse cardinality
maximum-cardinality minimum-cardinality
numeric-minimum numeric-maximum some-values
collection-type documentation-in-frame))gt - Slot-values N Name
- V Value-set
- C5 Val_Ch-set
lt!ELEMENT facet-values (name, value)gt Facet-valu
es N Name V
Value-set
18XOL LanguageInvariants Specification
- Function snameCC
- Specification
- snameCC Ontology -gt bool
- snameCC(ont) forall c1 in set dom ont.C
- (forall c2 in set (dom ont.C)\c1
ont.C(c1).N ltgt ont.C(c2).N) - Description
- The same name may not be used for two classes
-
19XOL LanguageInvariants Specification
- Function snameSS
- Specification
- snameSS Ontology -gt bool
- snameSS(ont) forall s1 in set dom ont.S
- (forall s2 in set (dom ont.S)\s1
ont.S(s1).N ltgt ont.S(s2).N) - Description
- The same name may not be used for two slots
-
20XOL LanguageInvariants Specification
- Function snameII
- Specification
- snameII Ontology -gt bool
- snameII(ont) forall i1 in set dom ont.I
- (forall i2 in set (dom ont.I)\i1
ont.I(i1).N ltgt ont.I(i2).N) - Description
- The same name may not be used for two
individuals -
21XOL LanguageInvariants Specification
- Function snameCS
- Specification
- snameCS Ontology -gt bool
- snameCS(ont) forall s in set rng ont.S
(forall c1 in set dom ont.C
ont.C(c1).N ltgt s.N) - Description
- The same name may not be used for class and a
slot -
22XOL LanguageInvariants Specification
- Function snameCI
- Specification
- snameCI Ontology -gt bool
- snameCI(ont) forall i in set rng ont.I
(forall c1 in set dom ont.C
ont.C(c1).N ltgt i.N) - Description
- The same name may not be used for class and an
individual -
23XOL LanguageInvariants Specification
- Function snameSI
- Specification
- snameSI Ontology -gt bool
- snameSI(ont) forall i in set rng ont.I
(forall s1 in set dom ont.S
ont.s(s1).N ltgt i.N) - Description
- The same name may not be used for a slot and
an individual -
24XOL LanguageInvariants Specification
- Function subClass
- Specification
- subClass Ontology -gt bool
- subClass(ont) (forall c in set rng ont.C
- (forall tid in set c.C2
is_Class(ont.C(tid)) gt tid in set dom
ont.C and is_Slot(ont.S(tid)) gt tid in set dom
ont.S and -
is_Individual(ont.I(tid)) gt tid in set dom
ont.I) and - c.P ltgt nil
gt c.P subset dom ont.C) and - (forall s in set rng ont.S s.P
ltgt nil gt s.P subset dom ont.C)
and - (forall i in set rng ont.I i.P
ltgt nil gt i.P subset dom ont.C) - Description
- Each class must be defined earlier than a
subclass -
25XOL LanguageInvariants Specification
- Function transClass
- Specification
- transClass Ontology -gt bool
- transClass(ont) forall c in set (rng ont.C
union rng ont.S union - rng ont.I)
dinter getParentsC(ont.C, c) and -
dinter getParentsS(ont.C, c) and -
dinter getParentsI(ont.C, c) ) - Description
- If class A is a subclass of class B, which
in turn is a subclass of class C, only the
subclass-of link between A and B should be
included in the XOL file. - The getParents function is defined for each
kind of possible element in an Ontology, i.e.,
Class, Slot and Individual. This way, it
calculates a set of set of parents of the current
node, using the relative level of each parent to
decide in witch set to put him. The result is a
structure describing each different level of
parents the node has.
26OntoClean MethodMeta-Properties
- It is a method to clean taxonomies according to
notions such as rigidity, identity, unity and
dependence. The definition of that notions refer
to properties of properties and that are called
meta-properties. - Meta-Properties R Rigidity
- I Identity
- U Unity
- D Dependence
27OntoClean MethodRigidity
- A property P is
- Rigid (R), if and only if is necessarily
essential to all instances - Non-rigid (-R), if and only if is not essential
to some of its instances - Anti-rigid (R), if and only if is not essential
to all its instances. - Rigidity RIGID NON RIGID ANTI
RIGID
28OntoClean MethodIdentity
- A property P
- Carries an IC (I or -I otherwise), if and only
if all its instances can be (re)identified by
means of suitable sameness relation - Supplies an IC (O or -O otherwise), if and only
if such criterion is not inherited by any
subsuming property. - Identity CARRIES_IC NOTCARRIES_IC
- SUPPLIES_IC NOTSUPPLIES_IC
29OntoClean MethodUnity
- A property P
- Carries unity (U or -U otherwise), if there is a
common unifying relation R such that all the
instances of P are wholes under R - Carries anti-unity (U), if all its instances can
possible be non-wholes (U implies -U). - Unity CARRIES_UC NOTCARRIES_UC
- ANTI-UNITY
30OntoClean MethodDependence
- A property P is
- Constantly dependent (D or -D otherwise), if and
only if, for all its instances, there exists
something they are constantly dependent on. - Dependence DEPENDENT NON_DEPENDENT
31OntoClean Method Constraints and Assumptions
- R must subsume R, i.e., R cant subsume R
- U must subsume U, i.e., -U cant subsume U
- U must subsume U, i.e., U cant subsume U
- I must subsume I, i.e., -I cant subsume I
- D must subsume D, i.e., -D cant subsume D
- Properties with incomplete ICs/UCs are disjoint.
32OntoClean Method All possible combinations of
the meta-properties
33XOLArchitecture
OntoClean
XOL
Specification
XOL
34XOLTypes Specification
- Class alteration
- Classes C-Id Class
- C-Id token
- Class N Name
- D Documentation
- C2 (C-Id Slot-values)-set
- P C-Id-set
- M Meta-Properties
35XOLInvariants Specification
- Addiction meta-properties invariants
- Function antiRig
- Specification
- antiRig Ontology -gt bool
- antiRig(ont) forall c in set rng ont.C
- (c.M).R ltAnti_Rigidgt gt
forall cid in set c.C2 - cid in set dom ont.C gt
(ont.C(cid).M).R ltgt ltRigidgt - Description
- An Anti-Rigid class cannot have a Rigid
subclass -
36XOLInvariants Specification
- Function unity
- Specification
- unity Ontology -gt bool
- unity(ont) forall c in set rng ont.C
- (c.M).U ltCarries_UCgt gt forall cid in
set c.C2 - cid in set dom ont.C gt (ont.C(cid).M).U
ltgt ltNotCarries_UCgt - Description
- A Carries-UC class cannot have a NotCarries_UC
subclass -
37XOLInvariants Specification
- Function antiUnity
- Specification
- antiUnity Ontology -gt bool
- antiUnity(ont) forall c in set rng ont.C
- (c.M).U ltAnti_Unitygt gt forall cid in
set c.C2 - cid in set dom ont.C gt (ont.C(cid).M).U
ltgt ltCarries_UCgt - Description
- An Anti-Unity class cannot have a Carries_UC
subclass -
38XOLInvariants Specification
- Function ident
- Specification
- ident Ontology -gt bool
- ident(ont) forall c in set rng ont.C
- (c.M).I ltCarries_ICgt gt forall cid
in set c.C2 - cid in set dom ont.C gt
(ont.C(cid).M).I ltgt ltNotCarries_ICgt - Description
- An Carries_IC class cannot have a NotCarries_IC
subclass -
39XOLInvariants Specification
- Function depend
- Specification
- depend Ontology -gt bool
- depend(ont) forall c in set rng ont.C
- (c.M).D ltDependentgt gt forall cid in set
c.C2 - cid in set dom ont.C gt (ont.C(cid).M).D
ltgt ltNon_Dependentgt - Description
- An Dependent class cannot have a Non_Dependent
subclass -
40 XOL
- Consider some basic design principles
- be clear about the domain
- take identity seriously
- isolate a basic taxonomic structure make an
explicit distinction between types and roles (
and other property kinds) - WELL-FOUNDED ONTOLOGY.
41XOLExample
- ontology OntologyOntology mk_OntologyOntology
( - "Genealogy",
- "ocelot",
- "user",
- "",
- "",
- 1 -gt mk_OntologyClass (
- "Person",
- "The class of all
persons", - 2,3,
- nil,
- mk_OntologyMeta_Properti
es(ltRigidgt,ltNotCarries_ICgt, -
ltCarries_UCgt,ltNon_Depende
ntgt)), - 1 -gt mk_OntologySlot(
- "year-of-birth",
- "An integer that
represents the year the person was born", - "person","1","1800","int
eger", - mk_OntologySlotAtt(ltowngt
), - 1 ),
42 XOL
- The main contributions that my work has
accomplished are - to provide a stronger ontological commitments in
order to get a disciplined taxonomy - to reduce the risk of classification mistakes in
the ontology development process - to simplify the update and maintenance process.
43Future Work
- Adding OntoClean top-level to XOL
- XOL2VDM
- VDM2XOL
- Graphic Interface.