是否可以在 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: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 个个体(在海龟中(:
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 .
然后启动推理器并查看不一致的解释。