On 1 Jun 2007, at 12:36, Dan Brickley wrote:
[snip]
Perhaps I misunderstand the issue,
At least a nuance.
but I wonder whether a block of additional PREFIX declarations
would be enough in some cases.
Yes. It can help with giving a readable name (though then you have
two places to synch your query and if you have a lot of names you can
blow up the prefix heading).
Eg. testing in http://xmlarmyknife.org/api/rdf/sparql/query (ARQ-
based),
I can write the usual:
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT * WHERE {?x a foaf:Document }
...or I can use PREFIX to create direct abbreviations for classes
and properties, in this case abbreviating the verbose and
forgettable word "Document" to the more user-friendly "Doc":
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX Doc: <http://xmlns.com/foaf/0.1/Document>
SELECT * WHERE {?x a Doc: }
This would only be useful where a limited number of such
declarations were needed. And they'd still clutter the query, but
would at least be isolated to a set of skimmable declarations at
the top of the query, rather than in the intellectually more
demanding WHERE clause.
And they don't address the issue of having to label probe. I.e.,
prefix tricks help with the readability of individual triples, but
don't simplify the query overall.
Plus, consider the use in output, and, esp. if you are using the
results from one query to create or adjust others (say in the
Virtuoso client or one of the web forms).
Cheers,
Bijan.