VO as an XML authoring tool

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

VO as an XML authoring tool

Steve Litt
Here's what I'm thinking, and I bet Dillon Jones agrees with me: VO would make
an excellent XML authoring tool for many types of XML.

XML can represent almost any kind of data, but the tags and end tags aren't
conducive to human thought, nor are they quick to type.

The outline representation of VO IS easy for humans to grok and fast to type.

For attributes of nodes, you simply give the node a child called attr, and
below attr you put all attributes as key=value pairs. To accommodate large
pieces of data that would overrun a line, you can have file references.

The DTD or schema could be represented in an outline form, I would imagine.

Once again, the main benefits of using VO to author XML are speed and
intuitiveness.

SteveT

Steve Litt
Founder and acting president: GoLUG
http://www.golug.org
_______________________________________________
VimOutliner mailing list
[hidden email]
http://www.lists.vimoutliner.org/mailman/listinfo/vimoutliner
Reply | Threaded
Open this post in threaded view
|

Re: VO as an XML authoring tool

Noel Henson
On Thursday 28 July 2005 07:21 am, Steve Litt wrote:

> Here's what I'm thinking, and I bet Dillon Jones agrees with me: VO
> would make an excellent XML authoring tool for many types of XML.
>
> XML can represent almost any kind of data, but the tags and end tags
> aren't conducive to human thought, nor are they quick to type.
>
> The outline representation of VO IS easy for humans to grok and fast to
> type.
>
> For attributes of nodes, you simply give the node a child called attr,
> and below attr you put all attributes as key=value pairs. To accommodate
> large pieces of data that would overrun a line, you can have file
> references.
>
> The DTD or schema could be represented in an outline form, I would
> imagine.
>
> Once again, the main benefits of using VO to author XML are speed and
> intuitiveness.
>

That's not a bad idea. Can you provide an example?

--

------------------------------------------------------------------
  Noel Henson
  www.noels-lab.com Chips, firmware and embedded systems
  www.vimoutliner.org Work fast. Think well.

_______________________________________________
VimOutliner mailing list
[hidden email]
http://www.lists.vimoutliner.org/mailman/listinfo/vimoutliner
Reply | Threaded
Open this post in threaded view
|

Re: VO as an XML authoring tool

Steve Litt
On Thursday 28 July 2005 10:45 am, Noel Henson wrote:

> On Thursday 28 July 2005 07:21 am, Steve Litt wrote:
> > Here's what I'm thinking, and I bet Dillon Jones agrees with me: VO
> > would make an excellent XML authoring tool for many types of XML.
> >
> > XML can represent almost any kind of data, but the tags and end tags
> > aren't conducive to human thought, nor are they quick to type.
> >
> > The outline representation of VO IS easy for humans to grok and fast to
> > type.
> >
> > For attributes of nodes, you simply give the node a child called attr,
> > and below attr you put all attributes as key=value pairs. To accommodate
> > large pieces of data that would overrun a line, you can have file
> > references.
> >
> > The DTD or schema could be represented in an outline form, I would
> > imagine.
> >
> > Once again, the main benefits of using VO to author XML are speed and
> > intuitiveness.
>
> That's not a bad idea. Can you provide an example?

Yes and no. I have no actual XML example yet, but if you look at EMDL, that's
basically what I mean except EMDL uses "param" instead of "attr", EMDL uses a
colon between key and value of attributes instead of an equal sign, and
without going into detail, EMDL places some attributes in the text of a node.

EMDL was created to be the fastest possible way to create a menu system, and
hence has some shortcuts that wouldn't generalize to XML, but viewing the an
EMDL file you can see what I mean.

http://www.troubleshooters.com/projects/emdl/

Below my sig is an emdl file that actually produces a useful menu:

STeveT

