Apache Jena/arq には、SPARQL クエリを解析し、SPARQL 代数出力 (SSE 形式) を生成する「qparse」ツールがあります。
しかし、Apache Jena の API は Java で書かれています。そのため、クエリの解析には Redlan librdf (C++) を使用します。用量librdfはそれを行いますか?SSE形式でSPARQL解析データを生成しますか?
(librdf rasqal ツールには特別な形式があることを知っています。
roqet: Querying from file q4.rq
Query:
query verb: SELECT
query projected variable names (2): y, givenName
query bound variables (2): y, givenName
query Group graph pattern[0] {
sub-graph patterns (2) {
Basic graph pattern[1] #0 {
triples {
triple #0 { triple(variable(y), uri<http://www.w3.org/2001/vcard-rdf/3.0#Family>, variable(givenName)) }
}
}
Filter graph pattern[2] #1 {
filter { expr(op regex(expr(variable(givenName)), expr(string("s")), expr(string("i"))))}
}
}
}
roqet: Query has a variable bindings result
result: [y=blank genid1, givenName=string("Smith")]
result: [y=blank genid2, givenName=string("Smith")]
result: [y=blank genid3, givenName=string("Jones")]
result: [y=blank genid4, givenName=string("Jones")]
roqet: Query returned 4 results
)