- 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