RDF数据立方体使用属性作为对象?

RDF数据立方体使用属性作为对象?,rdf,ontology,data-cube,Rdf,Ontology,Data Cube,当我阅读文档时,有一件事让我困惑:MeasureProperties(在下面的示例中,我使用例如:预期寿命首先定义为属性。但是,在定义数据结构时,它们被用作对象。这是允许的吗?请参阅直接取自规范文档的以下示例 因此,首先,MeasureProperty本身被定义为一个rdf:property。请参见下面的示例,例如:预期寿命: eg:lifeExpectancy a rdf:Property, qb:MeasureProperty; rdfs:label "life expectanc

当我阅读文档时,有一件事让我困惑:
MeasureProperties
(在下面的示例中,我使用
例如:预期寿命
首先定义为属性。但是,在定义数据结构时,它们被用作对象。这是允许的吗?请参阅直接取自规范文档的以下示例

因此,首先,
MeasureProperty
本身被定义为一个
rdf:property
。请参见下面的
示例,例如:预期寿命

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: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:o1aqb:观察;
qb:数据集,例如:数据集-le1;
例如:地理位置重构:纽波特;
sdmx维度:sex sdmx代码:sex-M;
sdmx属性:unitMeasure;
例:预期寿命76.7岁;
.

如何可能/允许使用
例如:寿命
作为对象,正如上面的
qb:DataStructureDefinition
中所做的那样?

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

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

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

例如:dsd le是一个数据结构定义,它有五个组成部分。回想一下,数据集的结构是:

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


非财产位置中财产的其他用途 本节对属性作为三元组中的主语和宾语的使用进行了更多的说明。 RDF对资源在三元组中可以扮演的角色没有太大区别。三元组的主题可以是IRIs和空白节点;三元组的属性只能是IRIs;三元组的对象可以是IRIs、空白节点或文本。在RDF三元组中,通常需要使用IRIs作为orde中的对象或主题r来描述它们。例如:

# :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在其他三元组中被用作一个属性。例如:LifeExpection,则是一个属性,尽管在这个三元组中是一个属性主题。稍后,我们会看到三重主题

eg:o1 eg:lifeExpectancy 76.7 .
其中例如:使用寿命作为属性


RDF数据属性的不同用途CubeI认为这实际上并没有解决OPs问题。他的混淆之处在于行
qb:component[qb:measure例如:预期寿命]
其中
例如:寿命
被用作对象,尽管之前被定义为属性。@JeenBroekstra啊,我明白你的意思,这是一个很好的观点。在这个问题中,属性出现在主语和宾语位置的位置已经足够多了,我想这就是OP所问的。我认为具体的answe这里的r可能与
的预期解释有关,例如:dsd le a qb:DataStructureDefinition;
@JeenBroekstra我已经更新了我的答案;希望它现在能解决更多的问题。是的,现在它是有意义的。感谢详细和具体的答案。我只是不知道这个事实,它也被允许使用属性作为主题或对象。但看起来(也是从您的示例中),这样做很好。我的困惑源于OWL数据建模,其中您有类和属性。我现在了解到,如果我将某个对象定义为OWL:class,它以后也可以在RDF中作为三元组的主题或对象使用。如果我错了,请纠正我。
eg:o1 eg:lifeExpectancy 76.7 .