1

I have some data about water quality in several counties, it’s a set of month average indicators. This data is in the form

countyName | indicatorName | indicatorValue | indicatorMonth | indicatorYear

How can I model an ontology to represent this data using OWL and Protégé? I first tried to create a class for the counties and data properties for every indicator, but I really don't see how to model this temporal dimension associated to the indicators values.

Joshua Taylor
  • 84,998
  • 9
  • 154
  • 353
lzkill
  • 117
  • 2
  • 7
  • 1
    Have a look at [Ordering of entities in an ontology](http://stackoverflow.com/q/24398297/1281433). In general, it sounds like you're asking about n-ary relations, in which case, look at [Defining N-ary Relations on the Semantic Web](http://www.w3.org/TR/swbp-n-aryRelations/). – Joshua Taylor Jul 13 '14 at 22:20

1 Answers1

0

If you have tabular data with columns like countyName, indicatorName, indicatorValue, indicatorMonth, indicatorYear, then the typical way to encode this is as an n-ary relation. See Defining N-ary Relations on the Semantic Web for more details, but the general idea is that you'd do something like this:

_:record72 rdf:type :WaterQualityRecord ;
           countryName "some country" ;
           indicatorName "some indicator" ;
           indicatorValue 42 ;
           indicatorMonth 9 ;     # e.g., for September
           indicatorYear 2013 .   # e.g., for 2013

_:record73 rdf:type :WaterQualityRecord ;
           countryName "some other country" ;
           indicatorName "some other indicator" ;
           indicatorValue 89 ;
           indicatorMonth 3 ;     # e.g., for March
           indicatorYear 2014 .   # e.g., for 2014

Then ordering by date is a simple matter of ordering first by indicatorYear and then by indicatorMonth. You might also consider combining those properties into a single property whose value is an xsd:dateTime, but that's not quite as important.

Joshua Taylor
  • 84,998
  • 9
  • 154
  • 353