On Tue, September 4, 2012 at 16:34, i was asked:
> Doug, (01)
> An interesting list of requirements for a 'fundamental data model'. (02)
I was trying to pare to the bones what would be needed to represent
anything that KIF or Cyc could encode. I did miss a few things in that
list: variables and logical relations.
... (03)
> Do you have examples of expressions for these requirements to verify
> whether a language is suitable to express them? (04)
I could express each of these in Cyc. Here are some examples: (05)
>>>> I would suggest that a "fundamental data model" should model the
>>>> following types of data:
>>>> * (terms for) types/classes of things
(isa BiologicalSpecies Collection)
>>>> + specification of subtype/subclass to another type/class
(genls BiologicalSpecies OrganismType) - subclass
>>>> + specification of disjointness with another type/class
(disjointWith BiologicalSpecies BiologicalKingdom)
>>>> * (terms for) instances of such types/classes
(isa BiologicalSpecies BiologicalTaxon) -- instantiation
(isa CanusLupus BiologicalSpecies)
>>>> * (terms for) relations among represented things
>>>> + specification of arity of relations
>>>> - single arity (can be binary)
(isa betweenOnPath QuaternaryPredicate)
>>>> - variable arity
(isa printFormat VariableArityPredicate)
(minArity printFormat 1) -- minimum arity
>>>> + restriction on argument fillers of relation
>>>> - to being an instance of given type(s)/class(es)
(arg4Isa betweenOnPath Path)
>>>> - to being a subclass of given type(s)/class(es)
(arg1Genls ennervatesMuscle Nerve) -- first argument subclass of ...
(arg2Genls ennervatesMuscle Muscle) --second argument subclass of ...
>>>> - restrictions based on the type/superclass of another
>>>> argument filler
(interArgIsa1-2 capitalCityOf USState StateCapital)
-- if first argument to "capitalCityOf" is an instance of US State,
then second argument is an instancce of StateCapital.
>>>> + specification of properties of relations
>>>> - transitive - symmetric - reflexive
>>>> - antitransitive - asymmetric - irreflexive - ...
(isa greaterThan TransitiveBinaryPredicate)
(isa greaterThan AsymmetricBinaryPredicate)
(isa spouse IrreflexiveBinaryPredicate)
(isa spouse SymmetricBinaryPredicate)
(isa biologicalMother AntitransitiveBinaryPredicate)
>>>> - functional in arg N
(functionalInArg biologicalMother 2)
>>>> + specification of relations among relations
>>>> - subrelation - inverse subrelation - transitive closure -
(genlPreds biologicalMother biologicalRelative) -- subrelation
(transitiveClosure parents ancestors)
(genlInverse sons parents) -- inverse subrelation
>>>> * (terms for) functions of represented things
>>>> + specification of arity of function
(isa BiologicalMotherFn UnaryFunction)
>>>> + restriction on argument fillers of function
(arg1Isa BiologicalMotherFn Animal)
(arg1Genls LeftBodyPartTypeFn SymmetricAnatomicalPartType)
>>>> + specification of type/class of result of function applied to
>>>> arguments
>>>> - to being an instance of given type(s)/class(es)
(resultIsa BiologicalMotherFn FemaleAnimal)
>>>> - to being a subclass of given type(s)/class(es)
(resultGenls LeftBodyPartTypeFn UniqueAnatomicalPartType)
>>>> - to being a instance/subclass of one of its arguments
(resultGenlArg LeftBodyPartTypeFn 1)
(resultIsaArg BodyPartFn 2)
-- e.g., (BodyPartFn John Head) is an instance of Head
>>>> - restriction based on the type/superclass of an argument filler
This is done by rule for functions such as SubcollectionWithRelationToFn. (06)
>>>> * provenance of data
Every statement is reified and has automatically generated a time stamp
and an (assertedBy <S> <Asserter>) meta-statement.
>>>> * contexts for data
>>>> + define contexts
(isa IBMpayroll08312012Mt DataMicrotheory)
(genlMt IBMpayroll08312012Mt IBMpayrollsMt)
>>>> + specify semantics of a context using statements based on
>>>> relations
(mtTime IBMpayroll31082012Mt
(DayFn 31 (MonthFn August (YearFn 2012))))
>>>> * context of data
>>>> + specification of the context in which data is valid
Every statement is stated within a context.
>>>> Such a data model would not require a fixed syntax. (07)
> What I missed in your requirements list is a specification of the kinds of
> relations that are at least required to provide a basic semantic
> expression capability. (08)
Yes, i failed to mention required logical relations. The basic ones would
be: (09)
AND
OR
NOT (010)
For rules, one should have variables (which i also forgot to mention)
and the logical relations:
IMPLIES
FOR ALL
THERE EXISTS (011)
I know that with NANDs or NORs one can generate other logical
relations by composition. Readability and simplicity suggest that
the the full set be implemented. (012)
-- doug foxvog (013)
_________________________________________________________________
Message Archives: http://ontolog.cim3.net/forum/ontolog-forum/
Config Subscr: http://ontolog.cim3.net/mailman/listinfo/ontolog-forum/
Unsubscribe: mailto:ontolog-forum-leave@xxxxxxxxxxxxxxxx
Shared Files: http://ontolog.cim3.net/file/
Community Wiki: http://ontolog.cim3.net/wiki/
To join: http://ontolog.cim3.net/cgi-bin/wiki.pl?WikiHomePage#nid1J (014)
|