在我的数据库中,我有一些字符串属性。一些属性值与数字字符串匹配(仅包含数字)。我想给这些东西一个特殊的类型(他们是什么的子类型)。 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. 在C++中将字符串大小限制为字符数
- 3. 使用字符串值作为属性
- 4. 将字符串转换为html属性
- 5. 将属性树提升为字符串
- 6. 在编译时将参数字符串限制为一个字符串数组
- 7. 将传递的参数限制为字符串文字
- 8. 如何将数字转换为宽度字符串属性? Javascript
- 9. 字符串限制字 - UTF8
- 10. 字符串转换为数字限定的十进制数字
- 11. PowerShell:如何将字符串限制为N个字符?
- 12. 使用MYSQL将字符串长度限制为最小字符
- 13. Swift3将字符串值转换为十六进制字符串
- 14. 将属性限制为特定值
- 15. 将值限制为ant属性任务
- 16. 如何将用户输入限制为某些字符串值?
- 17. 基于Linq查询的整数属性值为字符串属性指定值
- 18. (Ruby)将字符串值转换为OpenStructs的可分配属性...?
- 19. 将对象属性和值转换为字符串
- 20. 为什么我的字符串属性(在我的核心数据模型中)限制为50个字符?
- 21. WCF合同限制字符串值
- 22. 如何限制RCP扩展点中的字符串属性?
- 23. 属性文件字符串长度限制(JAVA)
- 24. 将多个java属性值读入字符串或数组
- 25. 限制字符串字符 - PHP
- 26. 通过字符串获取属性值
- 27. 使用属性值基于字符串
- 28. 获取字符串类属性的值
- 29. 动态HTML字符串插值属性
- 30. cocos2dx投的价值属性字符串
我知道,但它不是我想要的。我有一个'xsd:string'数据类型属性,它已经在数据库中填充了值。其中一些值恰好匹配整数。我想资源巫婆这样的属性是自动的一些特殊的子类。它比查询中的FILTER REGEX更方便(但这样的查询也可以,只是不太方便)。基本上我想要一个正则表达式(或“转换为'xsd:integer'支持字符串”)的值限制。 – panzi 2010-10-31 00:27:03
好的,我明白了。我想我完全误解了你的问题。我已经添加了一个不同的答案.. – 2010-10-31 09:20:11