Powered by AAroN — github.com/schmitze87/AAroN by @schmitze87 (Markus Schmitz)
Das gesamte Tabellenwissen in diesem Tool stammt aus AAroNs Java-Processors. Ohne AAroN gäbe es dieses Projekt nicht. 🙏
Sparx Enterprise Architect speichert Modelle in proprietären .qea-Dateien (SQLite-Datenbanken mit bis zu 100 Tabellen). Die Tabellenstruktur ist komplex, schlecht dokumentiert und enthält:
- PDATA-Felder, die je nach
Object_Typeunterschiedliche GUID-Verweise enthalten - Implizite Beziehungen, die NICHT in
t_connectorstehen, sondern aus Spalten wieParentID,Package_IDundPDATA1-3abgeleitet werden t_xref-Einträge, die Stereotyp-Auflösungen und Conveyed Items enthalten
Ein LLM, das einfach SQLite-Queries brute-forced, findet diese Zusammenhänge nicht.
Dieses Tool extrahiert das Wissen aus AAroN — einem Neo4j-Plugin, das für NAF-Architekturen entwickelt wurde und die proprietäre QEA-Struktur vollständig versteht. AAroNs 15+ Java-Processors wurden analysiert und in eine Python-Toolbox für Open WebUI übersetzt.
| Lesson Learned | Auswirkung |
|---|---|
| PDATA1-5 sind kontextabhängige GUID-Verweise | INSTANCE_OF, BEHAVIOUR, REUSAGE Beziehungen werden erkannt |
9 implizite Beziehungstypen existieren außerhalb von t_connector |
CONTAINS, EMBEDS, HAS_PORT, HAS_PART etc. |
t_xref enthält FQ-Stereotypes & Conveyed Items |
Informationsflüsse werden vollständig aufgelöst |
ea_guid ist der universelle Join-Schlüssel |
GUID-basierte Querverweise statt nur ID-basiert |
| Verarbeitungsreihenfolge ist kritisch | Packages → Diagrams → Objects → Properties → Connectors |
| Funktion | Beschreibung |
|---|---|
analyze_qea_statistics |
Modell-Statistiken (Elementtypen, Stereotypen) |
find_elements_in_qea |
Elemente nach Name/Typ/Stereotyp/Paket suchen |
get_element_detail_from_qea |
Komplettanalyse inkl. impliziter Beziehungen |
get_relationships_from_qea |
Beziehungen mit Rollen & Kardinalitäten |
search_qea_elements |
Volltextsuche in Namen & Notizen |
get_package_tree_from_qea |
Paket-Hierarchie |
find_elements_by_tagged_value |
Tagged-Value-Suche (NAF-Metadaten!) |
get_qea_diagrams |
Alle Diagramme mit Element-Zählung |
get_naf_view_elements_from_qea |
NAF Views |
list_process_packages_and_activities |
Pakete & Activities für Prozessanalyse finden |
list_extracted_activity_graphs |
Kompakte Prozessgraph-Übersicht (alle Activities) |
get_activity_diagram_process_graph |
Detaillierter Prozessgraph einer Activity |
execute_qea_sql |
Read-only SQL für fortgeschrittene Analysen |
get_qea_table_schema |
Tabellenschema-Inspektion |
export_qea_element_report |
Komplettbericht für ein Element |
Neu ab v2.0: Extrahiert BPMN-artige Prozessgraphen direkt aus Activity-Diagrammen.
| Schritt | Funktion |
|---|---|
| 1. Discovery | list_process_packages_and_activities — findet alle Pakete & Activities |
| 2. Übersicht | list_extracted_activity_graphs — kompakte Liste aller Prozessgraphen |
| 3. Detail | get_activity_diagram_process_graph(activity_id=...) — voller Graph mit Nodes & Edges |
Arbeitsweise: Liest t_diagram + t_diagramobjects + t_diagramlinks, filtert gezielt ControlFlow/StateFlow/Transition-Kanten, erkennt Lanes, löst Gateways auf.
Abhängigkeiten: pandas, networkx (werden beim Laden des Tools in Open WebUI automatisch installiert).
- NAF-2: Operational Connectivity (OpNode, Needline, InformationExchange)
- NAF-3: Capabilities (Capability, CapabilityConfiguration)
- NAF-4: Organizational (OrganizationalResource, OrganizationRole)
- NAF-5: Functional (Function, Activity, OperationalActivity)
- NAF-6: System (SystemResource, ResourceInteraction)
- NAF-7: Technical Standards (Protocol, Standard, TechnicalStandard)
# Tool kopieren
cp eam_qea_tool.py /pfad/zu/open-webui/data/tools/- Admin Panel → Tools öffnen
eam_qea_toolerscheint automatisch- Aktivieren und dem EAM Analyst Model zuweisen
Den Inhalt von system_prompt.md in das System-Feld des EAM Analysten einfügen.
# In Open WebUI docker-compose.yml:
volumes:
- /pfad/zu/qea-modellen:/data/qea-models:ro"Analysiere /data/qea-models/mein_modell.qea"
"Zeige alle NAF-3 Capabilities"
"Detailanalyse für Element 12345"
"Zeige den Prozessgraph für Activity 12345"
"Liste alle Prozessgraphen im Modell"
"Welche L4-Activities gibt es?"
- Read-only: Keine Schreibzugriffe auf QEA-Dateien
- Lokal: Alle Analysen laufen im Open WebUI Python-Prozess
- Keine Exfiltration: Keine externen API-Calls
- On-Premise: Funktioniert vollständig ohne Internetzugang
eam-qea-tool/
├── eam_qea_tool.py # Das Tool (~95 KB)
├── system_prompt.md # System Prompt für Open WebUI
├── openwebui_integration.md # Ausführliche Einrichtungsanleitung
├── requirements.txt # pandas, networkx
├── LICENSE # Apache 2.0
└── README.md # Diese Datei
Dieses Projekt wäre ohne AAroN nicht möglich gewesen.
| Wer | Was |
|---|---|
| @schmitze87 (Markus Schmitz) | AAroN — Die gesamte Wissensbasis. 15+ Java-Processors, die die proprietäre QEA-Tabellenstruktur von Sparx EA dokumentieren. |
| Michael Estel (mit KI-Agent) | Analyse der AAroN-Processors, Extraktion des Tabellenwissens, Python-Portierung & Open WebUI Integration |
Original-Repo: github.com/schmitze87/AAroN — ⭐ gebt Markus einen Star, er hat's verdient.
Apache License 2.0
Für die ausführliche Einrichtungsanleitung siehe openwebui_integration.md