A:::Main Menu
Internet ::: Internet menu
        IPCop
                param
                        C: xterm -e ipcop.sh
                        B: 1
        Restart menu:::Restart Menu
                Named
                        param
                                C: sudo /etc/rc.d/init.d/named restart
                Samba
                        param
                                C: sudo /etc/rc.d/init.d/smb restart
                ^Quit
        Misc:::Miscelleneous Internet Menu
                xchat
                        param
                                C: xchat
                                D: ~
                                B: 1
                vncviewer
                        param
                                C: vncviewer 192.168.100.5
                                D: ~
                                S: 1
                Zope menu ::: Zope Menu
                        Start Zope
                                param
                                        D: /usr/local/dc/Zope-2.5.1-linux2-x86
                                        C: su -c "./start" zope
                        Terminate (stop) Zope
                                param
                                        D: /usr/local/dc/Zope-2.5.1-linux2-x86
                                        C: su -c "./stop" zope
                                        S: 1
                        Password change
                                param
                                        D: /usr/local/dc/Zope-2.5.1-linux2-x86
                                        C: su -c "bin/python ./zpasswd.py inituser" zope
                                        S: 1
                        ^Quit
                ^Quit
        Email:::Email Menu
                Fetchmail:::Fetchmail Menu
                        Persistent Fetchmail Menu
                                param
                                        C: xterm -e ./umenu.pl aief
                                        D: ~/.umenu/program
                                        B: 1
                        Daemon
                                param
                                        C: fetchmail -d60 -m "/usr/bin/procmail -d %T"
                                        D: ~
                                        S: 1
                        Wake up daemon
                                param
                                        C: fetchmail
                                        D: ~
                                        S: 1
                        Kill daemon
                                param
                                        C: fetchmail --quit
                                        D: ~
                                        S: 1
                        One time fetchmail
                                param
                                        C: fetchmail -d0
                                        D: ~
                                        S: 1
                        ^Quit
                Kmail
                        param
                                C: kmail
                                B: 1
                                D: ~
                DCOP:::DCOP Menu
                        Persistent DCOP Menu
                                param
                                        C: xterm -e ./umenu.pl aid
                                        B: 1
                                        D: ~/.umenu/program
                        Start DCOP
                                param
                                        C: dcopserver --nosid --suicide
                                        D: ~
                                        S: 1
                        No Suicide DCOP start
                                param
                                        C: dcopserver --nosid
                                        D: ~
                                        S: 1
                        Murder (kill) DCOP
                                param
                                        C: kill `ps ax | grep  dcopserver | grep -v grep | cut  -b 1-6`
                                        D: ~
                                        S: 1
                        ID (process) of DCOP
                                param
                                        C: ps ax | grep  dcopserver | grep -v grep | cut  -b 1-6
                                        D: ~
                                        S: 1
                        Kill kmail
                                param
                                        C: kill `ps ax | grep  kmail | grep -v grep | cut  -b 1-6`
                                        D: ~
                                        S: 1
                        ^Quit
                fEtchmail configuration
                        param
                                C: python /usr/bin/fetchmailconf
                                D: ~
                Spamassassin:::Spamassassin Menu
                        Learn spam
                                param
                                        C: sudo /usr/bin/sa-learn --spam --dir ~/Mail/spam/cur
                                        S: 1
                        Ham learning
                                param
                                        C: sudo /usr/bin/sa-learn --ham --dir ~/Mail/ham/cur
                                        S: 1
                        ^Quit
                ^Quit
        Transfer files:::File Transfer Menu
                Gftp
                        param
                                C: gftp
                                B: 1
                                D: /data/websites
                ^Quit
        Browsers:::Browser Menu
                Firebird
                        param
                                C: MozillaFirebird
                                B: 1
                                D: /data
                Konqueror
                        param
                                C: konqueror
                                B: 1
                                D: /data
                Mozilla
                        param
                                C: /usr/bin/mozilla
                                B: 1
                                D: /data
                Galeon
                        param
                                C: galeon
                                B: 1
                                D: /data
                Nautilus
                        param
                                C: nautilus
                                B: 1
                                D: /data
                netscaPe
                        param
                                C: netscape
                                B: 1
                                D: /data
                ^Quit
        ^Quit
Outlining ::: Outlining Menu
        Master Outline
                param
                        C: gvim /data/otl/master.otl
                        D: /data
        Todo List
                param
                        C: gvim /data/otl/todo/todo.otl
                        D: /data/otl/todo
        Phone lists
                param
                        C: gvim master.otl
                        D: /data/phonelists
        Rebuild Outline Links
                param
                        C: /data/otl/otlbin/vo_maketags.pl /data/otl/master.otl | less
        ^Quit
