Dr. Mustafa Jarrar [email_address]   www.jarrar.info   University of Birzeit Description Logic (and business rules) Advanced Artificial Intelligence  (SCOM7341) Lecture Notes,  Advanced Artificial Intelligence (SCOM7341)  University of Birzeit 2 nd  Semester, 2011
Reading Material D. Nardi, R. J. Brachman.  An Introduction to Description Logics . In the Description Logic Handbook, edited by F. Baader, D. Calvanese, D.L. McGuinness, D. Nardi, P.F. Patel-Schneider, Cambridge University Press, 2002, pages 5-44. http://www.inf.unibz.it/~franconi/dl/course/dlhb/dlhb-01.pdf   Only Sections 2.1 and 2.2 are required (= the first 32 pages)
Why Description Logics? The  expressive power  of FOL is too high for having good computational properties and efficient procedures. If FOL is directly used without some kind of restriction, then the  structure of the knowledge  is lost (concepts as classes, and roles as properties).
Description Logics  Description logics are a family of logics concerned with knowledge representation, i.e.,  suitable to structure knowledge. A description logic is a  decidable   fragment of first-order logic, associated with a set of automatic  reasoning   procedures. The basic constructs for a description logic are the notion of a  concept  and the notion of a  relationship . Complex concept and relationship expressions  can be constructed from atomic concepts and relationships with suitable constructs between them.  Example:  HumanMother   ⊑  Female   ⊓    HasChild.Person
Axioms, Disjunctions and Negations FOL:   x.   Teaching-Assistant (x)       Undergrad(x)     Professor(x)   DL:  Teaching-Assistant  ⊑    Undergrad  ⊔   Professor A necessary condition in order to be a teaching assistant is to be either not undergraduated or a professor. Clearly, a graduated student being a teaching assistant is not necessarily a professor; moreover, it may be the case that some professor is not graduated. FOL:   x .  Teaching-Assistant ( x )  ↔   Undergrad ( x )     Professor ( x ) DL:  Teaching-Assistant  ≐    Undergrad  ⊔  Professor When the left-hand side is an atomic concept, the  ⊑   symbol introduces a primitive definition (giving only necessary conditions) while the  ≐   symbol introduces a real definition . With necessary and sufficient  conditions. In general, it is possible to have complex  concept expressions at the left-hand  side as well.
Most known description logics are : Description Logics  A more practical and expressive description logic. C, D     A  | ⊤ | ⊥|¬A |  C   ⊓  D  |   R.C  |   R. ⊤ ALC Very expressive description logic,  Capable of representing most database constructs. DLR idf Very popular description logic. The logic underlying OWL. SHOIN The simplest and less expressive description logic. C, D     A  |  C   ⊓   D  |   R.C  |   R   FL¯
Description logic  ALC   (Syntax and Semantic) Woman  ⊑  Person  ⊓  Female Parent  ⊑   Person  ⊓    hasChild. ⊤ Man  ⊑  Person  ⊓   Female NotParent   ⊑  Person ⊓   hasChild. ⊥ Examples: Constructor Syntax Semantics Primitive concept A A I      I  Primitive role R R I       I      I Top ⊤  I Bottom ⊥  Complement  C  I  \ C I Conjunction C ⊓ D C I      D I   Disjunction C ⊔ D C I      D I   Universal quantifier  R.C   { x  |   y . R I  ( x , y )     C I ( y )}  Extensional quantifier  R.C   { x  |   y . R I  ( x , y )     C I ( y )}
Closed Propositional Language Conjunction  is interpreted as  intersection of sets of individuals. Disjunction  is interpreted as  union of sets of individuals. Negation  is interpreted as  complement of sets of individuals.  R . ⊤       R  ( C   ⊓   D )      C   ⊔    D  ( C   ⊔   D )      C   ⊓    D  (  R.C)      R .  C  (  R . C )      R .  C
Formal Semantics An  interpretation  I  = (  I  , . I ) consists of: a nonempty set   I  (the  domain) a function  . I  (the  interpretation function)  that maps every  concept to a subset of   I   every  role to a subset of   I       I   every  individual to an element of   I   An interpretation function  . I  is an  extension function if and only if it satisfies the  semantic definitions of the language.
DL Knowledge Base DL Knowledge Base (KB) normally separated into two parts:    =   Tbox, Abox  TBox   ( Terminological Box ) is a set of axioms describing structure of domain (i.e., a conceptual schema), e.g.: HappyFather    Man  ⊓    hasChild.Female Elephant  ⊑  Animal  ⊓  Large  ⊓  Grey ABox   (Assertion Box)is a set of axioms describing a concrete situation (data), e.g.: John:HappyFather <John,Mary>:hasChild
Knowledge Bases (Example) Terminological Axioms: C  ⊑  D , C  ≐   D  Student   ≐  Person  ⊓    NAME.String   ⊓    ADDRESS.String  ⊓  ENROLLED.Course  TEACHES.Course  ⊑    Undergrad   ⊓   Professor Membership statements: C(a), R(a, b) Student(john) ENROLLED(john, cs415) (Student  ⊔  Professor)(paul)    =   Tbox, Abox  Terminological Box TBox Assertion  Box ABox
TBox: Descriptive Semantics We consider now the descriptive semantics, based on classical logics. An interpretation  I   satisfies the statement  C  ⊑   D if C I     D I . An interpretation  I   satisfies the statement  C  ≐  D  if  C I  =  D I . An interpretation  I  is a  model for a TBox  T  if  I  satisfies all the statements in  T .
ABox If  I  = (  I , . I )  is an interpretation, C ( a )  is satisfied by  I  if  a I       C I . R ( a ,  b )  is satisfied by  I  if  ( a I , b I )     R I . A set  A  of assertions is called an ABox. An interpretation  I  is said to be a  model of the ABox  A  if every assertion of A is  satisfied by  I . The ABox  A  is said to be  satisfiable if it admits a model. An interpretation  I  = (  I , . I )  is said to be a  model of a knowledge base    if  every axiom of    is satisfied by  I . A knowledge base    is said to be  satisfiable if it admits a model.
Logical Implication    ╞      if every model of    is a model of   Example: TBox:  TEACHES.Course  ⊑    Undergrad  ⊔  Professor ABox: TEACHES(john,cs415), Course(cs415), Undergrad(john)    ╞   Professor(john)
Logical Implication What if: TBox:  TEACHES.Course  ⊑   Undergrad  ⊔  Professor ABox: TEACHES(john,cs415), Course(cs415), Undergrad(john)    ╞   Professor(john)   ?    ╞    Professor(john)  ?
Reasoning Services Concept Satisfiability    |    C      ⊥   Student  ⊓   Person the problem of checking whether  C  is satisfiable w.r.t.   , i.e. whether there exists a model  I  of  such that  C I       Satisfiability    |=  Student  ≐    Person the problem of checking whether    is satisfiable, i.e. whether it has a model Subsumption    |=  C   ⊑   D  Student  ⊑  Person the problem of checking whether  C  is subsumed by  D  w.r.t.   , i.e. whether  C I      D I  in every model  I  of  
Reasoning Services  (cont.) Retrieval { a  |    |=  C ( a ) }  Professor    john Realization { C  |    |=  C ( a ) }  john    Professor  Instance Checking    |=  C ( a )  Professor(john) the problem of checking whether the assertion  C ( a )  is satisfied in every model of  
Reduction to Satisfiability Concept Satisfiability    |=  C      ⊥  ↔  exists  x  s.t.       { C ( x )}  has a model. Subsumption    |=  C   ⊑   D  ↔       { C  ⊓   D ( x )}  has no models. Instance Checking    |=  C ( a )  ↔       {  C ( x )}  has no models.  D D C
Some extensions of  ALC Constructor Syntax Semantics Primitive concept A A I      I  Primitive role R R I       I      I Top ⊤  I Bottom ⊥  Complement  C  I  \ C I Conjunction C ⊓ D C I      D I   Disjunction C ⊔ D C I      D I   Universal quantifier  R.C   { x  |   y . R I  ( x , y )     C I ( y )}  Extensional quantifier  R.C   { x  |   y . R I  ( x , y )     C I ( y )}
Some extensions of  ALC Constructor Syntax Semantics Primitive concept A A I      I  Primitive role R R I       I      I Top ⊤  I Bottom ⊥  Complement  C  I  \ C I Conjunction C ⊓ D C I      D I   Disjunction C ⊔ D C I      D I   Universal quantifier  R.C   { x  |   y . R I  ( x , y )     C I ( y )}  Extensional quantifier  R.C   { x  |   y . R I  ( x , y )     C I ( y )}  Cardinality ( N ) ≥ n R { x  | #{ y  |  R I ( x , y ) }  ≥  n } ≤ n R { x  | #{ y  |  R I ( x , y ) }  ≥  n } Qual. cardinality ( Q ) ≥ n R.C { x  | #{ y  |  R I ( x , y )     C I ( y )}  ≥  n } ≤ n R.C { x  | #{ y  |  R I ( x , y )     C I ( y )}  ≥  n } Enumeration ( O ) { a 1  …  a n } { a I 1  …  a I n } Selection ( F )  f  :  C   { x     Dom( f I ) |  C I ( f I ( x ))}
Cardinality Restriction Role quantification  cannot express that a woman has at least 3 (or at most 5)  children. Cardinality restrictions can express conditions on the number of fillers: BusyWoman  ≐   Woman  ⊓   (≥ 3 CHILD) ConsciousWoman  ≐   Woman  ⊓   (≤ 5 CHILD) Notice: (≥1  R )     (  R .)
Cardinality Restriction BusyWoman  ≐   Woman  ⊓   (≥ 3 CHILD) ConsciousWoman  ≐   Woman  ⊓   (≤ 5 CHILD) Mary: Woman,  CHILD:John, CHILD:Sui, CHILD:Karl ╞   ConsciousWoman(Mary)  ?
Roles as Functions A role is  functional is the filler functionally depends on the individual, i.e., the  role can be considered as a function:  R ( x , y)     f ( x ) =  y . For example, the roles CHILD and PARENT are not functional, while the roles MOTHER and AGE are functional. If a role is functional, we write:    f. C     f . c   (selection operator)
Individuals In every interpretation different individuals are assumed to denote different elements, i.e. for every pair of individuals  a ,  b , and for every interpretation  I , if  a      b  then  a I      b I . This is called the  Unique Name Assumption  and is usually assumed in database  applications. Example:  How many children does this family have? Family(f), Father(f,john), Mother(f,sue), Son(f,paul), Son(f,george), Son(f,alex) |= ( ≥  3 Son)(f)
Enumeration Type (one-of) Weekday ≐ {mon, tue, wed, thu, fri, sat, sun} Weekday I   ≐  {mon I , tue I , wed I , thu I , fri I , sat I , sun I } Citizen ≐ (Person  ⊓    LIVES.Country) Palestinian ≐ (Citizen  ⊓    LIVES.{Palestine})
Racer  ( http://www.racer-systems.com/products/racerpro/index.phtm   )
Description Logic Reasoners  They offer reasoning services for multiple TBoxes and ABoxes.  They run as background reasoning engines. They understand DIG, which is a simple protocol (based on HTTP) along with an XML Schema. For example: <impliesc> <catom name=“Student&quot;/> <catom name=“Person&quot;/> </impliesc> Student   ⊑   Person Example:
DIG Interface ( http://dig.sourceforge.net/   ) S. Bechhofer:  The DIG Description Logic Interface: DIG/1.1 http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.104.3837&rep=rep1&type=pdf
DIG Protocol  DIG is only an XML schema for a description logic along with  ask / tell  functionality You write a new Knowledge base (using the DIG XML syntax), and send it to Racer using the TELL functionality. You can then write you Query/Question (using the DIG, XML syntax), and send it to Racer using the ASK functionality. You may communicate with the Racer through HTTP or SOAP.
Create e a new Knowledge Base <?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?> < newKB xmlns=&quot;http://dl.kr.org/dig/2003/02/lang&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xsi:schemaLocation=&quot;http://dl.kr.org/dig/2003/02/lang http://dl-web.man.ac.uk/dig/2003/02/dig.xsd&quot;/> <?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?> < response xmlns=&quot;http://dl.kr.org/dig/2003/02/lang&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xsi:schemaLocation=&quot;http://dl.kr.org/dig/2003/02/lang http://dl-web.man.ac.uk/dig/2003/02/dig.xsd&quot;> < kb uri=&quot;urn:uuid:abcdefgh-1234-1234-12345689ab &quot;/> The Response Message The newKB Message This URI should then be used during TELL and  ASK  requests made against the knowledge base
Tell Syntax <?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot;?> < tells xmlns=&quot;http://dl.kr.org/dig/2003/02/lang&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xsi:schemaLocation=&quot;http://dl.kr.org/dig/2003/02/lang http://dl-web.man.ac.uk/dig/2003/02/dig.xsd&quot; uri=&quot;urn:uuid:abcdefgh-1234-1234-12345689ab&quot;>   <defconcept name=&quot;driver&quot;/> <equalc> <catom name=&quot;driver&quot;/> <and>   <catom name=&quot;person&quot;/>   <some>   <ratom name=&quot;drives&quot;/> <catom name=&quot;vehicle&quot;/> </some> </and> </equalc> <defconcept name=&quot;person&quot;/> <defconcept name=&quot;vehicle&quot;/> <defrole name=&quot;drives&quot;/> </tells> A TELL request  must contain in its body a tells element, which itself consists of a number of tell statements. Example: Driver  ⊑ Person ⊓   Drives.Vehicle
Tell Syntax Tell Language Primitive Concept Introduction <defconcept name=&quot;CN&quot;/> <defrole name=&quot;CN&quot;/> <deffeature name=&quot;CN&quot;/> <defattribute name=&quot;CN&quot;/> <defindividual name=&quot;CN&quot;/> Concept Axioms  <impliesc>C1 C2</impliesc> <equalc>C1 C2</equalc> <disjoint>C1... Cn</disjoint> Role Axioms  <impliesr>R1 R2</impliesc> <equalr>R1 R2</equalr> <domain>R E</domain> <range>R E</range> <rangeint>R</rangeint> <rangestring>R</rangestring> <transitive>R</transitive> <functional>R</functional> Individual Axioms  <instanceof>I C</instanceof> <related>I1 R I2</related> <value>I A V</value> Concept Language Primitive Concepts  <top/> <bottom/> <catom name=&quot;CN&quot;/> Boolean Operators  <and>E1... En</and> <or>E1... En</or> <not>E</not> Property Restrictions  <some>R E</some> <all>R E</all> <atmost num=&quot;n&quot;>R E</atmost> <atleast num=&quot;n&quot;>R E</atleast> <iset>I1... In</iset> Concrete Domain Expressions <defined>A</defined> <stringmin val=&quot;s&quot;>A</stringmin> <stringmax val=&quot;s&quot;>A</stringmax> <stringequals val=&quot;s&quot;>A</stringequals> <stringrange min=&quot;s&quot; max=&quot;t&quot;>A</stringrange> <intmin val=&quot;i&quot;>A</intmin> <intmax val=&quot;i&quot;>A</intmax> <intequals val=&quot;i&quot;>A</intequals> <intrange min=&quot;i&quot; max=&quot;j&quot;>A</intrange> Role Expressions <ratom name=&quot;CN&quot;/> <feature name=&quot;CN&quot;/> <inverse>R</inverse> <attribute name=&quot;CN&quot;/> <chain>F1... FN A</chain> Individuals <individual name=&quot;CN&quot;/>
Ask Syntax An ASK request must contain in its body an asks element. Multiple queries in one request is possible. <?xml version=&quot;1.0&quot;?> < asks xmlns=&quot;http://dl.kr.org/dig/2003/02/lang&quot;> xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xsi:schemaLocation=&quot;http://dl.kr.org/dig/2003/02/lang&quot; http://dl-web.man.ac.uk/dig/2003/02/dig.xsd&quot; uri=&quot;urn:uuid:abcdefgh-1234-1234-12345689ab&quot;> <satisfiable id=&quot;q1&quot;> <catom name=&quot;Vehicle&quot;/> </satisfiable> <descendants id=&quot;q2&quot;> <and> <catom name=&quot;person&quot;/> <some> <ratom name=&quot;drives&quot;/> <catom name=&quot;vehicle&quot;/> </some> </and> </descendants> <types id=&quot;q3&quot;> <individual name=&quot;JohnSmith&quot;></individual> </types> </asks> KB |= Vehicle  asks about satisfiability of the Vehicle concept asks for all those concepts subsumed by the description given, i.e. all the drivers a  |    |=  Peron(a) ⊓  Drives.Vehicle asks for the known types of the given individual C |    |=  C(JohnSmith)
Ask Syntax Ask Language Primitive Concept Retrieval <allConceptNames/> <allRoleNames/> <allIndividuals/> Satisfiability <satisfiable>C</satisfiable> <subsumes>C1 C2</subsumes> <disjoint>C1 C2</disjoint> Concept Hierarchy  <parents>C</parents> <children>C</children> <ancestors>C</ancestors> <descendants>C<descendants/> <equivalents>C</equivalents> Role Hierarchy <rparents>R</rparents> <rchildren>R</rchildren> <rancestors>R</rancestors> <rdescendants>R<rdescendants/> Individual Queries <instances>C</instances> <types>I</types> <instance>I C</instance> <roleFillers>I R</roleFillers> <relatedIndividuals>R</relatedIndividuals>
Project (Reason about UML/EER Diagrams) Create a UML/EER diagram that contains some contradictions and implications, convert this diagram into DIG, and use Racer to find these contradictions\implication. Your model should contain about 20 classes, associations, and many constraints. You are required to demonstrate at least 3 types of reasoning services. Hint: contradictions\implication can be achieved throw the wrong use of disjointness and cardinality constraints (see examples in the next slide).  Please remark that this project is not only to help you practice Description Logics, but also: 1) build correct UML/EER models and find problems automatically, 2) Reason about rules and business rules, and 3) you think of another usage (open your mind)!
UML Class diagram (with a contradiction and an implication) Student ⊑ Person PhDStudent ⊑ Person Employee ⊑ Person PhD Student ⊑ Student ⊓ Employee Student ⊓ Employee  ≐  ⊥ {disjoint} Person Student Employee PhD Student
Infinite Domain: the democratic company [Franconi 2007] Supervisor ⊑   =2  Supervises.Employee Employee ⊑ Supervisor Supervises 2..2 0..1 implies “ the classes  Employee  and  Supervisor  necessarily contain an infinite number of instances”. Since legal world descriptions are  finite  possible worlds satisfying the constraints imposed by the conceptual schema,  the schema is inconsistent . Supervisor Employee
Example (in UML, EER and ORM) Employee Project WorksFor TopManager Manages Employee Project WorksFor Manages 1..1 1..1 TopManger WorksFor Manages Project TopManger Employee 1..1 1..1
Example (in UML, EER and ORM) Employee ⊑   = 1  WorksFor.Project TopManager ⊑ Employee ⊓   = 1 Manages.Project WorksFor.Project ⊑  Manages.Project Employee Project WorksFor Manages 1..1 1..1 TopManger ⊨ ?
Example (in UML, EER and ORM) Taught By  Study 1..3 1..1 {complete,disjoint} Person Course Student Professor
Another Example Person ⊑   =1  Owns.Car ⊓   =1  Drives.Car  Drive ≐ Owns Owns The first 1..1 cardinality constraint means that every person must owns one car. The second1..1 cardinality constraint means that every person must drives one car. The equal constraint means that every person who owns a car is allowed to only drive that car, and vice versa.    The equal constraint is implied by both cardinality constraints. Drives equal 1..1 1..1 Person Car

