imr*_*ran 5 python filter sparql rdflib
我正在尝试使用 RDFlib Python 中的以下查询针对用户的名字文字获取 uri。
plugin.register(
'sparql', rdflib.query.Processor,
'rdfextras.sparql.processor', 'Processor')
plugin.register(
'sparql', rdflib.query.Result,
'rdfextras.sparql.query', 'SPARQLQueryResult')
f1Str="Thomas"
ecsuri= GraphS.query("""
PREFIX akt: <http://www.aktors.org/ontology/portal#>
SELECT ?akturi WHERE{
?akturi akt:family-name ?fname.
FILTER (?fname = """+f1Str+""")
}""")
Run Code Online (Sandbox Code Playgroud)
它给出了以下错误,似乎是由于f1Str,我们如何使用存储在某个变量中的值过滤 SPARQL 中的数据。请帮忙。
*Exception Type: ParseException
Exception Value: Expected "}" (at char 481), (line:10, col:29)*
Run Code Online (Sandbox Code Playgroud)
str()只需尝试使用过滤器将 SPARQL 变量转换为字符串
FILTER (str(?fname) = """+f1Str+""")
如果您需要不区分大小写的搜索,您还可以执行正则表达式查询,如下所示:
FILTER (regex(str(?fname),"""+f1Str+""","i"))
| 归档时间: |
|
| 查看次数: |
1264 次 |
| 最近记录: |