Knowledge Graph Generator
Een VS Code extensie voor het genereren en beheren van kennisgrafen uit verschillende bestandsformaten.
Overzicht
De Knowledge Graph Generator extensie stelt gebruikers in staat om kennisgrafen te creëren, visualiseren en beheren vanuit verschillende bestandsformaten zoals YAML, Markdown en plaintext. De extensie biedt een intuïtieve interface voor het werken met concepten en relaties, en ondersteunt caching voor betere prestaties.
Functies
- Multi-format ondersteuning: Laad en sla kennisgrafen op in YAML, Markdown en plaintext formaten.
- Locatiebepaling: Detecteert de exacte locatie (bestand en range) van concepten en relaties in de bronbestanden.
- Contextuele Informatie & Navigatie: Toont relevante informatie bij hoveren over concepten/relaties en maakt directe navigatie mogelijk via klikbare links (gebruikt locatie-informatie).
- Bestandsgebaseerde Caching: Verbeterde laadtijden voor ongewijzigde bestanden door caching van parseerresultaten (voorheen "Incrementele parsing").
- Automatische formaat detectie: Detecteert automatisch het bestandsformaat op basis van extensie en inhoud.
- WYSIWYG Editor: Bewerk kennisgraaf bestanden (YAML, Markdown, Plaintext) in een visuele editor.
- Conversie tussen formaten: Converteer kennisgrafen tussen verschillende formaten (basisfunctionaliteit).
- Testbestanden genereren: Genereer testbestanden voor verschillende formaten.
Documentatie
Architectuur
De extensie is gebouwd met een modulaire architectuur gebaseerd op Dependency Injection en gescheiden services. De belangrijkste componenten zijn:
- Services:
KnowledgeGraphService
(data beheer), LinkService
(link navigatie), ProvidersService
(VS Code provider registratie), CommandsService
, EventHandlersService
.
- Parsers:
ParserFactory
en specifieke implementaties (YamlParser
, MarkdownParser
, PlaintextParser
) die concepten/relaties inclusief locatie (uri
, range
) extraheren.
- Caching:
IncrementalParser
(naam is misleidend, implementeert file-level caching).
- Providers:
LinkProvider
en KnowledgeGraphHoverProvider
die gebruik maken van de KnowledgeGraphService
om contextuele informatie en links te tonen.
- UI:
WysiwygEditor
(webview) en CommandsProvider
(tree view).
Voor een diepgaande technische uitleg van de architectuur, zie docs/architecture.md.
Voorbeelden
In de examples
map vind je voorbeelden van kennisgrafen in verschillende formaten:
Er is ook een voorbeeld script dat laat zien hoe je de parsers kunt gebruiken om kennisgrafen te laden, op te slaan en te converteren tussen formaten.
Ontwikkeling
Vereisten
- Node.js 14 of hoger
- VS Code 1.60 of hoger
Aanbevolen VS Code Extensies
Installeer de volgende extensies voor een betere ontwikkelervaring:
amodio.tsl-problem-matcher
ms-vscode.extension-test-runner
dbaeumer.vscode-eslint
Installatie & Starten
- Clone de repository.
- Installeer de dependencies:
npm install
.
- Open het project in VS Code.
- Start de "watch" taak om automatisch te compileren bij wijzigingen: voer
npm run watch
uit in de terminal, of gebruik het "Tasks: Run Task" commando in VS Code en selecteer "npm: watch".
- Druk op
F5
om een nieuw VS Code venster (Extension Development Host) te openen met de extensie geladen.
- Voer commando's uit via het commandopalet (
Ctrl+Shift+P
of Cmd+Shift+P
) en typ "Knowledge Graph".
- Gebruik breakpoints en de debug console voor debugging.
Testen
- Zorg dat de
watch
taak draait (zie Installatie & Starten).
- Voer alle tests uit vanuit de terminal met:
npm test
(dit compileert eerst indien nodig).
- Voor interactief testen:
- Installeer de Extension Test Runner extensie (zie Aanbevolen Extensies).
- Open de Testing view (Test-fles icoon) in de activity bar.
- Klik op de "Run Tests" knop of gebruik individuele testknoppen.
- Bekijk resultaten in de "Test Results" view.
- Testbestanden bevinden zich in
test/suite/
en volgen het patroon *.test.ts
.
Verder Gaan
Roadmap & Openstaande Punten
De extensie is actief in ontwikkeling. Zie de CHANGELOG.md voor recente wijzigingen en de docs/roadmap-details.md voor een gedetailleerd overzicht van (geplande) functionaliteiten.
Belangrijke openstaande punten/focusgebieden op dit moment zijn:
- Verder uitbreiden van de unit test dekking (met name voor services en providers).
- Verbeteren van de robuustheid van de WYSIWYG editor.
- Generieke Hover Weergave (Lange Termijn): Overwegen om de hover provider (
KnowledgeGraphHoverProvider
) aan te passen zodat deze alle beschikbare data voor een item (concept, relatie, etc.) toont, ongeacht de specifieke veldnamen. Dit verhoogt de flexibiliteit en toekomstbestendigheid, maar vereist aanpassingen in de parser en service om alle data door te geven.
Recente wijzigingen
Zie de CHANGELOG.md voor een gedetailleerd overzicht van wijzigingen per versie.
Licentie
Dit project is gelicenseerd onder de MIT licentie - zie het LICENSE bestand voor details.