Python 根据捕获的URI REF打印范围更广和范围更窄的概念
我很难根据我的URIRef(即SPAQRL查询的输出)打印SKOS更广泛和更狭窄的概念。我想根据捕获的URI REF(即生物量)打印更广泛和更狭窄的概念。我正在解析的文件不包含更广泛和更狭窄的概念。我不知道在对它们运行查询之前是否需要手动将它们添加到文件中 我已经看到了类似的问题,但没有找到解决方案Python 根据捕获的URI REF打印范围更广和范围更窄的概念,python,sparql,semantic-web,rdflib,geosparql,Python,Sparql,Semantic Web,Rdflib,Geosparql,我很难根据我的URIRef(即SPAQRL查询的输出)打印SKOS更广泛和更狭窄的概念。我想根据捕获的URI REF(即生物量)打印更广泛和更狭窄的概念。我正在解析的文件不包含更广泛和更狭窄的概念。我不知道在对它们运行查询之前是否需要手动将它们添加到文件中 我已经看到了类似的问题,但没有找到解决方案 import rdflib g = rdflib.Graph() result = g.parse("C://Users/support/Documents/Re.txt", f
import rdflib
g = rdflib.Graph()
result = g.parse("C://Users/support/Documents/Re.txt", format=("turtle"))
qres = g.query(
"""
prefix skos: <http://www.w3.org/2004/02/skos/core#>
SELECT *
WHERE { ?s skos:prefLabel "Biomass"}
""")
for row in qres: print(row)
我尝试过嵌套SELECT查询,但不起作用
我的问题
qres=g.query(
"""
前缀skos:
挑选*
哪里{s skos:更广泛的?o.{
选择
其中{s skos:prefLabel“Biomative.”
}
""")
对于qres中的行:打印(行)
如果您只是在努力处理查询,那么我认为您是在过度复杂化它。这应该是可行的
qres = g.query(
"""
prefix skos: <http://www.w3.org/2004/02/skos/core#>
SELECT * WHERE {
?s skos:broader ?o ; skos:prefLabel "Biomass" . }
""")
qres=g.query(
"""
前缀skos:
选择*其中{
s skos:更广泛的?o;skos:预先标记“生物量”。}
""")
“我不知道在对它们运行查询之前是否需要在文件中手动添加它们。”-说真的?我的意思是,您如何能够查询数据集中不存在的数据,无论是显式的还是隐式的?命名您的文件Re.txt
也是一种不好的做法。而且它不是URIRef
,而是URI。URIRef只是类在Python API中的命名方式,但在RDF/SPARQL世界中,它只是一个URI和您的最后一个查询无论如何都是无效的SPARQL语法。这将是两个查询,但没有嵌套。或者,您在这里看到嵌套的位置了吗?因此,添加数据,然后运行查询。在您的情况下,“合并”上一次尝试的两个查询。@初学者“在我的脚本中再次定义这些概念”是什么意思?谢谢您,克里斯:)祝您好运!
qres = g.query(
"""
prefix skos: <http://www.w3.org/2004/02/skos/core#>
SELECT *
WHERE { ?s skos:broader ?o . {
SELECT ?s
WHERE { ?s skos:prefLabel "Biomass" .}
}
""")
for row in qres: print(row)
qres = g.query(
"""
prefix skos: <http://www.w3.org/2004/02/skos/core#>
SELECT * WHERE {
?s skos:broader ?o ; skos:prefLabel "Biomass" . }
""")