mirror of
https://github.com/trustgraph-ai/trustgraph.git
synced 2026-04-25 08:26:21 +02:00
161 lines
8.8 KiB
Markdown
161 lines
8.8 KiB
Markdown
|
|
---
|
|||
|
|
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
|