我很难根据我的URIRef(即SPAQRL查询的输出(打印更宽和更窄的SKOS概念。我想根据捕获的URI REF(即生物质(打印更宽和更窄的概念。我正在解析的文件不包含Broader和Narrowers概念。我不知道在对它们运行查询之前是否需要手动将它们添加到文件中。
我已经看到类似的问题,如skos广义逆和狭义逆不起作用,但找不到解决方案。
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)
查询的输出是
for row in qres: print(row)
(rdflib.term.URIRef('http://aims.fao.org/aos/agrovoc/c_926'),)
我尝试过嵌套SELECT查询,但它不起作用。
我的查询
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" . }
""")