问题描述
我将使用从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 (将#修改为@)