- From: Frank Manola <fmanola@acm.org>
- Date: Tue, 20 Dec 2005 15:53:54 -0500
- To: Henry Story <henry.story@bblfish.net>
- CC: Joshua Allen <joshuaa@microsoft.com>, semantic-web@w3.org
Like a lot of things related to RDF, the answer to the question of whether or not rdf:type is optional is generally "it depends". It depends, for example, on whether you mean literally mean RDF by itself, or some other layer like RDFS or OWL (it certainly doesn't seem to be optional in OWL DL, for example). In RDF, rdf:type is just another piece of descriptive information. You may provide one, or you may not (or you may provide several; ex:a may be both a dessert topping and a floor wax). It also depends on what kinds of special semantics your application may associate with the class given as the value of rdf:type (and whether you expect other applications to conform to them). For instance, in your example [ a foaf:Person; foaf:mbox <mailto:me@eg.com>; ]. you say "it helps to know that I am dealing with a foaf:Person not a foaf:Agent". If that's what this example conveys, this would appear to involve some "extra-OWL" semantics; since foaf:mbox is defined as having a domain of foaf:Agent (and foaf:Person is a subclass of foaf:Agent), this would ordinarily tell you (at least in OWL) that you're dealing with *both* a foaf:Person and a foaf:Agent, not one as opposed to the other. (Note also that if the example had been [ a foaf:Agent; foaf:mbox <mailto:me@eg.com>; ]. explicitly specifying the type foaf:Agent really would be optional from an information perspective, since you could infer the type just from the foaf:mbox property.) More generally, it depends on your general approach to describing things on the Web. You can use RDF with a kind of object-oriented design philosophy, in which case specifying what type something is an instance of is really important (like, it determines what set of properties you're going to use to describe it, and what other types are related to it in various ways). That can all be useful information (and crucial for specific applications), as long as you realize that RDF isn't really prescriptive in the sense that OO type systems are. The other end of the spectrum is to simply describe things as thoroughly as possible, using whatever properties you like (possibly borrowed from multiple schemas or ontologies you find useful, with your own added as you need them.) In many cases, that's the sort of thing you might well get anyway if you scoop up as much descriptive information about a given instance as you can find, since many different people (or agents) may have added their own descriptions (using their own vocabularies) to what was initially posted about it. People can then categorize instances into their own local type systems / categorizations based on the descriptions of the instances, rather than the other way around (as in "if it's got a mailbox, it must be what *I* call an "actor", regardless of what foaf says it is"). That's the way a lot of description logic systems are supposed to work anyway. And, of course, in this case there's already been a certain amount of "ontological commitment" since it assumes some general understanding of what a "mailbox" is, even if not on what the right categorization scheme is. In practice, you'll get different applications making different assumptions, and mixtures of the two approaches. One obvious mixture is for a single information publisher to provide type information (and point to a schema), and to use the schema for validation purposes just to make sure the data accurately reflects the publisher's intentions. At the same time, it might well be less important that consumers of that data completely buy into the publisher's type system. I personally think we need to make sure the more flexible approaches are still usable in our applications (even though I recognize the value of extreme strictness in specific applications). In my view, a lot of the potential value of XML has been lost by simply using it as an encoding of fixed-format data records in angle brackets. I would not like to see RDF fall into this same trap. --Frank Henry Story wrote: > All I see is a re-statement of an opinion on your litmus test page. Not > a backing of it. > I have not followed the XSD problem. But there is a difference with OWL > ontologies in that they > machine readable descriptions can easily be placed at the other end > of the URL which identifies your class. > > So > > [ a foaf:Person; > foaf:mbox <mailto:me@eg.com>; > ]. > > Is a useful statement it seems to me. If you retrieve http:// > xmlns.com/foaf/0.1/Person > with the application/xml+rdf mime type then you will get a machine > readable description of the > type. I don't think it is that easy with xsd (but am happy to be > corrected). > > Anyway, it helps to know that I am dealing with a foaf:Person not a > foaf:Agent. In rdf every > statement is optional of course. But that does not meant they are not > useful. > > Henry > > On 20 Dec 2005, at 18:39, Joshua Allen wrote: > >> I call it my RDF "litmus test". I think "rdf:type is optional, and at >> best a hint". It's the same sort of issues we had with XSD -- what is >> the boundary where XSD is useful? XSD for validation is fine. XSD as a >> type system is going too far. > > >
Received on Tuesday, 20 December 2005 20:53:04 UTC