2012-07-27 35 views
2

我完全不熟悉語義網的領域,需要創建一個本體。OWL:定義一個類的屬性和成員對象

我做了很多研究,但仍未找到明確的解決方案,以下問題: 基本上,我想從語義上描述某個類包含某些對象和屬性。但是我不清楚怎麼做。 示例:我想描述類「設備」。現在這個類包含一個對象「應用程序」和一個屬性「ID」。 只要將對象「應用程序」映射到ObjectProperty「hasApplication」,並將屬性映射到DatatypeProperty「ID」即可。到目前爲止這麼好,但現在我怎麼把他們綁定到班上呢?

有兩種主要的方式,我發現:

  1. 要麼你包括類名作爲一個屬性的定義域。
  2. 或者你通過owl:Restricion/owl:onProperty.

但在我看來,包括屬性到類定義中,這兩種方式不準確捕捉我的語義意圖,因爲在第一種情況下,我把它理解爲,如果過了對象使用定義的屬性,那麼這個對象必須是在域中定義的類的實例,但這並不一定意味着該類的每個實例都必須具有此屬性。 同樣,在第二種情況下,通過owl:Restriction/owl:onProperty將屬性綁定到類,強制我對此屬性(即基數或值範圍)施加限制。但那不是我的意圖,我不想描述「這個類有這個限制的這個屬性」,而只是「這個類擁有這個屬性」。

希望你們能清楚一點。 :S

回答

1

用你的例子,你有一個類Device,你有一個類Application和一個ObjectProperty來關聯它們。在OWL曼徹斯特語法:

Class: Device 

    Class: Application 

    ObjectProperty: hasApplication 

這是一個有點誤導想想「包含在設備類對象」方面的應用。把它們想象成對象相關到那個類別。

現在,你可以通過設置你的財產的領域和範圍作出Device S和Application S之間的關係,全球可用:

ObjectProperty: hasApplication 
    Domain: Device 
    Range: Application 

但是,這可能不太會後你在做什麼,因爲這只是說如果在任何地方發生關係,其主題和客體可以分別推斷爲DeviceApplication。它並不是說Device的所有實例都必須具有hasApplication屬性。

來表達Device必須的所有實例都具有一個hasApplication屬性,你可以使用OWL基數限制:

Class: Device 
    SubClassOf: hasApplication min 1 

這告訴我們,Device任何實例必須至少1hasApplication屬性。

+0

只是想注意到「必須」一詞的使用可能會引起誤解。它不應該被解釋爲在RFC 2119中。更正確的是「Device'的所有實例都必須具有'hasApplication'屬性」,因爲OWL公理不代表義務,它們表示必要性。 – 2012-08-06 12:20:34

相關問題