Skip to content
Alessandro Gubitosi edited this page May 22, 2014 · 3 revisions

This page contains the default type and kind definitions.

Primitive data types

| Variable name | Value | Description | | :--- | ---: | :--- | :--- | | kTYPE_MIXED | :type:mixed | A mixed data type indicates that the referred property may take any data type | | kTYPE_STRING | :type:string | A string data type indicates that the referred property may hold UNICODE characters, this type does not include binary data | | kTYPE_INT | :type:int | An integer data type indicates that the referred property may hold a 32 or 64 bit integral numeric value | | kTYPE_FLOAT | :type:float | A float data type indicates that the referred property may hold a floating point number, also known as double or real. The precision of such value is not inferred, in general it will be a 32 or 64 bit real |

===

Structured data types

| Variable name | Value | Description | | :--- | ---: | :--- | :--- | | kTYPE_STRUCT | :type:struct | This data type defines a structure, this means that the value will be an object or an array of objects if the data kind is a list | | kTYPE_ARRAY | :type:array | This data type defines a list of key/value pairs, the key will be in general a string, while the value type is not inferred. This data type usually applies to arrays in which the key part is the discriminant and determines the type of the value, while traditional arrays are better defined by a fixed data type and a list data kind | | kTYPE_LANGUAGE_STRINGS | :type:language-strings | This data type defines a list of strings expressed in different languages. The list elements are composed by two key/value pairs. The first pair has the {@link kTAG_LANGUAGE} tag as its key and the value represents the language code. The second pair has the {@link kTAG_TEXT} as its key and the value represents the text expressed in the language defined by the first pair. No two elements may share the same language and only one element may omit the language pair | | kTYPE_TYPED_LIST | :type:typed-list | This data type defines a list of elements categorised by type. The list elements are composed by two key/value pairs. The first pair has the {@link kTAG_TYPE} tag as its key and the value represents the type of the element. The second pair has an unspecified tag as the key and the value represents the element's value qualified by the previous pair. No two elements may share the same type and only one element may omit the type pair | | kTYPE_SHAPE | :type:shape | This data type defines a shape structure, this type of object represents a geometric shape and it is expressed as a GeoJSON construct.

It is an array composed by two key/value pairs:

  • {@link kTAG_SHAPE_TYPE}: The element indexed by this string contains the code indicating the type of the shape, these are the supported values:
    • Point: A point
    • LineString: A list of non closed points.
    • Polygon: A polygon, including its rings.
  • {@link kTAG_SHAPE_GEOMETRY}: The element indexed by this string contains the geometry of the shape, which has a structure depending on the shape type:
    • Point: The point is an array of two floating point numbers, respectively the longitude and latitude.
    • LineString: A line string is an array of points expressed as the Point geometry.
    • Polygon: A polygon is a list of rings whose geometry is like the LineString geometry, except that the first and last point must match.
      The first ring represents the outer boundary of the polygon, the other rings are optional and represent holes in the polygon.
|

===

Standard data types

| Variable name | Value | Description | | :--- | ---: | :--- | :--- | | kTYPE_URL | :type:url | A link data type indicates that the referred property is a string representing an URL which is an internet link or network address |

===

Enumerated data types

| Variable name | Value | Description | | :--- | ---: | :--- | :--- | | kTYPE_ENUM | :type:enum | An enumerated data type indicates that the referred property may only hold a term reference, that is, the global identifier of a term object. Enumerated values are by default strings and must reference a term object | | kTYPE_SET | :type:enum-set | An enumerated set data type indicates that the referred property may only hold a list of term reference, that is, an array of term native identifiers. All the elements of this list must be unique |

===

Reference term types

| Variable name | Value | Description | | :--- | ---: | :--- | :--- | | kTYPE_REF_TAG | :type:ref:tag | A tag reference is a string that must correspond to the native identifier of a {@link Tag} object | | kTYPE_REF_TERM | :type:ref:term | A term reference is a string that must correspond to the identifier of a {@link Term} object | | kTYPE_REF_NODE | :type:ref:node | A node reference is an integer that must correspond to the native identifier of a {@link Node} object | | kTYPE_REF_EDGE | :type:ref:edge | An edge reference is a string that must correspond to the native identifier of an {@link Edge} object | | kTYPE_REF_ENTITY | :type:ref:entity | An entity reference is a string that must correspond to the native identifier of an {@link Entity} object | | kTYPE_REF_UNIT | :type:ref:unit | A unit reference is a string that must correspond to the native identifier of a {@link Unit} object | | kTYPE_REF_SELF | :type:ref:self | This type defines an reference to an object of the same class |

===

Default data types

| Variable name | Value | Description | | :--- | ---: | :--- | :--- | | kTYPE_TERM_INSTANCE | :type:term:instance | An instance is a term which represents the actual object that it defines, the term represents the metadata and instance at the same time. This happens generally with elements of an enumerated set: an enumerated value instance term will hold data in addition to metadata regarding the object that it defines |

