W3C home > Mailing lists > Public > semantic-web@w3.org > April 2007

Re: plural vs singular properties (a proposal)

From: Bijan Parsia <bparsia@cs.man.ac.uk>
Date: Mon, 23 Apr 2007 15:19:06 +0100
Message-Id: <7450C5B8-CDA6-4C13-BD93-114C83A32854@cs.man.ac.uk>
Cc: semantic-web@w3.org
To: Sandro Hawke <sandro@w3.org>

On 23 Apr 2007, at 01:47, Sandro Hawke wrote:

> I keep running into a problem with modeling in RDFS/OWL where I don't
> know whether to use a multi-valued singular property or a single- 
> valued
> plural (collection) property.  For example:
>
> Style 1 - Singular Property
>
>     Turtle:   p:Charles f:child p:William, p:Harry.
>
>     N-Triples:
>               p:Charles f:child p:William .
>               p:Charles f:child p:Harry .
>
> Style 2 - Plural (Collection) Property
>
>     Turtle:   p:Charles f:children ( p:William p:Harry ).
>
>     N-Triples:
>               p:Charles f:children _:genid2 .
>               _:genid2 rdf:first p:William .
>               _:genid2 rdf:rest _:genid1 .
>               _:genid1 rdf:first p:Harry .
>               _:genid1 rdf:rest rdf:nil .
>
> I believe the dominant opinion is that one should use Style 1  
> unless one
> needs one of the key features of Style 2, which are roughly:
>     a.  the values are ordered
>     b.  the values are exhaustive

Since it ensures neither, I think style 2 is a huge anti-pattern. I  
recommend it against it always.

(That's not to say that some sort of structured intermediary is  
always wrong, obviously.)

> I've never liked having to make that tradeoff, and I think I now see a
> way to get out of it.
>
> My current perspective comes from my current focus, which is on
> exploring how OWL lines up (and fails to line up) with object-oriented
> programming systems.
[snip]

I echo others in saying that this is almost certainly a mistake, or,  
at least, a perilous path.


>   As far as I know, OO systems always use Style 2,
> since they don't (directly) support multi-valued properties.
[snip]

And we see problems arise in the very first moment. OOP objects  
generally don't have properties, but instance variables.

This may seem a trivial wording difference, but it really isn't. That  
you can squint and make things sort of line up doesn't mean that they  
*do* line up.

Cheers,
Bijan.
Received on Monday, 23 April 2007 14:18:24 GMT

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