Importer et exporter des ontologies RDF
Validez du RDF/Turtle, importez son schéma dans une branche de revue et exportez une vue de schéma publiée ou de branche.
Importer et exporter des ontologies RDF
Scrydon peut valider un schéma RDF/Turtle (OWL/RDFS), placer les déclarations qui en résultent dans une branche de revue, et exporter soit une ontologie publiée, soit une surcouche de branche, vers du Turtle déterministe. L'import ne publie jamais l'ontologie principale et ne la modifie jamais automatiquement.
Import
- Sélectionnez l'identifiant de l'ontologie cible et fournissez du texte Turtle (ou un fichier
.ttl,.rdfou.owlvia un client qui le lit comme du texte). - Validez avec
client.rdf.import({ ontology, rdf, dryRun: true }). La validation rapporte les types d'objets, les types de liens, les propriétés, les alias et des avertissements bornés, et n'effectue aucune écriture. - Importez avec
client.rdf.import({ ontology, rdf }). La réponse inclut le nouveaubranchIddu brouillon. - Examinez la branche via
client.branchesou toute lecture de schéma qui accepte{ branch }, puis soumettez-la et publiez-la explicitement lorsqu'elle est prête.
Relancer le même contenu avec le même acteur rejoue la même branche et les mêmes lots de déclarations déjà terminés. Un lot ultérieur en échec laisse un brouillon que la même requête peut reprendre en toute sécurité.
Ce qui est importé
| Construction RDF | Devient |
|---|---|
owl:Class / rdfs:Class | Type d'objet (kind : transactional) |
owl:DatatypeProperty (avec rdfs:domain) | Une propriété de ce type d'objet ; rdfs:range correspond à un type scalaire |
owl:ObjectProperty (avec rdfs:domain/rdfs:range) | Type de lien entre les deux types d'objets |
rdfs:label / rdfs:comment | Nom d'affichage / description |
skos:altLabel | Alias indépendant du contexte |
Les individus (données d'instance) — par ex. ex:Alice a ex:Person — ne sont pas
importés. Seul le schéma (classes et propriétés) est créé. L'aperçu de validation
indique combien d'individus ont été ignorés.
Si le domaine d'une propriété de type de données ne se résout pas vers une classe déclarée, elle est ignorée et listée comme avertissement. Les déclarations de schéma sur des nœuds vides et les propriétés d'objet dont les domaines ou portées multi-extrémités ne sont pas pris en charge échouent de manière fermée au lieu d'être aplaties.
L'entrée est limitée à 5 Mio de texte UTF-8, 50 000 quads RDF, 100 avertissements et 10 000 déclarations compilées. Chaque lot de déclarations doit également respecter les limites d'entrée d'action du noyau. Toutes les limites sont vérifiées avant la création de la branche brouillon.
Export
Utilisez client.rdf.export({ ontology }) pour la vue publiée actuelle,
client.rdf.export({ ontology, revisionId }) pour une révision épinglée, ou
client.rdf.export({ ontology, branch }) pour une surcouche de revue. revisionId et branch sont
mutuellement exclusifs. Les types d'objets sont exportés en owl:Class, les propriétés en
owl:DatatypeProperty, les types de liens en owl:ObjectProperty, et les alias en ressources SKOS ou en ressources
d'alias Scrydon nommées. La sortie est déterministe et limitée à 5 Mio.
Taxonomies de base de connaissances (SKOS)
Les taxonomies résident dans l'ontologie scrydon-knowledge-taxonomies et utilisent SKOS plutôt qu'OWL.
client.rdf.import refuse cette ontologie ; utilisez plutôt les routes de taxonomie.
Export. client.rdf.export({ ontology: "scrydon-knowledge-taxonomies" }) ajoute, au
Turtle ci-dessus, chaque taxonomie que vous pouvez voir en tant que skos:ConceptScheme, chaque type en tant que skos:Concept
(skos:inScheme son schéma, skos:broader son type parent, skos:definition), et chaque terme en tant que
skos:Concept typé scrydon:TaxonomyTerm dont le skos:broader est son type, avec skos:altLabel
et skos:hiddenLabel pour ses variantes. Seul ce que votre habilitation autorise est exporté : un terme d'une
taxonomie que vous ne pouvez pas voir est omis, et un terme dont vous ne pouvez pas voir le type n'a pas de skos:broader.
Les termes sont exportés tels qu'ils sont actuellement, même pour un revisionId épinglé.
Import. Un administrateur d'organisation peut importer un schéma de concepts SKOS en tant que taxonomie :
const result = await client.taxonomies.import({
name: "glossary",
rdf: turtle, // a skos:ConceptScheme with its skos:Concept members
marking: { schemeId: "default", rank: 0 }, // applies to the whole import
idempotencyKey: crypto.randomUUID(),
});
// result: { revision, branchId, concepts, terms, warnings }Le schéma nommé comme name est importé, ou le seul schéma du fichier. Ses concepts deviennent les
types de la taxonomie ; les concepts typés scrydon:TaxonomyTerm deviennent des termes. La taxonomie est publiée
immédiatement avec source: "imported", et une réimportation la remplace : les types que le fichier ne déclare plus sont
retirés. Vous ne pouvez pas importer par-dessus une taxonomie qui n'a pas été importée (409,
TAXONOMY_NOT_IMPORTED), ni utiliser un nom commençant par kb- (400, TAXONOMY_NAME_RESERVED), et
le marquage ne peut pas dépasser votre habilitation. Réessayer avec la même idempotencyKey renvoie le même
résultat. Les termes que le fichier ne liste plus ne sont pas supprimés par une réimportation.