finally a bnode with a uri

Posts tagged with: browser

Portal updates updates
After struggling for three days with unicode and server availability issues I've now updated both the editor and the browser at the beta site, and I'm really starting to have fun with the system.

New components and features

  • Auto-Smushing
    Resources are automatically consolidated based on owl:FunctionalProperties and owl:InverseFunctionalProperties.
  • Manual Smusher
    It's possible to manually invoke the [wl Smusher] via an HTML interface and to see how resources were merged.
  • Provenance information
    The summaries now have a "sources" tab showing the different RDF files that were used to generate the selected resource view. The provenance information contains the URL of the source, the number of relevant statements, and a list of properties. Each source can be updated or removed online.
  • Un-Smusher
    As I expect there to be inconsistent data in the database sooner or later, I wanted to be able to split incorrectly merged resources. So I extended the store to not only keep track of sources, but also to save the initial identifier of subjects and objects. This makes the indexes larger but allows to efficiently reset merged URIs and bnode IDs. The Un-smusher is linked from the RDF browser (after selecting a resource).
  • Add-URL form
    You can import remotely maintained resource descriptions by simply entering the URL of your RDF/XML file in the "Add source" form on the browser page. At the moment, the reader doesn't follow redirects, and the amount of imported statements is limited.
  • Incoming relations
    The browser doesn't process owl:inverseOf information. Given that my inferencer is written in PHP, I was a little bit too shy to stress the server even more. But what I've added is an "Incoming relations" tab which lists all the resources which reference the selected individual. I found this feature to be very helpful as the browsing flow no longer stops due to dead-ends. It's especially nice for all the properties that don't have an explicit owl:inverseOf definition.
  • Browsing history
    The RDF browser maintains a clickable list of the last 7 resource summaries viewed.

Updated components:

  • Person views
    The experimental "Person" view I mentioned in my last post is now activated. It tries to find a person's title and name (via either foaf:name or combinations of given/first + ur/family/last name), an image, mailboxes, weblogs, homepages, and workplace homepages. Any other properties are rendered by the "Resource" template.
  • Improved editor
    I've re-arranged the RDF editor's layout. Instead of displaying the resource description list at the top of the main column, it's now in the right column. Much much less scrolling now, and less flickering in Gecko-based browsers. Additionally, the "quick-add" and "quick-edit" tabs are no longer nested in the "overview" tab, they are in the same tab box now. The nested tab boxes didn't really work usability-wise. The property editor still uses them, I haven't found a better way yet. But with the resource list out of the way, the property editor works better, too.
I tested the site with Mozilla/Firefox/Netscape 8, IE6, and Opera 7.23 on a windows machine. It also seems to work with Firefox on Linux and Mac. It would be great to get some additional compatibility feedback (and also to see the repository grow ;). Unfortunately, this blog doesn't have comments, so my email address is the only thing I can offer for bug reports.

When Baywatch isn't Betawatch..

Playing with RDF browsing templates during downtime.
The server was flakey again today and I couldn't access it via FTP. So I played a little bit with a local version and custom templates for the RDF browser.

I'm experimenting with a CSS-inspired approach, allowing to partly cascade templates. This means that there is always a matching generic template for each resource type. Before rendering the template, the system walks down the class hierarchy of the given resource, looking for annotation properties pointing to a more specific template (e.g. a template for foaf:Persons). Additionally, how to render certain properties can be defined at any template level, so that a foaf:img is not only rendered when a resource is typed as being a foaf:Person but everytime a resource has such an image assigned. Customizing resource-specific views is not really easy, though. You can't be sure that certain assumed properties are present or that image URLs don't 404. So I ended up with lots of if... then branches and other ugly stuff. But I think templates for more constrained resource types such as RSS channels or feed items could make a lot of sense.

mr baywatch

Finally browsing

Adding browsing functionality to OWLchestra's RDF Store
Yesterday, I finished a first version of an RDF browser on top of OWLchestra's RDF store. This means that I am finally getting close to the relaunch (at least as far as my components are concerned). I still have to implement a SPARQLing query builder and some other stuff, but with an editor and browser in place the portal's base functionality is there.

My concept for the browser included supporting facet restrictions but given that a) I'm behind schedule, b) funding ended in 12/2004, c) /me is heading towards insolvency, and d) the API to my RDF store is still very basic, I decided to better start with something simple. And as displaying the retrieved information is still complicated enough, I happily focused on the front-end stuff.

(Unfortunately, DERI seems to have problems with the beta version server at the moment. It was offline for 3 days and my FTP account is still gone. It might take some time before I can upload the browser, so I 'm going to annoy you with my clumsy screenshots once again...)

In order to reduce the result set even without selectable facets, I implemented a low-end fulltext search on potential resource labels and the possibility to restrict the resource type as well as the time of resource description modification:

rdf browser restrictions
Clicking on one of the result list's entries...
rdf browser result list
...will show a resource summary (and hide the list for reduced server load):
rdf browser summary

Depending on the type of related resources and the existence of resource descriptions, a couple of icons are displayed next to each entry. In the image above we can see that there is a summary available for Danny's weblog.

The blog summary shows an RDF import icon next to an rdfs:seeAlso link:
rdf browser summary
(I plan to offer resource description discovery for any URI but I still have to program the client to do MGETs, interpret headers, follow redirects etc., so at the moment, imports are only possible on "probably RDF/XML" links.)

Ok, what happens if I click the import link?
First, the script checks if the source is already known, otherwise it creates an entry in the system's list of RDF sources. Then, an ARC parser instance retrieves the RDF document and adds the parsed triples to the RDF store. In case the source has been crawled before, the database will only be updated if the document changed.

rdf browser import
Switching the resource filter to rss:item now and searching for "danny" returns a list of 10 current entries, of course I can't resist watching the latest SPARQL photo:
rdf browser summary
Next thing to do is to create custom templates for selected resource types, e.g. a nice profile page for foaf:Persons or an aggregated view for rss:channels. The mechanism is already activated, but I needed a little break, and browsing-importing-browsing-importing was too much fun to directly continue coding.

Hm, and perhaps I should write a smusher first...


No Posts found