Configuration ::: Configuration Menu
        LinuxConf
                param
                        C: linuxconf
                        B: 1
        Icewm Config ::: Icewm Config Menu
                Persistent Icewm menu
                        param
                                C: xterm -e ./umenu.pl aci
                                D: ~/.umenu/program
                                B: 1
                Icepref
                        param
                                C: python /usr/bin/icepref
                                B: 1
                eDit Preferences file
                        param
                                D: ~/.icewm
                                C: gvim preferences
                Edit icewm keys
                        param
                                D: ~/.icewm
                                C: gvim keys
                Append example to keys file
                        param
                                D: ~/.icewm
                                C: echo 'key "Ctrl+9" rxvt -fg yellow -e /d/bats/mm_startmenu' >> keys
                ^Quit
        Cups Printing tool
                param
                        C: konqueror http://localhost:631
                        B: 1
        Drakes ::: Drakes Menu
                drakconf
                        param
                                C: nohup /usr/bin/drakconf &
                printerdrake
                        param
                                C: /usr/bin/printerdrake
                                B: 1
                rpmdrake (add software)
                        param
                                C: /usr/bin/rpmdrake
                                B: 1
                rpmdrake-reMove (remove software)
                        param
                                C: /usr/bin/rpmdrake-remove
                                B: 1
                scannerdrake
                        param
                                C: /usr/bin/scannerdrake
                                B: 1
                XFdrake
                        param
                                C: su - -c "/usr/sbin/XFdrake"
                Other Drakes ::: Other Drake Menu
                        adduserdrake
                                param
                                        C: /usr/bin/adduserdrake
                                        B: 1
                        diskdrake
                                param
                                        C: /usr/bin/diskdrake
                                        B: 1
                        harddrake2
                                param
                                        C: /usr/bin/harddrake2
                                        B: 1
                        keyboarddrake
                                param
                                        C: /usr/bin/keyboarddrake
                                        B: 1
                        lIvedrake
                                param
                                        C: /usr/bin/livedrake
                                        B: 1
                        localedrake
                                param
                                        C: /usr/bin/localedrake
                                        B: 1
                        loGdrake
                                param
                                        C: /usr/bin/logdrake
                                        B: 1
                        mousedrake
                                param
                                        C: /usr/bin/mousedrake
                                        B: 1
                        userdrake.real
                                param
                                        C: /usr/bin/userdrake.real
                                        B: 1
                        | userdrake
                                param
                                        C: /usr/bin/userdrake
                                        B: 1
                        meNudrake
                                param
                                        C: /usr/bin/menudrake
                                        B: 1
                        packdrake
                                param
                                        C: /usr/bin/packdrake
                                        B: 1
                        Z: MandrakeUpdate
                                param
                                        C: /usr/bin/MandrakeUpdate
                                        B: 1
                        Yet other drakes ::: Yet other drake menu
                                MandrakeUpdate
                                        param
                                                C: /usr/bin/MandrakeUpdate
                                                B: 1
                                lsNetdrake
                                        param
                                                C: /usr/bin/lsnetdrake
                                                B: 1
                                lsPcidrake
                                        param
                                                C: /usr/bin/lspcidrake
                                                B: 1
                                ^Quit
                        ^Quit
                ^Quit
        Package Management ::: Package Management Menu
                Install software
                        param
                                C: rpmdrake
                                B: 1
                Remove software
                        param
                                C: rpmdrake-remove
                                B: 1
                ^Quit
        MenuDrake (graphical menu)
                param
                        C: menudrake
                        B: 1
        Umenu ::: Umenu Config Menu
                Persistent Umenu menu
                        param
                                C: xterm -e ./umenu.pl acu
                                D: $UMENU_PROGRAMDIR
                                B: 1
                Maintain a.emdl file
                        param
                                C: gvim $EMDL_DIRECTORY/a.emdl
                                S: 1
                Error report on a.emdl file
                        param
                                D: $EMDL_DIRECTORY
                                C: ./emdlinit.sh ./emdlcompile.sh ./a.emdl | grep ERROR
                                S: 1
                Warning report on a.emdl file
                        param
                                D: $EMDL_DIRECTORY
                                C: ./emdlinit.sh ./emdlcompile.sh ./a.emdl | grep WARNING
                                S: 1
                Compile a.emdl file
                        param
                                D: $EMDL_DIRECTORY
                                C: ./emdlinit.sh ./emdlcompile.sh ./a.emdl
                                S: 1
                Transfer a*mnu files
                        param
                                D: $EMDL_DIRECTORY
                                C: ./emdlinit.sh ./emdltransfer.sh a
                                S: 1
                Standard Umenu (x)
                        param
                                D: ~/.umenu/program
                                P: ~/.umenu/program
                                C: ./umenu x
                                S: 1
                Vi in menudir
                        param
                                D: $UMENU_MENUDIR
                                C: gvim
                icewm keys configuration ::: Icewm keys config menu
                        edit icewm keys
                                param
                                        D: ~/.icewm
                                        C: gvim keys
                        Append example
                                param
                                        D: ~/.icewm
                                        C: echo 'key "Ctrl+9" rxvt -fg yellow -e /d/bats/mm_startmenu' >> keys
                        ^Quit
                ^Quit
        ^Quit
