OWL指南 推荐标准-4

TransWiki - W3CHINA.ORG开放翻译计划(OTP)

摘要_文档状态_目录 第1节 第2节 第3节 第4节 第5节 第6节 第7节 鸣谢_词汇表_术语索引_参考文献 附录


目录

4. Ontology Mapping

In order for ontologies to have the maximum impact, they need to be widely shared. In order to minimize the intellectual effort involved in developing an ontology they need to be re-used. In the best of all possible worlds they need to be composed. For example, you might adopt a date ontology from one source and a physical location ontology from another and then extend the notion of location to include the time period during which it holds.
It is important to realize that much of the effort of developing an ontology is devoted to hooking together classes and properties in ways that maximize implications. We want simple assertions about class membership to have broad and useful implications. This is the hardest part of ontology development. If you can find an existing ontology that has already undergone extensive use and refinement, it makes sense to adopt it.
It will be challenging to merge a collection of ontologies. Tool support will almost certainly be required to maintain consistency.

为了让本体发挥最大的作用,就需要让本体得到充分的共享。为了使得在开发本体时尽可能的节省人力,就需要使得开发出的本体能够被重用。更理想的情况是他们能够被组合使用。例如,你可能同时使用来自某一来源的日期本体(date ontology)和来自另一来源的物理位置本体(physical location ontology),并将位置(location)的概念加以扩展以包括这个位置所处在的时间段。
在开发一个本体的过程中,很多的精力都被投入到将类与属性联系起来以获取最大的意义的工作上去了,意识到这一点也是很重要的。我们希望对类成员作出的断言较为简单同时又要求有广泛的和有用的含意在里面。这也是在本体开发过程中最为困难的工作。如果你能够找到已经经过广泛使用和精炼的本体,那么采用它才有意义。
多个本体的合并工作是非常具有挑战性的。为了维护其一致性,几乎必然需要工具的支持。

4.1. Equivalence between Classes and Properties

equivalentClass, equivalentProperty

4.1. 类和属性之间的等价关系

equivalentClass, equivalentProperty

To tie together a set of component ontologies as part of a third it is frequently useful to be able to indicate that a particular class or property in one ontology is equivalent to a class or property in a second ontology. This capability must be used with care. If the combined ontologies are contradictory (all A's are B's vs. all A's are not B's) there will be no extension (no individuals and relations) that satisfies the resulting combination.
当我们要把一些本体组合在一起作为另一个新的本体的一部分时,能说明在一个本体中的某个类或者属性与另一个本体中的某个类或者属性是等价的,这往往很有用。在实际应用中我们这样做的时候要千万小心。因为如果要组合的那些本体是互相矛盾的(所有A的都是B的 与 A的并不全是B的),那么在组合得到的结果中就不会有满足条件的扩展(没有满足条件的个体或关系)了。

In the food ontology we want to link wine features in the descriptions of dining courses back to the wine ontology. One way to do this is by defining a class in the food ontology (&food;Wine) and then declaring it equivalent to an existing wine class in the wine ontology.
在食物本体中,我们现在想把在餐宴菜肴中对葡萄酒特点的描述与葡萄酒本体相联系起来。达到这一目的一种方法就是在食物本体中定义一个类(&food;Wine),然后在葡萄酒本体中将一个已有的类声明为与这个类是等价的。
<owl:Class rdf:ID="Wine">

  <owl:equivalentClass rdf:resource="&vin;Wine"/>

</owl:Class>


The property owl:equivalentClass is used to indicate that two classes have precisely the same instances. Note that in OWL DL, classes simply denote sets of individuals, and are not individuals themselves. In OWL Full, however, we can use owl:sameAs between two classes to indicate that they are identical in every way.
属性owl:equivalentClass被用来表示两个类有着完全相同的实例。但我们要注意,在OWL DL中,类仅仅代表着个体的集合而不是个体本身。然而在OWL FULL中,我们能够使用owl:sameAs来表示两个类在各方面均完全一致。

