我希望有一个日期属性,可以将任何个人作为主题(即,对域没有限制),但只能将值1(double)作为值。是否有适合此用例的限制?也许确切或值?我正在使用Protege。
答案 0 :(得分:3)
您可以将属性的范围指定为枚举类。在Protege中,你将它写成:
{1.0}
由此产生的本体,在Turtle和RDF / XML中:
@prefix : <http://example.org/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
:p a owl:DatatypeProperty ;
rdfs:range [ a rdfs:Datatype ;
owl:oneOf [ a rdf:List ;
rdf:first 1.0 ;
rdf:rest ()
]
] .
: a owl:Ontology .
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://example.org/"
xmlns:owl="http://www.w3.org/2002/07/owl#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:xsd="http://www.w3.org/2001/XMLSchema#">
<owl:Ontology rdf:about="http://example.org/"/>
<owl:DatatypeProperty rdf:about="http://example.org/p">
<rdfs:range>
<rdfs:Datatype>
<owl:oneOf>
<rdf:List>
<rdf:first rdf:datatype="http://www.w3.org/2001/XMLSchema#decimal"
>1.0</rdf:first>
<rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
</rdf:List>
</owl:oneOf>
</rdfs:Datatype>
</rdfs:range>
</owl:DatatypeProperty>
</rdf:RDF>
如果您希望数据类型为 xsd:double 而不是 xsd:decimal ,则只需将范围指定为 {“1.0”^^ double} 代替: