W3C home > Mailing lists > Public > www-rdf-rules@w3.org > September 2001

Re: What is an RDF Query?

From: Sandro Hawke <sandro@w3.org>
Date: Tue Sep 11 22:38:10 2001
Message-Id: <200109120234.f8C2YM306065@wadimousa.hawke.org>
To: pat hayes <phayes@ai.uwf.edu>
cc: "Peter F. Patel-Schneider" <pfps@research.bell-labs.com>, www-rdf-rules@w3.org

> >I would love to have at least Horn logic in "standard" RDF, but I'm
> >guessing it's not going to happen.  So we have layered standards.  One
> >standard specifies the simple syntax, and some others, layered on top of
> >it, specify how to convey information about particular domains in that
> >base syntax.
> 
> That doesn't seem to make sense. The syntax itself conveys no 
> information at all; any language conveys information by virtue of its 
> semantics. What is the sense of 'layering' that allows the base 
> syntax to convey more than can be said in its own 'base' semantic 
> theory? If you are writing RDF, what you mean is what is specified by 
> the RDF semantics.  If you want to say more than that, you have to 
> use some other language (which may be an extension of RDF, in the 
> sense that FOL is an extension of propositional logic; but it is 
> still a different language.). No amount of 'layering' is going to 
> make the RDF syntax mean anything more than it means already.  Even 
> if you manage, by some notational miracle, to 'use' the RDF syntax or 
> data model to encode your new language, the result still isn't RDF; 
> it just *looks* like RDF, but it *means* something different. That 
> introduces ambiguity deliberately as a design strategy, which seems 
> like a bad idea to me.

Perhaps the confusion is in calling RDF a language.   I don't care for
the word "Resource" in the acronym, but "Description Framework" seems
pretty good.   

RDF says: when you want to convey information, do it in <object,
property [relation], value> triples.  And it gives an XML syntax for
those triples, and some more details.

And it provides some guidance (which may do more harm than good) about
what symbols one should use in those triples to denote certain
important objects, like the 'type' property, or web pages.

But maybe calling that a "language" is overblown.  To have a language,
you really need to define what objects are being represented by your
symbols, I guess, and RDF sure doesn't do that.  The ppople using RDF
for particular applications do that -- but in doing so they are
defining *in english* what their symbols mean.  And therefor making
some language (probably with informal semantics).

But because they are using RDF syntax, their language and someone
else's language can be combined meaningfully.

I wish I knew a good way to for us to be clear about this with each
other.   There may well be real, fundamental problems with the system,
but damn if it isn't hard to tell amongst all our linguistic
confusion.

> RDF IS NOT A PROGRAMMING LANGUAGE!  ASSERTIONAL DESCRIPTIVE LANGUAGES 
> ARE FUNDAMENTALLY DIFFERENT FROM PROGRAMMING LANGUAGES!!  THEIR 
> SEMANTICS DON'T WORK THE SAME WAY!!!

Sorry, I understand the difference between imperative and declarative
systems, but I don't see why that's relevant in discussing
modularization.  In particular, the appeal to C, which is of course a
very different language, was to the idea that external modules can be
written in a more expressive language (eg one capable of doing I/O).
(In fact in C that's done via the asm language construct, but normal
programmers never use that; it's hidden in the library.)

> >It seems very natural to put the vocabularies for things like colors
> >and breeds of dogs "above" the language, and I think it's a good goal
> >for world-wide standards to put as much as possible above the
> >language.
> 
> I have no idea what you are talking about. Can you expand on this 
> idea of "above" ?

above = layered above = not expressible in the language, but
expressible in the language with some extensions.

> > I would not have chosen to put logic (and numbers) above
> >the language, and I'm still wondering what kind of a system we can
> >really build if we do so.
> >
> >There are so many usage scenarios.....
> >
> >I want to be able to say "a" and "a implies b" and know that the
> >receiving agent will infer "b".
> 
> Interesting point. I don't think that you can possibly know that they 
> WILL make any inference, no matter how obvious it is. What you should 
> be able to say is that they COULD make that inference.

Yeah, I really do want "should" for some applications and that's a lot
more like imperative programming than declarative.   I'll need to
think about that some more.

> > If we can't know that with some kind
> >of likelyhood, maybe there's not much point to it, and we should just
> >say "a" and "b" in the first place.
> >
> >Anyway, we can pick a few ontologies, including ones for numbers and
> >first-order-logic (and maybe description logics and DAML research
> >groups :-) and call that "The DAML Standard Set of RDF Ontologies
> >v0.1" (or just "DAML") and hope that's what ends up being implemented
> >everywhere.
> 
> That doesn't make sense. An ontology is a set of assertions *in a 
> language*. What language are you going to write the 'ontology for 
> first-order logic' in? And what would it *say* about first-order 
> logic, in any case? (Would it define the model theory? )

In English, or whatever you'd use to define FOL in a textbook.  Maybe
I'm misusing the word "ontology" and should stick with "vocabulary" or
something.

> > > The situation is much different with less-expressive representational
> > > systems, like RDF.  In such systems, there is no possibility of
> > > implementing proof theories within the system itself.
> >
> >I don't know what "implementing proof theories" means, though I've
> >heard the term a few times.  I'd be grateful for a brief explanation
> >and/or pointers.   (I suspect I have the notion without quite knowing
> >the term being used for it.)
> 
> Read it as meaning 'implementing inference systems'. CWM would be an example.

Thanks.

> > >                                                  (If, however, you are
> > > proposing an extension to RDF, that would be different.  Of course, an
> > > extension needs a lot more than just a syntax.)
> >
> >To be clear to a fault: I don't believe anyone can do anything in RDF
> >without defining new terms out-of-band.  (Dan Connolly suggests on irc
> >two useless exceptions: "deduce A from (and A B), and deduce (exists
> >(?x) (p ?x o)) from (p s o)".)
> >
> >Defining new terms in RDF is identical to extending the language.
> 
> I dont think it is. First, it is impossible to define new terms in 
> RDF; but it is possible to define new terms in RDFS (in a rather weak 
> sense of 'define'), and that is not an extension to RDFS (at least in 
> the sense we are talking about here.)
> 
> >Alas, I'm not qualified to do more than wonder about the theory mess
> >this creates.
> >
> >If we had a more expressive language, we could define some terms
> >inside the language, which would be nice, but we can't.
> 
> Surely the moral should be, that we should use a more expressive 
> language. There are plenty available. (Exactly how expressive is 
> admittedly a matter for reasonable debate, but the sweet spot for 
> machine utility and human usefulness is almost certainly nearer to 
> DAML+OIL than to RDF, no matter what your criteria are. If you are 
> chiefly interested in proof-checking rather than proof generation, as 
> Tim B-L seems to be, then the sweet spot is probably the other side 
> of FOL, somewhere in type theory.)

How can we possibly standardize this?  Maybe we should just
standardize on a syntax and let people use a few different logics?
(And maybe call that syntax "RDF".)

> >The question
> >is, would it really matter, since we could never define colors and
> >breeds of dogs in the language, and that's what we really want to talk
> >about anyway?
> 
> We can't *define* them in the sense of giving necessary and 
> sufficient conditions, but we can *describe* them well enough to do 
> some useful inferencing. Really, we can, nothing exotic or 
> challenging about it, it's old technology, widely deployed. All that 
> needs to happen is that the W3C needs to actually learn about this 
> stuff instead of re-inventing wheels with their spokes missing.

Oh, oh, I think I finally get the gist of the W3C well enough to
answer that!  :-)   Answer: the W3C doesn't invent technology like this.
It just facilitates others in trying to come to some working
consensus, to allow interoperability, when the technology is mature
enough to make that possible.  (RDF was ready for the application of
labeling web page content, which is how it became a W3C
Recommendation.  People are trying to use it for other things now,
obviously.)  Meanwhile, Tim Berners-Lee is a Senior Research Scientist
at MIT LCS and (like you) got some DAML funding to do some research in
this field (and hired me to help).  (Some other W3C staff members are
also funded in whole or in part to work on this non-standards
activity; I'm not sure of the details.)  Of course our research should
wisely borrow from all relevant science, but that can be difficult.
How am I supposed to read all the papers when I spend all day arguing
with you?  :-)  

> >(Again, there are so many different things people want to do with the
> >semantic web.....   Sorry for rambling.)
> 
> Fine. Sorry for being so direct in my replies.

So far it's been fine.  And I do feel like I've crystalized my
thinking on existential variables in RDF enough today to clean up some
of my code.  In particular, I now believe it's okay to Skolemize one
of the two graphs before unification, which helps.  I'm not sure what
to take away from the layering/expressive-power side of the
discussion.

   -- sandro
Received on Tuesday, 11 September 2001 22:38:10 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 7 December 2009 10:53:09 GMT