Presentation is loading. Please wait.

Presentation is loading. Please wait.

Copyright © 2002 Cycorp The Basics Arity Argument Types Second-Order Predicates More on Functions Predicates and Denotational Functions.

Similar presentations


Presentation on theme: "Copyright © 2002 Cycorp The Basics Arity Argument Types Second-Order Predicates More on Functions Predicates and Denotational Functions."— Presentation transcript:

1 Copyright © 2002 Cycorp The Basics Arity Argument Types Second-Order Predicates More on Functions Predicates and Denotational Functions

2 Copyright © 2002 Cycorp Function Result Types Know what type of thing a given function returns for any appropriate argument #$MotherFn always returns some female animal #$TransportViaFn always returns some collection of transportation events In CycL it’s easy to specify function result types...

3 Copyright © 2002 Cycorp Function Result Types Specified in two primary ways #$resultIsa : states what type of thing the result is an instance of #$resultGenl : states what type of thing the result is a specialization of

4 Copyright © 2002 Cycorp Function Result Types: #$resultIsa Example 1 (#$resultIsa #$GovernmentFn #$RegionalGovernment) Thus, (#$isa (#$GovernmentFn #$Sweden) #$RegionalGovernment) and (#$isa (#$GovernmentFn #$CityofAustinTX) #$RegionalGovernment)

5 Copyright © 2002 Cycorp Function Result Types: #$resultIsa and #$resultGenl Example 2 (#$resultIsa #$TransportViaFn #$Collection) and (#$resultGenl #$TransportViaFn #$TransportationEvent) Thus, (#$TransportViaFn #$Automobile) is an instance of #$Collection and a specialization of #$TransportationEvent

6 Copyright © 2002 Cycorp Transitivity of #$genls Given the transitivity of #$genls and the “transfer of #$isa through #$genls ” result types are powerful. Example (using transitivity of #$genls ) : (#$resultGenl #$TransportViaFn #$TransportionEvent) and (#$genls #$TransportationEvent #$Event) Thus, (#$genls (#$TransportViaFn #$Automobile) #$Event)

7 Copyright © 2002 Cycorp Transitivity of #$genls Example Example (using “transfer of #$isa through #$genls ”) : (#$resultIsa #$GovernmentFn #$RegionalGovernment ) and (#$genls #$RegionalGovernment #$Organization) Thus, (#$isa (#$GovernmentFn #$Sweden) #$Organization)

8 Copyright © 2002 Cycorp Examples of Function Use: #$BodyPartFn Given this information : (#$isa #$BodyPartFn #$BinaryFunction) (#$arg1Isa #$BodyPartFn #$Animal) (#$arg2Isa #$BodyPartFn #$AnimalBodyPartType) (#$arg2Isa #$BodyPartFn #$UniqueAnatomicalBodyPartType) (#$arg2Genl #$BodyPartFn #$AnimalBodyPart) (#$resultIsa #$BodyPartFn #$AnimalBodyPart) Are these well-formed NATs ? (#$BodyPartFn #$SubaruCar #$Fender) (#$BodyPartFn #$GoldenRetriever #$Tail) (#$BodyPartFn #$Rover) (#$BodyPartFn #$Rover #$Tail)

9 Copyright © 2002 Cycorp Examples of Function Use: #$BodyPartFn Given this information : (#$isa #$BodyPartFn #$BinaryFunction) (#$arg1Isa #$BodyPartFn #$Animal) (#$arg2Isa #$BodyPartFn #$AnimalBodyPartType) (#$arg2Isa #$BodyPartFn #$UniqueAnatomicalBodyPartType) (#$arg2Genl #$BodyPartFn #$AnimalBodyPart) (#$resultIsa #$BodyPartFn #$AnimalBodyPart) Are these well-formed NATs ? (#$BodyPartFn #$SubaruCar #$Fender) (#$BodyPartFn #$GoldenRetriever #$Tail) (#$BodyPartFn #$Rover) (#$BodyPartFn #$Rover #$Tail)

