问题描述
我一直在通过Protege查看和使用OWL,我想知道我是否正确理解了工作流程"及其构想(从头开始建立数据库:
I have been looking at and playing with OWL through Protege and I would like to know if I understand the "workflow" and idea of it correctly (for building up a database from scratch:
- 使用Protege或同等功能为您的数据生成OWL本体
- 将此架构导出到RDF
- 使用定义为三元组中的某些元素的类以及您的目标数据
- 将您的Triplestore导出到RDF
- 使用openRDF/sesame或Jena加载定义的数据和本体
- 根据OWL本体验证RDF三重存储,以确保一切正常
- 使用SPARQL从RDF三重存储中获取数据
- 使用OWL推理程序执行某项操作(此处并不清楚)
我想了解其他人在做什么以及他们如何解决此类问题.
I would like to get an idea of what others are doing and how they are approaching this type of problem.
此外,我还有一个具体问题:
In addition I have a specific question:
似乎猫头鹰推理器仅用于确定本体的子类超类关系.但是就数据而言,如何查询子类-SPARQL中的超类关系.例如,如果我的三重店定义(pizzaID1是-a marghareta),并且我在SPARQL中查询素食比萨饼,那么如何确保返回pizzaID1.
It seems like an owl reasoner is used to determine sub-class superclass relationships only for ontologies. But in terms of data how to you query for subclass - superclass relationships in SPARQL. For example if my triple store defines (pizzaID1 is-a marghareta ) and I query for vegetarian pizza in SPARQL how do I make sure that pizzaID1 is returned.
我认为答案与生成全图"有关,其中明确说明了每种关系.查询三元组时sparql是否会进行任何自动推理,还是需要生成这样的完整图?
I think that the answer has something to do with generating a "full-graph", one in which every relationship is explicitly stated. Does sparql do any automatic reasoning when querying triplestores, or is generating such a full graph neccessary?
推荐答案
有很多可能的工作流程,但实际上并不需要那么复杂.
There are many possible workflows, but it really doesn't have to be that complex.
- 在某些编辑器中生成了OWL本体
- 将本体导出为RDF
- 将本体导入三重存储
- 将数据导入三重存储
- 使用SPARQL查询数据
子/超类推理是推理机的用途,如果您使用带有内置推理机的商店,则SPARQL将使用其信息,因此,如果这样做:
The sub/superclass reasoning is what the reasoner is used for, if you use a store with a builtin reasoner then then it's information will be used by SPARQL, so if you do:
SELECT ?pizza
WHERE {
?pizza a :VegitarianPizza .
}
您将取回属于VegitarianPizza类或其任何子类的所有披萨.
You will get back all the pizzas that are members of the class VegitarianPizza, or any of it's subclasses.
我猜测VegitarianPizza类在您的本体中定义为不包含肉类成分的比萨饼?而不是手动分配每个披萨课?否则,实际上就不需要OWL,您可以只使用RDFS,这要简单得多.
I'm guessing that the class VegitarianPizza is defined in your ontology as a pizza that has no ingredients that are meat? Rather than assigning each pizza to a class by hand? Otherwise there's really no need for OWL, and you could just use RDFS, which is much simpler.
这篇关于RDF和OWL工作流程问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!