SPARQLthon33/VirtuosoBadKnowhow
提供:TogoWiki
(版間での差分)
(→VALUESのバグ) |
(→VALUESのバグ) |
||
6行: | 6行: | ||
== VALUESのバグ == | == VALUESのバグ == | ||
- | + | 2つめ以降の変数が取得できない | |
([http://www.snee.com/bobdc.blog/2012/09/sparql-11s-new-values-keyword.html 参考資料]) | ([http://www.snee.com/bobdc.blog/2012/09/sparql-11s-new-values-keyword.html 参考資料]) | ||
20行: | 20行: | ||
</pre> | </pre> | ||
- | + | (ただし、以下の例は大丈夫) | |
- | + | ||
- | + | ||
<pre> | <pre> | ||
PREFIX dm: <http://learningsparql.com/ns/demo#> | PREFIX dm: <http://learningsparql.com/ns/demo#> | ||
32行: | 30行: | ||
} | } | ||
</pre> | </pre> | ||
+ | |||
+ | * Virtuoso 7.0 では大丈夫だった | ||
+ | * Virtuoso 7.1 でバグが入った? | ||
* Virtuoso 7.2 で直った | * Virtuoso 7.2 で直った | ||
** テスト環境:Virtuoso 7.2.0.1 http://sparql.nibb.ac.jp/sparql | ** テスト環境:Virtuoso 7.2.0.1 http://sparql.nibb.ac.jp/sparql |
2017年7月6日 (木) 07:34時点における版
目次 |
バージョン
- stable版 (7.2.0.1) はよさそう
- その後のdevelopment版は、評判が良くなかった
- 追記:stable版 7.2.1 が出た(6/24)
- 要確認
VALUESのバグ
2つめ以降の変数が取得できない (参考資料)
PREFIX dm: <http://learningsparql.com/ns/demo#> SELECT * WHERE { VALUES (?color ?direction) { ( dm:red "north" ) ( dm:blue "west" ) } }
(ただし、以下の例は大丈夫)
PREFIX dm: <http://learningsparql.com/ns/demo#> SELECT * WHERE { VALUES (?color ?direction) { ( dm:red "north" ) } }
- Virtuoso 7.0 では大丈夫だった
- Virtuoso 7.1 でバグが入った?
- Virtuoso 7.2 で直った
- テスト環境:Virtuoso 7.2.0.1 http://sparql.nibb.ac.jp/sparql
BINDのバグ
SPARQLのWHERE内では基本的にトリプルパターンの記述順序は結果に影響しないが、BINDの記述位置によっては結果が返ってこなかったりエラーになるケースがある。
- OKケース
SELECT ?label2 WHERE { ?s rdfs:label ?label . BIND (REPLACE(?label, "hoge", "") AS ?label2) }
- NGケース
SELECT ?label2 WHERE { BIND (REPLACE(?label, "hoge", "") AS ?label2) ?s rdfs:label ?label . }
デフォルトで入っているグラフについて
デフォルトで、下記の5つのグラフが入っており、計5,819トリプルある。(調査環境:Virtuoso 7.2.0.1)
- http://localhost:8890/sparql
- ここに収まっている情報は、エンドポイントのURLにアクセスしたときに、service descriptionとして返される。
- http://localhost:8890/DAV/
- http://www.w3.org/2002/07/owl#
- OWL2ではない。OWL1?
- ルールとして登録されている(ルール名 http://www.w3.org/2002/07/owl#)
- このルールおよびグラフを消しても owl:sameAs や owl:SymmetricPropertyは効いた
- http://www.openlinksw.com/schemas/virtrdf#
- グラフを削除してみたが、再起動すると復活した
- http://www.w3.org/ns/ldp#
- 7.2で追加されていたグラフ
- グラフを削除してみたが、再起動すると復活した
- ルールとして登録されている(ルール名 ldp)
- ルールを削除してみたが、再起動するとルールが復活していた
- グラフの内容は、以下の3トリプルのみ
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix ldb: <http://www.w2.org/ns/ldp#> . ldb:DirectContainer rdfs:subClassOf ldb:Container . ldb:BasicContainer rdfs:subClassOf ldb:Container . ldb:IndirectContainer rdfs:subClassOf ldb:Container .
他に気付いたこと
- virtuoso.dbにパスワードも保存されているようだ
- v 7.2.0.1 から v 7.2.2.1 にしてみたが、逆に応答が遅くなった
- isqlの方がカウントが速い
- Virtuoso 7.2で、dbディレクトリに以下のファイルが生成されていた
- virtuoso.cpt
- checkpoint_in_progress
- virtuoso-temp.db や virtuoso.pxa の役割は何?
- なぜ > を >= にしたら IF の3段入れ子が動かない?
- HAVINGのうれしさは何なのか
グラフ名
- グラフ名の指定で、どの程度パフォーマンスが改善するのか?
- V6で、グラフのリストを出したときに、大文字が小文字に変わっている
- グラフ名の最後が/でないとき、prefixを使った省略ができる
SPARQL Service Description [1]
- curl http://mbgd.genome.ad.jp:7051/sparql で返ってきた結果の末尾
<div xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns="http://www.w3.org/1999/xhtml" xmlns:sd="http://www.w3.org/ns/sparql-service-description#" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" style="display:none"> <div class="description" about="" typeof="sd:Service"> <div rel="sd:endpoint" resource="http://mbgd.genome.ad.jp:7051/sparql"/> <div rel="sd:feature" resource="http://www.w3.org/ns/sparql-service-description#UnionDefaultGraph"/> <div rel="sd:feature" resource="http://www.w3.org/ns/sparql-service-description#DereferencesURIs"/> <div rel="sd:resultFormat" resource="http://www.w3.org/ns/formats/RDF_XML"/> <div rel="sd:resultFormat" resource="http://www.w3.org/ns/formats/Turtle"/> <div rel="sd:resultFormat" resource="http://www.w3.org/ns/formats/SPARQL_Results_CSV"/> <div rel="sd:resultFormat" resource="http://www.w3.org/ns/formats/N-Triples"/> <div rel="sd:resultFormat" resource="http://www.w3.org/ns/formats/N3"/> <div rel="sd:resultFormat" resource="http://www.w3.org/ns/formats/SPARQL_Results_JSON"/> <div rel="sd:resultFormat" resource="http://www.w3.org/ns/formats/RDFa"/> <div rel="sd:resultFormat" resource="http://www.w3.org/ns/formats/SPARQL_Results_XML"/> <div rel="sd:supportedLanguage" resource="http://www.w3.org/ns/sparql-service-description#SPARQL10Query"/> <div rel="sd:url" resource="http://mbgd.genome.ad.jp:7051/sparql"/> </div> </div>
- HTMLの一部として返すんじゃなくて、RDFのみを返すには、どうすればいいのかな。(EBI RDFみたいに)