90 likes | 188 Views
Errors in Representing Knowledge. Errors with Constants, Variables, and Reliance on NL Errors with Specialization, Generalization, and Rules Other Errors. #$equiv usually isn’t. Is it? (#$equiv (#$and (#$parents ?PERSON ?PARENT) (#$brothers ?PARENT ?UNCLE))
E N D
Errors in Representing Knowledge • Errors with Constants, Variables, and Reliance on NL • Errors with Specialization, Generalization, and Rules • Other Errors
#$equiv usually isn’t Is it? (#$equiv (#$and (#$parents ?PERSON ?PARENT) (#$brothers ?PARENT ?UNCLE)) (#$uncles ?PERSON ?UNCLE)) Better to use implies twice, and convince yourself that both directions really hold.
Definable Collections • E.g., #$WhiteCat • Completely definable in terms of other constants; nothing new to say. • Anytime one wishes to write • (#$isa ?X #$WhiteCat) • one could write this instead: • (#$and (#$isa ?X #$Cat) • (#$mainColorOfObject ?X #$WhiteColor)
Tedious Hand-Reification E.g., #$Kilometer, #$Kilogram, #$Kiloliter (#$Centimeter, #$Millimeter, #$Nanometer,etc) What must we say about, e.g., Kilogram? (#$isa #$Kilogram #$UnitOfMeasure) (#$resultIsa #$Kilogram #$Mass) (#$unitMultiplicationFactor #$Kilogram #$Gram 1000)
Avoiding Tedious Hand-Reification Better: Constant : MetricUnitPrefix isa : RelationshipType genls : ReifiableFunction UnaryFunction Constant : Kilo isa : MetricUnitPrefix arg1Isa : UnitOfMeasureNoPrefix resultIsa : UnitOfMeasureWithPrefix E.g., 1km =((#$Kilo #$Meter) 1)
Avoiding Tedious Hand-Reification Now rules can enforce consistent definitions: (#$unitMultiplicationFactor (#$Kilo ?UNIT) ?UNIT 1000) (#$implies (#$and (#$isa ?PREFIX #$MetricUnitPrefix) (#$natFunction ?METRIC-UOM ?PREFIX) (#$resultIsa ?UOM ?COL) (#$natArgument ?METRIC-UOM 1 ?UOM)) (#$resultIsa ?METRIC-UOM ?COL)) Therefore,(#$unitMultiplicationFactor (#$Kilo #$Meter) #$Meter 1000) (#$resultIsa (#$Kilo #$Meter) #$Distance)
Gratuitous High-arity Predicates:Lumping independent properties together Bad: (#$inventionInfo #$Telephone #$AlexanderGrahamBell (#$YearFn 1876)) State independently instead: (#$inventors #$Telephone #$AlexanderGrahamBell) (#$inventionDate #$Telephone (#$YearFn 1876))
Gratuitous High-arity Predicates:Hiding concepts inside assertions Bad: (#$teamLineup #$DallasCowboys-1998 #$TroyAikman #$EmmittSmith #$MichaelErvin . . .) Reify the positions: (#$hasPositionIn #$TroyAikman #$DallasCowboys-1998 #$Quarterback) (#$hasPositionIn #$EmmittSmith #$DallasCowboys-1998 #$RunningBack) . . .
Summary • #$equiv usually isn’t • Definable Collections • Tedious Hand-Reification • Gratuitous High-arity Predicates • Lumping independent properties together • Hiding concepts inside assertions