当前位置: 首页 > 知识库问答 >
问题:

用于检索类的个体的SPARQL查询

孟英锐
2023-03-14

RDF的结果:ClassA类型:

在Protege:x1,x2,x3,x4在Eclipse through Jena:x1,x2,x3,x4,x5,x6,x7,x8,X9...

Select ?x
where { ?x rdf:type :ClassA }

在本体编辑器中,它工作得很好。然而,在Java中,当我执行查询时,我也得到了不属于该类的个体,但它们通过属性与类个体之一相连。有人知道怎么解决吗?本体论是正确的。

    null
PropertyConfigurator.configure("D:\\apache-jena-2.10.1\\jena-log4j.properties");
OntModel model = ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM_MICRO_RULE_INF);
FileManager.get().readModel( model, "file:.owl" );

String queryString =
    "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> " +        
    "PREFIX owl: <http://www.w3.org/2002/07/owl#> " +
    "PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> " +
    "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> " +
    "PREFIX bio: <http://www.semanticweb.org/vassilis/ontologies/2013/5/Bio#> " +

    " SELECT ?x " +
    " WHERE { ?x rdf:type bio:Class } " ;

Query query = QueryFactory.create(queryString);
QueryExecution qe= QueryExecutionFactory.create(query, model);
com.hp.hpl.jena.query.ResultSet resultset = qe.execSelect();
ResultSetFormatter.out(System.out, resultset, query);

门生:

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>       
PREFIX owl: <http://www.w3.org/2002/07/owl#> 
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> 
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
PREFIX bio: <http://www.semanticweb.org/vassilis/ontologies/2013/5/Bio#> 

SELECT ?x 
WHERE { ?x rdf:type bio:ClassA }

共有1个答案

宗弘扬
2023-03-14

如果本体是正确的,那么你能给我们展示你的代码吗?

你确定“:class”是正确的吗?

如果缺省名称空间是owl或其他词汇表,那么它可以返回使用该词汇表的所有个体,或者可能是Jena中使用的推理规则的差异。这是一种假设。

 类似资料:
  • 我是JPA/JPQL的新手,所以如果这个问题不是很清楚,请原谅。 我正在使用以下JPQL查询: 查询在无状态会话上运行,以便获得DB中当前数据的事实上的快照,该快照与实体管理器分离(因此使用了left join fetch)。 不幸的是,我遇到了两个问题: 在尝试微调性能时,使用本机查询似乎并没有比使用JPQL查询更好的性能。使用本机查询也会产生对象类型的结果,这需要后期处理。

  • 我有3个本体文件,第一个导入第二个,第二个导入第三个: 第一个本体导入第二个本体: 第二个本体导入第三个本体: 第三个本体(创建于Protégé)断言一个个体: 当我在Protégé中打开第一个本体并执行SPARQL查询时 它在第三个本体论中找到个体是没有问题的。当我从Jena中的代码运行相同的SPARQL查询时,我没有得到那个个体。查询是针对使用默认设置创建的OntModel运行的。 我知道Je

  • 我正在使用postgresql、hibernate spatial和postgis,希望能够使用SqlQuery检索几何体对象。 然而,每当我试图查询点、多边形或几何体时,例如 我得到例外: hibernate.cfg.xml: 这不是hibernate spatial产品的一部分,还是我做错了什么? 谢谢你,保罗。 相关库/版本: Hibernate核心-3.6.0.最终.jar postgre

  • 我使用jena创建了一个用于电子邮件存储的rdf模型。我的thr rdf代码是: 这是我查询rdf模型的代码。在这里,我从命令行获取输入,但是字符串的查询也可以工作... 这显示了查询的工作情况:

  • 我有以下卡桑德拉表格: 每天早上,聚合应用程序应该加载前一天的数据,并从快照列聚合JSON数据。聚合将按地理哈希对数据进行分组,这就是为什么它的部分被选为分区键的一部分。 我知道它是有效的加载数据从Cassandra通过使用join的Cassandratable-但为此我必须得到RDD构造从(created_date,geo_part)对。虽然我知道created_date值,我不能列出geo_p

  • 问题内容: 如果我有字典,并且想检查一下,则可以将其作为一个块(非常好!),也可以使用方法作为默认值。 我想为做同样的事情。也就是说,如果尚未设置对象,我已经有要返回的对象,但这给了我类似的错误 AttributeError:’bool’对象没有属性’attribute’ 问题答案: 更直接的类似物比是。 (在哪里是可选的,如果未找到,则在no属性上引发异常。) 例如,您将通过。