Litt's Pet Menu:::Litt's Pet Menu
        Scanning::: Scanning Menu
                File scan
                        param
                                C: xscanimage
                                D: ~
                                B: 1
                ^Quit
        Content Editors ::: Content Editor Menu
                Vim (graphical)
                        param
                                C: gvim
                                D: ~
                vI (Console)
                        param
                                C: vim
                                D: ~
                Graphics ::: Graphics Menu
                        Gimp
                                param
                                        C: gimp
                                        D: ~
                                        B: 1
                        Dia
                                param
                                        C: dia
                                        D: ~
                                        B: 1
                        Xfig
                                param
                                        C: xfig
                                        D: ~
                                        B: 1
                        ^Quit
                Wordprocessors ::: Word Processor Menu
                        LyX
                                param
                                        C: lyx
                                        B: 1
                                        D: /data
                        Docs for LyX:::LyX Doc Menu
                                Persistent LyX doc menu
                                        param
                                                C: xterm -e ./umenu.pl alcwd
                                                D: ~/.umenu/program
                                                B: 1
                                latex2e.dvi
                                        param
                                                D: /usr/share/texmf/doc/latex/general
                                                C: nohup dvisee latex2e.dvi &
                                                S: 1
                                essential.dvi
                                        param
                                                D: /usr/share/texmf/doc/latex/general
                                                C: nohup dvisee essential.dvi &
                                                S: 1
                                guide.dvi
                                        param
                                                D: /usr/share/texmf/doc/latex/general
                                                C: nohup dvisee guide.dvi &
                                                S: 1
                                symbols.dvi
                                        param
                                                D: /usr/share/texmf/doc/latex/general
                                                C: nohup dvisee symbols.dvi &
                                                S: 1
                                a.ps
                                        param
                                                D: /usr/share/texmf/doc/latex/general
                                                C: gv a.ps
                                                B: 1
                                lsHort.dvi
                                        param
                                                D: /usr/share/texmf/doc/latex/general
                                                C: nohup dvisee lshort.dvi &
                                                S: 1
                                ^Quit
                        OpenOffice
                                param
                                        C: ooffice
                                        B: 1
                                        D: /data
                        Abiword
                                param
                                        C: abiword
                                        B: 1
                                        D: /data
                        Kword
                                param
                                        C: kword
                                        B: 1
                                        D: /data
                        Character mapper (gnome)
                                params
                                        C: gcharmap
                                        D: ~
                        ^Quit
                Spreadsheets ::: Spreadsheet Menu
                        Gnumeric
                                param
                                        C: gnumeric
                                        B: 1
                                        D: /data
                        Kspread
                                param
                                        C: kspread
                                        B: 1
                                        D: /data
                        ^Quit
                Presentations ::: Presentation Menu
                        OOImpress
                                param
                                        C: ooimpress
                                        B: 1
                                        D: /data
                        Powerpoint
                                param
                                        C: /usr/local/cxoffice/bin/wine "C:~WB~Program Files~WB~Microsoft
