Sparql-запрос по Араби c DBpedia Онтология - PullRequest
0 голосов
/ 17 марта 2020

Я пытаюсь сделать запрос, чтобы получить предикат или связь между двумя сущностями, уже существующими в Arabi c DBpedia ... Я пытаюсь сделать это в Python, используя интерфейс SPARQL Endpoint для Python (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)

Проблема заключается в том, что я указал имя набора данных как (http://ar.dbpedia.org/sparql ), это дало мне ошибку в соединении, подобное этому:

ConnectionResetError: [WinError 10054] Существующее соединение было принудительно закрыто удаленным хостом

И когда я изменяю это значение по умолчанию (http://dbpedia.org/sparql), оно не дает мне никакой связи между двумя сущностями (и я предполагаю, что это потому, что я делаю запрос к набору данных, в котором нет двух сущностей!) Я тестирую предыдущий код на ресурсах Engli sh, меняя имя набора данных на имя по умолчанию и меняя запрос следующим образом:

query = "SELECT ?property WHERE {{ <{}> ?property <{}> }}".format('http://dbpedia.org/resource/France', 'http://dbpedia.org/resource/Paris')

он сработал и дал мне (? Свойство) как это:

['* 10 23 * ',' http://dbpedia.org/ontology/capital ']

Итак, мой вопрос: как я могу сделать тот же запрос и получить тот же ответ на Араби * 1036? * DBpedia? Как я могу узнать о свойстве, которое связывает ресурсы 2 Arabi c (объекты Arabi c), которые уже существуют в Arabi c DBpedia?

...