Tags:
create new tag
, view all tags

Stage de Pierre barjon - ENSIIE Strasbourg - [22/05/17 au 28/07/17]

Important : cette page est réservée au suivi du stage, merci de ne pas la modifier

Informations générales pour les stagiaires

Pour toute information concernant ce stage : contacter André, Thomas B., Sébastien

Sujet

Stage (Mai - juillet 2017)

Mai

  • 22, arrivé, Visites des batiments, conférence sur les SkyMapper par Christian Wolf. Installation java et eclipse sur le pc.
  • 23
  • 24. Initiation à la librairie Apache OpenNPL (librairie pour la reconnaissance du langage naturel en Java). Présentation des différents services du CDS (Simbad, Vizier, Aladin) et des objectifs du stage par André Schaaff.
  • ...
  • 31, Soutenance de stage de Cedric Vogel. Test de la librairie NLP4J : quelques difficultées rencontrées au niveau de son utilisation car la librairie est très peu documentée.

Juin

  • 6, Point avec André Schaaff pour voir le travail effectué depuis le début du stage et établir les objectifs pour les jours à venir :
    • Comment améliorer les performances des taggers (Stanford/OpenNLP)
    • Utiliser les retours des utilisateurs pour améliorer les performances
    • Déterminer les liens entre plusieurs requêtes successives.
  • 12, Réunion avec André Schaaff, Thomas Boch, Sébastien Derrière et Aymon afin de mettre au clair ce qui a été réalisé durant le stage de Aymon, ce qu'il reste à faire et à améliorer.

  • ...
  • 21
    • Repas du solstice
    • Lecture du rapport d'Aymon
  • 22,

    • Récupération du projet d'Aymon et installation de NetBeans. L'application d'Aymon est maintenant accessible de puis l'adresse http://130.79.128.186:8080/MyAjaxApp

    • Analyse du code d'Aymon pour comprendre comment le programme marche et où je vais devoir apporter les modifications.
    • Demain j'essaye d'améliorer le systeme de recherche par vocabulaire (surtout pour les auteurs simbad et viziers)
  • 23

    • J'ai réduit la taille des fichiers contenants les auteurs : Pour simbad je passe de 1,7 million d'auteurs à 170 000 et pour Vizier je passe de 1,7 million à 24 000 auteurs. Les auteurs sont triés par ordre alphabétique, ce qui permet de rechercher plus rapidement dans les fichiers (recherche dichotomique). Reste à voir comment utiliser ça dans le programme.
    • J'ai passé pas mal de temps à essayer de comprendre le code d'Aymon pour voir comment je peux le modifier pour l'améliorer. Je pense que je vais devoir prendre le temps de découper plus le code dans la classe Main car pour l'instant, sa méthode main fait plus de 200 lignes et il me semble difficile de modifier cette méthode sans risquer de faire planter le programme.
  • 27
    • J'ai commencé à réécrire le programme de façon plus clair et ordonnée, de façon à pour envisager des améliorations par la suite. J'ai plutot bien avancé et je devrais normalement finir demain
  • 28

    • J'ai fini de réécrire le programme pour les requetes Simbad. Le programme peut maintenant gérer des requetes contenant plusieurs phrases. Cette version n'est pas encore en ligne car je dois corriger quelques bugs.
  • 29

    • J'ai corrigé les bugs mais maintenant la page ne se met pas à jour lorsque j'appuie sur le bouton valider. Les requêtes sont pourtant bien effectuées et les informations récupérées. Il faut que je corrige ce problème demain. Pour le moment c'est toujours la version d'Aymon qui est en ligne.

  • 30

    • Réunion avec André, Sébastien et Thomas pour faire le point sur le projet et le travail à réaliser.

    • Concernant le site web il faut :
      • Corriger les bugs (normalement c'est maintenant ok)
      • Mettre une place une option pour afficher ou non selon le choix de l'utilisateur plus ou moins de détails
      • Afficher les informations au fur et à mesure sur la page
      • Donner le possibilité aux utilisateurs d'utiliser un certains nombres de "phrases exemples"
    • Concernant l'application (reconnaissance langage naturel) il faut encore que je reprenne et réécrive la partie d'Aymon pour les requetes VizieR.

Juillet

  • 4
    • Les requetes Vizier sont désormais fonctionnelles (on peut chercher dans les deux bases de données séparement ou en meme temps).
    • Pour le moment, le programme doit attendre que toutes les requetes aient étées effectuées avant de les afficher. Il faut que j'essaye d'envoyer les informations petit à petit (au moins séparer les informations provenant des requetes Simbad de celles provenant des requetes Vizier, car ces dernieres peuvent etre assez longues).
  • 5

    • J'ai ajouté une fonctionnalité permettant de choisir des phrases examples. Pour le moment il y en a peu et elles ne marchent pas toutes.

    • J'ai commencé a modifier le code pour la recherche d'identifiants. Djin ne permet pas de recuperer tous les identifiants et je suis en train de modifier le code pour utiliser Sesame a la place. Le probleme est que contrairement a Djin, Sesame ne reconnait pas un identifiant si il est donné dans une phrase ("What is the effective temperature of Sirius" ne donnera rien). Je dois donc me debrouiller pour isoler les identifiants.
  • 7

    • J'ai amélioré le programme pour la recherche des ucd et des identifiants.
      • Concernant les ucd, je filtre les mots suivant leur tag et je les regroupe en fonction de leur nature grammaticale et leur distance. Par exemple dans la phrase "What is the effective temperature of Sirius?", il ne reste que "effective temperature" (adjectif + nom cote à cote) alors que la phrase "What is the effective temperature and parallax of Sirius?" renvoie un liste composée de "effective temperature" et "parallax". Cela permet de passer plusieurs ucd dans une phrase.
      • Concernant les identifiants, je n'utilisais que Djin pour les détecter puis dans un second temps Sesame pour récupérer des infos sur les identifiants trouvés. Etant donné que Djin ne trouve pas tous les identifiants (par exemple, dans "What is the period of Algol?", Algol n'est pas détecté), je recherche avec Sésame sur tous les noms propres qui n'ont pas étés déterminés comme identifiants par Djin.
    • Il faut que j'améliore le programme permettant de créer les requêtes ADQL car il y a plusieurs jointures inutiles dans beaucoup de cas qui sont effectuées.
  • 11

    • J'ai commencé à mettre en place un systeme permettant de rajouter des contraintes sur les ucds (Pour des phrases du type : "How many QSOs are there at redshift larger than 6? How many QSOs are there at Z>6?").
    • J'essaie de faire en sorte que l'on puisse passer plusieurs contraintes en meme temps (par exemple "Z > 6 and Z < 10" ou "6 < Z < 7").
    • Il y a encore des bugs pour le moment, je vais essayer de finir ça demain.
    • J'avais des problèmes de mémoires avec le serveur Glassfish, je suis passé sur un serveur Tomcat et je ne les ai plus.
  • 12

    • J'ai fini pour les contraintes sur les ucds, j'ai commencé à écrire un programme pour détecter les types d'objets (otype).
  • 18

    • J'ai écris un programme permettant de détecter les types d'objets dans une phrase. Par contre il ne permet pas de détecter les types d'objets dans 100% des cas et doit encore être amélioré.
    • Il faut maitenant que je m'occupe de créer un programme permettant de construire des requetes ADQL pour des types d'objets et non seulement un objet précis
  • 20

    • Le programme permet maintenant de gérer des types d'objets dans des cas simples ("List the periods of Algol-type stars." par exemple). Il reste encore quelques bugs à corrigé dont j'ai du mal à identifier la source pour le moment, il faut que je m'en occupe demain.
    • J'ai amélioré le systeme de création des requêtes ADQL.
  • 24

    • Correction de quelques bugs (la détection d'identifiants marchait mal pour des requetes de plusieurs phrases, et la création des requetes ADQL pouvait ne pas marcher dans certains cas).
    • Je suis en train d'améliorer la recherche par type d'objet. Je pense essayer de mettre en place un systeme de comparaison par synonymes car pour le moment le programme marche seulement dans des cas tres limités. J'ai vu plusieurs API permettant de faire ça, je vais tester l'API "datamuse" demain. Il faudra que je trouve une façon de l'utiliser qui ne réduit pas trop les performances de l'application.
  • 26

    • J'ai légèrement amélioré la recherche des types d'objets grace à l'API datamuse. Cependant, ça ne marche pas dans tous les cas, car l'API a tendence à renvoyer quelques fois des resultats bizarres, ce qui peut donc mener à des types d'objets bien différents de ceux décrits dans la requête.
    • Actuellement "Djin" ne fonctionne plus (j'ai ce message d'erreur à chaque fois : {"data":{"document":null},"errors":[{"message":"Internal Server Error(s) while executing query"}]} ), je ne sais pas si c'est voulu ou non.
    • Je pense en rester la pour l'application, il faut que je commence à préparer ma présentation demain.
* pré-soutenance du stage

Liens

Versions testables

Documentation

  • Liste de questions que l'on peut imaginer voir traitées par un portail intelligent

  1. What is the redshift of 3C273? What is the redshift of the Virgo Cluster?
  2. What is the parallax of Barnard's star? What is the distance of Barnard's star? What is the proper motion of Barnard's star?
  3. What is the effective temperature of Sirius?
  4. What are the galactic coordinates of Geminga?
  5. Which galaxy interacts with NGC 4038?
  6. Show me an image of the Pleiades in the K band
  7. How many QSOs are there at redshift larger than 6? How many QSOs are there at z>6?
  8. What is the redshift of galaxies members of the Virgo cluster?
  9. Find globular clusters within 3° of M31. Find globular clusters in M31.
  10. Query the latest Veron catalogue
  11. What is the period of Algol? List of periods of Algol-type stars.
  12. What is the effective temperature of T Tau? What is the effective temperature of T Tauri stars?
  13. Find supernovae in galaxies brighter than V=12
  14. How many planets orbit Kepler 20?
  15. List of catalogues measuring surface gravity of giant stars
  16. Get color thumbnails of Messier objects
  17. List of galactic X-ray supernova remnants

  • Remarques et discussion sur les questions ci-dessus

Catégorisation des mots-clés à identifer : meas = quantité mesurée; oid = nom d'objet; otype = type d'objet; author = auteur; mission = instrument ou mission; data = nom d'un dataset, catalogue ou type de données?; wl = wavelength domain?

  1. meas:redshift && oid:3C273. Résultat attendu = valeur (avec erreur, bibcode...). Réponse peut être trouvée dans SIMBAD, ou dans différents catalogues VizieR.
  2. meas:parallax && oid:"Barnard's star". Idem question 1. Pour meas:distance, besoin de faire un calcul à partir de parallax. Pour meas:"proper motion", valeur vectorielle avec 2 composantes + calcul de la norme?
  3. meas:"effective temperature" && oid:Sirius. Idem question 1.
  4. meas:"galactic position" && oid:Geminga. Réponse = deux composantes de position : longitude, latitude galactique.
  5. oid:"NGC 4038", et besoin d'interpréter la grammaire pour comprendre qu'on s'intéresse au lien hiérarchique de cet objet dans SIMBAD
  6. data:image && wl:em.IR.K && oid:Pleiades. Besoin d'identifer les datasets pertinents dans le serveur Aladin, ou bien données associées VizieR, et restreindre à la position de l'objet demandé, et taille du champ de vue appropriée.
  7. otype:QSO && meas:redshift, + restriction en valeurs de redshift
  8. meas:redshift && oid=Virgo cluster && otype=galaxy + information membership
  9. otype=GC + restriction par membership ou région du ciel
  10. name:Veron. Trouver le bon catalogue dans VizieR en triant par date, ou au moins lister les catalogues de cet auteur.
  11. meas:period && oid=Algol. Se trouve dans les données mesures associées SIMBAD, ou bien des catalogues VizieR. Attention à l'ambiguité otype:Algol, besoin de renvoyer une liste dans ce cas.
  12. meas:"effective temperature" && oid:"T Tauri". Idem, ambiguité avec otype:"T Tauri"
  13. otype:SN + lien hiérarchique (ou recherche par rayon?) avec otype:galaxy + contrainte sur meas:"phot.mag;em.opt.V"
  14. oid:"Kepler 20" : comptage sur hierarchie et otype:planet sur children
  15. meas:"surface gravity" && otype:"giant star" && data:catalogue
  16. data:image && wl:em.opt. Interpréter Messier comme une liste d'objets implicite à partir d'un catalogue ou par le dictionnaire de nomenclature? data:Messier
  17. otype:SNR && wl:"X ray". "galactic" pas évident à interpréter. Liste d'objets SIMBAD ou catalogues VizieR ?

Travail post stage éventuel

Liste des améliorations à envisager

  • La détection des types d'objets est le point principal à améliorer dans l'état actuel de l'application. Il faut revoir le calcul de distance qui est très "approximatif".

Bugs connus

  • Bug de transmission des données au client lors de la détection des conditions associées à un UCD. Par exemple, pour une requete du type : "How many QSOs are there at Z>6?", il n'y a pas de problèmes. Par contre si la requete devient "How many QSOs are there at 6<Z?" ou "How many QSOs are there at 7>Z>6?", les requetes sont traitées, les UCD détectés et les conditions aussi. Les requetes ADQL sont correctement crées et les données sont récupérées grâce au protocol TAP mais les données de sont pas transmisent au client.
Topic revision: r26 - 2017-07-28 - PierreBarjon
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback