Creating a user interface for PIMO data

This page has a few tips and answers for people building user interfaces for NEPOMUK. Related information is:

Selecting which data to show and how

When you render a PIMO thing, you need to select, order, and filter the right properties to show.

  • Use fresnel lenses to do the selection, filtering, ordering. This is implemented in PimoEditor.
  • Use nao:prefLabel as labels of things, don't show URIs instead of labels. Its ok to show an URI additional to a label, for example when the user hovers over a thing, but never create a label of a thing by stripping the localname off an URI or showing the URI only. We have labels, in multiple languages, use them. PimoClient has a convenient getLabel method in PimoQuery, use it.
  • only show properties that are sub-properties of pimo:datatypeProperty or pimo:objectProperty. All other properties are considered weird metadata that is not intended for the user.

Filtering Data Using Fresnel

A simple basic fresnel lens that shows something can be found here:

We extended fresnel for editing, with the FreditOntology. Fredit defines which widgets to use for editing a certain datatype, and options for these widgets.

An implementation interpreting fresnel and fredit is here:

If you want to extend this class, we can move it to Nepomuk SVN into the GnognoComp.