我有一个返回重复项的sparql查询,我希望它只在其中一个值(subjectID)上清理它们.与DISTINCT不同,DISTINCT似乎为所选值的组合找到了唯一值,而不是仅针对其中一个参数.我看到有人在这里建议分组,但是如果我在分组后列出所有参数(我的sparql端点抱怨,例如SELECT中的非组键变量:?占用),这似乎只适用.我尝试运行内部选择,但它似乎不适用于此特定查询.所以可能是查询本身的问题(livingIn可选的值似乎导致重复)?
虽然在使用SPARQL的学习曲线的早期关系数据库很开心,所以请随意解释显而易见的原因!:)
select distinct
?subjectID ?englishName ?sex ?locatedIn15Name
?dob ?dod ?dom ?bornLocationName ?occupation
where {
?person a hc:Person ;
hc:englishName ?englishName ;
hc:sex ?sex;
hc:subjectID ?subjectID;
optional { ?person hc:livedIn11 ?livedIn11 .
?livedIn11 hc:englishName ?lived11LocationName .
?livedIn11 hc:locatedIn11 ?locatedIn11 .
?locatedIn11 hc:englishName ?locatedIn11Name .
?locatedIn11 hc:locatedIn15 ?locatedIn15 .
?locatedIn15 hc:englishName ?locatedIn15Name .
} .
optional {?person hc:born ?dob } .
optional {?person hc:dateOfDeath ?dod } .
optional {?person hc:dateOfMarriage ?dom } .
optional { ?person hc:bornIn ?bornIn .
?bornIn hc:englishName …Run Code Online (Sandbox Code Playgroud)