Contents |
Metadata / Association Browser
What is this project about
This Project was part of the beagle Summer of Code 2006. In the long term it is meant to contribute to is the creation of an "Association Browser" (AB) - An application that allows users to browse their data following their associations instead of filesystem structures or application borders. Since this is a different way to use the desktop and needs a lot of collaboration from different sides you can't just "write" an AB. Instead I aim at creating direct improvements to beagle that enable some of the functionality of an AB and thus help showcasing what would be possible and further develop the ideas. The Project took on three different targets:
- Refining searches based on metadata of search results
- Improving displayed search results using links between them (clue-chaining)
- Enabling explicit creation of links between beagle indexed documents
How did it develope
The focus i worked on shifted through the curse of the project. In the first part of the project i concentrated on improving the beagle search UI to see what could be done without major changes to the datastructure. Realizing that changes to the way we store metadata would be necessary for extended features i decided to focus on prototyping a completely new metadata storage rather than trying to implement things in the old one. This new store is outside of the lucene stores and i prototyped two different versiones - one based on the RDF storage SemWeb and one directly stored in a SQLite database. Both stores allow retrieving metadata directly without searching the document in question through lucene. They also implement routines to check metadata against a model. This way beagle f.e. "knows" that certain fields hold email adresses and can be used to refer to a person. It should therefore simplify the creation of links between search results both at indexing and query time.
Refining and Browsing Search Results
- I enhanced the capabilities of the detailspane using tiles to visualize the possibility to refine and browse the searches. The Refining and Browsing itself is done by sending new Querys to the Lucene Storage.
Tiles display in beagle search allows you to refine your searches or trigger new ones. It also searches the index for further information on persons and in this case displays an image and the email address taken from the evolution addressbook.
- Improved Search Scope Selection - this is an extention that allows to close Groups of search results by type and select a mixed combination of types for a search. There is a really nice but pretty big screencast by kkubasik available. I wrote an enhancement request for this in bugzilla and submitted the patch. I hope this will make it into head rather fast.
Metadatastore
After researching different Possibilites for Metadatastorage i finally decided to try two different implementations of the metastorage. The first one was based on SemWeb and the second one accessed a Sqlite database directly. The Semweb version was not as elegant since it was limited to rdf formated representation. So i developed the sqlite version a little further than the SemWeb based one. I also implemented a metadata model - This describes the different types of metadata we are currently storing.
Outlook
I will continue to work on this project in the scope of a university practical work for two weeks. I will focus on performance evaluation and improvement of the metadata store during that time. The store needs to be tested and improved a lot more so we can finally put the two parts of the project together at some point to have an extended UI that uses the new possibilities of the store.

