ISO/IEC JTC1/SC18/WG8 **N1739**

# ISO/IEC JTC1/SC18/WG8 Document Processing and Related Communication--- Document Description and Processing Languages {#isoiec-jtc1sc18wg8-document-processing-and-related-communication-document-description-and-processing-languages .Heading-0-(nobreak)}

  -------------------- --------------------------------------------------
  Title:               A Vocabulary for Discussing SGML Abstractions

  Source:              Dave Peterson

  Project:             1.18.15.1

  Project editor:      C. F. Goldfarb

  Status of document:  Personal contribution

  Requested action:    For information

  Date                 29 August 1994

  Distribution:        WG8 and liaisons

  References:          

  Supersedes:          
  -------------------- --------------------------------------------------

# **A Vocabulary for Discussing SGML Abstractions** {#a-vocabulary-for-discussing-sgml-abstractions .Heading-0}

**Dave Peterson, 29 August 1994**

## **Intensional vs. Extensional Approaches**

In the extensional approach, relations between things (such as an object
being an instance of a class) Òjust happenÓÑthey are inherent in the
structure of the things and the definition of the relations involved. In
the intensional approach, at least some relations between things occur
only by explicit decision: An object may be a potential instance of some
class, but it is not a (real) instance unless one deliberately chooses
to make it so.

There is a homomorphism (a many-to-one relation preserving properties of
interest) between the intensional classes and extensional classes; the
different possible choices of real instances and real immediate base
classes of the intensional approach are ignored in the extensional
approach.

The intensional instances of an intensional class are a deliberately
selected subset of the extensional instances of the corresponding
extensional class. Similarly, the intensional derivatives of an
intensional class are a deliberately selected subset of the extensional
derivatives of the corresponding extensional class.

One often thinks of the classes which differ only in their selection of
instances or base classes as in some sense equivalent. One can think of
the Òstate of the universeÓ as a selection from each of these
equivalence-classes of classes. (There are other ways to think of the
Òstate of the universeÓ; it is not the intent of this paper to develop
the concept or select a ÒgoodÓ approach.)

To create a new class is to add to the Òstate of the universeÓ another
selection.

To ÒinstantiateÓ an object which is a potential (but not real) instance
of such a class is to change the Òstate of the universeÓ by selecting a
different representative of that equivalence class, the same as the
original representative except that the new representative is also the
parent of the chosen object. One must then also select different
representatives for the equivalence-classes of each of the base classes
of the original so that the chosen object is also an instance of each of
these base classesÑotherwise the Òstate of the universeÓ will no longer
be consistent with the definitions in the glossary below.

We have not developed the intensional approach, because we have not yet
found any need for its added complexity. It does seem to be the common
approach to objects and classes in computer science.

## **Glossary**

The ÒdefinitionsÓ of this glossary do not purport to define everything,
for example in terms of set theory. Think of them as axioms which your
personal concept of objects and classes must satisfy in order to be
properly understood by others in WG8.

The primary intent of this glossary is to establish common terminology,
so that, for example, one will not say that a type ÒhasÓ a property when
one means that the type ÒprovidesÓ the property. The selection of terms
defined herein is simply an initial guess by a few individuals as to
what concepts are likely to prove useful. No attempt is made herein to
justify the choices. If you, the reader, do not yet see the utility of
some particular concept, just file it away for later evaluation.

Nouns are common nouns, one place predicates that are treated
linguistically as nouns. Transitive verbs are two-place predicates that
are treated linguistically as verbs. ÒTransitive nounsÓ are two-place
predicates that are treated linguistically as nouns. Ò3-place transitive
verbsÓ are three-place predicates that are treated linguistically as
verbs. ÒBinary operatorsÓ are three-place predicates treated
linguistically as operators. Terms marked Òtechnical usageÓ are terms
that may also be used with their ordinary meaning when applied to other
combinations of arguments.

Both the intensional and extensional approaches are covered, but the
organization is for the extensional approach. There are some forward
references for the intensional approach, and the definitions of *class*,
*base class of*, and *instance of* seem to be inherently tied together
in the intensional approach.

**property** *(noun)* Undefined. (Some people prefer never to use the
term. See [property name]{.smallcaps}.)

**property name** *(noun)* Undefined. Every property has one, no two
properties have the same one, and that is all that is known about
properties. (Some people prefer to equate Òproperty nameÓ with
ÒpropertyÓ.)

**property value** *(noun)* Undefined. Possible property values include
all characters in some character set, and strings thereof, and all sets,
functions, classes, and objects, etc., that can be generated therefrom.

**property assignment** *(noun)* A correspondence of a property value
with a property name.

**object** *(noun)* A thing that has a finite set of property
assignments, no two of which have the same property name.

