【问题标题】:looping query SPARQL in Python在 Python 中循环查询 SPARQL
【发布时间】:2020-03-13 16:23:52
【问题描述】:

我的任务是为每个术语循环查询 SPARQL。但我不知道如何处理代码,尤其是 Python。我使用 Python 的 RDFlib,我的代码如下所示:

for joined in removed:
print (joined)

输出:

sistem
pakar
diagnosis
penyakit
tht
balita
metode
certainty
factor

这些术语已经通过文本预处理。之后,我想以循环方式查询这些术语。查询格式:

qres = g.query(
"""SELECT ?z 
    WHERE {?x rdfs:label ?z .               
          FILTER CONTAINS (LCASE(str(?z)), LCASE ('THE_TERM')) .    
    }
    LIMIT 100""")

我是 Python 新手,有没有办法连续处理每个术语的查询?还是我应该使用switchcase 函数?请指教,谢谢。

【问题讨论】:

  • 你有一个循环,只是做字符串内联,问题出在哪里?我们开始吧,根据您的 Python 版本,您有多种选择:matthew-brett.github.io/teaching/string_formatting.html
  • 另外,您知道您可以在单个 SPARQL 查询中执行此操作吗?只需使用VALUES 子句

标签: python sparql rdflib


【解决方案1】:

Python 中没有开关!

在此处查看有关循环查询结果的 rdflib 文档:https://rdflib.readthedocs.io/en/stable/intro_to_sparql.html

简而言之:

g = Graph()
# do something to load the graph with data

q = g.query("""SOME SPARQL QUERY""")
for r in g.query():
    print(r)
    # or
    print(r['x'])  # if you returned a variable ?x in your SPARQL query

【讨论】:

    猜你喜欢
    • 2019-12-03
    • 2017-01-23
    • 1970-01-01
    • 1970-01-01
    • 2016-01-23
    • 2013-03-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多