我有一个具有hasParent真实性的系列的RDF数据集。要搜索所有兄弟姐妹对,我有以下查询:
SELECT DISTINCT ?name1 ?name2
WHERE {
?subject1 oranje:hasParent ?object .
?subject2 oranje:hasParent ?object .
?subject1 rdfs:label ?name1 .
?subject2 rdfs:label ?name2 .
FILTER (?subject1 != ?subject2)
}
然而,我如何得到所有半兄弟/姐妹一对?这意味着:兄弟姐妹只有一个共同的父母。
编辑:可能很重要,数据集还包含已婚关系
答案 0 :(得分:1)
这对你有用吗?
SELECT DISTINCT ?name1 ?name2
WHERE {
?child1 oranje:hasParent ?parent , ?otherparent1 .
?child2 oranje:hasParent ?parent , ?otherparent2 .
?child1 rdfs:label ?name1 .
?child2 rdfs:label ?name2 .
FILTER (?child1 != ?child2)
FILTER (?otherparent1 != ?parent)
FILTER (?otherparent2 != ?parent)
FILTER (?otherparent1 != ?otherparent2)
}