[Versa] Question about query
Michael Olson
Mike.Olson at fourthought.com
Thu Sep 1 12:15:24 MDT 2005
On Sep 1, 2005, at 12:02 PM, Chimezie Ogbuji wrote:
>> The following is a legal expression in Versa:
>>
>> <http://foo.com>
>>
>
> This doesn't look like current Versa syntax for identifying resources
> (unless you had the previously suggested <..uri ..> form in mind -
> from N3), so I'll assume you meant (@'http://foo.com').
see
http://lists.fourthought.com/pipermail/versa/2005-August/000086.html
and issue 1010 in the issue log.
Since I've received no objections to the proposal I've moved it to
accepted so it is valid next gen versa.
>
>> It can be used as a filter expression in a filter or traversal and it
>> returns a boolean value if the resource matches, etc.
>>
>> My question, is what if this is the top level expression and executed
>> on an empty model. What are the results of the expression?
>> Is it a boolean?
>
> I would think not, since < .. uri .. > (or @' ..uri..') explicitely
> identifies resources.
>
>> Is it null because the resource does not exist?
>
> It *should* be, since Versa is *bound* to an RDF graph and so should
> only be able to resolve resources within that graph. So, either empty
> set or owl:Nothing (see below).
>>
>> Is it just the resource's URI regardless of whether or not it exists?
>
> I wouldn't think you would want to return a resource if it didn't
> exist in the underlying RDF graph. In which case the < .. uri .. > /
> @'.. uri ..' expression would be more of a filter/pattern (in the same
> way it is used in SPARQL) than actually expressing the existence of a
> resource with that uri. It should return null, or nothing.
>
I agree.
>>
>> I think it should be the empty set.
>
> Same, (since we have no concept of 'null'/'None'). Perhaps it should
> return owl:Nothing - and do this anytime an expression evaluates to
> 'nothing'? But then you might have to account for owl:Nothing in the
> datatype comparison matrix? i.e. empty Versa set/list are equivalent
> to owl:Nothing since list(owl:Nothing) should be equivalent to list()?
>
Well, if you read the new spec there is a concept of null/None kinda in
there. It is the results of casting a node --> literal or vice versa.
I don't like the idea of owl:Nothing because that itself is a resource
and you would ask for "http://foo.com" and get back "owl:Nothing" and
with out further checking you would not know you got back a different
resource then you asked for.
Also, that would require all underlying models to understand OWL which
is currently not a requirement.
So are we in agreement, the following queries return an empty set if
the resource is not in the model:
<http://foo.com/res>
@"http://foo.com/res"
foo:res
Mike
>>
>> Mike
>>
>>
>>
>>
>>
>> ----------------------------------------------------------------------
>> --
>> -----------------
>> Mike Olson Principal
>> Consultant
>> mike.olson at fourthought.com +1 720 253 4662
>> Fourthought, Inc.
>> http://Fourthought.com
>> PO Box 270590, http://4Suite.org
>> Louisville, CO 80027-5009, USA
>> XML strategy, XML tools, knowledge management
>>
>> _______________________________________________
>> Versa mailing list
>> Versa at lists.fourthought.com
>> http://lists.fourthought.com/mailman/listinfo/versa
>>
> _______________________________________________
> Versa mailing list
> Versa at lists.fourthought.com
> http://lists.fourthought.com/mailman/listinfo/versa
>
------------------------------------------------------------------------
-----------------
Mike Olson Principal
Consultant
mike.olson at fourthought.com +1 720 253 4662
Fourthought, Inc.
http://Fourthought.com
PO Box 270590, http://4Suite.org
Louisville, CO 80027-5009, USA
XML strategy, XML tools, knowledge management
More information about the Versa
mailing list