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.
10 KiB
| layout | title | parent |
|---|---|---|
| default | Especificación Técnica de la Estructura de Ontologías | Spanish (Beta) |
Especificación Técnica de la Estructura de Ontologías
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.
Resumen
Esta especificación describe la estructura y el formato de las ontologías dentro del sistema TrustGraph. Las ontologías proporcionan modelos de conocimiento formales que definen clases, propiedades y relaciones, lo que permite capacidades de razonamiento e inferencia. El sistema utiliza un formato de configuración inspirado en OWL que representa ampliamente los conceptos de OWL/RDFS, al tiempo que está optimizado para los requisitos de TrustGraph.
Convención de Nombres: Este proyecto utiliza kebab-case para todos los identificadores (claves de configuración, puntos finales de la API, nombres de módulos, etc.) en lugar de snake_case.
Objetivos
- Gestión de Clases y Propiedades: Definir clases similares a OWL con propiedades, dominios, rangos y restricciones de tipo.
- Soporte Semántico Avanzado: Permitir propiedades completas de RDFS/OWL, incluyendo etiquetas, soporte multilingüe y restricciones formales.
- Soporte para Múltiples Ontologías: Permitir que múltiples ontologías coexistan e interactúen.
- Validación y Razonamiento: Asegurar que las ontologías cumplan con estándares similares a OWL, con verificación de consistencia y soporte de inferencia.
- Compatibilidad con Estándares: Soporte de importación/exportación en formatos estándar (Turtle, RDF/XML, OWL/XML) al tiempo que se mantiene la optimización interna.
Antecedentes
TrustGraph almacena ontologías como elementos de configuración en un sistema flexible de clave-valor. Si bien el formato está inspirado en OWL (Web Ontology Language), está optimizado para los casos de uso específicos de TrustGraph y no se adhiere estrictamente a todas las especificaciones de OWL.
Las ontologías en TrustGraph permiten:
- Definición de tipos de objetos formales y sus propiedades.
- Especificación de dominios, rangos y restricciones de tipo de propiedades.
- Razonamiento e inferencia lógicos.
- Relaciones complejas y restricciones de cardinalidad.
- Soporte multilingüe para la internacionalización.
Estructura de la Ontología
Almacenamiento de la Configuración
Las ontologías se almacenan como elementos de configuración con el siguiente patrón:
- Tipo:
ontology - Clave: Identificador de ontología único (por ejemplo,
natural-world,domain-model). - Valor: Ontología completa en formato JSON.
Estructura JSON
El formato JSON de la ontología consta de cuatro secciones principales:
1. Metadatos
Contiene información administrativa y descriptiva sobre la ontología:
{
"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#"]
}
}
Campos:
name: Nombre legible por humanos de la ontología.description: Descripción breve del propósito de la ontología.version: Número de versión semántico.created: Marca de tiempo ISO 8601 de creación.modified: Marca de tiempo ISO 8601 de última modificación.creator: Identificador del usuario/sistema que creó.namespace: URI base para elementos de la ontología.imports: Matriz de URIs de ontologías importadas.
2. Clases
Define los tipos de objetos y sus relaciones jerárquicas:
{
"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"
}
}
}
Propiedades soportadas:
uri: URI completa de la clase.type: Siempre"owl:Class".rdfs:label: Matriz de etiquetas con etiquetas de idioma.rdfs:comment: Descripción de la clase.rdfs:subClassOf: Identificador de la clase padre (herencia simple).owl:equivalentClass: Lista de clases equivalentes.owl:disjointWith: Lista de clases disjuntas.dcterms:identifier: Identificador de la clase.
3. Propiedades de Objetos
Define las relaciones entre las clases:
{
"objectProperties": {
"hasPart": {
"uri": "http://trustgraph.ai/ontologies/natural-world#hasPart",
"type": "owl:ObjectProperty",
"rdfs:label": [{"value": "hasPart", "lang": "en"}],
"rdfs:comment": "Represents a part-whole relationship",
"domain": "lifeform",
"range": "lifeform"
}
}
}
Propiedades soportadas:
uri: URI completa de la propiedad de objeto.type: Siempre"owl:ObjectProperty".rdfs:label: Matriz de etiquetas con etiquetas de idioma.rdfs:comment: Descripción de la propiedad de objeto.domain: Clase de dominio de la propiedad de objeto.range: Clase de rango de la propiedad de objeto.
4. Propiedades de Datos
Define las características de las clases:
{
"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"
}
}
}
Propiedades soportadas:
uri: URI completa de la propiedad de datos.type: Siempre"owl:DatatypeProperty".rdfs:label: Matriz de etiquetas con etiquetas de idioma.rdfs:comment: Descripción de la propiedad de datos.rdfs:range: Tipo de datos de la propiedad de datos.rdfs:domain: Clase de dominio de la propiedad de datos.
Estructura JSON
El formato JSON de la ontología consta de cuatro secciones principales:
1. Metadatos
Contiene información administrativa y descriptiva sobre la ontología:
{
"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#"]
}
}
Campos:
name: Nombre legible por humanos de la ontología.description: Descripción breve del propósito de la ontología.version: Número de versión semántico.created: Marca de tiempo ISO 8601 de creación.modified: Marca de tiempo ISO 8601 de última modificación.creator: Identificador del usuario/sistema que creó.namespace: URI base para elementos de la ontología.imports: Matriz de URIs de ontologías importadas.
2. Clases
Define los tipos de objetos y sus relaciones jerárquicas:
{
"classes": {
"lifeform": {
"uri": "http://trustgraph.ai/ontologies/natural-world#lifeform",
"type": "owl:Class",
"rdfs:label": [{"value": "Lifeform", "lang": "en"}],
"rdfs:comment": "A living thing"
},
"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"
},
"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"
}
}
}
Reglas de Validación
Validación Estructural
- Consistencia de URI: Todos los URIs deben seguir el patrón
{namespace}#{identifier}. - Jerarquía de Clases: No debe haber herencia circular en
rdfs:subClassOf. - Dominios/Rangos de Propiedades: Deben referenciar clases existentes o tipos XSD válidos.
- Clases Disjuntas: No pueden ser subclases entre sí.
- Propiedades Inversas: Deben ser bidireccionales si se especifican.
Validación Semántica
- Identificadores Únicos: Los identificadores de clase y propiedad deben ser únicos dentro de una ontología.
- Etiquetas de Idioma: Deben seguir el formato de etiqueta de idioma BCP 47.
- Restricciones de Cardinalidad:
minCardinality≤maxCardinalitycuando ambos están especificados. - Propiedades Funcionales: No pueden tener
maxCardinality> 1.
Soporte de Formato de Importación/Exportación
Si bien el formato interno es JSON, el sistema admite la conversión a/desde formatos de ontología estándar:
- Turtle (.ttl): Serialización RDF compacta.
- RDF/XML (.rdf, .owl): Formato estándar de W3C.
- OWL/XML (.owx): Formato XML específico de OWL.
- JSON-LD (.jsonld): JSON para Linked Data.