Universidade do Minho Departamento de Informática Lic. Matemática e Ciências de Computação
description
Transcript of Universidade do Minho Departamento de Informática Lic. Matemática e Ciências de Computação
12 Março 2003Departamento de Informática
Universidade do Minho
Universidade do Minho
Departamento de Informática
Lic. Matemática e Ciências de Computação
Laboratório de Métodos Formais
Marlene Azevedo
12 Março 2003Departamento de Informática
Universidade do Minho
Integration of OntoClean in XOL
XOL++
12 Março 2003Departamento de Informática
Universidade do Minho
The Objectives
Motivations
Ontology
XOL Language
OntoClean Method
XOL++
Example
Future Work
12 Março 2003Departamento de Informática
Universidade do Minho
Motivations
Know How acquired;
Stimulant subject;
Topic Maps specification;
12 Março 2003Departamento de Informática
Universidade do Minho
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.
12 Março 2003Departamento de Informática
Universidade do Minho
XOL LanguageIntroduction
Invariants
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 ontologyand an DTD.
12 Março 2003Departamento de Informática
Universidade do Minho
XOL 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.
12 Março 2003Departamento de Informática
Universidade do Minho
XOL Language<ontology>
<name>...</name><kb-type>...</kb-type><package>...</package><version>...</version><documentation>...</
documentation><class>...</class><class>...</class>...<slot>...</slot><slot>...</slot>...<individual>...</individual><individual>...</individual>...
</ontology>
12 Março 2003Departamento de Informática
Universidade do Minho
<!ELEMENT (module | ontology | kb | database | dataset) (name, ( kb-type | db-type)?, package?, version?, documentation?, class*, slot*, individual*)>
– 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);
XOL LanguageTypes Specification
12 Março 2003Departamento de Informática
Universidade do Minho
XOL Language
<class><name>...</name><documentation>...</
documentation><subclass-of>...</subclass-of>
</class>
12 Março 2003Departamento de Informática
Universidade do Minho
<!ELEMENT class ( (name, documentation?, ( subclass-of |instance-of | slot-
values)*)>
Classes = C-Id Class;
C-Id = token;
Class : : N : Name
D : [Documentation]
C2 : (C-Id | Slot-values)-set
P : [C-Id-set];
XOL LanguageTypes Specification
12 Março 2003Departamento de Informática
Universidade do Minho
<slot><name>...</name><documentation>...</
documentation><domain>...</domain><slot-value-type>...</slot-
value-type></slot>
XOL Language
12 Março 2003Departamento de Informática
Universidade do Minho
<!ELEMENT slot (name, documentation?, ( domain | slot-value-type | slot-inverse | slot-cardinality |slot-maximum-cardinality | slot-minimum-cardinality | slot-numeric-minimum | slot-numeric-maximum | slot-collection-type | slot-values )* >
Slots = S-Id Slot;
S-Id = token;
Slot : : N : Name D : [Documentation] C3 : Slot-Ch-set A : SlotAtt P : [C-Id-set];
XOL LanguageTypes Specification
12 Março 2003Departamento de Informática
Universidade do Minho
<!ATTLIST slot type ( template | own ) "own">
SlotAtt : : T : (Template | OWN);
Template = token;
XOL LanguageTypes Specification
12 Março 2003Departamento de Informática
Universidade do Minho
XOL Language
<individual><name>...</name>
<documentation>...</documentation><instance-of>...</
instance-of><slot-values>
<name>...</name>
<value>...</value>
</slot-values></individual>
12 Março 2003Departamento de Informática
Universidade do Minho
<!ELEMENT individual (name, documentation?, (type | slot-
values)*>
Individuals = I -Id Individual;
I -Id = token;
Individual : : N : Name
D : [Documentation]
C4 : (Type | Slot-values)-set
P : [C-Id-set];
XOL LanguageTypes Specification
12 Março 2003Departamento de Informática
Universidade do Minho
<!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)*)>
Slot-values : : N : Name
V : Value-set
C5 : Val_Ch-set;
XOL LanguageTypes Specification
<!ELEMENT facet-values (name, value*)>
Facet-values : : N : Name V : Value-set;
12 Março 2003Departamento de Informática
Universidade do Minho
XOL LanguageInvariants Specification
Function snameCC
Specification:
snameCC : Ontology -> bool
snameCC(ont) == forall c1 in set dom ont.C &
(forall c2 in set (dom ont.C)\{c1} & ont.C(c1).N <> ont.C(c2).N);
Description:
The same name may not be used for two classes
12 Março 2003Departamento de Informática
Universidade do Minho
XOL LanguageInvariants Specification
Function snameSS
Specification:
snameSS : Ontology -> bool
snameSS(ont) == forall s1 in set dom ont.S &
(forall s2 in set (dom ont.S)\{s1} & ont.S(s1).N <> ont.S(s2).N);
Description:
The same name may not be used for two slots
12 Março 2003Departamento de Informática
Universidade do Minho
XOL LanguageInvariants Specification
Function snameII
Specification:
snameII : Ontology -> boolsnameII(ont) == forall i1 in set dom ont.I & (forall i2 in set (dom ont.I)\{i1} & ont.I(i1).N <> ont.I(i2).N);
Description:
The same name may not be used for two individuals
12 Março 2003Departamento de Informática
Universidade do Minho
XOL LanguageInvariants Specification
Function snameCS
Specification:
snameCS : Ontology -> bool
snameCS(ont) == forall s in set rng ont.S & (forall c1 in set dom ont.C & ont.C(c1).N <> s.N);
Description:
The same name may not be used for class and a slot
12 Março 2003Departamento de Informática
Universidade do Minho
XOL LanguageInvariants Specification
Function snameCI
Specification:
snameCI : Ontology -> bool
snameCI(ont) == forall i in set rng ont.I & (forall c1 in set dom ont.C & ont.C(c1).N <> i.N);
Description:
The same name may not be used for class and an individual
12 Março 2003Departamento de Informática
Universidade do Minho
XOL LanguageInvariants Specification
Function snameSI
Specification:
snameSI : Ontology -> bool
snameSI(ont) == forall i in set rng ont.I & (forall s1 in set dom ont.S & ont.s(s1).N <> i.N);
Description:
The same name may not be used for a slot and an individual
12 Março 2003Departamento de Informática
Universidade do Minho
XOL LanguageInvariants Specification
Function subClass
Specification:
subClass : Ontology -> boolsubClass(ont) == (forall c in set rng ont.C & (forall tid in set c.C2 & is_Class(ont.C(tid)) => tid in set dom
ont.C and is_Slot(ont.S(tid)) => tid in set dom ont.S and is_Individual(ont.I(tid)) => tid in set dom ont.I) and c.P <> nil => c.P subset dom ont.C) and (forall s in set rng ont.S & s.P <> nil => s.P subset dom ont.C)
and (forall i in set rng ont.I & i.P <> nil => i.P subset dom ont.C) ;
Description: Each class must be defined earlier than a subclass
12 Março 2003Departamento de Informática
Universidade do Minho
XOL LanguageInvariants Specification
Function transClass
Specification:
transClass : Ontology -> booltransClass(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.
12 Março 2003Departamento de Informática
Universidade do Minho
OntoClean 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;
12 Março 2003Departamento de Informática
Universidade do Minho
OntoClean 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;
12 Março 2003Departamento de Informática
Universidade do Minho
OntoClean 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;
12 Março 2003Departamento de Informática
Universidade do Minho
OntoClean 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;
12 Março 2003Departamento de Informática
Universidade do Minho
OntoClean 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
12 Março 2003Departamento de Informática
Universidade do Minho
OntoClean Method Constraints and Assumptions
~R must subsume ~R, i.e., +R can’t subsume ~R;
+U must subsume +U, i.e., -U can’t subsume +U;
~U must subsume ~U, i.e., +U can’t subsume ~U;
+I must subsume +I, i.e., -I can’t subsume +I;
+D must subsume +D, i.e., -D can’t subsume +D;
Properties with incomplete ICs/UCs are disjoint.
12 Março 2003Departamento de Informática
Universidade do Minho
OntoClean Method All possible combinations of the meta-properties
12 Março 2003Departamento de Informática
Universidade do Minho
XOL++Architecture
OntoClean XOL
XOL++
Specification
12 Março 2003Departamento de Informática
Universidade do Minho
1. 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;
XOL++Types Specification
12 Março 2003Departamento de Informática
Universidade do Minho
XOL++Invariants Specification
2. Addiction meta-properties invariants:
Function antiRig
Specification:
antiRig : Ontology -> boolantiRig(ont) == forall c in set rng ont.C & (c.M).R = <Anti_Rigid> => forall cid in set c.C2 & cid in set dom ont.C => (ont.C(cid).M).R <> <Rigid> ;
Description: An Anti-Rigid class cannot have a Rigid subclass
12 Março 2003Departamento de Informática
Universidade do Minho
XOL++Invariants Specification
Function unity
Specification:
unity : Ontology -> boolunity(ont) == forall c in set rng ont.C & (c.M).U = <Carries_UC> => forall cid in set c.C2 & cid in set dom ont.C => (ont.C(cid).M).U <> <NotCarries_UC> ;
Description: A Carries-UC class cannot have a NotCarries_UC subclass
12 Março 2003Departamento de Informática
Universidade do Minho
XOL++Invariants Specification
Function antiUnity
Specification:
antiUnity : Ontology -> boolantiUnity(ont) == forall c in set rng ont.C & (c.M).U = <Anti_Unity> => forall cid in set c.C2 & cid in set dom ont.C => (ont.C(cid).M).U <> <Carries_UC> ;
Description: An Anti-Unity class cannot have a Carries_UC subclass
12 Março 2003Departamento de Informática
Universidade do Minho
XOL++Invariants Specification
Function ident
Specification:
ident : Ontology -> boolident(ont) == forall c in set rng ont.C & (c.M).I = <Carries_IC> => forall cid in set c.C2 & cid in set dom ont.C => (ont.C(cid).M).I <> <NotCarries_IC> ;
Description: An Carries_IC class cannot have a NotCarries_IC subclass
12 Março 2003Departamento de Informática
Universidade do Minho
XOL++Invariants Specification
Function depend
Specification:
depend : Ontology -> booldepend(ont) == forall c in set rng ont.C & (c.M).D = <Dependent> => forall cid in set c.C2 & cid in set dom ont.C => (ont.C(cid).M).D <> <Non_Dependent> ;
Description: An Dependent class cannot have a Non_Dependent subclass
12 Março 2003Departamento de Informática
Universidade do Minho
XOL++3. 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.
12 Março 2003Departamento de Informática
Universidade do Minho
XOL++Example ontology: Ontology`Ontology = mk_Ontology`Ontology( "Genealogy", "ocelot", "user", "", "", {1 |-> mk_Ontology`Class ( "Person", "The class of all persons", {2,3}, nil, mk_Ontology`Meta_Properties(<Rigid>,<NotCarries_IC>, <Carries_UC>,<Non_Dependent>))}, {1 |-> mk_Ontology`Slot( "year-of-birth", "An integer that represents the year the person was born", {"person","1","1800","integer"}, mk_Ontology`SlotAtt(<own>)}, {1} ), {1 |-> mk_Ontology`Individual( "John", nil, {mk_Ontology`Slot_values("year-of-birth", {"1987"}, {})});
12 Março 2003Departamento de Informática
Universidade do Minho
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.
12 Março 2003Departamento de Informática
Universidade do Minho
Future Work
Adding OntoClean top-level to XOL++;
XOL++2VDM;
VDM2XOL++;
Graphic Interface.