2016-05-05 13 views
1

WeatherPatternsという名前のクラスがあり、サブクラスが多く、サブクラスの名前はIndividuals/Instancesです。直接インスタンスと間接インスタンスの間の関係をクラスとしますか?

お互いに関係のあるWeatherPatternsのすべてのインスタンスを取得するsparqlクエリが必要です。たとえば、出力トリプルは次のように表示されます。

Cloud produces Rain 
Rain causes Flood 

このクエリの作成方法は?あなたのデータがなければ、事前

+0

:あなたも行うことができます、あなたは1に2つのチェックを結合したい場合は、次の(WeatherPatterns?。チェーンはの直接のインスタンスであることを意味し、長さゼロのものとすることができます)サブクラス/インスタンス同士が互いに関係のあるWeatherPatternsのサブクラス/インスタンスは同じものではありません。そして、通常、インスタンス間には関係があります。クラスはしません。あなたのデータで「雲は雨を産む」と言っていますか?データの例がなければ、そこから情報を取得するクエリを書くことはできません。 –

答えて

3

のおかげで、私たちは正確なクエリを作ることはできませんが、WeatherPatternsの直接または間接のインスタンスであるものの間の関係を探しているなら、それはあまりにも難しいことではありません。

select ?s ?p ?o { 
    #-- Make sure that ?s and ?o are 
    #-- instance of WeatherPatterns 
    #-- or its subclasses. 
    ?s a/rdfs:subClassOf* :WeatherPatterns . 
    ?o a/rdfs:subClassOf* :WeatherPatterns . 

    #-- Find relationships between 
    #-- ?s and ?o. 
    ?s ?p ?o . 
} 

プロパティパスは、SA/RDFS:subClassOfの*:WeatherPatternsRDFのための標準的な略語としてを使用しています:タイプ、およびマッチ relatあるクラスに属し?は、 のrdfs:subClassOf へののプロパティ:WeatherPatternのチェーンによって編成されています。 「

:WeatherPatterns ^(a/rdfs:subClassOf*) ?s, ?o . 
+0

ジョシュアに感謝、それは働いた! –

関連する問題