[Zope3-dev] Re: Zope3-dev Digest, Vol 25, Issue 37

Jean-Marc Orliaguet jmo at ita.chalmers.se
Thu Aug 25 18:38:15 EDT 2005


Benji York wrote:

> Jean-Marc Orliaguet wrote:
>
>> the whole issue with RDF I think is: many who build representational
>> models have noticed that the (subject, object, predicate) triad is not
>> sufficiently flexible to represent knowledge that has to do with laws,
>> agreements, abstract concept, regularity, phenomena that evolve with
>> time, etc.
>
>
> Can you give an example of one of these pieces of knowledge?


Yes:

    "John gives a book to Mary"

means more than a dyadic relation followed by another:

    "John drops the book" and "Mary picks the book"

it means that there is an agreement between John and Mary that the book
is indefinitely hers (which '__ gives __ to ___' signifies). A notion of
a transfer of the right of property, which no combination of dyadic
predicates can express because all three elements in the relation must
be taken in the same act.

If you store the relations "John drops the book" and "Mary picks the
book" how will you know if the book belongs to Mary and belonged to John
before it was given to her? You could add "the book belongs to John"
"the book belongs to Mary", add some date information, add the fact that
the action is a gift (reification), ... all the pieces still have to be
put together. This will need to be interpreted in a language (or a query
language that does unions, intersections, ..) that knows how to put the
pieces together. The model is very verbose is not explicit at all.

"Joe prefers apples to cookies" cannot be expressed as a mere
combination of:

- "Joe likes apples"
- "Joe likes cookies"
- "apples are prefered to cookies"   (i.e. by whom?)
 
The last proposition is incorrect outside the context of "Joe prefering
apples to cookies". So if you add such a relation to your storage
without the context, you introduce a proposition that has no meaning.

- a feedback loop is another one that cannot be expressed as a
combination of dyads, since all 3 entities in the loop cooperate
simultaneously.

- zope adapters cannot be expressed by combining dyadic predicates only.
When you look up an adapter you must pass the context AND the new
interface. All three entities must be treated together.
 
This could be a good exercice to convert the zcml declaration of
adapters to a RDF schema and do something with it ...


/JM


More information about the Zope3-dev mailing list