【问题标题】:OWL ontology design with protegeOWL本体设计与protege
【发布时间】:2013-04-07 20:49:51
【问题描述】:

您好,我正在设计一个本体,我需要在其中为名为“Person”的类定义数据属性“SSN”。现在,我正在考虑的一个限制将是唯一性的。也就是说,“Person”类的两个实例不应该具有相同的 SSN。 我的问题:如何在 Protege 中定义这种限制?

http://www.co-ode.org/resources/reference/manchester_syntax/

定义了一些限制,但我认为没有什么适合我的情况。

【问题讨论】:

    标签: semantic-web owl protege


    【解决方案1】:

    您只需将 SSN 属性定义为inverse-functional。逆函数属性意味着无论您在何处看到给定的范围值,您都知道主题资源必须相同。所以,如果p 是反函数,你有:

    R0 p N .
    R1 p N .
    

    那么您可以推断R0R1 必须表示同一个人。如果您通过其他一些公理知道R0R1 实际上是不同的,那么推理器将报告您的模型不一致。这与您在 open-world 知识库中所需的一致性检查非常接近。

    【讨论】:

    • 如果需要,您可以使用不同的个体 (DifferentFrom) 公理轻松断言 R0R1 不同。
    • SSN 在我的例子中是一个数据属性,而不是一个对象属性。而反函数只对对象属性有效。
    • 您可以使用urn:x-ssn:12345678 等URI 方案为每个SSN 创建一个个体,而实际的SSN 作为属性使用skos:notation。这将有其他潜在的好处:例如,您可以附加显示给定 SSN 从出生日期和(如果知道)该人的死亡日期起有效的属性。甚至可能已经有 SSN 的官方 URI 方案。
    猜你喜欢
    • 2014-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-03
    • 2013-01-01
    • 1970-01-01
    • 2014-01-27
    • 1970-01-01
    相关资源
    最近更新 更多