SPARQL-DL:查询文字

时间:2016-11-29 16:21:19

标签: sparql owl-api

我在Java应用程序中使用带有OWL-API的SPARQL-DL。 Maven依赖关系如下:

<dependency>
    <groupId>edu.stanford.protege</groupId>
    <artifactId>de-derivo-sparqldlapi</artifactId>
    <version>2.0.0</version>
</dependency>

我认为它会下载正确(兼容)的OWL-API版本。 我有一个人和一些人。每个人都有一个名为name的数据属性,其范围超过字符串。

通过运行此查询:

SELECT ?x WHERE { PropertyValue(?y, my:name, ?x) }

我明白了:

?de.derivo.sparqldlapi.Var@78 = ?"Andrea"^^xsd:string
?de.derivo.sparqldlapi.Var@78 = ?"Pippo"^^xsd:string
?de.derivo.sparqldlapi.Var@78 = ?"Pluto"^^xsd:string

我无法让所有名字都与冥王星相同的人。

SELECT ?p WHERE { PropertyValue(?p, my:name, "Pluto") } 

返回一个空集和

SELECT ?p WHERE { PropertyValue(?p, my:name, "Pluto^^xsd:string") }

返回一个空集

有任何帮助吗? 提前谢谢。

1 个答案:

答案 0 :(得分:1)

数据类型必须放在引号之外,即"Pluto"^^xsd:string

不幸的是,从源代码我可以看到SPARQL-DL API不支持数据类型,请参阅here。所有文字都作为普通文字处理。我认为你应该打开一个功能请求或者自己实现它,然后发出拉取请求。