Единицы измерения в сове и rdf

99
9

Я создаю связанные данные материалов и их физические свойства, и у меня возникают проблемы с настройкой единиц для определенных свойств. Мой индивидуальный материал :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 .

Возможно ли это? Единицы были бы типами данных, и я не могу устанавливать между ними свойства типа данных, за исключением свойств аннотации? Можно ли сделать эти единицы отдельными лицами (или даже классами) и использовать их как тип данных после некоторого значения?


Я видел онтологии OWL для QUDT (количества, единицы измерения, размеры и типы данных), но я собирался попытаться создать что-то более простое.

спросил(а) 2021-01-25T21:08:51+03:00 4 месяца, 4 недели назад
1
Решение
108

Вы можете использовать любые типы данных, которые вам нравятся, но проблема, если вы это сделаете (например, используя "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: значение - это экземпляр rdf: свойство, которое может использоваться в описывая структурированные значения.

rdf: значение не имеет значения само по себе. Он предоставляется как часть лексика, которая может использоваться в идиомах, таких как проиллюстрировано в примере 16 праймера RDF [RDF-PRIMER]. Несмотря на отсутствие формальных уточнение значения этого свойства, в определяя его, чтобы поощрять использование общей идиомы в примерах этого вид.



RDF Primer также имеет соответствующий материал; измерения являются одним из явных примеров:


4.4 Дополнительные сведения о структурированных значениях: rdf: значение

... Например, в примере 9 в разделе 3.2 вес конкретного палатку давали как десятичное значение 2.4 с использованием типизированного литерала, т.е.


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

Фактически, более полное описание веса было бы 2,4 килограмма а не просто десятичное значение 2.4. Чтобы сформулировать это, значение свойство exterms: weight должно иметь два компонента: набранный буквальный для десятичного значения и указание единицы мера (килограммы). В этой ситуации десятичное значение может быть считалось "основным" значением exterms: весовое свойство, потому что часто значение записывалось просто как типизированный литерал (как в тройке выше), опираясь на понимание контекста заполните информацию о неустановленных единицах.

В модели RDF квалифицированное значение свойства такого типа может быть рассматривается как просто другой вид структурированной ценности. Представлять это, отдельный ресурс может быть использован для представления структурированных ценности в целом (вес в этом случае) и служить в качестве объект исходного утверждения. Затем этот ресурс можно было бы дать свойства, представляющие отдельные части структурированного значения. В этом случае должно быть свойство для типизированного литерала представляющее десятичное значение, и свойство для единицы. RDF предоставляет предопределенное свойство rdf: value для описания основного значения (если таковой имеется) структурированного значения. Таким образом, в этом случае типизированные литерал может быть задан как значение свойства rdf: value, а ресурс exunits: килограммы как ценность exterms: units property (предполагая, что ресурс используется: килограммы определены как часть 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 ] .

ответил(а) 2021-01-25T21:08:51+03:00 4 месяца, 4 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема