Skip to main content

Datatypes

Several value types recur throughout the schema. Rather than repeat their definitions on every element, the schema factors them out as reusable datatypes, described here.

Each datatype summarized below also has a dedicated reference page: id · language string · resource · point in time · point.

id​

A non-empty string that uniquely identifies an OntoUML element within an ontology. Ids are how elements reference one another: wherever an element needs to point at another (a package's contents, a generalization's general, a view's isViewOf, and so on), it stores the target element's id.

  • JSON type: string
  • Constraint: at least one character (must not be empty).
"class_person"
Namespaces and global identifiers

When a Project declares a namespace, appending an element's id to that namespace should yield a globally unique, resolvable URI — turning each element into a FAIR Digital Object.

languageString​

An object whose key-value pairs map an IANA language tag to the text in that language. It is used for all human-readable, translatable text, such as name, description, and a note's text.

  • JSON type: object
  • Keys: IANA language tags (e.g. en, pt-BR). The empty key "" denotes text in an unknown language.
  • Values: non-empty strings.
{
"en": "Person",
"pt-BR": "Pessoa"
}

Because it underpins every label and piece of documentation in a model, languageString has its own reference page: see language string for how it is structured, where it is used, and how absent text is represented.

resource​

A reference to an external resource by name and URI, allowing links into the semantic web. It is used for properties such as a project's publisher, license, creators, and contributors.

  • JSON type: object
  • Properties (both required):
PropertyTypeDescription
URIstring (uri) or nullThe Uniform Resource Identifier of the resource.
namelanguageString or nullThe name of the resource.
{
"name": { "en": "CC BY 4.0" },
"URI": "https://creativecommons.org/licenses/by/4.0/"
}

pointInTime​

A string denoting a point in time, used by the identity properties created and modified. It supports four levels of precision, so a value can be as coarse as a year or as fine as a second.

  • JSON type: string
  • Accepted formats:
PrecisionFormatExample
YearYYYY"2024"
Year-monthYYYY-MM"2024-09"
DateYYYY-MM-DD (full date)"2024-09-04"
Date-timefull date-time"2024-09-04T10:30:00Z"
"2024-09-04T10:30:00Z"

point​

A pair of coordinates locating a position in a diagram, used by shapes for topLeft and for the entries of a path's points. The origin (0, 0) is the diagram's top-left corner; x increases rightwards and y increases downwards.

  • JSON type: object
  • Properties (both required):
PropertyTypeDescription
xintegerThe horizontal coordinate; zero or greater.
yintegerThe vertical coordinate; zero or greater.
{ "x": 813, "y": 20 }