将 属性 的值限制为单个值?

Constrain value of property to a single value?

我想要一个日期 属性 可以有任何个人作为主题(即,对域没有限制),但只能有值 1(双精度)作为值.是否有适合此用例的限制?也许 exactvalue?我正在使用 Protege。

您可以将 属性 的范围指定为枚举 class。在 Protege 中,您可以将其写为:

{ 1.0 }

结果ontology,在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} 即可: