Результат не является «неправильным», оба они являются правильными ответами: они дают вам подмножество из 10 решений всех результатов, соответствующих запросу.
Причина, по которой вы получаете разные решения в результате, заключается в том, что конечная точка SPARQL по-разному оптимизирует выполнение запроса, когда вы пропускаете ?act
из условия SELECT
.Вероятно, он переключается на другой внутренний индекс и возвращает решения в другом порядке.Если бы вы пропустили ограничение, вы бы увидели, что оба результата одинаковы, просто в другом порядке.
Вы можете исправить это, установив конкретный порядок в запросе с предложением ORDER BY
.Например:
PREFIX codi: <http://data.consilium.europa.eu/def/codi/>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX ecv: <http://data.consilium.europa.eu/data/public_voting/rdf/schema/>
PREFIX qb: <http://data.consilium.europa.eu/data/public_voting/qb/dimensionproperty/>
SELECT ?recordedVote ?sessionNumber ?act ?actNumber
WHERE {
?recordedVote a <http://purl.org/linked-data/cube#Observation>.
?recordedVote qb:sessionnrnumber ?session.
?session skos:prefLabel ?sessionNumber.
?recordedVote qb:act ?act.
?act skos:prefLabel ?actNumber
}
ORDER BY ?act
LIMIT 10
и
PREFIX codi: <http://data.consilium.europa.eu/def/codi/>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX ecv: <http://data.consilium.europa.eu/data/public_voting/rdf/schema/>
PREFIX qb: <http://data.consilium.europa.eu/data/public_voting/qb/dimensionproperty/>
SELECT ?recordedVote ?sessionNumber ?actNumber
WHERE {
?recordedVote a <http://purl.org/linked-data/cube#Observation>.
?recordedVote qb:sessionnrnumber ?session.
?session skos:prefLabel ?sessionNumber.
?recordedVote qb:act ?act.
?act skos:prefLabel ?actNumber
}
ORDER BY ?act
LIMIT 10
вернут один и тот же результат (конечно, без столбца).