Meta
http://www.openmath.org/OpenMath/CDs/Meta
31/Dec/1997
official
The content dictionary (CD) entries described using
their own definitions
Constructor
CDName
The name of the content dictionary being defined.
This name must be unique over the entire OpenMath community.
This is insured by having a repository of such definitions at
the Web site of the OpenMath steering committee
(http://www.openmath.org). The name is composed of an
alphabetic character followed by any number of alphanumeric
characters. No special symbols are allowed.
Unary, Formal
string -> constructor
CD
CDURL
The URL where the main definition of the content
dictionary can be found. Follows standard URL syntactic
rules
Unary, Formal
string -> constructor
CD
CDExpire
The expiration date of the definition of the
content dictionary. It is to be understood as an
indication of possible change to the dictionary. I.e. the
content dictionary will not be changed until the given date.
It is in the format DD/MMM/YYYY. DD and YYYY are integers,
MMM is in the standard 3-letter English encoding. If absent,
this means that there is no information and/or guarantees
about when the definition is going to be changed.
Unary, Formal
string -> constructor
CD
CDStatus
A keyword identifying the status of the CD,
which is one of the following:
official - A CD approved by the OpenMath steering committee.
obsolete - A CD which was in use before, has been replaced
by a newer version or is no longer useful. It is kept
around for purposes of understanding old objects.
experimental - A CD being tested/constructed, posted for the
purpose of dissemination (alpha tests and beta tests of
CDs).
private - An approved CD which is used by a smaller, private,
community of users of OpenMath.
Unary, Formal
string -> constructor
CD
CDUses
A list of names of content dictionaries used or
needed by the definition of this dictionary. Any reference
to a name which is in another CD should be also explicitly
stated here. I.e. all the inheritance information comes
from the CDs listed here.
Nary, Formal
sequence( string ) -> constructor
CD
Description
A description, in ascii or any other typesetting
or page layout format, intended for human comprehension
(please remark!). References are the only other structure
which could be present inside a Description. The entire
CD and each name defined require a Description
Unary, Human
string -> constructor
CD, CDDefinition
CDDefinition
The complete description of a name defined in the
content dictionary. This will normally include entries for
Name (required)
Description (required)
FunctorClass (optional)
CDAttributes (star)
Inheritance (optional)
Signature (star)
CDDefaults (star)
PartOf (optional)
CMP (star)
which are to be interpreted according to this definition,
or any other entries with different names, which are
tolerated.
Nary, Formal
structure -> constructor
CD
Name
The name of the operator, function or constant (a
constant being a null-ary operator) being defined. This name
should be unique within the Content Dictionary, except for the
case when defining operators with different arity. In any
case, Name and arity should be unique inside a CD.
This name may be referred alone as NAME when it is not
ambiguous (i.e. none of the needed content dictionaries
include a similar name) or it can be referenced by the
concatenation of the CD name and the name, i.e. CDNAME::NAME.
When a name is used without a CD descriptor, and it appears
in more than one CD, its definition will be assumed to come
from the the first CD which defines it. (Notice that the
CDs used for describing an OM object are ordered).
Unary, Formal
string -> constructor
CDDefinition
Name
The same as above, but defining two names.
This is only necessary when a particular encoding has a
clash of names, and an alternative name should be used.
Both names defined are for all purposes identical.
E.g. "+", plus
is needed for the arithmetic operator for sum, since "+"
is not a valid SGML tag.
Binary, Formal
(string, string) -> constructor
CDDefinition
FunctorClass
The semantic class/category of the object being
defined. The semantic classes/categories describe the use
or uses which the object may have. If more than one is
present, then it is assumed that the object belongs to all
these classes. The classes are divided in three groups:
Arity:
Unary
Binary
3ary, 4ary, ...
Nary (variable number of arguments)
Interpretation:
Formal (precise syntactic rules apply)
Human (intended for human comprehension)
Operator Class:
Operator (used mainly in infix, prefix or postfix notation)
Function (used mainly in standard functional notation)
Constant (a 0-ary function)
Constructor
TransparentOperator
Nary, Formal
sequence( string ) -> constructor
CD, CDDefinition
CDAttributes
This entry describes 3 types of attributes of a
given name.
The first type of attributes are mathematical in nature, and
refer to properties of the name. Valid attribute names are
Associative
Commutative
NonCommutative
Distributive
CharacteristicX
The second type refers to the errors that the particular
function/operator may produce if evaluated (the operator
does not necessarily need to evaluate to be conformant).
These are mathematical errors, or domain limitation errors,
i.e. errors which have to do with the mathematical object
itself. An error normally indicates that some system detected
that the object is mathematically invalid. The syntax of
the errors is a constructor with two arguments. The first
argument is an OpenMath symbol, which is catalogued here.
To identify them in this context, we surround them with
the function "Error". E.g.
Error( "division by zero" )
Error( "matrix is singular" )
Error( "logarithm function has a singularity at 0" )
The third type of attributes consists of the transparent
operators/functions which have a special meaning for the name.
Presently we contemplate 4 transparent operators:
TypeSet - give typesetting instructions
SpeechSynth - give instructions on how to read the object
Parenthesize - surround the expression with parenthesis for
display and evaluation purposes
HyperLink - standard html pointer to another html page
Definitions of these transparent operators can be found in
http://www.inf.ethz.ch/personal/gonnet/ContDict/TypeSet
http://www.inf.ethz.ch/personal/gonnet/ContDict/SpeechSynth
http://www.inf.ethz.ch/personal/gonnet/ContDict/Parenthesize
http://www.inf.ethz.ch/personal/gonnet/ContDict/HyperLink
Transparent operators/functions are functions which for
all mathematical purposes are identities on the first
argument. E.g. for all mathematical purposes,
TypeSet( x, ....) is identical to x. It is expected,
although not required, that systems which evaluate
mathematically such expressions will return their
results with the same transparent operator envelope
around them.
Nary, Formal
sequence( Union( string, function ) ) -> constructor
CD, CDDefinition
Inheritance
This descriptor is needed when the name which is
being defined in this dictionary already exists in another
content dictionary which is required (in the "CDUses"
list). The list of valid replacement semantics is:
Augments
ReplacesAll
Example of Augments: The Basic CD defines the sin function
over the reals. Lets assume that another CD, called C,
extends the definition of sin to the complex. Sin in C is
defined with inheritance "Augments". This extension does
not repeat all the information in Basic, it just adds the
complex-valued definition. Then referring to "sin" refers
to the real-valued function, and referring to "C::sin"
refers to the real-valued and complex-valued function.
Example of ReplacesAll: The Basic CD defines the "*" operator
to be commutative multiplication. Lets assume that another
CD, called NC wants to define non-commutative multiplication.
"*" in NC is defined with inheritance "ReplacesAll". Then
referring to "*" will refer to the basic commutative operator,
and referring to "NC::*" will refer exclusively to the
non-commutative (ignoring all properties from Basic) definition.
Unary, Formal
string -> constructor
CD, CDDefinition
CDDefaults
This entry defines the values of the transparent
operators that will be used by default. It uses the same
syntax as CDDescription.
Nary, Human
string -> constructor
CD, CDDefinition
PartOf
This entry defines the constructors where the
Name can appear. This is particularly suitable for SGML
structures and for mathematical typed structures. If
absent, no constraint of inclusions are required/imposed.
Nary, Formal
sequence(string) -> constructor
CDDefinition
Signature
Defines the type of the arguments. It also
defines the type of the result for the cases where the
function/operator is expected to compute. The syntax
requires the arguments to appear first (surrounded by
parenthesis if more than one), and then the symbol '->'
and then the type of the result. The type of the arguments
or result have the same syntax. A type expression is
an expression formed from basic types and function/operators
over type expressions. The list of valid atomic type
names is:
algebraic
array
boolean
complex
equation
float
function
integer
negative
positive
rational
real
set
string
structure
symbol
symbolic
anything
The list of valid constructors for types includes all the
function/operators included in the content dictionary plus
the special type constructions:
Intersection( type, type, ... )
List( type )
Non( type )
Sequence( type, type, ... )
Set( type )
Union( type, type, ... )
For constructors, where the result is the structure itself,
the result type can be specified as 'constructor'.
Unary, Formal
(symbolic, symbolic) -> constructor
CDDefinition
CMP
Commented Mathematical Property. This describes
an equation as first argument which is verified by the
operator/function being defined. This is a formal descriptor,
although its main use will be for clarification of the
properties of the object being described, or as a catalogue
of useful mathematical properties. The second (optional)
argument is a verbal description of the property.
Properties defined within an CDDefinition should refer
exclusively to the function/operator being defined there.
Properties defined within an CD can refer to any of the
function operators defined in the content dictionary. In
all cases, function/operators defined in "CDUses"
dictionaries can be used.
Unary, Binary
(equation, string) -> constructor
CD, CDDefinition
CDExamples
One or many examples of expressions written
in OpenMath (SGML style). These are most likely preceded
by comments (in SGML format, i.e. ) explaining
the example, and possibly showing the same expression in other
languages, like TeX or a CA language.
The example can contain any arbitrary SGML provided that all
the tags are simple and explicit.
Nary, Human
string -> constructor
CD, CDDefinition