owl和rdf中的计量单位

时间:2013-11-27 16:51:09

标签: rdf semantic-web owl units-of-measurement linked-data

我正在创建材料及其物理属性的链接数据,而我在为某些属性设置单位时遇到问题。我的个人材料:AlMg3具有一些机械属性,如:

:AlMg3 prop:hasTensileStrength "300" .
:AlMg3 prop:hasYieldStrength   "2" .
:alMg3 prop:hasDensity         "2200" .

如何为这些值设置单位?我的第一个想法是创建新的数据类型,例如:

unit:megaPascal rdf:type   rdfs:datatype ;
                rdfs:label "MPa" .

unit:Pascal rdf:type   rdfs:datatype ;
                rdfs:label "Pa" .

然后像这样使用它们:

:AlMg3 prop:hasTensileStrength "300"^^unit:megaPascal .
:AlMg3 prop:hasYieldStrength   "2"^^unit:Pascal .

然后我想把这些单位联系起来:

unit:megaPascal prop:hasBaseUnit   unit:Pascal .
unit:pascal     prop:hasBaseSIUnit unit:kilogramPerMeterSecondSquared .

这可能吗?单位是数据类型,我不能在它们之间放置数据类型属性,除了注释属性?是否有可能使这些单位成为个体(甚至是类)并将其用作某种值后的数据类型?

我看到了QWT(数量,单位,尺寸和数据类型)的OWL本体,但我打算尝试创建更简单的东西。

1 个答案:

答案 0 :(得分:8)

您可以使用您喜欢的任何数据类型,但是如果您这样做(例如,使用"300"^^unit:megaPascal)则问题是您不能再对它们进行算术运算,并且您无法对词汇进行任何验证来自任何标准工具的表格。更好的选择是向属性添加一些文档,并使用支持数据类型的文字,或者为这些测量使用一些结构化值。

文档和标准数据类型

更有意义的是,只需在相关属性中添加注释即应将其值指定为某个特定单位的数字。例如,

prop:hasYieldStrength rdfs:comment "YieldStrength of material in Pascals"@en .

结构化值(可能使用rdf:value

另一种选择是使这些属性的范围成为指定测量和单位的某种实体,以便您的数据如下:

:AlMg3 prop:hasTensileStrength [ rdf:value "300"^^xsd:integer ;
                                 unit:units unit:megaPascal ] .

如果您在OWL工作,我不确定是否可以使用rdf:value,但您当然可以使用自己的词汇来做同样的事情。如果你可以使用rdf:value,这实际上就是RDF文档说它可以使用的方式之一:

  

5.4.3 rdf:value

     

rdf:value是rdf:可以在其中使用的属性的实例   描述结构化价值。

     

rdf:价值本身没有任何意义。它是作为一块提供的   可用于习语的词汇,如例子中所示   RDF引物中的16个[RDF-PRIMER]。尽管缺乏正式的   规范这个属性的含义,有价值   定义它以鼓励在这个例子中使用一个共同的习语   样。

RDF Primer也有相关材料;测量是一个明确的例子:

  

4.4 More on Structured Values: rdf:value

     

...例如,在3.2节的例9中,特定的权重   帐篷以十进制值2.4给出,使用类型文字,即

exproduct:item10245   exterms:weight   "2.4"^^xsd:decimal .
     事实上,一个   更完整的重量描述将是2.4公斤   而不仅仅是小数值2.4。说明这一点,价值   exterms:weight属性需要有两个组件,即   十进制值的类型文字和单位的指示   测量(公斤)。在这种情况下,十进制值可能是   被认为是外部的“主要”价值:重量属性,因为   通常,该值将被简单地记录为键入的文字(如   在上面的三重中),依靠对上下文的理解   填写未说明的单位信息。

     

在RDF模型中,可以使用此类限定属性值   被视为另一种结构化价值。代表   这个,可以用一个单独的资源来表示结构化的   价值作为一个整体(在这种情况下的重量),并作为   原始陈述的对象。然后可以给出该资源   表示结构化值的各个部分的属性。   在这种情况下,键入的文字应该有一个属性   表示十进制值,以及单位的属性。 RDF   提供预定义的rdf:value属性来描述主值   (如果有的话)结构化价值。所以在这种情况下,键入   literal可以作为rdf:value属性的值给出   资源经费:千克作为外部的价值:单位财产   (假设资源是exunits:千克被定义为   example.org的词汇表)。由此产生的三元组将是:

exproduct:item10245   exterms:weight   _:weight10245 .
_:weight10245         rdf:value        "2.4"^^xsd:decimal .
_:weight10245         exterms:units    exunits:kilograms .

请注意,最后一个示例可以写为:

exproduct:item10245 exterms:weight [ rdf:value "2.4"^^xsd:decimal ;
                                     exterms:units exunits:kilograms ] .