12 Março 2003 Departamento de Informática Universidade do Minho Departamento de Informática Lic....

43
12 Março 2003 Departamento 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 {[email protected]}

Transcript of 12 Março 2003 Departamento de Informática Universidade do Minho Departamento de Informática Lic....

Page 1: 12 Março 2003 Departamento de Informática Universidade do Minho Departamento de Informática Lic. Matemática e Ciências de Computação Laboratório de Métodos.

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

{[email protected]}

Page 2: 12 Março 2003 Departamento de Informática Universidade do Minho Departamento de Informática Lic. Matemática e Ciências de Computação Laboratório de Métodos.

12 Março 2003Departamento de Informática

Universidade do Minho

Integration of OntoClean in XOL

XOL++

Page 3: 12 Março 2003 Departamento de Informática Universidade do Minho Departamento de Informática Lic. Matemática e Ciências de Computação Laboratório de Métodos.

12 Março 2003Departamento de Informática

Universidade do Minho

The Objectives

Motivations

Ontology

XOL Language

OntoClean Method

XOL++

Example

Future Work

Page 4: 12 Março 2003 Departamento de Informática Universidade do Minho Departamento de Informática Lic. Matemática e Ciências de Computação Laboratório de Métodos.

12 Março 2003Departamento de Informática

Universidade do Minho

Motivations

Know How acquired;

Stimulant subject;

Topic Maps specification;

Page 5: 12 Março 2003 Departamento de Informática Universidade do Minho Departamento de Informática Lic. Matemática e Ciências de Computação Laboratório de Métodos.

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.

Page 6: 12 Março 2003 Departamento de Informática Universidade do Minho Departamento de Informática Lic. Matemática e Ciências de Computação Laboratório de Métodos.

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.

Page 7: 12 Março 2003 Departamento de Informática Universidade do Minho Departamento de Informática Lic. Matemática e Ciências de Computação Laboratório de Métodos.

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.

Page 8: 12 Março 2003 Departamento de Informática Universidade do Minho Departamento de Informática Lic. Matemática e Ciências de Computação Laboratório de Métodos.

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>

Page 9: 12 Março 2003 Departamento de Informática Universidade do Minho Departamento de Informática Lic. Matemática e Ciências de Computação Laboratório de Métodos.

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

Page 10: 12 Março 2003 Departamento de Informática Universidade do Minho Departamento de Informática Lic. Matemática e Ciências de Computação Laboratório de Métodos.

12 Março 2003Departamento de Informática

Universidade do Minho

XOL Language

<class><name>...</name><documentation>...</

documentation><subclass-of>...</subclass-of>

</class>

Page 11: 12 Março 2003 Departamento de Informática Universidade do Minho Departamento de Informática Lic. Matemática e Ciências de Computação Laboratório de Métodos.

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

Page 12: 12 Março 2003 Departamento de Informática Universidade do Minho Departamento de Informática Lic. Matemática e Ciências de Computação Laboratório de Métodos.

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

Page 13: 12 Março 2003 Departamento de Informática Universidade do Minho Departamento de Informática Lic. Matemática e Ciências de Computação Laboratório de Métodos.

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

Page 14: 12 Março 2003 Departamento de Informática Universidade do Minho Departamento de Informática Lic. Matemática e Ciências de Computação Laboratório de Métodos.

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

Page 15: 12 Março 2003 Departamento de Informática Universidade do Minho Departamento de Informática Lic. Matemática e Ciências de Computação Laboratório de Métodos.

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>

Page 16: 12 Março 2003 Departamento de Informática Universidade do Minho Departamento de Informática Lic. Matemática e Ciências de Computação Laboratório de Métodos.

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

Page 17: 12 Março 2003 Departamento de Informática Universidade do Minho Departamento de Informática Lic. Matemática e Ciências de Computação Laboratório de Métodos.

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;

Page 18: 12 Março 2003 Departamento de Informática Universidade do Minho Departamento de Informática Lic. Matemática e Ciências de Computação Laboratório de Métodos.

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

Page 19: 12 Março 2003 Departamento de Informática Universidade do Minho Departamento de Informática Lic. Matemática e Ciências de Computação Laboratório de Métodos.

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

Page 20: 12 Março 2003 Departamento de Informática Universidade do Minho Departamento de Informática Lic. Matemática e Ciências de Computação Laboratório de Métodos.

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