**have** *(trans. verb, tech. usage)* An object *has* the properties
(property names ) in its property assignments. In particular, if an
object is in some way also a class, it *has* those properties for which,
as an object, it exhibits values (see [exhibit\...for]{.smallcaps}), and
it *provides* those properties with which, as a class, it associates
rules (see [provide]{.smallcaps} and [associate\...with]{.smallcaps}).

**exhibit\...for** *(3-place trans. verb)* An object *exhibits for* each
property (name) its corresponding property value. *Typical usage: ÒThis
object exhibits that value for that property (name).Ó*

**rule** *(noun)* A one-place predicateÑa mechanism for partitioning the
universe into two kinds of things, those that satisfy the rule and those
that donÕt.

**property definition** *(noun)* A correspondence of a rule with a
property name.

**class** *(noun)* A thing that has a finite set of property
definitions, no two of which have the same property name. In the
intensional approach, each class also has a set of objects, its
ÒinstancesÓ, and a set of immediate base classes (often empty) (see
[instance]{.smallcaps} and [base class of]{.smallcaps}). The instances
are required to be selected from amongst the potential instances (see
[instance]{.smallcaps}), and the immediate base classes are required to
be selected from amongst the potential base classes (see [base class
of]{.smallcaps}).

**provide** *(trans. verb)* A class *provides* the property names (and
the properties named thereby) in its property definitions. In
particular, if a class is in some way also an object, it *provides*
those properties with which, as a class, it associates rules (see
[associate\...with]{.smallcaps}), and it *has* those properties for
which, as an object, it exhibits values (see [has]{.smallcaps} and
[exhibit\...for]{.smallcaps}).

**associate\...with** *(3-place trans. verb, tech. usage)* A class
*associates with* each property (name) its corresponding rule. *Typical
usage: Òthis class associates that rule with that property (name).Ó*

**satisfy** *(trans. verb)* A property assignment *satisfies* a property
definition if both are for the same property (name) and the property
value of the assignment satisfies the rule of the definition.

**instance of** *(Òtrans.Ó noun)* In the extensional approach, an object
is an *instance of* a class if for each property (name) provided by the
class the property assignment of the object satisfies the property
definition of the class. In the intensional approach, such an object is
a *potential instances of* the class, and the (real) instances are those
potential instances which are actually in the classÕs set of instances.

**derive from** *(trans. verb)* In the extensional approach, a class is
derived from a second class if it:

¥ provides all of the properties provided by the second (and possibly
but not necessarily more).

¥ has rules at least as restrictive as the corresponding rules of the
second (and possibly moreso).

In the intensional approach, such a class is *potentially derivable
from* the second class. A class is (actually) *derived from* a second
class if the second is a base class of the first (see [base class
of]{.smallcaps}).

**base class of** *(Òtrans.Ó noun)* In the extensional approach, a class
is a base class of a second class if the second class is derived from
the first. In the intensional approach, a class is a *potential base
class of* a second if the second is potentially derivable from it. The
*immediate base classes of* the class are those potential base classes
which are actually in its set of immediate base classes; a class is a
*base class of* a second class if there is a finite chain of classes
linking the two, with each being an immediate base class of the
following one.

**inherit\...from** *(3-place trans. verb)* A class *inherits* a
property (name) *from* a second class if it is a derivative of the
second and the second provides the property (name).

**meet of** *(binary operator)* A class is the *meet of* two other
classes if:

¥ it provides precisely those properties provided by either of the other
two.

¥ for each property provided by both of the other two, it associates
with it a rule that is the conjunction of the rules associated by the
other two classes.

¥ for each property provided by only one of the other two, it associates
with it exactly the same rule associated by the other providing class.

¥ in the intensional approach, its instances are precisely those objects
that are instances of *both* of the other two classes, and its immediate
base classes are precisely those classes that are immediate base classes
of *either* of the other two.

**instantiation class of** *(Òtrans.Ó noun)* In the intensional
approach, a class is the instantiation class of an object if the object
is an instance of the class and is not an instance of any other class
derived therefrom. An object which is an instance of any (intensional)
class must have an instantiation class and is not permitted to have any
properties (property names) not provided by its instantiation class.
(One effect of these restrictions is that an intensional object is an
instance only of its instantiation class and that classÕs base classes.)

**type** *(noun)* A thing that is in some way both an object and a
class.

Types *have* properties (property names), provided by the classes of
which they are instances, and they in turn *provide* other properties
(property names) for their instances. The properties they provide may or
may not be related to the properties they have.

**inherently defines** *(trans.verb)* A collection of property
definitions *inherently defines* another property definition if that
other property definition is such that given a selection of values
satisfying each definition in the collection there is only one possible
value that satisfies the other definition (presumably because that rule
references the other propertiesÕ values).

The meet of two classes is in some sense the least restrictive
(potential) derivative of both of the two classes. It turns out that if
a class is a derivative of another class then all of its instances are
necessarily instances of the other. The instances of the meet of two
classes are precisely those objects that are (potential) instances of
both of the two classes.