我需要在Protege中对以下示例进行建模:
假设我有一个类Pride,它代表另一个类Lion的实例的集合。没有使用具有最小基数的用户定义对象属性,还有其他方法可以做到这一点吗?
此外,如果狮子的颜色为“黄色”并且是骄傲的成员,那么推理者应该推断骄傲的颜色为“黄色”。如果没有定义一组SWRL规则,还有其他任何事情吗?
答案 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)。