Sparql查询包含结果

时间:2018-04-05 13:01:45

标签: sparql owl semantic-web

在以下背景下不熟悉语义网:

// owl in terms of Java-like syntax
Class Person {}
Class GraduateStudent extends Person {reference takesCourse [*] : GraduateCourse}
Class Student intersect Person {reference takesCourse [*] : Course}
Class UndergradStudent extends Student {}

Class Course{}
Class GraduateCourse extends Course{}
Class CsCourse extends Course{}

我的问题是为什么Q1⊑Q2不成立?特别是,如果我理解正确,Q1选择本科学生参加CsCourse和研究生学习研究生课程,Q2选择本科学生参加任何课程和研究生参加任何课程:

// Q1:
SELECT ?x ?y WHERE 
{ 
  { ?x a :UndergradStudent .
    ?x :takesCourse ?y . 
    ?y a :CsCourse 
  }
    UNION 
  { ?x a :GraduateStudent .
    ?x :takesCourse ?y 
  }
}

// Q2: 
SELECT ?x ?y WHERE 
{ 
  {
    { 
      ?x a :UndergradStudent . 
      ?x :takesCourse ?y 
    }
     UNION 
    { 
      ?x a :GraduateStudent .
      ?x :takesCourse ?y 
    } 
   }
   ?y a :Course .
}

编辑:此示例可在以下位置找到:http://sparql-qc-bench.inrialpes.fr/UCQrdfs.html,Q43b和Q43c。

0 个答案:

没有答案