Mailing List Archive: 49091 messages
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

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