Foundations%20of%20the%20Semantic%20Web:%20Ontology%20Engineering - PowerPoint PPT Presentation

About This Presentation
Title:

Foundations%20of%20the%20Semantic%20Web:%20Ontology%20Engineering

Description:

undefined parent of student. Class (Person partial Being ... Elephant Trap 2: Forgetting to set 'complete' instead of 'partial' In the text or XML version ... – PowerPoint PPT presentation

Number of Views:68
Avg rating:3.0/5.0
Slides: 96
Provided by: rec89
Category:

less

Transcript and Presenter's Notes

Title: Foundations%20of%20the%20Semantic%20Web:%20Ontology%20Engineering


1
Foundations of the Semantic WebOntology
Engineering
  • Building Ontologies 1
  • Alan Rector colleagues

2
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 cant
  • To understand the limits of OWL-DL ontologies
  • Be ready to apply ontology representations in any
    of several use cases
  • In one week, we cant build the
    applicationsbut to build an ontology is only a
    means to building applications
  • Without applications ontologies are pointless

3
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 dont really understand them
  • Concept representations and Ontology
    representations are engineering artefacts
  • At best approximations of our real concepts and
    conceptualisations (ontologies)
  • And we dont even quite understand what we are
    approximating

4
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

5
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 dont have a perfect answer

6
Why its 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

7
Why its 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

8
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

9
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

10
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!

11
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

12
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

13
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
  • Whats in a link?
  • The battles in standards committees continue

14
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
15
The benefitsModularisationBridging Scales and
context with Ontologies
Species
Genes
Protein
Function
Disease
16
Logic Based OntologiesIndividuals, Classes
Properties
Student
Ed_inst
anIndividualClassproperty
17
Logic Based Ontologiesrestrictions
18
Existential RestrictionsThe basic unit of
ontology development
  • class (Student partial Person restriction
    attends someValuesFrom Ed_inst)
  • All students attend some educational
    institution.
  • ?x. Student(x) ? ?y. Ed_inst(y) attends(x,y)
  • Student ? ? attends . Ed_inst

19
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

20
Elephant Trap 1 Restrictions using
AllValuesFrom instead of someValuesFrom
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 AllValuesFrom wrongly often works for a
    time
  • but comes back to bite you later
  • See supplementary exerciseExistentials
    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

21
Definitions
student attends someValuesFrom
CS_student
CS_Module
M0_CS646
attends
John
attends
Lindsey_music_soc
CS_student is defined
22
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 doesnt 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

23
Definitions Primitives (2)
  • Person is a primitive class undefined parent
    of student
  • Class (Person partial Being restriction
    hasPart cardinality2 Leg)
  • Having two legs is an interesting fact about all
    persons, but it doesnt define person

24
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 and
    restriction attends someValuesFrom Ed_inst)

25
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()

26
Elephant Trap 2Forgetting to set complete
instead of partial
  • In the text or XML version
  • in OilEd

27
Lets start at the beginning
  • You now have all you need to implement simple
    existential ontologies, so lets go back to the
    beginning
  • The goal build an ontology for the CS department

28
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

29
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
30
How to group them
Handout
Slides
Computer
Lab
Lecture
Faculty_of_science
Student
Exam
Professor
Department
Lecturer
Computer_Science_Department
Alan_Rector
Course
Module
Resource_centre
CS646
Lab
31
Make some sense of groups
Handout
Slides
Computer
Lab
Lecture
Faculty_of_science
Student
Exam
Professor
Department
Lecturer
Computer_Science_Department
Alan_Rector
Course
Module
Resource_centre
CS646
Lab
32
Disambiguate
Handout
Slides
Computer
Lab_session
Lecture
Student
Exam
Faculty_of_science
Professor
Department
Lecturer
VUM_Computer_Science_Department
Alan_Rector
Course
Module
Resource_centre
CS646
Lab_room
33
Try it again and again
34
Abstract Label
?Things?
Handout
Slides
Educational_activities
Computer
People
Lab_session
Lecture
University_divisions
Student
Exam
Faculty_of_science
Professor
Department
Lecturer
VUM_Computer_Science_Department
Alan_Rector
Teaching_units
Course
Module
Resource_centre
CS646
Lab_room
35
Link them up
?Things?
Handout
Slides
Educational_activities
Computer
People
Lab_session
Lecture
University_divisions
Student
Exam
Faculty_of_science
Professor
Department
Lecturer
attend
VUM_Computer_Science_Department
Alan_Rector
teach
Teaching_units
Course
Module
Resource_centre
CS646
Lab_room
36
More Links
?Things?
Handout
Slides
Educational_activities
Computer
People
Lab_session
Lecture
University_divisions
Student
Exam
Faculty_of_science
Professor
Department
Lecturer
VUM_Computer_Science_Department
Alan_Rector
Teaching_units
Course
Module
Resource_centre
CS646
Lab_room
37
Fill in and ladder up
?Things?
Handout
Slides
Teaching_activities
Computer
People
Lab_session
caucasian
Lecture
Black
University_divisions
study
Student
English
Exam
girl
Faculty_of_science
Professor
man
Department
boy
Lecturer
elderly
woman
VUM_Computer_Science_Department
Alan_Rector
child
adult
Teaching_units
Course
Module
Resource_centre
CS646
Lab_room
38
Build from the middle outPick some links
taxonomies
includes
Teaching_unit Module Course
teaches
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?

