2016-03-08 15 views
0

我有一個類,我一定能equivelent此限制貓頭鷹日期時間限制創世比

Rates and createdOn value "2016-01-01T09:00:00+00:00"^^dateTime 

其中Rates是一個類,createdOn是一種數據類型酒店有域名爲日期時間

什麼我做的不是我想要做的,因爲我想說的是這樣的:

所有日期大於2016年1月第一個

我雖然這可以通過兩種方式來做,但我不知道貓頭鷹支持其中任何

開始我以爲:

Rates and createdOn value > "2016-01-01T09:00:00+00:00"^^dateTime 

但門生告訴我,我們不能把>

然後我的是,如果有一種方法只是檢查日期的一年,也是我不知道該怎麼做

你能幫忙嗎?

+0

需要輸入的範圍爲XSD:日期時間[> = 「2016-01-01T00:00:00」^^ xsd:dateTime],請參閱我對編輯的回答 – Ignazio

+0

@Ignazio我認爲不是子類但是相等是正確的,你覺得怎麼樣? –

+0

但是你的問題是數據範圍限制的語法。是否應該是子類或同等級取決於您的要求。 – Ignazio

回答

4

您需要使用一個DatatypeRestriction

Declaration(Class(example:Rates)) 
Declaration(DataProperty(example:createdOn)) 
Declaration(Datatype(xsd:dateTime)) 
DataPropertyRange(example:createdOn DatatypeRestriction(xsd:dateTime xsd:minInclusive "2016-01-01T00:00:00"^^xsd:dateTime)) 
SubClassOf(DataSomeValuesFrom(example:createdOn rdfs:Literal) example:Rates) 

編輯:在曼徹斯特語法,這些面被寫成這樣:

Class: <http://example.org#Rates> 

SubClassOf: 
    <http://example.org#createdOn> some xsd:dateTime[>= "2016-01-01T00:00:00"^^xsd:dateTime] 
+0

也許equivlent類是正確的一個不是子類的,right請 ? –

+0

這取決於你想表達什麼。你可以檢查這個線程的兩個區別:http://stackoverflow.com/questions/4192435/owls-equivalentclass-vs-subclassof/4201833 –

+0

在這個塞納里奧,我相信是equivelent是正確的,因爲在子類的情況下,如果我有一個來自類型爲Ratings的實例,並且其createOn大於2016,則推理者不會推斷此實例也是來自Ratings2016類型,但如果它是相等的,則推理者將理解該實例。 –