XML.com Embedded Markup Considered Harmful [Oct. 02, 1997]
[1/22] from: jason::cunliffe::verizon::net at: 9-Oct-2002 13:56
Embedded Markup Considered Harmful
by Theodor Holm Nelson
October 02, 1997
http://www.xml.com/pub/a/w3j/s3.nelson.html
[2/22] from: al:bri:xtra at: 11-Oct-2002 17:35
> Embedded Markup Considered Harmful
> by Theodor Holm Nelson
> October 02, 1997
>
> http://www.xml.com/pub/a/w3j/s3.nelson.html
And, if you don't understand ZigZag, have a look at:
http://www.ecs.soton.ac.uk/~lac/zigzag/
It's got some demos; which are a _bit_ easier to understand. Don't ask me;
I'm still thinking about it!
Andrew Martin
ICQ: 26227169 http://valley.150m.com/
[3/22] from: jason:cunliffe:verizon at: 11-Oct-2002 1:36
Andrew Martin wrote:
> And, if you don't understand ZigZag, have a look at:
>
> http://www.ecs.soton.ac.uk/~lac/zigzag/
>
> It's got some demos; which are a _bit_ easier to understand. Don't ask me;
> I'm still thinking about it!
Yeah I look at ZigZag about every six months... I'm still thinking on it too :-)
thanks
./Jason
[4/22] from: robert:muench:robertmuench at: 11-Oct-2002 16:24
> -----Original Message-----
> From: [rebol-bounce--rebol--com] [mailto:[rebol-bounce--rebol--com]]
<<quoted lines omitted: 4>>
> Harmful [Oct. 02, 1997]
> It's got some demos; which are a _bit_ easier to understand. Don't ask
me;
> I'm still thinking about it!
Hi, oh yes Ted Neslson's Xanadu stuff. Quite old but gives a good new
POV if you find a way through the web-site and document mess that won't
confuse you to much ;-).
I'm thinking about this stuff and merging it into my rebol-framework
approach. It's not that hard as the idea is quite simple (at least what
I did understood so far):
1. You have a set of nodes (or cells)
2. You have some qualified connections between nodes (all nodes that are
surnames are connected)
Now you can view at your data a long a qualified connection line
(dimension): All surnames AS vertical ordered list.
Walking through dimensions is most like traversing a graph only build
from a specific node type (all surname nodes). The idea is now not to
store the type of a node with the node-object (as I do it at the moment
too) but instead to specify the type of a node by including it into the
surname dimension. I like the idea because now a node can be part of
several dimensions. What's important is that we are talking about
navigation nodes (not mandatory data nodes).
Why would you need this?
You now could have the same node that is part of a project dimension, a
person dimension a rate dimension and a date dimension. The node would
have associated data-nodes for the different dimensions representing the
Bos. With the use of a navigation-node you now can create quite complex
queries like: give me all nodes that are part of the project, person,
rate and date dimension. If you have these nodes, you could create an
invoice from the data-nodes ;-).
I hope you understand what I mean and I'm mostly sure it's not exactly
what zigzag offers but hey it's a first step. Robert
[5/22] from: kemp:extelligence at: 11-Oct-2002 12:28
I too have a major problem with HTML and XML heirarchical structure - it's
not the way most things work.
What we are doing is cramming arbitarily-structured information into a
predefined heirarchy. What we should be doing is assigning appropriate
structures to the information as required by (a) the intrinsic structure of
the content, (b) the relationship between the information and the
application, and ((c) the structure of the application itself. All 3 are
different and should be separable, and NONE of them are always heirarchical.
Kemp
[6/22] from: petr:krenzelok:trz:cz at: 11-Oct-2002 18:27
Jason Cunliffe wrote:
>Andrew Martin wrote:
>>And, if you don't understand ZigZag, have a look at:
<<quoted lines omitted: 6>>
>>
>Yeah I look at ZigZag about every six months... I'm still thinking on it too :-)
I looked at it too (only a very quick review though), and it looks too
academic to me :-) How can it be practically usefull? Too much new terms
around last months - RFM, Naked Objects, Associative data models, etc.,
but how is it all usefull? Practicall example, etc.?
-pekr-
[7/22] from: reffy:ulrich at: 11-Oct-2002 14:02
I vote for Kemp's thoughts.
HTML and XML are merely contrived formats (wrappers).
There are other ways to represent the data (streams).
The elemental datum should somehow maintained in their elemental state.
Attributes associated to them should be tied to, but separate from the datum.
The moment you slide the datum into one of these wrappers, all the inherent problems
surface. I like to think of these wrappers as a final product typically used for display.
Some people think the wrappered(datum) should be elemental elements and stored as such.
Sure makes it difficult to navigate/edit/maintain the elemental datum unless you buy
into
the wrappered stuff deeply. They complicate simple ordinary needs incredibly. And
they place ensuing requirements upon all interfacing systems by their presence.
Just my 2cent worth (not worth much)(these days).
Dick
[8/22] from: andreas:bolka:gmx at: 11-Oct-2002 22:01
Friday, October 11, 2002, 5:27:37 PM, Petr wrote:
> I looked at it too (only a very quick review though), and it looks
> too academic to me :-) How can it be practically usefull? Too much
> new terms around last months - RFM, Naked Objects, Associative data
> models, etc., but how is it all usefull? Practicall example, etc.?
hmm, an associative data model is not that academic after all:
Memory that is addressed by content rather than by address; content
addressable is often used synonomously. An Associative Memory permits
its users to specify part of a pattern or key and retrieve the values
associated with that pattern.
- http://c2.com/cgi/wiki?AssociativeMemory
--
Best regards,
Andreas mailto:[andreas--bolka--gmx--net]
[9/22] from: reffy:ulrich at: 12-Oct-2002 8:33
You must forgive me Joel,
I was simply poking fun at your comparison of Rebol with Basic.
Average expression
is how I do it in my own language. Nothing wrong with a 3rd point of view, right?
[10/22] from: reffy:ulrich at: 12-Oct-2002 8:40
Creating a Tinderbox like capability with Rebol would be a wonderful thing to do!!
Has anyone done this?
[11/22] from: joel:neely:fedex at: 12-Oct-2002 3:59
Hi, Dick,
[reffy--ulrich--net] wrote:
> You must forgive me Joel,
>
None needed! I had typed my comments very late at night, and wanted
to be sure I hadn't rambled on so much that I'd obscured my point.
-jn-
--
To me, boxing is like ballet, except that there's no music, no
choreography, and the dancers hit each other.
-- Jack Handy
joel~dot~neely~FIX~PUNCTUATION~at~fedex~dot~com
[12/22] from: robert:muench:robertmuench at: 12-Oct-2002 17:30
> -----Original Message-----
> From: [rebol-bounce--rebol--com] [mailto:[rebol-bounce--rebol--com]]
<<quoted lines omitted: 5>>
> Robert, I am delighted you are trying to integrate these into
> your framework design :-) I like your node description too..
Hi, thanks. We will see how far I can make it.
> I am still not up-to-speed on the framework, so apologize for
> my lack of feedback. Please don't equate silence with any
> lack of interest. Just a bit overwhelmed. with my own local work.
Ok. At least it's good to know that some ppl track the idea. I'm going
to expand the idea step by step.
> Does anyone here know of 'Tinderbox'
Never heard about it. Thanks for the information I have a look at it
too. Robert
[13/22] from: al:bri:xtra at: 13-Oct-2002 9:26
Dick wrote:
> I prefer:
>
> Average expressionwhichyieldsanarrayofdata
>From my box of tricks:
Average: func [
"Averages the values in the Block."
Block [block!] "Block of values."
] [
divide accumulate 0 Block :+ length? Block
]
:)
Andrew Martin
ICQ: 26227169 http://valley.150m.com/
[14/22] from: reffy:ulrich at: 12-Oct-2002 16:29
Average ofascalar
==yields the scalar
Average ofavector
==yields a scalar which is the average
Average ofamatrix
==yields a vector each number of which is average of a row of the matrix
Average[coordinate] arbritraryarray
==yields the averages of the slices along the specified coordinate
bags of tricks get tricky in a hurry
[15/22] from: brett:codeconscious at: 13-Oct-2002 14:22
Dick, looks to me like you are designing a dialect (language with a specific
focus), one that perhaps takes inspiration from APL.
Regards,
Brett.
----- Original Message -----
From: <[reffy--ulrich--net]>
To: <[rebol-list--rebol--com]>
Sent: Sunday, October 13, 2002 10:29 AM
Subject: [REBOL] Re: XML.com Embedded Markup Considered Harmful [Oct. 02,
1997]
[16/22] from: reffy:ulrich at: 13-Oct-2002 7:06
If I only had Rebol's graphics, communications, database, and who knows what other capabilities
!! ORRRRRR, if only Rebol had generalized arrays ??
I originally chirped in on the XML comments ...
Seems that there should be an XML_Display, HTML_Display and other such ways of taking
elemental values and wrapping them up.
XML_Display (25 87 20) (date) (2 2 ReshapeOf 4 Random 1000) (UCase "Hello World")
<VECTOR LENGTH=4>
<VECTOR LENGTH=3>
<SCALAR DATATYPE="NUMERIC">25</SCALAR>
<SCALAR DATATYPE="NUMERIC">87</SCALAR>
<SCALAR DATATYPE="NUMERIC">20</SCALAR>
</VECTOR>
<STRING>Sun Oct 13 07:00:24 2002</STRING>
<ARRAY RANK=2 SHAPE=2,2>
<SCALAR DATATYPE="NUMERIC">12</SCALAR>
<SCALAR DATATYPE="NUMERIC">987</SCALAR>
<SCALAR DATATYPE="NUMERIC">82</SCALAR>
<SCALAR DATATYPE="NUMERIC">132</SCALAR>
</ARRAY>
<STRING>HELLO WORLD</STRING>
</VECTOR>
> Dick, looks to me like you are designing a dialect (language with a specific
> focus), one that perhaps takes inspiration from APL.
>
> Regards,
> Brett.
You have a good eye, Brett :-)
[17/22] from: joel:neely:fedex at: 13-Oct-2002 11:04
Hi, Dick,
Two thoughts, one a direct reply and one more deferred...
[reffy--ulrich--net] wrote:
> I originally chirped in on the XML comments ...
> Seems that there should be an XML_Display...
<<quoted lines omitted: 15>>
> <STRING>HELLO WORLD</STRING>
> </VECTOR>
1) The REBOL-to-XML issue seems simple; consider this fragment ...
8<----------
r2x: make object! [
buff: {}
padl: 0
v: none
emit: func [sb [string! block!]] [
insert
insert
insert/dup tail buff { } padl
either block? sb [rejoin sb] [sb]
newline
]
render-item: func [v [any-type!] /local t] [
emit [{<} t: type? v {>} v {</} t {>}]
]
v: none
rule: [
any [
into [
(
emit {<block>}
padl: padl + 1
)
rule
(
padl: padl - 1
emit {</block>}
)
]
|
set v any-type! (render-item v)
]
]
render: func [b [block!]] [
buff: copy {}
padl: 0
parse/all reduce [b] rule
buff
]
]
8<----------
... which behaves as follows:
>> reffy: [
[ [25 87 20]
[ 13-Oct-2002
[ [ [1 3 5] [2 4 6] ]
[ "That's all, folks!"
[ ]
== [
[25 87 20]
13-Oct-2002
[[1 3 5] [2 4 6]]
"That's all, folks!"
]
>> print r2x/render reffy
<block>
<block>
<integer>25</integer>
<integer>87</integer>
<integer>20</integer>
</block>
<date>13-Oct-2002</date>
<block>
<block>
<integer>1</integer>
<integer>3</integer>
<integer>5</integer>
</block>
<block>
<integer>2</integer>
<integer>4</integer>
<integer>6</integer>
</block>
</block>
<string>That's all, folks!</string>
</block>
Adding "length" attribute/value data to the <block> tag is left as
an
exercise to the reader. (Mostly because it wasn't immediately
obvious
how to do so, as SET before INTO doesn't seem to do what I expected,
and I didn't have time for another research project. Perhaps
someone
else on the list has a clue... ;-)
2) Back to the discussion of "arbitrary" choices in representation,
it's not clear to me that the concept of "inherent" structure
and
representation has any meaning apart from convention. Take the case
of a two-dimensional matrix. FORTRAN and C store such structures in
orthogonal layouts (FORTRAN varies the left subscript most rapidly,
and C varies the right subscript most rapidly), while both REBOL and
Perl would use nested one-dimensional structures (REBOL blocks or
Perl arrays). Even my use of language betrays me if I talk about
rows
and "columns" of the matrix, which terms imply some sort of
typographic layout.
As another example consider a REBOL block containing student data:
e.g., an ID, a name, and a phone number for each student. One
person
might immediately think of something like this:
[
[123 "Alex Ant" #555-1111]
[234 "Betty Bee" #555-2222]
[345 "Cliff Cricket" #555-3333]
...
]
while another would think of this:
[
[123 234 345 ...]
["Alex Ant" "Betty Bee" "Cliff Cricket" ...]
[{555-1111} {555-2222} {555-3333} ...]
]
and yet another would envision:
[
"123" ["Alex Ant" [555 1111]]
"234" ["Betty Bee" [555 2222]]
"345" ["Cliff Cricket" [555 3333]]
...
]
Clearly each of these serves *some* purposes well and others poorly;
the choice ultimately is entangled with one's intended processing
(or one's habits and assumptions).
I'm not trying to beat a dead horse here, but rather just musing
quasi-philosophically about the process by which we programmers make
our design decisions, and how many of those decisions are so deeply
unconscious that we aren't even aware that there are alternatives.
EWD told a wonderful story about giving an individualized test where
the student is presented with a problem and is expected to "think
aloud" while designing a solution on the board in the professor's
presence. The problem he described involves achieving a specified
condition in a single pass across a one-dimensional array, where the
obvious solution would sweep back-and-forth multiple times. He had
been accustomed (over many uses of this problem) to seeing the
students end up with some processing upon elements in "increasing"
(left-to-right) positional order.
He was surprised by a student from Israel, who developed an equally
valid solution which swept the array in *decreasing* (right-to-left)
positional order. He wondered how much growing up reading r-to-l
Hebrew instead of a l-to-r European language influenced the way the
student conceptualized the problem.
Makes one wonder, doesn't it?!
-jn-
--
Intel's MMX commercials clearly demonstrate that they're "staying
alive" by continuing to try to re-use ideas from the 70's!
-- Anonymous
joel>FIX>PUNCTUATION>dot>neely>at>fedex>dot>com
[18/22] from: reffy:ulrich at: 13-Oct-2002 17:06
Chirping about XML ...
I suppose the overall point is that XML in and of itself is not a solution to any problem.
Takes two to tango so to speak .. one to send it in a way that the other can use and
make sense of.
Obviously the XML I emitted in the prior example would be useful for reinstantiating
the original objects internally in my language. Might not be useful in that format to
anyone else unless they want to write an application to interpret the XML and do something
with it?
Chirp chirp chirp ...
Dick
[19/22] from: jason:cunliffe:verizon at: 13-Oct-2002 19:25
Joel Neely wrote:
> EWD told a wonderful story about giving an individualized test where
> the student is presented with a problem and is expected to "think
<<quoted lines omitted: 11>>
> student conceptualized the problem.
> Makes one wonder, doesn't it?!
Yes. Great story Joel :-)
I collect this stuff. Any idea of an exact source?
thanks
./Jason
[20/22] from: nitsch-lists:netcologne at: 14-Oct-2002 4:39
Hi Joel,
Am Sonntag, 13. Oktober 2002 18:04 schrieb Joel Neely:
[snip]
> Adding "length" attribute/value data to the <block> tag is left as
> an
<<quoted lines omitted: 4>>
> someone
> else on the list has a clue... ;-)
.. here: block! :here into .. | something else ;)
[snip]
> -jn-
Volker
[21/22] from: al:bri:xtra at: 14-Oct-2002 21:25
Joel wrote:
> Adding "length" attribute/value data to the <block> tag is left as an
exercise to the reader.
[
Rebol []
XML: func [Block [block!]] [
ML Map Block func [Value] [
reduce any [
if block? Value [
['block/length length? Value XML Value]
]
[to-word form type? Value form Value]
]
]
]
probe XML reduce [
[25 87 20] 13/Oct/2002 [[1 3 5] [2 4 6]]
"That's all, folks!"
]
halt
]
Which generates:
{<block
length="3"><integer>25</integer><integer>87</integer><integer>20</integer></
block><
date>13-Oct-2002</date><block length="2"><block
length="3"><integer>1</integer><integer>3</
integer><integer>5</integer></block><block
length="3"><integer>2</integer><integer>4</integ
er><integer>6</integer></block></block><string>That's all, folks!</string>}
Watch out for line breaks!
I didn't worry about nice padding and I haven't checked for "<" and ">" and
&
values. I've left object! values as an exercise for the reader, as this
depends more upon the receiver. :)
Andrew Martin
ICQ: 26227169 http://valley.150m.com/
[22/22] from: steven:white:ci:bloomington:mn:us at: 14-Oct-2002 12:06
You could try:
http://www.cs.utexas.edu/users/EWD/welcome.html
Yes. Great story Joel :-)
I collect this stuff. Any idea of an exact source?
thanks
./Jason
--
To unsubscribe from this list, please send an email to
[rebol-request--rebol--com] with "unsubscribe" in the
subject, without the quotes.
Steven White
City of Bloomington
2215 W Old Shakopee Rd
Bloomington MN 55431-3096
USA
952-563-4882 (voice)
952-563-4672 (fax)
[swhite--ci--bloomington--mn--us]
Notes
- Quoted lines have been omitted from some messages.
View the message alone to see the lines that have been omitted