Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 20

Knowledge Structures

Building the Perfect Object

Dr. David A Ferrucci -- Logic Prog


ramming and AI Lecture Notes
Overview
Concepts as Objects, Attributes and Relations
Whats a Concept?
Concepts, Classes and Instances
Inheritance
Value Restrictions
Default values
Specialization/Generalization
ISA and Subset
Meta-Modeling: Classes and Instances

Dr. David A Ferrucci


Object, Attributes and Relations
Representational Structure Thing

Object Concept

Attribute Property

Value Property Value

Relation Relationship between Concepts

Dr. David A Ferrucci


(O,A,V) Notation
Notation: oav(O, A, V)
oav: object database
O: any object symbol
A: an attribute symbol
V: a value symbol
Semantic Interpretation
O represents a concept,
A a property of that concept and
V a value of the property A of the concept O.

Dr. David A Ferrucci


Whats a Concept?
Asserts something about a group of individuals
oav(telephone, color, beige) (x) telephone(x) ^ oav(x, color, beige)
telephone is an object that denotes the concept telephone
telephone has a property color and its value is beige.
Is that enough? Which does the representation really intend?
the concept telephone is beige?
all things that are telephones are beige?
oav(tel_101, instance_of, telephone)
telephone(tel_101)
tel_101 is a telephone?
oav(tel_101, color, beige)
Asserts something about a particular individual
Is tel_101 beige?
Is the color attribute interpreted uniformly?
Can color be an object?
Can instance_of be an object?

Dr. David A Ferrucci


Classes and Individuals?
A useful interpretation of OAVs requires a distinction between classes & individuals
Individuals
IF an object fact is an assertion about a particular individual, then property values specify the
value of that property for that individual
oav(o,a,v): oav(o, a, v)
Classes
IF an object describes a class of individuals, THEN property values are intended to describe
a class of potential (valid/satisfying) values for any individual of that class
The object in this case denotes an entire set of individuals by describing the set of
characteristics true of all individuals in that set.
oav(o_class, a, v_class ): (x) o_class(x) ^ oav(x, a, v) ^ v_class(v)
In our new interpretation, o_class is a predicate, oav just became a 2nd order predicate. What
are the implications?

Dr. David A Ferrucci


The Class Assertion
How do we assert that an object should denote a class vs an individual?
This is required to apply the right logical interpretation of a assertion: oav(o,a,v)
Option 1: Special Predicates
class(object) or individual(object)
Not both - we would not know which interpretation to apply
Implies an object is either a class or an individual
This is how OO languages and most KR languages do it.
Do objects that represent classes ever represent individuals? No.
Option 2
intentional_oav(o, a, v) and extensional_oav(o,a,v)
Objects can have intentional assertions and extensional assertions.
Objects may act as either a class or an individual.
How would this ever be a requirement? If it is what are the implications?

Dr. David A Ferrucci


Instance_of and Inheritance
A relation between concepts - Links individuals to classes
ex_oav(tel_101, instance_of, telephone)
ex_oav(harry, instance_of, eagle)
Facts
in_oav(telephone, color, beige)
ex_oav(te1_101, instance_of, telephone)
The inheritance inference
From the above we would like to infer: ex_oav(tel_101, color, beige)
Requires interpretation of intentional values as values held by all instances not as
value classes
(c,x) ex_oav(x, instance_of, c) ^ in_oav(c, a, v) ex_oav(x, a, v)

Dr. David A Ferrucci


Instance_of and Value Restrictions
in_oav(telephone, color, telephone_color)
(x,v) ex_oav(x, instance_of, telephone)
ex_oav(x,color,v) ^ v is a telephone_color
v is a telephone_color? We dont know what we mean by this yet.
ex_oav(te1_101, instance_of, telephone)
tel_101 does not inherit any particular color on this interpretation
How would you accommodate both
Classes as descriptions of common characteristics of all individuals AND
Classes as a source for inherited values
Would we want both?
How would each be used? Recognition. Design. Production.

Dr. David A Ferrucci


