如果我想说某事的标题应该是rdfs:Literal,我这样做:
example:title a owl:DatatypeProperty ;
rdfs:range rdfs:Literal .
Run Code Online (Sandbox Code Playgroud)
现在我想表达一些东西有一个有序的标题列表:
example:titles a rdf:List .
Run Code Online (Sandbox Code Playgroud)
如何指定列表成员应该是什么?我需要子类rdf:List吗?
更新:我想继续使用rdf:List,如果可能,根据Joshua的回答我认为以下说任何rdf:List只有rdfs:Literal值是一个例子:ListOfLiterals,然后我可以用它作为一个范围.
@prefix entity: <http://example.com/stuff/> .
@prefix example: <http://example.com/my/term/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
example:ListOfLiterals a owl:Class ;
owl:equivalentClass [
a owl:Class ;
owl:intersectionOf (
rdf:List
[
a owl:Restriction ;
owl:allValuesFrom rdfs:Literal ;
owl:onProperty rdf:first
]
[
a owl:Restriction ;
owl:allValuesFrom example:ListOfLiterals ;
owl:onProperty rdf:rest
] )
] .
example:Book a owl:Class .
example:titles a owl:DatatypeProperty ;
rdfs:domain example:Book …Run Code Online (Sandbox Code Playgroud) rdf ×1