如何解决根据捕获的 URI REF
我很难根据我的 URIRef(即 SPAQRL 查询的输出)打印 SKOS 更广泛和更狭窄的概念。我想根据捕获的 URI REF(即生物量)打印更广泛和更窄的概念。我正在解析的文件不包含 broader 和 Narrowers 概念。我不知道在对它们运行查询之前是否需要手动将它们添加到文件中。
我已经看到类似 skos broader and narrow inverse not working 的类似问题,但找不到解决方案。
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" . }
""")
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。