在我的數據庫中,我有一些字符串屬性。一些屬性值與數字字符串匹配(僅包含數字)。我想給這些東西一個特殊的類型(他們是什麼的子類型)。 OWL中有這樣的可能嗎?OWL:將屬性值限制爲數字字符串
3
A
回答
0
實際上你可以在RDF中做些什麼。對於RDF任何文字,你可以在RDF/XML像這樣的東西(在烏龜/ RDF)指定類型...
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
:x :myDataTypeProperty "123"^^xsd:integer .
:y :myDataTypeProperty "some string"^^xsd:string .
:z :myDataTypeProperty "2004-12-06"^^xsd:date .
同例如
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" xmlns="http://www.foo.bar.com#">
<rdf:Description rdf:about="http://www.foo.bar.com#x">
<myDataTypeProperty rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">123</myDataTypeProperty>
</rdf:Description>
<rdf:Description rdf:about="http://www.foo.bar.com#y">
<myDataTypeProperty rdf:datatype="http://www.w3.org/2001/XMLSchema#string">some string</myDataTypeProperty>
</rdf:Description>
<rdf:Description rdf:about="http://www.foo.bar.com#z">
<myDataTypeProperty rdf:datatype="http://www.w3.org/2001/XMLSchema#date">2004-12-06</myDataTypeProperty>
</rdf:Description>
</rdf:RDF>
在XMLSchema(XSD)規範你可以找出所有支持的數據類型。不過可以肯定的是,你只能使用在SPARQL spec
提到的那些,你可以薄荷自己的數據類型,如果你想和有類似:
:x :myDataTypeProperty "123"^^ns:MyClassificationScheme .
而且你可以更進一步說...
ns:MyClassificationScheme rdfs:subClassOf xsd:integer .
當你發出SPARQL查詢對數據,當您發出申請的過濾器,這樣你可以指定類型:
SELECT * WHERE {
?person :born ?birthDate .
FILTER (?birthDate > "2005-02-28"^^xsd:date) .
}
我希望這能回答你的問題。
編輯
正如胖子提到我的答案是走錯direcction。無論如何我都離開了。
2
我認爲你需要的是Datatype Restrictions
結合xsd:pattern
。
下面的公理是OWL 2 Primer ...
:Teenager rdfs:subClassOf
[ rdf:type owl:Restriction ;
owl:onProperty :hasAge ;
owl:someValuesFrom
[ rdf:type rdfs:Datatype ;
owl:onDatatype xsd:integer ;
owl:withRestrictions ( [ xsd:minExclusive "12"^^xsd:integer ]
[ xsd:maxInclusive "19"^^xsd:integer ]
)
]
] .
...如果你有點用xsd:pattern
接班我們能有像...
:YourClass rdfs:subClassOf
[ rdf:type owl:Restriction ;
owl:onProperty :yourHasNumericProperty ;
owl:someValuesFrom
[ rdf:type rdfs:Datatype ;
owl:onDatatype xsd:integer ;
owl:withRestrictions ([xsd:pattern "E[1-9][0-9]*"])
]
] .
隨着xsd:pattern
你可以根據正則表達式進行數據類型限制。
我希望這給你一些方向。
+0
嗯,這對我來說不起作用。但是我從其他文件導入子類作爲超類,並且即使沒有添加任何限制,也會遇到問題。奇怪。 – panzi 2010-11-01 16:16:19
相關問題
- 1. 將字符串屬性限制爲一組字符串值的最佳方法
- 2. 限制屬性的字符串長度
- 3. 將字符串屬性轉換爲字符串數組
- 4. 在C++中將字符串大小限制爲字符數
- 5. 將字符串限制爲某些字符數
- 6. 使用字符串值作爲屬性
- 7. RequestMapping值屬性爲字符串變量
- 8. 將類屬性設爲字符串
- 9. 將字符串轉換爲html屬性
- 10. 將屬性樹提升爲字符串
- 11. 在編譯時將參數字符串限制爲一個字符串數組
- 12. 將傳遞的參數限制爲字符串文字
- 13. 如何將數字轉換爲寬度字符串屬性? Javascript
- 14. 將非數字字符串爲double值
- 15. 將「字符串」值轉換爲數字
- 16. JSON.Net串行化時限制屬性字符串長度
- 17. 字符串限制字 - UTF8
- 18. 字符串轉換爲數字限定的十進制數字
- 19. 使用MYSQL將字符串長度限制爲最小字符
- 20. PowerShell:如何將字符串限制爲N個字符?
- 21. Swift3將字符串值轉換爲十六進制字符串
- 22. 指令屬性強制布爾值爲字符串
- 23. 將屬性限制爲特定值
- 24. 將值限制爲ant屬性任務
- 25. 如何將用戶輸入限制爲某些字符串值?
- 26. 基於Linq查詢的整數屬性值爲字符串屬性指定值
- 27. 將字符串從輸入轉換爲十進制屬性
- 28. 將對象屬性和值轉換爲字符串
- 29. 將屬性值的XML序列轉換爲字符串?
- 30. (Ruby)將字符串值轉換爲OpenStructs的可分配屬性...?
我知道,但它不是我想要的。我有一個'xsd:string'數據類型屬性,它已經在數據庫中填充了值。其中一些值恰好匹配整數。我想資源巫婆這樣的屬性是自動的一些特殊的子類。它比查詢中的FILTER REGEX更方便(但這樣的查詢也可以,只是不太方便)。基本上我想要一個正則表達式(或「轉換爲'xsd:integer'支持字符串」)的值限制。 – panzi 2010-10-31 00:27:03
好的,我明白了。我想我完全誤解了你的問題。我已經添加了一個不同的答案.. – 2010-10-31 09:20:11