[Date Prev][Date Next][Thread Prev][Thread Next][Author Index][Date Index][Thread Index]
User semantics for dimensions / sug'd guidelines
- To: zzdev@xxxxxxxxxx
- Subject: User semantics for dimensions / sug'd guidelines
- From: Mark-Jason Dominus <mjd@xxxxxxxxxx>
- Date: Mon, 26 Oct 1998 11:01:31 -0500
- Cc: mjd@xxxxxxxxxx
- In-reply-to: Your message of "Mon, 26 Oct 1998 14:52:22 EST." <3.0.6.32.19981026145222.007e2db0@xxxxxxxxxxxxxxxxxxx>
- Reply-to: zzdev@xxxxxxxxxx
> Hi Mark-Jason--
>
> >If the existing contents system is going to work at all, users must be
> >able to provide their own semantics for dimensions.
>
> Definitely!
>
> My intention (and I'm way behind) has been to provide
> about sixteen predefined dimensions, and suggested guidelines
> for how to extend.
I hope you won't mind if I expand on my ideas a little.
Your plan is for d.inside and d.contents to be closely related to each
other, so that neither one has a real meaning without the other.
Suppose I am using ZigZag, and I want to create my own pair of
dimensions that are related int the same way that d.inside and
d.contents are, to serve an analogous but separate purpose. For
example, suppose I am doing a geneological chart, and I want to
capture the idea of `ancestry'. I will have two dimensions, d.parent
and d.sibling:
A-B-C +--> d.parent
| | |
D E v d.sibling
A is the parent of B, who is the sibling of D and the parent of C and E.
As far as `ancestry' goes, this is almost exactly the way d.contents
and d.inside work:
A-B-C +--> d.inside
| | |
D E v d.contents
A holds B and D, and B holds C and E, so that C and E are also
considered to be inside of A.
If I want ZigZag to be able to do appropriate computations with
ancestor charts, I will need to be able to tell ZigZag that d.parent
and d.sibling are associated dimensions, that they go together in the
way that d.inside and d.contents do. In my notes I called this kind
of association a `conjoinment'. (I think `conjoinment' is as
absolutely awful name.) d.inside and d.contents are conjoined.
Conjoinment is one of the kit items I was thinking about. When I
create a new dimension, I should be able to say whether it is
conjoined to other dimensions.
Similarly, the chart above has exactly the same *meaning* as if I had
built it this way:
A-D +--> d.parent
| |
B-C v d.sibling
|
E
I would like ZigZag to understand that. So when I create d.sibling, I
would like a way to say `The order of the cells in a group doesn't
matter, and positive and negative directions are the same.'
This `disorderment' property is closely related to conjoinment, but I
haven't figured out the details yet. `Disordered' is another item in
the kit. When I create a new dimension, I should be able to say that
in this dimension, the order of cells in a group is unimportant as
long as they are all linked in a line. (I called a line of linked
cells in one dimension a `pier', but maybe you have a different name
for it.)
> Interesting point. Except users might want to add some
> meaning to the direction of a dimension whose general
> meaning is predefined without direction.
Just so. Dimensions express relations between things. In forming
relations, they might have any, all, or none of the following properties:
1. Symmetric (positive and negative are the same, as you said)
2. Conjoined to other dimensions
3. Reflexive (A cell is considered to be related to itself)
4. Transitive (If A-B and B-C, then A is considered to be
related to C even though there is no explicit link)
5. Disordered (I think this turns out to be the same as
symmetric + transitive.)
There were a couple of others I thought of, but my notebook is
downstairs.