RDF Data Cube использует свойство как объект?
Когда я читаю документ 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
выше?
1 ответ
Ключ находится в документе, на который вы ссылаетесь:
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; ] .
Например:dsd-le является определением структуры данных, и в нем есть пять компонентов. Напомним, что структура набора данных была:
Вы можете видеть, что для индексации отдельной ячейки требуется три измерения. Вам нужен диапазон дат (например, 2005–2007), область (например, Кардифф) и пол (например, мужчина). Значения в этих ячейках являются значениями ожидаемой продолжительности жизни; то есть каждое значение - это eb:lifeExpectancy чего-либо. Вот что говорит нам qb:component [ qb:measure, например:lifeExpectancy ].
Другое использование свойств в неимущественных позициях
Этот раздел немного больше комментирует использование свойств в качестве предметов и объектов в тройках. RDF не делает особого различия в отношении ролей, которые ресурсы могут играть в тройках. Субъектами троек могут быть IRI и пустые узлы; свойства троек могут быть только IRI; и объекты троек могут IRI, пустые узлы или литералы. В тройках RDF вам часто нужно использовать 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 использует в других тройках свойство. Например: lifeExpectancy, таким образом, является свойством, хотя в этой тройке это субъект. Позже мы видим тройной
eg:o1 eg:lifeExpectancy 76.7 .
в котором, например: lifeExpectancy используется в качестве свойства.