Allgemeine Einführung
OpenSPG ist eine Open-Source-Wissensgraphen-Engine, die von der Ant Group in Zusammenarbeit mit OpenKG entwickelt wurde und auf dem SPG-Framework (Semantic Enhanced Programmable Graph) basiert. OpenSPG kombiniert die Einfachheit der LPG-Struktur mit der Komplexität der RDF-Semantik und eignet sich für eine Vielzahl von Geschäftsszenarien, z. B. im Finanzbereich.
Funktionsliste
- Wissensmodellierung: Unterstützung für die Wissensmodellierung von Domänenmodellbeschränkungen
- Semantische Repräsentation: Bereitstellung einer expliziten semantischen Repräsentation und logischer Regeldefinitionen
- Operative Rahmen: Unterstützung für Konstruktion, Argumentation und andere operative Rahmen
- Plug-in-Anpassung: Unterstützt die Plug-in-Anpassung des zugrunde liegenden Motors und der algorithmischen Dienste
- Datenvisualisierung: Bereitstellung einer intuitiven Schnittstelle für die Erforschung und Analyse von Daten
Hilfe verwenden
Einbauverfahren
Server-Installation
Die Serverseite wird auf Basis von Docker Compose bereitgestellt und enthält 4 Hauptimages:
- openspg-serverBereitstellung von Schemadiensten
- openspg-mysqlSpeicherung von Schemadaten
- Tugraph: Speicherung von Kartierungsdaten
- elasticsearch: Indizierte Kartierungsdaten
- Herunterladen von
docker-compose.yml
und führen Sie die folgenden Befehle im aktuellen Verzeichnis aus, und warten Sie auf den Abschluss der Befehlsausführung, um den Serverstart abzuschließen:docker-compose -f docker-compose.yml up -d
- (coll.) durchfallen (ein Schüler)
openspg-server
Nach dem lokalen Start können Sie den Port http://127.0.0.1:8887 öffnen, um die Front-End-Visualisierungsseite zu sehen. Wennopenspg-server
Bei einem Remote-Einsatz muss die entsprechende IP-Adresse entsprechend geändert werden.
Client-Installation
Der Client stellt auch ein Docker-Image zur Verfügung. Wenn Sie den folgenden Befehl direkt ausführen, wird dieses Image gezogen:
docker pull --platform linux/x86_64 spg-registry.cn-hangzhou.cr.aliyuncs.com/spg/openspg-python:latest
Nachdem Sie das Bild heruntergeladen haben, können Sie den OpenSPG-Quellcode klonen:
git clone --depth=1 https://github.com/OpenSPG/openspg.git
Sobald der Klon des Quellcodes fertig ist, können Sie die mit dem Quellcode gelieferten Fälle ausprobieren:
# 启动容器,将其中的${project_dir}替换成源码目录
docker run --rm --net=host -v ${project_dir}:/code \
-it spg-registry.cn-hangzhou.cr.aliyuncs.com/spg/openspg-python:latest \
"/bin/bash"
# 容器启动后,进入/code目录,即openspg项目源码目录
cd /code
# 后续可以安装案例教程,比如进入riskmining目录
cd python/knext/knext/examples/riskmining
# 参考案例教程,执行相应的knext命令,比如
knext project create --prj_path .
knext schema commit
knext builder execute ...
knext reasoner execute ...
Alternativ können Sie, wenn Sie ein Mapping-Projekt lokal auf Basis einer IDE schreiben wollen, knext mit folgendem Befehl installieren:
pip install openspg-knext
Detaillierte Vorgehensweise
Server-seitige Inbetriebnahme
- Klonen Sie den OpenSPG-Quellcode und öffnen Sie ihn in der IDE:
git clone git@github.com:OpenSPG/openspg.git
Bei den folgenden Befehlen wird davon ausgegangen, dass sie alle im Stammverzeichnis der openspg-Codebasis ausgeführt werden.
- Führen Sie den Befehl mvn compile aus:
mvn clean install -Dmaven.test.skip=true -Dspotless.check.skip -Dspotless.apply.skip
- Starten Sie Container wie MySQL, ElasticSearch, TuGraph, etc. lokal:
sh dev/test/docker-compose.sh
- Der Eintrag für den Startserver befindet sich:
com.antgroup.openspg.server.arks.sofaboot.Application
Kunde Startup
- Bereiten Sie eine virtuelle Python-Umgebung, Version 3.8+, vor.
- Kopieren Sie die mit mvn kompilierten Pakete reasoner und builder in das Verzeichnis knext:
cp dev/release/python/lib/builder* python/knext/knext/builder/lib cp dev/release/python/lib/reasoner* python/knext/knext/reasoner/lib
- Installieren Sie nn4k lokal:
cd python/nn4k python setup.py develop
- Lokale Installation von knext:
cd python/knext python setup.py develop
- Wenn Sie das getan haben, können Sie den Befehl knext in dieser virtuellen Python-Umgebung ausführen.
Modell der Kernkompetenzen
Das Modell der Kernkompetenzen von OpenSPG umfasst:
- SPG-Schema semantische ModellierungVerantwortlich für den Entwurf von Schema-Frameworks zur semantischen Anreicherung von Attributgraphen, z.B. Subjektmodelle, Evolutionsmodelle, Prädikatsmodelle, etc.
- SPG-Builder WissensaufbauUnterstützt sowohl den Import von strukturiertem als auch unstrukturiertem Wissen, ist kompatibel mit Big-Data-Architekturen und bietet einen Rahmen für Wissenskonstruktionsoperatoren, um die Umwandlung von Daten in Wissen zu ermöglichen. Abstracts the knowledge processing SDK framework, provides the ability of entity chaining finger, concept labelling and entity normalisation operators, combines natural language processing (NLP) and deep learning algorithms, improves the uniqueness level of different instances in a single type, and supports the continuous and iterative evolution of the domain mapping.
- SPG-Reasoner Logic Rule ReasoningAbstrakte KGDSL (Knowledge Graph Domain Specific Language) zur Bereitstellung programmierbarer symbolischer Darstellungen von Logikregeln. Unterstützt nachgelagerte Regelinferenz, neuronales/symbolisches Fusionslernen, KG2Prompt-verknüpfte LLM-Wissensextraktion/Wissensinferenz usw. mit maschinenverständlichen symbolischen Repräsentationen. Definition von Abhängigkeiten und Wissenstransfer durch Prädikatssemantik und logische Regeln sowie Unterstützung der Modellierung und Analyse komplexer Geschäftsszenarien.
- Programmierbares Framework KNextKNext bietet als programmierbares Graphen-Framework eine Reihe skalierbarer, prozessorientierter und benutzerfreundlicher komponentisierter Fähigkeiten; es abstrahiert die Kernfähigkeiten von Graphen und überführt sie in komponentisierte, gerahmte und von der Engine entwickelte Fähigkeiten; es erreicht die Isolierung der Engine von der Geschäftslogik und dem Domänenmodell, was es dem Unternehmen erleichtert, die Graphenlösung schnell zu definieren; und es baut eine wissensgesteuerte und kontrollierbare KI-Technologie auf, die auf dem OpenSPG-Engine Stack aufbaut und Deep-Learning-Funktionen wie LLM und GraphLearning miteinander verbindet.
- Cloud-Anpassungsschicht CloudextUnternehmenssysteme können die offene Engine über ein SDK andocken, um ihr eigenes charakteristisches Business-Frontend zu erstellen; erweiterbare/anpassbare kundenspezifische Graphspeicher-/Graphenberechnungs-Engine; erweiterbares/anpassbares Framework für maschinelles Lernen, das für ihre eigenen Geschäftsmerkmale geeignet ist.