Plone, Semantics and Python, IKS FISE at Plone Conference 2010
First of all I was really amazed to see my talk titled "Plone is so semantic, isn't it?" accepted for Plone Conference 2010. I always thought Plone and Semantics is not a topic popular at the conference. Now I know better. My talk at the conference including the questions and answers afterwards was recorded, so watch it yourself. If you cant read the slides in the video, especially the code examples, please look at slidesshare or at the README at github.
Prior to the talk I got in contact with Mr. De Marinis from the European Environmental Agency (EEA). We had a very good conversation and I learned a lot about new semantic package eea.rdfmarshaller for Plone created by/for the EEA. This great work exports the whole structure and metadata of a Plone site or of a single content object to RDF using standards and common namespaces. EEA uses it to make its site with it tons of information available in the linked data cloud.
I also meet other interested people to talk, get ideas and use cases. The major fear about semantics is, people talking about it all the time - a big buzz - but theres no pragmatic, easy to use software out there. Starting with semantics usally increases the complexity of your software and software stack dramatically.
In my opinion FISE will decrease this complexity a lot. It bundles semantic analyzers, a triple store and a sparql-endpoint. Unfortunately quering a triple store with SPARQL brings a new query language and also thinking in triples is more complex than thinking in tables. So what we need here is a supporting tool. With RDFlib and SuRF Python has a good libraries to deal with triples, also making the creation of SPARQL queries pythonic.
FISE itself is a RESTful service. I created fise.client, a simple python client dealing with FISE engines and store based on restkit. It makes the work with FISE pythonic, hiding all the RESTful HTTP struggling. The client ships with tests against a running FISE server. I also provided an integration buildout stitching the Python fise.client and the Java FISE-Server together, making it easy for Python developers to try the stack.
Beside the Talk at Plone Conference I invited for an Open Space session on Plone and Semantics. We had about 8-10 interested people in the room talking and discussing about semantics in general, about possible use-cases and about existing software. I learned its difficult to construct use-cases, because in IT we dont think semantic. After the implications of having facts in triples in a triple store were explained, finding good real-world uses-cases improving the current situation were no longer a problem.
After the conference two days of sprint (aka hackathon) were held. At Saturday I worked together with Alexander Pilz from Munich on the Plone FISE story. While I fixed bugs in fise.client and helped bootstrapping FISE using fise-buildout on other computers, Alexander started a first version of a Plone Integration package with FISE. Finally we got Plone Content (the SearchableText) passed to FISE. Theres really a bunch of work to be done, but it shows how easy FISE and fise.client is to use in a CMS.
There is a lot more work to be done. First we need to use plone.app.async while pushing content to fise. Then we need to fetch the enhancements back and display them in Plone or expose them. Next we need to find a path to get the structural information of Plone offered by eea.rdfmarshaller into the FISE store, so we can include it in the sparql queries/results. And finally this all need to be used in a real world project.
However, next date on my schedule - and on everybodys whos seriosly interested in the IKS stack - is the workshop "Unleashing the Power of Semantic Data - Today" 9th and 10th of december 2010 in Amsterdam. Lets meet there!