Skip to topic | Skip to bottom

RDFTM.HandlingUnaryr1.4 - 01 Nov 2005 - 19:35 - ValentinaPresuttitopic end

Start of topic | Skip to actions

Unary relationship

Topic Maps allows to define unary associations. If we want to say in Topic Maps that the "turandot" is an unfinished work then we can use a unary association like the following:

unfinished(turandot : work) [LTM syntax]

In RDF we do not have unary relations. Typically we model a situation like this by defining the resource "turandot" as instance of a specific set or by using a boolean binary association. The problem is how to translate this kind of assertions from Topic Maps to RDF obtaining roundtripping. The approach for translating unary associations is that of defining a special class with the semantics of describing a particular characteristic that its instances have.

We define two disjoint classes for guiding the unary associations translation:

  • rdftm:NonEssentialClass, which represents the semantic of unary associations.
  • rdftm:EssentialClass.

The rules for translation are as follows:


  • A class which is rdfs:subClassOf rdftm:NonEssentialClass translates to a Topic Maps unary relation.
  • The resource, which is instance of that class becomes the role player of the corresponding unary relation.


  • A unary relation becomes a class in RDF, which is rdfs:subClassOf rdftm:NonEssentialClass.
  • The topic which is the role player of the unary relation becomes a resource, which is instance of the class created.

unfinished(turandot : work)

maps to

ex:unfinished rdfs:subClassOf rdftm:NonEssentialClass

_:turandot rdf:type _:work

_turandot rdf:type ex:unfinished



  • how do we handle role types
  • it may be better to use binary relations with boolean values:
    • how do we handle the "false" value?

to top

Copyright © 1999-2018 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Fabio's Wiki? Send feedback