Il s'agit de l'implémentation open source de pygraft, initialement présentée dans cet article.
PyGraft est une bibliothèque Python open source pour générer des schémas synthétiques mais réalistes et (KG) basés sur des paramètres spécifiés par l'utilisateur. Les ressources générées sont agnostiques du domaine, c'est-à-dire qu'elles ne sont pas liées à un champ d'application spécifique.
Être capable de synthétiser les schémas et les KG est une étape importante pour mener des recherches dans des domaines où les données sont sensibles ou non disponibles. Pygraft permet aux chercheurs et aux praticiens de générer des schémas et des KG à la volée, a fourni des connaissances minimales sur les spécifications souhaitées.
Pygraft a les caractéristiques suivantes:
La dernière version stable de PyGraft peut être téléchargée et installée à partir de PYPI avec:
pip install pygraftLa dernière version de PyGraft peut être installée directement à partir de GitHub Source avec:
pip install git+https://github.com/nicolas-hbt/pygraft.gitDes fonctionnalités supplémentaires seront fournies dans les prochaines versions de Pygraft. Pour n'en nommer que quelques-uns:
Priorité élevée
Priorité moyenne
rdfs:subPropertyOf , owl:FunctionalProperty et owl:InverseFunctionalProperty , car une valeur non nulle pour les trois en même temps peut conduire à des KG incohérents.Faible priorité
Les contributions du pygraft sont les suivantes:
À notre connaissance, Pygraft est le premier générateur capable de synthétiser à la fois des schémas et des KG dans un seul pipeline.
Les schémas et KG générés sont décrits avec un ensemble étendu de construction RDFS et OWL, permettant à la fois des descriptions de ressources à grain fin et une conformité stricte avec des normes Web sémantiques communes.
Une large gamme de paramètres peut être spécifiée par l'utilisateur. Ceux-ci permettent de créer un nombre infini de graphiques avec différentes caractéristiques. Plus de détails sur les paramètres peuvent être trouvés dans la section Paramètres de la documentation officielle.
Dans une perspective de haut niveau, l'ensemble du pipeline de génération de pygraft est représenté dans la figure 1. En particulier, les générateurs de classe et de relation sont initialisés avec des paramètres spécifiés par l'utilisateur et utilisés pour construire le schéma progressivement. La cohérence logique du schéma est ensuite vérifiée à l'aide du raisonnement ermite de OwlReady2. Si vous êtes également intéressé à générer un kg basé sur ce schéma, le générateur KG est initialisé avec des paramètres liés à Kg et fusionné avec le schéma généré précédemment pour construire séquentiellement le kg. En fin de compte, la cohérence logique du KG résultant est (encore) évaluée à l'aide de l'ermite.

Figure 1: Présentation de Pygraft
Une fois installé, le pygraft peut être chargé:
import pygraftSurtout, vous pouvez accéder à toutes les fonctions avec:
pygraft . __all__ Supposons que nous ne voulons que générer un schéma. Nous devons d'abord récupérer le fichier de configuration du modèle (par exemple un fichier de configuration .yaml ), qui est aussi simple que d'appeler create_yaml_template() :
pygraft . create_yaml_template () Maintenant, le modèle a été généré dans le répertoire de travail actuel et est nommé template.yml par défaut.
Ce fichier contient tous les paramètres accordables. Pour plus de détails sur leur signification, veuillez vérifier la section Paramètres.
Par souci de simplicité, nous ne prévoyons pas de modifier ce modèle et de respecter les valeurs de paramètre par défaut.
La génération d'une ontologie est rendue possible via la fonction generate_schema(path) , qui ne nécessite que le chemin relatif vers le fichier de configuration.
Important
Pour les étapes suivantes, c'est-à-dire générant un schéma et un kg, vous avez besoin d'installer Java et la variable d'environnement $ java_home est correctement attribuée. En effet, l'ermite est actuellement en cours d'exécution à l'aide de Java.
Dans notre cas, le fichier de configuration est nommé template.yml et est situé dans le répertoire de travail actuel, ainsi:
pygraft . generate_schema ( "template.yml" ) Le schéma généré peut être récupéré dans output/template/schema.rdf . Des fichiers supplémentaires sont créés au cours du processus: output/template/class_info.json et output/template/relation_info.json . Ces fichiers donnent respectivement des informations importantes sur les classes et les relations du schéma généré.
Explorons maintenant comment utiliser le pygraft pour générer un kg. Dans cette section, nous supposons que nous avons déjà un schéma, qui servira de plan pour générer notre kg. Nous pouvons utiliser le même fichier de configuration qu'auparavant - car il contenait également des paramètres liés à la génération de KG (bien que non utilisés auparavant, car nous n'avons demandé qu'un schéma) - pour générer un kg:
pygraft . generate_kg ( "template.yml" ) Le kg généré peut être récupéré dans output/template/full_graph.rdf . Il combine des informations héritées de output/template/schema.rdf (c.-à-d. Informations ontologiques) avec des informations liées aux individus.
Dans la plupart des cas, on veut générer à la fois un schéma et un kg en un seul processus. PyGraft permet cela avec la fonction generate(path) , qui fonctionne tout comme les deux fonctions AFONEDESCRIED generate_schema(path) et generate_kg(path) :
pygraft . generate ( "template.yml" )En supposant que vous avez cloné le référentiel Pygraft sur votre ordinateur:
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. Vous souhaitez contribuer à Pygraft? Veuillez envisager de tendre la main: [email protected]
Si vous aimez Pygraft, pensez à télécharger Pygraft et à mettre en vedette notre référentiel GitHub pour le faire connaître et promouvoir son développement!
Si vous utilisez ou mentionnez Pygraft dans une publication, citez notre travail comme:
@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}
}