Existing work

semantic web index, and CherryPy as the web app basis

Semantic web search (the one I was telling you about): sindice.com

Gets data from a variety of sources, a lot from DBpedia it looks like.

In the recent practical semantic web book I’ve been reading, they use CherryPy for the full-stack real world SemWeb application at the end of the book. They explain this choice as “on account of its simplicity. Many web framworks include ORM mappings and tools for working with relational databases, which we don’t need here.”

That’s pretty much all I need, just the middle of the MVC stack, or, well, what Django calls the view, too. Web page generation could be anything, like XSLT, or billions of other choices. Scala, XQuery, Javascript 1.6, and lots of other languages have built-in XML literals, too.

It just seems a lot of full frameworks have assumptions about the data being stored in relational table form throughout.

Another framework, HAppS, uses in-memory Haskell data structures, serialized to disk for persistence, and doesn’t come with any templating, they say just to use some AJAX through JQuery or template with XSLT or something.

reply from Eric

Hi Leif, Ya, CherryPy is super simple. It’s used in TiddlyWeb and is part of Turbogears 1.1 (2.0 uses paste/pylons), and seems very stable, although it’s not getting updates lately.

Werkzeug is another interesting tool, with an emphasis on decoupling, which is seeing alot of uptake. I would actually like to try working with it, because I’ve seen such gorgeous looking apps come out of it, there must be something going on :). Also it is actively-supported by a company which is good as long as said company exists. Also it has a really nice interactive debugger

What description languages/ontologies are you thinking to use, and how can they be worked with in Python? If you are sticking with pure RDF (rather than OWL) there is RDFLib and Redland’s Python SWIG bindings. It seems like this could be a pretty appealing set of constraints, since you get FOAF and friends of FOAF (FAFOFOAF), and can extend them, and the libs provide nice high-level interfaces (rather than working say with an XML lib on an XML serialization)

Serialized data could be versioned using a Mercurial repository. Others have already done the work of sorting out locking issues etc.