我想获得一个类的所有属性。如果一个属性是一个数据类型属性,我想知道它的确切类型,即浮点数,整数,日期等。
运行以下查询,我只得到一个属性是对象属性或数据类型属性
SELECT ?class ?property ?type
WHERE {
?resource ?property ?target .
?property rdfs:domain ?class .
?resource a ?class .
?property rdf:type ?type .
}
结果
:Store :location http://www.w3.org/2002/07/owl#ObjectProperty
:Product :price http://www.w3.org/2002/07/owl#DatatypeProperty
如果属性是数据类型属性,我如何指定属性的类型?例如,我不仅想知道价格是一个DatatypeProperty,而且它是一个浮点数。
谢谢。
数据类型被指定为数据类型属性的范围(rdfs:range
)。
SELECT ?class ?property ?type ?range
WHERE {
?resource ?property ?target .
?resource a ?class .
?property rdf:type ?type .
OPTIONAL {
?property rdfs:domain ?class .
}
OPTIONAL {
?property rdfs:range ?range .
}
}
(我使用OPTIONAL
,以便您的查询还列出没有指定域和/或范围的属性)
结果:截图