39
Part of the Simplest OilEd Version
40
Create the pieces
  • Create properties and inverses
  • teaches/isTaughtBy
  • includes/belongsTo
  • Create subclasses of Teaching_activity
  • Lecture, Lab, exam and make them disjoint
  • Create subclasses of Teaching_unit
  • ACS_module, Third_year_module

41
Now add some facts/rules
  • Rules
  • All ACS modules include labs and exams
  • Third year modules include lectures exams
  • Create the restrictions that match these rules
  • Create the defined class of modules that include
    exams? modules than include lectures? modules
    that include labs?
  • Test the classification

42
Before Classification
Click here to classify
complete button setmakes this a defined class
Must have clicked here to start reasoner
note inherited restriction
43
After Classification
green symbol never to be clicked
red symbol always click before saving
Classifier has inferred whichkinds of modules
are subsumed by defined (pink)classes
44
More University Rules
  • Modules come in two formats Short fat and
    Long thin
  • There are no mixed modules a module must be
    either short fat or long thin
  • All modules must be one or the other.
  • University rules say that ACS modules are Short
    fat and Third Year modules are Long Thing

45
To express these rules
  • First we need to work out how to say long_thin
    and short_fat
  • We want to express the modifier
  • is short fat,
  • Modifiers are best expressed as property
  • Something like has_pattern short-fat or
    has-pattern long_thin
  • So we need to create
  • The class Module_pattern
  • Create a new class called Module_pattern
  • There are likely to be other kinds of patterns so
    we want a distinctive name
  • We may have other patterns so make a class
    Pattern, and make Module_pattern a subclass of
    Pattern
  • Create two subclasses of Module_pattern
    long_thin and short_fat and make them disjoint
  • Create a functional property hasPattern
  • Use them to make the restrictions on ACS_module
    and Third_year module
  • Make Short_fat_module and Long_thin_module
    defined subclasses of Module

46
in detail
  • To ACS, add the restriction restriction
    hasFormat someValuesFrom Short_fat_format)
  • To third_year_module, add the restriction
    restriction hasFormat someValuesFrom
    Long_thin_format)
  • Define the class
  • Short_fat_module complete
    Module restriction hasFormat
    someValuesFrom Short_fat)
  • Define Long_thin_module the same way
  • Run the classifier

47
Module_format corresponding Property
functional (aka unique/single-valued)
48
Disjointness axiom
49
Definition of Long Thin ModuleNote difference
between Long_thin_module and Long_thin_formatA
Long_thin_module is a module that has format
Long_thin_format
50
Revised Overall Structure
After classificationThe hierarchy is a directed
acyclic graph Many concepts have two or more
parents But the classifier has done the work
Before classificationHierarchy of Modules is
flat A very simple tree. Everything has exactly
one parent
kb3-02
51
After designing a sectionAlways 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_

52
Probes_ (correctly) unsatisfiable
53
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

54
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
55
Principles for Untangling
  • Build the ontology out of simple trees of
    primitives (Taxonomies)
  • No primitive has more than one primitive parent
  • All primitives are disjoint
  • All multiple classification done by classifier
  • (NB only works for Domain ontology
  • but thats the part we are interested in most of
    the time)

