1 / 43

Universidade do Minho Departamento de Informática Lic. Matemática e Ciências de Computação

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@correio.ci.uminho.pt}. Integration of OntoClean in XOL XOL++. The Objectives. Motivations Ontology XOL Language OntoClean Method

ovid
Download Presentation

Universidade do Minho Departamento de Informática Lic. Matemática e Ciências de Computação

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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@correio.ci.uminho.pt} Departamento de Informática Universidade do Minho

  2. Integrationof OntoClean in XOL XOL++ Departamento de Informática Universidade do Minho

  3. The Objectives • Motivations • Ontology • XOL Language • OntoClean Method • XOL++ • Example • Future Work Departamento de Informática Universidade do Minho

  4. Motivations • Know How acquired; • Stimulant subject; • Topic Maps specification; Departamento de Informática Universidade do Minho

  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. Departamento de Informática Universidade do Minho

  6. XOL 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 Departamento de Informática Universidade do Minho

  7. 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. Departamento de Informática Universidade do Minho

  8. 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> Departamento de Informática Universidade do Minho

  9. XOL LanguageTypes Specification <!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); Departamento de Informática Universidade do Minho

  10. XOL Language <class> <name>...</name> <documentation>...</documentation> <subclass-of>...</subclass-of> </class> Departamento de Informática Universidade do Minho

  11. XOL LanguageTypes Specification <!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]; Departamento de Informática Universidade do Minho

  12. XOL Language <slot> <name>...</name> <documentation>...</documentation> <domain>...</domain> <slot-value-type>...</slot-value-type> </slot> Departamento de Informática Universidade do Minho

  13. XOL LanguageTypes Specification <!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]; Departamento de Informática Universidade do Minho

  14. XOL LanguageTypes Specification <!ATTLIST slot type ( template | own ) "own"> SlotAtt : : T : (Template | OWN); Template = token; Departamento de Informática Universidade do Minho

  15. XOL Language <individual> <name>...</name> <documentation>...</documentation> <instance-of>...</instance-of> <slot-values> <name>...</name> <value>...</value> </slot-values> </individual> Departamento de Informática Universidade do Minho

  16. XOL LanguageTypes Specification <!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]; Departamento de Informática Universidade do Minho

  17. XOL LanguageTypes Specification <!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; • <!ELEMENT facet-values (name, value*)> • Facet-values : : N : Name • V : Value-set; Departamento de Informática Universidade do Minho

  18. XOL LanguageInvariants Specification FunctionsnameCC 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 Departamento de Informática Universidade do Minho

  19. XOL LanguageInvariants Specification FunctionsnameSS 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 Departamento de Informática Universidade do Minho

  20. XOL LanguageInvariants Specification FunctionsnameII 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 Departamento de Informática Universidade do Minho

  21. XOL LanguageInvariants Specification FunctionsnameCS 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 Departamento de Informática Universidade do Minho

  22. XOL LanguageInvariants Specification FunctionsnameCI 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 Departamento de Informática Universidade do Minho

  23. XOL LanguageInvariants Specification FunctionsnameSI 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 Departamento de Informática Universidade do Minho

  24. XOL LanguageInvariants Specification FunctionsubClass 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 Departamento de Informática Universidade do Minho

  25. XOL LanguageInvariants Specification FunctiontransClass 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. Departamento de Informática Universidade do Minho

  26. 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; Departamento de Informática Universidade do Minho

  27. 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; Departamento de Informática Universidade do Minho

  28. 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; Departamento de Informática Universidade do Minho

  29. 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; • Carriesanti-unity (~U), if all its instances can possible be non-wholes (~U implies -U). Unity = CARRIES_UC |NOTCARRIES_UC | ANTI-UNITY; Departamento de Informática Universidade do Minho

  30. 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 Departamento de Informática Universidade do Minho

  31. 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. Departamento de Informática Universidade do Minho

  32. OntoClean MethodAll possible combinations of the meta-properties Departamento de Informática Universidade do Minho

  33. XOL++Architecture XOL OntoClean Specification XOL++ Departamento de Informática Universidade do Minho

  34. XOL++Types 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; Departamento de Informática Universidade do Minho

  35. XOL++Invariants Specification • Addiction meta-properties invariants: FunctionantiRig Specification: antiRig : Ontology -> bool antiRig(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 Departamento de Informática Universidade do Minho

  36. XOL++Invariants Specification Functionunity Specification: unity : Ontology -> bool unity(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 Departamento de Informática Universidade do Minho

  37. XOL++Invariants Specification FunctionantiUnity Specification: antiUnity : Ontology -> bool antiUnity(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 Departamento de Informática Universidade do Minho

  38. XOL++Invariants Specification Functionident Specification: ident : Ontology -> bool ident(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 Departamento de Informática Universidade do Minho

  39. XOL++Invariants Specification Functiondepend Specification: depend : Ontology -> bool depend(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 Departamento de Informática Universidade do Minho

  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. Departamento de Informática Universidade do Minho

  41. 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"}, {})}); Departamento de Informática Universidade do Minho

  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. Departamento de Informática Universidade do Minho

  43. Future Work • Adding OntoClean top-level to XOL++; • XOL++2VDM; • VDM2XOL++; • Graphic Interface. Departamento de Informática Universidade do Minho

More Related