- From: Garret Wilson <garret@globalmentor.com>
- Date: Sat, 05 Jan 2008 14:48:47 -0800
- To: Bijan Parsia <bparsia@cs.man.ac.uk>
- CC: SW-forum Web <semantic-web@w3.org>
Bijan Parsia wrote: > > On Jan 5, 2008, at 3:16 PM, Garret Wilson wrote: > >> Garret Wilson wrote: >>> How does RDF justify repeated properties? >> >> Sorry, maybe I would have been clearer if I would have said, >> "multivalued properties", in which a property appears multiple times >> for the same resource but with different values, e.g. >> >> <rdf:Description> >> <dc:subject>semantic web</dc:subject> >> <dc:subject>database</dc:subject> >> </rdf:Description> >> >> This is an area of conflict with the relational model, and I'm >> wondering how RDF justifies this. > > It's not a conflict. consider the following table version (let's give > the blank node an indentifier, ex:foo; blank nodes *are* a departure, > but one well handled by "naive" tables or "codd" tables as they are > known in the literature). First row are the column headers: > > ID dc:subject > ex:foo semantic web > ex:foo database > > This a perfectly fine relational table (to be a bit loose in terminology). As Frank Manola and I discussed elsewhere on this thread, it all depends on how you choose to interpret the semantics being represented by the relational model. If you're going to use the relation header (i.e. the table column names) to represent predicates, I believe it's customary to interpret each tuple (i.e. row) as describing a distinct entity (i.e. resource). I don't think that using multiple rows to describe the same resource is a natural interpretation of relational semantics. For example, what happens with additional predicates? What if ex:foo has two subjects ("semantic web" and "database"), but only one title ("My Book")? If you were to incorporate that data into your table above, you'd have two rows, both describing the same book, but one row would have no value in the dc:title column. ID dc:subject dc:title ex:foo semantic web My Book ex:foo database ??? Sure, you could then throw a NULL in there (which means we're no longer talking about the relational model) or create some other workaround, but the fact that we have to create a workaround. Then what do you do about keys? The resource URI (ex:foo) would be a natural key, but you can't do that because you're using separate tuples to represent the same resource. If you say, "well, we'll use all tuple values as a key," you run into more problems because your model of representation allow for multiple representations; that is, the table below is semantically equivalent to your table above, but would have different keys: ID dc:subject dc:title ex:foo semantic web ??? ex:foo database My Book This brings me back to my original point: it is not straightforward to map all RDF data onto the relational model, if you interpret tuples as describing resources, because RDF allows multivalued properties. Frank Manola's interpretation of the relational model, in which the table effectively describes a reification of an RDF graph (i.e. tuples are triples, not resources) is not an obvious one, but it is consistent and fully compatible with the relational model. Garret
Received on Saturday, 5 January 2008 22:50:36 UTC