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 Formais Marlene Azevedo
12 Março 2003 Departamento de Informática Universidade do Minho Integration of OntoClean in XOL XOL++
12 Março 2003 Departamento de Informática Universidade do Minho The Objectives Motivations Ontology XOL Language OntoClean Method XOL++ Example Future Work
12 Março 2003 Departamento de Informática Universidade do Minho Motivations Know How acquired; Stimulant subject; Topic Maps specification;
12 Março 2003 Departamento 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 2003 Departamento de Informática Universidade do Minho XOL Language Introduction 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 ontology and an DTD.
12 Março 2003 Departamento de Informática Universidade do Minho XOL Language Comparing 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 2003 Departamento de Informática Universidade do Minho XOL Language...
12 Março 2003 Departamento de Informática Universidade do Minho – 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 Language Types Specification
12 Março 2003 Departamento de Informática Universidade do Minho XOL Language...
12 Março 2003 Departamento 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 Language Types Specification
12 Março 2003 Departamento de Informática Universidade do Minho... XOL Language
12 Março 2003 Departamento de Informática Universidade do Minho Slots = S-Id Slot; S-Id = token; Slot : : N : Name D : [Documentation] C3 : Slot-Ch-set A : SlotAtt P : [C-Id-set]; XOL Language Types Specification
12 Março 2003 Departamento de Informática Universidade do Minho <!ATTLIST slot type ( template | own ) "own"> SlotAtt : : T : (Template | OWN); Template = token; XOL Language Types Specification
12 Março 2003 Departamento de Informática Universidade do Minho XOL Language......
12 Março 2003 Departamento 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 Language Types Specification
12 Março 2003 Departamento de Informática Universidade do Minho Slot-values : : N : Name V : Value-set C5 : Val_Ch-set; XOL Language Types Specification Facet-values : : N : Name V : Value-set;
12 Março 2003 Departamento de Informática Universidade do Minho XOL Language Invariants 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 2003 Departamento de Informática Universidade do Minho XOL Language Invariants 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 2003 Departamento de Informática Universidade do Minho XOL Language Invariants Specification Function snameII Specification: snameII : Ontology -> bool snameII(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 2003 Departamento de Informática Universidade do Minho XOL Language Invariants 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 2003 Departamento de Informática Universidade do Minho XOL Language Invariants 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 2003 Departamento de Informática Universidade do Minho XOL Language Invariants 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 2003 Departamento de Informática Universidade do Minho XOL Language Invariants Specification Function subClass Specification: subClass : Ontology -> bool subClass(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 2003 Departamento de Informática Universidade do Minho XOL Language Invariants Specification Function transClass Specification: transClass : Ontology -> 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.
12 Março 2003 Departamento de Informática Universidade do Minho OntoClean Method Meta-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 2003 Departamento de Informática Universidade do Minho OntoClean Method Rigidity 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 2003 Departamento de Informática Universidade do Minho OntoClean Method Identity 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 2003 Departamento de Informática Universidade do Minho OntoClean Method Unity 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 2003 Departamento de Informática Universidade do Minho OntoClean Method Dependence 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 2003 Departamento de Informática Universidade do Minho OntoClean 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.
12 Março 2003 Departamento de Informática Universidade do Minho OntoClean Method All possible combinations of the meta-properties
12 Março 2003 Departamento de Informática Universidade do Minho XOL++ Architecture OntoCleanXOL XOL++ Specification
12 Março 2003 Departamento 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 2003 Departamento de Informática Universidade do Minho XOL++ Invariants Specification 2.Addiction meta-properties invariants: Function antiRig Specification: antiRig : Ontology -> bool antiRig(ont) == forall c in set rng ont.C & (c.M).R = => forall cid in set c.C2 & cid in set dom ont.C => (ont.C(cid).M).R <> ; Description: An Anti-Rigid class cannot have a Rigid subclass
12 Março 2003 Departamento de Informática Universidade do Minho XOL++ Invariants Specification Function unity Specification: unity : Ontology -> bool unity(ont) == forall c in set rng ont.C & (c.M).U = => forall cid in set c.C2 & cid in set dom ont.C => (ont.C(cid).M).U <> ; Description: A Carries-UC class cannot have a NotCarries_UC subclass
12 Março 2003 Departamento de Informática Universidade do Minho XOL++ Invariants Specification Function antiUnity Specification: antiUnity : Ontology -> bool antiUnity(ont) == forall c in set rng ont.C & (c.M).U = => forall cid in set c.C2 & cid in set dom ont.C => (ont.C(cid).M).U <> ; Description: An Anti-Unity class cannot have a Carries_UC subclass
12 Março 2003 Departamento de Informática Universidade do Minho XOL++ Invariants Specification Function ident Specification: ident : Ontology -> bool ident(ont) == forall c in set rng ont.C & (c.M).I = => forall cid in set c.C2 & cid in set dom ont.C => (ont.C(cid).M).I <> ; Description: An Carries_IC class cannot have a NotCarries_IC subclass
12 Março 2003 Departamento de Informática Universidade do Minho XOL++ Invariants Specification Function depend Specification: depend : Ontology -> bool depend(ont) == forall c in set rng ont.C & (c.M).D = => forall cid in set c.C2 & cid in set dom ont.C => (ont.C(cid).M).D <> ; Description: An Dependent class cannot have a Non_Dependent subclass
12 Março 2003 Departamento 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 2003 Departamento 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(,,, ))}, {1 |-> mk_Ontology`Slot( "year-of-birth", "An integer that represents the year the person was born", {"person","1","1800","integer"}, mk_Ontology`SlotAtt( )}, {1} ), {1 |-> mk_Ontology`Individual( "John", nil, {mk_Ontology`Slot_values("year-of-birth", {"1987"}, {})});
12 Março 2003 Departamento 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 2003 Departamento de Informática Universidade do Minho Future Work Adding OntoClean top-level to XOL++; XOL++2VDM; VDM2XOL++; Graphic Interface.