如何建模一个类,它是Protege中另一个类的个体集合

时间:2015-05-13 06:54:20

标签: rdf owl ontology protege swrl

我需要在Protege中对以下示例进行建模:

假设我有一个类Pride,它代表另一个类Lion的实例的集合。没有使用具有最小基数的用户定义对象属性,还有其他方法可以做到这一点吗?

此外,如果狮子的颜色为“黄色”并且是骄傲的成员,那么推理者应该推断骄傲的颜色为“黄色”。如果没有定义一组SWRL规则,还有其他任何事情吗?

1 个答案:

答案 0 :(得分:1)

  

有没有其他方法可以在不使用用户定义的对象的情况下执行此操作   最低基数的财产?

您需要定义某种会员资格属性。它可以是通用的(例如, hasMember ),或者更特定于特定类型(例如, hasLion ),但您需要定义某些东西将集合与其实例相关联。你不需要在这里使用任何基数公理,尽管你可能想说(Pride⊑≥hasMember2)。

  

此外,如果狮子的颜色为“黄色”并且是骄傲的成员,那么推理者应该推断骄傲的颜色为“黄色”。是   如果没有定义一组SWRL规则,还有其他任何事情吗?

要使成员的属性转移到集合,您不必使用SWRL规则。您可以使用子属性链公理。 (但是,您需要为要转移的每个属性执行此操作。)例如,要表达以下事实:

如果狮子的颜色为X并且是骄傲的成员,则骄傲的颜色为X.

你可以使用公理:

hasMember•hasColor⊑hasColor

这意味着只要您拥有以下数据:

P→ hasMember L→ hasColor C

你可以推断

P→ hasColor C

有关其工作原理的详情,请参阅Using Property Chains to get inferred Knowledge in an OWL Ontology(Protege)