--- layout: default title: "Структура Онтологии: Техническая Спецификация" parent: "Russian (Beta)" --- # Структура Онтологии: Техническая Спецификация > **Beta Translation:** This document was translated via Machine Learning and as such may not be 100% accurate. All non-English languages are currently classified as Beta. ## Обзор Эта спецификация описывает структуру и формат онтологий в системе TrustGraph. Онтологии предоставляют формальные модели знаний, определяя классы, свойства и отношения, обеспечивая возможности для рассуждения и вывода. Система использует формат конфигурации, вдохновленный OWL, который широко представляет концепции OWL/RDFS, оптимизированный для требований TrustGraph. **Конвенция именования**: Для всех идентификаторов (ключей конфигурации, конечных точек API, названий модулей и т.д.) используется формат kebab-case, а не snake_case. ## Цели - **Управление классами и свойствами**: Определение классов, похожих на OWL, с свойствами, доменами, диапазонами и ограничениями типов. - **Поддержка богатых семантических возможностей**: Обеспечение полных возможностей RDFS/OWL, включая метки, поддержку нескольких языков и формальные ограничения. - **Поддержка нескольких онтологий**: Разрешение одновременного существования и взаимодействия нескольких онтологий. - **Валидация и рассуждение**: Обеспечение соответствия онтологий стандартам, похожим на OWL, с проверкой согласованности и поддержкой вывода. - **Совместимость со стандартами**: Поддержка импорта/экспорта в стандартных форматах (Turtle, RDF/XML, OWL/XML), сохраняя оптимизацию. ## Предыстория TrustGraph хранит онтологии как элементы конфигурации в гибкой системе ключ-значение. Хотя формат вдохновлен OWL (Web Ontology Language), он оптимизирован для конкретных случаев использования TrustGraph и не строго соответствует всем спецификациям OWL. Онтологии в TrustGraph обеспечивают: - Определение формальных типов объектов и их свойств. - Спецификацию доменов, диапазонов и ограничений типов свойств. - Логическое рассуждение и вывод. - Сложные отношения и ограничения кардинальности. - Поддержку нескольких языков для международного использования. ## Структура Онтологии ### Хранение конфигурации Онтологии хранятся как элементы конфигурации с следующим шаблоном: - **Тип**: `ontology` - **Ключ**: Уникальный идентификатор онтологии (например, `natural-world`, `domain-model`) - **Значение**: Полная онтология в формате JSON ### JSON структура Формат JSON для онтологии состоит из четырех основных разделов: #### 1. Метаданные Содержит административную и описательную информацию об онтологии: ```json { "metadata": { "name": "The natural world", "description": "Ontology covering the natural order", "version": "1.0.0", "created": "2025-09-20T12:07:37.068Z", "modified": "2025-09-20T12:12:20.725Z", "creator": "current-user", "namespace": "http://trustgraph.ai/ontologies/natural-world", "imports": ["http://www.w3.org/2002/07/owl#"] } } ``` **Поля:** - `name`: Человекочитаемое имя онтологии - `description`: Краткое описание цели онтологии - `version`: Семантическая версия - `created`: Дата создания в формате ISO 8601 - `modified`: Дата последнего изменения в формате ISO 8601 - `creator`: Идентификатор пользователя/системы, создавшей онтологию - `namespace`: Базовый URI для элементов онтологии - `imports`: Массив URI импортируемых онтологий #### 2. Классы Определяет типы объектов и их иерархические отношения: ```json { "classes": { "animal": { "uri": "http://trustgraph.ai/ontologies/natural-world#animal", "type": "owl:Class", "rdfs:label": [{"value": "Animal", "lang": "en"}], "rdfs:comment": "An animal", "rdfs:subClassOf": "lifeform", "owl:equivalentClass": ["creature"], "owl:disjointWith": ["plant"], "dcterms:identifier": "ANI-001" } } } ``` **Поддерживаемые свойства:** - `uri`: Полный URI класса - `type`: Всегда `"owl:Class"` - `rdfs:label`: Массив меток с указанием языка - `rdfs:comment`: Описание класса - `rdfs:subClassOf`: Идентификатор родительского класса (наследование) - `owl:equivalentClass`: Массив идентификаторов эквивалентных классов - `owl:disjointWith`: Массив идентификаторов классов, отличных друг от друга - `dcterms:identifier`: Опциональный внешний идентификатор #### 3. Объектные свойства Свойства, связывающие экземпляры между собой: ```json { "objectProperties": {} } ``` #### 4. Свойства данных ```json { "datatypeProperties": { "number-of-legs": { "uri": "http://trustgraph.ai/ontologies/natural-world#number-of-legs", "type": "owl:DatatypeProperty", "rdfs:label": [{"value": "number-of-legs", "lang": "en"}], "rdfs:comment": "Count of number of legs of the animal", "rdfs:range": "xsd:nonNegativeInteger", "rdfs:domain": "animal" } } } ``` ## Правила валидации ### Структурная валидация 1. **Уникальность URI**: Все URI должны соответствовать формату `{namespace}#{identifier}` 2. **Иерархия классов**: Не должно быть циклической иерархии в `rdfs:subClassOf` 3. **Области/Диапазоны свойств**: Должны ссылаться на существующие классы или допустимые типы XSD 4. **Отличные классы**: Не могут быть подклассами друг друга 5. **Обратные свойства**: Должны быть двусторонними, если указаны ### Семантическая валидация 1. **Уникальные идентификаторы**: Идентификаторы классов и свойств должны быть уникальными в онтологии 2. **Языковые теги**: Должны соответствовать формату BCP 47 3. **Ограничения кардинальности**: `minCardinality` ≤ `maxCardinality` при указании обоих 4. **Функциональные свойства**: Не должны иметь `maxCardinality` > 1 ## Поддержка импорта/экспорта Хотя внутренний формат - JSON, система поддерживает преобразование в/из стандартных форматов онтологий: - **Turtle (.ttl)** - компактная RDF-сериализация - **RDF/XML (.rdf, .owl)** - стандартный формат W3C - **OWL/XML (.owx)** - XML-формат OWL - **JSON-LD (.jsonld)** - JSON для Linked Data