===

Default node kinds

| Variable name | Value | Description | | :--- | ---: | :--- | :--- | | kTYPE_NODE_ROOT | :kind:root-node | This kind represents a door or entry point of a tree or graph. It can be either the node from which the whole structure originates from, or a node that represents a specific thematic entry point. In general, such objects will have other attributes that will qualify the kind of the structure | | kTYPE_NODE_PROPERTY | :kind:property-node | This kind of node references a {@link Tag} object which contains all the necessary information to define and describe a data property | | kTYPE_NODE_ENUMERATED | :kind:enumerated-node | This kind of node describes a controlled vocabulary, it has implicitly the {@link kTYPE_NODE_TYPE} type holding an enumerated set of values. This kind of node can be used to define a specific controlled vocabulary, its elements are related to this node by the {@link kPREDICATE_ENUM_OF} predicate and this node can define a tag referring to the latter using the kPREDICATE_TYPE_OF} predicate | | kTYPE_NODE_ONTOLOGY | :type:node:ontology | This is a graph structure that represents an ontology, the element that bares this attribute is expected to be a root node, structures of this kind usually represent the full set of elements comprising an ontology which will be used by views to create thematic selections | | kTYPE_NODE_TYPE | :type:node:type | This is a structure that represents a type or controlled vocabulary, the element that bares this attribute is expected to be a root node and its structure must be a tree (at most one parent node). The main use of such a kind is to group all elements representing a type or controlled vocabulary that comprises the full set of attributes, views that reference such structures can be used to represent thematic subsets of such types or controlled vocabularies | | kTYPE_NODE_VIEW | :type:node:view | This represents a view into an existing structure or structures, the element that bares this attribute is expected to be a root node and the structure is expected to be either a selection or an aggregation of elements from different existing structures. The main goal is to create specific thematic views | | kTYPE_NODE_TEMPLATE | :type:node:template | This is a view that represents a template, the element that bares this attribute is expected to be a root node and its structure must be a tree (at most one parent node). Templates are generally used to import and export data recorded using elements from the ontologies | | kTYPE_NODE_FORM | :type:node:form | This is a view that represents a search form, the element that bares this attribute is expected to be a root node and its structure must be a tree (at most one parent node). Structures of this kind can be used as search form templates where the branches represent categories and the leaf nodes the attributes to be searched | | kTYPE_NODE_STRUCT | :type:node:struct | This is a view that represents a data structure, the element that bares this attribute is expected to be a root node and its structure must be a tree (at most one parent node). Structures of this kind can be used as templates to define the physical structure of an object | | kTYPE_NODE_SCHEMA | :type:node:schema | This is a view that represents a data schema, the element that bares this attribute is expected to be a root node and its structure must be a tree (at most one parent node). Structures of this kind can be used as templates to define common sub-structures which will be used by structures to define the physical structure of an object | | kTYPE_NODE_FEATURE | :type:node:feature | This kind of node defines a feature, property or attribute of an object that can be described or measured. This kind of node will generally be found as a leaf of the structure describing an object. Plant height is a plant characteristic that belongs to the category of morphological traits: the latter is not a feature, while plant height is | | kTYPE_NODE_METHOD | :type:node:method | This kind of node is required whenever an object's feature can be measured in different ways or with different workflows without becoming a different feature. Plant height is an attribute of a plant which can be measured after a month or at flowering time; the attribute is the same, but the method is different | | kTYPE_NODE_SCALE | :type:node:scale | This kind of node describes in what unit or scale a measurement is expressed in. Plant height may be measured in centimeters or inches, as well as in intervals or finite categories | | kTYPE_NODE_ENUMERATION | :type:node:enumeration | This kind of node describes a controlled vocabulary element. These nodes derive from scale nodes and represent the valid choices of enumeration and enumerated set scale nodes. An ISO 3166 country code could be considered an enumeration node | | kTYPE_NODE_TERM | :type:node:term | This kind of node describes a reference to a term with no specific qualification, this type is only used to qualify a node that has no type |

===

Default node kinds

