У меня проблема с CONSTRUCT SPARQL. CONSTRUCT не возвращает тот же номер экземпляра, что и SELECT. WHERE одинаково в обоих случаях.
CONSTRUCT
SELECT
WHERE
select distinct ?p1 where { ?p1 <http://project.eu/vocab/gender> ?gender. ?p1 <http://project.eu/vocab/hasDiagnosis> ?d1. ?d1 <http://project.eu/vocab/hasDiagnosisAge> ?age. ... ... ... ... ... ... ?p1 <http://project.eu/vocab/survivalMonths> ?survivalMonths. FILTER( (xsd:integer(?age) > "20"^^xsd:integer) && (xsd:integer(?age) < "90"^^xsd:integer)). }
construct { ?p1 <http://project.eu/vocab/gender> ?gender. ?p1 <http://project.eu/vocab/hasDiagnosis> ?d1. ?d1 <http://project.eu/vocab/hasDiagnosisAge> ?age. ... ... ... ... ... ... ?p1 <http://project.eu/vocab/survivalMonths> ?survivalMonths. } where { ?p1 <http://project.eu/vocab/gender> ?gender. ?p1 <http://project.eu/vocab/hasDiagnosis> ?d1. ?d1 <http://project.eu/vocab/hasDiagnosisAge> ?age. ... ... ... ... ... ... ?p1 <http://project.eu/vocab/survivalMonths> ?survivalMonths. FILTER( (xsd:integer(?age) > "20"^^xsd:integer) && (xsd:integer(?age) < "90"^^xsd:integer)). }
но если я изменю фильтр с 20 до 70 лет в обоих запросах, то получу одинаковые результаты. 400 чел.