920 likes | 1.11k Views
Foundations of the Semantic Web: Ontology Engineering. Building Ontologies 1 Alan Rector & colleagues. Goals for this module. Be able to implement an ontology representation in OWL-DL Be able to elicit a conceptualisation Be able to formulate an ontology representation
E N D
Foundations of the Semantic Web:Ontology Engineering Building Ontologies 1 Alan Rector & colleagues
Goals for this module • Be able to implement an ontology representation in OWL-DL • Be able to elicit a conceptualisation • Be able to formulate an ontology representation • Be able to implement the ontology representationin OWL-DL • Or be able to say you can’t • To understand the limits of OWL-DL ontologies • Be ready to apply ontology representations in any of several use cases • In one week, we can’t build the applications……but to build an ontology is only a means to building applications • Without applications ontologies are pointless
Ontologies and Ontology Representations • “Ontology” – a word borrowed from philosophy • But we are necessarily building logical systems • “Physical symbol systems” • Simon, H. A. (1969, 1981). The Sciences of the Artificial, MIT Press • “Concepts” and “Ontologies”/ “conceptualisations” in their original sense are psychosocial phenomena • We don’t really understand them • “Concept representations” and “Ontology representations” are engineering artefacts • At best approximations of our real concepts and conceptualisations (ontologies) • And we don’t even quite understand what we are approximating
Ontologies and Ontology Representations (cont) • Most of the time we will just say “concept” and “ontology” but whenever anybody starts getting religious, remember… • It is only a representation! • We are doing engineering, not philosophy – although philosophy is an important guide • There is no one way! • But there are consequences to different ways • and there are wrong ways • and better or worse ways for a given purposes • The test of an engineering artefact is whether it is fit for purpose • Ontology representations are engineering artefacts
Approach • Design patterns • Analogous to Java design patterns • Standard ways to do things • Someday they will be supported by tools, buttoday you have to do it yourself • Elephant traps • Common errors & misconceptions • Especially those that seem to work at first • Foundations of knowledge representation • 200 to 2000 years of experience you need not repeat • Common dilemmas & tradeoffs • Things for which we don’t have a perfect answer
Why it’s hard (1) • Clash of intuitions • Subject Matter Experts motivated by custom & practice • Prototypes & Generalities • Logicians motivated by logic & computational tractability • Definitions and Universals • Transparency & predictability vs Rigour & Completeness • Neophytes (you?) caught in the muddled middle
Why it’s hard (2) • Conflation of Models • Meaning: Correctness of Classification & retrieval • Retrieval: Task of discovery, search, or finding • Use: Task of data entry, decision support, … • Acquisition: Task of capturing knowledge • Quality assurance: Criteria for whether it is ‘correct’
Beware • DLs/OWL are not all of Knowledge Representation • Knowledge Representation is not all of the Semantic Web • The Semantic Web is not all of Knowledge Management • The field is still full of controversies • … This module is to teach you about implementation in OWL-DL
Steps in developing an Ontology • Establish the purpose • Without purpose, no scope, requirements, evaluation, • Informal/Semiformal knowledge elicitation • Collect the terms • Organise terms informally • Paraphrase and clarify terms to produce informal concept definitions • Diagram informally • Refine requirements & tests
Steps in implementing an Ontology • Implementation • Develop normalised schema and skeleton • Implement prototype recording intention • Keep track of what you meant to do so you can compare with what happens • Implementing logic-based ontologies is programming • Scale up a bit • Check performance • Populate • Possibly with help of text mining and language technology • Evaluate & quality assure • Against • Include tests for evolution and change management • Monitor use and evolve • Process not product!
If this were three modules… • Knowledge elicitation and analysis • A quick overview • Implementation • A solid introduction • Evolution, ontology alignment, and management • Left for another module • But a major motivation for the methods taught in this module • Normalisation and documentation of intentions
Vocabulary • “Class” “Concept” “Category” “Type” • “Instance” “Individual” • “Property” “Slot” “Relation” “relationtype” “Attribute” Semantic link type” “Role” • but be careful about “role” • Means “property” in DL-speak • Means “role played” in most ontologies • E.g. “doctor_role”, “student role” …
Related ideas • Object Oriented Programming • Java,a C++, Smalltalk, etc. • But OO programming is not knowledge representation • Object Oriented Design (DB world) • But data models are not ontologies either • Although UML is often a good starting point • Additional a-logical issues • Difference between attributes and relations • Issues of life cycle and handling of aggregation$ • Notion of an instance • Implicitly “closed world” • Frame based systems, Semantic Nets,… Traditional AI • Where it all started but real differences • RDF(S), Topic Maps and other node-and-arc symbolisms • “What’s in a link?” • The battles in standards committees continue
Maintaining large Ontologies: Conceptual Lego “SNPolymorphism of CFTRGene causing Defect in MembraneTransport of ChlorideIon causing Increase in Viscosity of Mucus in CysticFibrosis…” “Hand which isanatomicallynormal” OpenGALEN & OWL
Gene in humans Disease caused by abnormality inFunction ofProtein coded bygene in humans Protein coded bygene in humans Function ofProtein coded bygene in humans Species Genes The benefits:ModularisationBridging Scales and context with Ontologies Protein Function Disease
$anS1 $anI5 $anI4 $anI6 $anI7 $anS2 $anI1 $anS3 $I0_U_Man attends $John attends $Lindsey_music_soc Logic Based OntologiesIndividuals, Classes & Properties Student Ed_inst $anIndividualClassproperty
attendssomeValuesFrom Student (every) Ed_inst $anS1 $anI5 $anI4 $anI6 $anI7 $anS2 $anI1 $anS3 $I0_U_Man attends $John attends $Lindsey_music_soc Logic Based Ontologiesrestrictions
Existential RestrictionsThe basic unit of ontology development • class (Student partial PersonrestrictionattendssomeValuesFrom Ed_inst) • “All students attend some educational institution”. x. Student(x) y. Ed_inst(y) & attends(x,y) Student attends . Ed_inst
Summary: Concepts in OWL(The “T-Box”) • Statements about classes/concepts/types • Summarise statements about all individuals in a given class • Interpreted as defining and describing concepts • Existential Graphs • The simplest default form
Elephant Trap 1: Restrictgions using allValuesFor instead of someValuesFor “universal” “existential” • When in doubt, use “SomeValuesFrom” • The existential graph outlines the ontology representation • Use allValuesFrom only when you are sure what you are doing • Using AllValuesFor wrongly often works for a time • but comes back to bite you later • See supplementary exercise:“Existentials & Universals – All & Only” • http://www.cs.man.ac.uk/~rector/CS646/Existentials-and-Universals.ppt • http://www.cs.man.ac.uk/~rector/CS646/existentials-and-universals.daml
attends someValuesFrom Module (every)Student $S1 $M5 $M4 $M6 $M7 $S2 $M1_CS622 $S3 Definitions student & attendssomeValuesFrom CS_student CS_Module $M0_CS646 attends $John attends $Lindsey_music_soc CS_student is “defined”
Definitions & Primitives (1) • CS_student is “defined” • The definition is sufficient to recognise a CS student. • The words tell us what it means • “A computer science student not taking computer science” doesn’t make sense Class( CS_student complete Student & restriction attends someValuesFrom CS_Module) x. CS_student(x) y. CS_module(y) & attends(x,y) Student attends . CS_module
Definitions & Primitives (2) • Person is a “primitive class” undefined parent of student Class (Person partial BeingrestrictionhasPartcardinality=2 Leg) • Having two legs is an interesting fact about all persons, but it doesn’t define person
Definitions &Primitives (3) • In this representation, we have also represented Student as primitive (marked by keyword partial) • although some would argue we could have defined the concept • What should be primitive? • No absolute rules • Must start from some primitives someplace • Often evolve from primitives to definitions • E.g. we might decide to evolve the ontology to define a “student” as “a person who attends an educational institution” class (Student sameClass-as Person andrestriction attends someValuesFrom Ed_inst)
Definitions &Primitives: Summary • Primitive classes • Only necessary conditions • i.e. use only ‘’ • OWL class( … partial …) or subclass-of • Defined classes • Necessary and jointly sufficient conditions • i.e. use ‘’ • OWL classs(…complete…) equivalent-classes(…)
Elephant Trap 2:Forgetting to set “complete” insteadof “partial” • In the text or XML version • in OilEd
Let’s start at the beginning • You now have all you need to implement simple existential ontologies, so let’s go back to the beginning • The goal build an ontology for the CS department
Purpose and Scope • Describe CS department to allow • annotation of pages on semantic web If this works • Express rules for equal opportunities for personnel and rules about the format of modules and courses
What concepts do we need? CS646 Lecture Department Student Computer_Science_Department Professor Faculty_of_science Handout Course Resource_centre Seat Lecturer Exam Slides Lab Computer Alan_Rector
How to group them Handout Slides Computer Lecture Lab Faculty_of_science Student Exam Professor Department Lecturer Computer_Science_Department Alan_Rector Course Module Resource_centre CS646 Lab
Make some sense of groups Handout Slides Computer Lecture Lab Faculty_of_science Student Exam Professor Department Lecturer Computer_Science_Department $Alan_Rector Course Module Resource_centre $CS646 Lab
Disambiguate Handout Slides Computer Lab_session Lecture Student Exam Faculty_of_science Professor Department Lecturer $Alan_Rector $VUM_Computer_Science_Department Course Module Resource_centre $CS646 Lab_room
Abstract & Label ?Things? Handout Slides Educational_activities Computer People Lab_session Lecture University_divisions Student Exam Faculty_of_science Professor Department Lecturer $Alan_Rector $VUM_Computer_Science_Department Teaching_units Course Module Resource_centre $CS646 Lab_room
Link them up ?Things? Handout Slides Educational_activities Computer People Lab_session Lecture University_divisions Student Exam Faculty_of_science Professor Department Lecturer attend $Alan_Rector $VUM_Computer_Science_Department teach Teaching_units Course Module Resource_centre $CS646 Lab_room
More Links ?Things? Handout Slides Educational_activities Computer People Lab_session Lecture University_divisions Student Exam Faculty_of_science Professor Department Lecturer $Alan_Rector $VUM_Computer_Science_Department Teaching_units Course Module Resource_centre $CS646 Lab_room
Fill in and ladder up ?Things? Handout Slides Teaching_activities Computer People Lab_session caucasian Lecture Black study University_divisions Student English girl Exam Faculty_of_science Professor man Department boy Lecturer elderly woman $Alan_Rector $VUM_Computer_Science_Department child adult Teaching_units Course Module Resource_centre $CS646 Lab_room
1..* ?..* 1..* 0..* 0..* 1..* Build from the middle outPick some links & taxonomies includes teaches Teaching_unit Module Course Teaching_activities Lecture Lab_session Exam Academic_staff Professor Lecturer belongs_to is_taught_by gives is_given_by • QUESTIONS: • Is every Teaching_unit taught by a member of academic staff? vice versa? • Is every Teaching_unit given by a member of academic_staff? vice versa? • Does every Teaching_activity belong to a Teaching_unit? vice versa?
Some general rules • Several kinds of modules • For now we will consider ACS_modules and Third_yr_modules • All ACS modules include labs and exams • Third year modules include lectures exams • Form the defined class of modules that include exams? modules than include lectures? modules that include labs?
Click here to classify complete button setmakes this a defined class Before Classification Must have clicked here to start reasoner note “inherited” restriction
green symbol never to be clicked After Classification red symbol always click before saving Classifier has inferred whichkinds of modules are subsumed by defined (pink)classes
Another Question • All ACS modules are short-fat modules • What is “short-fat” • What is the opposite of “short-fat” • “Long-thin” • Nothing can be both “short-fat” and “long-thin” • They are “disjoint” • Let’s call this a Format and make it a kind of ValueType • Modules are “independent” or “self-standing” concepts • ValueTypes are “dependent” or “refining” or “non-self-standing” concepts • Usually get a property to go with them • “unique” – can have only a single value • Sometimes called “functional”
Axioms for University Rules • class (ACS_modulerestriction hasFormat someValuesFrom Short_fat) • class (Third_year_module restriction hasFormat someValuesFrom Long_thin) • class(Short_fat_module complete (Module & hasFormat someValuesFrom Short_fat) • …
But if we clear out the defined bits, it is just a set of trees Trees of primitives are the basic modules of a normalised ontology
Check to see if we are right • It should not be possible to have • a course which is both short_fat and long_thin • a short_fat third_year_course • a long_thing ACS_course • So define them and see if they turn red(are unsatisfiable) • Convenient to name them “Probe_…”
Apply the same techniques to a more complicated tangle • University policy requires that all departments have both women and men as academic staff • So we need to sort out the tangle of kinds of people
People from our first analysis plus a few extra the University is worried about for Equal Opportunities compliance People caucasian Black Student Nonblack_lecturer English girl Black_lecturer Professor man boy Lecturer Young_lecturer elderly woman $Alan_Rector child adult Woman_lecturer Woman_professor