在OWL类之间使用单个RDF三元组,而不是OWL someValuesFrom限制?

时间:2018-10-17 09:19:14

标签: rdf owl semantic-web

我们有一个OWL本体,其中包含旨在仅在OWL中使用的属性someValuesFrom限制(我们没有实例级别),例如以下内容(RDF Turtle语法):

:isResponsibleFor a owl:ObjectProperty;
                  rdfs:domain :Role;
                  rdfs:range :Task.

:SystemAdministrator rdfs:subClassOf :Role;
                     rdfs:subClassOf
                     [ a owl:Restriction ;
                       owl:onProperty :isResponsibleFor ;
                       owl:someValuesFrom :ServerAdministration].

虽然OWL限制在功能样式语法或Protégé中可能很好,但它们会给基于RDF的工具链带来一系列问题,例如:

  • 在不同格式之间进行转换或在基于RDF的工具中进行加载和保存,由于Blanknode语句混乱,导致输出不可读或难以处理,这也会影响版本控制。
  • 基于图的可视化显示了大量不必要的节点,需要将其过滤掉并转换为直接边缘。
  • 编辑令人困惑,尤其是对于不了解此问题的编辑器。

由于这些问题,我们想像这样对这些语句建模:

:SystemAdministrator :isResponsibleFor :ServerAdministration.

我们不使用推理程序,因此限制类表达式的OWL配置文件没有问题,但这在语义上仍然是错误的。另外,将来有人可能会实际添加一个实例层,因此我们希望找到一个折衷方案。是否可以通过某种方式将限制的语义建模到属性本身或属性的派生中?这个定义可能很混乱,因为它只有一次定义,而我们有数千个限制。

例如,可能有一个属性:isResponsibleForSome:

:isResponsibleForSome a owl:ObjectProperty;
                  rdfs:domain [rdfs:subClassOf :Role];
                  rdfs:range [rdfs:subClassOf :Task].

每当在两个C类和D类之间有一个声明:“ C:isResponsibleForSome D”时,这应暗示:

C rdfs:subClassOf
                 [ a owl:Restriction ;
                   owl:onProperty :isResponsibleFor ;
                   owl:someValuesFrom D].

但是,这里的blanknodes使用不正确,因为它们引用的是特定的子类,而不是任何子类。是否可以在OWL中正确编码此含义?如果是,怎么办?

0 个答案:

没有答案