W3C home > Mailing lists > Public > semantic-web@w3.org > January 2008

Re: plural vs singular properties (a proposal)

From: Frank Manola <fmanola@acm.org>
Date: Sat, 5 Jan 2008 12:21:57 -0500
Message-Id: <4426AF04-AD2B-432D-B218-B8D31F71AED8@acm.org>
Cc: SWIG <semantic-web@w3.org>
To: Garret Wilson <garret@globalmentor.com>
Garret--

Part of the confusion is that you've changed the example.  In your  
original example, you were talking about only one book (there was  
only one rdf:Description, so you were describing only one resource).   
That's what I responded to.  However, let's continue with your  
example below.  If you want to add a dc:subject of "airplanes" for  
"mybook" to the information you have, there are two choices.

Choice #1:

Add the tuple [ <...#mybook>  "My Book"  "airplanes" ] to the  
relation you have, forming

+----------------+----------------+----------------+
|      URI       |    dc.title    |   dc.subject   |
=================|----------------|----------------|
| <...#mybook>   |   "My Book"    | "semantic web" |
| <...#yourbok>  |  "Your Book"   | "database"     |
| <...#mybook>   |   "My Book"    | "airplanes"    |
...


This is a unique tuple (it doesn't duplicate any of the others), but  
normalization principles frown on this, because you duplicate the  
fact that <...#mybook> has a dc:title of "My Book".

Choice #2:

Create a normalized design with two relations (tables):


dc:title (the table name)
+----------------+----------------+
|      URI       |    value       |
=================|----------------|
| <...#mybook>   |   "My Book"    |
| <...#yourbok>  |  "Your Book"   |
| <...#mybook>   |   "My Book"    |
...

dc:subject (the table name)
+----------------+----------------+
|      URI       |    value       |
=================|----------------|
| <...#mybook>   |"semantic web"  |
| <...#yourbok>  | "database"     |
| <...#mybook>   | "airplanes"    |
...

This normalized design is in fact what is represented in RDF, only  
RDF uses triples, which is a notation that is equivalent to adding  
the relation name to each (binary) tuple, rather than separating  
things into tables.

--Frank

On Jan 5, 2008, at 11:49 AM, Garret Wilson wrote:

> Frank Manola wrote:
>>
>> Assuming I understand what you're talking about, this *isn't* a  
>> conflict with the relational model.  To flesh out your example a  
>> bit, suppose you have a paper, book, or article, and want to  
>> record subject descriptors.
>
> I don't yet understand what you're talking about in your reply, so  
> while I read it again several times, let me just clarify my  
> original concern which apparently wasn't as clear as I thought it was.
>
> Let's say I have the following relation, complete with header and  
> body:
>
> +----------------+----------------+----------------+
> |      URI       |    dc.title    |   dc.subject   |
> =================|----------------|----------------|
> | <...#mybook>   |   "My Book"    | "semantic web" |
> | <...#yourbok>  |  "Your Book"   | "database"     |
> ...
>
> Now, if <...#mybook> has a dc:subject of "airplanes" in addition to  
> its dc.subject of "semantic web", where do I put that in the  
> relational model? I can't add another "table column".
>
> I'll go read your response again in the meantime.
>
> Thanks,
>
> Garret
Received on Saturday, 5 January 2008 17:22:12 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 21:45:20 GMT