ontolog-forum
[Top] [All Lists]

Re: [ontolog-forum] Accommodating legacy software

To: ontolog-forum@xxxxxxxxxxxxxxxx
From: "doug foxvog" <doug@xxxxxxxxxx>
Date: Wed, 5 Sep 2012 00:57:09 -0400
Message-id: <2222c422c68c6f0e045979b62d417e07.squirrel@xxxxxxxxxxxxxxxxx>
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)

<Prev in Thread] Current Thread [Next in Thread>