SPARQLクエリを使用してグラフデータ内のさまざまなタイプのノードおよびエッジエンティティを一覧表示してカウントするにはどうすればよいですか?

user3451166

データセットの要約統計量をいくつか提供したいと考えており、グラフにさまざまなタイプのエッジエンティティとノード(頂点)エンティティを一覧表示したいと思います。

例えば:

-> Twitterのユーザーのソーシャルネットワークグラフとそれに続く関係(同種グラフ)では、頂点エンティティ(ユーザー)のタイプは1つだけですが、ConceptNetデータなどの異種グラフでは複数の値があります。

->エッジエンティティは、クエリを使用して信じる述語の数を数えるだけで計算できます。

SELECT DISTINCT (?p AS ?DistinctEdges)  { ?s ?p ?o }

しかし、頂点に対してこれを行う方法がわかりません。頂点タイプは、トリプルのサブジェクトまたはオブジェクトフィールドからのものであり、オブジェクトは、値(リテラル)または別のリソース自体のいずれかです。

どこかで語彙が間違っていたら失礼します。セマンティックWebアプリケーションの構築に取り組み始めたところです。

RobV

句を使用して、リテラルを省略する関数を使用するUNION句と組み合わせて2つのパターンを組み合わせることができます。FILTERIsLiteral()

SELECT DISTINCT ?vertex
WHERE
{
  { 
    ?vertex ?p [] 
  }
  UNION
  { 
    [] ?p ?vertex 
    FILTER(!IsLiteral(?vertex))
  }
}

[]は匿名変数です。これは、両側のいくつかの位置を気にしないためUNION、匿名変数を指定することで、任意の値に一致しますが、クエリではそれらの値を実行しません。

FILTERユニオンのRHS句は、リテラルであるオブジェクトを除外するために使用されます。RDFはリテラルサブジェクトを禁止しているため、LHSにこれを含める必要はありません。したがって?vertex、LHSからの値はすべてリソース、つまりURI /空白ノードである必要があります。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