Relationship Taxonomy Questions
The ERB would like to ask the list to address the following questions
relating to relationship (link) typing.
Assuming that there is a distinction between link behavior and the
relationship types that links represent, and in particular, a distinction
between behavioral "primitives" and relationship "primitives":
1. Is it necessary or useful for XML to define some finite set of
well-defined relationship types or primitives?
Our presumption, as yet unproved, is that the interoperation of XML
documents within some general purview (e.g., the Web, as opposed to
domain-specific purviews, such as a particular intranet) requires some
basic set of link types whose meaning is well defined and understood. This
presumption is based in part on the opinion that typing links is in fact a
useful thing to do for some types of information.
We take it as a given that the set of possible relationship types is
2. If the answer to question 1 is "yes", what is the list of types?
3. Given such a list,
A. can these types be considered to be a set supertypes from which new
may be derived?
B. If so, what mechanisms could or should be used to define such a class
4. Is there a preferred formalism, in terms of prose rhetoric, formal
notation, or both, by which the meaning of relationship types should be
expressed. NOTE: this formalism *cannot* consist only of behavior
specification (although it may include a behavior specification).
NOTE: The issue of behavior primitives is not open for discussion at this
time. The behavior issue will be taken up after the base link
representation syntax and link typing issues have been sufficiently resolved.
Definition of terms:
What happens when some agent interacts with the
link, either directly or by interaction with one of its link ends.
Behavior includes all of what happens in user interfaces, and could also
include behaviors of translators, processors, query engines, etc.
In the general case, behavior is not permanently (and exclusively)
bound to data objects (i.e., the SGML content vs. style model). However,
some element types or base element type classes may have semantics
that largely or exclusively suggest a particular behavior (e.g., <font>),
although it is generally regarded as poor practice for most applications
(partly because implementation of the suggested behavior cannot be
In the SGML model, behavior can be considered an aspect of "style" or
presentation and may be defined explicitly through "style sheets" or
"processing specifications" or may be embedded into a particular
browser or processor (e.g., HTML browsers pre CSS). In this broad
definition of the term style, mechanisms such as scripts, controls,
and plug-ins could all be considered aspects of style specification.
At this point we are assuming that behavior will be specified both in
some normative way in an XML specification and, at user option, through
some as-yet-undetermined behavior specification system or systems (e.g.
"link style sheet").
A *semantic* association among two or more objects intended to describe
the nature of the assocation. Relationship types may be thought of as
analogous to element types in SGML, such that where element types
classify data objects, relationships (and thus links) classify
assocations among data objects. Like element types, relationship
types can range from the very general ("linked") to the very specific
Our assumption is that links always represent relationships of some
defined (albeit possibly very general) type. In the likely syntax
design model, the link type will be named either through the element
type of a link element or through an attribute that defines the type
Relationships are distinguished by relationship type. In addition,
some relationship description models may further describe relationships
by naming the roles in the relationship (e.g., the HyTime hyperlink
model). As for element types, some relationship types may largely or
exclusively suggest a particular behavior (e.g, <goto>). Such
relationship types are poor practice only when their use fails to
identify a more specific relationship type that would enhance the value
of the information in the scope of its expected application and use
(in other words, when you don't care about the link type, there's little
value in being more specific than "link", but if your system expects
and depends on typed links, you'd better type them).
Relationships may be implicit in the data structure (i.e., the
hierarchical relationships defined by SGML markup) or explicit through
hyperlinks or other associative systems (i.e., relational databases).
The "meaning" associated with a type. The term "semantic" is dangerous
because it is overloaded and can mean different things in different
contexts. In this discussion, we are trying to clearly differentiate
meaning, which is abstract, from behavior, which is concrete. In general,
there is a one-to-one relationship between a type and its semantic, but
a one-to-many relationship between a type and its possible behaviors.
In other words, a type's semantic doesn't change, but that semantic may
be interpreted into specific behaviors in a variety of ways depending on
the use to which the type is put or the arbitrary whim of the behavior
W. Eliot Kimber (firstname.lastname@example.org)
Senior SGML Consulting Engineer, Highland Consulting
2200 North Lamar Street, Suite 230, Dallas, Texas 75202
+1-214-953-0004 +1-214-953-3152 fax
http://www.isogen.com (work) http://www.drmacro.com (home)
"Rats in the morning, rats in the afternoon...if they don't go away, I'll be
re-educated soon..." --Austin Lounge Lizards, "1984 Blues"