OWL中是否可以使用
之类的范围限制属性demo:property rdfs:range rdf:langString
这样我们只允许“en”和“de”作为语言?
所以
demo:object demo:property "hello"@en
将被允许,但
demo:object demo:property "bonjour"@fr
不会。
答案 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 .
然后启动推理器并查看不一致的解释。