【问题标题】:Setting domain and range of a property设置属性的域和范围
【发布时间】:2015-08-13 11:09:51
【问题描述】:

我的 SSN 本体中有两个类(即 Observation 和 Sensor)和一个对象属性(即observedBy)。所以,所需的场景是这样的: protege 中的Observation 类表示为:

observedBy 属性表示为:

现在的问题是,我是否需要指定observedBy 属性的域和范围,因为这两个字段都是空的,如第三张图所示。但是,在查看图 2 中的观察类时,我发现它与语句“observedBy only Sensor” 和“observedBy just 1 sensor”相关联。通过这些陈述,我推断我不需要提及observedBy 属性的域和范围。在这种情况下我是对的吗?

【问题讨论】:

    标签: rdf semantics owl ontology


    【解决方案1】:

    您不必这样做,但这取决于您希望如何为您的知识库建模。基数约束(图中的observedBy exactly 1 Sensor)看起来像是在Observation 类上设置的限制,如下所示:

    :Observation rdfs:subClassOf 
       [ a owl:Restriction;
         owl:onProperty :observedBy;
         owl:minCardinality 1;
         owl:maxCardinality 1 ]
    

    设置observedBy 的rdfs domainrange 实质上会限制属性的使用,这可能是你想做的事情,也可能不是。

    【讨论】:

    • 作为个人意见,我认为 OP 正在为特定域开发本体,并且由于它是针对特定域的,因此使用域和范围属性可能是合理的,而不是像“观察子类observedBy only Sensor”(除非本体中有其他用途)。我的原因是有人断言“x sensorOntology:observedBy y”是有意识地使用 sensorOntology,并且应该知道该属性的预期用途。那么,为什么不使用即使在 RDFS 中也可以使用的更简单的域/范围推理呢?
    • 完全同意。简单是一种美德。在我的回答中,我只解释了编辑器中显示的限制是什么。细粒度语义实际上是意见/建模问题,但域/范围公理的存在是我们所有人都期待的,也许是最低限度的。这两个公理背后也有推理/推理的含义,尽管我不认为这是值得关注的问题。
    • @chris 我可以从您的讨论中推断出,为简单起见:如果将所需的属性作为限制添加到类中,那么我不应该明确添加所述属性的域和范围。此外,如果我将域和范围添加到属性中,尽管将其添加为不会产生任何问题的限制。
    • @JoshuaTaylor 我可以从您的讨论中推断出,为简单起见:如果将所需属性添加为类的限制,那么我不应该明确添加所述属性的域和范围。此外,如果我将域和范围添加到属性中,尽管将其添加为不会产生任何问题的限制。
    • 我的建议是设置 'observedBy' 和所有其他本地定义的属性的域/范围和其他属性级别的语义(例如,函数还是反函数)。如果你不这样做,可能什么都不会破坏,但这样做通常是一个好习惯。您的模型将不那么模棱两可,并且更容易让人们检测到您的属性的预期用途。如果您需要在每个类的基础上微调您的模型,那么您可能会超越简单的属性定义。希望这会有所帮助。
    猜你喜欢
    • 1970-01-01
    • 2014-03-17
    • 2023-03-15
    • 1970-01-01
    • 2013-12-26
    • 1970-01-01
    • 2012-04-16
    • 1970-01-01
    • 2012-03-01
    相关资源
    最近更新 更多