[deepamehta-users] DM 4.6 will come with an extended meta-model

Jörg Richter jri at deepamehta.de
Thu May 21 01:00:47 CEST 2015

Dear DeepaMehta users,

here I like to inform you about one of the highlight features of the upcoming DM 4.6 release. This feature is called "Association Definitions with Custom Association Types" and is actually an extension of DM's meta-model. It allows you to define more expressive data models which results in more "natural" topic networks with more dense semantics. As this is quite an abstract matter let me illustrate how the need for that feature arose in the first place.

Up to DM 4.5 at instance-level the child topics of a composite structure were connected to its parent(s) via associations of type Composition or Aggregation. This was fixed and depended on weather a Composition Definition or an Aggregation Definition was used at type-level.

This means the semantic power of DM's associations could not fully exploited as no user-defined association types could be utilized in a type definition. As a consequence the type definitions become more complex as necessary and also the instance networks become less clear as "intermediate" topics were required to represent the desired semantics.

As an example lets look at the DM's Contacts model (comprising Person and Institution top-level types), and in particular how the Person-Address relationship was defined in DM 4.5. A person is supposed to have *many* addresses and each one should be qualified with a distinct label like "home" or "work". This label is not regarded a part of an Address as (potentially) the same address might be labeled "home" in one context and "holiday" in another. (Someone spend her holiday at someone's house.) So, an "intermediate" topic type "Address Entry" needs to be placed between the Person type and the Address type. The objective of the Address Entry type is basically to group an Address Label with an Address. The Person is then not connected to an Address directly, but to an Address Entry. See the left side of the picture.

-------------- n?chster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : DM 4.6 Contacts Model.png
Dateityp    : image/png
Dateigröße  : 116091 bytes
Beschreibung: nicht verfügbar
URL         : <http://lists.deepamehta.de/pipermail/users-lists.deepamehta.de/attachments/20150521/b4b007aa/attachment.png>
-------------- n?chster Teil --------------

At instance-level you see that Carla Frey is not connected to hers Address topic directly but indirectly through an intermediate Address Entry instance (labeled "home"). As a consequence such a network is both harder to grasp and harder to navigate. It does not exploit the representational power of the network's associations well and is less intuitive.

Now lets look at the same situation in DM 4.6. You see that Carla Frey is connected to hers Address topic *directly*, namely via a user-defined association labeled "home". The user-defined association is of type "Address Entry". This represents the situation more "natural" and is more dense semantics-wise. Note that Address Entry is now an Association Type (red icon) instead a Topic Type (blue icon).

This becomes possible through the extended meta-model introduced in upcoming DM 4.6: at type-level an Association Definition (this comprises Composition Definition and Aggregation Definition) can be attached with an Association Type -- the so called "Custom Association Type". At instance-level DM will then use this association type when connecting a child topic to a parent topic.

While modeling you can select the Custom Association Type either when editing an Association Definition ...

-------------- n?chster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : DM 4.6 Custom Association.png
Dateityp    : image/png
Dateigröße  : 48757 bytes
Beschreibung: nicht verfügbar
URL         : <http://lists.deepamehta.de/pipermail/users-lists.deepamehta.de/attachments/20150521/b4b007aa/attachment-0001.png>
-------------- n?chster Teil --------------

... or when editing the parent type. In the (parent) type editor you can select the Custom Association Types for all the child types at once:

-------------- n?chster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : DM 4.6 Custom Association Type Editor.png
Dateityp    : image/png
Dateigröße  : 131301 bytes
Beschreibung: nicht verfügbar
URL         : <http://lists.deepamehta.de/pipermail/users-lists.deepamehta.de/attachments/20150521/b4b007aa/attachment-0002.png>
-------------- n?chster Teil --------------

Note: despite the "Custom Association Type" selector appears as a combobox it can *not* be used to create an Association Type on-the-fly (by typing a new name). That is you must create the association type before (via the global Create menu) and then select it from the combobox's menu.

At instance-level, when editing a composite topic, the detail panel's form rendering is enriched by the forms of the custom association types (in case the association type is a composite). Here you see how the Address form is enriched by the Address Entry form:

-------------- n?chster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : DM 4.6 Contacts Model Detail Panel.png
Dateityp    : image/png
Dateigröße  : 56922 bytes
Beschreibung: nicht verfügbar
URL         : <http://lists.deepamehta.de/pipermail/users-lists.deepamehta.de/attachments/20150521/b4b007aa/attachment-0003.png>
-------------- n?chster Teil --------------

Once this form is submitted DM not only connects the Person topic to an Address topic via an Address Entry association but also creates/updates the association's child topics -- here: the "home" Address Label.

I like to encourage you to ...

A) Test the new modeling and form generator features.
Most easy you can do so by using our nightly-build demo installation at:
Login as "admin" without any password.
For example you could try this:
	1) Create a simple topic type "Date"
	2) Create a simple association type "Birthday"
	3) Create an association definition of type "Composition Definition" between the (existing) topic type "Person" (parent type) and the topic type "Date" (child type)  and select "Birthday" as the Custom Association Type.
	4) Create/Edit a person and type in a birthday and press OK. Now when revealing the person's Date topic instance (by clicking it in the detail panel) you'll see that the person and the date are connected via an association of type "Birthday".
The generic Date type could be utilized in a variety of data models.
Note: the nightly-build demo installation will be wiped out every morning 7am.

More details about the new "Custom Association Types" feature can be found in this ticket:

B) Test the migration of your DM 4.5 (or older) contacts data.
DM 4.6 will come with the changed Contacts model sketched out above. Besides the "Address Entry" change there is an analog change for "Phone Entry" (Phone Labels are "home", "mobile", "work", ...). Your data is expected to migrate automatically and appear in DM 4.6 (SNAPSHOT) just like in DM 4.5 and before (while adhering to the new model).
To test the migration download the current DM 4.6-SNAPSHOT release:
Unzip it and copy your existing "deepamehta-db" folder into the "deepamehta-4.6-SNAPSHOT" folder before starting DM 4.6.
You can migrate from any DM release not older than DM 4.1

More details about the changed Contacts data model can be found in this ticket:

DM 4.6 is about to be released end of May 2015.

Thank you + Cheers,

More information about the users mailing list