« February 2012 | Main | May 2012 »
2012-04-10
Time to revisit Wilbur, part 2
I am happy to say that after I blogged about a Wilbur "redux", several people have already contacted me about the idea.
Now I have been thinking mostly what existing software I could use in the reimplementation. Last few years, many good quality libraries for Common Lisp have emerged. Here's my current thinking about the most critical bits:
- HTTP client: Drakma
- HTTP server: Hunchentoot (the Common Lisp version of OINK, on top of Wilbur, uses Portable Allegroserve, but I think we need to let go of that now)
- XML parser: several choices are available (CL-XML, S-XML, CXML), I have to figure out which one would make sense; I just need a "SAX-like" API for the RDF parser (which will be recycled from the Wilbur2 implementation)
- SQL connectivity: CL-SQL
- HTML generation: possibly CL-WHO, but the functionality I implemented for OINK earlier is actually pretty good and could be reused
Many other libraries also under consideration (URIs/URLs, EXIF metadata extraction, JSON, etc.).
On a slightly different topic, someone suggested I should consider reimplementing Wilbur in Clojure. Certainly then the availability of libraries would not be a problem.
Posted by ora at 20:24 | Comments (2)
2012-04-08
Time to revisit Wilbur
I have been thinking about "revisiting" Wilbur, my Semantic Web toolkit implemented in Common Lisp. Wilbur has not been maintained for several years, and I have been doing most of my prototyping using Piglet, a reimplementation of Wilbur (in Python and C++).
If I were to redesign and reimplement Wilbur (probably as "Wilbur 3" this time), I would like to base it on
- Piglet database design (including support for aspect-oriented data), and
- best-of-breed CL libraries for various thing I might need (HTTP client, XML parser, etc.), rather than "rolling my own" as I did for the original Wilbur (because nothing existed at the time).
I also have some ideas about how to take the code written for OINK and use it as some kind of an "object-relational mapper" (or RDF equivalent thereof).
Posted by ora at 11:56 | Comments (1)