56
How to untangle a Taxonomy
  • Identify the dimensions
  • In this case Person, Sex, Academic rank, age
    group, ethnicity
  • Decide what will be the base primitive
  • In this case Person is the obvious choice
  • For each other dimension create a property and a
    set of values.
  • The values should form simple trees. If they
    dont, more untangling is needed.
  • For each set of values decide
  • Are the values disjoint? - should (almost)
    always be true
  • Can the list of values be guaranteed complete?
    (covering, exhaustive)
  • Can something have only one value (property is
    functional) or many
  • For later it is also useful to note
  • Are they intrinsic (e.g. sex) or accidental
    (e.g. academic rank)
  • Might they change with time?

57
Identify characteristics of each dimensionChoose
a value type and values for each
Person Sex Sex_VT male female Academic post Academic_rank Professor_rank Lecturer_rank Age group AgeGroupVT adult_age_gp child_age_gp Ethnicity (admin) Ethnicity_VT white_ethn non_white_ethn black_ethn Indian_ethn Oriental_ethn
hasSex functionaly hasAcademicRank functionaly (University rule) hasAgeGroup functionaly has_ethnicity functional ?y (admin y)
natural kind Self Standing Y disjointycovering yintrinsic ytemporal n Self Standing N disjoint ycovering nintrinsic ntemporal y Self Standing Y disjoint ycovering y (view)intrinsic ytemporal y Self Standing N disjoint y (fiat)covering nintrinsic ytemporal n Self Standing N
58
Create the pieces in Oiled
  • Create the ValueTypes or Roles or Patterns and
    their values.
  • Be sure to make the values disjoint
  • Make the values covering if required
  • Create the properties for each value type

59
Creating a non-covering value type
  • Noncovering values usually go under their own
    headings
  • we will put Academic_Rank under
    Functional_Role(reason to be explained later
    but it could go under ValueType)
  • NB The class Professor_rank is not the same
    thing as the class Professor.
  • Professor is a kind of Person
  • Professor_rank is a kind of Role or (or you might
    want to call it a rank).
  • Make the values disjoint

60
For a Value Type for a Disjoint Covering case
Create the hierarchy of primitives
NB the value type class female is different from
the class Woman Woman is a kind of
Person female is a kind of property of the class
Person
61
Create a disjoint subclass axiom
What it means
Sex_value_type subclass-of female or
male means Sex_value_type? female?
male This means Sex_value_type ?
female? male We already know female ?
Sex_Value_typemale ? Sex_Value_type therefore
(female? male ) sex_ValueType therefore Sex_val
ue_type (female? male ) and by the way
disjoint(female male)
disjoint box ticked
62
Implement them in OilEd as if filling in a form
  • Everything defined as a subclass of the base type
  • Put every class directly under Person
  • Undo any existing hierarchy
  • If helpful actually make a table

Child hasSex - AcademicRank - hasAgeGroup child_age_gp hasEthnicity -
Professor - Professor_rank - -
Black woman professor female Professor_rank - black_ethnicity
  • Turn the table entries into definitions
  • Child Person and hasAgeGroup someValuesFrom
    child_age_group
  • Professor Person and hasAcademicRank
    someValuesFrom Professor_rank
  • Black_woman_professor Person and
    hasAcademicRank someValuesFrom Professor and
    hasSex someValuesFrom female and
    hasEnthnicity someValuesFrom BlackEthnicity

63
Person after untanglingbefore after
classification
After classification Deep hierarchy many
multiple parents,all inferred by reasoner
Before classification flat no multiple parents
64
Graphical Before
65
Graphical After
66
Exercise Finish Untangling Child-Adult for
yourself
  • File is Teaching-4-01-people-tangled.daml

67
Elephant Trap 3OWL is Open WorldAll Only
And and Or
  • So far, all knowledge bases have used only
  • SomeValuesFrom ? existential qualifiers
  • instersection-of ? ? and
  • Almost entirely implicit in the software
  • Open World
  • Everything is possible until we say it is
    impossible
  • Negation as unsatisfiability
  • Closed world
  • Nothing is true unless we say it is
  • Negation as failure
  • Almost all other software uses closed world
    reasoning
  • Databases, logic programming, query languages,

68
Lab-free courses
  • Define a module without labs
  • Easiest way is to define a module with labs and
    then negate it
  • class(Module_with_labs complete
    restriction includes someValuesFrom Lab)
  • Already in the KB
  • class(Module_without_labs complete (not
    Module_with_labs))
  • Module_without_labs ought to subsume
    Third_year_module
  • Because third year modules have no labs

