SPARQL -获取对象属性和类的数据类型属性的确切类型



我想获得一个类的所有属性。如果一个属性是一个数据类型属性,我想知道它的确切类型,即浮点数,整数,日期等。

运行以下查询,我只得到一个属性是对象属性或数据类型属性

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,以便您的查询还列出没有指定域和/或范围的属性)

结果:截图

相关内容

  • 没有找到相关文章

最新更新