假设我在 db 中有金属材料,其屈服强度可以从 300 到 500 MPa。我怎样才能输入它作为文字值。
我应该放置 2 个属性,例如YieldStrengthMin
and YieldStrengthMax
,还是可以在单个条目中完成并格式化为 300 - 500 之类的东西。我知道我可以把它作为字符串类型,但我需要的是当我 SPARQL 我的数据库时,我应该进行查询,以找到所有可以说的材料YieldStrength > 350
。如果它在那个区间甚至是部分的,它应该是一个有效的结果。
好的,另一个例子来澄清
我将拥有材料数据库,每种材料都有许多属性。比方说prop:hasMeltingTemperature
。
material:ZA-12 prop:hasMeltingTemperature "380 - 430".
material:Zn prop:hasMeltingTemperature "420".
其中一些(清洁材料)将具有一个熔化温度,合金的温度将根据某些成分的百分比而变化。
我的应用程序必须从 db 中获取所有材料,假设熔化温度 > 400。所以在这种情况下,它应该同时获取它们。
如果我询问我需要所有熔化温度 < 425 的材料,它也应该同时使用它们。如果查询 < 400,则只有第一个材料。
无论如何,我的问题是:
我应该做这样的属性:
material:ZA-12 prop:hasMeltingTemperature_MIN "380".
material:ZA-12 prop:hasMeltingTemperature_MAX "430".
material:Zn prop:hasMeltingTemperature "420".
然后当我查询时,我必须检测“>”,然后将其与“MIN”温度和“solo”温度进行比较,如果是“<”,则将其与“MAX”温度和“solo”温度进行比较。
在这种情况下,我必须首先检测材料是否只有“一个”或“最小-最大”温度或“无”温度属性。
或者
我可以像第一个示例中那样做,并且只有一个属性,例如:
material:ZA-12 prop:hasMeltingTemperature "380 - 430".
material:Zn prop:hasMeltingTemperature "420" .
并进行某种可以理解“间隔”并比较它们的sparql查询?
这就是我想知道的,因为材料有很多属性,很多材料,其中一些具有“最小最大值”值,一些“单独”值,有些根本没有那个属性,但是有另一个同样的问题...
我的应用程序将在 php 中,所以我将不得不在 php 中生成 sparql 查询,这就是为什么我正在寻找一些“通用”类型的查询(只检查一个属性)..
所以我的问题更多是如何有效地查询 sparql,存储数据的 2 有什么更好的选择,以及如何查询它