69
Try 1 doesnt work? Why?What have we not told
the reasoner?
70
Try 1 Situation
includes allValuesFrom
(every)Module
Teaching_activity
Teaching_Activity
Module
Lab3
Lab5
Lab1
Lec2
m_ac_1
Lec3
Lec4
m_ac_2
m_y3_1
Exam2
Exam4
includes
m_y3_2
Note not necessarily every module includes some
teaching activity
71
Try 2
  • No disjointness axioms between lectures, labs and
    exams.
  • Classes in OWL are non-disjoint by default
  • Must add disjointness axioms explicitly
  • all-disjoint(Lecture Lab Exam)

72
Try 2 Add disjointness
includes allValuesFrom
(every)Module
Teaching_activity
(only)
Module
Lab3
Lab5
Lab1
m_ac_1
Lec3
Lec2
Lec4
m_ac_2
m_y3_1
Exam2
Exam4
includes
m_y3_2
Labs are separate from lectures and exams
73
Try 2 no change
  • What the reasoner knows
  • Third_year_module restriction includes
    someValuesFrom Exam restriction includes
    someValuesFrom Lecture disjoint(Lecture,
    Exam, Lab)
  • Would it be consistent with these axioms to have
    a Third_year_module with Labs?
  • Try it and see if it turns red

74
Try 2 plus probe
  • Satisfiable
  • Does not turn red

Probe not red
75
but it would still be consistent to add
includes allValuesFrom
(every)Module
Teaching_activity
(only)
Module
Lab3
Lab5
Lab1
m_ac_1
Lec3
Lec2
Lec4
m_ac_2
m_y3_1
Exam2
Exam4
includes
m_y3_2
76
Try 3What else to add
  • OWL is Open World
  • The definitions mean at least this much and
    anything else
  • Must add explicit closure restrictions
  • Must say either
  • Third year modules may have only lectures exams
  • Third_year_module restriction (includes
    allValuesFrom (Lecture or Exam)) Why
    have we said or rather than and?
  • Third year modules may not have labs
  • Third_year module subclass-of not
    (restriction includes someValuesFrom Lab)
    Why is the not outside the parentheses?
  • Are these definitions equivalent?
  • Lets find out

