英語のラベルが付いていないすべてのリソースを選択しようとしています。問題は、別のタグ セレクターでフィルター処理すると、英語のラベルが存在しないことが保証されないことです。はFILTER NOT EXISTS
特定のプロパティに対してのみ機能するようですが、言語セレクターとの組み合わせでは機能しないようです。英語のラベルが付いていないリソースを選択するにはどうすればよいですか?
1 に答える
2
このような:b
英語ラベルのないデータの場合、
@prefix : <http://example.org/> .
:a :label "foo"@en .
:b :label "bar"@fr .
:c :label "baz"@en, "baz"@fr .
:b
英語のラベルがない唯一のリソースであるため、次のようなクエリは only を返します。
prefix : <http://example.org/>
select * where {
?x :label ?label . # find xs that do have a label
filter not exists { # but for which no label in
?x :label ?enLabel . # English exists
filter(langMatches(lang(?enLabel),"en"))
}
}
Jena のsparql
コマンド ライン ツールを使用した結果は次のとおりです。
$ sparql --data data.n3 --query query.rq
-----------------
| x | label |
=================
| :b | "bar"@fr |
-----------------
于 2013-10-22T17:12:55.307 に答える