I'm new to RDF and wondering how I to produce an adequate subject ... Does it has to be unique ? In example I could refer to a book by it's ISBN number, still many physical books with that ISBN can exist. In the same way, some typo errors might be fixed in a print without changing the isbn.

More practically, I need to keep record of error events in a computer system. Should I consider that every generated event is strongly unique by including in the URI a unique value (uuid, time and location etc) Or should I keep a simple uri like error type, and differentiate it by it's properties ?

Or maybe I should use a bnode to keep properties grouped for a specific event ?

Thanks for clarifying my thoughts.

asked 26 Nov '12, 05:27

killertoffy's gravatar image

accept rate: 0%

It's difficult to give data modeling advice based on such open-ended questions. If you think a little more about what you're actually going to do with the data--for example, the kinds of queries you're going to make to support the application(s) you're developing--that will give you some ideas about how granular your data model needs to be.

(26 Nov '12, 08:01) bobdc bobdc's gravatar image

Basically I have no interest in a specific event for itself, but I want to keep track of the time, reason, context and consequences. That's the information I want to use later on. Somehow that data needs to stay "grouped". At this stage, I have no clue if using a non unique uri will limit my ability to query the data.

(26 Nov '12, 14:44) killertoffy killertoffy's gravatar image

Your book can have a HTTP uri as well as a ISBN property (see the BIBO ontology)

The benefit of a HTTP uri for the subject is that generally, the resource becomes dereferenceable.

People will tell you that a derefenceable HTTP uri should only be applied to a information resource and then describe the importance of the fragment identifier or using 303's, but it quickly becomes more complicated.

  1. You may need uri's for the book 'model' or editions e.g 3rd edition Hobbit
  2. You may need uri's for the actual instances of physical books i.e those in warehouses or in stock

in cases where there is no URI, some will say generate one (maybe use a UUID, or HTTP uri with a base 64 urlencode uuid on the end), others will say make anonymous. The benefit of the former is that others can link to it. In the case of your events, create a uri since I am certain you don't want them to be anonymous events in the long run.

permanent link

answered 26 Nov '12, 09:14

William%20Greenly's gravatar image

William Greenly
accept rate: 13%

The decision as to whether you need to model books, editions of books or actual physical books mainly depends on what you wan tot do with the data - eg. if you are reviewing books - isbn is likely enough, if you are selling books, modelling hard and soft bound editions of the hobbit as a seperate entities is important. Whereas if you are selling second hand books, each with different editions, bindings etc. you might need to model them as individuals. The depth of data modelling is often related to what you are trying to accomplish.

(26 Nov '12, 14:46) Sweet Burlap Sweet%20Burlap's gravatar image

You're making a good point about others linking to an event. This is actually deeper than that as I can also need to link events that can occur in cascade. So giving a unique URI really makes sense.

Thanks for pointing this out !

(26 Nov '12, 14:51) killertoffy killertoffy's gravatar image

personally i would generate a new URI (using UUID) for each error and state that it is a type of a certain error class, datetime predicate, location predicate etc. - mainly because it is what were trying to model - separate, individual events.

UUID URIs are probably a better way to go rather than blank nodes because of dereferencability

(26 Nov '12, 15:01) Sweet Burlap Sweet%20Burlap's gravatar image
Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here



Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Question tags:


question asked: 26 Nov '12, 05:27

question was seen: 575 times

last updated: 26 Nov '12, 15:01