260 likes | 419 Views
Knowledge Representation and Reasoning using PowerLoom. Presenter Shamima Mithun. Overview. Introduction Terminology and Propositions PowerLoom Knowledge Base (KB) Construction Process Reasoning in PowerLoom KB Constructions and Query using PowerLoom Conclusion. Introduction. PowerLoom
E N D
Knowledge Representation and Reasoning using PowerLoom Presenter Shamima Mithun
Overview • Introduction • Terminology and Propositions • PowerLoom Knowledge Base (KB) Construction Process • Reasoning in PowerLoom • KB Constructions and Query using PowerLoom • Conclusion
Introduction PowerLoom • is a Description Logics system. • is a highly expressive language for knowledge representation. • is the successor to the Loom knowledge representation system. • uses a fully expressive, logic-based representation language (a variant of KIF). • provides language and environment to develop intelligent applications [1].
Introduction (contd.) • uses a Prolog-style backward chainer as its inference engine [1]. • is not a complete theorem prover, but it can handle complex rules, negation, subsumption, and restricted forms of higher order reasoning. • handles recursive rules without the risk of infinite recursion. <sentence>::= <constant>│<longsent> │<equation> │… <longsent>::= (not<sentence>) │(and <sentence>*) │…
T-Box & A-Box • Knowledge base comprises two components • The T-Box introduces terminologies (concept, role/relation). Concepts: denote sets of individuals (e.g. person). Relations: denote binary relations between individuals (e.g. is_married_to). • The A-Box asserts on the constants. Two kinds of assertions: • Concept assertion, e.g. person (Mary), person (Peter). • Role assertion, e.g. is_married_to (Peter, Mary).
Terminology and Propositions • In PowerLoom KB represents physical or virtual world. • Term are KB objects that models real world entities. Every term must have distinct name (e.g. person). • Terms are categorized or related to one another by object called relations. • “A proposition is a logical sentence that has an associated truth value” (e.g. John is a person).
PowerLoom KB Construction Process PowerLoom KB is constructed by • first defining the terminology (concepts and relations) for a domain. • then asserting additional rules and facts about that domain. • fact can be asserted and later retracted, so the answers returned by the queries may change over time.
PowerLoom Commands • Defines concept, relation, function and rules using defconcept, defrelation, deffunction, defrule. • Add/Remove facts from KB with assert and retract • Query KB ask, retrieve Note: Relations should be defined before they are used within association and queries.
More on syntactic construct • Adopt a prefix notation (similar to KIF). For example, (=(+ 2 3)5) • Construct complex sentence from simpler forms using the logical connectives and, or, not, ,+, =>, <=, and the quantifiers exists and forall.
PowerLoom KB Organization • In PowerLoom concepts and instances of concept are organized hierarchically. • Knowledge inherits down the hierarchy from parent to children. • Fix Furniture and Movable Furniture inherit all facts asserted on their parent Furniture. Door, Window, Chair, and Sofa also inherit facts from their parents but they do not have access facts asserted to their siblings. Furniture Fix Furniture Movable Furniture Door Window Chair Sofa
Reasoning in PowerLoom • A reasoner, PowerLoom’s description classifier, uses technology derived from the Loom classifier[1]. • Classifier computes the subsumption relation between concepts using their description. Subsumption Subsumption is typically written as C D. Determining subsumption is the problem of checking whether the concept denoted by D (the subsumer) is considered more general than the one denoted by C (the subsumee), e.g. student person.
Reasoning in PowerLoom (contd.) Satisfiability During modeling a domain we construct terminology (by defining new concepts). The new concept could not be contradictory with defined concepts.
Model Domain Furniture Movable- Furniture Fixed- Furniture Age Color Door Window Chair Sofa Red Green Old New Size Small Big IS-A
Define Concept |=(defconcept furniture) |c| FURNITURE |= (defconcept movable-furniture (?f furniture)) |c| MOVABLE-FURNITURE |= (defconcept fixed-furniture (?f furniture)) |c| FIXED-FURNITURE |=(defconcept chair (?f movable-furniture)) |c| CHAIR |= (defconcept sofa (?f movable-furniture)) |c| SOFA
Define Concept (contd.) |= (defconcept window (?ff fixed-furniture)) |c| WINDOW |= (defconcept door (?ff fixed-furniture)) |c| DOOR |= (defconcept age (?a) :<=> (member-of ?a (setof new old))) |c| AGE |= (defconcept color (?c) :<=> (member-of ?c (setof green red blue))) |c| COLOR |= (defconcept size (?s) :<=> (member-of ?s (setof small big))) |c| SIZE
Model Domain Furniture has-color has-age Movable- Furniture Fixed- Furniture Age Color Door Window Chair Sofa has-size Red Green Old New Size Small Big IS-A
Define Relation |= (defrelation has-age ((?f furniture) (?a age))) |r| HAS-AGE |= (defrelation has-color ((?f furniture) (?c color))) ) |r| HAS-COLOR |= (defrelation has-size ((?f furniture) (?s size))) |r| HAS-SIZE
Model Domain Furniture has-color has-age Movable- Furniture Fixed- Furniture Age Color Door Window Chair Sofa Red Green Old New has-size Size Big Small IS-A
Value Assertion |= (assert(has-size chair big)) |P|(HAS_SIZE CHAIR BIG) |= (assert(has-color sofa red)) |P|(HAS_COLOR SOFA RED) |= (assert(has-age chair new)) |P|(HAS_AGE CHAIR NEW) |= (assert(has-age door old)) |P|(HAS_AGE DOOR OLD) |= (assert(has-color window green)) |P|(HAS_COLOR WINDOW GREEN)
Query the KB: Ask |= (ask (has-size chair big)) TRUE |= (ask (has-age door new)) FALSE |= (ask (has-color door red)) UNKNOWN
Query the KB: Retrieve & Retract |= (retrieve all (furniture ?x)) There are 4 solutions: #1: ?X=CHAIR #2: ?X=SOFA #3: ?X=WINDOW 4: ?X=DOOR |=(retrieve (has-color sofa ?x)) There is 1 solution so far: #1: ?X=RED |=(retract (has-color sofa red)) |P?|(HAS-COLOR SOFA RED) |= (retrieve (has-color sofa ?x)) No solutions.
Others |=(all-facts-of chair) (|P|(CONCEPT CHAIR) |P|(HAS-SIZE CHAIR BIG) |P|(HAS-AGE CHAIR NEW) |P|(FORALL (?x1)(<= (MOVABLE-FURNITURE ?x1) (CHAIR ?x1))) |P|(FURNITURE CHAIR)
Conclusion • PowerLoom is a very expressive language which assists to develop intelligent applications. • Even though its backward chainer is not completely implemented it can handle most of the inference rules as well as recursive rules. • It provides API for easy integration with programs in Java, C++, and Lisp.
References • PowerLoom Homepage http://www.isi.edu/isd/LOOM/PowerLoom/ • Daniele Nardi and Ronald J. Brachman. An introduction to Description Logics. In Baader, Calvanese, McGuinnes Nardi and Patel-Schneider, (eds). The Description Logics Handbook, chapter 1. Cambridge University Press, 2003. • Franz Baader and Werner Nutt. Basic Description Logics. In Baader, Calvanese, McGuinnes Nardi and Patel-Schneider, (eds). The Description Logics Handbook, chapter 2. Cambridge University Press, 2003.