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 15:29:35 UTC