Description Logics BMI 210/CS 270 2/8/2011 and 2/10/2011 Nigam Shah Center for Biomedical Informatics Research.

Slides:



Advertisements
Similar presentations
CH-4 Ontologies, Querying and Data Integration. Introduction to RDF(S) RDF stands for Resource Description Framework. RDF is a standard for describing.
Advertisements

Chronos: A Tool for Handling Temporal Ontologies in Protégé
An Introduction to RDF(S) and a Quick Tour of OWL
Based on “A Practical Introduction to Ontologies & OWL” © 2005, The University of Manchester A Practical Introduction to Ontologies & OWL Session 3: Additional.
Protege Tutorial Based on ProtegeOWLTutorial at protege website.
Protege Tutorial Based on ProtegeOWLTutorial at protege website.
Tutorial Le Phuoc Son Hoang Huu Hanh Hue University.
Of 27 lecture 7: owl - introduction. of 27 ece 627, winter ‘132 OWL a glimpse OWL – Web Ontology Language describes classes, properties and relations.
OWL TUTORIAL APT CSA 3003 OWL ANNOTATOR Charlie Abela CSAI Department.
1 Ontology Language Comparisons doug foxvog 16 September 2004.
Protégé Classes, Properties and Instances Susana R. de Novoa UNIK4710.
Chapter 8: Web Ontology Language (OWL) Service-Oriented Computing: Semantics, Processes, Agents – Munindar P. Singh and Michael N. Huhns, Wiley, 2005.
From SHIQ and RDF to OWL: The Making of a Web Ontology Language
ANHAI DOAN ALON HALEVY ZACHARY IVES Chapter 12: Ontologies and Knowledge Representation PRINCIPLES OF DATA INTEGRATION.
Semantic Web Ontologies (continued) Expressing, Querying, Building CS 431 – April 6, 2005 Carl Lagoze – Cornell University.
Editing Description Logic Ontologies with the Protege OWL Plugin.
Logics for Data and Knowledge Representation
Ontology Development Kenneth Baclawski Northeastern University Harvard Medical School.
An Introduction to Description Logics. What Are Description Logics? A family of logic based Knowledge Representation formalisms –Descendants of semantic.
1 MASWS Multi-Agent Semantic Web Systems: OWL Stephen Potter, CISA, School of Informatics, University of Edinburgh, Edinburgh, UK.
Okech Odhiambo Faculty of Information Technology Strathmore University
Protege OWL Plugin Short Tutorial. OWL Usage The world wide web is a natural application area of ontologies, because ontologies could be used to describe.
8/11/2011 Web Ontology Language (OWL) Máster Universitario en Inteligencia Artificial Mikel Egaña Aranguren 3205 Facultad de Informática Universidad Politécnica.
OWL and SDD Dave Thau University of Kansas
Building an Ontology of Semantic Web Techniques Utilizing RDF Schema and OWL 2.0 in Protégé 4.0 Presented by: Naveed Javed Nimat Umar Syed.
Based on “A Practical Introduction to Ontologies & OWL” © 2005, The University of Manchester A Practical Introduction to Ontologies & OWL Session 1: Primitive.
OWL 2 in use. OWL 2 OWL 2 is a knowledge representation language, designed to formulate, exchange and reason with knowledge about a domain of interest.
Semantic Web Andrejs Lesovskis. Semantic Web layers.
Michael Eckert1CS590SW: Web Ontology Language (OWL) Web Ontology Language (OWL) CS590SW: Semantic Web (Winter Quarter 2003) Presentation: Michael Eckert.
Temporal Reasoning and Planning in Medicine Frame-Based Representations and Description Logics Yuval Shahar, M.D., Ph.D.
BioHealth Informatics Group A Practical Introduction to Ontologies & OWL Session 2: Defined Classes and Additional Modelling Constructs in OWL Nick Drummond.
Umi Laili Yuhana December, Context Aware Group - Intelligent Agent Laboratory Computer Science and Information Engineering National Taiwan University.
Modulo3 Protegè Tutorial UNIVERSITA’ DI CAMERINO Corso di laurea in Informatica (classe 23/S) Barbara Re Anno Accademico
Advanced topics in software engineering (Semantic web)
EEL 5937 Ontologies EEL 5937 Multi Agent Systems Lecture 5, Jan 23 th, 2003 Lotzi Bölöni.
SKOS. Ontologies Metadata –Resources marked-up with descriptions of their content. No good unless everyone speaks the same language; Terminologies –Provide.
Based on “A Practical Introduction to Ontologies & OWL” © 2005, The University of Manchester A Practical Introduction to Ontologies & OWL Session 2: Defined.
© O. Corcho, MC Suárez de Figueroa Baonza 1 OWL and SWRL Protégé 4: Building an OWL Ontology Mari Carmen Suárez-Figueroa, Oscar Corcho {mcsuarez,
Artificial Intelligence 2004 Ontology
OilEd An Introduction to OilEd Sean Bechhofer. Topics we will discuss Basic OilEd use –Defining Classes, Properties and Individuals in an Ontology –This.
Organization of the Lab Three meetings:  today: general introduction, first steps in Protégé OWL  November 19: second part of tutorial  December 3:
2nd Feb 2005Protege-OWL tutorial, © 2005 Univ. of Manchester1 Protégé-OWL Tutorial Session 2: Defined Classes Nick Drummond.
2nd Sept 2004UK e-Science all hands meeting1 Designing User Interfaces to Minimise Common Errors in Ontology Development Alan Rector, Nick Drummond, Matthew.
Metadata Common Vocabulary a journey from a glossary to an ontology of statistical metadata, and back Sérgio Bacelar
Ontology Engineering Lab #3 – September 16, 2013.
Practical RDF Chapter 12. Ontologies: RDF Business Models Shelley Powers, O’Reilly SNU IDB Lab. Taikyoung Kim.
ONTOLOGY ENGINEERING Lab #2 – September 8,
ONTOLOGY ENGINEERING Lab #3 – September 15,
1 Dr Alexiei Dingli Introduction to Web Science Modelling Knowledge.
Ontology Engineering Lab #4 - September 23, 2013.
WonderWeb. Ontology Infrastructure for the Semantic Web. IST Project Review Meeting, 11 th March, WP2: Tools Raphael Volz Universität.
OWL Web Ontology Language Summary IHan HSIAO (Sharon)
BioHealth Informatics Group Copyright © 2005, The University of Manchester1 A Practical Introduction to Ontologies & OWL Additional Exercises: Common Errors.
Of 29 lecture 15: description logic - introduction.
Based on “A Practical Introduction to Ontologies & OWL” © 2005, The University of Manchester A Practical Introduction to Ontologies & OWL Session 1: Primitive.
Ontology Technology applied to Catalogues Paul Kopp.
Ccs.  Ontologies are used to capture knowledge about some domain of interest. ◦ An ontology describes the concepts in the domain and also the relationships.
OWL (Ontology Web Language and Applications) Maw-Sheng Horng Department of Mathematics and Information Education National Taipei University of Education.
Based on ProtegeOWLTutorial at protege website
Editing OWL Ontologies with Protégé
ece 720 intelligent web: ontology and beyond
Semantic Web Foundations
Ontologies.
Session 2: Defined Classes Nick Drummond
CS646: OWL Tutorial (session 2)
ece 720 intelligent web: ontology and beyond
Session 1: Primitive Classes Nick Drummond
CIS Monthly Seminar – Software Engineering and Knowledge Management IS Enterprise Modeling Ontologies Presenter : Dr. S. Vasanthapriyan Senior Lecturer.
University of Manchester
Presentation transcript:

Description Logics BMI 210/CS 270 2/8/2011 and 2/10/2011 Nigam Shah Center for Biomedical Informatics Research

Kinds of knowledge representations Network-based representations Semantic networks Frame systems (e.g., OKBC) Rule-based systems (e.g., JESS) Logic programming First-order logic (e.g., Prolog) Description logic (e.g., OWL)

Examples of Description Logics KL-ONE The first, prototypical language Krypton Introduced A-box and T-box Classic Attempted to maximize tractability Loom Tried to be all things to all people GRAIL Developed for representation of GALEN terminology OWL W3C’s Web Ontology Language

Semantic Web Scenario Semantic Web for Tourism Goal: Find matching vacation destinations for a customer I am looking for a destination in Australia with a beach Tourism Web

Tourism Semantic Web OWL Metadata (Individuals) OWL Metadata (Individuals) OWL Metadata (Individuals) OWL Metadata (Individuals) Tourism Ontology Web Services Destination Accommodation Activity

6 Part 2 Part 4 Part 3 Part 5 Part 1 Based on a four hour ISMB 2008 “How to make useful ontologies for biomedicine”

Overview of OWL Nigam Shah

OWL Web Ontology Language Based on predecessors (DAML+OIL) A Web Language: Based on RDF(S) An Ontology Language: Based on logic Three varieties in OWL 1.0 (Feb 2004) OWL-full OWL-DL (“OWL”) OWL-Lite Three varieties in OWL 2.0 (Oct 2009) EL – basis in the EL family of description logics QL – allows reasoning by rewriting queries into a standard relational query language RL – allows reasoning to be implemented using rule-based technologies

The Three Sublanguages of OWL 1.0 OWL DL Highly expressive while retaining computational completeness OWL Full Maximum expressiveness with syntactic freedom of RDF with no computational guarantees OWL Lite Classification hierarchy and simple constraints

OWL 2 EL (sound and complete reasoning in polynomial time) OWL 2 QL ( Reasoning, query answering in Nlog time ) OWL 2 RL ( sound reasoning, query answering are worst-case polynomial ) The three flavors of OWL 2.0

OWL constructs

Working with OWL syntax is not easy

Tools are being developed for OWL Even with nice XML tools, RDF syntax is not very nice to work with

Open world vs. Closed world Open world: A statement can be true unless explicitly known to be false. What is not known/stated can be true. Closed world: A statement is false unless explicitly known to be true. What is not known is assumed to be false.

Basic Protégé-OWL usage Nigam Shah

Protégé OWL: a GUI environment OWL environment within PROTÉGÉ framework Most widely used tool for editing and managing OWL ontologies Approx 166,000 registered users

Protégé OWL features Loading and saving OWL files & databases Graphical editors for class expressions Access to description logics (DL) reasoners via Protégé GUI and the DIG interface Ontology visualization plug-ins Built on Protégé platform Can hook in custom-tailored components Can serve as API for new applications (including web applications)

PROJECTS

Loading OWL files 1.If you only have an OWL file: - File  New Project - Select OWL Files as the type - Tick Create from existing sources - Next to select the.owl file 2.If you’ve got a valid project file*: - File  Open Project - select the.pprj file * ieone created on this version of Protégé - the s/w gets updated once every few days, so don’t count on it unless you’ve created it recently– safest to build from the.owl file if in doubt

(Create or load an OWL project) File  New Project OR File  Open Project

Protégé OWL Overview Individuals Property values Classes Subclass relationships Disjoint classes OWL for data exchange OWL for classification and reasoning Class Descriptions Restrictions Logical expressions Properties Characteristics (transitive, inverse) Range and Domain ObjectProperties (references) DatatypeProperties (simple values)

determine scope consider reuse enumerate terms define classes define properties define constraints create instances In reality - an iterative process: determine scope consider reuse enumerate terms consider reuse define classes enumerate terms define classes define properties define classes define properties define constraints create instances define classes create instances consider reuse define properties define constraints create instances Ontology Development Process

Establish Purpose What will the ontology be used for? Classification of Pneumonia: Bacterial Pneumonia (caused by bacteria) Pneumococcal Pneumonia (caused by a particular kind of bacteria) Viral Pneumonia (caused by viruses) Mixed Pneumonia (caused by both bacteria and viruses) determine scope consider reuse enumerate terms define classes define properties define constraints create instances

Enumerate Important Entities What are the entities we need to talk about? Pneumonias, infectious organisms. What are the properties of these entities? hasRadiologyFinding, hasLocus, hasCause. What do we want to say about the entities? Pneumonias cause radiology opacity findings Pneumonias are located in lung Mixed pneumonias are caused by bacteria and viruses. … consider reuse determine scope enumerate terms define classes define properties define constraints create instances

CLASSES (Types, Universals)

Classes Sets of individuals with common characteristics Individuals are instances of at least one class City Sydney Beach Cairns BondiBeach CurrawongBeach

Superclass Relationship Classes organized in a hierarchy implies subsumption Direct instances of subclass are also (indirect) instances of superclasses Cairns Sydney Canberra Coonabarabran

Class overlap Classes can overlap arbitrarily Classes are assumed non-disjoint by default (ie, they may share instances) City Sydney Cairns BondiBeach RetireeDestination

Class Disjointness All classes could potentially overlap Specify disjointness to make sure they don’t share instances Sydney UrbanAreaRuralArea Sydney Woomera CapeYork disjointWith City Destination

Class Editor Class annotations (for class metadata) Class name and documentation Properties “available” to Class Disjoints widget Conditions Widget Class-specific tools (find usage etc)

Define classes and the class hierarchy Identify Classes (from the previous entity list) If something can have a kind then it is a Class “Kind of Pneumonia” √ - Pneumonia is a Class “Kind of Samson” X - Samson is an individual “Kind of Bacteria” √ Bacteria is a Class determine scope consider reuse define properties define constraints create instances enumerate terms define classes

determine scope consider reuse define properties define constraints create instances enumerate terms Arrange Classes in an hierarchy PneumococcalPneumonia is a subclass of Pneumonia Every PneumococcalPneumonia is a Pneumonia Pneumococcus is a subclass of Bacteria Every Pneumococcus is a Bacteria MixedPneumonia is a subclass of Pneumonia Every MixedPneumonia is a Pneumonia define classes Define classes and the class hierarchy

Create classes: “Pneumonia” class

Class Disjoints Note that Bacterial Pneumonia  has superclass Pneumonia as a necessary condition  Is asserted to be disjoint from its ‘siblings’ Note that Bacterial Pneumonia  has superclass Pneumonia as a necessary condition  Is asserted to be disjoint from its ‘siblings’ Necessary parent Disjoint classes

What it means All BacterialPneumonias are Pneumonias No BacterialPneumonia is not a Pneumonia Nothing is both: a BacterialPneumonia and a ViralPneumona a BacterialPneumonia and a MixedPneumonia NB: In OWL classes can overlap unless declared disjoint!

Add metadata on Classes

Another Way to Create Classes A class can be the union of two classes An InfectiousPneumonia is either a BacterialPneumonia or a ViralPneumonia A class can be the intersection of two classes A MixedPneumonia is any Pneumonia that is caused by both Bacteria and Viruses A class can be the complement of another class Noninfectious pneumonia is any pneumonia that is not caused by an infectious agent (bacteria or virus)

Create a class by composition An InfectiousPneumonia is a Pneumonia that is either a BacterialPneumonia or a ViralPneumonia

Recap of 10/20/2009 All KR-languages provide the ability to describe “things” and “relationships” They differ in the constructs available to create the formal descriptions of the things and relationships OWL-DL is the most widely used KR-language In OWL-DL, things are represented as sets of individuals called Classes Class = a set of individuals with some specified common characteristics Classes can overlap unless declared to be disjoint Classes can be defined by listing the necessary or necessary + sufficient characteristics Classes can also be defined as intersections, unions and complements of other classes Protégé is a tool used to create and edit the class descriptions in OWL-DL Reasoners are software tools used to verify the consistency and validity of the logical interpretation (i.e. the semantics or meaning) of the class descriptions

CLASS EXPRESSIONS

Using expression editor “All MixedPneumonias are Pneumonias caused by Bacteria and by Viruses”

Class Descriptions Define the “meaning” of classes Description Logic expressions (“anonymous class expressions”) are used: “All national parks have campgrounds.” “A backpackers destination is a destination that has budget accommodation and offers sports or adventure activities.” Expressions restrict property values Reasoners can perform inference/classification

Defined/Primitive Classes Necessary Conditions: (Primitive / partial classes) “If we know that something is a X, then it must fulfill the conditions...” Necessary & Sufficient Conditions: (Defined / complete classes) “If something fulfills the conditions..., then it is an X.” QuietDestination NationalPark

 Necessary & Sufficient Conditions: (Defined classes) “If something fulfills the conditions..., then it is a Class_X.” Defined/Primitive Classes Necessary Conditions: (Primitive classes) Describes a subclass “If something is a Class_X, then it must fulfill the conditions...” Converse may NOT be true: “If something fulfills the conditions..., then it is a Class_X.” Class_X

e.g., Disorder is a necessary condition on Pneumonia “If something is a Pneumonia, then it is a Disorder” BUT “If something is a Disorder, it may not be a Pneumonia” “If something is a Pneumonia, then it is a Disorder” BUT “If something is a Disorder, it may not be a Pneumonia” Pneumonia Disorder

Necessary & sufficient conditions on BacterialPneumonia “If N&S conditions, then it is a BacterialPneumonia” AND “If something is a BacterialPneumonia, then N&S condtions” “If N&S conditions, then it is a BacterialPneumonia” AND “If something is a BacterialPneumonia, then N&S condtions” BacterialPneumonia

PROPERTIES

OWL Properties Datatype Property – relates Individuals to data (int, string, float etc) Pneumonia hasRadiologyFinding xsd:String Object Property – relates Individuals BacterialPneumonia hasCause Bacterium Annotation Property – for attaching metadata to classes, individuals or properties OntologyClass hasAuthor Natasha

Datatype Properties Link individuals to primitive values (integers, floats, strings, booleans etc) Often: AnnotationProperties without formal “meaning” Sydney hasSize = 4,500,000 isCapital = true rdfs:comment = “Don’t miss the opera house”

Object Properties Link two individuals together Relationships (0..n, n..m) Sydney BondiBeach hasPart FourSeasons hasAccomodation

Annotation Properties To annotate classes, properties, and individuals Usually used for documentation Sydney My comment Kaustubh Supekar hasAuthor rdfs:comment

Mathematical properties of an OWL ‘property’ Functional Person has_Mother Mother Transitive A hasPart B, B hasPart C ==> A hasPart C InverseFunctional Person has_SSN SSN Symmetric A worksWith B ==> B worksWith A

Define Properties of Classes Properties in a class definition describe attributes of instances of the class and relations to other instances Each Pneumonia will have radiology findings and a cause Each cause for pneumonia will have a causative organism. consider reuse determine scope define constraints create instances enumerate terms define classes define properties

Create object property “has_part” Click on properties tab Click on Create_Object_property icon and create has_part Create Object property icon

Object property hasLocus (already present)

Datatype Property “hasRadiologyFinding” Datatype = string

Create annotation property “hasAuthor”

RESTRICTIONS

Restrictions (Overview) An anonymous class consisting of all individuals that fulfill the condition Define a condition for property values allValuesFrom someValuesFrom hasValue minCardinality maxCardinality cardinality

Define Constraints : OWL Restrictions Quantifier restriction How to represent the fact that every pneumonia must be located in a a lung? Cardinality restrictions How to represent that a lung must have 3 lobes as parts ? hasValue restrictions How to define the value of a relation for a class ? (relationship between class and a individual) consider reuse determine scope create instances enumerate terms define classes define constraints define properties

Creating Restrictions Restriction Type Restricted Property Filler Expression Syntax check Expression Construct Palette

Create a restriction: using a datatype property “All pneumonias are disorders that have a radiological finding of opacification”

All pneumonias are located in some lung “All pneumonias are disorders that are located in some lung and have a radiological finding of opacification” Create a restriction: using an object property

… more object properties BacterialPneumonia is caused by some bacteria BacterialPneumonia ⊑ causedBy some Bacteria BacterialPneumonia → ∃ causedBy.Bacteria ViralPneumonia is caused by some virus ViralPneumonia ⊑ causedBy some Virus MixedPneumonia is caused by some bacteria and by some virus MixedPneumonia ⊑ (causedBy some Bacteria) ⊓ (causedBy some Virus)

INDIVIDUALS

Individuals Represent specific things in the domain Two names could represent the same “real- world” individual SydneysOlympicBeach BondiBeach Sydney

Create OWL instances Create an instance of a class The class becomes a direct type of the instance Any superclass of the direct type is a type of the instance Generally, you create instances if you have a “type-of” something determine scope consider reuse enumerate terms define classes define properties create instances create instances define constraints

Classification

Reasoners Reasoners (“classifiers”) infer information that is not explicitly contained within the ontology Standard reasoner services are: Consistency Checking (i.e., satisfiability—can a class have any instances?) Subsumption Checking (Finding subclasses—is A a subclass of B?) Equivalence Checking Instantiation Checking (Which classes does an individual belong to) For Protégé Pellet in pre-configured (but other tools with DIG support work too) Reasoners can be used at runtime in applications as a querying mechanism Used during development as an ontology “compiler”. Ontologies can be compiled to check if the meaning is what was intended

Run a DL Reasoner with Protégé OWL Protégé OWL can work with multiple reasoners Racer ( Pellet ( Fact++ ( Need to install, configure, and run at least one reasoner Pellet comes pre-configured Protégé OWL and reasoner exchange information through inter-process communication

Common Mistakes

Common errors Lack of disjointness axioms causes what looks like "obvious misclassification" Open world assumption: classes can overlap unless you explicitly say they don’t. Lack of a closure axiom causes misclassification Trivial satisfaction of constraints (e.g. a missing existential 'some' declaration) can lead to weird classification e.g. an infection caused only by (herpes virus and HIV virus) will get classified as a bacterial infection! … because, the (herpes virus and HIV virus) is a null-set and the null-set is a subset of the 'bacteria' (which are disjoint with viruses) and hence the "an infection caused only by (herpes virus and HIV virus)" will be called a bacterial infection! ONLY does not mean SOME

Visualization

Visualizing our OWL example Asserted Ontology Inferred Ontology

Limitations

What OWL can not do OWL is a subset of first order logic with two variables “Binary relational” n-ary relations require “reifying” the relation i.e. re-representing the relation as a class See n-ary relations note at W3C n-ary predicates can always be represented as binary predicates subject to other limitations of OWL No representation for “same” The Owner is the same as the Person responsible No representation for “All-All” statements “All licensed drivers are authorized to drive all cars” Known to be tractable but no implementation available

What OWL can not do Representation of “optional” properties is not standardized. Options: Min cardinality 0 Member of the domain No representation of uncertainty No representation of defaults and exceptions No higher order predicates OWL-DL is strictly first order Can’t say … “Members of endangered species” No closed world reasoning Everything must be closed explicitly Take care when transforming from databases!

Summary

What does all this mean? Description logic (and OWL-DL) provides Expressivity with semantic precision Compositional definitions: define new classes from old Automatic classification & consistency checking Protégé OWL provides a GUI for developing OWL ontologies Be careful with Open world reasoning Use closure axioms when needed “some” and “only” – someValuesFrom/allValuesFrom domain and range constraints making disjoint explicit

Further Reading

Assigned Reading Horridge, M. A Practical Guide To Building OWL Ontologies With the Protégé-OWL Plugin, Edition 1.0, The University of Manchester, pp , Knublauch, H. Weaving the Biomedical semantic web with protégé-owl. owl.pdf Haimowitz IJ, Patil RS, and Szolovits P. Representing medical knowledge in a terminological language is difficult. In: Proceedings of the Symposium on Computer Applications in Medical Care, IEEE Computer Society Press, pp. 101–105,

Further exploration Protégé: Protégé OWL: Protégé OWL discussion list Protégé Workshops (early 2006) Protégé International Conference OWL tutorial materials from CO-ODE project site (University of Manchester) NCBO:

More about Protégé OWL Documentation on html Excellent tutorial by Mathew Horridge ode.org/resources/tutorials/ProtegeOWLTutorial.pdf Other resources at ode.org/resources/