【问题标题】:How to create multiple relations with same object property?如何创建具有相同对象属性的多个关系?
【发布时间】:2018-07-12 05:53:54
【问题描述】:

我正在使用 protege 5 开发本体。我创建了has_composition 作为对象属性。在我的本体中,相同的 object_property 用于不同的域及其各自的范围,例如 A 的 has_composition 是 B,C 的 has_composition 是 E 和 F。

如何为这个映射建模??

【问题讨论】:

标签: ontology protege


【解决方案1】:

OWL(Ontology Web Language,定义本体的本体)不允许对您正在尝试做的事情进行建模。

我能想到的一种解决方法是使用子属性。想象一下以下类:

  • Pizza
  • TomatoSauce
  • ChocolateCake
  • Chocolate

如果要定义关系如

  • Pizzahas_compositionTomatoSauce,和
  • ChocolateCakehas_compositionChocolate

然后定义以下关系:

  • has_composition:没有域也没有范围(或者一个常见的超类,例如DishIngredient
    • has_tomato_sauce:域Pizza,范围TomatoSauce
    • has_chocolate:域ChocolateCake,范围Chocolate

这将允许推理器(计算推理的软件)推断如果somethinghas_chocolatea_chocolate,那么

  • somethingrdf:typeChocolate(由has_chocolate的域推断);
  • somethinghas_compositiona_chocolate(因为has_chocolatehas_composition的子属性)。

您可以在this Gist I made 中查看此示例。

下载它,打开它,然后启动推理器。您将看到黄色的推断语句。

【讨论】:

    猜你喜欢
    • 2016-06-22
    • 1970-01-01
    • 2013-02-17
    • 1970-01-01
    • 2020-08-17
    • 1970-01-01
    • 2019-06-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多