Dies ist die Open-Source-Implementierung von Pygransplantat, die ursprünglich in diesem Artikel vorgestellt wird.
Pygraft ist eine Open-Source-Python-Bibliothek zur Generierung von synthetischen, aber realistischen Schemas und (KGs) basierend auf benutzerdefinierten Parametern. Die generierten Ressourcen sind domänen-agnostisch, dh sie sind nicht an ein bestimmtes Anwendungsfeld gebunden.
In der Lage zu sein, Schemas und KGs zu synthetisieren, ist ein wichtiger Meilenstein für die Durchführung von Forschungen in Domänen, in denen Daten sensibel oder nicht ohne weiteres verfügbar sind. Pygrantat ermöglicht es Forschern und Praktikern, im laufenden Fliegen Schemas und KGs zu generieren, was minimale Kenntnisse über die gewünschten Spezifikationen bereitstellte.
Pygraft hat die folgenden Funktionen:
Die neueste stabile Version von Pygraft kann von PYPI heruntergeladen und installiert werden mit:
pip install pygraftDie neueste Version von Pygraft kann direkt von Github Source mit:
pip install git+https://github.com/nicolas-hbt/pygraft.gitIn den nächsten Versionen von Pygranta werden zusätzliche Funktionen bereitgestellt. Um nur einige zu nennen:
Hohe Priorität
Medium Priorität
rdfs:subPropertyOf , owl:FunctionalProperty und owl:InverseFunctionalProperty als Wert ungleich Null für die drei, gleichzeitig zu inkonsistenten KGs führen.Niedrige Priorität
Die Beiträge von Pygraft sind wie folgt:
Nach unserem Kenntnisstand ist Pygrantat der erste Generator, der sowohl Schemata als auch KGs in einer einzelnen Pipeline synthetisieren kann.
Die generierten Schemata und KGs werden mit einem erweiterten Satz von RDFs und EWL-Konstrukten beschrieben, die sowohl feinkörnige Ressourcenbeschreibungen als auch die strikte Einhaltung der gemeinsamen semantischen Webstandards ermöglichen.
Ein breiter Parameterbereich kann vom Benutzer angegeben werden. Diese ermöglichen eine unendliche Anzahl von Grafiken mit unterschiedlichen Eigenschaften. Weitere Details zu Parametern finden Sie im Abschnitt Parameter der offiziellen Dokumentation.
Aus Sicht auf hoher Ebene ist die gesamte Pipeline für die Pygrantat-Erzeugung in Abbildung 1 dargestellt. Insbesondere werden Klasse- und Beziehungsgeneratoren mit benutzerdefinierten Parametern initialisiert und zum Erstellen des Schemas inkrementell verwendet. Die logische Konsistenz des Schemas wird anschließend unter Verwendung des Einsiedlers von Owlready2 überprüft. Wenn Sie auch daran interessiert sind, ein KG basierend auf diesem Schema zu generieren, wird der KG-Generator mit KG-bezogenen Parametern initialisiert und mit dem zuvor erzeugten Schema fusioniert, um die KG nacheinander zu erstellen. Letztendlich wird die logische Konsistenz des resultierenden KG (wieder) mit Einsiedler bewertet.

Abbildung 1: Pygraft -Übersicht
Nach der Installation kann Pygrantat mit:
import pygraftWichtig ist, dass Sie auf alle Funktionen zugreifen können mit:
pygraft . __all__ Nehmen wir an, wir sind nur daran interessiert, ein Schema zu generieren. Wir müssen zunächst die Vorlagenkonfigurationsdatei abrufen (z. B. eine .yaml -Konfigurationsdatei), die so einfach ist wie das Aufrufen create_yaml_template() :
pygraft . create_yaml_template () Jetzt wurde die Vorlage im aktuellen Arbeitsverzeichnis generiert und wird standardmäßig als template.yml genannt.
Diese Datei enthält alle einstellbaren Parameter. Weitere Informationen zu ihren Bedeutungen finden Sie im Abschnitt Parameter.
Aus dem Einfachheit halber planen wir nicht, diese Vorlage zu ändern und an die Standardparameterwerte zu bleiben.
Das Generieren einer Ontologie wird über die Funktion generate_schema(path) ermöglicht, für die nur der relative Pfad zur Konfigurationsdatei erforderlich ist.
Wichtig
Für die folgenden Schritte, dh generiert ein Schema und ein KG, müssen Sie Java installieren und die $ java_home -Umgebungsvariable ordnungsgemäß zugewiesen werden. Dies liegt daran, dass der Einsiedler -Gründer derzeit mit Java ausgeführt wird.
In unserem Fall heißt die Konfigurationsdatei template.yml und befindet sich im aktuellen Arbeitsverzeichnis, wodurch:
pygraft . generate_schema ( "template.yml" ) Das generierte Schema kann in output/template/schema.rdf abgerufen werden. Zusätzliche Dateien werden während des Vorgangs erstellt: output/template/class_info.json und output/template/relation_info.json . Diese Dateien geben wichtige Informationen über die Klassen und Beziehungen des generierten Schemas.
Lassen Sie uns nun untersuchen, wie Sie mit Pygrantat einen kg generieren. In diesem Abschnitt gehen wir davon aus, dass wir bereits ein Schema haben, das als Blaupause für die Generierung unseres KG dienen wird. Wir können dieselbe Konfigurationsdatei wie zuvor verwenden - da sie auch Parameter enthält, die sich auf die KG -Generation beziehen (obwohl wir vorher nicht verwendet wurden, da wir nur nach einem Schema gebeten haben) -, um ein KG zu generieren:
pygraft . generate_kg ( "template.yml" ) Der generierte KG kann in output/template/full_graph.rdf abgerufen werden. Es kombiniert Informationen, die aus output/template/schema.rdf geerbt wurden. Rdf (dh ontologische Informationen) mit Informationen zu Einzelpersonen.
In den meisten Fällen möchte man in einem einzigen Prozess sowohl ein Schema als auch ein kg generieren. Pygrantat ermöglicht dies mit der Funktion generate(path) , die genauso wie die angegebenen zwei Funktionen generate_schema(path) und generate_kg(path) arbeitet:
pygraft . generate ( "template.yml" )Angenommen, Sie haben das Pygrantat -Repository auf Ihren Computer geklont:
pip install pygraft # Displaying help
python -m pygraft.main --help # Generating a schema from a local template file
python -m pygraft.main -g generate_schema -conf template.yml
# ... then browse the resulting schema in the ./output/template folder. Möchten Sie zu Pygrantat beitragen? Bitte erwägen Sie, sich zu wenden: [email protected]
Wenn Sie Pygraft mögen, sollten Sie Pygranta herunterladen und unser Github -Repository kennenlernen, um es bekannt zu machen und seine Entwicklung zu fördern!
Wenn Sie Pygrantat in einer Veröffentlichung verwenden oder erwähnen, zitieren Sie unsere Arbeit als:
@misc{hubert2023pygraft,
title={PyGraft: Configurable Generation of Schemas and Knowledge Graphs at Your Fingertips},
author={Nicolas Hubert and Pierre Monnin and Mathieu d'Aquin and Armelle Brun and Davy Monticolo},
year={2023},
eprint={2309.03685},
archivePrefix={arXiv},
primaryClass={cs.AI}
}