trustgraph/docs/tech-specs/ontology.ru.md
Alex Jenkins 8954fa3ad7 Feat: TrustGraph i18n & Documentation Translation Updates (#781)
Native CLI i18n: The TrustGraph CLI has built-in translation support
that dynamically loads language strings. You can test and use
different languages by simply passing the --lang flag (e.g., --lang
es for Spanish, --lang ru for Russian) or by configuring your
environment's LANG variable.

Automated Docs Translations: This PR introduces autonomously
translated Markdown documentation into several target languages,
including Spanish, Swahili, Portuguese, Turkish, Hindi, Hebrew,
Arabic, Simplified Chinese, and Russian.
2026-04-14 12:08:32 +01:00

160 lines
8.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
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