6

我正在创建材料及其物理特性的链接数据,但在为某些特性设置单位时遇到了麻烦。我的单个材料: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 .

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

我看到了 QUDT(数量、单位、维度和数据类型)的 OWL 本体,但我打算自己创建一些更简单的东西。

4

1 回答 1

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:值

rdf:value 是 rdf:Property 的一个实例,可用于描述结构化值。

rdf:value 本身没有任何意义。它作为一个词汇表提供,可用于诸如 RDF 入门 [RDF-PRIMER] 的示例 16 中所示的习语。尽管缺乏对该属性含义的正式说明,但对其进行定义以鼓励在此类示例中使用常见习语是有价值的。

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

4.4 更多关于结构化值:rdf:value

…例如,在第 3.2 节的示例 9 中,特定帐篷的重量使用类型文字以十进制值 2.4 的形式给出,即

exproduct:item10245   exterms:weight   "2.4"^^xsd:decimal .

事实上,更完整的重量描述应该是 2.4 公斤,而不仅仅是十进制值 2.4。为了说明这一点,exterms:weight 属性的值需要有两个组成部分,十进制值的类型化文字和度量单位(千克)的指示。在这种情况下,十进制值可以被认为是 exterms:weight 属性的“主要”值,因为通常该值将被简单地记录为类型化文字(如上面的三元组),这取决于对填充上下文的理解在未说明的单位信息中。

在 RDF 模型中,这种合格的属性值可以简单地被认为是另一种结构化值。为了表示这一点,可以使用单独的资源将结构化值表示为一个整体(在这种情况下为权重),并用作原始语句的对象。然后可以为该资源赋予代表结构化值的各个部分的属性。在这种情况下,应该有一个表示十进制值的类型文字的属性和一个单位的属性。RDF 提供了一个预定义的 rdf:value 属性来描述结构化值的主要值(如果有的话)。所以在这种情况下,类型化的文字可以作为 rdf:value 属性的值,而资源 exunits:kilograms 作为 exterms 的值:units 属性(假设资源 exunits:kilograms 被定义为 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 ] .
于 2013-11-27T21:08:13.593 回答