Search the web
Sign In
New User? Sign Up
Hyperworlds
? Already a member? Sign in to Yahoo!

Yahoo! Groups Tips

Did you know...
Want to share photos of your group with the world? Add a group photo to Flickr.

Best of Y! Groups

   Check them out and nominate your group.
Having problems with message search? Fill out this form to ensure your group is one of the first to be migrated to the new message search system.

Messages

  Messages Help
Advanced
PakNet   Message List  
Reply | Forward Message #51 of 63 |
There is a new project called PakNet. I think it might have a good chance of succeeding, because it is based on a database, as is token_word. It looks like the people involved know their stuff. Below is an abstract and a longer description:

PakNet Abstract



Intro


PakNet is an attempt at a xanalogical structure for the web. It sits on top of HTTP and an SQL database, and stores and serves xanalogically-structured linked documents.
"Xanalogical" is a term meaning "structured in a Xanadu-like manner", where Xanadu is representative of Project Xanadu, an attempt at a hyperlinked structure of documents with the following attributes:
  • Each document has a number of accessible versions, where every version is immutable.
  • Links go both backwards and forwards.
  • Links connect sections of a document on both ends.
  • Transclusions (sections of documents that are embedded into a point in another document, like an include or import statement) are present and possible
  • Documents are not indexed as hierarchical files and folders.
  • Links and transclusions are not embedded in documents, but are instead separate and outside of the documents they connect.
In addition to these attributes, the PakNet project adds the following:
  • Documents may be of any data type (even binary types), and links and transclusions maintain their effect as connection sections of all documents, regardless of data type.
  • Links and transclusions link to a specific version of a document. This allows for documents to maintain their connections in everchanging versions without destroying dependencies. When a version is not specified, it links to the newest.
  • Links between pieces of program data make the execution of a specific section trigger the execution of the section it forward-links to. Transclusions act as includes.
  • Documents may link to external, off-server documents by using URIs/URLs.
  • Sections may be transcluded from earlier versions, and this should be the default system for editing a version.
This forms the definition of a Portable Xanalogical (or Extended Xanalogical) structure, which is the basis for PakNet.



Subprojects


The following subprojects are currently planned:
  • the PakNet CGI scripts: scripts to query the database and serve up data in the PXMF format, usually under the XTP protocol.
  • PXMF: "Portable Xanalogical Modeling Format". An xml-based format for representing documents and links on the PakNet. Used for serving up data from PakNet CGI scripts, and for small-scale, single-user personal databases.
  • XTP: "Xanalogical Transfer Protocol". A slight modification to HTTP wherein the HTTP server routes requests only to the PakNet CGI script in use. May be easily emulated on traditional HTTP servers by redirecting port 1960 (or for XTPS, 1984) to the PakNet CGI script.
  • MemergE: a simple backend for a PakNet browser. Consists primarily of backend code linking together the programming languages Python, Lua, and Tcl (mostly Python and Lua, since Tcl is already linked to Python) so that they can transfer information effectively and run interpreted code from each other. The UI and most other code (plugins, a good portion of backend code, etc.) is stored on the PakNet itself and transcluded into the browser to make it more operational, so MemergE itself is simply a link between the three languages, a cache, a code loader, and library plugins (easily updated) for PXMF and XTP.
  • XTP-Route: some code for gateways that host multiple XTP servers, so that they can make it seem as if all data is stored on a single database, whereas it is actually distributed redundantly across multiple. Should work with VPNs/tunneling as well.



The big picture


In case you aren't seeing the true purpose of this project, here it is:
The World Wide Web, innovative as it is, is primarily a botched implementation of the principles of Xanadu. These same mistakes are what keeps it from gaining (forgive me for the cliche) true Web-2.0 status. This project is designed to change the Web in the same way that the Web changed the internet -- perhaps the same way that networking changed computing, even. Ambitious? Yes. However, with good strong design and a lot of practicality, we hope we can pull it off. However, we need your help. We need coders to work on the massive web-based, versioned, scripted, communal API that forms the backbone of most PakNet operations. You do not need to join the project to do this -- all you need to do is know a language and edit documents. We need donations from time to time, to build and maintain the network. Even if you can do neither, you can still help by using the PakNet -- learn to use it properly, then teach others. It's up to YOU to help the PakNet grow.




Version history:



The PakNet Project :: Revisited
[by john]

Intro:

This document is meant to address some of the more detailed elements of the PakNet implementation, and give some organizational details as well.

What is the PakNet?

PakNet is an attempt at a xanalogical structure for the web. It sits on top of HTTP and an SQL database, and stores and serves xanalogically-structured linked documents.

Xanalogical as in Project Xanadu (http://xanadu.com ). Somewhat like this Token_Word system, albeit more encompassing in scope. It is aimed at supporting all media, and being pluggable, with nearly all of its base source code on the PakNet to begin with. Transclusions would work like includes, but across versions, with all versions existing. Transpointers (or hyperlinks) in code would be capable of initiating the execution of the source that it links to.

Currently, the PakNet is planned to have support for the existing languages Python, Tcl, and Lua, and possibly the partially implemented language Longenis. It should also support markup data in XML, SMIL, and modified HTML (though it is suggested that all data be in XML with linkable CSS, which would aid in later data mining and intelligent agent efforts as well as be more in tune with the Xanalogical ideals).

It should implement transclusions and transpointers in the usual fashion, aside from the fact that the data is stored in an SQL-type database instead of using enfilades and tumblers and such -- a simplified system, to be sure, but also much easier and more practical to work with.

This is an attempt at implementing the full range of the Xanadu ideals in the long run, but making the system practical and usable enough that the average person is likely to use it -- in fact, to replace the web with this better version by first introducing it as an upper layer, then slowly enticing more and more to transition to it, while simultaneously making the transition very simple and the gain much more great.

The subprojects:

The PakNet project is broken into a number of subprojects, which are centered on the PakNet page athttp://paknet.twilightparadox.com andhttp://sourceforge.net/projects/paknet . There is also a sister project, the Sakura HyperMedia Desktop project, which is now rewriting all their past code in order to create a Knowledge Navigator -type desktop environment centered around the PakNet.

Subprojects

The following subprojects are currently planned:



* the PakNet CGI scripts: scripts to query the database and serve up data in the PXMF format, usually under the XTP protocol. The first of these scripts is already mostly written. It is a short Python script that serves up the PXMF-based representation of a document stored on an SQL server, using the PyDB interface. The document is stored on the database in roughly the same structure as defines the PXMF document, seen below. It is therefore quite trivial to make this CGI script serve and post documents. The only nontrivial part is finding all transclusions, as recursive processes in CGI could be dangerous. Therefore, we must implement a system for doing this iteratively, while wasting as little memory as possible. Links must also be served up this way, but only in the immediate document being downloaded (that is, until the next gen interface is created, which will be a ways down the road).

* PXMF: "Portable Xanalogical Modeling Format". An xml-based format for representing documents and links on the PakNet. Used for serving up data from PakNet CGI scripts, and for small-scale, single-user personal databases. The schema is already done for this format, and is available from the PakNet PXMF documentation (http://paknet.twilightparadox.com/docs/pxmf.txt ). It is simple, and can be extensible in the same ways as XML can be. We are looking forward to perhaps adding user, transcopyright, and comment fields to documents in post-0.01 revisions of the PXMF standard/schema, but for now it suits our needs. We chose XML as the encoding system because it's extensible, general-purpose, and powerful. Also, many XML parsers already exist, and writing new ones is trivial. We also were hoping, even though we are planning to make our own, full-featured browser for the PakNet (MemergE), that we could simply add a stylesheet (CSS perhaps, or XSLT) and have the documents display somewhat in normal browsers, with a limited amount of interactivity. This would ease the transition between WWW and Web-2.0 (PakNet) systems: the users would be able to access the data through their browsers, so they would see what they're missing and get the full PakNet browsers eventually -- like someone trying a game demo that they love, and realizing it's crippled, but that the real thing is available and free/opensource.

* XTP: "Xanalogical Transfer Protocol". A slight modification to HTTP wherein the HTTP server routes requests only to the PakNet CGI script in use. May be easily emulated on traditional HTTP servers by redirecting port 1960 (or for XTPS, 1984) to the PakNet CGI script. This is really a trivial procedure, because all that needs to be done to make a full XTP server is to hack the HTTP server code so that it only serves the output from the PakNet CGI script. This eliminates directory hierarchies and file names, while maintaining a sense that one can simply type in a URL that "looks right" and get to somewhere that makes sense -- rather like someone today browsing WikiPedia: she types in "en.wikipedia.com/wiki/Xanadu" and gets a Khan reference, so she clicks on "disambiguation" and finds the link to the "Project Xanadu" entry. URLs should looks something like this: xtp://paknet.twilightparadox.com/stack=welcome&card=new+user for the newest version, or xtp://paknet.twilightparadox.com/stack=welcom&card=new+user&version=00:00:00:00-02-12-2008 for the version made closest to midnight on my 20th birthday (2/12/2008). To post, one might say xtp://paknet.twilightparadox.com/stack=apple&card=knowledge+navigator&action=post , where the proper data will be passed through normal HTTP operations. XTP is equivalent to HTTP on port 1960, and XTPS is equivalent to HTTPS on port 1984.

* MemergE: a simple backend for a PakNet browser. Consists primarily of backend code linking together the programming languages Python, Lua, and Tcl (mostly Python and Lua, since Tcl is already linked to Python) so that they can transfer information effectively and run interpreted code from each other. The UI and most other code (plugins, a good portion of backend code, etc.) is stored on the PakNet itself and transcluded into the browser to make it more operational, so MemergE itself is simply a link between the three languages, a cache, a code loader, and library plugins (easily updated) for PXMF and XTP. MemergE will load one of a number of UI systems from the PakNet itself, in addition to all plugin code and a good portion of the actual backend code, and will cache the newest versions accessed of any documents, unless one tells it explicitly to destroy the cache. Even if the majority of the cache is destroyed, it should take an extra (or separate) step to destroy the cached versions of the UI and other programs that are loaded as plugins to MemergE itself. The newest stable version of each "official" (i.e., communally supported) plugin should be linked to in an easily accessible document in the main PakNet (though other servers should exist -- especially mirrors -- the main PakNet server should retain some importance as it is where most of the core software is stored), and the MemergE code should be able to load at will certain sections of the code in that document. It should support embedding of Lua, Tcl, Python, SMIL, XML (with CSS or XSLT), simplified HTML, the Open Document Format, plaintext (ASCII and Unicode), OGG (Vorbis and Theora), Matroska, AVI, MPEG (mp2, mp3, mp4, mpg), WAV, AIFF, VRML, and any other formats are welcome to be added. We are embedding pieces of AMBULANT (an SMIL player), LuaSocket, Lua-GD, IUP (a portable UI library for Lua), Lua-X, and other libraries into the MemergE executables, which are primarily a combination of the above made accessible from an interlinking communication and command system between Lua, Python, and Tcl.

* XTP-Route: some code for gateways that host multiple XTP servers, so that they can make it seem as if all data is stored on a single database, whereas it is actually distributed redundantly across multiple. Should work with VPNs/tunneling as well. This is not yet implemented or planned to any degree.

Other interfaces than the traditional one that is the default for MemergE will likely exist soon, namely one somewhat similar to Fenfire except in full 3.5D with floating orbs (representing stacks) containing smaller orbs (cards) connected both in the micro and macrocosm by neon threads (links and transclusions) which one follows, an attempt to make the PakNet both faster to navigate and more visually appealing.

The big picture

In case you aren't seeing the true purpose of this project, here it is:

The World Wide Web, innovative as it is, is primarily a botched implementation of the principles of Xanadu. These same mistakes are what keeps it from gaining (forgive me for the cliche) true Web-2.0 status. This project is designed to change the Web in the same way that the Web changed the internet -- perhaps the same way that networking changed computing, even. Ambitious? Yes. However, with good strong design and a lot of practicality, we hope we can pull it off. However, we need your help. We need coders to work on the massive web-based, versioned, scripted, communal API that forms the backbone of most PakNet operations. You do not need to join the project to do this -- all you need to do is know a language and edit documents. We need donations from time to time, to build and maintain the network. Even if you can do neither, you can still help by using the PakNet -- learn to use it properly, then teach others. It's up to YOU to help the PakNet grow.

Note:

The current leading members of the PakNet development team are:

- John Ohno: Project admin, designer, and lead developer. Also the writer of this and other documents.

- Jonathan Kopetz: Project admin, developer, "voice of reason". Wrote the schema for PXMF and has been the main bounce-off guy for most of the included concepts.

- Nicole Sestito: Tester, developer. She will be our test subject for ergonomics, ease of use, and effectiveness for a beginner. She is smart, but is not familiar with the goings-on in development, and does not code to any great degree. She will be learning how to code in the PakNet environment first, as a test of how usable the environment itself is. She does a small bit of coding in Lua at the moment, which is how we tested whether she would be able to learn easily enough.

The PakNet project is centered athttp://paknet.twilightparadox.com . Please check it out if you're interested.


Everything comes at a price. If you're not paying it, someone else is.
Jack Seay - hyperworlds.org - replacing the web





Sat Sep 30, 2006 5:06 pm

jackdseay
Offline Offline
Send Email Send Email

Forward
Message #51 of 63 |
Expand Messages Author Sort by Date

There is a new project called PakNet. I think it might have a good chance of succeeding, because it is based on a database, as is token_word. It looks like the...
Jack Seay
jackdseay
Offline Send Email
Sep 30, 2006
5:20 pm
Advanced

Copyright © 2009 Yahoo! Inc. All rights reserved.
Privacy Policy - Terms of Service - Guidelines - Help