OWL rdfs:langString并限制其允许的语言

时间:2018-03-22 07:43:42

标签: rdf owl semantic-web ontology rdfs

OWL中是否可以使用

之类的范围限制属性
demo:property rdfs:range rdf:langString

这样我们只允许“en”和“de”作为语言?

所以

demo:object demo:property "hello"@en

将被允许,但

demo:object demo:property "bonjour"@fr

不会。

1 个答案:

答案 0 :(得分:3)

来自4.3 Strings

  

OWL 2数据类型映射提供了 rdf:PlainLiteral 数据类型,用于表示特定语言的字符串。值空间,词法空间,构面空间和必要映射的定义在[RDF:PLAINLITERAL]中给出。 rdf:PlainLiteral 的规范约束方面是 xsd:length xsd:minLength xsd:maxLength ,< em> xsd:pattern 和 rdf:langRange ;此外, rdf:langRange 约束方面仅支持基本语言范围 [BCP 47]。

因此,在曼彻斯特句法中:

DataProperty: demo:property
    Range: 
        (rdf:PlainLiteral[langRange "de"] or rdf:PlainLiteral[langRange "en"]

在海龟:

demo:property a owl:DatatypeProperty ;
    rdfs:range [ rdf:type rdfs:Datatype ;
        owl:unionOf ( [ rdf:type rdfs:Datatype ;
                        owl:onDatatype rdf:PlainLiteral ;
                        owl:withRestrictions ( [ rdf:langRange "de" ] )
                      ]
                      [ rdf:type rdfs:Datatype ;
                        owl:onDatatype rdf:PlainLiteral ;
                        owl:withRestrictions ( [ rdf:langRange "en" ] )
                      ]
                    )
                ] .

现在创建3个人(在Turtle中):

demo:object_en a owl:NamedIndividual ;
               demo:property "demo"@en .

demo:object_de a owl:NamedIndividual ;
               demo:property "demo"@de .

demo:object_fr a owl:NamedIndividual ;
               demo:property "demo"@fr .

然后启动推理器并查看不一致的解释。