Re: Higher-arity to RDF binary

Hi Jitao,

Formally and technically RDF supports only binary relationships. This is by design and there are good reasons.

Still, one can easily model N-ary relationships as classes (on schema level) or through auxiliary nodes (at instance level). For instance, JobPosition in non-RDF environments is likely to be modeld as N-ary relationship, e.g. 

JobPosition(holder, withinOrganisation, jobTitle, from, to)

In RDFS it could be modeled as a class plus several properties:

my:JobPosition a rdfs:Class .
my:holder a rdfs:Property ; rdfs:domain my:JobPosition ; rdfs:range my:Agent .
my:withinOrganisation a rdfs:Property ; rdfs:domain my:JobPosition ; rdfs:range my:Organisation  .

At instance level it may look like:

myData:Pos1 a my:JobPosition ; my:holder myData:Ivan; my:organisation myData:W3C

In case you prefer not to generate identifiers for the auxiliary instance, which is only there to help you model n-ary relationship, one can use blank nodes.

After all, similar things happenr in the RDBMS world whenever one needs to model many-to-many relationship - you need an auxiliary table.


Atanas Kiryakov
Executive Director of Ontotext AD,
Sirma Group,
Phone: (+359 2) 974 61 44; Fax: 975 3226
There is no mental process that can change the laws of nature or erase facts. 
The function of consciousness is not to create reality, but to apprehend it. 
"Existence is Identity, Consciousness is Identification."
Ayn Rand
  ----- Original Message ----- 
  From: Jitao Yang 
  To: ; 
  Sent: Saturday, May 15, 2010 4:10 PM
  Subject: Higher-arity to RDF binary

  Dear all,

  Regarding arity, RDF is binary, 
  are there any good methods for encoding higher-arity relations in a graph?


Received on Saturday, 15 May 2010 14:18:28 UTC