我一直在通过 Protege 查看和使用 OWL,我想知道我是否正确理解“工作流程”和它的想法(从头开始构建数据库:
- 使用 Protege 或等效工具为您的数据生成 OWL 本体
- 将此模式导出为 RDF
- 使用定义为三元组中的某些元素的类以及目标数据
- 将三元组导出到 RDF
- 使用openRDF/sesame或Jena加载定义的数据和本体
- 根据 OWL 本体验证 RDF 三重存储以确保一切正常
- 使用 SPARQL 从 RDF 三元组存储中获取数据
- 使用 OWL 推理机来做某事(这里不太清楚)
我想了解其他人在做什么以及他们如何解决此类问题。
另外我还有一个具体问题:
看起来猫头鹰推理机仅用于确定本体的子类超类关系。但就数据而言,如何在 SPARQL 中查询子类-超类关系。例如,如果我的三重存储定义了 (pizzaID1 is-a marghareta ) 并且我在 SPARQL 中查询素食披萨,如何确保返回 PizzaID1 。
我认为答案与生成“全图”有关,其中明确说明了每个关系。 sparql 在查询三元组时是否会进行自动推理,或者是否需要生成这样的完整图?
有许多可能的工作流程,但实际上不必那么复杂。
- 在某个编辑器中生成你的 OWL 本体
- 将本体导出为 RDF
- 将本体导入 Triplestore
- 将数据导入triplestore
- 使用 SPARQL 查询数据
子/超类推理是推理器的用途,如果您使用带有内置推理器的存储,那么它的信息将由 SPARQL 使用,所以如果您这样做:
SELECT ?pizza
WHERE {
?pizza a :VegitarianPizza .
}
您将取回属于素食披萨类或其任何子类的所有披萨。
我猜 VegarianPizza 类在您的本体中被定义为不含肉类成分的披萨?而不是手动将每个披萨分配给一个类?否则真的不需要OWL,你可以只使用RDFS,这要简单得多。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)