Python 基于阿拉伯语DBpedia本体的Sparql查询

Python 基于阿拉伯语DBpedia本体的Sparql查询,python,sparql,dbpedia,sparqlwrapper,Python,Sparql,Dbpedia,Sparqlwrapper,我正在尝试进行查询,以获取谓词或阿拉伯文DBpedia中已经存在的两个实体之间的关系。。。 我试图在Python中使用Python的SPARQL端点接口(SPARQLWrapper)来实现这一点,因此我设置了数据集名称,查询如下: sparql = SPARQLWrapper("http://ar.dbpedia.org/sparql") sparql.setReturnFormat(JSON) property = [] query = "SELECT ?property WHERE {{ &

我正在尝试进行查询,以获取谓词或阿拉伯文DBpedia中已经存在的两个实体之间的关系。。。 我试图在Python中使用Python的SPARQL端点接口(SPARQLWrapper)来实现这一点,因此我设置了数据集名称,查询如下:

sparql = SPARQLWrapper("http://ar.dbpedia.org/sparql")
sparql.setReturnFormat(JSON)
property = []
query = "SELECT ?property WHERE {{ <{}> ?property <{}> }}".format('http://ar.dbpedia.org/resource/فرنسا', 'http://ar.dbpedia.org/resource/باريس')

sparql.setQuery(query) 
string_s = sparql.query().convert()

if len(string_s['results']['bindings']) != 0:
    bindings = string_s['results']['bindings']
    for b in bindings:
         property.append(b['property']['value'])
     print(property)
sparql=SPARQLWrapper(“http://ar.dbpedia.org/sparql")
setReturnFormat(JSON)
属性=[]
query=“SELECT?property WHERE{{?property}}”。格式('http://ar.dbpedia.org/resource/فرنسا', 'http://ar.dbpedia.org/resource/باريس')
setQuery(查询)
string_s=sparql.query().convert()
如果len(string_s['results']['bindings'])!=0:
bindings=string_s['results']['bindings']
对于绑定中的b:
append(b['property']['value'])
打印(属性)
问题是,当我将数据集名称指定为()时,它在连接中给了我一个错误,如下所示:

sparql = SPARQLWrapper("http://ar.dbpedia.org/sparql")
sparql.setReturnFormat(JSON)
property = []
query = "SELECT ?property WHERE {{ <{}> ?property <{}> }}".format('http://ar.dbpedia.org/resource/فرنسا', 'http://ar.dbpedia.org/resource/باريس')

sparql.setQuery(query) 
string_s = sparql.query().convert()

if len(string_s['results']['bindings']) != 0:
    bindings = string_s['results']['bindings']
    for b in bindings:
         property.append(b['property']['value'])
     print(property)
ConnectionResetError:[WinError 10054]已创建现有连接 被远程主机强制关闭

当我将其更改为默认名称()时,这两个实体之间没有任何关系(我猜这是因为我对没有这两个实体的数据集发出请求!),我通过将数据集名称更改为默认名称,并将查询更改为以下方式,在英语资源上测试前面的代码:

query = "SELECT ?property WHERE {{ <{}> ?property <{}> }}".format('http://dbpedia.org/resource/France', 'http://dbpedia.org/resource/Paris')
query=“SELECT?property WHERE{{{?property}}”。格式('http://dbpedia.org/resource/France', 'http://dbpedia.org/resource/Paris')
它起作用了,给了我这样的(?属性):

['', '']


所以我的问题是,我怎样才能在阿拉伯语数据库上做同样的请求并得到同样的答案?如何查询已存在于阿拉伯语DBpedia中的两个阿拉伯语资源(阿拉伯语实体)之间的链接属性

你想过ar.dbpedia.org/sparql离线吗?如果公共服务不再可用,您可以将阿拉伯语Dbpedia加载到自己的triple store中。除了ping阿拉伯语的维护者之外,你能做的就是这些DBpedia@UninformedUser非常感谢。当我使用rdflibpython库对下载的阿拉伯语DBpedia进行SPARQL查询时,查询工作正常