Overview of DMX

What is DMX?

DMX is a knowledge building platform for individuals and work groups. The design of DMX is guided by the insight that machines do not store knowledge but information (see Preface). The DMX UI allows you to handle information in a way that supports knowledge building, memorization, and retrieval. DMX strives to become a popular work environment for knowledge workers of all kind, e.g. students, authors, journalists, researchers, archivists.

DMX provides 4 things:

  1. A Corporate Memory that serves as an accumulated body of data, information, and knowledge*) created in the course of an individual’s or an organization’s life.

  2. An User Interface that puts you in contact with linked information – instead of with applications and windows. The unified DMX user interface is suitable for all areas:

    • Investigation

    • Authoring

    • Modeling

    • Collaboration

    • Presentation

  3. An application model that is suitable for Domain Driven Design, in combination with a Plugin Development Framework for the development of full-stack plugins.

  4. A pre-installed ontology (contacts, notes, web links, events) for basic information management needs.

Technically DMX is a web application server written in Java. Its service-oriented architecture is OSGi-based (Apache Felix); DMX application developers need no OSGi knowledge; JAX-RS knowledge is recommended though. DMX comes with web server (Jetty), database (Neo4j), the “DMX Webclient” (built in Vue.js, Vuex, Element UI) included, and offers a plugin development framework. DMX plugins are full-stack (from data model to front end) and hot deployable. A DMX default installation is single-user; its web server will reject any request not from localhost. From 5.0-beta-1 (Jan 30, 2019) on to current 5.2 the size of the DMX download zip file is unchanged at 7.5 MB – much less than the competing Jakarta EE servers.

DMX is dual licensed Open Source software. The Community Edition is licensed under the GNU Affero General Public License (GNU AGPLv3).

The remainder of this “Overview” chapter is a concept-level introduction to DMX.

Topics and Associations

DMX represents information as topics and associations:

_images/organization-association.png

3 topics connected by 2 associations. The topics represent a person, an organization, and a note respectively. One of the 2 associations is distinguished by color and label.

A Topic can represent any type of object, e.g. a person, an organization, a note, a contract, a project, a date, a planet name, a molecule, a review, or a book. Also an idea or an emotion can be expressed as a topic.

What object types are available is actually decided by the DMX user. A DMX user can create new types, as well as modify existing ones, interactively in the DMX Webclient. Another way of obtaining new types is by installing DMX plugins. A fresh DMX installation provides some basic types for information management (contacts, notes, web links, events).

An Association represents a relationship between two objects. The relationship’s meaning is expressed by both, the association’s type and value. Both are optional. A generic association still expresses some relationship between 2 objects.

Role Types

At this point you may wonder: “Are associations directed?” Answer: “More than that.”

In DMX the 2 ends of an association are not solely qualified by “source” and “target”, but can be qualified by arbitrary role types, e.g. “Parent”, “Child”, “Cause”, “Effect”, “Trainer”, “Trainee” etc.

_images/role-types.png

Plato is the Trainee in one association and the Trainer in another one. The pink associations are of type “Apprenticeship”.

In DMX each of the 2 ends of an association is defined by:

  • The Player Object: either a Topic, or an Association.

  • A Role Type expresses what role the player object plays in the association.

One or both ends can still be unqualified (expressed by role type “Default”). Nondirectional associations are expressed by role type “Default” at both ends.

A DMX user can create new role types interactively in the DMX Webclient. Another way of obtaining new role types is by installing DMX plugins.

Associative Model of Data

The above images suggest the DMX storage model is graph based: nodes and edges. Actually DMX is based on an extension of the graph model: the Associative Model of Data.

_images/dmx-assoc-data-model.svg

While in the graph model an edge always connects 2 nodes, in the Associative Model of Data an edge can connect edges too. Either at one end (A2), or both (A3).

Basically DMX makes associations objects of discourse too. Associations can be associated with other topics/associations, just like topics. This results in expressive highly-connected structures at both levels, data model and content (= instances).

_images/create-assoc-with-assoc.png

2 notes, one is connected to a topic, and one to an association. The dark gray association connects a topic with an association. You can immediately say what the author want to express here, can’t you?

Hint

Find out more about the Associative Model of Data in the DMX Developer Guide.

Values

So far topics were depicted solely as icon plus label. But there is more to a person than a name, isn’t it? Actually a value of type “Person” is an entire value hierarchy, for example: the Person has a name and an Address, the Address has a Postal Code, and the Postal Code is the string “SO36”.

“Person” and “Address” in this example are composite values, and “Postal Code” is a simple value. And this is exactly how values are stored in the Corporate Memory: as an hierarchy of typed topics:

_images/person-value.png

A value of type “Person” as stored in the Corporate Memory. The value “Cathy Jones” is composed of a “Person Name” value and an “Address” value, which is composed of a “Street” value, a “Postal Code” value etc. The red associations are of type “Composition” and form the topic hierarchy. They are directed from “Parent” to “Child”. The leaf-nodes are the simple values. Some values have their corresponding type topic revealed. The cyan associations are of type “Instantiation” and are directed from “Instance” to “Type”.

DMX has the specialty that not only topics represent values, but associations too. In this regard there is no difference between topics and associations:

  • both are typed

  • both have a value

The type determines the structure of the value.

Detail Rendering

The above image shows how values are stored in DMX. But this is not necessarily a suitable way to present information or to interact with it. For every topic/association DMX provides a default detail rendering. It renders a composite value in a linear and compact form.

At any time a topic’s/association’s detail information is one click away, and once clicked, it is displayed in-place:

_images/in-map-details-pinning.png

Topic detail information displayed in-place once a topic is clicked. The green associations are of type “Organization Involvement” and express that a Person is involved in an Organization, and in what way.

_images/create-organization-association.png

A selected association (thicker line) and its detail information. Details comprise the association’s type and value (not shown), and the 2 player topics, each one qualified by Role Type.

The detail rendering is driven by the topic’s/association’s type definition.

Custom Renderers

The detail rendering is customizable on a per-type basis.

A standard DMX installation provides custom renderers for the following types: “Topic Type”, “Association Type”, “File”, “Folder”, “Date”, “Time” (composite), “URL”, “Email Address”, “File Size” (simple).

Further custom detail renderers can be obtained by installing DMX plugins.

Types

What we know about types so far:

  • Topics/Associations are typed

  • Topics/Associations have a value (simple or composite)

  • A Topic/Association’s meaning is expressed by both, its type and its value

  • A Topic/Association’s type determines the structure of its value

The above examples show topics of type “Person”, “Organization”, “Note”, and associations e.g. of type “Organization Involvement”, “Apprenticeship”.

What Topic Types and Association Types are available is actually decided by the DMX user. A DMX user can create new types, as well as modify existing ones, interactively in the DMX Webclient.

Another way of obtaining new types is by installing DMX plugins.

A fresh DMX installation provides some basic types for information management (“Person”, “Organization”, “Note”, “Bookmark”, “Event”, “Address”, “Email Address” etc.).

_images/person-model.png

Topic Maps

_images/detail-panel.png

The typical DMX user interface presents a Topic Map consisting of topics and associations. The topic’s type is represented by icon. Association types are differentiated by color.