wiki:Handbook/Annotations

[ The Nabu Ontology | Handbook | Log Sharing and Privacy Settings ]

Annotations

Nabu enables users to add their own statements to the RDF store. This makes it possible for users to add metadata to logged messages and share this metadata with their peers. For example, a user could set up a set of categories or tags to file his conversations to facilitate later searching. He could do this manually or even use a text classifier and categorize them automatically. The user can add any statement he likes (except for statements from the Nabu schema, see below), but it is a good practice to reuse commonly used ontologies. Widespread vocabularies for metadata and categorization are e.g. Dublin Core or SKOS.

As an example, let us classify a (fictional) message sent by my advisor: "Hi Frank, I have yet another great feature for Nabu you could implement!". To make searching easier, I want to assign the project the message is related to, in this case Nabu.

To add annotations, use the CREATESTATEMENT request:

CREATESTATEMENT RESOURCE http://foo/Messages/someMessage
   http://purl.org/dc/terms/subject http://foo/Categories/Projects/Nabu

The first argument must be one of RESOURCE or LITERAL and indicates whether the object of the statement should be handled as resource URI or as literal string. The following tokens are the (subject, predicate, object) triple representing the statement. Nabu transforms the example into the following RDF representation:

http://www-user.rhrk.uni-kl.de/~f_osterf/nabu/annotations_exp.png

The statement is reified, which means that the statement itself becomes a resource that is linked to subject and object. That makes it possible to add properties to the statement. In Nabu, every user-added statement has a property statedBy, linking the creator of the statement. In our example, this is frank@…. The statement is "owned" by the linked account. Only this account can delete the statement. Also, users can read the statedBy property and decide whether they trust the statement or not: Alice might decide that annotations made by Charlie are useful and consider them, but ignore Bob's statements because she found out that they do not make much sense.

Nearly every kind of RDF statement can be added. The only restriction is that properties from the Nabu ontology are not allowed for user statements. E.g., dc:subject (dc = Dublin Core) is valid, but nabu:isInRoom is not, because the predicate nabu:isInRoom is part of the Nabu ontology. This prevents that users can (deliberately or not) corrupt the Nabu archive or compromise privacy settings. Properties from the Nabu ontology are managed by the server and can only be modified indirectly by the user using the requests defined in the Nabu protocol.

To remove a statement, use DELETESTATEMENT:

DELETESTATEMENT RESOURCE http://foo/Messages/someMessage 
   http://purl.org/dc/terms/subject http://foo/Categories/Projects/Nabu

removes the statement added above. It can only be removed by the user who added it.

[ The Nabu Ontology | Handbook | Log Sharing and Privacy Settings ]

Last modified 12 years ago Last modified on 08/01/05 00:28:37