繁体   English   中英

在Web本体语言中创建类之间的关系(猫头鹰)

[英]Creating relations between classes in web ontology language(owl)

我需要使用OWL语法在本体中定义类之间的关系。 我该怎么办?

首先,请注意,可以使用两种XML语法(除了其他几种非XML语法)来编写OWL。 您的代码段采用RDF / XML语法。 另一种语法是OWL / XML。 OWL入门手册提供了两种语法的示例。

您的片段说:

  • URI <#net>标识一个类。
  • 此类具有标签“网络”(字符串)。
  • 此类与URI <#Node>标识的内容具有“ hasPart”关系。

前两件事是有道理的,但最后一件事却没有。 我想您真正想说的是:

  • URI <#Node>也标识一个类。
  • URI <#hasPart>标识连接两个类( owl:ObjectProperty )的个体的属性。
  • hasPart属性的主题是网络(换句话说,hasPart的域是#net )。
  • hasPart属性的对象是节点(换句话说,hasPart的范围是#node )。

查看OWL Primer中的示例应该可以使您有一个不错的主意,如何将这些内容记下来。 但也请注意,手动编写RDF / XML语法既繁琐又容易出错。 您可能想要使用诸如TopBraid Composer之类的OWL编辑器,或诸如OWL-API之类的编程库来创建OWL文件。 如果您真的想手工编写它们,我建议您使用Turtle语法(同样,Primer包含示例),因为它更具可读性,并且使您开始学习SPARQL(OWL和RDF的查询语言)。

我同意cygri的#net#Node像这样将#Node#net #Node似乎没有任何意义,并且您可能希望#net所有实例都有一部分或某些部分是#Node实例。 为此,您可以编写:

<owl:Class rdf:ID="Node"/>
<owl:Class rdf:ID="net">
    <rdfs:subClassOf>
        <owl:Restriction>
            <owl:onProperty rdf:resource="#hasPart"/>
            <owl:someValuesFrom rdf:resource="#Node"/>
        </owl/Restriction>
    </rdfs:subClassOf>
</owl:Class>

您可能仍想定义直接连接两个类的属性。 例如:

<#Node>  <#isSimilarTo>  <#Vertice> .

要在OWL中执行此操作,可以定义owl:AnnotationProperty

<owl:AnnotationProperty rdf:about="isSimilarTo"/>
<owl:Class rdf:ID="Node">
    <isSimilarTo rdf:resource="#Vertice"/>
</owl:Class>

或者,您可以使用“ punning”,即使用一个类作为实例,例如:

<owl:ObjectProperty rdf:about="isSimilarTo"/>
<owl:Class rdf:ID="Node">
    <rdf:type rdf:resource="&owl;Thing"/>
    <isSimilarTo>
        <owl:Thing rdf:about="#Vertice"/>
    </isSimilarTo>
</owl:Class>

请注意,在OWL DL中,必须实例化所有实例。 在这里, #Node被声明为owl:Thing的类和实例。 这并不意味着owl:Thing可以包含类,而是意味着#Node引用两个不同的事物:类和实例。 在OWL DL中,IRI出现的上下文总是使该术语所指清楚。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM