RDF和OWL工作流程问题

tjb*_*tjb 3 rdf owl protege semantic-analysis

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

  1. 使用Protege或等效项为您的数据生成OWL本体
  2. 将此架构导出到RDF
  3. 使用定义为triplestore中某些元素的类以及目标数据
  4. 将您的triplestore导出到RDF
  5. 使用openRDF/sesame或Jena加载定义的数据和本体
  6. 根据您的OWL本体验证您的RDF三元组,以确保一切正常
  7. 使用SPARQL从RDF triplestore获取数据
  8. 使用OWL推理器做某事(这里不太清楚)

我想知道其他人在做什么以及他们如何处理这类问题.

另外我有一个具体的问题:

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

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

Ste*_*ris 5

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

  1. 在某些编辑器中生成您的OWL本体
  2. 将本体导出为RDF
  3. 将本体导入triplestore
  4. 将数据导入triplestore
  5. 使用SPARQL查询数据

sub/superclass推理是推理器的用途,如果你使用带有内置推理器的商店,那么它的信息将被SPARQL使用,所以如果你这样做:

SELECT ?pizza
WHERE {
  ?pizza a :VegitarianPizza .
}
Run Code Online (Sandbox Code Playgroud)

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

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