2016-03-27 136 views
0

我已經使用定義了其他數據的數據填充了我的本體。現在,我想對該特定數據類型(小時)進行限制,該數據類型定義爲int,並且其值爲0-23。限制將根據白天和夜間的時間劃分(例如小時分鐘6 int)和(小時最大17 int),並定義爲對象屬性isDay,但問題是推論沒有發生。 謝謝你在前進, 艾略特Protege數據類型限制

+0

數據類型限制不適用於對象屬性,所以這將是一個問題。另一個是:你在使用哪個推理者?並非所有支持用戶定義的數據類型。 – Ignazio

+0

我不知道它如何與對象屬性一起工作,但如果您有一個帶有子類「DayEvent」的類「Event」,您可以爲其定義一個等效的類「owl:onProperty:hour; owl:someValuesFrom [ xsd:minInclusive「6」^^ xsd:int; xsd:maxInclusive「17」^^ xsd:int; owl:onDataRange xsd:整數。 ]。' –

+0

@Ignazio,這個回答有用嗎?正如我從另一起案件中提到的那樣,請告訴我是否需要改進。 –

回答

1

您可以創建一個:DayEvent類爲:Event子類,然後對你要指定爲天插槽範圍內的數據類型屬性:hour申報的限制,比方說6 < = DayEvent小時< = 17,這種方式:

:DayEvent rdf:type owl:Class ; 

     owl:equivalentClass [ 
        rdf:type owl:Restriction ; 
        owl:onProperty :hour ; 
        owl:someValuesFrom [ rdf:type rdfs:Datatype ; 
            owl:onDatatype xsd:integer ; 
            owl:withRestrictions ( 
               [ xsd:minInclusive 6] 
               [ xsd:maxInclusive 17] 
               ) 
             ] 
          ] ; 

     rdfs:subClassOf :Event . 

然後與數據類型屬性:hour具有值在指定範圍內的所有個人將被推斷爲的:DayEvent成員。

這至少可以與Protégé4.3和5一起使用,其中包括HermiT,FaCT ++和Pallet。

等效的類定義將在Protégé語法中看起來像這樣:hour some xsd:integer[>= 6 , <= 17]