Re: Equivalence classes

Philip Wadler <wadler@research.bell-labs.com> writes:

> A request for clarification about equivalence classes.
> 
> If all elements are declared via top-level `element' declarations,
> then I think that I understand how equivalence classes work.  Can
> someone please explain how equivalence classes work in the presence
> of element declarations nested within type declarations?

'equivClass' is incoherent on a nested (or 'local') element
declaration, because of the asymmetry pointed out below.  This should
be made clear in the spec. -- I agree it is not clear now.

> Also, I gather that equivalence classes are not really symmetric.
> That is, declaring A with equivalence class B is not at all the
> same as declaring B with equivalence class A.  I think this is the
> right choice, but the schema specification needs to be clarified
> and it would help to choose a name that did not imply symmetry.
> In particular, I suggest exploiting the analogy with object-oriented
> languages, and replacing `equivClass' with `super'.

I agree the name is misleading, and the asymmetry needs to be clearly
spelled out in the spec.  Whether we'll change it before Last Call is
another matter.  We've studiously avoided _all_ use of 'sub' and
'super', so far, for what I think is a good reason:  documents are not 
programs, there are important but subtle differences between our type
system and that of an OO language, accordingly encouraging false
parallels blurs important distinctions.

ht
-- 
  Henry S. Thompson, HCRC Language Technology Group, University of Edinburgh
          W3C Fellow 1999--2001, part-time member of W3C Team
     2 Buccleuch Place, Edinburgh EH8 9LW, SCOTLAND -- (44) 131 650-4440
	    Fax: (44) 131 650-4587, e-mail: ht@cogsci.ed.ac.uk
		     URL: http://www.ltg.ed.ac.uk/~ht/

Received on Wednesday, 16 February 2000 04:03:23 UTC