我正在使用本体OWL并对其进行查询。
我的查询是:
“PREFIX a:http://www.owl-ontologies.com/Indoor.owl#” +“SELECT?X” +“WHERE {?X a:hasDay a:”+ day +“。” +“?X a:hasRoom a:”+ room +“。” +“?X a:hasStartTime a:”+ startTime +“}”;
目前进行查询时,NetBeans的控制台抛出了我:
查询中使用的未定义对象属性:http://www.owl-ontologies.com/Indoor.owl#hasStartTime
但是本体中的hasStartTime不是对象属性,它是数据类型(int)。
答案 0 :(得分:0)
假设Java变量startTime
的值是例如420(7am),如果查看SPARQL查询,最后的三重模式由
?X a:hasStartTime a:
加上``startTime,
即。它导致
?X a:hasStartTime a:420
RDF文字必须放在没有前缀的引号中 - 它是文字而不是带前缀的URI,例如。
?X a:hasStartTime 420
或使数据类型更明确(对于整数值,上面只是一个快捷方式)
?X a:hasStartTime "420"^^<http://www.w3.org/2001/XMLSchema#integer>