Of course the example above is somewhat contrived, since we can always use &vin;Wine anywhere we would use #Wine and get the same effect without redefinition. A more likely use would be in a case were we depend on two independently developed ontologies, and note that they use the URI's O1:foo and O2:bar to reference the same class. owl:equivalentClass could be used to collapse these together so that the entailments from the two ontologies are combined.
当然了,上面我们举的例子多少有点刻意人为的意思,因为我们总是能在本来用#Wine的地方使用&vin;Wine以取得同样的效果而不需要重新定义类。一种更可能出现的情况是:我们依赖两个独立开发的本体,并注意到他们使用了O1:foo和O2:bar这两个URI引用相同的一个类。 这时我们就能够使用owl:equivalentClass将这两个类关联起来, 使得从这两个本体中继承的限制也得到合并。
We have already seen that class expressions can be the targets of rdfs:subClassOf constructors. They can also be the target of owl:equivalentClass. Again, this avoids the need to contrive names for every class expression and provides a powerful definitional capability based on satisfaction of a property.
大家都知道,类名(类的表达式)既能用于<rdfs:subClassOf >设计中,又能用于<owl:equivalentClass>设计中。一个类名可多处使用,既省却了命名的麻烦,又给我们提供了基于属性要求的强大的定义能力。



<owl:Class rdf:ID="TexasThings">

  <owl:equivalentClass>
<owl:Restriction>
<owl:onProperty rdf:resource="#locatedIn" />
<owl:someValuesFrom rdf:resource="#TexasRegion" />
</owl:Restriction>
</owl:equivalentClass>

</owl:Class>  ? 


TexasThings are exactly those things located in the Texas region. The difference between using owl:equivalentClass here and using rdfs:subClassOf is the difference between a necessary condition and a necessary and sufficient condition. With subClassOf, things that are located in Texas are not necessarily TexasThings. But, using owl:equivalentClass, if something is located in Texas, then it must be in the class of TexasThings.
TexasThings指的是那些恰好位于Texas地区的事物。使用owl:equivalentClass 和使用rdfs:subClassOf 的不同就像必要条件和充要条件的不同一样。如果是使用subClassOf的话,位于Texas地区的事物不一定是TexasThings。但是,如果使用owl:equivalentClass,位于Texas地区的事物一定属于TexasThings类。


关系 蕴涵
RelationImplications

subClassOfTexasThings(x) implies locatedIn(x,y) and TexasRegion(y)
equivalentClass  TexasThings(x) implies locatedIn(x,y) and TexasRegion(y)

locatedIn(x,y) and TexasRegion(y) implies TexasThings(x)

To tie together properties in a similar fashion, we use owl:equivalentProperty.
类似的,我们可以通过使用owl:equivalentProperty属性声明表达属性的等同。

4.2. Identity between Individuals

sameAs

4.2 个体间的同一性

sameAs

This mechanism is similar to that for classes, but declares two individuals to be identical.

描述个体之间相同的机制与描述类之间的相同的机制类似,仅仅只要将两个个体声明成一致的就可以了。


An example would be:
例如这样一个例子:
<Wine rdf:ID="MikesFavoriteWine> <owl:sameAs rdf:resource="#StGenevieveTexasWhite" /> </Wine>


<Wine rdf:ID="MikesFavoriteWine">

  <owl:sameAs rdf:resource="#StGenevieveTexasWhite" /> 

</Wine>  ? 



This example does not have great utility. About all we learn from this is that Mike likes an inexpensive local wine. A more typical use of sameAs would be to equate individuals defined in different documents to one another, as part of unifying two ontologies.
在这个例子并没有什么实际意义。所有我们从中能了解到的就是Mike喜欢一种便宜的本地酒。sameAs的一种更加典型的用法是将不同文档中定义的两个个体等同起来,作为统一两个本体的部分。
This brings up an important point. OWL does not have a unique name assumption. Just because two names are different does not mean they refer to different individuals.
但这样做带来了一个问题。OWL中并没有名称唯一这一假定。仅仅名称不同并不意味着这两个名称引用的是不同的个体。
In the example above, we asserted identity between two distinct names. But it is just as possible for this sort of identity to be inferred. Remember the implications that can be derived from a functional property. Given that hasMaker is functional, the following is not necessarily a conflict.
在上面的例子中,我们对两个截然不同的名称作出一致性断言。但是也只有在这种标示的情况下,才可能进行推理。请记住那些可能从函数型属性中得出的含意。假如hasMaker是一个函数型属性,那么下面的例子就不一定会产生冲突。



<owl:Thing rdf:about="#BancroftChardonnay">

  <hasMaker rdf:resource="#Bancroft" />
<hasMaker rdf:resource="#Beringer" />

</owl:Thing>  ? 