Page 21: 12 Março 2003 Departamento de Informática Universidade do Minho Departamento de Informática Lic. Matemática e Ciências de Computação Laboratório de Métodos.

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

Page 22: 12 Março 2003 Departamento de Informática Universidade do Minho Departamento de Informática Lic. Matemática e Ciências de Computação Laboratório de Métodos.

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

Page 23: 12 Março 2003 Departamento de Informática Universidade do Minho Departamento de Informática Lic. Matemática e Ciências de Computação Laboratório de Métodos.

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

Page 24: 12 Março 2003 Departamento de Informática Universidade do Minho Departamento de Informática Lic. Matemática e Ciências de Computação Laboratório de Métodos.

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

Page 25: 12 Março 2003 Departamento de Informática Universidade do Minho Departamento de Informática Lic. Matemática e Ciências de Computação Laboratório de Métodos.

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.

Page 26: 12 Março 2003 Departamento de Informática Universidade do Minho Departamento de Informática Lic. Matemática e Ciências de Computação Laboratório de Métodos.

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;

Page 27: 12 Março 2003 Departamento de Informática Universidade do Minho Departamento de Informática Lic. Matemática e Ciências de Computação Laboratório de Métodos.

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;

Page 28: 12 Março 2003 Departamento de Informática Universidade do Minho Departamento de Informática Lic. Matemática e Ciências de Computação Laboratório de Métodos.

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;

Page 29: 12 Março 2003 Departamento de Informática Universidade do Minho Departamento de Informática Lic. Matemática e Ciências de Computação Laboratório de Métodos.

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;

Page 30: 12 Março 2003 Departamento de Informática Universidade do Minho Departamento de Informática Lic. Matemática e Ciências de Computação Laboratório de Métodos.

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

Page 31: 12 Março 2003 Departamento de Informática Universidade do Minho Departamento de Informática Lic. Matemática e Ciências de Computação Laboratório de Métodos.

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.

Page 32: 12 Março 2003 Departamento de Informática Universidade do Minho Departamento de Informática Lic. Matemática e Ciências de Computação Laboratório de Métodos.

12 Março 2003Departamento de Informática

Universidade do Minho

OntoClean Method All possible combinations of the meta-properties

Page 33: 12 Março 2003 Departamento de Informática Universidade do Minho Departamento de Informática Lic. Matemática e Ciências de Computação Laboratório de Métodos.

12 Março 2003Departamento de Informática

Universidade do Minho

XOL++Architecture

OntoClean XOL

XOL++

Specification

Page 34: 12 Março 2003 Departamento de Informática Universidade do Minho Departamento de Informática Lic. Matemática e Ciências de Computação Laboratório de Métodos.

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

Page 35: 12 Março 2003 Departamento de Informática Universidade do Minho Departamento de Informática Lic. Matemática e Ciências de Computação Laboratório de Métodos.

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

Page 36: 12 Março 2003 Departamento de Informática Universidade do Minho Departamento de Informática Lic. Matemática e Ciências de Computação Laboratório de Métodos.

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

Page 37: 12 Março 2003 Departamento de Informática Universidade do Minho Departamento de Informática Lic. Matemática e Ciências de Computação Laboratório de Métodos.

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

Page 38: 12 Março 2003 Departamento de Informática Universidade do Minho Departamento de Informática Lic. Matemática e Ciências de Computação Laboratório de Métodos.

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

Page 39: 12 Março 2003 Departamento de Informática Universidade do Minho Departamento de Informática Lic. Matemática e Ciências de Computação Laboratório de Métodos.

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

Page 40: 12 Março 2003 Departamento de Informática Universidade do Minho Departamento de Informática Lic. Matemática e Ciências de Computação Laboratório de Métodos.

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.

Page 41: 12 Março 2003 Departamento de Informática Universidade do Minho Departamento de Informática Lic. Matemática e Ciências de Computação Laboratório de Métodos.

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"}, {})});

Page 42: 12 Março 2003 Departamento de Informática Universidade do Minho Departamento de Informática Lic. Matemática e Ciências de Computação Laboratório de Métodos.

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.

Page 43: 12 Março 2003 Departamento de Informática Universidade do Minho Departamento de Informática Lic. Matemática e Ciências de Computação Laboratório de Métodos.

12 Março 2003Departamento de Informática

Universidade do Minho

Future Work

Adding OntoClean top-level to XOL++;

XOL++2VDM;

VDM2XOL++;

Graphic Interface.