Hopefully this gives you a general idea of how ScrollServer works. You'll have to read up on ScrollKeeper as well to understand how the two work together. If you would like to help develop ScrollServer, there are some bugs listed on the SourceForge project page you could look into, or write me if you want to develop a new feature. Most of the current SourceForge bugs are really features and other enhancements. I have a zero bug policy. My policy is to always fix bugs before developing any features. If you are interested in coding C, then ScrollKeeper would appreciate your help and deserves your support. ScrollServer and ScrollKeeper have the potential to become a complete distributed information database based on the latest XML technologies for creating richly linked data. There are some large hurdles to that accomplishment, particularly the fact that these technologies are relatively new and so ScrollServer is on the cutting edge. But that is where the fun is. It is only recently that Linux documentation has started to move seriously into XML, allowing projects such as this to exist. Thanks to all the hard work people have put into creating good documentation for Linux. Hopefully ScrollServer will make it easier than ever to share and access that documentation. david@lupercalia.net XML Standards ------------- One goal of ScrollServer is to provide a completely standards-based implementation to further the use of standards on the network. It is built using the most recent W3C recommendations. Please read them if you want to hack any of these technologies: DocBook 4.1 OMF (Opensource Meta-data Framework, based on Dublin Core) RDF (W3C Recommendation) XMLBase (W3C Recommendation) XLink (W3C Recommendation) XPointer (W3C Last Call Working Draft) XML Topic Maps XSLT Server Process -------------- The server process is entirely in Python and makes use of the xml libraries. All html files are generated using xsl stylesheets (XSLT) and formatting is performed with a css stylesheet. There is a single stylesheet right now, but I want to allow the user to select the stylesheet they prefer. The HTTP server is based on BaseHTTPServer. The server process in ScrollServer will also be a client process, performing document discovery in remote ScrollServers, essentially merging the contents of your local ScrollKeeper database with those located on remote machines and allowing your document collection to be shared with others. You could publish a single document, if you author a HOWTO, or you could publish an entire collection like the LDP. Document Processing ------------------- Internal pages are generated from xsl stylesheets. The documentation itself is generated from DocBook SGML and XML sources and xsl stylesheets, but eventually it will support man pages, info pages, and other formats. Documents in html are served, but they look different from the DocBook documents because we don't generate them ourselves. There is no navigation bar on the top, for example, and they don't use my stylesheets. There is a bit of ad-hackery involved in serving documents that are physically distributed through a common uri scheme so they appear to be part of a single tree. There is no support for processing documents that are stored remotely. That's a good todo item for somebody. It's pretty trivial using urllib. Unfortunately, ScrollKeeper doesn't yet support them. Searching --------- There is currently no search functionality. I could use one of the existing html searching engines, and might have to to support html sources, but more powerful searching should be possible someday using a DocBook aware search engine. A huge problem in all help systems is finding the needle in the haystack that will answer your problem. So, the search engine has to have a big focus to make ScrollServer an indispensable tool on your desktop. I want to look into using XQuery for remote document queries, but it is a new proposal and so it is changing rapidly. Perhaps it is best to put that off for a bit until it stabilizes. RDF might be part of a good solution. Other Possibilities ------------------- Just about any other web based service you can imagine could be implemented and integrated into ScrollServer, including message boards on the various topics. XLink provides for creating links from document A to document B from within Document C, along with many other powerful ways of associating data. A user could conceivably write a `post-it' style notee on their document, and share that note with other readers of the document, where it could be accepted or rejected or edited by others. There are many other possibilities as well. It could be possible to even implement something aking to Wiki functionality, allowing readers of some online documents to edit them and share their improvements. If I decide to go with a URN based scheme for these additional services, they could even be implemented as plugins. Who knows how much of this will ever really happen. It all depends on interest and help from others. But I hope you get the idea that eventually I want to see ScrollServer provide higher level capabilities than your standard help browser. I'd like to implement the concepts and technologies in what is called the `Semantic Net'. Someday, when the web is XML based, ScrollServer will be in a really good place to take advantage of it.