From: David W. <wh...@ne...> - 2000-02-09 00:43:48
|
The PDKB provides a clear vocabulary and definitions that are useful to describe situations where a computer program may need to model physics. I'll start out with an example from one of the list members: << There are two basic types of thing in these physics: Objects, and Forces. Objects are affected by forces. objects are everything from walls, floors, and the kitchen sink. They can be destroyed, etc. Stored along with them is basic information on their composition (say, wood), general structure (low cylinder, or a torus, or even a U shape. Things like that.), friction, mass, size, weight, heading, position, etc. Forces are that which acts on the objects. An object will generally have forces associated with it, such as gravity, or its magnetic polarity, rather than having forces freestanding. (although gravity would be such a force, I think.) The forces then interact with eachother... Say, we have a large piece of iron. Someone runs current through it, which causes it to have a magnetic force. It then attracts most of the rest of the iron in the room, including a metal support. The support, which was exerting an upwards force on the roof, is pulled to the iron. The roof, with nothing to counteract its downward force, collapses. >> As is my habit, I'll include all the defintions of PDKB constants I use at the end of my posting. To start on his/her simple example, all the objects mentioned above are instances of #$TemporalThing. And to even interact, they must be #$cotemporal, as well as #$near. These restrictions will keep something that happened a decade ago from affecting our model physics happening now. And the #$near requirement keeps something happening a long way from these objects from affecting the event here. In fact, I think we can say the roof and support are both #$above-Overhead the large piece of iron. Since #$above-Overhead is a #$genlPreds for #$above-Directly we know that anything we know about #$above-Directly would be true for #$above-Overhead as well. and we also know that the roof is #$above-Directly the piece of iron and the support is too. So when they collapse, it will be no surprise that the roof falls on top of the iron (presumably requiring them to do something to remove the roof if they want to get the iron and bring it somewhere else.) This is the power of symbolic modelling, that we can set up rules about #$above-Directly and #$TransformationEvent, which this roof collapsing event clearly is an instance of, and get the general model for having to handle things that collapse on top of other things. This speeds coding and adds more robustness to our programs. David (wh...@ne...) (713) 791-1414 ext 6116 #$above-Directly : <#$PartiallyTangible> <#$PartiallyTangible> (#$above-Directly ABOVE BELOW) means either (1) the volumetric center of ABOVE is directly above some point of BELOW, if ABOVE is smaller than BELOW; or (2) otherwise, it means that some point of ABOVE is directly above the volumetric center of BELOW. isa: #$PhysicalFeatureDescribingPredicate #$BinaryPredicate #$Predicate #$AsymmetricBinaryPredicate genlPreds: #$above-Higher some more specialized predicates: #$above-Overhead #$above-Touching #$on-Physical #$in-Floating #$hangsAround #$above-Overhead : <#$PartiallyTangible> <#$PartiallyTangible> (#$above-Overhead ABOVE BELOW) means that ABOVE is directly above BELOW, all points of ABOVE are higher than all points of BELOW, and they do NOT touch. Examples: a bomb falling directly above a bunker; a street lamp shining directly above a person standing below. isa: #$SpatialPredicate #$BinaryPredicate #$AsymmetricBinaryPredicate #$IrreflexiveBinaryPredicate genlPreds: #$above-Directly #$cotemporal : <#$TemporalThing> <#$TemporalThing> (#$cotemporal X Y) means that X and Y have the exact same temporal extent. This is a much stronger relation than #$temporalBoundsIdentical (q.v.). #$near : <#$SpatialThing> <#$SpatialThing> (#$near THIS THAT) means that the distance between THIS and THAT doesn't exceed the maximum dimension of the smaller object. Thus, two pebbles one mile apart would not be #$near each other, but a pebble one centimeter above the earth would be #$near the earth. isa: #$SymmetricBinaryPredicate #$SpatialPredicate #$BinaryPredicate #$IrreflexiveBinaryPredicate some more specialized predicates: #$inFrontOf-Generally #$behind-Generally #$spatiallyIntersects #$touches #$inFrontOf-Directly #$physicalDecompositions #$inPlane #$onLine #$covers-Paintlike #$touchesDirectly #$covers-Baglike #$above-Touching #$covers-Skinlike #$wornOn #$in-Snugly #$TemporalThing #$TemporalThing is the collection of all things which have a particular temporal extent, things about which one might sensibly ask 'When?'. #$TemporalThing therefore includes many things, such as actions, tangible objects, agreements, and abstract pieces of time. Some things are NOT instances of #$TemporalThing because they are abstract, timeless, etc. -- such as a mathematical set, an attribute, an integer, etc. isa: #$TemporalStuffType genls: #$Individual some subsets: #$Event #$TimeInterval #$SomethingExisting #$InformationBearingThing #$Group #$Credential #$GeneralizedTransfer #$PhysicalEvent #$MentalEvent #$Action #$QualitativeTimeOfDay #$HolidaySeason #$IntrinsicStateChangeEvent #$Date #$CalendarDecade (plus 1004 more public subsets, 12378 unpublished subsets) #$TransformationEvent A collection of events. In each element of #$TransformationEvent, at least one thing ceases to exist and at least one thing comes into existence. Usually at least some portion of the thing(s) destroyed becomes incorporated into the thing(s) that are created. Note: this collection is a superset of, but NOT coextensional with, #$TransformationProcess (q.v.). isa: #$TemporalObjectType #$ScriptType genls: #$PhysicalEvent #$CreationEvent #$DestructionEvent some subsets: #$PolishingSomething #$ChemicalReaction #$EnergyConversionProcess #$TransformationProcess #$PhysicalStateChangeEvent #$Melting #$Freezing #$Explosion #$CombustionProcess #$OxidationProcess #$DecompositionProcess #$Boiling #$Condensing #$Evaporating #$DecompositionEvent (plus 2 more public subsets, 25 unpublished subsets) |