Как написать запрос Sparql для следующего результата?

введите описание изображения здесь [! [Детали запроса SPARQL] [2]] [2]

Как мне написать запрос SPARQL, чтобы получить подробную информацию от node2: URI для node2 одинаков на обоих графиках, а URI для node 1 отличается. Заранее спасибо.

поэтому мне нужны подробности ниже.

node2 def
hasID ghi
hasvertex jkl
hasLastname mno

person Manoj Deshpande    schedule 19.02.2020    source источник
comment
любой учебник ответит на ваш вопрос ... просто используйте тройной шаблон для каждого ребра в вашем графике и для всего, что вы не хотите указывать, используйте avialable. Затем выберите, какие переменные вам нужны. вот и вся история базового SPARQL в двух словах. select ?p ?o where {<node2_uri_here> ?p ?o }   -  person UninformedUser    schedule 19.02.2020
comment
да, я понимаю .... Но если у меня есть два похожих графика, где только URI узла 1 отличается, а URI узла 2 одинаков в обоих графиках. Я хочу сделать запрос в этом состоянии. Подскажите, пожалуйста, как именно пройти в конкретном случае. Спасибо.   -  person Manoj Deshpande    schedule 19.02.2020
comment
Я не знаю, о чем вы сейчас спрашиваете, это не соответствует изображению, которое вы показываете в вопросе. Вы запросили все детали node2, что и делает мой запрос. Так в чем проблема? Используйте оператор DISTINCT, если есть несколько узлов, имеющих ребро к node2: select distinct ?p ?o where {<node2_uri_here> ?p ?o }   -  person UninformedUser    schedule 20.02.2020
comment
Я отредактировал изображение и теперь сделал его более понятным. Пожалуйста, предложите мне запрос на ожидаемый результат. Это было бы действительно полезно. Спасибо. @UninformedUser   -  person Manoj Deshpande    schedule 20.02.2020


Ответы (2)


Чтобы получить все тройки, напишите SELECT ?node2 ?p ?o WHERE {?node2 ?p ?o}.

Теперь, чтобы ограничить результаты графом 1 (определяемым URI узла 1), вам нужно добавить <http://ex/abc> hasName ?node2.

Вместе:

SELECT ?node2 ?p ?o WHERE{
  <http://ex/abc> hasName ?node2 .
  ?node2 ?p ?o
}
person Pascalco    schedule 20.02.2020

Просто немного измените этот SPARQL, чтобы использовать реальные URI для свойств:

SELECT ?node2 ?p ?o
WHERE {
  <http://ex/node1> <http://ex/hasName> ?node2 .
  ?node2 ?p ?o .
}
person Nicholas Car    schedule 13.03.2020