在我的数据库中,我有一些字符串属性。某些属性值与数字字符串匹配(仅包含数字)。我想给这些东西一个特殊的类型(它们是什么的子类型)。在OWL中这样的事情可能吗?
答案 0 :(得分:1)
我认为您需要将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
,您可以根据正则表达式执行数据类型限制。
我希望这会给你一些指示。
答案 1 :(得分:0)
实际上你可以在RDF中做些什么。对于RDF中的任何文字,您可以使用类似的内容(在turtle / 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 / XML中的相同示例
<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 ) .
}
我希望这能回答你的问题。
<强>被修改强>
潘齐提到我的回答是错误的指示。无论如何我还是留下了。