String OWL:将属性值限制为数字字符串

String OWL:将属性值限制为数字字符串,string,rdf,numeric,owl,String,Rdf,Numeric,Owl,在我的数据库中,我有一些字符串属性的东西。某些属性值与数字字符串匹配(仅包含数字)。我想给这些东西一个特殊的类型(它们是什么的子类型)。在OWL中这样做可能吗?实际上是您可以在RDF中做的事情。对于RDF中的任何文本,您都可以使用类似以下内容指定类型(在turtle/RDF中) 你可以更进一步说 ns:MyClassificationScheme rdfs:subClassOf xsd:integer . 针对数据发出SPARQL查询时,可以在发出应用过滤器时指定类型,如下所示: SELECT

在我的数据库中,我有一些字符串属性的东西。某些属性值与数字字符串匹配(仅包含数字)。我想给这些东西一个特殊的类型(它们是什么的子类型)。在OWL中这样做可能吗?

实际上是您可以在RDF中做的事情。对于RDF中的任何文本,您都可以使用类似以下内容指定类型(在turtle/RDF中)

你可以更进一步说

ns:MyClassificationScheme rdfs:subClassOf xsd:integer .
针对数据发出SPARQL查询时,可以在发出应用过滤器时指定类型,如下所示:

SELECT * WHERE { 
   ?person :born ?birthDate .
   FILTER ( ?birthDate > "2005-02-28"^^xsd:date ) .
}
我希望这回答了你的问题

已编辑


正如panzi提到的,我的回答是错误的。不管怎样,我还是离开它。

我认为您需要将数据类型限制与
xsd:pattern
结合起来

以下公理来自

。。。如果你用
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
可以基于正则表达式进行数据类型限制


我希望这能给你一些指导。

我知道,但这不是我想要的。我有一个
xsd:string
datatype属性,它已经在我的数据库中填充了值。其中一些值恰好与整数匹配。我希望这些属性自动属于某个特殊的子类。它比查询中的
过滤器REGEX
更方便(但这样的查询也可以,只是没有那么方便)。基本上我想要一个基于正则表达式(或“类型转换为
xsd:integer
支持字符串”)的值限制。我想我完全误解了你的问题。我添加了一个不同的答案..嗯,出于某种原因,这对我不起作用。但是我从另一个文件中导入子类作为超类,即使我没有添加任何限制,也无法获取任何实例。奇怪。
ns:MyClassificationScheme rdfs:subClassOf xsd:integer .
SELECT * WHERE { 
   ?person :born ?birthDate .
   FILTER ( ?birthDate > "2005-02-28"^^xsd:date ) .
}
: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 ]
            )
          ]
       ] .
: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]*"])
          ]
       ] .