[NLP] 語義網絡與知識圖譜入門(二)


語義網絡與知識圖譜入門(二)

OWL

本體聲明

owl用owl:Ontology來聲明一個本體。rdf:about屬性為本體提供一個名稱或引用。根據標准,當rdf:about屬性的值為""時,本體的名稱是owl: Ontology元素的基准URI。

<owl:Ontology rdf:about="">
    <rdfs:comment>An example OWL ontology</rdfs:comment>
    <owl:priorVersion rdf:resource="http://www.w3.org/TR/2003/PR-owl-guide-20031215/wine"/> 
   <owl:imports rdf:resource="http://www.w3.org/TR/2004/REC-owl-guide-20040210/food"/> 
    <rdfs:label>Wine Ontology</rdfs:label>
</owl:Ontology>

rdfs:comment 提供了顯然必須的為本體添加注解的能力。
owl:priorVersion 是一個為用於本體的版本控制系統提供相關信息(hook)的標准標簽。
owl:imports 提供了一種嵌入機制,接受一個用rdf:resource屬性標識的參數。導入另一個本體將把那個本體中的全部聲引入到當前本體中.

rdfs:label對本體進行自然語言標注。

基本元素

類的定義

OWL中的所有個體都是類owl:Thing的成員。

 <owl:Class rdf:ID="PotableLiquid"> 
   <rdfs:subClassOf rdf:resource="#ConsumableThing" />
 </owl:Class>

上例中PotableLiquid被定義為ConsumableThing的子類。

一個類的定義由兩部分組成:引入或引用一個名稱,以及一個限制列表。被直接包含在類定義中的各個表達式進一步限制了該類的實例,該類的實例屬於所有這些限制的交集。(這里描述的是成為某個類的必要條件,關於描述成為某個類的充分必要條件,請參見owl:equivalentClass部分。

個體的定義

類的成員就是類的個體。

先定義類。

<owl:Class rdf:ID="Grape">
 </owl:Class>

在定義本體

 <owl:Class rdf:ID="WineGrape">
   <rdfs:subClassOf rdf:resource="&food;Grape" />
 </owl:Class>

然后就可以定義個體了

<WineGrape rdf:ID="CabernetSauvignonGrape" />

這里WineGrape為類名,rdf:ID為個體名。

定義屬性

一個屬性是一個二元關系。有兩種類型的屬性:

  1. 數據類型屬性(datatype properties),類實例與RDF文字或XML Schema數據類型間的關系。

  2. 對象屬性(object properties),兩個類的實例間的關系。

<owl:ObjectProperty rdf:ID="madeFromGrape"> 
   <rdfs:domain rdf:resource="#Wine"/>
   <rdfs:range rdf:resource="#WineGrape"/> 
 </owl:ObjectProperty> 
 <owl:ObjectProperty rdf:ID="course">
   <rdfs:domain rdf:resource="#Meal" />
   <rdfs:range rdf:resource="#MealCourse" />
 </owl:ObjectProperty>

上面例子可以看出,定義域為Wine,值域為WineGrape,也就是說,屬性描述可以將兩個類相關聯,使得屬性取值的key在Wine中,value在WineGrape中。

實體如何擁有定義的屬性呢?

<owl:Thing rdf:ID="LindemansBin65Chardonnay">
   <madeFromGrape rdf:resource="#ChardonnayGrape" />
 </owl:Thing>

上面這個例子可以看出,LindemansBin65Chardonnay擁有屬性madeFromGrape。並且可以根據其定義域知道他一定是葡萄酒。

例如,我們可以通過定義一個locateIn屬性來將事物和他所在的地區相關聯。

<owl:ObjectProperty rdf:ID="locatedIn">
   <rdfs:domain rdf:resource="http://www.w3.org/2002/07/owl#Thing" />
   <rdfs:range rdf:resource="#Region" />
 </owl:ObjectProperty>

數據類型屬性定義

<owl:Class rdf:ID="VintageYear" />
 <owl:DatatypeProperty rdf:ID="yearValue"> 
     <rdfs:domain rdf:resource="#VintageYear" /> 
     <rdfs:range rdf:resource="&xsd;positiveInteger"/> 
</owl:DatatypeProperty> 

數據類型的屬性定義更像是類的屬性,而對象的屬性更像是實例的屬性。

屬性限制

可以使用owl:Restriction來對屬性的值域進行進一步的限制。

<owl:Class rdf:ID="Wine"> 
      <rdfs:subClassOf rdf:resource="&food;PotableLiquid" />
      <rdfs:subClassOf> 
           <owl:Restriction>
                <owl:onProperty rdf:resource="#hasMaker" /> 
                <owl:allValuesFrom rdf:resource="#Winery" />
            </owl:Restriction> 
     </rdfs:subClassOf>
</owl:Class>

上面例子使用了owl:Restriction來對Wine類進行限制owl:onProperty表明對哪個屬性進行限制,而owl:allValuesForm則表明限制的取值范圍。所以上面的例子可以解釋為,所有Wine實例的hasMaker屬性值必須為Winery的實例。

數量限制:

<owl:Class rdf:ID="Vintage">
   <rdfs:subClassOf>
      <owl:Restriction>
         <owl:onProperty rdf:resource="#hasVintageYear"/>
         <owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
     </owl:Restriction>
   </rdfs:subClassOf>
</owl:Class>

使用owl:cardinality可以限制實例屬性的取值數量,這里onProperty表明對hasVintageYear屬性限制,owl:cardinality則限制了該屬性取值為1。

其他限制還有:

owl:maxCardinality 限制數值上界

owl:minCardinality 限制數值下界

owl:hasValue 限制屬性值的實例必須有hasValue的資源

<owl:Class rdf:ID="Burgundy">
   <rdfs:subClassOf>
      <owl:Restriction>
      <owl:onProperty rdf:resource="#hasSugar" />
      <owl:hasValue rdf:resource="#Dry" />
     </owl:Restriction>
 </rdfs:subClassOf>
</owl:Class>

這個例子中,只有實例的hasSugar屬性有Dry的資源,該實例才為Burgundy為的實例。

本體映射

表明兩個類等價等價。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類等價於一個無名類,而這個無名類加了locatedIn限制。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM