Elements
Diafunc projects are built up of three types of elements: entities, links and events.
They are the basic building blocks: every construct in a project, however complex, is made of them.
They are the basic building blocks: every construct in a project, however complex, is made of them.
Types
An element can have any type: a user-defined type whose meaning is specific to the project, or a predefined type that comes with additional platform features.
Predefined entity types are for example: notebook, function, model, scene, chart, ...
Predefined entity types are for example: notebook, function, model, scene, chart, ...
Attributes
Elements can have any number of attributes. An attribute is a key-value pair, and attributes are the main way Diafunc stores information.
Meta Attributes
Attributes may also have attributes, which are called meta attributes. They can be used to store information about particular attributes, for example: dimension, scale, description, visibility, ...
Tags
Elements can be tagged. Tags can for example be used to semantically cluster elements or to attach additional information to them.
Entities
Entities are the graph's nodes and the central information units at Diafunc: notebooks, functions, tables, models, charts and scenes are all entities. Their identification, predefined types and contents are covered in detail on the Entities page.
Links
Links connect entities and thereby build up the project graph. Each link is directed and links a source entity to a target entity, but the graph can be traversed in both directions, forward and backward.
A link is identified by its source entity, its target entity and a link id. Multiple parallel links between the same entities in the same direction can exist with different link ids.
Events
Events are short-lived information units. They can be fired by functions, can trigger function evaluations and are removed automatically once they have expired.
An event is always related to an entity. A global event can be related to the project entity, a specific event to the entity it concerns.
Events are identified by an entity and an event id. A particular event occurrence is additionally identified by its occurrence id, and multiple occurrences may exist for the same event id.