Office~WB~Office~WB~powerpnt.exe" ~WS~n
                                        B: 1
                                        D: /data
                        ^Quit
                Calendars ::: Calendars Menu
                        Monthly calendar
                                param
                                        C: gnomecal
                                        B: 1
                        ^Quit
                ^Quit
        File Managers ::: File Managers Menu
                XWC
                        param
                                C: xwc
                                B: 1
                                D: /data
                Konqueror
                        param
                                C: konqueror
                                B: 1
                                D: /data
                mc
                        param
                                C: mc
                                D: /data
                Nautilus
                        param
                                C: nautilus
                                B: 1
                                D: /data
                ^Quit
        Terminals ::: Terminal Menu
                rxvt
                        param
                                C: rxvt
                                B: 1
                                D: ~
                xterm
                        param
                                C: xterm &
                                D: ~
                aterm
                        param
                                C: aterm
                                B: 1
                                D: ~
                Eterm
                        param
                                C: Eterm
                                B: 1
                                D: ~
                Gnome-terminal
                        param
                                C: gnome-terminal
                                B: 1
                                D: ~
                Konsole
                        param
                                C: konsole
                                B: 1
                                D: ~
                Bash Screen
                        param
                                C: bash -c "screen"
                                B: 1
                                D: ~
                                S: 1
                Screen
                        param
                                C: aterm -e screen
                                B: 1
                                D: ~
                Prompt (bash)
                        param
                                C: /bin/bash
                                D: ~
                                S: 1
                No hack (restricted) shell (bash)
                        param
                                C: /bin/bash -r
                                D: ~
                                S: 1
                VNC (to Windows box)
                        param
                                D: ~
                                B: 1
                                C: rxvt -e vnc7
                ^Quit
        Backup ::: Backup Menu
                Xcdroast
                        param
                                C: xcdroast
                                B: 1
                                D: /data
                ^Quit
        Utilities ::: Utilities Menu
                Umenu (persistent)
                        param
                                D: ~/.umenu/program
                                C: xterm -e ./umenu.pl a &
                Speed up Mouse
                        param
                                C: xset m 3 2
                                D: /usr/local/bin
                Keyrepeat rate::: Keyrepeat Rate Menu
                        Lightning
                                param
                                        C: xset r rate 300 200
                                        D: /usr/local/bin
                        Fast
                                param
                                        C: xset r rate 400 80
                                        D: /usr/local/bin
                        Medium
                                param
                                        C: xset r rate 400 40
                                        D: /usr/local/bin
                        Slow
                                param
                                        C: xset r rate 500 10
                                        D: /usr/local/bin
                        Turtle
                                param
                                        C: xset r rate 800 3
                                        D: /usr/local/bin
                        Off
                                param
                                        C: xset r off
                                        D: /usr/local/bin
                        ^Quit
                sloW keyrepeat rate
                        param
                                C: xset r rate 300 200
                                D: /usr/local/bin
                Finding Utilities ::: Finding Utilities Menu
                        Filename grep
                                param
                                        C: find %b%Starting directory <start with slash>%% -type f | grep -l
%a%Partial filename text%% | less
                        Text grep (text in file)
                                param
                                        C: find %b%Starting directory <start with slash>%% -type f | xargs grep
