- From: Thomas B. Passin <tpassin@comcast.net>
- Date: Sun, 11 May 2003 12:41:44 -0400
- To: rdf-interest <www-rdf-interest@w3.org>
[Richard Cyganiak] > I'm puzzled by some RDFS constructs in the W3C's Photo RDF note [1]. > > I'm new to RDF and RDFS, so I thougt I would ask here for help. > > The Photo RDF technical schema [2] states (shortened): > > | <Class rdf:ID="Technical-data"> > | <comment xml:lang="en"> > | A class that represents technical data about a photo > | </comment> > | </Class> > | > | <rdf:Property rdf:ID="camera"> > | <comment xml:lang="en">Brand and type of camera</comment> > | <domain rdf:resource="#Technical-data"/> > | </rdf:Property> > > Note the domain property of #camera. > > Later [3], the camera property is used on a photo. > > My feeling is that <subPropertyOf/> should have been used instead of > <domain/> (and Technical-data should be a property, not a class). Is this an > inaccuracy in the Photo RDF note, or am I somehow mistaken? Does it matter > at all? This is a question of modeling, and depends on what you consider to be a primary concept. In this case, the modelers seem to have considered "Technical Data" as a concept in its own right. Therefore, it becomes a Class, and has properties. "camera" is considered to be, not a kind of Technical Data - so it is not a subclass - but one facet of Technical Data - so it becomes a property. If you made Technical Data into an abstract property, and made each of the facets that are currently properties into a subproperty of Technical Data, then there would be no unified package of technical data that could be attached to a photo. Instead, there would just be a collection of separate subproperties attached. You could of course extract them into a body by looking for all the statements whose predicate is a subproperty of Technical Data. Not only would this take more computation, but you would be creating a package or collection anyway. So why not create the notion of that package in the first place? This approach has come up with a non-intuitive role for a camera - that is, we can be mislead by the label "camera" - which we would normally think of as a Class itself. But here, "camera" means information about the photo, namely, what thing actually imaged the scene. Suppose we have a class Camera, which is supposed to be an actual physical camera. To make this more clear we could, if we cared to, say something like {camera rfds:domain Technical Data} {camera rdfs:range Camera} (except that in this application we also want to be able to just use string literals for the value of "camera"). Notice that the Dublin Core items (like "publisher") are also Properties. "camera" is used in an analogous way. Cheers, Tom P
Received on Sunday, 11 May 2003 12:41:32 UTC