Jarrar.lecture notes.aai.2011s.descriptionlogic

  • 1.
    Dr. Mustafa Jarrar[email_address] www.jarrar.info University of Birzeit Description Logic (and business rules) Advanced Artificial Intelligence (SCOM7341) Lecture Notes, Advanced Artificial Intelligence (SCOM7341) University of Birzeit 2 nd Semester, 2011
  • 2.
    Reading Material D.Nardi, R. J. Brachman. An Introduction to Description Logics . In the Description Logic Handbook, edited by F. Baader, D. Calvanese, D.L. McGuinness, D. Nardi, P.F. Patel-Schneider, Cambridge University Press, 2002, pages 5-44. http://www.inf.unibz.it/~franconi/dl/course/dlhb/dlhb-01.pdf Only Sections 2.1 and 2.2 are required (= the first 32 pages)
  • 3.
    Why Description Logics?The expressive power of FOL is too high for having good computational properties and efficient procedures. If FOL is directly used without some kind of restriction, then the structure of the knowledge is lost (concepts as classes, and roles as properties).
  • 4.
    Description Logics Description logics are a family of logics concerned with knowledge representation, i.e., suitable to structure knowledge. A description logic is a decidable fragment of first-order logic, associated with a set of automatic reasoning procedures. The basic constructs for a description logic are the notion of a concept and the notion of a relationship . Complex concept and relationship expressions can be constructed from atomic concepts and relationships with suitable constructs between them. Example: HumanMother ⊑ Female ⊓  HasChild.Person
  • 5.
    Axioms, Disjunctions andNegations FOL:  x. Teaching-Assistant (x)   Undergrad(x)  Professor(x) DL: Teaching-Assistant ⊑  Undergrad ⊔ Professor A necessary condition in order to be a teaching assistant is to be either not undergraduated or a professor. Clearly, a graduated student being a teaching assistant is not necessarily a professor; moreover, it may be the case that some professor is not graduated. FOL:  x . Teaching-Assistant ( x ) ↔  Undergrad ( x )  Professor ( x ) DL: Teaching-Assistant ≐  Undergrad ⊔ Professor When the left-hand side is an atomic concept, the ⊑ symbol introduces a primitive definition (giving only necessary conditions) while the ≐ symbol introduces a real definition . With necessary and sufficient conditions. In general, it is possible to have complex concept expressions at the left-hand side as well.
  • 6.
    Most known descriptionlogics are : Description Logics A more practical and expressive description logic. C, D  A | ⊤ | ⊥|¬A | C ⊓ D |  R.C |  R. ⊤ ALC Very expressive description logic, Capable of representing most database constructs. DLR idf Very popular description logic. The logic underlying OWL. SHOIN The simplest and less expressive description logic. C, D  A | C ⊓ D |  R.C |  R FL¯
  • 7.
    Description logic ALC (Syntax and Semantic) Woman ⊑ Person ⊓ Female Parent ⊑ Person ⊓  hasChild. ⊤ Man ⊑ Person ⊓  Female NotParent ⊑ Person ⊓  hasChild. ⊥ Examples: Constructor Syntax Semantics Primitive concept A A I   I Primitive role R R I   I   I Top ⊤  I Bottom ⊥  Complement  C  I \ C I Conjunction C ⊓ D C I  D I Disjunction C ⊔ D C I  D I Universal quantifier  R.C { x |  y . R I ( x , y )  C I ( y )} Extensional quantifier  R.C { x |  y . R I ( x , y )  C I ( y )}
  • 8.
    Closed Propositional LanguageConjunction is interpreted as intersection of sets of individuals. Disjunction is interpreted as union of sets of individuals. Negation is interpreted as complement of sets of individuals.  R . ⊤   R  ( C ⊓ D )   C ⊔  D  ( C ⊔ D )   C ⊓  D  (  R.C)   R .  C  (  R . C )   R .  C
  • 9.
    Formal Semantics An interpretation I = (  I , . I ) consists of: a nonempty set  I (the domain) a function . I (the interpretation function) that maps every concept to a subset of  I every role to a subset of  I   I every individual to an element of  I An interpretation function . I is an extension function if and only if it satisfies the semantic definitions of the language.
  • 10.
    DL Knowledge BaseDL Knowledge Base (KB) normally separated into two parts:  =  Tbox, Abox  TBox ( Terminological Box ) is a set of axioms describing structure of domain (i.e., a conceptual schema), e.g.: HappyFather  Man ⊓  hasChild.Female Elephant ⊑ Animal ⊓ Large ⊓ Grey ABox (Assertion Box)is a set of axioms describing a concrete situation (data), e.g.: John:HappyFather <John,Mary>:hasChild
  • 11.
    Knowledge Bases (Example)Terminological Axioms: C ⊑ D , C ≐ D Student ≐ Person ⊓  NAME.String ⊓  ADDRESS.String ⊓  ENROLLED.Course  TEACHES.Course ⊑  Undergrad ⊓ Professor Membership statements: C(a), R(a, b) Student(john) ENROLLED(john, cs415) (Student ⊔ Professor)(paul)  =  Tbox, Abox  Terminological Box TBox Assertion Box ABox
  • 12.
    TBox: Descriptive SemanticsWe consider now the descriptive semantics, based on classical logics. An interpretation I satisfies the statement C ⊑ D if C I  D I . An interpretation I satisfies the statement C ≐ D if C I = D I . An interpretation I is a model for a TBox T if I satisfies all the statements in T .
  • 13.
    ABox If I = (  I , . I ) is an interpretation, C ( a ) is satisfied by I if a I   C I . R ( a , b ) is satisfied by I if ( a I , b I )  R I . A set A of assertions is called an ABox. An interpretation I is said to be a model of the ABox A if every assertion of A is satisfied by I . The ABox A is said to be satisfiable if it admits a model. An interpretation I = (  I , . I ) is said to be a model of a knowledge base  if every axiom of  is satisfied by I . A knowledge base  is said to be satisfiable if it admits a model.
  • 14.
    Logical Implication  ╞  if every model of  is a model of  Example: TBox:  TEACHES.Course ⊑  Undergrad ⊔ Professor ABox: TEACHES(john,cs415), Course(cs415), Undergrad(john)  ╞ Professor(john)
  • 15.
    Logical Implication Whatif: TBox:  TEACHES.Course ⊑ Undergrad ⊔ Professor ABox: TEACHES(john,cs415), Course(cs415), Undergrad(john)  ╞ Professor(john) ?  ╞  Professor(john) ?
  • 16.
    Reasoning Services ConceptSatisfiability  |  C  ⊥ Student ⊓  Person the problem of checking whether C is satisfiable w.r.t.  , i.e. whether there exists a model I of such that C I   Satisfiability  |= Student ≐  Person the problem of checking whether  is satisfiable, i.e. whether it has a model Subsumption  |= C ⊑ D Student ⊑ Person the problem of checking whether C is subsumed by D w.r.t.  , i.e. whether C I  D I in every model I of 
  • 17.
    Reasoning Services (cont.) Retrieval { a |  |= C ( a ) } Professor  john Realization { C |  |= C ( a ) } john  Professor Instance Checking  |= C ( a ) Professor(john) the problem of checking whether the assertion C ( a ) is satisfied in every model of 
  • 18.
    Reduction to SatisfiabilityConcept Satisfiability  |= C  ⊥ ↔ exists x s.t.   { C ( x )} has a model. Subsumption  |= C ⊑ D ↔   { C ⊓  D ( x )} has no models. Instance Checking  |= C ( a ) ↔   {  C ( x )} has no models.  D D C
  • 19.
    Some extensions of ALC Constructor Syntax Semantics Primitive concept A A I   I Primitive role R R I   I   I Top ⊤  I Bottom ⊥  Complement  C  I \ C I Conjunction C ⊓ D C I  D I Disjunction C ⊔ D C I  D I Universal quantifier  R.C { x |  y . R I ( x , y )  C I ( y )} Extensional quantifier  R.C { x |  y . R I ( x , y )  C I ( y )}
  • 20.
    Some extensions of ALC Constructor Syntax Semantics Primitive concept A A I   I Primitive role R R I   I   I Top ⊤  I Bottom ⊥  Complement  C  I \ C I Conjunction C ⊓ D C I  D I Disjunction C ⊔ D C I  D I Universal quantifier  R.C { x |  y . R I ( x , y )  C I ( y )} Extensional quantifier  R.C { x |  y . R I ( x , y )  C I ( y )} Cardinality ( N ) ≥ n R { x | #{ y | R I ( x , y ) } ≥ n } ≤ n R { x | #{ y | R I ( x , y ) } ≥ n } Qual. cardinality ( Q ) ≥ n R.C { x | #{ y | R I ( x , y )  C I ( y )} ≥ n } ≤ n R.C { x | #{ y | R I ( x , y )  C I ( y )} ≥ n } Enumeration ( O ) { a 1 … a n } { a I 1 … a I n } Selection ( F ) f : C { x  Dom( f I ) | C I ( f I ( x ))}
  • 21.
    Cardinality Restriction Rolequantification cannot express that a woman has at least 3 (or at most 5) children. Cardinality restrictions can express conditions on the number of fillers: BusyWoman ≐ Woman ⊓ (≥ 3 CHILD) ConsciousWoman ≐ Woman ⊓ (≤ 5 CHILD) Notice: (≥1 R )  (  R .)
  • 22.
    Cardinality Restriction BusyWoman ≐ Woman ⊓ (≥ 3 CHILD) ConsciousWoman ≐ Woman ⊓ (≤ 5 CHILD) Mary: Woman, CHILD:John, CHILD:Sui, CHILD:Karl ╞ ConsciousWoman(Mary) ?
  • 23.
    Roles as FunctionsA role is functional is the filler functionally depends on the individual, i.e., the role can be considered as a function: R ( x , y)  f ( x ) = y . For example, the roles CHILD and PARENT are not functional, while the roles MOTHER and AGE are functional. If a role is functional, we write:  f. C  f . c (selection operator)
  • 24.
    Individuals In everyinterpretation different individuals are assumed to denote different elements, i.e. for every pair of individuals a , b , and for every interpretation I , if a  b then a I  b I . This is called the Unique Name Assumption and is usually assumed in database applications. Example: How many children does this family have? Family(f), Father(f,john), Mother(f,sue), Son(f,paul), Son(f,george), Son(f,alex) |= ( ≥ 3 Son)(f)
  • 25.
    Enumeration Type (one-of)Weekday ≐ {mon, tue, wed, thu, fri, sat, sun} Weekday I ≐ {mon I , tue I , wed I , thu I , fri I , sat I , sun I } Citizen ≐ (Person ⊓  LIVES.Country) Palestinian ≐ (Citizen ⊓  LIVES.{Palestine})
  • 26.
    Racer (http://www.racer-systems.com/products/racerpro/index.phtm )
  • 27.
    Description Logic Reasoners They offer reasoning services for multiple TBoxes and ABoxes. They run as background reasoning engines. They understand DIG, which is a simple protocol (based on HTTP) along with an XML Schema. For example: <impliesc> <catom name=“Student&quot;/> <catom name=“Person&quot;/> </impliesc> Student ⊑ Person Example:
  • 28.
    DIG Interface (http://dig.sourceforge.net/ ) S. Bechhofer: The DIG Description Logic Interface: DIG/1.1 http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.104.3837&rep=rep1&type=pdf
  • 29.
    DIG Protocol DIG is only an XML schema for a description logic along with ask / tell functionality You write a new Knowledge base (using the DIG XML syntax), and send it to Racer using the TELL functionality. You can then write you Query/Question (using the DIG, XML syntax), and send it to Racer using the ASK functionality. You may communicate with the Racer through HTTP or SOAP.
  • 30.
    Create e anew Knowledge Base <?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?> < newKB xmlns=&quot;http://dl.kr.org/dig/2003/02/lang&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xsi:schemaLocation=&quot;http://dl.kr.org/dig/2003/02/lang http://dl-web.man.ac.uk/dig/2003/02/dig.xsd&quot;/> <?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?> < response xmlns=&quot;http://dl.kr.org/dig/2003/02/lang&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xsi:schemaLocation=&quot;http://dl.kr.org/dig/2003/02/lang http://dl-web.man.ac.uk/dig/2003/02/dig.xsd&quot;> < kb uri=&quot;urn:uuid:abcdefgh-1234-1234-12345689ab &quot;/> The Response Message The newKB Message This URI should then be used during TELL and ASK requests made against the knowledge base
  • 31.
    Tell Syntax <?xmlversion=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot;?> < tells xmlns=&quot;http://dl.kr.org/dig/2003/02/lang&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xsi:schemaLocation=&quot;http://dl.kr.org/dig/2003/02/lang http://dl-web.man.ac.uk/dig/2003/02/dig.xsd&quot; uri=&quot;urn:uuid:abcdefgh-1234-1234-12345689ab&quot;> <defconcept name=&quot;driver&quot;/> <equalc> <catom name=&quot;driver&quot;/> <and> <catom name=&quot;person&quot;/> <some> <ratom name=&quot;drives&quot;/> <catom name=&quot;vehicle&quot;/> </some> </and> </equalc> <defconcept name=&quot;person&quot;/> <defconcept name=&quot;vehicle&quot;/> <defrole name=&quot;drives&quot;/> </tells> A TELL request must contain in its body a tells element, which itself consists of a number of tell statements. Example: Driver ⊑ Person ⊓  Drives.Vehicle
  • 32.
    Tell Syntax TellLanguage Primitive Concept Introduction <defconcept name=&quot;CN&quot;/> <defrole name=&quot;CN&quot;/> <deffeature name=&quot;CN&quot;/> <defattribute name=&quot;CN&quot;/> <defindividual name=&quot;CN&quot;/> Concept Axioms <impliesc>C1 C2</impliesc> <equalc>C1 C2</equalc> <disjoint>C1... Cn</disjoint> Role Axioms <impliesr>R1 R2</impliesc> <equalr>R1 R2</equalr> <domain>R E</domain> <range>R E</range> <rangeint>R</rangeint> <rangestring>R</rangestring> <transitive>R</transitive> <functional>R</functional> Individual Axioms <instanceof>I C</instanceof> <related>I1 R I2</related> <value>I A V</value> Concept Language Primitive Concepts <top/> <bottom/> <catom name=&quot;CN&quot;/> Boolean Operators <and>E1... En</and> <or>E1... En</or> <not>E</not> Property Restrictions <some>R E</some> <all>R E</all> <atmost num=&quot;n&quot;>R E</atmost> <atleast num=&quot;n&quot;>R E</atleast> <iset>I1... In</iset> Concrete Domain Expressions <defined>A</defined> <stringmin val=&quot;s&quot;>A</stringmin> <stringmax val=&quot;s&quot;>A</stringmax> <stringequals val=&quot;s&quot;>A</stringequals> <stringrange min=&quot;s&quot; max=&quot;t&quot;>A</stringrange> <intmin val=&quot;i&quot;>A</intmin> <intmax val=&quot;i&quot;>A</intmax> <intequals val=&quot;i&quot;>A</intequals> <intrange min=&quot;i&quot; max=&quot;j&quot;>A</intrange> Role Expressions <ratom name=&quot;CN&quot;/> <feature name=&quot;CN&quot;/> <inverse>R</inverse> <attribute name=&quot;CN&quot;/> <chain>F1... FN A</chain> Individuals <individual name=&quot;CN&quot;/>
  • 33.
    Ask Syntax AnASK request must contain in its body an asks element. Multiple queries in one request is possible. <?xml version=&quot;1.0&quot;?> < asks xmlns=&quot;http://dl.kr.org/dig/2003/02/lang&quot;> xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xsi:schemaLocation=&quot;http://dl.kr.org/dig/2003/02/lang&quot; http://dl-web.man.ac.uk/dig/2003/02/dig.xsd&quot; uri=&quot;urn:uuid:abcdefgh-1234-1234-12345689ab&quot;> <satisfiable id=&quot;q1&quot;> <catom name=&quot;Vehicle&quot;/> </satisfiable> <descendants id=&quot;q2&quot;> <and> <catom name=&quot;person&quot;/> <some> <ratom name=&quot;drives&quot;/> <catom name=&quot;vehicle&quot;/> </some> </and> </descendants> <types id=&quot;q3&quot;> <individual name=&quot;JohnSmith&quot;></individual> </types> </asks> KB |= Vehicle asks about satisfiability of the Vehicle concept asks for all those concepts subsumed by the description given, i.e. all the drivers a |  |= Peron(a) ⊓  Drives.Vehicle asks for the known types of the given individual C |  |= C(JohnSmith)
  • 34.
    Ask Syntax AskLanguage Primitive Concept Retrieval <allConceptNames/> <allRoleNames/> <allIndividuals/> Satisfiability <satisfiable>C</satisfiable> <subsumes>C1 C2</subsumes> <disjoint>C1 C2</disjoint> Concept Hierarchy <parents>C</parents> <children>C</children> <ancestors>C</ancestors> <descendants>C<descendants/> <equivalents>C</equivalents> Role Hierarchy <rparents>R</rparents> <rchildren>R</rchildren> <rancestors>R</rancestors> <rdescendants>R<rdescendants/> Individual Queries <instances>C</instances> <types>I</types> <instance>I C</instance> <roleFillers>I R</roleFillers> <relatedIndividuals>R</relatedIndividuals>
  • 35.
    Project (Reason aboutUML/EER Diagrams) Create a UML/EER diagram that contains some contradictions and implications, convert this diagram into DIG, and use Racer to find these contradictions\implication. Your model should contain about 20 classes, associations, and many constraints. You are required to demonstrate at least 3 types of reasoning services. Hint: contradictions\implication can be achieved throw the wrong use of disjointness and cardinality constraints (see examples in the next slide).  Please remark that this project is not only to help you practice Description Logics, but also: 1) build correct UML/EER models and find problems automatically, 2) Reason about rules and business rules, and 3) you think of another usage (open your mind)!
  • 36.
    UML Class diagram(with a contradiction and an implication) Student ⊑ Person PhDStudent ⊑ Person Employee ⊑ Person PhD Student ⊑ Student ⊓ Employee Student ⊓ Employee ≐ ⊥ {disjoint} Person Student Employee PhD Student
  • 37.
    Infinite Domain: thedemocratic company [Franconi 2007] Supervisor ⊑  =2 Supervises.Employee Employee ⊑ Supervisor Supervises 2..2 0..1 implies “ the classes Employee and Supervisor necessarily contain an infinite number of instances”. Since legal world descriptions are finite possible worlds satisfying the constraints imposed by the conceptual schema, the schema is inconsistent . Supervisor Employee
  • 38.
    Example (in UML,EER and ORM) Employee Project WorksFor TopManager Manages Employee Project WorksFor Manages 1..1 1..1 TopManger WorksFor Manages Project TopManger Employee 1..1 1..1
  • 39.
    Example (in UML,EER and ORM) Employee ⊑  = 1 WorksFor.Project TopManager ⊑ Employee ⊓  = 1 Manages.Project WorksFor.Project ⊑ Manages.Project Employee Project WorksFor Manages 1..1 1..1 TopManger ⊨ ?
  • 40.
    Example (in UML,EER and ORM) Taught By Study 1..3 1..1 {complete,disjoint} Person Course Student Professor
  • 41.
    Another Example Person⊑  =1 Owns.Car ⊓  =1 Drives.Car Drive ≐ Owns Owns The first 1..1 cardinality constraint means that every person must owns one car. The second1..1 cardinality constraint means that every person must drives one car. The equal constraint means that every person who owns a car is allowed to only drive that car, and vice versa.  The equal constraint is implied by both cardinality constraints. Drives equal 1..1 1..1 Person Car