Sparql-实体和实例的数量?

标签 sparql rdf semantic-web dbpedia triples

我正在执行 Sparql 查询的小任务。我想获取实体的数量和实例的数量。我有 Sparql 和 rdf 的基本知识。所以我编写了 sparql 查询来获取实体的数量,但我不能 100% 确定它是正确的。我使用的端点是 Dbpedia。这是查询。

#Number of Entities

SELECT  (count(?entity) AS ?Entities)
                          WHERE{   ?entity rdf:type ?type.
 }
-----------
Output:
113715893

上面的输出给了我很大的数字。我只是想知道获取实体数量的正确查询是吗?

我还必须获取实例的数量。我不确定“实例”是什么意思。我认为这是子类或其他东西。 谁能帮我完成这个任务吗?

最佳答案

嘿,实体和实例这两个术语的问题是它们经常以不同的含义使用。我假设实体是指每个可以作为主题的 uri。而实例意味着作为 owl:Class 实例的每个实体。

对于实体,查询将是:

SELECT  (count(distinct ?entity) AS ?Entities)
                      WHERE{   ?entity ?p ?o}

例如,我会编写以下查询:

select distinct count(distinct ?instance) where {?instance a ?class . ?class a owl:Class} 

也许你在我想计算的变量之前提到了不同的?这对你来说非常重要。因为为了坚持您的尝试,一个实体可以有多种类型。对于每种类型,您都将获得实体和类型变量组合的绑定(bind)。这至少导致您将对查询中找到的每种类型的实体进行计数。因此具有两种类型的实体会被计数两次。但我假设您只想对实体进行一次计数 - 因此您需要对要计数的变量使用 unique 关键字。这可确保您只计算绑定(bind)到该变量的不同实体。

关于Sparql-实体和实例的数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51323057/

相关文章:

java - Snap SPARQL API 是否存在?

rdf - GraphDB 的 Visual graph 不显示所有的三元组

java - 如何使用 RDFBeans 和 Apache Jena 反序列化 Java 对象

java - OWLOntologyManager.addAxioms() 操作的成本有多高?

rdf - Protege 中复杂类的推理

r - 如何从 DBPedia 检索带有标点符号的人名?

sparql - 如何使用 sparql 删除

sparql - 如何列出 Virtuoso 中的所有图表?

c++ - 使用Raptor RDF Parser Toolkit生成FOAF rdfxml文件

semantic-web - 在 OWL 中,一个属性是否可能是多个属性的逆?