trustgraph/docs/tech-specs/ontology.zh-cn.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

7.6 KiB
Raw Blame History

layout title parent
default 本体结构技术规范 Chinese (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 的特定需求进行了优化。

命名约定: 该项目使用 kebab-case 格式(例如,natural-worlddomain-modelconfiguration keysAPI endpointsmodule names 等)来表示所有标识符,而不是 snake_case。

目标

  • 类和属性管理: 定义类似 OWL 的类,并包含属性、域、范围以及类型约束
  • 强大的语义支持: 启用全面的 RDFS/OWL 属性,包括标签、多语言支持以及正式约束
  • 多本体支持: 允许多个本体共存并相互协作
  • 验证和推理: 确保本体符合 OWL 类似的标准,包括一致性检查和推理支持
  • 标准兼容性: 支持以标准格式Turtle、RDF/XML、OWL/XML进行导入/导出,同时保持内部优化

背景

TrustGraph 将本体存储为配置项,采用灵活的键值系统。 尽管该格式受到 OWL (Web Ontology Language) 的启发,但它针对 TrustGraph 的特定用例进行了优化,并且并非完全符合所有 OWL 规范。

在 TrustGraph 中,本体能够实现以下功能:

  • 定义对象类型及其属性
  • 规范属性的域、范围和类型约束
  • 进行逻辑推理
  • 定义复杂的关系和数量约束
  • 支持多种语言,用于国际化

本体结构

配置存储

本体以配置项的形式存储,具有以下模式:

  • 类型: ontology
  • : 唯一本体标识符(例如,natural-worlddomain-model
  • : 完整的本体,采用 JSON 格式

JSON 结构

本体的 JSON 格式主要包含四个部分:

1. 元数据

包含本体的行政和描述性信息:

{
  "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. 类

定义对象类型及其层次关系:

{
  "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. 对象属性

用于链接实例的对象属性:

{
  "objectProperties": {
    "has-parent": {
      "uri": "http://trustgraph.ai/ontologies/natural-world#has-parent",
      "type": "owl:ObjectProperty",
      "rdfs:label": [{"value": "has parent", "lang": "en"}],
      "rdfs:comment": "Links an animal to its parent",
      "rdfs:domain": "animal",
      "rdfs:range": "animal",
      "owl:inverseOf": "parent-of",
      "owl:functionalProperty": false
    }
  }
}

支持的属性:

  • uri: 属性的完整 URI
  • type: 始终为 "owl:ObjectProperty"
  • rdfs:label: 语言标记的标签数组
  • rdfs:comment: 属性的描述
  • rdfs:domain: 域的标识符
  • rdfs:range: 范围的标识符
  • owl:inverseOf: 互反属性的标识符
  • owl:functionalProperty: 功能属性的标识符 (可选)

4. 数据类型属性

{
  "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"
    }
  }
}

5. 示例本体

{
  "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#"]
  },
  "classes": {
    "animal": {
      "uri": "http://trustgraph.ai/ontologies/natural-world#animal",
      "type": "owl:Class",
      "rdfs:label": [{"value": "Animal", "lang": "en"}],
      "rdfs:comment": "An animal"
    },
    "cat": {
      "uri": "http://trustgraph.ai/ontologies/natural-world#cat",
      "type": "owl:Class",
      "rdfs:label": [{"value": "Cat", "lang": "en"}],
      "rdfs:comment": "A cat",
      "rdfs:subClassOf": "animal"
    },
    "dog": {
      "uri": "http://trustgraph.ai/ontologies/natural-world#dog",
      "type": "owl:Class",
      "rdfs:label": [{"value": "Dog", "lang": "en"}],
      "rdfs:comment": "A dog",
      "rdfs:subClassOf": "animal",
      "owl:disjointWith": ["cat"]
    }
  },
  "objectProperties": {},
  "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. 数量约束: minCardinalitymaxCardinality,当两者都指定时
  4. 功能属性: 不能有 maxCardinality > 1

导入/导出格式支持

虽然内部格式为 JSON但该系统支持与标准本体格式的转换

  • Turtle (.ttl) - 紧凑的 RDF 序列化
  • RDF/XML (.rdf, .owl) - W3C 标准格式
  • OWL/XML (.owx) - OWL 特定 XML 格式
  • JSON-LD (.jsonld) - 用于链接数据的 JSON

参考文献