0
我已經使用定義了其他數據的數據填充了我的本體。現在,我想對該特定數據類型(小時)進行限制,該數據類型定義爲int,並且其值爲0-23。限制將根據白天和夜間的時間劃分(例如小時分鐘6 int)和(小時最大17 int),並定義爲對象屬性isDay,但問題是推論沒有發生。 謝謝你在前進, 艾略特Protege數據類型限制
我已經使用定義了其他數據的數據填充了我的本體。現在,我想對該特定數據類型(小時)進行限制,該數據類型定義爲int,並且其值爲0-23。限制將根據白天和夜間的時間劃分(例如小時分鐘6 int)和(小時最大17 int),並定義爲對象屬性isDay,但問題是推論沒有發生。 謝謝你在前進, 艾略特Protege數據類型限制
您可以創建一個: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]
。
數據類型限制不適用於對象屬性,所以這將是一個問題。另一個是:你在使用哪個推理者?並非所有支持用戶定義的數據類型。 – Ignazio
我不知道它如何與對象屬性一起工作,但如果您有一個帶有子類「DayEvent」的類「Event」,您可以爲其定義一個等效的類「owl:onProperty:hour; owl:someValuesFrom [ xsd:minInclusive「6」^^ xsd:int; xsd:maxInclusive「17」^^ xsd:int; owl:onDataRange xsd:整數。 ]。' –
@Ignazio,這個回答有用嗎?正如我從另一起案件中提到的那樣,請告訴我是否需要改進。 –