[Zope3-dev] Yet Another Relations (aka Reference) Engine...

Helmut Merz helmutm at cy55.de
Sun Nov 13 11:22:49 EST 2005


Am Sonntag, 13. November 2005 12:07 schrieb Jean-Marc Orliaguet:
> Helmut Merz wrote:
> >Anyway, what we are talking about are not "references".
>
> The approach is quite different: references start from the
> objects themselves that they connect to other objects using
> one-way relations (a pointer, an arrow). 

And this can be easily implemented by using assignments to object 
attributes.

> The application has 
> to know how to interpret the references. I don't think that 
> you can build a robust relation engine only with that.
> Relations start from "the top": you first define an ontology
> (a set of general predicates) that you use to relate the
> objects of your application. This is a conceptual schema. Here
> is the cpsskins ontology:
> http://svn.nuxeo.org/trac/pub/file/z3lab/cpsskins/branches/jmo
>-perspectives/ontology.py
>
> The relation engine then manages all the necessary references,
> but the application does not need to know about the references
> at all. The interaction with the relation engine is done only
> via the ontology.

OK, I see. I now also understand why you include monadic 
relations which could just be attributes or annotations... 
(I ignored them up to now but I think I should change this.)

OTOH I'd like to have a relation management API that could as 
well be used for cases where the relations are controlled by the 
application or the objects involved.

This is then just a convenience API that cares about the problems 
of keeping up-to-date references in both directions, deletion 
handling, the complexity arising with connecting more than two 
objects, attributed or annotated relations, etc.

Helmut


More information about the Zope3-dev mailing list