SPARQL は単純に SQL に類似するように構築されていますが、ここではタプルではなくトリプルです。すべてのトリプルは、SPO 主語-述語-目的語の形式であり (P はプロパティのことだと誰かが言う)、これらのインデックスとコンテキストの 4 番目のインデックスの組み合わせを利用する具体的な拡張モデルを作成できます。実質的に言えば (前に述べた素朴なアイデアを再利用するために)、トリプルごとにタプルを持つ巨大なテーブルを想像することができます。したがって、ここでの DISTINCT トリプルのカーディナリティは、1 つの主題に関する「事実」のカーディナリティを表します。リレーショナル モデルとはまったく異なるモデルがあることがわかります。たとえば、rdf/foaf を介して名前と姓を持つ人は次のようになります (タートル構文を使用):
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
_:X foaf:name "John" .
_:X foaf:surname "Doe"
.
ここには 2 つのトリプルがあります。
So a SPARQL query like:
SELECT COUNT(?S) as ?triples
WHERE{
?S ?P ?O.
?S foaf:name ?name.
}
主語の関係には 2 つのトリプルがあるため、単純にトリプル = 2 になります。
単純化しすぎて申し訳ありませんが、開始するのに役立つことを願っています:-) Alfredo