gzz-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Gzz] REPOST: PEG: Alter Canvas2D vocab to support transclusions


From: Matti Katila
Subject: Re: [Gzz] REPOST: PEG: Alter Canvas2D vocab to support transclusions
Date: Sun, 6 Jul 2003 22:34:14 +0300 (EEST)

On Thu, 3 Jul 2003, Benja Fallenstein wrote:
> Matti Katila wrote:
>> On Thu, 3 Jul 2003, Benja Fallenstein wrote:
>>>The failure of taking this into account means that there cannot
>>>be transclusions of a node, i.e. one node cannot be placed
>>>on multiple papers; in Fenfire, transclusion must be supported
>>>for *anything*, i.e., whenever some thing is in a "context,"
>>>it must be possible to place it in more than one context.
>>>
>>>In order to make nodes transcludable, the vocabulary
>>>must be changed.
>> 
>> Making clones is something what I wouldn't do in word-processing.
>> Same with pictures. If you are talkking about mindmap thing we should not 
>> mess it up with canvas2d which is "making notes" - not "making clone 
>> notes".
>> 
>> If you really want to do clones, you also need to make a new api for it 
>> (similar like ppactions) because pp should not do a such thing.
>> 
>> CanvasView2D can be programmed to render also these clone notes.
> 
> 
> We have discussed this at length on IRC, without coming to an agreement. 
> Here's my summary (keep in mind that it's from *my* POV):
> 
> - Mudyc agrees that transclusion of nodes is needed for some things, 
> e.g. mindmapping, but not for some other applications of 2D canvases, 
> such as 'general "text"'.

And my biggest point is that user should recognize if node is clone or 
not, on canvas. 

Clones are really dangerous in general text but very good in mindmaps.

You talked a system like:
-user selects area of nodes
-by pressing "A" he/she takes content copy
 or
-by pressing "B" he/she makes clone tranclusion.

I think this is not good because this sounds like clone is something what 
would you do in your everyday copying.

Making clone copy is not just copying, you really have to make the node to 
clone node to do that. It's like cloning sheeps, the original way to make 
baby sheeps doesn't need doctors with biology knowledge =) blaah blaah.. :)

In a system where I suppose cloning is available user has to make a node 
to clone node before copying. That might prevent unwanted clones. Of 
course in mindmap part of system this would be turned off by default.

 
> - Mudyc thinks that there should be two vocabularies, Canvas2D and 
> MindMap, which do the same thing except that MindMap allows for 
> transclusion of notes and Canvas2D doesn't.

That is one solution although I don't like that much of it after I though 
the NodeFuntion solution :)

The normal way is:
  
   Canvas --contains--> Coordinates

And the Coordinates is also the node which has the content. We can say 
that that node is clone if we notice it i.e., from rdf type.
So, now we can use CloneNodeFunction to handle the cloned node.


class CloneNodeFunction {

Object f(ConstGrahp g, Object node) {
    if (RDFUtil.isNodeType(fen.graph, node, CLONE.Instance))
        return nodefunc.f(fen.graph, 
                          fen.graph.find1_11X(node, CLONE.tranclusion));
    else return nodefunc.f(fen.graph, node);
}

}

Modifications to AlphContent is also needed to support clone nodes.

 
> - I believe that there should be only one vocabulary; if transclusion 
> isn't needed, use the same vocabulary, and simply don't put a node on 
> more than one canvas / position on a single canvas.

You are assuming that cloning is needed. Is it needed?

We have no real user case testing. I'd propose that we make this simple 
modification in structure if it will be more than 5% of use cases in our 
own use. Doing something for because it's doable isn't really a good 
cause.
 
> - In particular, I think it's important that the computer doesn't make a 
> difference between "transcludable" and "not transcludable" nodes. In a 
> UI that supports transclusions (such as the full Fenfire system) it 
> should be possible to transclude any node if the user says "transclude."
>
> (If one node used a vocabulary that doesn't allow for transclusion, then 
>   that node could not be transcluded.)

You should be very exact when you talk about transcluding in node or span 
level, since everyting we use in fenfire is already transclusion of the
enfilade.
 
> - Changing Canvas2D now doesn't mean that we'll need to change it again 
> if we want to, e.g., use named connections in half a year; this can be 
> implemented orthogonally in another vocab. Transclusions are special 
> because they cannot be implemented in an orthogonal vocabulary; this is 
> generally the case for RDF vocabs (if you design a vocab that places 
> some node into some context, you need to take transclusion into account).
 
> - I have always assumed that there'll be a single vocabulary for 
> "placing something on a spatial canvas," and that it's up to the user to 
> use this general tool for mindmapping, text editing, note taking, or 
> whatever. I still think there should be a single vocabulary allowing for 
> all that, and at least some of these uses definitely use transclusions.

Are you defining now "fenfire's general structure"?

 Canvas --contains--> Coordinates --transcludes--> CloneContentNode 
                         -x,y

   -Matti






reply via email to

[Prev in Thread] Current Thread [Next in Thread]