Sparql-实体和实例的数量?

Sparql-实体和实例的数量?,sparql,rdf,semantic-web,dbpedia,triples,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

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

#Number of Entities

SELECT  (count(?entity) AS ?Entities)
                          WHERE{   ?entity rdf:type ?type.
 }
-----------
Output:
113715893
我上面的输出给了我一个大数字。我只是想知道,这是获得实体数量的正确查询吗

我还必须得到实例的数量。我不知道“实例”是什么意思。我假设这是子类或其他东西。
有人能帮我完成这项任务吗?

嘿,实体和实例这两个术语的问题在于它们通常有不同的含义。我假设实体意味着每个可以成为主题的uri。而instance是指作为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关键字。这确保您只计算绑定到此变量的不同实体。

@Bierbarber,我对实体数进行了第一次查询,结果显示为空。虽然第二个查询(实例)给出了结果,但我只是尝试了一下。问题是公共dbpedia端点是有限的(返回实体的数量和计算时间)。因此,只有在调用count而不使用distinct时达到计算限制之前,才能计算绑定的数量。如果你设置了distinct,distinct操作已经超时了有限的计算时间,因此你不会得到任何结果,因为distinct由于超时而没有结果。我明白了,谢谢你让我知道。非常感谢您的帮助还有一件事,有没有办法获取dbpediaendpoint中的数据集列表?(不算在内)