Inheritance and Value Restriction
Inheritance Inference
(c,x,a)
(ex_oav(x, instance_of, c) ^ in_oav(c, a, v))
ex_oav(x, a, v)
Value Restriction Inference
(c,a,v,vc,x,) % c:class, a:attribute, v:value, vc:value class, x:object
in_oav(c, a, vc)
ex_oav(x, instance_of, c) ex_oav(x,a,v) ^ v is in vc
What do we mean by v is in vc
v is a member of the class vc
v satisifies the value restriction vc
ex_oav(v, instance_of,vc)?
vc(v) where vc is a LP rule?
vc is a list and v is a member?

Dr. David A Ferrucci


Representation of Value Classes
Use same representation scheme
vc is in v
ex_oav(v, instance_of,vc)
ex_oav(beige, instance_of, telephone_color)
Sneak some Prolog
Define telephone_color(X) as a rule that determines if X is a telephone_color. This
rule becomes a representation of the potential values.
telephone_color(X) member(X, [white, black, beige]).
Delivers all the power of PROLOG to express value_class and determine
value_class membership.

Dr. David A Ferrucci


Value Classes and Inherited Values
User value class interpretation as stated above
Add explicit representation of default values
Proposal 1: Use current primitives
in_oav(telephone, color, telephone_color)
in_oav(telephone, default_color, beige)
Would this work?
Proposal 2: Have value_class representation emit a default value
telephone_color(X) <- X=beige, !. %Default Value
telephone_color(X) <- member(X, [beige, black, white]). %Value Restriction
Proposal 3: Add new explicit primitives to representation
in_oav_default(telephone, color, beige)
Develop inheritance inference to use this relation.

Dr. David A Ferrucci


Programming Workshop 0

Implement what an object-based KR language.


Included the following features:
Object, Attribute and Values
Getters and Setters
Class and Instances
Inheritance and Default Values
Implement both proposals
Value Restriction

Dr. David A Ferrucci


The IS_A Relation. What does it mean?
Instance_of
eagle is_a bird eagle instance_of bird?
Harry is_a eagle harry instance_of eagle?
Set Membership
eagle is_a bird eagle is a member of the set birds?
eagle is_a bird eagle is a subset of the set bird?
harry is_a eagle harry is a member? Subset? of the set of all eagles?
Predication (recognition)
eagle is_a bird bird(eagle) bird is a predicate
eagle satisfies the predicate bird (however it is defined e.g, has wings)
But is eagle a predicate or an individual?
bald_eagle is_a eagle would suggest that eagle is a predicate. Then bird becomes 2 nd order
Conceptual Containment (Construction)
eagle is_a bird bird is used to construct an eagle (inheritance, value restrictions etc.)
whatever is asserted true about a bird may be inferred true about all bald eagles.

Dr. David A Ferrucci


Is-as Extensional Implication
Animal

Mammal

Cat

Dr. David A Ferrucci


The IS_A Inferences
Instance Inclusion
If A is_a B then if x instance_of A then x instance_of B
Transitivity
A is_a B ^ B is_a C A is_a C
Property and property value inheritance
oav(B,P,V) ^ A is_a B oav(A,P,V)
What if there are multiple values?
What about subclass overrides
Subsumption
Use attributes and value classes to interpret a class as a predicate.
The predicate would be used to determine membership of individuals.
Given classes A and B (and none of there members) determine if the predicate A
is_a B. A is subsumed by B. All As instances are Bs instances.

Dr. David A Ferrucci


Meta-Models, Classes &
Instances

Dr. David A Ferrucci


Meta^3

Dr. David A Ferrucci


Programming Project
Implement an object-based representation language to
everything in workshop 0 plus:
Default Value Overrides
The is_a relation and its inferences
Multiple Values
Inheritance over layered models (model and meta model)

Dr. David A Ferrucci


The End

An OO modeling system represents a fairly complex default-logic.


Do you know the semantics of your OO system?

Dr. David A Ferrucci -- Logic Prog


ramming and AI Lecture Notes

You might also like