Skip to content

Ontology and data modeling description is flawed #1559

Description

@davaya

Learning module 1 contains seriously flawed descriptions of data models and ontologies:

Key terms: "Data model - A digital representation of a physical system that communicates connections between data points and structures.

A data model is a representation of data used (processed, communicated and stored) by computing systems, including documents and messages related to physical and virtual (digital twin) systems.

Data model parts - every data model includes the following parts: Entities, Entity types, Properties, Relationships

Data models include Entities, Entity types, and Properties.

  • An entity is a Type name, like Temperature or AirHandler.
  • An entity type defines the Type (not class) of the named entity, e.g., Temperature is an Integer with unit deci-degrees C. An instance of a Type is a Value, e.g. "31.7".
  • Properties describe the data fields of an entity: AirHandler has properties "set_point" of type Temperature, "inlet_temp" of type Temperature, and "run_state" of type Boolean.

Note: Class and Type, and their instances object and value, have conflicting usage across the industry. But classes define behavior while types do not. Programs have classes, while documents and messages do not. Instances of a type that are the same value are equivalent, while objects (instances of a class) are never equal even if they have the same state. JSON contributes to the confusion, it calls {"a": 3} an "object" rather than the "value" of an associative array/map/dict type.

Example instance where Entity A (AirHandler) contains Entities B, C, D (set_point, inlet_temp, run_state):

{
  "air_handler_13: {
    "set_point": 32,
    "inlet_temp": 28.4,
    "run_state": true
  }
}

A data model does not include Relationships that connect two entities, such as an AirHandler that "feeds" a BuildingManager by sending and receiving messages defined by the Data model.

Different types of data models depict varying levels of detail about a system and abstraction of its data.

True - concrete models define a specific data format, abstract models (information models) define document/message content independently of data format, but conceptual models may contain Type names without defining the Properties of that type (a model defines the fact that a type called AirHandler exists but contains no additional detail).

Why bother with an ontology? - Naming conventions and taxonomies are established by an ontology.

False: Taxonomies can be established by taxonomies without an ontology. Data models can be established by concrete data models and abstract information models without an ontology. An ontology can copy those models, but it is more efficient to use the ontology to define relationships between resources rather than the full level of detail within a resource. An ontology would typically not be used to define the content of an IP packet or an image file, or a Haystack Xeto type, and using Turtle serialization for instances of those types would be very inefficient.

In graph terms:

  • A taxonomy is a tree with only "contain" edges (see https://www.biologyonline.com/dictionary/taxonomy) and only one container of any type.
  • A data/information/conceptual model is a directed acyclic graph (DAG) with "contain" and "reference" edges, and unlike a taxonomy it allows Type reuse in more than one property.
  • An ontology is a mesh with unconstrained edge ends and arbitrary predicates beyond "contains" and "references", e.g., "feeds".

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions