"A core point of the W3C Character Model is the understanding that with increased integration and data transfer on the Web, more and more the Web as a whole has to be seen as a single application."
From Jon Udell's Three Faces of XML in Zope, a talk given on Tue Jan 25 2000, as the keynote for the Zope track of the 8th International Python Conference.
"One of the nicest things about the Web, however, is that browsers aren't the only things that can call on the services offered by websites. Programs written in any URL-aware language -- including Python, Perl, JavaScript, and Java -- can "call" these Web services too. To these programs, the Web looks like a library of callable components. What's more, it's very easy to build new Web services out of these existing components, by combining them in novel ways. I think of this as the Web's analog to the UNIX pipeline."
From the w3c Web Services Architecture Requirements:
A Web service is a software application identified by a URI, whose interfaces and bindings are capable of being defined, described, and discovered as XML artifacts. A Web service supports direct interactions with other software agents using XML based messages exchanged via internet-based protocols.
(see also: DMOZ Web Services Category)
The port to GNU/Linux/Apache/PHP/PostgreSQL is almost complete.
The next step?
eXtensible Resource Management (XRM)
Using XML, RDF, and RSS, our new approach will syndicate, aggregate, and semantically and ontologically relate database, filesystem, and internet resources.
Multiple file upload and download possible approaches.
- Zip up and downloads
WebDAV - Apple's iCal can be served using WebDAV.
PHP also has such an iCal application. - .Net and IIS 6.0 with new programmatic site maintenance capabilities
"Accessing Server Resources with WebDAV
Distributed Authoring and Versioning (WebDAV), a powerful extension of the HTTP 1.1 protocol, exposes Web file storage media-such as a local file system-over an HTTP connection. WebDAV holds great promise for making the Web into seamless, collaborative authoring environment. With the implementation of WebDAV in IIS versions 5.1 and 6.0, you can enable remote authors to create, delete, move, search, or apply attributes to files and directories on your Web server. "
But ...
"Sounds great, right? Well, if all you are interested in is uploading content, WebDAV is great. It solves many problems. However, if you need file uploading within your web application, WebDAV will do nothing for you. Like HTTP PUT, the WebDAV verbs are interpreted by the server, not your web application. You need to work at the ISAPI filter level to access the WebDAV verbs and interpret the content in your application." - Apache has mod_dav by default.
"From: Alan Knowles (alan@akbkhome.com)
Subject: Re: [PHP-QA] PHP 4.3 DAV Requests Please Help
Newsgroups: php.qa
Date: 2002-11-08 07:10:10 PST
mmh, I would say php-dev (cc'ed) to php-general may have been a better place to ask..
anyway since theres only about 2 or 3 of us using it..
The main difference with allow_webdav_methods is that $REQUEST['REQUEST_METHOD'] can return PUT, PROPFIND etc. along with this, setting "always_populate_raw_post_data = On", will set the global var $HTTP_RAW_POST_DATA, from which you can read the XML that webdav clients send.
There is a PEAR pacakge that implements alot of this.
Regards
Alan"
Though Hartmut Holzgraefe notes that:
"now you can do readfile("php://input");" - Alan has also tried to build a webdav interface in XUL.
- mod_dav_psql is a webdav interface to PostGreSQL databases.
"Since IE provides web folders functionality in Windoze ..."
"Zope already does this by exposing ZODB via WebDAV. If only they could finish adding the V (Versioning) part in their DAV support... " - Also ...
Interfaces for other languages include:
* Perl: - HTTP::DAV (http://www.webdav.org/perldav/).
* Python: - davlib.py (http://www.lyra.org/greg/python/davlib.py).
* TCL: - TclDAV (http://comanche.com.dtu.dk/tcldav/ - Down at the time of this writing).
* Java: - Dav4J (http://www.alphaworks.ibm.com/tech/DAV4J/)."
- Pages - Drafts, directory permissions.
- Reminders.
- Logged changes for efficient upgrade/backup/mirroring.
- POM - skyMail (imap supported), ToDo, Calendaring, Contacts, super browser.
- Mailing lists/integrate with pages commentary. A programmatic interface to the mail server will allow mail account maintenance, with a mailbox for each user, page, and list - pages and lists will be able to send and receive instructions via email.
- DHTML interface.
- Shop - product_user, shipping method - UPS USPS XML, card security code for credit card, address verification by verisign and by USPS, account maintenance.
- Portals - Community skyPortal, personal skyPortal (full portrait of user/community interaction).
- Tasks.
- Events - listings feed.
- Pages - preview of footer, optional positioning and styling of footer elements (already partially supported via css + cbe/dhtmlinc.html), optional header elements.
- Study threaded discussions and other slashcode elements. Study listings.
- Interface redesign: MenuFrame wall-to-wall (also possibly MessageFrame?), Service menu and Context menu (that say their names instead of "Choose"), possibly a subcontext menu, icons for skyBug and skyRocket alongside clone window, help icon "?". Home icon instead of logo? Greater interaction from calendar with contents pages. Timelines controls and file archive controls (all controls) in separate frame from display or contents frame. Is there memory leakage associated with loading and unloading data and code in client side javascript?
- Study http request from JavaScript on the client side, returning the response to a variable, useful for code- and data-on-demand. Write Java JSHTTP.class
- Rewrite CalendarBuilder Daylight-time functions for the server side, callable via XML.
- New dimension menu in an interface's controls for switching between Hierarchical, Categorical, Chronological, and Authorial views of, for instance, a file listing.
- New links in footer - "Email this page" and "Print this page".
- New page alternate version? - "Printable".
- Study making pages noticable by other users: Page notification mailing list. Latest page updates report - as RSS feed on organizational skyPage. Shared bookmarks.
- Study turning threaded discussions into listings.
- Everything should be publishable as RDF, then an interpreter should translate to HTML after the fact, in whatever mode is specified (browse, edit, etc.) (an RDF skyWriter to edit either files, or database records that generate RDF). This leads to the use of RDF as a constructor script for data objects, which may be self-categorizing (or at least categorize each other). Storing RDF in a database.
- Automate administration of modules and navigation.
- Study container/contained categorization through RDF. Investigate Ontology Inference Layer/Interchange Language (OIL) for ontology/taxonomy of resources.
- catalog category hyperlog hypergory hypertree hypertory taxonomy ontology
- Searching the database, restricted to category, search metadata only, data (names and descriptions) only, using filters
- Research XML standards for Calendar/Schedule like iCal.

