5

私は現在いくつかの sparql を学んでおり、次の Web サイトでいくつかのステートメントを使用して練習しています。

http://data.semanticweb.org/snorql

ただし、次のステートメントを実行しようとしています。

SELECT DISTINCT ?author WHERE { ?paper swrc:author ?author FILTER(regex(?paper, "2006")) . } .

結果が出ていないと言われています。次のクエリを実行すると (フィルターなし):

SELECT DISTINCT ?paper WHERE { ?paper swrc:author ?author . }

文字列に 2006 が含まれている論文がいくつかあるようです。?paper 文字列に 2006 があるのに、最初のクエリがこれらのエントリを返さないのはなぜだろうか。

誰でもこれで私を助けることができますか?

4

1 に答える 1

7

返される RDF 用語?paperはすべて URI です。フィルター機能はREGEXURI では機能しません。文字列でのみ機能します。関数を使用して URI を文字列に変換できSTR(…)ます。これはうまくいきます:

FILTER(regex(STR(?paper), "2006"))
于 2012-10-24T19:11:12.790 に答える