Knowledge RepresentationKnowledge EngineerKnowledge engineering vs. programmingProperties of good knowledge basesEfficiencyPitfall: design KB for human readersDebuggingOntologyOntology ExampleTowards a general ontologyRepresenting CategoriesCategories: inheritanceExample: Taxonomy of hand/arm movementsMeasuresComposite ObjectsComposite Objects (cont.)EventsEvents (cont.)Times, Intervals and ActionsTimes, Intervals and Actions (cont.)Objects RevisitedSubstances and ObjectsExample: Activity RecognitionHuman activity detectionLow-level processingSpatio-temporal representationSlide 27Modeling EventsSlide 29Slide 30Example 2: towards autonomous vision-based robotsExampleMotivation: HumansMinimal subsceneGeneral architectureExample of operationMore formally: how do we do it?Slide 38Slide 39Slide 40Slide 41Slide 42Slide 43Slide 44Slide 45Slide 46Slide 47Slide 48Slide 49Slide 50Reality or fiction?Meanwhile…Slide 53Slide 54Slide 55CS 561, Sessions 14-151Knowledge Representation•Knowledge engineering: principles and pitfalls•Ontologies•ExamplesCS 561, Sessions 14-152Knowledge Engineer•Populates KB with facts and relations•Must study and understand domain to pick important objects and relationships•Main steps:Decide what to talk aboutDecide on vocabulary of predicates, functions & constantsEncode general knowledge about domainEncode description of specific problem instancePose queries to inference procedure and get answersCS 561, Sessions 14-153Knowledge engineering vs. programmingKnowledge Engineering Programming1. Choosing a logic Choosing programming language2. Building knowledge base Writing program3. Implementing proof theory Choosing/writing compiler4. Inferring new facts Running programWhy knowledge engineering rather than programming?Less work: just specify objects and relationships known to be true, but leave it to the inference engine to figure out how to solve a problem using the known facts.CS 561, Sessions 14-154Properties of good knowledge bases•Expressive•Concise•Unambiguous•Context-insensitive•Effective•Clear•Correct•…Trade-offs: e.g., sacrifice some correctness if it enhances brevity.CS 561, Sessions 14-155Efficiency•Ideally: Not the knowledge engineer’s problemThe inference procedure should obtain same answers no matter how knowledge is implemented.•In practice:- use automated optimization- knowledge engineer should have some understanding of how inference is doneCS 561, Sessions 14-156Pitfall: design KB for human readers•KB should be designed primarily for inference procedure!•e.g.,VeryLongName predicates:BearOfVerySmallBrain(Pooh) does not allow inference procedure to infer that Pooh is a bear, an animal, or that he has a very small brain, …Rather, use:Bear(Pooh)b, Bear(b) Animal(b)a, Animal(a) PhysicalThing(a)…[See AIMA pp. 220-221 for full example]In other words:BearOfVerySmallBrain(pooh) = x(pooh)CS 561, Sessions 14-157Debugging•In principle, easier than debugging a program,because we can look at each logic sentence in isolation and tell whether it is correct.Example:x, Animal(x) b, BrainOf(x) = bmeans “there is some object that is the value of the BrainOf function applied to an animal” and can be corrected to mean “every animal has a brain” without looking at other sentences.CS 561, Sessions 14-158Ontology•Collection of concepts and inter-relationships•Widely used in the database community to “translate” queries and concepts from one database to another, so that multiple databases can be used conjointly (database federation)CS 561, Sessions 14-159Ontology ExampleKhan & McLeod, 2000CS 561, Sessions 14-1510Towards a general ontologyDevelop good representations for:-categories-measures-composite objects-time, space and change-events and processes-physical objects-substances-mental objects and beliefs-…CS 561, Sessions 14-1511Representing Categories•We interact with individual objects, but… much of reasoning takes place at the level of categories.•Representing categories in FOL: - use unary predicatese.g., Tomato(x) - reification: turn a predicate or function into an objecte.g., use constant symbol Tomatoes to refer to set of all tomatoes“x is a tomato” expressed as “xTomatoes”•Strong property of reification: can make assertions about reified category itself rather than its memberse.g., Population(Humans) = 5e9-in a table form (small set of objects)-based on its propertiesCS 561, Sessions 14-1512Categories: inheritance•Allow to organize and simplify knowledge basee.g., if all members of category Food are edibleand Fruits is a subclass of Foodand Apples is a subclass of Fruitsthen we know (through inheritance) that apples are edible.•Taxonomy: hierarchy of subclasses•Because categories are sets, we handle them as such.e.g., two categories are disjoint if they have no member in commona disjoint exhaustive decomposition is called a partitionetc…CS 561, Sessions 14-1513Example: Taxonomy of hand/arm movementsHand/arm movementGestures Unintentional MovementsManipulative CommunicativeActs SymbolsMimetic Deictic Referential ModalizingQuek,1994, 1995.CS 561, Sessions 14-1514Measures•Can be represented using units functionse.g.,Length(L1) = Inches(1.5) = Centimeters(3.81)•Measures can be used to describe objectse.g., Mass(Tomato12) = Kilograms(0.16)•Caution: be careful to distinguish between measures and objectse.g.,b, bDollarBills CashValue(b) = $(1.00)CS 561, Sessions 14-1515Composite Objects•One object can be part of another.•PartOf relation is transitive and reflexive:e.g., PartOf(Bucharest, Romania)PartOf(Romania, EasternEurope)PartOf(EasternEurope, Europe)Then we can infer Part Of(Bucharest, Europe)•Composite object: any object that has partsCS 561, Sessions 14-1516Composite Objects (cont.)•Categories of composite objects often characterized by their structure, i.e., what the parts are and how they relate.e.g., a Biped(a) ll, lr, b Leg(ll) Leg(lr) Body(b) PartOf(ll, a) PartOf(lr, a) PartOf(b, a) Attached(ll, b) Attached(lr, b) ll lr x Leg(x) PartOf(x, a) (x = ll x = lr)•Such description can be used to describe any objects, including events. We then talk about schemas and scripts.CS 561, Sessions 14-1517Events•Chunks of spatio-temporal universee.g., consider the event WorldWarII it has parts or sub-events: SubEvent(BattleOfBritain, WorldWarII)
View Full Document