0

rdflib在 Python 中使用并运行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 回答