2016-03-23 14 views
1

クエリーの範囲外の情報を追加しながらSPARQL構文を実行することは可能ですか?例えば、私はこのような列挙情報を定義しながら、SPARQLを構築実行したい:列挙型のカスタムSPARQLコンストラクト

PREFIX skos:<http://www.w3.org/2004/02/skos/core#> 
construct { 
    ?s a skos:Concept 
    ?s ex:index <enumeration starting from 1 -- this is just a sample> 
} 
where { 
    ?s a skos:Concept 
} 

は、純粋なSPARQLでそのような何かをすることは可能ですか?代替案は何ですか?

*追加情報*

おそらく私は基本的に私は(その例を想定して:インデックスが有効DatatypePropertyのです):以下を達成したい、明らかに私の問題を説明していないです

==イニシャルRDFは== == RDFは、SPARQLアップデートの実行後にトリプルを

@prefix skos:<http://www.w3.org/2004/02/skos/core#> 
@prefix ex: <http://example.org/> . 

ex:abc rdf:type skos:Concept . 
ex:def rdf:type skos:Concept . 
... 
ex:endOfSample rdf:type skos:Concept . 

==を3倍

@prefix skos:<http://www.w3.org/2004/02/skos/core#> 
@prefix ex: <http://example.org/> . 

ex:abc rdf:type skos:Concept ; 
    ex:index 1 . 
ex:def rdf:type skos:Concept ; 
    ex:index 2 . 
... 
ex:endOfSample rdf:type skos:Concept ; 
    ex:index <endOfSampleNumber> . 
+1

SPARQLを処理するために何を使用していますか? SPARQLは宣言型であるため、この種の列挙はクエリ言語だけでは不可能です。データを繰り返し処理し、更新クエリを実行して、順序付けられた数値を追加することができます(どの基準で?)。 OTOHでは、SPARQLは宣言型であるため、データの列挙は通常は必要ありません。多分、一歩後退し、より高いレベルの要件が何であるかを説明してください。 – scotthenninger

+0

@scottheningerあなたが言ったように、純粋なSPARQLにこの順序を持​​たせることはできないようです。あなたの提案ごとに問題を解決し、Jenaを使用してクエリ結果を処理し、クエリ結果を反復するときにex:インデックスを追加します。 – FJE

答えて

3

任意の有効なRDF値をCONSTRUCTに作成できます。ただし、WHEREグラフの実行後にCONSTRUCTグラフパターンの変数のいずれかがアンバインドされていると、クエリは失敗します。私。クエリに?pのバインディングが存在せず、CONSTRUCTは決して実行されません。

PREFIX skos:<http://www.w3.org/2004/02/skos/core#> 
PREFIX ex:<http://example.org/construct#> 
construct { 
    ex:someProp a owl:ObjectProperty . 
    ?s ex:someProp (1 2 3) 
} 
where { 
    ?s a skos:Concept 
} 

これは、プロパティ値とリスト構造のための7つのトリプルの建設になります:

これは、あなたが始める必要がある例です。

ad-hocリストのSKOSに適切なオブジェクトプロパティがないため、ex:somePropが追加されました。いくつかの意味的な意味でプロパティを定義するのが最善でしょう。また、{ex:someProp a owl:ObjectProperty}トリプルは{?s a skos:Concept}の各マッチに対してアサートされますが、それは同じトリプルなので、最後には1つしかありません。価格は効率的なものなので、このクエリ以外のプロパティを宣言する方が良い選択になります。これは、完全性のために上記のクエリに含まれています。

+0

こんにちは、私は明らかに私の質問を説明していないようです。私は追加された情報が私の質問にいくつかの文脈を置くことを望むありがとう! – FJE