Evaluation: XSRQL

Note: the reviewer is not an XQuery expert. 
This evaluation should be treated as a starting point.

	Andy


XsRQL is defined in
http://www.fatdog.com/xsrql.html

3.1 RDF Graph Pattern Matching

[XsRQL+] Graph patterns can be formed from triple patterns but the triple()
selector only takes a single argument.

"""
The second mechanism, a built-in triples() function, returns triples that
already exist in the datastore, seeding the function with a single argument.
"""

The single argument means that multiple triple graph patterns must be
managed by application and the graph pattern is implicit.


3.2 Variable Binding Results

[XsRQL-?] The result format is a sequence of items.  If each item is a
binding, it is a structure within the type system but it is not clear this
can be done.  The comma operator concatenates its arguments.

An output serialization to represent the result table can be done (as
illustrated) but the results have to be reparsed.


3.3 Extensible Value Testing

[XsRQL-] although the general Xquery style could be applied to do it.


3.4 Subgraph Results 

[XsRQL-?] There is no concept of a graph.  The examples in the document only
cover single triple matching/construction.  The  grammar does not cover
"return" statement so it is not clear how to return graphs of more than one
triple constructor.  

e.g. (?x rdf:type foaf:Person)
     (?x foaf:name ?name).

Given the syntactic nature of the results (it's a sequence of formed
elements) there has to be a standard way to form a graph: a sequence of
triples is a possibility.  This is not discussed in the document.


3.5 Local Queries

[XsRQL+] XsRQL is designed to operate on local data.

3.6 Optional Match 

[XsRQL+] Has "if" statements to alter the flow of control.


3.7 Limited Datatype Support

[XsRQL+?] The grammar has

"""
generalComparison ::= additiveExpr
                    ( ( <Equals> | <NotEquals> | <Lt>
                      | <LtEquals> | <Gt> | <GtEquals> ) )? 
"""

3.8 Bookmarkable Queries 

[XsRQL+] but the queries are very long.


3.10 Result Limits 

[XsRQL-]

3.11 Iterative Query 

N/A

3.12 Streamability

[XsRQL+?] 


4.1 Human-friendly Syntax 

[XsRQL+] if the application writer is familiar with XQuery.


4.2 Provenance 

[XsRQL?] Mentions quads but does not explain them.  Probably "yes" by
analogy to triples.


4.3 Non-existent Triples 

[XsRQL+] 

4.4 User-specifiable Serialization 

N/A


4.5 Aggregate Query 

[XsRQL-] But "datasource" could be magiced to do it.


4.6 Additional Semantic Information 

[XsRQL+] 


4.7 Bandwidth-efficient Protocol

N/A


4.8 Literal Search 

[XsRQL-?] No reason why not (have "literal(regex)" ) but it is not in the
document.

4.9 Boolean Query

[XsRQL+] Can have query whose output is <true/> or <false/>

Received on Thursday, 1 July 2004 09:47:40 UTC