Inheritance in XML [^*]

Frank Manola fmanola at
Fri Apr 24 00:43:01 BST 1998

At 1:46 PM -0700 4/23/98, Lisa Rein wrote:
>> What are two properties? Type and class? Did you shift from discussing
>> properties "concerning" type and class and type and class *as* properties.
>> Can you also please defend the distinction between type and class? It
>> makes sense in object oriented programming languages (mostly for
>> performance reasons), but I don't know that there is any such distinction
>> in common usage or in most ontologies. I am prepared to be convinced
>> otherwise, but I think that the class/type distinction is specific to OOP
>> and is not useful except as an arbitrary distinction, to avoid confusion,
>> as it is used in the DSSSL spec. (node class, flow object class vs.
>> element type ... you could as easily reverse them and talk of element
>> classes and node types...)
>It was my understanding that they are all just different names for the
>same "things".  At least they are for RDF, right?  In fact, in the RDF
>Schema group, as far as the typing (classing) models were concerned,
>types and classes were exactly the same (so much so, in fact, that we
>went back and forth on which to call them and, conceptually anyway, the
>words became so interchangible -- Resulting in a "type system" of
>classes :-).  Also, the types/classes and their respective resources (of
>which RDF's mission is to describe) WERE classes and node types (that
>was my understanding anyway...).
>Just when I thought I finally had a clear understanding of the above,
>suddenly I'm not so sure.  Someone reassure me....please.

Whether there's a distinction between "type" and "class" depends on the
context.  Loosely speaking, as well as in many contexts, they're generally
considered synonymous.  RDF uses them pretty much interchangeably.  As Paul
suggests, the distinction is often made in the context of OOPLs. In this
context, roughly speaking, the term "type" is often used to mean a protocol
shared by a group of objects, while the term "class" is often used to mean
an implementation shared by a group of objects.  The same distinction can
be important in other contexts (e.g., when talking about implementation
aspects of distributed objects) when you need to distinguish between an
interface that may supported by a group of objects, as opposed to an
implementation that may be shared by a group of objects.  Some object
analysis and design methodologies make this distinction as well.  However,
given the various usages, it's not a good idea to count on this distinction
unless you know that everyone accepts it.  It's not really set in concrete.
You might want to look at the descriptions of "type and class" in various
object models in the X3H7 Object Model Features Matrix (it's Section 7) at


Frank Manola                            www:
Object Services and Consulting, Inc.    email:  fmanola at
151 Tremont Street #22R                 voice:  617 426 9287
Boston, MA  02111  

xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at
Archived as:
To (un)subscribe, mailto:majordomo at the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo at the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at

More information about the Xml-dev mailing list