[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Comments on NODAL paper, 14 June 2001 version
In message <Pine.LNX.4.33.0108091119420.1197-100000@hugh.burdenslanding.org>, E
ugene Eric Kim writes:
>On Thu, 9 Aug 2001, Lee Iverson wrote:
>
>> I do agree in the general principle. What I have found though, is
>> that unless you get into the technical aspects (at least at some
>> level), a big part of your audience doesn't *get* the power of the
>> approach. It is very hard to sell a "we want to solve everybodies
>> problems with computer-mediated collaboration" without a fairly
>> thorough description of how you plan to do that.
>
>I agree with this. What I'm saying is that I think that the first part of
>the white paper could serve as an overarching white paper for a lot of the
>things people in this group are trying to do, not just as a white paper
>for NODAL. (01)
Certainly true. (02)
>Let me try a better example than the one I presented originally. Consider
>a file containing some Java code. Here, you could define each function as
>a node, or if you want to get even more granular than that, you could
>define every semantic element as a node.
>
>Now suppose you have a comment block at the beginning of each file. This
>comment block contains mostly the same text across all files -- copyright
>info, author name and e-mail, etc. -- but there is some unique content as
>well -- file name, revision information, etc.
>
>Suppose you want to transclude the common information in all of your
>source code files. How do you do this? (03)
Well, transclusion is just the act of creating a node reference. If
we're talking about a string of text to be included in a comment
block, then that one is easy to do. (04)
>If a comment block represents one node, then you have to use a range
>operator to specify the piece of the comment you want to use. So the
>address for the transclusion might look like: node(NID)[range]. The
>problem is, now you're depending on a path-style address, which is not
>guaranteed to always point at the same semantic element. In other words,
>if I add or subtract text from the comment, the range operator no longer
>points to the same range of text.
>
>The question boils down to, how granular do you make the nodes? The data
>model defines that granularity, but to support other types of actions, you
>need to support alternative data models. (05)
The data model is defined such that every *collection* (and NODAL
supports three types of collections) is a node. So, a comment block
in the Java program data model could be defined as a sequence of
strings. Reusing such a sequence (or the comment block itself) would
be pretty simple. I guess part of the issue is how do you design data
models to promote component reuse? I do think that there *is* a
potential issue as to how easy it might be to build data models that
are difficult to tease apart. (06)
>A bidirectional mapping from one data model to another will probably work,
>but the concept scares me a bit. Can you always guarantee an isomorphic
>transformation between data models? What are the performance implications
>of doing this? (07)
Another possibility for handling this (and it came up when I discussed
this with Doug on Tuesday) would be the liberal use of "path
functions" (a la XPath). It would almost certainly be possible to
define functions (pluggable and well-defined) to access the "third
paragraph" and "second sentence" of a text block. That way we
wouldn't have to worry about data model mapping (yet at least). (08)
-------------------------------------------------------------------------------
Lee Iverson SRI International
leei@ai.sri.com 333 Ravenswood Ave., Menlo Park CA 94025
http://www.ai.sri.com/~leei/ (650) 859-3307 (09)