3

当我阅读RDF Data Cube Vocabulary文档时,有一件事让我感到困惑:(MeasureProperties在下面的示例中,我eg:lifeExpectancy首先将它们定义为属性。但是,在定义数据结构时,它们被用作对象。这是否允许?请参阅以下示例直接取自规范文件。

因此,首先将MeasureProperty自身定义为rdf:property. 请参阅以下示例eg:lifeExpectancy

eg:lifeExpectancy  a rdf:Property, qb:MeasureProperty;
    rdfs:label "life expectancy"@en;
    rdfs:subPropertyOf sdmx-measure:obsValue;
    rdfs:range xsd:decimal . 

稍后,这MeasureProperty用于定义数据结构:

eg:dsd-le a qb:DataStructureDefinition;
    # The dimensions
    [...]
    # The measure(s)
    qb:component [ qb:measure eg:lifeExpectancy];
    # The attributes
    [...]

如您所见eg:lifeExpectancy,此处用作对象,这是不允许的,因为它是属性?!还是我想错了?

后来,当实际表达观察时,eg:lifeExpectancy是我们作为一个属性

eg:o1 a qb:Observation;
    qb:dataSet  eg:dataset-le1 ;
    eg:refArea                 ex-geo:newport_00pr ;                  
    sdmx-dimension:sex         sdmx-code:sex-M ;
    sdmx-attribute:unitMeasure <http://dbpedia.org/resource/Year> ;
    eg:lifeExpectancy          76.7 ;
    .

怎么可能/允许eg:lifeExpectancy 用作对象,就像上面所做的那样qb:DataStructureDefinition

4

1 回答 1

2

关键在您链接到的文档中:

6. 创建数据结构定义

qb:DataStructureDefinition 定义一个或多个数据集的结构。特别是,它定义了数据集中使用的维度、属性和度量以及限定信息,例如维度的排序以及属性是必需的还是可选的。

您向我们展示的整个示例是:

例 4

eg:dsd-le a qb:DataStructureDefinition;
    # The dimensions
    qb:component [ qb:dimension eg:refArea;         qb:order 1 ];
    qb:component [ qb:dimension eg:refPeriod;       qb:order 2 ];
    qb:component [ qb:dimension sdmx-dimension:sex; qb:order 3 ];
    # The measure(s)
    qb:component [ qb:measure eg:lifeExpectancy];
    # The attributes
    qb:component [ qb:attribute sdmx-attribute:unitMeasure; 
                   qb:componentRequired "true"^^xsd:boolean;
                   qb:componentAttachment qb:DataSet; ] .

eg:dsd-le是一个数据结构定义,它有五个组件。回想一下,数据集的结构是:

预期寿命数据集

您可以看到索引单个单元格需要三个维度。您需要日期范围(例如2005–2007)、地区(例如Cardiff)和性别(例如Male)。这些单元格中的值是预期寿命值;即,每个值都是某物的eb:lifeExpectancy。这就是qb:component [ qb:measure eg:lifeExpectancy ]告诉我们的。


非物业职位中物业的其他用途

本节对将属性用作三元组中的主语和宾语进行了更多评论。RDF 对资源在三元组中可以扮演的角色没有太大区别。三元组的主题可以是 IRI 和空白节点;三元组的属性只能是 IRI;三元组的对象可以是 IRI、空白节点或文字。在 RDF 三元组中,您通常需要使用 IRI,这些 IRI 通常用作对象或主题的属性来描述它们。例如,:

# :hasParent used as property
:isaac :hasParent :abraham .

# :hasParent used as subject
:hasParent rdfs:label "has father"@en ;
           rdfs:comment "used to indicate that the object is a parent of the subject"@en ;
           rdf:type :FamilialRelationship .

# :hasParent used as object
:hasChild owl:inverseOf :hasParent .

你的具体例子

属性的不同用途,一般是RDF

值得看看您提到的示例中实际发生的情况。在第一个:

eg:lifeExpectancy  a rdf:Property, qb:MeasureProperty;
  … .

qb:MeasureProperty实际上显示为三元组的对象

eg:lifeExpectancy rdf:type qb:MeasureProperty

这意味着qb:MeasureProperty是一个。顾名思义,它是一个属性类。即,当您看到x rdf:type qb:MeasureProperty时,您可以期望看到x在其他三元组中使用的属性。 eg:lifeExpectancy是一个属性,尽管在这个三元组中它是一个主题。稍后,我们看到三重奏

eg:o1 eg:lifeExpectancy 76.7 .

其中eg:lifeExpectancy用作属性。

RDF Data Cube 属性的不同用途

于 2014-12-23T17:43:06.263 回答