0

私はrdflibPythonで使用しており、SPARQL SELECT関連データを取得するためにクエリを実行しています。

FILTER以下に説明するようなコマンドを使用して、いくつかの基準のデータをフィルタリングするのは非常に簡単ですFILTER regex(?pname,'"""+samplepersnalisedexpertise+"""',"i")が、一致しないデータを選択する必要がある場合、どのように使用する必要がありますFILTERか?以下を使ってみFILTER (?personuri != '"""+imURI+"""')ましたが、うまくいきません。

exprtppl=  GraphR.query(""" 
PREFIX foaf: <http://xmlns.com/foaf/0.1/>         
PREFIX owl: <http://www.w3.org/2002/07/owl#>      
PREFIX dc: <http://purl.org/dc/elements/1.1/>         
PREFIX bibo: <http://purl.org/ontology/bibo/>

SELECT ?nname 
{ 
    ?puburi dc:title ?pname. 
    FILTER regex(?pname,'"""+samplepersnalisedexpertise+"""',"i")
    ?personuri foaf:publications ?puburi.
    ?personuri foaf:nick ?nname
    FILTER (?personuri != '"""+imURI+"""')

 }""")

あなたの誰かが解決のために助けてくれますか?前もって感謝します。

4

1 に答える 1

3

引用符で囲むのではなく、フィッシュフックで囲む必要があるURI値と比較しようとしています。

FILTER(?personuri != <"""+imURI+""">)

ちなみに、@ morphynが(str()関数を使用して)上記で示した提案も機能しますが、効率は低下します。

于 2012-11-15T04:06:02.577 に答える