Skip to content

Documentation du format JSON Wikit Semantics

Introduction

Le format JSON Wikit Semantics est une structure de données conçue pour représenter des documents numériques de manière sémantique. Inspiré par Schema.org, ce format facilite l'intégration, le traitement et l'analyse de contenus documentaires dans vos applications.

Ce format offre une manière simple de représenter des documents numériques pour ingestion dans des apps LLM avec mécanisme de RAG.

Structure de base (Document)

Un document au format Wikit Semantics est représenté par un objet JSON avec les propriétés suivantes :

json
{
    "@context": "https://wikit.ai",
    "@type": "Document",
    "identifier": "document-1",
    "title": "Titre du document",
    "url": "https://source-du-document.com/page",
    "hasPart": [
        // Tableau de fragments DocumentChunk
    ]
}
  • @context: Toujours défini comme "https://wikit.ai"
  • @type: Toujours "Document" pour l'objet racine
  • identifier: L’identifiant du document dans la source d’origine
  • title: Le titre du document
  • url: L'URL source du document
  • hasPart: Un tableau contenant les fragments du document

Fragments de document (DocumentChunk)

Chaque fragment du document est représenté par un objet DocumentChunk :

json
{
    "@type": "DocumentChunk",
    "text": "Contenu textuel du fragment"
}
  • @type: Toujours "DocumentChunk"
  • text: Le contenu textuel du fragment, qui peut inclure du formatage (ex : Markdown)

Utilisation

Création d'un document

Pour créer un document au format Wikit Semantics :

  1. Commencez par l'objet racine avec les propriétés @context@typetitle, et url.
  2. Divisez le contenu du document en fragments logiques.
  3. Pour chaque fragment, créez un objet DocumentChunk et ajoutez-le au tableau hasPart.

Lecture et traitement

Pour traiter un document Wikit Semantics :

  1. Parsez le JSON pour obtenir l'objet document.
  2. Accédez aux métadonnées via les propriétés title et url.
  3. Itérez sur le tableau hasPart pour traiter chaque fragment individuellement.

Exemple de code (Python)

Voici un exemple simple de création et de lecture d'un document Wikit Semantics en Python :

python
import json

# Création d'un document
document = {
    "@context": "https://wikit.ai",
    "@type": "Document",
    "identifier": "document-1",
    "title": "Mon Document",
    "url": "https://example.com/document",
    "hasPart": [
        {"@type": "DocumentChunk", "text": "# Introduction\n\nCeci est le premier paragraphe."},
        {"@type": "DocumentChunk", "text": "# Chapitre 1\n\nContenu du chapitre 1."},
        {"@type": "DocumentChunk", "text": "# Conclusion\n\nRésumé final."}
    ]
}

# Sérialisation du JSON
json_doc = json.dumps(document, indent=2)
print(json_doc)

# Lecture et traitement
parsed_doc = json.loads(json_doc)
print(f"Titre: {parsed_doc['title']}")
print(f"URL: {parsed_doc['url']}")
for chunk in parsed_doc['hasPart']:
    print(f"Fragment: {chunk['text'][:50]}...")  # Affiche les 50 premiers caractères

Bonnes pratiques

  1. Maintenez une granularité cohérente dans la fragmentation des documents.
  2. Utilisez un formatage cohérent (comme Markdown) dans les fragments de texte.
  3. Assurez-vous que l'URL fournie est valide et accessible.
  4. Validez toujours la structure JSON avant le traitement.