Ticket #679 (closed Feature Request: invalid)

Opened 6 years ago

Last modified 6 years ago

uni-directional association

Reported by: JuergeN Owned by: jri
Priority: Major Milestone: Release 4.4
Component: DeepaMehta Standard Distribution Version: 4.3
Keywords: Cc:
Complexity: 3 Area: Data Model


As a user I want to be able to distinguish between bi-directional and uni-directional associations. This should be implemented on type level. An AssocDefinition? must destinguish between an bi-directional association type and an uni-directional association type, where the uni-directional association type must have a start point and an end point. The uni-directional association type is urgently needed to accomplish the real world requirements of modelling data structures with DM.

Change History

comment:1 Changed 6 years ago by jri

An unidirectional association between topics A and B would mean that you can navigate from A to B but not vice-versa. I assume what you actually mean is the distinction of directed associations vs. undirected associations.

In DM2 associations are directed. That is there are dedicated start and end points. In DM4 in contrast we deliberately decided NOT to have directed associations (because in most cases there is no clear start and end, e.g. what would be the start of a parent-child or a membership relationship?) but to qualify the 2 topics by the means of Role Types. So you could define the Role Types start and end on your own.

Last edited 6 years ago by jri (previous) (diff)

comment:2 Changed 6 years ago by JuergeN

ok - Let's get clear about defintions first: Let's talk about directed and undirected association types, composition types and aggregation types. All 4 Types are needed!

In a comosite type a composition definition and a aggregation definition
must be hirarchical, because they define the roles between the whole and
the part or in other words the parent type and the child type.

     o whole (parentType)
   / | \
  o  o  o part (childType)


An association definition is not hirarchical: so no parent type or child type here. But it can be both: directed or undirected. I think we both agree that we need both, directed and undirected associations, because they are an important part of the semantic vocabulary.
How else could you clearly define the roles of two persons:

(Person[1])----STALKER----(Person[2]). It is much clearer like this:
(Person[1])----STALKER--->(Person[2]), because then it reads

"Person[1] is stalker of Person[2]".

(BTW, direction is also very clear for instanciations: Topic----is INSTANCE of---->TopicType?)

So I agree that we need to be able to distinquish the startpoint and the endpoint (direction) of an directional association. "Parent" and "Child" are not the right terms to use here. If we agree on "Start" and "End", then let's implement it like this.

I hope you agree, that it must be part of the standard. Otherwise it would just be like skipping a few letters from the alphabet, expecting they are not needed so often. ;-)

Last edited 6 years ago by JuergeN (previous) (diff)

comment:3 Changed 6 years ago by jri

Sorry, I don't understand what you actually want to implement here.

DM4 has directed associations from the very start.
They are expressible by the means of Role Types.
Each Topic involved in a certain Association is qualified by a Role Type.
A directed association would have different Role Types at each side, e.g. "Stalker" and "Stalkee".
A undirected association would have the same Role Types at each side, e.g. Default.

Version 0, edited 6 years ago by jri (next)

comment:4 Changed 6 years ago by JuergeN

Yes, I understand. But how do I create a new RoleType? then? I want to have the two generic role types 'Start' and 'End' or 'Subject' and 'Object' to be more precise or any other more specific role types?

comment:5 Changed 6 years ago by jri

Role Types are simple (Text) topics of type Role Type. At the moment they can not be created interactively via the Webclient. We could have a Create Role Type in the Create menu. Extra ticket?

comment:6 Changed 6 years ago by JuergeN

  • Status changed from new to closed
  • Resolution set to invalid
  • Type changed from Defect to Feature Request
  • Area set to Data Model

ok, I got it. I created a new ticket #680 - create custom role types

Note: See TracTickets for help on using tickets.