This ontology contains entities such as: datatype, datatype generator, datatype qualiy and others giving the possibility to represent arbitrary complex datatypes. The OntoDT ontology is based on and ISO/IEC 11404 (http://www.iso.org/iso/catalogue_detail.htm?csnumber=39479) standard and can be reused used independently by any domain ontology that requires representation and reasoning about general purpose datatypes.
has_operation
has_attribute
has_identifier
attribute_of
identifier_for
has_member
is_member_of
is_operation_of
has-value
Datatype Specification Language Representation
list specification
excluding subtype generator
explicit subtype generator
extending subtype generator
range subtype generator
selection subtype generator
size subtype generator
natural number
modulo
bit
bit string
character string
time interval
octet
octet string
private
object identifier
stack
tree
optional
array generator
bag generator
class generator
record generator
sequence generator
set generator
table generator
choice generator
pointer generator
procedure generator
whose values are collections of values in the product space of one or more field datatypes, such that each value in the product space represents an association among the values of its fields. Although the field datatypes may be infinite, any given value of a table datatype contains a finite number of associations.
An aggregate datatype has the ordering property, if and only if there is a canonical first element of each nonempty value in its value-space. This ordering is (externally) imposed by the aggregate value, as distinct from the value-space of the element datatype itself being (internally) ordered (see 6.3.2). It is also distinct from the value-space of the aggregate datatype being ordered.
A datatype whose value space is defined either axiomatically or by enumeration is said to be a primitive datatype. identifiable datatype that cannot be decomposed into other identifiable datatypes without loss of all semantics associated with the datatype
datatype which is a parametric datatype to a datatype generator parametric datatype datatype on which a datatype generator operates to produce a generated datatype
Dyadic operation maps a pair of values of the given datatype into a value of the given datatype or into a value of datatype Boolean
a value space is the collection of values for a given datatype
procedure-parameter-list
whose values are associations between the product space of one or more finite datatypes, designated the index datatypes, and the value space of the element datatype, such that every value in the product space of the index datatypes associates to exactly one value of the element datatype.
Scaled is a family of datatypes whose value spaces are subsets of the rational value space, each individual datatype having a fixed denominator, but the scaled datatypes possess the concept of approximate value.
real is a family of datatypes which are computational approximations to the mathematical datatype comprising the “real numbers”. Specifically, each real datatype designates a collection of mathematical real values which are expressed to some finite precision and must be distinguishable to at least that precision.
An aggregate-value has the identifier uniqueness property if and only if no identifier (e.g., label, index) of the element datatype occurs more than once in the aggregate-value. The aggregate datatype has the identifier uniqueness property, if and only if all values in its value space do.
The computational model of a datatype may limit the degree to which values of the datatype can be distinguished. If every value in the value space of the conceptual datatype is distinguishable in the computational model from every other value in the value space, then the datatype is said to be exact. Certain mathematical datatypes having values which do not have finite representations are said to be approximate
A generated datatype is a datatype resulting from an application of a datatype generator.
A datatype is said to be numeric if its values are conceptually quantities (in some mathematical number system). A datatype whose values do not have this property is said to be non-numeric.
An aggregate datatype is homogeneous, if and only if all components must belong to a single datatype. If different components may belong to different datatypes, the aggregate datatype is said to be heterogeneous. The component datatype of a homogeneous aggregate is also called the element datatype.
directed labeled graph datatype generator
whose values constitutes a means of reference to values of another datatype, designated the element datatype. The values of a pointer datatype are atomic.
The size of an aggregate-value is the number of component values it contains. The size of the aggregate datatype is fixed, if and only if all values in its value space contain the same number of component values. The size is variable, if different values of the aggregate datatype may have different numbers of component values. Variability is the more general case; fixed-size is a constraint.
An aggregate-value has the uniqueness property if and only if no value of the element datatype occurs more than once in the aggregate-value. The aggregate datatype has the uniqueness property, if and only if all values in its value space do.
A value space has the mathematical concept of cardinality: it may be finite, denumerably infinite (countable), or non-denumerably infinite (uncountable). A datatype is said to have the cardinality of its value space. In the computational model, there are three significant cases: ⎯ datatypes whose value spaces are finite, ⎯ datatypes whose value spaces are exact and denumerably infinite, ⎯ datatypes whose value spaces are approximate and therefore have a finite or denumerably infinite computational model, although the conceptual value space may be non-denumerably infinite. Every conceptually finite datatype is necessarily exact. No computational datatype is non-denumerably infinite.
character is a family of datatypes whose value spaces are character-sets.
A datatype is said to be ordered if an order relation is defined on its value space.
An aggregate datatype is a generated datatype, each of whose values is, in principle, made up of values of the parametric datatypes. The parametric datatypes of an aggregate datatype or its generator are also called component datatypes.
enumerated is a family of datatypes, each of which comprises a finite number of distinguished values having an intrinsic order.
whose values is a single value from any of a set of alternative datatypes. The alternative datatypes of a choice datatype are logically distinguished by their correspondence to values of another datatype, called the tag datatype.
A datatype is said to be bounded above if it is ordered and there is a value U in the value space such that, for all values s in the value space, s ≤ U . The value U is then said to be an upper bound of the value space. Similarly, a datatype is said to be bounded below if it is ordered and there is a value L in the space such that, for all values s in the value space, L ≤ s . The value L is then said to be a lower bound of the value space. A datatype is said to be bounded if its value space has both an upper bound and a lower bound.
A datatype generator is a conceptual operation on one or more datatypes which yields a datatype. A datatype generator operates on datatypes to generate a datatype, rather than on values to generate a value. Specifically, a datatype generator is the combination of: ⎯ a collection of criteria for the number and characteristics of the datatypes to be operated upon, ⎯ a construction procedure which, given a collection of datatypes meeting those criteria, creates a new value space from the value spaces of those datatypes, and ⎯ a collection of characterizing operations which attach to the resulting value space to complete the definition of a new datatype. The application of a datatype generator to a specific collection of datatypes meeting the criteria for the datatype generator forms a generated datatype. The generated datatype is sometimes called the resulting datatype, and the collection of datatypes to which the datatype generator was applied are called its parametric datatypes.
time is a family of datatypes whose values are points in time to various common resolutions: year, month, day, hour, minute, second, and fractions thereof.
The components of an aggregate datatype may not all be required to have a valid value of the datatype, i.e., the actual value space of the datatype may include values for which some of the component values are unspecified. When a component of the datatype is required to have a valid value in order for the aggregate value to be a valid value of the datatype, the component is said to be a mandatory component. When a component of the datatype is not required to have a valid value in order for the aggregate value to be a valid value of the datatype, the component is said to be an optional component.
Since this collection is unbounded, there are four formal methods used in the definition of the datatypes: ⎯ explicit specification of primitive datatypes, which have universal well-defined abstract notions, each independent of any other datatype. ⎯ implicit specification of generated datatypes, which are syntactically and in some ways semantically dependent on other datatypes used in their specification. Generated datatypes are specified implicitly by means of explicit specification of datatype generators, which themselves embody independent abstract notions. ⎯ specification of the means of datatype declaration, which permits the association of additional identifiers and refinements to primitive and generated datatypes and to datatype generators. ⎯ specification of the means of defining subtypes of the datatypes defined by any of the foregoing methods.
set of distinct values, characterized by properties of those values, and by operations on those values
complex is a family of datatypes, each of which is a computational approximation to the mathematical datatype comprising the “complex numbers”. Specifically, each complex datatype designates a collection of mathematical complex values which are known to certain applications to some finite precision and must be distinguishable to at least that precision in those applications.
state is a family of datatypes, each of which comprises a finite number of distinguished but unordered values.
Aggregate datatypes are: ⎯ conceptually structured, having both the component datatypes and the access method specified, or ⎯ conceptually semi-structured, having either the component datatypes or the access method specified, but not both, or ⎯ conceptually unstructured, having neither the component datatype nor the access method specified.
whose values are ordered sequences of values from the element datatype. The ordering is imposed on the values and not intrinsic in the underlying datatype; the same value may occur more than once in a given sequence.
Niladic operations yield values of the given datatype.
whose values is an operation on values of other datatypes, designated the parameter datatypes. That is, a procedure datatype comprises the set of all operations on values of a particular collection of datatypes. All values of a procedure datatype are conceptually atomic.
An aggregate datatype generator generates a datatype by ⎯ applying an algorithmic procedure to the value spaces of its component datatypes to yield the value space of the aggregate datatype, and ⎯ providing a set of characterizing operations specific to the generator.
A datatype is said to be recursive if a value of the datatype can contain (or refer to) another value of the datatype.
Monadic operations map a value of the given datatype into a value of the given datatype or into a value of datatype Boolean.
whose value-space is the set of all subsets of the value space of the element datatype, with operations appropriate to the mathematical set.
The set of characterising operations for a datatype comprises those operations on, or yielding values of, the datatype that distinguish this datatype from other datatypes having value spaces which are identical except possibly for substitution of symbols.
A subtype is a datatype derived from an existing datatype, designated the base datatype, by restricting the value space to a subset of that of the base datatype whilst maintaining all characterizing operations. Subtypes are created by a kind of datatype generator which is unusual in that its only function is to define the relationship between the value spaces of the base datatype and the subtype.
N-adic operations map ordered n-tuples of values, each of whichh is of a specified datatype, which may be the given datatype or a parametric datatype, into values of the given datatype or parametric datatype.
The access method for an aggregate datatype is the property which determines how component values can be extracted from a given aggregate-value.
In every value space there is a notion of equality, for which the following rules hold: ⎯ for any two instances (a, b) of values from the value space, either a is equal to b, denoted a = b , or a is not equal to b, denoted a ≠ b ; ⎯ there is no pair of instances (a, b) of values from the value space such that both a = b and a ≠ b ; ⎯ for every value a from the value space, a = a ; ⎯ for any two instances (a, b) of values from the value space, a = b if and only if b = a ; ⎯ for any three instances (a, b, c) of values from the value space, if a = b and b = c , then a = c . On every datatype, the operation Equal is defined in terms of the equality property of the value space, by: ⎯ for any values a, b drawn from the value space, Equal(a,b) is true if a = b , and false otherwise.
whose values are heterogeneous aggregations of values of component datatypes, each aggregation having one value for each component datatype, keyed by a fixed field-identifier.
role
void datatype
Void is the datatype representing an object whose presence is syntactically or semantically required, but carries no information in a given instance.
ordinal datatype
boolean datatype
boolean is the mathematical datatype associated with two-valued logic.
integer datatype
integer is the mathematical datatype comprising the exact integral values.
rational datatype
Rational is the mathematical datatype comprising the “rational numbers”.
labeled dataset record datatype
homogenous aggregate generator with variable size
homogenous unordered aggregate generator with variable size
non-numeric unordered primitive datatype
homogenous aggregate datatype with variable size
homogenous unordered aggregate datatype with variable size
countable
finite
uncountable
bounded above
bounded below
unbounded above
unbounded below
bounded
unbounded
approximate
exact
numeric
non-numeric
ordered
non-ordered
dyadic aritmetic operation
dyadic logical operation
dyadic set operation
dyadic updating operation
dyadic comparison operation
dyadic retrieve operation
monadic aritmetic operation
monadic retrive operation
map operation
boolean operation
index access
key access
access by value
implementation dependent access
position access
ordered aggregate
unordered aggregate
identifier not unique
identifier unique
fixed size
variable size
component mandatory
component non-mandatory
one dimensional
two dimensional
multi dimensional
homogenous
heterogenous
recursive
non-recursive
structured
unstructured
semi-structured
non-unique values
unique values
labeled dataset field-list
labeled dataset descriptive field component
labeled dataset target field component
descriptive field identifier
target field identifier
bound
target primitive field component
target boolean field component
target discrete field component
target real field component
target sequence of real field component
target hierarchical field component
target DAG field component
target tree field component
target set of discrete field component
target record of primitives field component
target record of boolean field component
target record of discrete field component
target record of reals field component
target structured field component
descriptive record of primitives field component
descriptive record of reals field component
descriptive record of boolean field component
descriptive record of discrete field component
descriptive set of integer field component
descriptive strucured field component
set of integer datatype
integer base datatype
unlabeled dataset record datatype
unlabeled dataset field-list
positive integer
positive integer range generator