我正在使用OWL-API和Hermit Reasoner编写应用程序。我想通过提交查询来使用SPARQL-DL查询数据:
PREFIX wine: <http://www.w3.org/TR/2003/PR-owl-guide-20031209/wine#>
SELECT ?i
WHERE { Type(?i, wine:PinotBlanc) }
OR WHERE { Type(?i, wine:DryRedWine) }
我可以用owl-api直接执行此操作,还是应该使用外部库(http://www.derivo.de/en/resources/sparql-dl-api/)? (我需要类似的东西
queryEngine.query(my_query);
)
答案 0 :(得分:1)
与2013年7月一样,OWL-API不支持本机SPARQL-DL。您需要插入第三方库才能使其正常工作。
我知道有两个实现(可能还有更多):一个是Derivo(你的链接),另一个是Pellet。
答案 1 :(得分:0)
我使用OWL-API与Hermit和Pellet;两者都很好。 Pellet over Hermit的优势在于它支持内置函数。
即。在Pellet中,对于某个班级Teenager
,您可以使用以下查询获得17岁的人:
Person and (hasAge value "17.0"^^double)
如果您(或某人)仍然感兴趣,我可以为它提供Java类。
答案 2 :(得分:0)
纯OWL-API-impl无法提供非解决方法来支持SPARQL,因为它不是基于图形的解决方案。 现在,从v5开始,ONT-API是基于jena的OWL-API impl。