Sparql- 实体和实例的数量?

Sparql- Number Of Entities and Instances?

我正在 Sparql Query 上做一个小任务。我想获取实体数和实例数。我对 Sparql 和 rdf 有基本的了解。所以我写了 sparql 查询来获取实体的数量,但我不是 100% 确定它是正确的。我使用的端点是 Dbpedia。这是查询。

#Number of Entities

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

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

我还必须获取实例数。我不确定 'instances' 是什么意思。我假设那是子类之类的。 谁能帮我完成任务?

嘿,实体和实例这两个术语的问题在于它们经常用于不同的含义。我假设 Entity 意味着每个可以成为主题的 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} 

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