繁体   English   中英

在 java web 中使用 OWL API 获取 snap SPARQL 查询

[英]Fetch snap SPARQL query using OWL API in java web

好的,我有这个使用 protege 的 snap SPARQL 查询

PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX :<http://www.semanticweb.org/astrid/ontologies/2019/5/mpasiv2#>

SELECT ?resep_makanan
WHERE {
    ?resep_makanan rdf:type :resep_makanan.
    ?resep_makanan :resep_untuk :6-7_bulan.
}
ORDER BY ?resep_makanan

它有效,我得到了我的resep_makanan的实例,它们是食物名称,具有 object 属性resep_untuk (recipe_for) 婴儿,他是 6-7_bulan(6-7 个月大)。 然后在我的 java web 代码中,我写

PREFIX :<http://www.semanticweb.org/astrid/ontologies/2019/5/mpasiv2#>
SELECT DISTINCT ?resep_makanan
WHERE {
Type (?resep_makanan, :resep_makanan),
PropertyValue(?resep_makanan, :resep_untuk, :6-7_bulan)
}
order by ?resep_makanan

但我得到 0 个查询结果。 我正在使用 OWL API。 我应该如何正确写?

查找“snap SPARQL”会带来https://github.com/protegeproject/snap-sparql-query项目,我相信这是您实际用于运行查询的项目(因为它在 Protege 中使用)。

如果是这种情况,您没有将 OWL API 用于代码的 SPARQL 部分,因为 OWL API 本身不支持 SPARQL; 我不知道 snap sparql 项目,但是由于它与基于 OWL API 的 Protege 集成,因此我假设 OWL API 用于将基于 SPARQL 的 ZDB974238714CA8DE634A7ACE14 接口。 从项目依赖关系来看,我认为这是de-derivo-sparqldlapi

要回答您的问题,如果相同的查询在 Protege 之外没有产生结果,这必须取决于它没有被发送到同一个 SPARQL 端点或不同的端点设置(例如,您的查询是否依赖于它的推理结果?)

其中一些信息可能在您正在运行的代码中并且没有在此处显示,但我们无法在没有看到的情况下判断。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM