データセットの要約統計量をいくつか提供したいと考えており、グラフにさまざまなタイプのエッジエンティティとノード(頂点)エンティティを一覧表示したいと思います。
例えば:
-> Twitterのユーザーのソーシャルネットワークグラフとそれに続く関係(同種グラフ)では、頂点エンティティ(ユーザー)のタイプは1つだけですが、ConceptNetデータなどの異種グラフでは複数の値があります。
->エッジエンティティは、クエリを使用して信じる述語の数を数えるだけで計算できます。
SELECT DISTINCT (?p AS ?DistinctEdges) { ?s ?p ?o }
しかし、頂点に対してこれを行う方法がわかりません。頂点タイプは、トリプルのサブジェクトまたはオブジェクトフィールドからのものであり、オブジェクトは、値(リテラル)または別のリソース自体のいずれかです。
どこかで語彙が間違っていたら失礼します。セマンティックWebアプリケーションの構築に取り組み始めたところです。
句を使用して、リテラルを省略する関数を使用するUNION
句と組み合わせて2つのパターンを組み合わせることができます。FILTER
IsLiteral()
SELECT DISTINCT ?vertex
WHERE
{
{
?vertex ?p []
}
UNION
{
[] ?p ?vertex
FILTER(!IsLiteral(?vertex))
}
}
[]
は匿名変数です。これは、両側のいくつかの位置を気にしないためUNION
、匿名変数を指定することで、任意の値に一致しますが、クエリではそれらの値を実行しません。
FILTER
ユニオンのRHSの句は、リテラルであるオブジェクトを除外するために使用されます。RDFはリテラルサブジェクトを禁止しているため、LHSにこれを含める必要はありません。したがって?vertex
、LHSからの値はすべてリソース、つまりURI /空白ノードである必要があります。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加