| Variable name | Value | Description | | :--- | ---: | :--- | :--- | | kTYPE_NODE_PROPERTY | :kind:property-node | This kind of node references a {@link Tag} object which contains all the necessary information to define and describe a data property | | kTYPE_NODE_ENUMERATED | :kind:enumerated-node | This kind of node describes a controlled vocabulary, it has implicitly the {@link kTYPE_NODE_TYPE} type holding an enumerated set of values. This kind of node can be used to define a specific controlled vocabulary, its elements are related to this node by the {@link kPREDICATE_ENUM_OF} predicate and this node can define a tag referring to the latter using the kPREDICATE_TYPE_OF} predicate | | kTYPE_NODE_ONTOLOGY | :type:node:ontology | This is a graph structure that represents an ontology, the element that bares this attribute is expected to be a root node, structures of this kind usually represent the full set of elements comprising an ontology which will be used by views to create thematic selections | | kTYPE_NODE_TYPE | :type:node:type | This is a structure that represents a type or controlled vocabulary, the element that bares this attribute is expected to be a root node and its structure must be a tree (at most one parent node). The main use of such a kind is to group all elements representing a type or controlled vocabulary that comprises the full set of attributes, views that reference such structures can be used to represent thematic subsets of such types or controlled vocabularies | | kTYPE_NODE_VIEW | :type:node:view | This represents a view into an existing structure or structures, the element that bares this attribute is expected to be a root node and the structure is expected to be either a selection or an aggregation of elements from different existing structures. The main goal is to create specific thematic views | | kTYPE_NODE_TEMPLATE | :type:node:template | This is a view that represents a template, the element that bares this attribute is expected to be a root node and its structure must be a tree (at most one parent node). Templates are generally used to import and export data recorded using elements from the ontologies | | kTYPE_NODE_FORM | :type:node:form | This is a view that represents a search form, the element that bares this attribute is expected to be a root node and its structure must be a tree (at most one parent node). Structures of this kind can be used as search form templates where the branches represent categories and the leaf nodes the attributes to be searched | | kTYPE_NODE_STRUCT | :type:node:struct | This is a view that represents a data structure, the element that bares this attribute is expected to be a root node and its structure must be a tree (at most one parent node). Structures of this kind can be used as templates to define the physical structure of an object | | kTYPE_NODE_SCHEMA | :type:node:schema | This is a view that represents a data schema, the element that bares this attribute is expected to be a root node and its structure must be a tree (at most one parent node). Structures of this kind can be used as templates to define common sub-structures which will be used by structures to define the physical structure of an object | | kTYPE_NODE_FEATURE | :type:node:feature | This kind of node defines a feature, property or attribute of an object that can be described or measured. This kind of node will generally be found as a leaf of the structure describing an object. Plant height is a plant characteristic that belongs to the category of morphological traits: the latter is not a feature, while plant height is | | kTYPE_NODE_METHOD | :type:node:method | This kind of node is required whenever an object's feature can be measured in different ways or with different workflows without becoming a different feature. Plant height is an attribute of a plant which can be measured after a month or at flowering time; the attribute is the same, but the method is different | | kTYPE_NODE_SCALE | :type:node:scale | This kind of node describes in what unit or scale a measurement is expressed in. Plant height may be measured in centimeters or inches, as well as in intervals or finite categories | | kTYPE_NODE_ENUMERATION | :type:node:enumeration | This kind of node describes a controlled vocabulary element. These nodes derive from scale nodes and represent the valid choices of enumeration and enumerated set scale nodes. An ISO 3166 country code could be considered an enumeration node | | kTYPE_NODE_TERM | :type:node:term | This kind of node describes a reference to a term with no specific qualification, this type is only used to qualify a node that has no type.

===

Cardinality types

| Variable name | Value | Description | | :--- | ---: | :--- | :--- | | kTYPE_LIST | :type:list | A list cardinality type indicates that the referred property will hold a list of values whose elements will have the data type defined by the data type property | | kTYPE_CATEGORICAL | :type:categorical | A categorical property is one which can take on one of a limited, and usually fixed, number of possible values. In general, properties which take their values from an enumerated set of choices are of this kind | | kTYPE_QUANTITATIVE | :type:quantitative | A quantitative property is one whose type of information based in quantities or else quantifiable data. In general numerical values which can be aggregated in ranges fall under this category | | kTYPE_DISCRETE | :type:discrete | A discrete property is one which may take an indefinite number of values, which differentiates it from a categorical property, and whose values are not continuous, which differentiates it from a quantitative property | | kTYPE_PRIVATE_IN | :type:private-in | A private input cardinality type indicates that the referred property is handled internally and it must not be set by clients | | kTYPE_PRIVATE_OUT | :type:private-out | A private output cardinality type indicates that the referred property internal and it should not be displayed to clients |

===

Relationship types

| Variable name | Value | Description | | :--- | ---: | :--- | :--- | | kTYPE_RELATIONSHIP_IN | :relationship:in | An incoming relationship indicates that the relationship is originating from an external vertex directed to the current vertex | | kTYPE_RELATIONSHIP_OUT | :relationship:out | An outgoing relationship indicates that the relationship is originating from the current vertex directed to an external vertex | | kTYPE_RELATIONSHIP_ALL | :relationship:all | An cross referenced relationship indicates that the relationship is going in both directions: from the current vertex to an external vertex and from the external vertex to the current vertex |