Как использовать ИЛИ в сервисах викиданных rdf Graph

Я взял пример с поиска детей Геншис-хана. Как я могу сказать графику, чтобы двигаться либо P40 или P10. Я хотел бы, чтобы граф мог перемещаться по 2 типам LinkType

#Children of Genghis Khan
#defaultView:Graph
PREFIX gas: <http://www.bigdata.com/rdf/gas#>

SELECT ?item ?itemLabel ?pic ?linkTo
WHERE {
  SERVICE gas:service {
    gas:program gas:gasClass "com.bigdata.rdf.graph.analytics.SSSP" ;
                gas:in wd:Q720 ;
                gas:traversalDirection "Forward" ;
                gas:out ?item ;
                gas:out1 ?depth ;

                gas:maxIterations 4 ;
                gas:linkType wdt:P40.#Here, how can I do a OR operation
  }
  OPTIONAL { ?item wdt:P40 ?linkTo }
  OPTIONAL { ?item wdt:P18 ?pic }
  SERVICE wikibase:label {bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" }
}

person Loredra L    schedule 19.01.2018    source источник


Ответы (1)


Операторы UNION дают вам эффект операции ИЛИ, поэтому теоретически дублирование и вложение вашего текущего предложения SERVICE для P40 и объединение его с другим для P10 должно помочь. Например:

#Children of Genghis Khan
#defaultView:Graph
PREFIX gas: <http://www.bigdata.com/rdf/gas#>

SELECT ?item ?itemLabel ?pic ?linkTo
WHERE {
  {
    SERVICE gas:service {
      gas:program gas:gasClass "com.bigdata.rdf.graph.analytics.SSSP" ;
                  gas:in wd:Q720 ;
                  gas:traversalDirection "Forward" ;
                  gas:out ?item ;
                  gas:out1 ?depth ;
                  gas:maxIterations 4 ;
                  gas:linkType wdt:P40.
    }
    OPTIONAL { ?item wdt:P40 ?linkTo }
  } UNION {
    SERVICE gas:service {
      gas:program gas:gasClass "com.bigdata.rdf.graph.analytics.SSSP" ;
                  gas:in wd:Q720 ;
                  gas:traversalDirection "Forward" ;
                  gas:out ?item ;
                  gas:out1 ?depth ;                  
                  gas:maxIterations 4 ;
                  gas:linkType wdt:P10.
    }
    OPTIONAL { ?item wdt:P10 ?linkTo }
  }
  OPTIONAL { ?item wdt:P18 ?pic }
  SERVICE wikibase:label {bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" }
}
person Dan Scott    schedule 22.01.2018