typo in handout
77
Add closure axiom
includes allValuesFrom
(every)Module
Teaching_activity
Module
Lab3
Lab5
Lab1
m_ac_1
Lec3
Lec2
Lec4
m_ac_2
m_y3_1
Exam2
Exam4
includes
m_y3_2
Ruled out by closure axiom
78
Both work but try1 try2 are not equivalent
why?
79
Several reasons
  • Primitive rather than defined
  • partial rather than complete (Elephant trap 2)
  • Make them defined no change
  • There could be other sorts of teaching activities
  • Claims these are the ONLY teaching activities
  • Add subclass-axiomTeaching_activity subclass-of
    (Lab or Exam or Lecture
  • Modules could include other things than teaching
    activities
  • Say that modules only include teaching activities
  • Add to Modulerestriction includes allValuesFrom
    TeachingActivity

80
Then they are equivalent
s show equivalence
81
NB In this case, this is probably false
  • There could be many more kinds of teaching
    activity
  • Therefore, best to remove the covering axiom
  • Teaching_activity is a self-standing concept
  • Therefore do not close
  • Example used for demonstration of effect of
    covering axioms

82
There are many ways to represent the same thing
  • Consider if
  • Every person has some sex
  • Person hasSex someValuesFrom Sex_VT
  • male, female are kinds of sex
  • male ? Sex_VT female ? Sex_VT
  • male, female covers sex i.e are the only kinds
    of sex
  • Sex_VT ? (male ? female)Sex_VT ? (male ? female)
  • Or consider (in this case where hasSex is
    functional)
  • Woman_1 ? Person hasSex someValuesFrom female
  • Woman_2 ? Person hasSex allValuesFrom female
  • Woman_3 ? Person hasSex someValuesFrom (not male)
  • Woman_4 ? Person hasSex allValuesFrom (not male)

83
Which to choose Style
  • Choose the form least dependent on global axioms
  • If possible use someValuesFrom
  • Choose the simpler expression
  • Avoid negation except where needed
  • Do not try to show how clever you are
  • Makes for unreadable, hard to maintain ontologies
  • Just as clever code makes for unreadable, hard
    to maintain programs
  • Make all primitives disjoint trees
  • Joint them with definitions
  • Conceptual Lego

84
Elephant Trap 4Domain Range Constraints are
RestrictionsOther ways to say onlyDomain
Range Constraints
  • In OWL, domain range constraints are equivalent
    to allValuesFrom restrictions
  • teaches domain Academic_staff range Module
  • Thing teaches allValuesFrom ModuleThing
    isTaughtBy allValuesFrom Academic_staff
  • Violating domain/range constraints can
  • Cause the thing to be classified (coerced) to the
    specified class
  • This is often the wrong behaviour
  • If other axioms make this inconsistent, then the
    class in question will be unsatisfiable
  • And possible much of the rest of the ontology

85
Domain / Range Constraints
  • Reclassification / Coercion
  • Bad style
  • Hard to debug
  • Likely to lead to problems in interpretation
    later
  • Consider
  • One person thinks Hamlet represents Module
    about the play Hamlet, the other that Hamlet
    represents the play Hamlet
  • One person thinks Red is a nick-name for
    somebody, the other a colour.
  • One person enters the restriction or Axiom
  • Red teaches someValuesFrom Hamlet
  • The decision is made

86
Red is coerced to Academic_staffHamlet is
Coerced to a teaching unitAnd at the same time
the ontology is de-normalisedsince Hamlet has
two parentsIf it had been properly normalised,
and plays were disjoint from Teaching_units, it
would be unsatisfiably.
87
If Ontology Properly Normalised,All (domain)
primitives are Disjoint
  • Easy to do by making all primitive branches of
    each tree disjoint.
  • Although OilEd/OWL often returns these as huge
    lists of pairwise disjoint axioms after saving
  • a round-tripping problem to be fixed in the
    next generation of tools
  • If this is done, then most domain/range errors
    result in unsatisfiable (inconsistent) models.

88
But you dont getmuch helpfinding errorThe
double classification is lostby OilEd
89
Domain Range Constraints
  • Despite problems, domain/range constraints are
    important to avoid errors
  • e.g. has_academic_rank someValuesFrom
    Professorinstead of has_academic_rank
    someValuesFrom Professor_rank
  • However, likely to make much of ontology turn red
  • Look for base cause
  • Make small incremental changes
  • Arguments about how to implement in future still
    raging

90
Elephant Trap 5Confusing kind-of part-of
  • Many systems deal in in parts and wholes
  • Anatomy
  • Computer aided design
  • Airbus UK, Boeing, etc
  • Stock control
  • Organisational charts
  • Document maps
  • XML is essential about documents their parts
  • Web pages

91
Library systems often mix the two (and others)
  • Librarians / thesauri speak of
  • is broader than / is narrower than
  • Precisely to avoid implying which logical
    relation applies
  • Formal representations must make the distinction
  • Typical thesaurus
  • Computer Microcomputer Mother_board
    CPU Pentium
    Transistor

isKindOf
isPartOf
isPartOf
isKindOf
isPartOf
92
Logic based systems must unscramble
  • Kinds
  • Computer MicroComputer
  • Parts of Computer CPU Pentium
  • Circuit Components Transistor
  • Parts
  • Microcomputer Mother_board CPU
    Transistor

93
but note we can rebuild withConceptual Lego
  • restriction isPartOf someValuesFrom Computer
    restriction isPartOf someValuesFrom
    Microcomputer restriction isPartOf
    someValuesFrom Mother_board restriction
    isPartOf someValuesFrom CPU
    restriction isPartOf someValuesFrom Pentium
    restriction isPartOf someValuesFrom
    transistor
  • The restrictions reconstruct the original
    hierarchy
  • but make context explicit
  • Would not work for isColourOf or isDesignedBy
  • The new ontology is re-usable
  • The old was not.

94
Part-whole relations
  • A major field in their own right
  • Merology Merotopology
  • Subject of a major part of later lectures on
    patterns

95
Additional Definitions and Notes
96
Summary of Questions for untangling
  • Disjoint - nothing can be of both kinds
  • As far as possible, all primitive taxonomies
    should be disjoint.
  • When not disjoint, make artificially disjoint and
    use a multi-valued (non-functional) property
  • In example make ethnicity disjoint
    having an ethnicity
    potentially multivalued
  • Covering
  • Exhausts all possibilities
  • True for qualitative formal/legal partitions
    (fiat partitions)
  • Almost never true of natural kinds

97
Summary of Questions for untangling (2)
  • Intrinsic
  • Characteristics inherent in the individual
    described
  • Opposite is accidental
  • Dont change (or do so only in odd circumstances)
  • Sex is intrinsic
  • Academic status is accidental
  • Having a fever, or not, is accidental
  • Temporal
  • Value depends on time
  • child-adult
  • Academic rank
Write a Comment
User Comments (0)
About PowerShow.com