Могу ли я запускать SPARQL-запросы к дампу Wikidata локально? - PullRequest
0 голосов
/ 24 октября 2019

Я использую сервис запросов SPARQL https://query.wikidata.org для выполнения довольно тяжелых запросов к нему. Например, следующий запрос возвращает список всех химических соединений (экземпляры Q11173 или его подклассов):

SELECT ?item ?boiling_point ?melting_point ?decomp_point ?mass ?smiles
  (GROUP_CONCAT(DISTINCT ?chemFormula; SEPARATOR=", ") AS ?chemFormulae)
  (GROUP_CONCAT(DISTINCT ?chemStructure; SEPARATOR=", ") AS ?chemStructures)
  WHERE {
    ?item wd:P31/wdt:P279*|wdt:P279* wd:Q11173.

    OPTIONAL { ?item wdt:P2102 ?boiling_point. }
    OPTIONAL { ?item wdt:P2101 ?melting_point. }
    OPTIONAL { ?item wdt:P2107 ?decomp_point. }
    OPTIONAL { ?item wdt:P2067 ?mass. }
    OPTIONAL { ?item wdt:P274 ?chemFormula. }
    OPTIONAL { ?item wdt:P117 ?chemStructure. }
    OPTIONAL { ?item wdt:P233 ?smiles. }
  }
  GROUP BY ?item ?boiling_point ?melting_point ?decomp_point ?mass ?smiles

Вот прямая ссылка .

Так как тамболее миллиона экземпляров, этот запрос сбивает время ожидания в одну минуту, и я не вижу возможности оптимизировать запрос, потому что даже без свойств и с LIMIT из 10 записей запрос выполняется ввремя ожидания:

SELECT ?item
  WHERE {
    ?item wd:P31/wdt:P279*|wdt:P279* wd:Q11173.
  }

Прямая ссылка .

Я мог бы запросить подклассы индивидуально, написав сценарии «разделяй и властвуй», но прежде чем я это сделал, я хотелпроверьте более простую возможность:

Могу ли я установить программное обеспечение, используемое для этой конечной точки SPARQL, локально и выполнить те же самые запросы локально с увеличенным временем ожидания? Для меня не имеет значения, если запросзанимает несколько часов.

К сожалению, я не могу найти описание программного стека, используемого query.wikidata.org. Если возможно, я бы хотел использовать один и тот же программный стек, чтобы запросы давали одинаковые результаты. Это позволило бы мне повторно использовать большинство инструментов и сценариев, которые я уже использую.

...