Как эффективно получить информацию о прыжках в викиданных в sparql? - PullRequest
0 голосов
/ 13 мая 2019

Учитывая term/concept, я хочу решить, принадлежит ли он computer science.Для этого я проверяю, есть ли у концепции путь к узлу computer science.Другими словами, я проверяю, является ли computer science наследственным понятием.

Для этой цели я использую следующий запрос викиданных.

SELECT DISTINCT ?item {
VALUES ?searchTerm { "word2vec"}
SERVICE wikibase:mwapi {
    bd:serviceParam wikibase:api "EntitySearch".
    bd:serviceParam wikibase:endpoint "www.wikidata.org".
    bd:serviceParam wikibase:limit 3 .
    bd:serviceParam mwapi:search ?searchTerm.
    bd:serviceParam mwapi:language "en".
    ?item wikibase:apiOutputItem mwapi:item.
    ?num wikibase:apiOrdinal true.
}
?item (wdt:P279|wdt:P31) ?type
filter exists {?type (wdt:P279|wdt:P361)* wd:Q21198}
}
ORDER BY ?searchTerm ?num

Однако запрос получает тайм-аут.Поэтому я хотел бы знать, есть ли другой способ решения моего подхода.

Примечание: меня интересуют только концепции, которые достигают узла computer science, используя 8 or less hops.Например, возможно ли получить все узлы, связанные с computer science узлом, за 8 или менее прыжков раньше, а затем использовать этот список узлов в качестве словаря для проверки концепций.Пожалуйста, дайте мне знать, если мои объяснения не ясны.

Я с удовольствием предоставлю более подробную информацию, если это необходимо.

...