Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
RE: [higgins-dev] Higgins data model

Ok, I think I need to run through some example use cases for the light to come on. You're talking about the management of links and the use case is deletion of a link (not of either object). Let's say Case 1 is where we have links as objects (called IdFacetRelationship) which are aggregate parts of an IdFacet. Case 2 is where IdFacet has Attribute objects where an Attribute may be used to link to other IdFacets.
 
Using the example below (Objects A, B, and C), let's delete the link between A and C:
 
In Case 1, A has some IdFacetRelationship objects, two of which have a property called "parentOf" (there may be other types of relationships to A and C and others). <aside>We haven't talked about what the value of "parentOf" is yet. Does the value name the object to which A is a parent of? Or is the property name actually "type" with a value of "parentOf"?</aside>. In order to delete the "parentOf" link between A and C, we locate IdFacetRelationship objects on A which have the "parentOf" property, and which have C as the relationship target.
 
In Case 2, A has a set of attributes, two of which are named "parentOf" <note>the parentOf attribute has, as a field, the target IdFacet</note>. In order to delete the "parentOf" link between A and C, we locate the attributes on A which have the "parentOf" name, and which have C as the relationship target.
So in my view it takes no fewer or more steps to locate the parentOf relationship between A and C in either case.
 
Part of what is foggy for me in seeing the differences has to do with the structure (syntax) of an Attribute. I'm used to an attribute being of some type. The type can be simple (bool, int) or complex. As long as we have a 'relationship' attribute type, it seems like we can easily index all the relationship Attributes in order to distinguish them from all the other Attributes held by an IdFacet.
 
Jim

>>> paul@xxxxxxxxxxxxxxxxx 3/28/06 12:37:39 pm >>>

On your question about attributes vs. relationships in the M4 goals.  What's driving things is a desire to consider the link between two objects to itself be an object (with properties). If these link properties are grouped together and "attached to" the link itself management of links is easier.

 

Imagine object A has a link to object B, and A also has a link to object C. And imagine that both links had a common property, "parentOf". Using the proposed approach we simply attach the parentOf property to each link object. If we wish to delete a link, we delete the link and all of its associated properties at the same time. If, on the other hand, we flatten the properties onto A, then we'd need to somehow index the two parentOf properties (of A) in order to distinguish them. To me using the link object as the indexing mechanism is cleaner.

 

Jim wrote:

 

The short answer to the question "how would JNDI represent the notion of IdFacet Relationships" would (I think) be to make them attributes.

 

Like IdFacets, a JNDI object has attributes. A class of attributes would be used as relationship attributes. The syntax of a relationship attribute would be described to have a field for the target facet (may be defined to have other fields as well). Specific instances of these attributes on a facet could be named differently (i.e. role, parent, affinity, etc.).

 

This begs another question:

 

In the M4 goals, IdFacetRelationships seem to be seen as separate from Attributes. Why is this? I mean, why not just have attributes which are themselves relationships?

 

Jim



>>> "Paul Trevithick" <paul@xxxxxxxxxxxxxxxxx> 3/24/06 2:08:01 pm >>>

Task H6-03-24 of the Milestone 0.4 plan (http://spwiki.editme.com/PlanM4) is about "refining the Higgins data model". To support that work we've begun creating listing our goals (http://spwiki.editme.com/DataModelGoalsM4 (this can be linked to from the main Higgins wiki page http://spwiki.editme.com/Higgins).

 

Let me kick this off with a question:

 

It has been suggested that instead of creating our own model, we might take a look at using all or some of JNDI. Could someone explain how one best use JNDI to support our notion of "IdFacet Relationships" (see "IdFacet Relationships" (currently item 9,10,11) here: http://spwiki.editme.com/DataModelGoalsM4)?

 

 

 

 

 

 

 

 


Back to the top