使用数据类型属性在SPARQL中进行查询

使用数据类型属性在SPARQL中进行查询,sparql,Sparql,我正在使用一个本体OWL并对其进行查询 我的问题是: “前缀a:” +“选择?X” +其中{?xa:hasDay a:“+day+” +?X a:a房间:“+房间+” +?xa:hasStartTime a:“+startTime+”}” 在进行查询时,NetBeans的控制台会提示我: 查询中使用的未定义对象属性: 但是本体中的hasStartTime不是一个对象属性,它是一个数据类型(int)。假设Java变量startTime的值为420(7am),如果查看SPARQL查询,最后一个三元组

我正在使用一个本体OWL并对其进行查询

我的问题是:

“前缀a:” +“选择?X” +其中{?xa:hasDay a:“+day+” +?X a:a房间:“+房间+” +?xa:hasStartTime a:“+startTime+”}”

在进行查询时,NetBeans的控制台会提示我:

查询中使用的未定义对象属性:


但是本体中的hasStartTime不是一个对象属性,它是一个数据类型(int)。

假设Java变量
startTime
的值为420(7am),如果查看SPARQL查询,最后一个三元组模式由

?X a:hasStartTime a:
加上``startTime

i、 它会导致

?X a:hasStartTime a:420

RDF文本必须放在没有前缀的引号中-它是一个文本,而不是一个前缀URI,例如

?X a:hasStartTime 420

或者使数据类型更显式(对于整数值,上面只是一个快捷方式)


?X a:hasStartTime“420”^
假设Java变量
startTime
的值为例如420(7am),如果查看SPARQL查询,最后一个三元组模式由

?X a:hasStartTime a:
加上``startTime

i、 它会导致

?X a:hasStartTime a:420

RDF文本必须放在没有前缀的引号中-它是一个文本,而不是一个前缀URI,例如

?X a:hasStartTime 420

或者使数据类型更显式(对于整数值,上面只是一个快捷方式)


?X a:hasStartTime“420”^

hasStartTime是一个整数(实际上是一个时间,但以分钟为单位,例如上午7点=420),hasStartTime的数据只是一个整数。可以,但不会更改错误原因。我只是举了一个文本值的例子,因为你没有显示你的数据问题仍然是一样的,你在文本值之前加了一个前缀。我可以修改我的答案。我更改我的查询:查询是前缀a:SELECT?X,其中{?X a:hasDay a:周四。?X a:hasRoom a:卧房。?X a:hasStartTime 528}查询可以吗?如果hasStartTime是整数?谢谢你的回答。从语法上来说没关系。我不知道它是否与您的数据匹配,但您不应该简单地尝试一下吗?我的意思是你有代码和数据。hasStartTime是一个整数(实际上是一个时间,但以分钟为单位,例如7 am=420),hasStartTime的数据只是一个整数。好的,但不会改变错误的原因。我只是举了一个文本值的例子,因为你没有显示你的数据问题仍然是一样的,你在文本值之前加了一个前缀。我可以修改我的答案。我更改我的查询:查询是前缀a:SELECT?X,其中{?X a:hasDay a:周四。?X a:hasRoom a:卧房。?X a:hasStartTime 528}查询可以吗?如果hasStartTime是整数?谢谢你的回答。从语法上来说没关系。我不知道它是否与您的数据匹配,但您不应该简单地尝试一下吗?我的意思是你有代码和数据。