300 から 500 MPa の降伏強度を持つ金属材料が db にあるとしましょう。それをリテラル値として入力するにはどうすればよいですか。
YieldStrengthMin
とのような 2 つのプロパティを配置する必要がありYieldStrengthMax
ます。または、単一のエントリで実行して、300 から 500 のようにフォーマットすることもできます。文字列型としてそのように配置できることはわかっていますが、必要なのは、DB を SPARQL するときに、 let's say を持つすべての資料を検索するクエリを作成する必要がありますYieldStrength > 350
。部分的であってもその間隔内にある場合、有効な結果になるはずです。
OK、明確にする別の例
マテリアルのデータベースがあり、各タイプのマテリアルには多くのプロパティがあります。としましょうprop:hasMeltingTemperature
。
material:ZA-12 prop:hasMeltingTemperature "380 - 430".
material:Zn prop:hasMeltingTemperature "420".
それらの一部 (クリーンな材料) には 1 つの融解温度があり、合金の温度は一部の成分の割合によって異なります。
私のアプリケーションは、たとえば融解温度が 400 を超えるすべての材料をデータベースから取得する必要があります。したがって、この場合は両方を取得する必要があります。
また、融解温度が 425 未満のすべての材料が必要であると問い合わせると、両方とも取得する必要があります。クエリが 400 未満の場合、最初のマテリアルのみ。
とにかく、私の質問は:
次のようなプロパティを作成する必要があります。
material:ZA-12 prop:hasMeltingTemperature_MIN "380".
material:ZA-12 prop:hasMeltingTemperature_MAX "430".
material:Zn prop:hasMeltingTemperature "420".
次に、クエリを実行するときに ">" を検出し、それを "MIN" temp および "solo" temp と比較し、"<" の場合は "MAX" temp および "solo" temp と比較する必要があります。
この場合、材料に「1」または「最小-最大」温度または「なし」温度プロパティしかないことを最初に検出する必要があります。
また
最初の例のようにして、次のようなプロパティを 1 つだけ持つことができます。
material:ZA-12 prop:hasMeltingTemperature "380 - 430".
material:Zn prop:hasMeltingTemperature "420" .
「間隔」を理解して比較できるある種のsparqlクエリを作成しますか?
マテリアルには多くのプロパティがあり、多くのマテリアルがあり、それらの一部には「最小最大」値、「ソロ」値があり、一部にはそのプロパティがまったくありませんが、別のものには同じ問題...
私のアプリケーションはphpで作成されるため、phpでsparqlクエリを生成する必要があるため、「ユニバーサル」タイプのクエリを探していました(1つのプロパティのみをチェックします)。
したがって、私の問題は、効率的に sparql クエリを実行する方法、データを格納するための 2 つのより良い選択、およびそれをクエリする方法です。