----- Original Message -----
From: Jason Cunliffe <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Tuesday, January 29, 2002 12:48 AM
Subject: [REBOL] PURE DATA calling => Re: Implementing the associative model
of data (tm) in Rebol


> Hi Andrew,
>
> I am delighted that you are exploring the associative model :))
> It looks beautiful and quite rebolistic.
>
> Allow me some associative digression..
>
> Over the weekend I was playing around with, and thinking again about PD
> [Pure Data] and how it relates to REBOL.
> I'll try to describe a few key points. It is an interactive system which
> must be played with hands on to appreciate properly. There are some great
> docs and sites.
>
> PURE DATA [SGI, Unix, Linux, Win32, now MacOSX{beta}]
> http://www.pure-data.org/
>
> PD is toolkit for building virtual instruments. It has a long heritage
going
> back to wonderful work done at IRCAM in Paris which became a product
called
> MAX. It is suitable for real-time signal processing of audio [DSP] and
> control data [MIDI and more] with extensions to interface with external
> physical devices like sensors, joysticks, etc. There are some remarkable
> extensions for digital media. The best of these is perhaps GEM which
> provides openGL interfacing for 3D with texture mapping , video etc.
>
> ONE of the truly brilliant things about PD is the clear distinctions
between
> its layers.
> The bottom layer is c or c++ libraries and glue. This is the component
> engine. The main user interface is a visual
> programming environment based on a patchbay paradigm, combining symbols,
> widgets and connectors, Most widgets are elegant minimal boxes where one
can
> enter key words and then a sequence of parameters. Punctuation is notably
> absent, like rebol.
>
> Users drag/draw instances from menu onto a palette. Then type in key words
> to instantiate them add params and click on the input and outputs to route
> messages. The routing is displayed via simple rubber band lines. It is a
> potent illusion supported be incredibly talented programming from a
creative
> experimental community writing both high and low level applications. The
> whole is very modular and has some interesting parallels to the REBOL.
>
> When a collection of PureData 'patches' are saved as .pd files, they are
> simply text file descriptions for all widgets, object names, params and
> connections. Thus all pd applications [not components] including its own
> docs are simple.pd text files. People are free to look at these or ignore
> them as they see fit, but they are only one layer down. [see an example
> below]. The beauty is PD patches can be combined just as REBOL scripts
allow
> one to build up or break down a situations modularity rapidly. PD is
> designed for 'live' performances. One can toggle instantly between
> real-time/runtime and edit modes.
>
> What's this got to do with REBOL or associative data modeling?
>
> 1. PD patch descriptions files are as rebol and rebol/view scripts are to
> the underlying engine.
>
> 2. PD can be regarded as a visual programming interface for associative
> modeling. One might immediately use it to create interactive interface for
> modeling associative data problems and patterns.
>
> 3. It offers a modeling paradigm which REBOL might emulate wonderfully,
> using REBOL/View to create its own native toolkit.
>
> PD offers great graphic simplicity because the interactive graphic needs
for
> patching are relatively simple types:
> i/o sliders, number, buttons, text, labels, dials, connectors, visible,
> invisible. Since a large part of PD is for processing MIDI is all geared
for
> parsing streams of chunked data message blocks.
>
> 4. The 'connection' tuples of your associative data example are just like
> the connection tuples of PD patches [see the X connect lines at the end of
> the "hello.pd"example]
>
> ./Jason
>
> documentation
> http://www.crca.ucsd.edu/~msp/Pd_documentation/index.htm
> Miller Puckette [main author]
> http://crca.ucsd.edu/~msp/
> GEM
> http://www.danks.org/mark/GEM/
>
>
>
> here's a trivial example from the docs: "hello.pd"
> =================================================
> #N canvas 9 21 600 496 12;
> #X msg 204 32 hello world;
> #X obj 204 105 print;
> #X floatatom 321 32 0 0 0;
> #X text 215 48 message;
> #X text 319 49 atom;
> #X text 201 123 object;
> #X text 53 150 There are four types of text objects in Pd: message \, atom
> \, object \, and comment.;
> #X text 54 187 Messages respond to mouse clicks by sending their contents
to
> one or more destinations. The usual destination is the "outlet" at the
lower
> left corner of the box.;
> #X text 55 239 Click the message box and watch the terminal window Pd was
> started in. You should see the "hello world" message appear.;
> #X text 55 278 Atoms respond to "Dragging" up and down with the mouse \,
by
> changing their contents and sending the result out their outlets. You can
> also type at an atom after clicking on it \; hit "enter" to output the
> number or click anywhere else to cancel.;
> #X text 52 359 Objects \, like "print" above \, may have all sorts of
> functions depending on what's typed into them. The "print" object simply
> prints out every message it receives.;
> #X text 53 415 To get help on an object \, right-click it. You should see
a
> "help window" for the object.;
> #X text 354 470 updated for release 0.33;
> #X connect 0 0 1 0;
> #X connect 2 0 1 0;
>
>
> ----- Original Message -----
> From: "Andrew Martin" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Tuesday, January 29, 2002 12:58 AM
> Subject: [REBOL] Implementing the associative model of data (tm) in Rebol
>
>
> > So I had a look at the white paper and implemented the flight example in
> > Rebol. Here's the contents of %Flight.r:
> >
> > "Flight BA1234"
> > "London Heathrow"
> > 12/Aug/98
> > 10:25
> > "arrived at"
> > "on"
> > "at"
> > [1 5 2]
> > [8 6 3]
> > [9 7 4]
> > "Concorde"
> > [10 6 11]
> >
> > Basically a block of Rebol values; string!, date!, time! and block!. The
> > associations are the three integers in blocks at the end. Then I wrote
> this
> > to join up the associations:
> >
> > Database: load %Flight.r
> >
> > SVO: function [Database [block!] Item] [Subject Verb Object] [
> >     either block? Item [
> >         Subject: Item/1
> >         Verb: Item/2
> >         Object: Item/3
> >         Subject: SVO Database Database/:Subject
> >         Verb: SVO Database Database/:Verb
> >         Object: SVO Database Database/:Object
> >         reduce [Subject Verb Object]
> >         ] [
> >         Item
> >         ]
> >     ]
> >
> > foreach Item Database [
> >     print SVO Database Item
> >     ]
> >
> > And running the above script gives the output:
> >
> > Flight BA1234
> > London Heathrow
> > 12-Aug-1998
> > 10:25
> > arrived at
> > on
> > at
> > Flight BA1234 arrived at London Heathrow
> > Flight BA1234 arrived at London Heathrow on 12-Aug-1998
> > Flight BA1234 arrived at London Heathrow on 12-Aug-1998 at 10:25
> > Concorde
> > Flight BA1234 arrived at London Heathrow on 12-Aug-1998 at 10:25 on
> Concorde
> > >>
> >
> > Note that I've added the "on Concorde" part to the example.
> >
> > I'll think I'll work up some more magic stuff and thread my HTML dialect
> > through it, so I can create sentences (SVOs) through a browser
> > interactively.
> >
> > Andrew Martin
> > ICQ: 26227169 http://valley.150m.com/
>
>
> --
> To unsubscribe from this list, please send an email to
> [EMAIL PROTECTED] with "unsubscribe" in the
> subject, without the quotes.
>
>

-- 
To unsubscribe from this list, please send an email to
[EMAIL PROTECTED] with "unsubscribe" in the 
subject, without the quotes.

Reply via email to