我们如何限制文字类型:
<rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
只是整数(使用XML / RDF表示法)?
我试过了:
<rdfs:range rdf:int/>
但它不起作用。
答案 0 :(得分:1)
您必须在属性上设置范围。整数在XMLSchema中定义。 例如:
<rdf:Property rdf:ID="testRelation">
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#integer"/>
</rdf:Property>
请注意,这不是真正的限制。正如你在RDF中应该知道的那样,任何人都可以对任这意味着一个人可以决定范围还包括双打,然后这也是正确的。
如果您正在查看某种理智检查,那么您必须在rdf之外执行此操作(或使用推断来发现不一致)。
答案 1 :(得分:0)
要专门回答您的问题,请使用xsd:int
作为范围断言的值,如@JoshuaTaylor所示。但这并不意味着你认为它意味着什么; rdfs:range
不会将属性值限制为范围中指定的值,也不会“禁止”超出规定范围的值。
范围用于推断有关属性值的信息。例如,您可以说某些属性p
的范围同时为A
和B
。然后,如果你有一个:s :p :o
形式的断言,那么知道范围的推理者会推断出o
既是A
又是B
。没有什么可以阻止你声称o
是C
(:o a :C
),这只是意味着,当与前一个断言相结合时,o
是一个A
,B
和C
。
您无法真正使用RDFS或OWL进行验证,至少不是开箱即用的。这个领域已经有了工作,最近有一个workshop来看看一些供应商如何支持验证,看看什么是合理的标准化方法。