RDF和OWL工作流程问题

时间:2011-02-26 13:10:51

标签: rdf owl protege semantic-analysis

我一直在通过Protege查看和玩OWL,我想知道我是否正确理解了“工作流程”和它的想法(从头开始构建数据库:

  1. 使用Protege或等效的
  2. 为您的数据生成OWL本体
  3. 将此架构导出为RDF
  4. 使用在triplestore中定义为某些元素的类以及目标数据
  5. 将您的triplestore导出为RDF
  6. 使用openRDF / sesame或Jena加载定义的数据和本体
  7. 根据您的OWL本体验证您的RDF三元组以确保一切正常
  8. 使用SPARQL从RDF triplestore获取数据
  9. 使用OWL推理器做某事(这里不太清楚)
  10. 我想知道其他人在做什么,以及他们如何处理这类问题。

    此外,我还有一个具体问题:

    似乎猫头鹰推理器仅用于确定本体的子类超类关系。但就数据而言,如何查询子类 - SPARQL中的超类关系。例如,如果我的三重商店定义(pizzaID1是-a marghareta)并且我在SPARQL中查询素食比萨,我如何确保返回pizzaID1。

    我认为答案与生成“全图”有关,其中每个关系都是明确说明的。 sparql在查询三重存储时是否进行任何自动推理,或者是否需要生成这样一个完整的图形?

1 个答案:

答案 0 :(得分:5)

有许多可能的工作流程,但实际上并不一定非常复杂。

  1. 在某个编辑器中生成您的OWL本体
  2. 将本体导出为RDF
  3. 将本体导入到triplestore
  4. 将数据导入到triplestore
  5. 使用SPARQL查询数据
  6. sub / superclass推理是推理器的用途,如果你使用带有内置推理器的商店,那么它的信息将被SPARQL使用,所以如果你这样做:

    SELECT ?pizza
    WHERE {
      ?pizza a :VegitarianPizza .
    }
    

    您将获得VegitarianPizza类或其任何子类成员的所有比萨饼。

    我猜测VegitarianPizza课程在你的本体中被定义为没有肉类成分的披萨?而不是手动将每个披萨分配到一个班级?否则,真的不需要OWL,你可以使用RDFS,这更简单。