-i -l %a%Text to look for%% | less
                        Locate command
                                param
                                        C: locate %a%Part of filename to be located%% | less
                        Rebuild Locate Database
                                param
                                        C: sudo updatedb
                                        S:1
                        wHich command (first instance on path)
                                param
                                        C: which %1%Command to find%%
                                        S:1
                        Whoami
                                param
                                        C:whoami
                                        S:1
                        Uptime
                                param
                                        C:uptime
                                        S:1
                        ^Quit
                Process Utilities ::: Process Utilities Menu
                        Kill graphical app
                                param
                                        C: xkill
                                        B: 1
                        Top
                                param
                                        C: top
                        Gkrellm
                                param
                                        C: gkrellm
                                        D: ~
                                        B: 1
                        System Guard
                                param
                                        C: ksysguard
                                        B: 1
                        ps ax
                                param
                                        C: ps ax | less
                        Find certain processes
                                param
                                        C: ps ax | grep -i %1%Search term%% | less
                        Down the system (shutdown)
                                param
                                        C: su -c "/sbin/shutdown -h now"
                        ^Quit
                Calculators ::: Calculators Menu
                        Kcalc
                                param
                                        C: kcalc
                                        B: 1
                        Graphical calculator
                                param
                                        C: gcalc
                                        B: 1
                        bc
                                param
                                        C: bc -l
                        Instructions for bc
                                param
                                        C: man bc
                        Reverse Polish calculator
                                param
                                        C: dc
                        dc (reverse polish) instructions
                                param
                                        C: man dc
                        ^Quit
                Video Utilities ::: Video Utilities Menu
                        F8 15 bit
                                param
                                        C:  xinit  /usr/X11R6/bin/icewm  -- :1  -depth 15
                                        B: 1
                        ksnapshot
                                param
                                        C:  ksnapshot
                                        D: /data
                                        B: 1
                        ^Quit
                RPM utilities ::: RPM Utility menu
                        Make file
                                param
                                        D: ~
                                        C: rpm -qa --queryformat "%{size} %{name} %{summary} \n" > junk.jnk
                        ^Quit
                Icewm
                        param
                                C: xinit /usr/X11R6/bin/icewm -- :0
                                D: /data
                                S: 1
                ^Quit
               
        Misc ::: Misc Menu
                ^Quit
        ^Quit
Entertainment Menu:::Entertainment Menu
        Sound Menu:::Sound Menu
                aumix
                        param
                                C: aumix
                                D: /data/music
                                B: 1
                xmms
                        param
                                C: xmms
                                D: /data/music
                                B: 1
                timidity
                        param
                                D: /data/music
                                C: timidity -ig ./*.mid
                                B: 1
                realplayer
                        param
                                C: realplayer
                                D: /data/music
                                B: 1
                ^Quit
        Games Menu:::Games Menu
                Foul Eggs
                        param
                                C: kfouleggs
                                B: 1
                Tetris
                        param
                                C: ksirtet
                                B: 1
                Chess ::: Chess menu
                        One player against the machine
                                param
                                        D: ~
                                        C: xboard
                        Two players
                                param
                                        D: ~
                                        C: xboard -ncp
                        ^Quit
                ^Quit
        ^Quit
^eXit


--
Steve Litt
Founder and acting president: GoLUG
http://www.golug.org
_______________________________________________
VimOutliner mailing list
[hidden email]
http://www.lists.vimoutliner.org/mailman/listinfo/vimoutliner
Reply | Threaded
Open this post in threaded view
|

Re: VO as an XML authoring tool

Steve Litt
In reply to this post by Noel Henson
On Thursday 28 July 2005 10:45 am, Noel Henson wrote:

> On Thursday 28 July 2005 07:21 am, Steve Litt wrote:
> > Here's what I'm thinking, and I bet Dillon Jones agrees with me: VO
> > would make an excellent XML authoring tool for many types of XML.
> >
> > XML can represent almost any kind of data, but the tags and end tags
> > aren't conducive to human thought, nor are they quick to type.
> >
> > The outline representation of VO IS easy for humans to grok and fast to
> > type.
> >
> > For attributes of nodes, you simply give the node a child called attr,
> > and below attr you put all attributes as key=value pairs. To accommodate
> > large pieces of data that would overrun a line, you can have file
> > references.
> >
> > The DTD or schema could be represented in an outline form, I would
> > imagine.
> >
> > Once again, the main benefits of using VO to author XML are speed and
> > intuitiveness.
>
> That's not a bad idea. Can you provide an example?

I sort of did in another email. Meanwhile, the outline to XML converter is
most trivial using Node.pm or Node.py:

Instantiate a parser to build a node tree
Instantiate a Walker
        On "attr" nodes only:
                foreach child
                        curNode->getParent()->setAttribute(keyvalue pair of the child)
                curNode->deleteSelf()
Instantiate another walker
        On each node
                On first entry
                        Write the start tag
                        Write the content
                On final exit
                        Write the end tag
The-the-the-that's all folks!

SteveT

Steve Litt
Founder and acting president: GoLUG
http://www.golug.org
_______________________________________________
VimOutliner mailing list
[hidden email]
http://www.lists.vimoutliner.org/mailman/listinfo/vimoutliner