如何在 SPARQL 中合并?

How do I merge in SPARQL?

我有两个表需要合并,但我不太确定该怎么做。

这两个表都保留了教师及其教学科目的列表。每个都有一个类似 school:teachescollege:instructs 的谓词,意思相同。我的任务是将学校合并在一起,但据我对 SPARQL 的熟悉程度,我不知道该怎么做?

到目前为止我有

SELECT ?teacher
WHERE {
?teacher school:teaches|college:instructs :courses
}

关于您的数据的信息不足,但假设 :teaches:instructs 仅用于 link 有课程的教师,您需要:

SELECT ?teacher
   WHERE {
   ?teacher school:teaches|college:instructs ?courses .
   }

假设 :courses 是课程的 class,并且您想要属于该 class 的三元组的所有对象,那么您还需要添加此模式:

SELECT ?teacher
   WHERE {
   ?teacher school:teaches|college:instructs ?courses .
   ?courses a :courses .
   }