N-ary relationships in RDF/OWL

I am currently working on an OWL ontology for polymers and one of the questions that pops up from time to time is how do you code statements along the line of “polystyrene has a glass transition temperature, which was measured using DSC”. So what we have here is a ternary statement. “Polystyrene has a glass transition temperature” would be a binary statement. However, “glass transition temperature” also has the concept “DSC” associated with it. Graphically, this could be represented as follows:

nary.gif

One possible way of dealing with this is to define the relationship as an additional class rather than a property, so we, could, for instance, introduce a class called “PropertyRelation” which would denote the fact that polystyrene has a GlassTransitionTemperature, which was measured by DSC.

Graphically this could look like this:

relation.gif

When expressing this in the form of a class hierarchy, finally, we can draw the following diagramm:

class-description.gif
(I tried to post some OWL code here, but wordpress messes up the code…..sorry).

One Response to N-ary relationships in RDF/OWL

  1. Jim Downing says:

    Nico, my first reaction is that it might be better to reify the original :hasGlassTransitionTemp as

    :statement :hasMeasurementMethod :DSC.

    I’m not familiar enough with RDFS to know whether you can constrain the scope of :hasMeasurementMethod as you could with your technique.

    One advantage of this technique would be to keep the simpler query (“What is the glass transition temp of polyfoo?”) simple.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: