我对SPARQL的CONSTRUCT
有疑问。 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
,它的WHERE
句子与SELECT
的返回人数不同。返回500个人。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人。