[Zope-dev] RFC: RelationAware class for relations between obj ects

Jean-Paul Smets jp@nexedi.com
Tue, 29 Apr 2003 20:00:43 +0200


Le Mardi 29 Avril 2003 17:32, sean.upton@uniontrib.com a écrit :
> My observations from a digital-media management perspective lead me to
> believe that relationships and other metadata are closely intertwined,
> and that there needs to be a way to righcly express metatdata about
> relationships.

I completely agree. This is exactly how we implemented relations in ERP5. 
Actually, there is an isomorphism between 2 concepts
	- categorisation
	- relations

Categorisation is in the world of metadata. Relations is apparently in a 
different world but, with the help for example of acquisition, the two 
worlds can be made one, by making sure categories are a kind of object.

> One the subject of simplicity vs. features - it should be said that one
.....
> In a keep-it-simple model, where does this high-level stuff belong?  In a
> global service?

This is also how we implemented things in ERP5. With
	- a portal tool which implements core methods for categories and relations
	- a Base class which provides aliases and simplified access to categories / 
relations
	- a utility system which generates on the fly some relation methods so that 
one can write someting like object.getDefaultSource() where 'source' is the 
id of a relation  (1 -> n). 

For more info, please read
http://www.erp5.org/erp5/wiki/guide/RadERP5
http://savannah.nongnu.org/cgi-bin/viewcvs/erp5/ERP5/PropertySheet/PropertySheets.stx?rev=1.5&content-type=text/vnd.viewcvs-markup

The system is currently running in a factory in Europe and North africa (it 
is an open source ERP based on Zope). It is rather reliable.

One of the reasons why we chose this approach (ie. implement relations as 
metadata of objects rather than uids / central repository) is because we 
need to synchronize content accross multiple sites (each of which has 
potentialy a different set of classes and a different version of ERP5). We 
use the syncml protocol for this purpose. Because we do not use uids, it is 
much easier to exchange / synchronize relations (or partial relations) 
accross multiple zope sites. If we had done it another way, it would have 
been much more complext to handle.

We also implemented a consistency system which finds inconsistencies accross 
the database and eventually fixes them. We still have a lot of work on this 
issue. One reason it is not that simple is because we want to be able to 
have both relations and partial synchronization between multiple sites. 
This makes usual consistency methods not much adapted to this situation.

Also, we wanted to follow a documentary approach for relations and we 
through that metatada was one of the closest way to implement relations in 
a content mangement system.

I hope this helps.

JPS.

-- 
Jean-Paul Smets-Solanes 
Nexedi CEO    Tel. +33(0)6 62 05 76 14    Fax. +33(0)1 53 01 09 29

About www.nexedi.com 

Nexedi is a consulting and development services company helping small and 
medium organisations to choose open source / free software and fulfill 
their IT application needs. Nexedi is the founder of the ERP5 project, a 
Free / Open Source ERP software based on innovative technologies 
(www.erp5.org).

About www.storever.com

Storever provides a reliable source for OpenBrick, WiFi infrastructure, 
notebooks and servers preconfigured with the GNU/Linux operating system