10 Copyright © 2002 Cycorp Examples of Function Use: #$BodyPartFn Given this information : (#$isa #$BodyPartFn #$BinaryFunction) (#$arg1Isa #$BodyPartFn #$Animal) (#$arg2Isa #$BodyPartFn #$AnimalBodyPartType) (#$arg2Isa #$BodyPartFn #$UniqueAnatomicalBodyPartType) (#$arg2Genl #$BodyPartFn #$AnimalBodyPart) (#$resultIsa #$BodyPartFn #$AnimalBodyPart) Are these well-formed NATs ? (#$BodyPartFn #$SubaruCar #$Fender) (#$BodyPartFn #$GoldenRetriever #$Tail) (#$BodyPartFn #$Rover) (#$BodyPartFn #$Rover #$Tail)

11 Copyright © 2002 Cycorp Examples of Function Use: #$InstructionsFn-Making Given this information : (#$isa #$InstructionsFn-Making #$UnaryFunction) (#$arg1Isa #$InstructionsFn-Making #$ExistingObjectType) (#$arg1Genl #$InstructionsFn-Making #$Artifact-Generic) (#$resultIsa #$InstructionsFn-Making #$ObjectType) (#$resultGenl #$InstructionsFn-Making #$Instructions) Are these well-formed NATs ? (#$InstructionsFn-Making #$Recipe #$ChickenSoup) (#$InstructionsFn-Making #$RadioReceiver) (#$InstructionsFn-Making #$Mud) (#$InstructionsFn-Making #$SetOrCollection)

12 Copyright © 2002 Cycorp Examples of Function Use: #$InstructionsFn-Making Given this information : (#$isa #$InstructionsFn-Making #$UnaryFunction) (#$arg1Isa #$InstructionsFn-Making #$ExistingObjectType) (#$arg1Genl #$InstructionsFn-Making #$Artifact-Generic) (#$resultIsa #$InstructionsFn-Making #$ObjectType) (#$resultGenl #$InstructionsFn-Making #$Instructions) Are these well-formed NATs ? (#$InstructionsFn-Making #$Recipe #$ChickenSoup) (#$InstructionsFn-Making #$RadioReceiver) (#$InstructionsFn-Making #$Mud) (#$InstructionsFn-Making #$SetOrCollection)

13 Copyright © 2002 Cycorp Examples of Function Use: #$InstructionsFn-Making Given this information : (#$isa #$InstructionsFn-Making #$UnaryFunction) (#$arg1Isa #$InstructionsFn-Making #$ExistingObjectType) (#$arg1Genl #$InstructionsFn-Making #$Artifact-Generic) (#$resultIsa #$InstructionsFn-Making #$ObjectType) (#$resultGenl #$InstructionsFn-Making #$Instructions) Are these well-formed NATs ? (#$InstructionsFn-Making #$Recipe #$ChickenSoup) (#$InstructionsFn-Making #$RadioReceiver) (#$InstructionsFn-Making #$Mud) (#$InstructionsFn-Making #$SetOrCollection)

14 Copyright © 2002 Cycorp Individuals or Collections? A key distinction among functions : Does it always return an individual ? #$MotherFn #$BorderBetweenFn Does it always return a collection ? #$TransportViaFn #$GroupFn

15 Copyright © 2002 Cycorp #$IndividualDenotingFunction All functions such that : (#$resultIsa ?FUNCTION #$Individual) Any NAT made by applying ?FUNCTION denotes an individual (as opposed to a collection). Must have a #$resultIsa specification. Must not have a #$resultGenl specification. Why not? More Examples : #$GovernmentFn, #$BirthFn

16 Copyright © 2002 Cycorp #$CollectionDenotingFunction All functions such that : (#$resultIsa ?FUNCTION #$Collection) Any NAT made by applying ?FUNCTION denotes a collection (as opposed to an individual). Must have a #$resultIsa specification. May also have a #$resultGenl specification. More Examples : #$ResidentsFn, #$TeacherFn)

17 Copyright © 2002 Cycorp Individual vs. Collection Denoting Functions The Hierarchy #$Function-Denotational disjoint #$Individual Denoting Function #$Collection Denoting Function isa genls #$GovernmentFn#$BirthFn#$GroupFn#$ResidentsFn

18 Copyright © 2002 Cycorp Summary Function result types Transitivity of #$genls Individual-denoting vs. collection-denoting functions


Download ppt "Copyright © 2002 Cycorp The Basics Arity Argument Types Second-Order Predicates More on Functions Predicates and Denotational Functions."

Similar presentations


Ads by Google