Есть ли способ использовать своего рода переменную-заполнитель со SPARQL, не возвращая ее при использовании SELECT *
?
Например:
SELECT * WHERE {
?s dcterms:title ?title;
foaf:person ?name.
?s2 :inProject ?s.
}
Где бы я не хотел возвращать переменную ?s
, только переменные ?title
, ?name
и ?s2
, оставляя SELECT *
.
Я понимаю, что могу ограничить результаты выбора, используя SELECT ?title ?name ...
, но мне просто любопытно, есть ли какое-то обозначение для переменных-заполнителей или какой-то способ управлять этим.
РЕДАКТИРОВАТЬ:
Я понимаю, что в некоторых случаях для этого можно использовать пустые узлы, например:
SELECT * WHERE {
_:s dcterms:title ?title;
foaf:person ?name.
?s2 :inProject _:s.
}
Однако не вызывает ли это проблем, поскольку пустые узлы нельзя использовать в базовых шаблонах графа? Например, это ломается в случае:
SELECT * WHERE {
_:s dcterms:title ?title;
foaf:person ?name.
OPTIONAL { ?s2 :inProject _:s. }
}
Спасибо!
select * ...
, это не звезда Клини. Звезда Клини означает ноль или более повторений чего-либо. Например,(ab)*
соответствует"ababab"
,"ab"
и""
. Вselect *
*
— это просто заурядный подстановочный знак. - person Joshua Taylor   schedule 23.10.2014