Unless this conflicts with other information in our ontology, it simply means that Bancroft = Beringer.
除非和我们本体中的其他信息发生冲突,不然的话这样的描述是没有冲突的,他说明Bancroft和Beringer是相同的个体。 Note that using sameAs to equate two classes is not the same as equating them with equivalentClass; instead, it causes the the classes to be interpreted as individuals, and is therefore sufficient to categorize an ontology as OWL Full. In OWL Full sameAs may be used to equate anything: a class and an individual, a property and a class, etc., and causes both arguments to be interpreted as individuals.
要清楚,修饰(或引用)两个类用sameAs还是用equivalentClass效果是不同的。用sameAs的时候,把一个类解释为一个个体,就像在OWL Full中一样,这有利于对本体进行分类。在OWL Full中,sameAs可以用来引用两个东西,如一个类和一个个体、一个类和一个属性等等,无论什么情况,都将被解释为个体。

4.3. Different Individuals

differentFrom, AllDifferent

4.3. 不同的个体

differentFrom, AllDifferent

This mechanism provides the opposite effect from sameAs.
这一机制提供了与sameAs相反的效果。


<WineSugar rdf:ID="Dry" />

<WineSugar rdf:ID="Sweet">

  <owl:differentFrom rdf:resource="#Dry"/>  

</WineSugar>

<WineSugar rdf:ID="OffDry">

  <owl:differentFrom rdf:resource="#Dry"/> 
<owl:differentFrom rdf:resource="#Sweet"/>

</WineSugar>


This is one way to assert that these three values are mutually distinct. There will be cases where it is important to ensure such distinct identities. Without these assertions we could describe a wine that was both Dry and Sweet. We have stated that the hasSugar property applied to a wine has no more than one value. If we erred, and asserted that a wine was both Dry and Sweet, without the differentFrom elements above, this would imply that Dry and Sweet are identical. With the elements above, we would instead get a contradiction.
这是一种声明这三个值相互不同的方法。但在有些时候,更重要的是利用这些定义元素能把这种不同区别开来。没有上述的定义元素,我们可能会定义一种既干又甜的葡萄酒,并且添加hasSugar属性使其取值小于等于某个值来限定该种葡萄酒的甜度。如果我们没有用 differentFrom元素来申明既干又甜的葡萄酒,这意味着“干葡萄酒”和“甜葡萄酒”是相同的。但是我们从上面申明的元素来推断,这又是矛盾的。 A more convenient mechanism exists to define a set of mutually distinct individuals. The following asserts that Red, White, and Rose are pairwise distinct.
还有一种更便利的定义相互不同个体的机制。如下面申明红葡萄酒、白葡萄酒和玫瑰葡萄酒的例子。


<owl:AllDifferent>

  <owl:distinctMembers rdf:parseType="Collection">
<vin:WineColor rdf:about="#Red" />
<vin:WineColor rdf:about="#White" />
<vin:WineColor rdf:about="#Rose" />
</owl:distinctMembers>

</owl:AllDifferent>


Note that owl:distinctMembers can only be used in combination with owl:AllDifferent
要注意,owl:distinctMembers属性声明只能和owl:AllDifferent属性声明一起结合使用。
In the wine ontology we provide an owl:AllDifferent assertion for all of the WineDescriptors. We also state that the Winerys are all different. If we wanted to add a new winery in some other ontology and assert that it was disjoint from all of those that have already been defined, we would need to cut and paste the original owl:AllDifferent assertion and add the new maker to the list. There is not a simpler way to extend an owl:AllDifferent collection in OWL DL. In OWL Full, using RDF triples and the rdf:List constructs, other approaches are possible.
在葡萄酒本体中,我们为所有的WineDescriptor提供了一个owl:AllDifferent声明。我们同时还声明了所有的Winery是不同的。这时,如果我们想要在其他的某个本体中添加一个新的酿酒厂,并表明它是与其他已定义的任何酿酒厂都是不同的,我们可能需要拷贝原来的owl:AllDifferent属性声明,然后将新的制造厂添加到列表中。在OWL DL中,没有更加简单的方法以扩展一个声明为owl:AllDifferent的集合。而在OWL Full中,通过使用RDF三元组和rdf:List构造,可以实现一些其他的方法来完成这一扩展。

个人工具
其它语言
 
 Page execution time: 482.27 ms.
网上报警 苏ICP备05002329号