Как получить двунаправленный n-хмель в sparql - PullRequest
1 голос
/ 11 июля 2019

Я использую следующий запрос, чтобы получить subclass of предикат вверх и вниз для данной концепции в викиданных.

SELECT ?item ?itemLabel ?linkTo {
  { wd:Q22673982 wdt:P279* ?item } UNION { ?item wdt:P279* wd:Q22673982 }
  OPTIONAL { ?item wdt:P279 ?linkTo }
  SERVICE wikibase:label {bd:serviceParam wikibase:language "en" }
}

Чтобы ограничить количество переходов только 10, я расширил вышеупомянутый запрос доследующее.

PREFIX gas: <http://www.bigdata.com/rdf/gas#>

SELECT ?item ?itemLabel ?linkTo {
  { SERVICE gas:service {
    gas:program gas:gasClass "com.bigdata.rdf.graph.analytics.SSSP" ;
                gas:in wd:Q22673982 ;
                gas:traversalDirection "Forward" ;
                gas:out ?item ;
                gas:out1 ?depth ;
                gas:maxVisited 10 ;
                gas:linkType wdt:P279 .
  } } UNION { SERVICE gas:service {
    gas:program gas:gasClass "com.bigdata.rdf.graph.analytics.SSSP" ;
                gas:in wd:Q22673982 ;
                gas:traversalDirection "Reverse" ;
                gas:out ?item ;
                gas:out1 ?depth ;
                gas:maxVisited 10 ;
                gas:linkType wdt:P279 .
  } }
  OPTIONAL { ?item wdt:P279 ?linkTo }
  SERVICE wikibase:label {bd:serviceParam wikibase:language "en" }
}

Я попытался сделать это аналогичным образом, используя DBpedia следующим образом.

SELECT * {
  { dbr:Word2vec dct:subject* ?item } UNION { ?item dct:subject* dbr:Word2vec }
  OPTIONAL { ?item dct:subject ?linkTo }
}

Однако я получаю следующую ошибку: Virtuoso 37000 Error SP031: SPARQL compiler: Variable '_::trans_subj_4_0' is used in subexpressions of the query but not assigned

Мой вопрос:Можно ли сделать то же самое в DBpedia?

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

1 Ответ

1 голос
/ 12 июля 2019

Ошибка Virtuoso 37000 SP031: Компилятор SPARQL: ... Ошибка отмечена в нескольких открытых проблемах ( # 530 , # 681 ) в размещенный на github проект Virtuoso.

Как уже отмечалось, ваш запрос, скорее всего, будет выполняться, если вы просто снимите флажок Строгая проверка пустых переменных в форме запроса SPARQL.

...