- From: Ross Singer <ross.singer@talis.com>
- Date: Wed, 7 Jul 2010 14:55:10 -0400
- To: "Young,Jeff (OR)" <jyoung@oclc.org>
- Cc: Erik Hetzner <egh@e6h.org>, public-lld <public-lld@w3.org>
- Message-ID: <AANLkTikWipYZ6JeWzon1bccPteCTTtVegk6nALg9Ib9P@mail.gmail.com>
No, obviously sioc:UserAccount is different. I didn't realize User was deprecated, so I take that back. Thanks for pointing it out. Still, if I owl:sameAs my resource to, say: http://dbpedia.org/resource/Paul_Simon since they're both referring to the same human being and I want machines to know that, I've also implicitly typed my resource as a: yago:PeopleFromNewYorkCity yago:JewishComposersAndSongwriters yago:PeopleFromNewYork yago:AmericanMaleSingers owl:Thing opencyc:Mx4rvVjWoZwpEbGdrcN5Y29ycA yago:Artist109812338 yago:AmericanPopSingers yago:AmericanSongwriters yago:AmericanFolkMusicians opencyc:Mx4rvVjqXpwpEbGdrcN5Y29ycA yago:PeopleFromNewark,NewJersey yago:AmericanComposers yago:JewishAmericanMusicians yago:JewishActors yago:JewishSingers yago:LivingPeople yago:AmericanSingers yago:AmericanBuskers yago:PeopleFromLongIsland yago:PeopleFromQueens yago:NewJerseyMusicians yago:PeopleFromFairfieldCounty,Connecticut dbpedia-owl:Person dbpedia-owl:Artist dbpedia-owl:MusicalArtist I guess what I'm saying is that this viewpoint has no basis in the common practice of how linked data is being created currently. -Ross. On Wed, Jul 7, 2010 at 1:58 PM, Young,Jeff (OR) <jyoung@oclc.org> wrote: > > Ross, > > > > I’m not familiar with Ruby, so that particular analogy doesn’t help me. I will try to make my point without resorting to analogy. > > > > I agree my foaf:Person and foaf:Organization example isn’t good because they are disjoint. Let me see if I can make my point using your foaf:Person/mo:MusicArtist/sioc:User counterexample. > > > > Note that sioc:User has been deprecated in favor of sioc:UserAccount. Given this subtle change, are you still comfortable saying only one URI is needed to cover these three types? > > > > Jeff > > > > From: rxs@talisplatform.com [mailto:rxs@talisplatform.com] On Behalf Of Ross Singer > Sent: Wednesday, July 07, 2010 11:29 AM > To: Young,Jeff (OR) > Cc: Erik Hetzner; public-lld > > Subject: Re: [open-bibliography] MARC Codes for Forms of Musical Composition > > > > Jeff, I don't think it's helpful to think about this in the context of Java's object inheritence. I think a better analogy would be Ruby's notion of mixins (although it's still not the same, it's just *more* similar to the RDF model than Java's). In this analogy, rdfs:Resource would be like Object and rdfs:Class would be like Module. It helps when you think of it in some serialization other than rdf/xml, too. > > > > <http://example.org/foo> > > a foaf:Person; > > foaf:name "John Doe". > > > > It's not a tremendous stretch to think of this like: > > > > module FOAF < RDFSClass > > attr_accessor :name, :nick, depiction > > end > > > > module FOAF::Person > > attr_accessor :surname, :firstName, :knows > > end > > > > class Resource < RDFSResource > > end > > > > me = Resource.new > > me.extend(FOAF::Person) > > me.name = "John Doe" > > > > > > You can't have a foaf:Person that's also a foaf:Organization, anyway (they are disjoint with each other). > > > > A better example is that you have a foaf:Person who is also mo:MusicArtist and a sioc:User. We shouldn't need three URIs to define this person, but attributes of all three classes are necessary (or useful) to accurately describe him/her. > > > > -Ross. > > On Wed, Jul 7, 2010 at 10:45 AM, Young,Jeff (OR) <jyoung@oclc.org> wrote: > > Erik, > > I agree and admit that I wasn't thinking clearly when I first brought it up. Let me see if I can salvage my thought. > > I'm looking at Linked Data from an object-oriented perspective. For example, Java has a class extension mechanism that is roughly analogous to rdfs:subClassOf. When I use "new" to create a Java object, I can only apply it to one and only one Java class. As with RDF, I agree that this one new individual is automatically an instance of all the other classes in the hierarchy. > > What I can't do in Java, though, is instantiate an ad hoc combination of Java classes like org.example.Corporation and org.example.Person. If this feature existed in Java, it would (arguably?) add complexity and obscurity. In OWL/RDF, this kind of restraint must be self-imposed. > > If this same kind of self-restraint was adopted for RDF, URI patterns could be more transparent without compromising the reasons for opacity. For example: > > http://example.org/foaf:Person/12345 > > <rdf:RDF ...> > <foaf:Person rdf:about="http://example.org/foaf:Person/12345" /> > </rdf:RDF> > > http://example.org/foaf:Organization/67890 > > <rdf:RDF ...> > <foaf:Organization rdf:about="http://example.org/foaf:Organization/67890" /> > </rdf:RDF> > > (Note that the particular URI pattern I'm showing is illustrative and not required for my argument.) > > Since foaf:Person and foaf:Organization are both subclasses of foaf:Agent, I could imagine these (optional) URIs facilitating discoverability at the protocol level as well: > > http://example.org/foaf:Agent/12345 (302 redirect to http://example.org/foaf:Person/12345) > http://example.org/foaf:Agent/67890 (302 redirect to http://example.org/foaf:Organization/12345) > > Since everything is ultimately an owl:Thing, this principle could be taken to its logical conclusion: > > http://example.org/owl:Thing/12345 (302 redirect to http://example.org/foaf:Person/12345) > http://example.org/owl:Thing/67890 (302 redirect to http://example.org/foaf:Organization/12345) > > This brings up use cases where an individual is arguably both foaf:Person and foaf:Organization (e.g. royalty?). This situation can be resolved in Java, though, without a new operation involving multiple classes at once. Analogous solutions could be systematically applied to the production of RDF. > > Jeff > > -----Original Message----- > From: public-lld-request@w3.org [mailto:public-lld-request@w3.org] On Behalf Of Erik Hetzner > Sent: Tuesday, July 06, 2010 3:58 PM > To: public-lld > Subject: Re: [open-bibliography] MARC Codes for Forms of Musical Composition > > (Sorry for the spam; this was sent from the wrong email address, so I > am re-sending.) > > At Tue, 06 Jul 2010 10:07:56 -0700, > Erik Hetzner wrote: > > > > At Tue, 6 Jul 2010 12:27:17 -0400, > > Young,Jeff (OR) wrote: > > > Let me address Ross' question before attempting to argue that restraint > > > to a single rdf:type is good practice. > > > > > > Here is the example in question: > > > > > > http://purl.org/NET/marccodes/muscomp/sy.rdf > > > > Hi, > > > > Once you bring OWL into the picture, every resource has rdf:type > > owl:Thing in addition to any defined rdf:type. Any rdfs:Class (C) that > > is rdfs:subClassOf another class (C') implies that every instance of > > type C is also of type C'. I would argue that a resource with multiple > > (implied) rdf:type(s) is the rule, not the exception. > > > > best, Erik Hetzner > > > > > Please consider the environment before printing this email. > > Find out more about Talis at http://www.talis.com/ > shared innovation™ > > Any views or personal opinions expressed within this email may not be those of Talis Information Ltd or its employees. The content of this email message and any files that may be attached are confidential, and for the usage of the intended recipient only. If you are not the intended recipient, then please return this message to the sender and delete it. Any use of this e-mail by an unauthorised recipient is prohibited. > > Talis Information Ltd is a member of the Talis Group of companies and is registered in England No 3638278 with its registered office at Knights Court, Solihull Parkway, Birmingham Business Park, B37 7YB. > >
Received on Wednesday, 7 July 2010 18:55:40 UTC