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



是否可以在 OWL 中限制范围为

demo:property rdfs:range rdf:langString

所以我们只允许"en"和"de"作为语言?

所以

demo:object demo:property "hello"@en

将被允许,但是

demo:object demo:property "bonjour"@fr

不会。

来自 4.3 字符串:

OWL 2 数据类型映射提供了 rdf:PlainLiteral 数据类型,用于表示特定语言中的字符串。值空间、词法空间、分面空间和必要映射的定义在 [RDF:PLAINLITERAL] 中给出。rdf:PlainLiteral 的规范约束方面是 xsd:length、xsd:minLength、xsd:maxLength、xsd:patternrdf: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 个个体(在海龟中(:

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 .

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

最新更新