[Versa] More on literal queries

Uche Ogbuji uche.ogbuji at fourthought.com
Sun Sep 4 17:41:21 MDT 2005


On Sun, 2005-09-04 at 13:20 -0600, Michael Olson wrote:
> On Sep 4, 2005, at 10:14 AM, Uche Ogbuji wrote:
> 
> > On Thu, 2005-09-01 at 12:52 -0600, Michael Olson wrote:
> >> Does the this mean the following query
> >>
> >> "some string value"
> >>
> >> should only return a result if there exists a literal in the form of:
> >>
> >> "some string value"
> >> or
> >> "some string value"@some_language
> >> or
> >> "some string value"^^xsd:string
> >>
> >> ??
> >>
> >> same concept for number and boolean literals.
> >
> > I should have known.  This is straight down the rabbit hole, methinks,
> > and I think maybe we're overdoing the importance of the context graph  
> > in
> > a Versa query.
> >
> > Just as I think Versa resource objects are names rather than actual
> > reified RDF resources, I think that other Versa types are values rather
> > than reified RDF literals.  I really do not think we want to play
> > Heidegger games with Versa.
> 
> 
> Just to be clear, we should not use the term "resource" unless we are  
> talking truly about a RDF resource which are the union of
> 
> named nodes
> anonymous nodes
> literal values
> type literals
> 
> This is discussed in section 1.3-1.5 of the semantic document,  and  
> also evident from the rdf and rdfs axiomatic triples which state that  
> both literal and classes are subclasses of rdf:Resource (so all  
> instances of each are instances of rdf:Resource assuming support for  
> the entailment rule rdfs11).
> 
> That being said, I imagine what your talking about here is you dislike  
> of the simple entailment rules WRT resources, namely se1, se2 and lg  
> which talk about the allocation of blank nodes for members of a  
> statement.
> 
> If so, then we must decide what Versa requires as an underlying model.   
> If it is simple a RDF Graph, ie a collection of triples, then Versa  
> would function as you say where <uri> is just a name and the model can  
> do with it what it like.  With this approach then I don't think the  
> specification can talk about any semantics of RDF and is purely a  
> system for querying a set of RDF triples.  ie, we could not say _Versa_  
> understands the semantics around rdf:type because we do no require the  
> versa data model to under stand these semantics, so type becomes yet  
> another predicate in the model.  Same with transitivity of subClassOf  
> or the expansion of subPropertyOf etc.
> 
> If however, we wish to support a higher level of semantics in the Versa  
> language, then I see no other path then to use the rdf semantics as a  
> guide.  If we don't, then how do we expect others to implement Versa as  
> a RDF query language if the language itself is not designed to work  
> with a RDF model?
> 
> I, of course, choose the second option because a language that only  
> supports searching a set of triples is not very useful.
> 
> That being said, I don't think we need to mandate any level of  
> entailment in a versa data model.  I do think we cannot limit ourselves  
> to exclude implementors that wish to pursue the RDF specification in  
> its fullest,  that includes thinking that a URI == a node in the graph,  
> and that literals have no meaning in the graph and are just values.
> 
> My attempt in the data types section was to not limit this and vaguely  
> talk about a "representation of a node" and in no way limit it to being  
> either just a URI, or force it to be a "blank node allocated for the  
> resource"

I think I follow about 50% of all this (again back to my comments about
RDF having turned itself into an inscrutable mess).

My position comes from the simplest point of view.  I would be bloody
surprised if the result of an XPath query "3.0" was the empty node set
just because I didn't happen to have that literal value anywhere in my
XML.

I daresay any user would be surprised to see the same weirdness in
Versa.

I will comment on one thing you say:

> If however, we wish to support a higher level of semantics in the Versa  
> language, then I see no other path then to use the rdf semantics as a  
> guide.  If we don't, then how do we expect others to implement Versa as  
> a RDF query language if the language itself is not designed to work  
> with a RDF model?

One thing I do know about the battle to turn RDF into CGng is that RDF
was *not* changed to assert a closed world assumption.  Whether or not
someone chooses closed or open world assumptions is up to them.

As such, there is nothing in the RDF semantics that says that "if
one particular graph does not have an instance of a resource, that
resource does not exist".  If there were, it would not work for the Web.

In short, I don't believe there is anything in RDF semantics that
mandates the closed world context you're advocating.


-- 
Uche Ogbuji                               Fourthought, Inc.
http://uche.ogbuji.net                    http://fourthought.com
http://copia.ogbuji.net                   http://4Suite.org
Use CSS to display XML, part 2 - http://www-128.ibm.com/developerworks/edu/x-dw-x-xmlcss2-i.html
XML Output with 4Suite & Amara - http://www.xml.com/pub/a/2005/04/20/py-xml.html
Use XSLT to prepare XML for import into OpenOffice Calc - http://www.ibm.com/developerworks/xml/library/x-oocalc/
Schema standardization for top-down semantic transparency - http://www-128.ibm.com/developerworks/xml/library/x-think31.html




More information about the Versa mailing list