Ext/Vers terminology with generic/xml split

I've updated the terminology section including diagrams to do the
generic/xml split.  


1.1 Terminology


The terminology for describing languages, namespaces, constraints,
evolvability etc. follows. Let us consider an example. Two systems need
to exchange name information. Names may not be the perfect choice of
example because of internationalization reasons, but it resonates
strongly with a very large audience. The Name language is created to be
exchanged. [Definition: A producer is an agent that creates an instance.
][Definition: A Production is the creation of an instance.]. A producer
produces an instance for the intent of conveying information.
[Definition: A consumer is an agent that consumes an
instance.][Definition: A Consumption is the processing of an instance of
a language.] A consumer is impacted by the instance that it consumes.
That is, it interprets that instance and bases future processing, in
part, on the information that it believes was present in that instance.
An instance can be consumed many times, by many consumers, and have many
different impacts.

Generally, a language has one or more vocabularies that each may have
multiple terms. Formally, [Definition: a language is an identifiable set
of vocabulary terms with defined syntactic and semantic constraints. ]
By language, we mean the set of text that are members of that language
and used by a particular application. [Definition: A vocabulary is a set
of terms]. The Name language consists of 3 terms: name, first, last. In
order to identify the terms in the Name language in XML, a namespace is
assigned to the terms. Other examples include the elements and
attributes of XHTML 1.0 or the names of built-in functions in XPath 2.0.
The Name language could consist of terms from other vocabularies, such
as Dublin Core or UBL. These terms each have their own namespaces,
illustrating that a language can comprise vocabularies from multiple
namespaces. 

The name language takes the 3 terms and specifies the constraints: that
a name consists of a first and a last. [Definition: A language has a set
of constraints that apply to the vocabulary terms in the language. ]
These constraints can be defined in machine processable syntactic
constraint languages such as XML Schema, human readable textual
descriptions such as HTML descriptions, or are embodied in software.
Languages may or may not be defined by a schema in any particular schema
language. The constraints on a language will govern the membership of
instances in the language, which may be considered the set of strings
that are in the language.

In general, the intended meaning of a vocabulary term is scoped by the
language in which the term is found. However, there is some expectation
that terms drawn from a given vocabulary will have a consistent meaning
across all languages in which they are used. Confusion often arises when
terms have inconsistent meaning across language. The Name terms might be
used in other languages, but it is generally expected that they will
still be "the same" in some meaningful sense.

[Definition: Text is a specific, discrete sequence of characters]. Given
that there are constraints on a language, any particular text may or may
not have membership in a language. Indeed, a particular string of
characters may be a member of many languages, and there may be many
different strings of characters that are members of a given language.
The text of the language are the units of exchange. Documents are texts
of a language.

These terms and their relationships are shown below

There are many different systems for exchanging texts in languages, such
as SQL, Java, XML, ECMAScript, C#. We will briefly describe some key
refinements to our lexicon for XML. An XML language has a vocabulary
that may use terms from one or more XML Namespaces (or none), each of
which has a namespace name. [Definition: An XML language is an
identifiable set of vocabulary terms with defined XML syntactic and
semantic constraints. ] By XML language, we mean the set of elements and
attributes, or instances, used by a particular application. The Name
language - consisting of name, first, last - has a namespace is assigned
to the terms. We use the prefix "namens" to refer to that namespace. The
Name language could consist of terms from other vocabularies, such as
Dublin Core or UBL. These terms each have their own namespaces,
illustrating that a language can comprise vocabularies from multiple
namespaces. An XML Namespace is a convenient container for collecting
terms that are intended to be used together within a language or across
languages. It provides a mechanism for creating globally unique names. 

We shall use the term instance
<file:///C:/AllMaterial/W3C/TAG/vers-v3.html#instance>  when speaking of
sequences of characters (aka text) in XML. [Definition: An instance is a
specific, discrete sequence of terms]. Documents are instances of a
language. In XML, they must have a root element. A name document might
be a name element as the root element. Alternatively, the name
vocabulary may be used by a language such as purchase orders. The
purchase order documents may contain name elements. Thus instances of a
language are always part of a document and may be the entire document.
XML instances (and all other instances of markup languages) consist of
markup and content. In the name example, the first and last elements
including the end markers are the markup. The values between the start
and end markers are the content. An instance has an information model.
There are a variety of data models within and without the W3C, and the
one standardized by the W3C is the XML infoset.

The XML related terms and their relationships are shown below

A stylesheet processor is a consumer of the XML document that it is
processing (the producer isn't mentioned); in the Web services context
the roles of producer and consumer alternate as messages are passed back
and forth.Note that most Web service specifications provide definitions
of inputs and outputs. By our definitions, a Web service that updates
its output schema is considered a new producer. A service that updates
its input schema is a new consumer. 

We now return to our discussion of languages in general. Extensibility
is a property that enables evolvability of software. It is perhaps the
biggest contributor to loose coupling in systems as it enables the
independent and potentially compatible evolution of languages. Languages
are defined to be [Definition: Extensible if instances of the language
can include terms from other vocabularies.]. The name language is
extensible if it can include terms from other vocabularies, like a new
middle term. 

_______________________________________________________________________
Notice:  This email message, together with any attachments, may contain
information  of  BEA Systems,  Inc.,  its subsidiaries  and  affiliated
entities,  that may be confidential,  proprietary,  copyrighted  and/or
legally privileged, and is intended solely for the use of the individual
or entity named in this message. If you are not the intended recipient,
and have received this message in error, please immediately return this
by email and then delete it.

Received on Friday, 24 February 2006 23:10:23 UTC