On Nary Relations

This documnent describes my ideas on the way to represent Nary Realtions in RDF.

Nary Relations

The basic relationship we can describe with RDF is binary, namely a relathionship between two resources.

However, there are many cases that we want to express the relationship among more than 2 resources. And there have been discussions and proposals for the framework for the description of those Nary relathionships (see NaryRelations page in ESW Wiki for example)

And RDF Best Practice and Deployment WG has published its working draft Defining N-ary Relations on the Semantic Web: Use With Individuals.

This page presents my (ongoing) proposal for a framework for presenting N-ary relationships.

It looks similar to the "Pattern 2" analysis in the working note, but more generalized to include "unary" and "binary" case, and basic vocabulary is proposed here(@@they appear in examples, but yet to be defined formally)

This approach owes its most part to the approaches in linguistics.

go to the top of this page

Trinary Cases

Dative expression

Example:

John teaches math to Mary.


[ a :teach;
  role:agent  :John;
  role:thme   :Math;
  role:goal   :Mary
].

graph of John teaches math to Mary.
Actually the analysis is the same as that of "John teaches Mary math."

go to the top of this page

Unary Cases

Agentive subject

Example: "John swims."


[ a :swim;
  role:agent John ].

graph of John swims.

Thematic subject

Example:

"Titanic sank."

      
      [ a  :sank;
           role:theme :Titanic ].
      
    
graph of Titanic sank.

or

      
[ a  :sink;
  role:theme :Titanic;
  role:tense role:past
 ].
      
    
graph of Titanic sank with 'tense' node.

go to the top of this page

Binary Cases

By generalizing the "Predicate as the main node" approach above to the trinary and unary cases, we get somewhat new (or unfamiliar) graphs for conventional binary relations.

Namely, even in expressing binary relationship, we make a node representing the (instance of) main predicate, and connect each arguments to that node.

This approach is similar to reification, but different in that the "main" node is not of type rdf:Statement, but of the seamantic predicate (so we don't have arcs labeled rdf:predicate) . And labels attatched to the arcs are not syntax labels likerdf:subject or rdf:object, but semantic ones ( thematic roles aka θ roles).

Agent, Theme

Example:

John teaches math.


[ a :teach;
  role:agent :John;
  role:theme :Math
].
      
graph of John teaches math.

Agent, Location

Example:

John swims in the pool.


[ a :swim;
  role:agent :John;
  role:location :Pool
].
      
graph of John swims in the pool.

Or


[ a :swim;
  role:agent :John;
  role:location [ a :in;
                  role:theme]
].
      
graph of John swims in the pool.

go to the top of this page

Cuasal relationship

Something causes something

Let's begin with a very simple case.

Example:

Smoking causes lung cancer.


[ a		:cause;
  role:source	:smoking;
  role:theme	:lung_cancer
].

graph for 'smoking causes lung cancer.'

Something cuases someone to do something

Example:

John made Mary meet Sarah.


[ a		:made;
  role:agent	:John;
  role:theme	[ a		   :meet;
  		  role:experiencer :Mary;
		  role:theme	   :Sarah
		  ]
].

graph for 'John made Mary meet Sarah.'

Some event causes someone to do something

Example:

That John died made Mary refrain from smoking.


[ a 	:made;
  role:source	[a		:died;
  		 role:theme	:John];
  role:theme	[a		:refrain_from;
  		 role:agent	:Mary;
		 role:source	:smoking]
]

graph for 'That John Died made Mary refrain from smoking.'

go to the top of this page

Discussion on reification and uncertainty

What's the problem? an example and an analysis

When adopting analysis above, do we have any problems with reification?

When doing reification as usual, the resultant graph seems a little bit complicated.

For example, consider "John teaches math.", of which our analysis was


[ a :teach;
  role:agent :John;
  role:theme :Math
].
      
graph of John teaches math.

When we apply reification to that graph, the result would be


_:b2 	a	rdf:Statement;
	rdf:subject	_:b1;
	rdf:predicate	role:agent;
	rdf:object	:John.

_:b3	a	rdf:Statement;
	rdf:subject	_:b1;
	rdf:predicate	role:theme;
	rdf:object	:Math.

_:b1  	a	:teach.
      
At least we have 2 reified triples

Does this seem problematic? → At first glance, yes. It's too much complicated.

However, the sentence above actually (simulutanously) says these two things:

  • It is John who teachs math.
  • and
  • It is math that John teachs.
So, it is natural that we have two reified triples.

And we can attach our belief to either of them. For example, we can say "It is 75% probable that it is John who teaches math." with


_:b4	a	prob:Belief;
	prob:proposition _:b2;
	prob:has_probability [a prob:probability;
	                      rdf:value "0.75"].

graph for 'It is 75% probable that it is John who teaches math.'

Another analysis

Actually, there could be another analysis: a more complicated/sofisticated version. In the analysis above, we didn't reify the statement ":b1 a rdf:type", but we can also reify it.

So, the reified version is:


_:b2 	a	rdf:Statement;
	rdf:subject	_:b1;
	rdf:predicate	role:agent;
	rdf:object	:John.

_:b3	a	rdf:Statement;
	rdf:subject	_:b1;
	rdf:predicate	role:theme;
	rdf:object	:Math.

_:b4	a	rdf:Statement;
	rdf:subject	_:b1;
	rdf:predicate	rdf:type;
	rdf:object	:teach.
      
analysis with 3 reified triples

What does this mean? It means "It is to teach (not to study, for example) that John does with math." (I'm not sure if it's correct English senence, though)

go to the top of this page

On patterns in the WD from SWBPDWG

Christine has breast tumor with high probability.

[ a			prob:Belief;
  prob:proposition	[ a	:have;
  			  role:location	:Christine;
			  role:theme	[ a :breast_tumor]
			];
  prob:has_probability	_:b1
].

_:b1[ a	prob:probability].

_:b2[ a :high;
      role:theme	_:b1].
graph for 'Christine has breat tumor with high probability

Steve has temperature, which is high, but falling

[ a		:have;
  role:location	:Steve;
  role:theme	_:b1
].

_:b1	a	:temparature.

[ a		:high;
  role:theme	_:b1
].

[ a		:falling;
  role:theme	_:b1
].
graph for 'Steve has temparature, which is high, but falling

John buys a "Lenny the Lion" book from book.example.com for $15 as a birthday gift.

[ a		:buy;
  role:agent	:John;
  role:theme	[ a :Lenny_the_lion_book];
  role:source	:books_example_com;
  role:instrument "$15";
  role:purpose	:birthday_gift
].
graph for 'John buys a ... book...as a birthday gift.'

go to the top of this page

Created by Yoshio Fukushige
fuku@w3.org