780 likes | 894 Views
Ontology Engineering Quality, Modular architectures, Reengineering, and Design patterns. Aldo Gangemi Laboratory for Applied Ontology The Institute for Cognitive Science and Technologies National Research Council, Rome, Italy a.gangemi@istc.cnr.it. Summary.
E N D
Ontology EngineeringQuality, Modular architectures, Reengineering, and Design patterns Aldo Gangemi Laboratory for Applied Ontology The Institute for Cognitive Science and Technologies National Research Council, Rome, Italy a.gangemi@istc.cnr.it
Summary • Use cases and competency questions (only some of them are detailed) • Quality of ontologies • Ontology engineering techniques (recap) • Modular architectures • Reengineering • Ontology design patterns
Factual cases for ontologies • The red block is on the blue one • My car has four (five) wheels • Prof. Enrico Motta has trespassed a speed limit • Last transaction by Mr. Blackspot is suspicious • The monitored network had a serious breakdown • Atlantic Enterprise II carries drifting longlines onboard • Monna Lisa painting at the Louvre shows a mysteriously smiling woman • The Aegyptian sphinx is not the same as the Greek one, but they result to be sometimes blended in Renaissance art • ACME e-publishing workflow requires that the project manager is responsible for …, the author has the duty to … the assistant is obliged to …
Competency questions wrt those facts • Is the yellow block on the blue one? And the green one? • Is there any spare wheel that I can borrow? • When, where and why has Enrico trespassed the limit? • Why do you think Mr. Blackspot transaction is suspicious? • Is it convenient to repair the network for the monitoring company? • Are there any vessels from a nearby country in the marine area 50N060W, which can fish a Thunnus alalunga stock through allowed techniques? • Is it convenient for the monitoring company to repair the broken network? • How to index the Monna Lisa painting at the Louvre? • What’s the difference between (and examples of) respective shinges? • Did the last ACME e-publishing procedure conform to the workflow?
What is an ontology? (yet another!) Logic Representation Meaning Cognition Embodiment Context Agreement Society Culture • A • Formal, • Partial Specification of a • Conceptualization • Conceived by some • Rational agent for some (good or bad) • Reason, and made in order to • Negotiate that conceptualization with • Someone else, or to • Reuse it. • Extended from Gruber 1993, Guarino 1998.
Ontologies and KBs An axiomatic theory: the Blocks World Ontology (BWO) • Signature: {On, Block} • Axioms: • On(x,y) Block(x) Block(y) • On(x,y) On(y,x) • (On(x,y) On(y,z)) On(x,z) A model M in BWO: • On(red_block#1, blue_block#1) • On(green_block#1, red_block#1) • On(yellow_block#1, red_block#1)
Quality dimensions of ontologies? Coverage (all the intended models) Precision (only the intended models) Flexibility (relatedness of alternative intended models, scoping both inside and outside of a domain) policy, economics, regulations, geography, sociology, … contexts of many kinds …
Quality checking of BWO • Does BWO catch all the intended models • Is BWO so precise in order to exclude non-intended models (if any): • “Non-Vertical” On? • “Unconnected” On? • Is BWO flexible enough? • Can we specialize the theory in order to make it more precise? • Can we represent supplementary entities (“surface”, “cable”)? • Can we encode alternative axioms for the same signature, in the same or a different theory?
Beware overcommitment! BWO*: • Signature: {On, Constitution, Moves, Block, Substance, Atom, Baby, …} • Axioms: {!}
Recap on ontology engineering techniques • Extraction of patterns by machine learning or NLP (pull) • Generation of SW documents through Web Services-oriented pre-designed patterns (push) • Reuseof existing/legacy ontologies (pull/push) • Simple reuse(pull/push) • Standards for definite domains (push) • Building blocks (pull/push) • Re-engineeringof metadata (pull) • Emergence from communities of interest (pull/push)
Anyway … • From KE viewpoint, there is a need for - a priori or a posteriori: • Selection: how can ontologies survive and reproduce? • Quality: what expertise is addressed, and to what extent? • Modularity: is there a viable design methodology for ontology architectures? • Reusability: are there viable ontological components to reuse (e.g. as building blocks)? • Inherent needs for Semantic Web deployment? • All of them?
Modular architectures Semantics of modules Stratification Foundational and core ontologies
Semantics of modules • Island namespaces • E.g. XML-OWL: local consistency must be ensured • Dependent modules • E.g. “uses” relation in Ontolingua or Loom: augmented local consistency must be ensured • Partially ordered modules • Precise semantics: global consistency must be ensured • Contexts • E.g. C-OWL: bridging axioms (local semantics)
OWL-RDF (XML) namespaces Merging of namespaces No global consistency required ns1: vehicles ns2: traffic norms
An ontology dependency graph uses ns1: vehicles ns2: traffic norms Merging of namespaces Consistency in ns2 of used elements from ns1 must be ensured
An ontology library inherits from ns1: vehicles ns2: traffic norms Merging of namespaces Consistency of all elements from ns1 must be ensured in ns2
Where are the modules? CYC theory of flogistum mereology conversational maxims “how to make a coffee” for dummies WordNet DOLCE Allen’s event calculus Italian Constitution RCC-8 the modal jazz harmony UMLS Metathesaurus railway timetable Roget’s thesaurus AAT thesaurus the glossary of nurses
Stratification (qualified building blocks) • Stacking of modules in types (strata), with additional constraints over: • Coverage • Reusability • Axiomatization depth • An example
WonderWeb Foundational Ontologies Library (WFOL) • Reflects different commitments and purposes, rather than a single monolithic view. • A starting point for building new foundational or domain ontologies. • A reference point for easy and rigorous comparison among different ontological approaches. • A common framework for analyzing, harmonizing and integrating existing ontologies and metadata standards.
The structure of the WFOL • Modules are organized along two dimensions: • visions, corresponding to basic ontological choices made • specificity, corresponding to the levels of generality/specific domains Choose Vision Mappings between Visions/Modules and Lexicons 4D 3D Top Choose Specificity Formal Links Between Visions and Modules Bank Law Single Module Single Vision
Formal criteria (concepts) • individuals vs. concepts (Italy vs. Country) • 3D vs 4D (Italy at once vs. Italy as temporalworm) • unity vs. amount (Italy vs. soil of Italy) • regions vs. entities (Italy extension vs. territory of Italy) • descriptions and situations (a plan and its execution, a theory and its models, a norm and its cases)
Formal criteria (relations) • symmetry (e.g. “connection” vs. “part”) • transitivity (e.g. “ancestor” vs. “father”) • immediacy vs. compositionality (e.g. “part” vs. “systemic component”) • intra-categoriality vs. inter-categoriality (e.g. “part” vs. “participation”) • schematic primitives • part, function, structure, participation, inherence, localization, succession, satisfaction …
A toy example of stratification Foundational ontology (domain-independent) {Object, Process, Part, Time, Location, Representation, Plan, …} inherits from Core ontology (specific domain-independent) {Work of art, Painting technique, Author, Artistic period, Plastic art, Interpretation, …} inherits from Domain ontology {Sculpture,Restoration, Mythical being, Caryatid, Doric order, Armilla, Fresco, …}
A realistic example of stratification Fishery domain ontologies – “roof” and “floors” OntoWordNet fragments – “posts” Fishery core ontology – “walls” DOLCE foundational ontology – “ground” The “toyhouse”
Sample taxonomy within library Class(Moonfish#10 partial (Agrovoc) Class(Saltwater_Fishes#10 partial (Agrovoc) Class(Fishes#10 partial (Agrovoc) Class(Aquatic-Organism#3 partial (COF) Class(LIFE_FORM$ORGANISM$BEING$LIVING_THING#4 partial (ONTOWordNet) Class(agentive-physical-object#1 partial (DOLCE) …
An example of a foundational ontology: DOLCE • DOLCE: a Descriptive Ontology for Linguistic and Cognitive Engineering • Cognitive/Linguistic bias • Categories mirror cognition, common sense, and the lexical structure of natural language. • Categories asconceptual containers:no “deep” metaphysical implications wrt “true” reality. • No deep commitment on “intellectual economy” of the primitive notions: focus on the simplicity of the representation primitives.
Basic Ontological Choices in DOLCE • Objects/Substances and Events/Processes are distinct categories linked by the relation of participation. • Qualitiesinhere in Objects (Physical Qualities) or in Events (Temporal Qualities) and they corresponds to “individualized properties”, i.e. they inhereonlyin a specific entity, e.g. “the color of this court”, “the velocity of this serve”, etc. • Each kind of Quality is associated to a Quality Space representing the space of the values that qualities can assume • Quality Spaces are neither in time nor in space • Different quality spaces associated to the same kind of Quality are admitted. • Space and Time are specific quality spaces • Different kinds of space and time are admitted. • Different Objects or Events can be spatio-temporally co-localized: the relation of constitution is considered • Rich axiomatization of classes and relations
Reengineering legacy metadata A complete workflow
Ontologies by precision game(x) activity(x) athletic game(x) game(x) court game(x) athletic game(x) y. played_in(x,y) court(y) tennis(x) court game(x) double fault(x) fault(x) y. part_of(x,y) tennis(y) game athletic game court game tennis outdoor game field game football tennis football game field game court game athletic game outdoor game Axiomatized theory Taxonomy game NT athletic game NT court game RT court NT tennis RT double fault Glossary DB/OO scheme Catalog Thesaurus Ontological precision precision: the ability to catch/provide all and only the intended meaning (for a logical theory, to be satisfied by intended models)
AQUACULTURE (AGROVOC) NT1 fish culture NT2 fish feeding NT1 frog culture … rt agripisciculture rt aquaculture equipment … Fr aquaculture Es acuicultura AQUACULTURE (ASFA) NT Brackishwater aquaculture NT Freshwater aquaculture NT Marine aquaculture rt Aquaculture development rt Aquaculture economics rt Aquaculture engineering rt Aquaculture facilities Biological entity (FIGIS) Taxonomic entity Major group Order Family Genus Species Capture species (filter) Aquaculture species (filter) Production species (filter) Tuna atlas spec SUBJECT (OneFish) Aquaculture Aquaculture development Aquaculture economics @ Aquaculture planning Legacy aquaculture hierarchies from fishery terminology systems
Sample data model analysis/conversion in FOS Term ≠ Concept Term String Concept = Class BT ≈ subsumption between classes RT ≈ top-level conceptual relation {Descriptors} = {Classes},{Individuals} Individual Class Concept ≠ Subject/Topic/Domain
Datamodel mapping and its effects on translation • agrovoc_schema:Descriptor • agrovoc:River • agrovoc:Amazon • owl:Class(agrovoc:River) • owl:Individual(agrovoc:Amazon(rdf:type agrovoc:River))
Datamodel mapping and required transformations • agrovoc:RT • agrovoc_schema:Descriptor • agrovoc:Fishing_vessel • agrovoc:Fishing_gear • agrovoc:Fishing_vessel,RT,Fishing_gear • Class(agrovoc:Fishing_vessel partial (restriction(agrovoc:RT someValuesFrom(agrovoc:Fishing_gear))))
FOS library Fishery domain ontologies – “roof” and “floors” OntoWordNet fragments – “posts” Fishery core ontology – “walls” DOLCE foundational ontology – “ground” The “toyhouse”
Alignment method • Does the class to be aligned (or a proximal one) exist in COF? if so, align it, e.g.: • Class(figis:Marine_fishes partial cof:Aquatic_organism) • Otherwise: • Does the class exist in WordNet? if so, include the OntoWordNet fragment related to that class into the library, e.g.: • Class(figis:Aquatic_resource partial own:Asset) • Otherwise: • Do the experts think the class is very relevant for fishery, or the class has a rich taxonomy under it? if so, create a small taxonomy that sketches a new core ontology for that domain, e.g. by adapting them from OntoWordNet (e.g. vehicles, equipments) or from existing ones (biomedicine) • Otherwise: • Align the class directly under a generic class in the foundational layer, e.g.: • Class(figis:Country partial dolce+:Political_Geographic_Object).
Minimal case of alignment dolce+:physical_object foundational cof:Fishing_vessel core asfa:Trawlers domain = rdfs:subClassOf
Sample taxonomy within library Class(Moonfish#10 partial (Agrovoc) Class(Saltwater_Fishes#10 partial (Agrovoc) Class(Fishes#10 partial (Agrovoc) Class(Aquatic-Organism#3 partial (COF) Class(LIFE_FORM$ORGANISM$BEING$LIVING_THING#4 partial (ONTOWordNet) Class(agentive-physical-object#1 partial (DOLCE) …
Consistency issues • From ASFA formalization, we get that: • Class(asfa:Trap_fishing partial asfa:Catching_methods) • Class(asfa:Trap_fishing partial asfa:Fishing) • From the alignment, we know that (transitively): • Class(asfa:Catching_methods partial dolce+:Object), while Class(asfa:Fishing partial dolce+:Activity) • And from DOLCE+ we know that: • (disjointClasses dolce+:Object dolce+:Activity) • Hence the intersection: • Class(asfa:Trap_fishing partial (intersection asfa:Catching_methods asfa:Fishing)) • is inconsistent
BT polysemy issues • From AGROVOC we know: • Class(agrovoc:Blood_Cells partial agrovoc:Blood) • From a biomedical ontology(ON9.3) we know: • Class(agrovoc:Blood_Cells partial on9:Cellular_structure) • Class(agrovoc:Blood partial on9:Tissue) • (DisjointClasses on9:Tissue on9:Cellular_structure) • Class(on9:Tissue partial • (restriction(dolce+:constituent someValuesFrom(on9:Cellular_structure)))) • Therefore, on the basis of ON9, we can suggest that • Class(agrovoc:Blood_Cells partial agrovoc:Blood) • is a polysemous use of the BT relations (a cellular structure cannot be a tissue, because the two classes are disjoint), therefore it is possibly the case that: • Class(agrovoc:Blood_Cells partial • (restriction(dolce+:constituent someValuesFrom(agrovoc:Blood))))