如何解决如何从sparql查询中过滤任何定义概念?
我将使用从DBpedia中提取的SPARQL查询来构建主题层次结构树。 如何从sparql查询中过滤掉没有定义的概念?
我当前的代码如下:
from SPARQLWrapper import SPARQLWrapper,N3
from rdflib.extras.external_graph_libs import rdflib_to_networkx_graph
from pprint import pprint
from rdflib import Graph
import networkx as nx
import copy
# Main concept
concept = '<http://dbpedia.org/resource/Category:Machine_learning>'
sparql = SPARQLWrapper("http://dbpedia.org/sparql")
sparql.setQuery(f"""
CONSTRUCT {{ ?child skos:broader {concept} .}}
WHERE {{ ?child skos:broader {concept} .}}
""")
sparql.setReturnFormat(N3)
results = sparql.query().convert()
g_child = Graph()
g_child.parse(data=results,format="n3")
sparql.setQuery(f"""
CONSTRUCT {{ ?child skos:broader {concept} .
?grandchild skos:broader ?child .}}
WHERE {{ ?child skos:broader {concept} .
?grandchild skos:broader ?child .}}
""")
sparql.setReturnFormat(N3)
results = sparql.query().convert()
g_grandchild = Graph()
g_grandchild.parse(data=results,format="n3")
我曾经尝试:
sparql.setQuery(f"""
CONSTRUCT {{ ?child skos:broader {concept} .}}
WHERE {{ ?child skos:broader {concept} .
FILTER(LANG(?deFinition) = 'en')}}
""")
sparql.setReturnFormat(N3)
results = sparql.query().convert()
g_child = Graph()
g_child.parse(data=results,format="n3")
和
sparql.setQuery(f"""
CONSTRUCT {{ ?child skos:broader {concept} .
?grandchild skos:broader ?child .}}
WHERE {{ ?child skos:broader {concept} .
?grandchild skos:broader ?child .
FILTER(LANG(?deFinition) = 'en') }}
""")
sparql.setReturnFormat(N3)
results = sparql.query().convert()
g_grandchild = Graph()
g_grandchild.parse(data=results,format="n3")
但是,图形变为空。
提前谢谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。