GS-reactor ― Annotations personnalisées

Il est possible de définir des annotations personnalisées en plus des annotations définies dans le réacteur. Afin de pouvoir être correctement interprétées par le réacteur, les annotations personnalisées doivent remplir un certain nombre de conditions :

  • Avoir @Retention(RetentionPolicy.RUNTIME) et @Target(ElementType.TYPE) ;
  • Être répétables, avec @Repeatable(...) ;
  • Définir les attributs path() et pos(), avec des tableaux vides comme valeur par défaut ;
  • Définir le traitement à effectuer pour l’annotation à l’aide de @Process.

Voici un exemple de définition d’annotation :

Continue reading GS-reactor ― Annotations personnalisées

Système d’indexation

Afin d’améliorer les performances du moteur d’informations de Generic System, un système de cache automatique qui évite la répétition de requêtes coûteuses au back-office a été mis en place.

De nombreuses méthodes qui renvoient un Snapshot font par exemple appel à la méthode  getDependencies(), suivie d’un ou plusieurs filtres (seulement les instances, une valeur ou des composants donnés, etc.). Pour éviter d’avoir à re-filtrer les Snapshot à plusieurs reprises, nous avons créé des arbres permettant de stocker les résultats des filtrages dans les classes AbstractTsDependencies et PseudoConcurrentCollection. L’arbre est constitué de nœuds contenant :

  • l’index lui-même, sous forme d’implémentation de l’interface Index fournissant les méthodes add(), remove() et iterator() ;
  • des enfants sous forme de HashMap ayant pour clés des IndexFilter et pour valeur le nœud contenant l’index filtré avec sa clef. Les entrées sont créées automatiquement lors du get() si elles n’existent pas. La méthode filter(List filters) va chercher le nœud de l’arbre correspondant aux filtres indiqués.

Continue reading Système d’indexation

GS-IR — Introduction

Generic System dans son ensemble

Le système d’informations de Generic System peut être divisé en trois parties distinctes :

  • gs-reactor : c’est la partie « front office » qui a été développée afin de faciliter la création d’applications web dynamiques codées uniquement en Java ;
  • gs-kernel : c’est la partie « back office » qui permet la persistance des données dans le moteur d’informations;
  • gs-ir : c’est la partie « information retriever » ou « intelligence artificielle » qui est en phase active de développement.

Qu’est-ce que gs-ir ?

Continue reading GS-IR — Introduction

GS-IR — Installation et configuration

GS-IR (Information Retriever) se présente sous la forme de 3 applications, qui peuvent être déployées sur plusieurs machines :

  • une application vert.x répartie, qui peut être déployée sur n’importe quel ordinateur relié au réseau ;
  • un répartiteur de tâches, qui enregistre les tâches à exécuter et les répartit sur les ordinateurs disponibles ;
  • une interface de gestion web, qui permet de consulter l’avancement du traitement des tâches et s’occuper de persister les données dans le moteur d’informations de Generic System.

Pour en savoir plus sur gs-ir, vous pouvez relire l’article de présentation : GS-IR – Introduction

Pré-requis

Avant toute chose, vous devez avoir cloné le dépôt GitHub genericsystem2015. Si ce n’est pas le cas, faites-le maintenant :

Le projet gs-ir dépend du projet gs-cv (Generic System Computer Vision), qui utilise lui-même OpenCV et tesseract-ocr. Vous aurez donc besoin de télécharger et de compiler OpenCV et tesseract-ocr.

Continue reading GS-IR — Installation et configuration