database - SPARQL 中的基数是什么意思?

标签 database rdf sparql

在研究与 SPARQL、rdf 等相关的论文时,通常会提到查询结果的基数……但是,我无法理解基数在这里的真正含义。我是 SPARQL 和 rdf 的新手,所以有人可以解释一下基数在 SPARQL 和 rdf 中的含义吗。

数据库中的基数指的是值的唯一性,对于 SPARQL 及其查询结果来说,基数意味着什么……我真的很困惑。有人请解释。

因为它指的是唯一值,那么最大基数和最小基数是什么意思?

最佳答案

SPARQL 的构造与 SQL 有一些天真的相似之处,但这里没有元组,而是三元组。每个三元组都采用 SPO 主题-谓词-对象的形式(有人说 P 代表属性),并且您可以有一些具体的扩展模型,该模型利用这些索引的组合和上下文的第四个索引。 实际上(只是为了重复使用我之前说过的天真的想法)你可以想象一个巨大的表,每个三元组都有一个元组。因此,此处 DISTINCT 三元组的基数表示关于单个主题的“事实”的基数。您应该会看到与关系模型完全不同的模型。例如,通过 rdf/foaf 获得名字和姓氏的人将类似于(使用 turtle 语法):

@prefix foaf:    <http://xmlns.com/foaf/0.1/> .

_:X  foaf:name   "John" .
_:X  foaf:surname   "Doe" 

.

这里我们有两个三元组。

So a SPARQL query like:
SELECT COUNT(?S) as ?triples
WHERE{
?S ?P ?O.
?S foaf:name ?name.
}

将给出简单的三元组 = 2,因为主题的关系中涉及 2 个三元组。

抱歉过于简单化了,但希望它有助于开始 :-) 阿尔弗雷多

关于database - SPARQL 中的基数是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10909041/

相关文章:

rdf - 使用 Sesame 将 Topbraid Composer 连接到 Stardog

sql - 如何获取数据库中发生变化的数据?

mysql - phpMyEdit 知道记录在那里 - 它们只是不显示

neo4j - 由于缺乏具体化,与 RDF 图相比,属性图的表达能力太弱?

java - 如何在 RDF4J(以前的 Sesame)中合并两个或多个模型?

java - owlim-lite 上的 SPARQL 删除不起作用

php - 更高效的名称查询

database - 在哪里可以找到龙与地下城基本集数据的数据库(sqlite、csv 等)?

rdf - 解决在 DBpedia 中查询两个关键字

json - 从 Wikidata 获取可读结果