Résumé : Une application web en PHP développée from scratch selon le modèle MVC nécessiterait un refactoring complet, en prenant pour base un framework existant (au choix : Silex, CakePHP, FalconPHP, autre selon proposition argumentée).
Cette application permet d'archiver des essais en laboratoires effectués sur différentes biomasses, dans un but de consultation et réutilisation. Techniquement parlant elle prend en charge les accès CRUD à une base de données MySQL et fournit des vues de navigation ainsi que d'administration (en HTML5 + Bootstrap).
L'unique contrainte fonctionnelle "transversale" est l'authentification des utilisateurs et la gestion de différents niveaux de droits sur la gestion du contenu de la BDD.
Attendus :
- Rapport d'analyse et de développement
- Démonstrateurs
Prérequis :
- maitrise de la POO et mise en Âuvre des design patterns
- compétences en PHP et de préférence une 1ère approche avec un framework "connu"
Lien : - • Dernière mise à jour : 2015-11-08 15:16:50
Résumé : A partir dÂune base de données de bois tropicaux existante :
1. Ătude dÂune architecture permettant sa consultation à partir de différents clients : application de bureau, application mobile (smartphones et tablettes), application web ;
2. Identification des technologies les plus indiquées pour la réalisation ;
3. Développement d'un ou plusieurs prototypes de démonstration.
Le but étant de maximiser la réutilisabilité des développements effectués, ainsi que faciliter les mises à jour de la BDD et de ses divers clients (le moins de mises à jour à reporter en différents endroits, dÂoĂč lÂintérêt dÂune couche métier universelle par exemple).
Parmi les possibilités à prendre en compte :
1. Une BDD unique distante + couche métier (modèle de données et accès SQL) en PHP sur un serveur Cirad + une API REST à développer (et écriture dÂun client utilisant cette API) ;
2. Une BDD locale sur chaque client + couche métier réutilisable (Java ? C# ?) + application cliente différente selon chaque plateforme cible ;
3. Une solution "mixte" : BDD sur un serveur et plusieurs BDD locales, la BDD serveur pouvant synchroniser ses modifications avec les BDD distantes lorsquÂune connexion est disponible.
Le tout en tenant compte de certaines contraintes :
Contraintes fonctionnelles :
- Authentification de lÂutilisateur
- Interfaces utilisateur simples et ergonomiques
Contraintes techniques :
- Utilisation du SGBD MySQL
- Utilisation d'un framework pour le développement PHP (CakePHP, Falcon, ...)
Attendus :
- Rapport dÂétude et recommandations (et éventuellement de développement)
- Démonstrateurs
Prérequis :
- maitrise de la POO et mise en Âuvre des design patterns
- connaissances SQL
- pratique de Java ou PHP ou C#
Lien : - • Dernière mise à jour : 2015-11-08 14:56:57
Résumé : Etant donné un graphe non orienté sans boucle G=(V,E), un couplage est un ensemble d'arêtes du graphe, qui sont sommets-disjointes. Un couplage est parfait lorsqu'il couvre tous les sommets du graphe. On se place dans le cas oĂč les arêtes sont valuées, et on s'intéresse au problème de trouver un couplage de poids maximal dans le graphe. Ce problème est polynomial, et différents algorithmes ont été implémentés afin d'améliorer la complexité de ce calcul, qui dans l'algorithme originel est en O(nÂČ m), oĂč n est le nombre de sommets et m le nombre d'arêtes du graphe. Il est important de disposer d'une complexité la plus basse possible, car le calcul d'un couplage de poids maximal est souvent utilisé comme première étape ou routine dans d'autres problèmes (couverture par des cycles, démarrage d'heuristiques pour des problèmes de voyageur de commerce, ou d'échafaudage de génomes par exemple).
Afin de rendre cette étape plus efficace, on peut s'intéresser à l'implémentation d'une heuristique qui propose une solution approchée, en temps linéaire. On dit que cet algorithme est 1/2-approché car il propose une solution qui a un score ayant un rapport maximal 1/2 au score de la solution optimale. Ainsi, on gagne en temps ce qu'on perd en optimalité, mais cela reste contrôlé.
Le but du TER est de :
- Etudier cet algorithme.
- Proposer d'autres algorithmes en temps linéaire.
- L'implémenter.
- Comparer ses performances à celles de l'implémentation proposée par Kolmogorov et al. en 2009, en temps (évidemment ce sera meilleur!) comme en score (là, on attend de voir... ), en utilisant des données simulées.
Lien : - • Dernière mise à jour : 2015-11-08 14:59:21
Résumé : Présentation : La théorie spectrale des graphes s'intéresse aux rapports entre les spectres des différentes matrices que l'on peut associer à un graphe et ses propriétés. C'est une branche de la théorie algébrique des graphes. On s'intéresse en général à la matrice d'adjacence et à la matrice laplacienne normalisée (wikipedia).
Dans ce TER, vous vous intéresserez à présenter les propriétés de bases,et les différences entre matrice Laplacienne et dÂadjacence. Toutes les propriétés doivent être justifiées.
Lien : - • Dernière mise à jour : 2015-11-08 15:04:55
Résumé : Présentation : La théorie des jeux sÂintéresse à des situations pour lesquels des joueurs doivent prendre des décisions tout en sachant que le choix de chaque joueur dépend de celui des autres. On parle dans cette théorie de jeux coopératifs/non coopératifs, jeux à somme nulle/non nulle  .. Ce TER a pour but de présenter les grandes lignes de cette théorie.
Lien : - • Dernière mise à jour : 2016-01-20 22:52:51
Résumé : Il s'agit de modéliser, spécifier et implémenter (mysql/php) un jeu en ligne (sur navigateur web et jouable sur mobile) permettant de produire un corpus de phrases/textes annotés sémantiquement. Chaque terme ambigu (avocat, frégate, livre, etc.) sera associé avec une ou plusieurs gloses permettant d'identifier le sens correct (avocat > fruit, frégate > oiseau, livre > poids, etc.). Le jeu collectera l'ensemble des réponses des joueurs et distribuera des points en fonction de l'adéquation de celles-ci. Trois niveaux de jeu sont à prévoir :
* débutant : les mots à annoter sont mis en évidence dans le texte et chacun est associé à un ensemble de gloses possibles (+ autres en entrée libre s'il en manque) ;
* confirmé : les mots à annoter sont mis en évidence, mais aucune proposition de glose n'est faite ;
* expert : les mots ne sont pas mis en évidence et doivent être trouvés par le joueur.
Les joueurs de niveau expert peuvent proposer de nouveaux textes. Les fonctionnalités seront définies de façon à rendre le jeu addictif tout en s'assurant une bonne qualité des données.
Vous vous renseignerez sur les Jeux Sérieux et les GWAP, en particulier : Wordrobe, Phrase Detective, ...
** prérequis : base de données, web/php, dev Android, bonne maîtrise du français
à lire :
* J. Chamberlain, K. Fort, U. Kruschwitz, M. Lafourcade and M. Poesio (2013) Using Games to Create Language Resources: Successes and Limitations of the Approach. Theory and Applications of Natural Language Processing. Gurevych, Iryna; Kim, Jungi (Eds.), Springer, ISBN 978-3-642-35084-9, 2013, 42 p.
* M. Lafourcade, A. Joubert (2012) Enrichissement de la longue traîne dÂun réseau lexical grâce à un outil dÂévaluation. In proc of 11es journées internationales d'analyse statistique des données textuelles (JADT2012), Liège, Belgique, 13-15 juin 2012.
Lien : http://jeuxdemots.org • Dernière mise à jour : 2015-11-08 15:14:01
Résumé : L'objet de ce projet est de réaliser un jeu en ligne (web) similaire à JeuxDeMots (jeuxdemots.org) mais tout en étant à la fois simplifié et multilingue. Le joueur décide de jouer avec un certain nombre de langues (mettons Français, Anglais, Arabe) et pour un terme proposé par le système pourra faire des proposition dans n'importe lesquelles des langues choisies. Une attention particulière sera portée sur la possibilité de passer d'un mode de saisie à l'autre (écrire de l'Arabe, puis du Chinois, revenir au Français, etc. durant une partie) et sur l'ergonomie, gameplay global du jeu.
prérequis : programmation Andoid et/ou web, PHP, javascript, bonne maîtrise du français et d'une autre langue
Lien : - • Dernière mise à jour : 2015-11-08 15:17:56
Résumé : LÂinformatisation des professions de santé et le développement du dossier médical personnalisé (DMP) entraîne une progression rapide du volume d'information médicale numérique. Les systèmes informatiques médicaux permettent de stocker de lÂinformation (dossier médical, résultats dÂexamens complémentaires, images et comptes rendus radiologiques par exemple), dÂy accéder en vue dÂaméliorer la prise en charge des patients, de découvrir de nouvelles informations ou de fournir une aide à la décision pour lÂamélioration de la qualité des soins. Or, cette information est souvent consultée de façon individuelle et manuelle alors que le format numérique permettrait une analyse informatisée. LÂinformation à exploiter est en grande partie sous forme textuelle et il sÂagit alors de pouvoir extraire de façon automatique des données sémantiques. Le besoin de convertir toute cette information sous forme structurée est donc un enjeu majeur. Pour réaliser cette tâche il est nécessaire dÂavoir une base de connaissance de spécialité structurée et dynamique (apprentissage permanent).
Pour ce sujet de TER, il s'agira de travailler sur l'extraction de relations sémantiques (synonymie, hyperonymie, causatif, caractéristique..) à partir d'articles médicaux issus de l'encyclopédie Wikipedia et du site sur les maladies rares Orphanet. Cette extraction aura pour but de consolider un réseau lexico-sémantique de spécialité inclus dans le réseau de connaissance générale JeuxDeMots. Il faudra utiliser les ressources et travaux de recherches à votre disposition afin d'élaborer des algorithmes pertinents. Le travail sera composé des tâches suivantes:
* état de l'art sur l'extraction de relations sémantiques à partir de textes non structurés.
* récupérer les pages wikipédia (voire d'autres sites comme orphanet).
* proposer un algorithme d'extraction de relations.
* création d'une base de données susceptible d'être intégrée au réseau.
Le langage de programmation utilisé sera au choix des étudiants.
Lien : - • Dernière mise à jour : 2015-11-08 15:22:47
Résumé : neurodégénératives) développe depuis les années 1980 une colonie de petits primates lémuriens appelés Microcebus Murinus (Microcèbe). Cette espèce est endémique de Madagascar et présente des caractéristiques phénotypiques du vieillissement similaires à lÂhomme. Sa longévité étant de 6-7 ans, il est devenu un bon modèle dÂétude des maladies liées au vieillissement comme la maladie dÂAlzheimer. Les informations biologiques et les différentes analyses effectuées sur les animaux correspondent à une grande quantité de données cruciales pour les études futures. Une base de données relationnelle associée à une interface web permettant le stockage, l'interrogation, la visualisation et l'analyse de données de microcèbes (situés sur le campus de l'UM2) ont été développées lors d'un stage précédent. Des données sur les animaux et leurs liens de parenté, des données sur les tests biologiques qu'ils ont effectués ainsi que des données de biobanque sont stockées dans cette base de données. Des arbres généalogiques sont générés automatiquement afin d'isoler les sujets à risque de développer les caractéristiques physiopathologiques de la maladie d'Alzheimer.
TECHNOLOGIES UTILISEES
Le SGBD utilisé est PostgreSQL.
L'interface web est développée en HTML5/CSS/JavaScript, PHP, Ajax/Jquery en utilisant le framework Symfony2 et l'ORM Doctrine. Le format utilisé pour les arbres généalogiques est le SVG.
MISSION DU TER
Nous souhaitons apporter des améliorations à ce système existant. Le ou les étudiants auront pour mission, en fonction du temps et de l'avancée :
* permettre l'accès aux données en interne et en externe avec une gestion des droits utilisateurs adaptée
* l'amélioration de certaines fonctionnalités, notamment les fonctionnalités d'intégration automatique de données à partir de fichiers Excel remplis par les animaliers ou biologistes
* l'ajout de fonctionnalités d'administration de la base de données
* l'ajout de fonctionnalités de création et gestion d'arbres généalogiques complexes et d'analyses statistiques de données.
Le TER sera encadré par Corinne Lautier (MMDN, UM2) pour le coté données biologiques et besoins ainsi qu'Anne-Muriel Chifolleau (LIRMM, UM2) pour le coté informatique.
** Pré-requis : compétences en développement de bases de données relationnelles et implémentation
d'interface web (HTML5/CSS/JavaScript, PHP, Ajax/JQuery), connaissance du framework
Symfony2 et de l'ORM Doctrine.
Lien : - • Dernière mise à jour : 2015-11-09 23:11:30
Résumé : The context of this internship is the issue known as Ontology-Mediated Query Answering (OMQA), which has raised considerable interest in knowledge representation and reasoning, databases and the Semantic Web. The aim of OMQA is to access data while taking into account inferences enabled by an ontology representing general knowledge about an application domain.
The ontology can enrich the vocabulary of the database, allow to infer new data, enable incomplete information, and provide a uniform access to multiple heterogeneous datasources.
Query-answering in this setting is addressed by two main techniques. The first is called materialization, or forward-chaining, and consists of materializing in the database all possible facts implied by the rules and the data. The complementary technique is reformulation, or backward chaining, and consists of reformulating queries so as to take into account rules, thereby leaving the data untouched.
Ontology-mediated query answering has been studied for relational structures and deployed on top of relational databases. Nevertheless, relational databases are not the prominent way in which information is today represented and exchanged in the Web of data. In our recent work [1], we proposed the first framework for studying the problem of answering ontology-mediated queries on top of NOSQL key-value stores. In this internship, we plan to address practical aspects of reasoning. In particular, to design and provide an efficient implementation of the forward-chaining reasoning in our setting using MongoDB [2] or CouchDB [3] system primitives.
References
1.Marie-Laure Mugnier, Marie-Christine Rousset and Federico Ulliana. Ontology-Mediated Query Answering for NO-SQL Databases. Submitted.
2. MongoDB. https://www.mongodb.org/
3. CouchDB. http://couchdb.apache.org/
Lien : http://www.lirmm.fr/~ulliana/ • Dernière mise à jour : 2015-11-10 09:26:52
Résumé : Chaque année, plusieurs outils sont développés au sein de lÂéquipe ADVANSE du laboratoire LIRMM. Afin de partager ces outils à dÂautres chercheurs internes ou externes au laboratoire, nous souhaitons créer une plateforme web qui permet de mettre en ligne ces outils. Ces derniers pourront être téléchargés ou utilisés directement sur la plateforme en ligne. Il sÂagira donc de définir un workflow qui décrit les étapes de mise en ligne tout en uniformisant les formats dÂentrées et de sorties. Plusieurs types de visualisation des résultats peuvent être implémentés (histogrammes, nuages de points, camembert, etc.).
Le premier outil à mettre en ligne sur cette plateforme sera un système dÂanalyse de sentiments. Il sÂagit dÂun système qui permet de deviner le sentiment (positif, négatif ou neutre) et lÂémotion (joie, colère, peur, tristesse, etc.) exprimé dans un texte dÂune manière automatique. Un système dÂanalyse de sentiment permet par exemple de déduire que la phrase « CÂest le weekend et il fait beau, youpi ! » exprime un sentiment de polarité positif et que lÂémotion véhiculée est la joie. Un exemple de site pour un système dÂanalyse sentiment est accessible sur : https://semantria.com/demo
Prérequis: Java, HTML, CSS, PHP ou JSP.
Lien : http://www.lirmm.fr/~aze/Stage_TER_M1.pdf • Dernière mise à jour : 2015-11-10 09:55:33
Résumé : Sujet : Y -a-t-il un intrus ?
Encadrants : Mathieu Lafourcade, Violaine Prince
Le réseau lexical Jeux de Mots (JDM) (www.jeuxdemots.org et articles ici) est une ressource lexicale importante sous forme dÂun gigantesque graphe, dont les sommets sont des termes de la langue, ou des concepts, et dont les arrêtes sont des relations sémantiques (qui apportent du sens), taxinomiques (qui servent à la classification) ou thématiques (qui indiquent que les sommets reliés relèvent dÂun thème).
AujourdÂhui, le réseau a atteint une taille et un degré de maturité tels quÂils permettent de réaliser des raisonnements et donc dÂaider à la construction dÂapplications relevant de la représentation des connaissances et de lÂintelligence artificielle.
LÂidée proposée dans ce TER consiste à faciliter le raisonnement par le biais de la généralisation (induction expérimentale) et de la révision (abduction). Les notions considérées sont développées dans (Prince, 1998).
Pour cela, il faut Âcréer un jeu dans lequel on fournit au système un certain nombre de termes, appelés des ÂfaitsÂ. En appariant ces termes avec JDM, le système doit pouvoir savoir si ces termes Âse ressemblentÂ, sur quoi se fonde cette ressemblance (quelle relation en commun), et donc créer une classe de termes (généralisation), qui aura pour caractéristique la relation commune, si celle-ci nÂexiste pas encore. Cette classe permettra ensuite le raisonnement déductif abstrait et générique et donc plus au niveau conceptuel quÂau niveau terminologique.
Il peut arriver que certains termes ne puissent faire partie de la classe, auquel cas ce seront des ÂintrusÂ, et lÂidée est de les mettre en avant, afin de les faire entrer dans un nouveau processus de généralisation.
Le jeu Ây-aÂt-il un intrus sera un très bon moyen de pré-classifier des termes, de détecter des exceptions et des polysémies (multiplicité de sens). En substance, un terme a des chances dÂêtre polysémique si on sÂaperçoit quÂon peut le considérer comme une instance possible de plusieurs classes différentes. LÂavantage de ce procédé est quÂil explicitera le socle de chacun des sens, puisquÂil sÂagira de la (ou les) propriété(s) permettant de définir une classe.
Le TER consistera à :
* se familiariser avec le réseau JDM (http://www.jeuxdemots.org/diko.php);
* adapter et mettre en oeuvre des algorithmes proposés dans (Prince, 1998) ;
* réaliser une interface de jeu pour permettre à des utilisateurs de jouer à Ây -a-t-il un intrus ? de façon à alimenter le réseau.
Lien : - • Dernière mise à jour : 2015-11-11 10:44:44
Résumé : Un workflow est un graphe qui décrit lÂenchainement de lÂexécution dÂun ensemble de tâches (traitements) et éventuellement les dépendances de données entre ces tâches. Ce type de graphe est largement utilisé pour la réalisation dÂapplications scientifiques et des procédures dÂentreprise.
LÂobjectif de ce TER est de réaliser un générateur de workflows pour la réalisation dÂapplications synthétiques. Ces applications seront utilisées pour faciliter lÂévaluation de travaux de recherche autour du calcul scientifique.
Ce générateur utilisera des paradigmes de graphes que lÂont retrouve souvent dans les applications scientifiques [1, 2], afin de générer des applications synthétiques proches des applications réelles. Des paramètres seront aussi fournis par lÂutilisateur pour déterminer, par exemple, lÂordre de grandeur du graphe à produire et le temps de calcul des tâches.
Un workflow produit par le générateur sera représenté graphiquement et sa description sera stockée au format XML (ou autre). A ce stade, il est souhaitable que la description du workflow ne soit pas spécifique à un langage de workflow donné, mais plutôt générique (chose qui est assez simple à faire). Une autre étape sera donc de traduire cette description vers son équivalent dans un langage de workflow bien identifié (un ou deux dans le cadre de ce TER). Durant cette étape, la nature des tâches sera aussi déterminée (composants logiciels, scripts, programmes C/C++/Java, etc.). L'intérêt de cette approche est de pouvoir réaliser des évaluations de travaux de recherche en faisant des comparaisons entre différents langages de workflows (sur un même ensemble dÂapplications synthétiques).
Les graphes étudiés dans ce TER sont des DAG (Directed Acyclic Graph).
Le langage de programmation utilisé pour la réalisation du générateur sera au choix des étudiants.
Les étapes du TER sont :
- comprendre la notion de workflow ( à travers un ou deux langages)
- état de lÂart sur les paradigmes de graphes récurrents dans les workflow scientifiques et sur un générateur de workflows spécifique.
- définir des stratégies de génération de workflows et définir une spécification d'une description générique dÂun workflow (à partir de lÂexistant)
- implémenter le générateur
- implémenter la traduction dÂune description générique vers une description dans un langage existant, avec instantiation des tâches.
Prérequis : notions en graphes (algorithmique de graphe est un plus), interprétation, programmation.
Lien : - • Dernière mise à jour : 2015-11-11 13:57:33
Résumé : Le réseau lexical Jeux de Mots (JDM) (www.jeuxdemots.org et articles ici) est une ressource lexicale importante sous forme dÂun gigantesque graphe, dont les sommets sont des termes de la langue, ou des concepts, et dont les arêtes sont des relations sémantiques (qui apportent du sens), taxinomiques (qui servent à la classification) ou thématiques (qui indiquent que les sommets reliés relèvent dÂun thème).
Ces relations étaient à lÂorigine issues du Crowdsourcing, cÂest-à-dire de la contribution volontaire dÂutilisateurs humains, mais avec le temps et les améliorations, plusieurs robots logiciels y ont été greffés afin dÂagrandir et de raffiner le réseau. AujourdÂhui, le réseau a atteint une taille et un degré de maturité tels quÂils permettent de réaliser des raisonnements et donc dÂaider à la construction dÂapplications relevant de la représentation des connaissances et de lÂintelligence artificielle.
Pour améliorer encore les raisonnements, il importe que la partie conceptuelle de JDM soit la plus juste et la plus expressive possible. CÂest pourquoi, on propose dans ce TER dÂutiliser les propriétés de lÂanalyse relationnelle de concepts (Dolques et al. 2012) qui se prête particulièrement bien aux relations multiples entre différents éléments, puisquÂil sÂagit dÂune Âclassification itérative dÂobjets liés entre eux par différentes relations binaires (op.cit.). LÂidée est de sélectionner une portion du réseau JDM comme structure dÂentrée du logiciel développé à l'ENGESS par Xavier Dolques sous la direction de Marianne Huchard, et dÂen étudier les résultats. On proposera alors :
- de nouvelles relations
- de nouveaux concepts et ou classes
On pourra éventuellement substituer des portions de treillis à certaines parties de JDM, ou extraites de petites ontologies, grâce à la superposition des relations terminologiques avec leur pendant conceptuel. A terme, ces ontologies, ou onto-terminologies ainsi proprement charpentées pourront être ré-exploitées dans un cadre de recherche différent (Web sémantique, applications liées à la gestion de connaissances, etc.), comme ce qui a été fait par exemple dans (Falleri et al. 2010) à partir dÂune terminologie arborescente, mais avec une orientation et un niveau dÂéchelle encore plus riches.
Références
X. Dolques, F. Le Ber, M. Huchard, C. Nebut, 2012 ÂAnalyse relationnelle de concepts pour lÂexploration de données relationnellesÂ. GDR I3
Jean-Rémi Falleri , Marianne Huchard, Mathieu Lafourcade, Clémentine Nebut, Violaine Prince, Michel Dao 2010 "Automatic Extraction of a WordNet-Like Identifier Network from Software". ICPC 2010: 4-13
Lien : - • Dernière mise à jour : 2015-11-11 19:54:10
Résumé : Nous considérons le problème d'affectation multidimensionnelle de vecteurs binaires défini par m ensembles disjoints V^1,...,V^n composés de n vecteurs binaires de taille p. Pour chaque j in {1,2,...,n}, chaque i in {1,2,...,m} et pour chaque l in {1,2,...,p}, le j^e vecteur de V^i est noté V^i_j, et sa l^e composante V^i_j(l).
Nous cherchons un ensemble S de n piles dijointes. Une pile s={v^s_1,...,v^s_m} est un m-uplet de vecteurs vérifiant v^s_i in V^i. Deux piles s_1,s_2 sont dites disjointes ssi aucun vecteur n'appartient à s_1 et s_2.
Nous associons à chaque pile s un vecteur p-dimensionnel binaire v_s en utilisant l'opérateur binaire & (le ET logique): étant donnés deux vecteurs p-dimensionnels u,v, nous définissons u&v=(u(1)&v(1),...,u(p)&v(p)). On associe le vecteur v_s à une pile s, défini par v_s=big&_{i=1}^{m}v^s_i.
Le coĂ»t d'un vecteur c(v) est défini par le nombre de composantes nulles qu'il contient. Par extension, le coĂ»t d'une pile s est défini par c(s)=c(v_s).
Ătant donné un entier alpha>0, une pile s est dite alpha-valide ssi elle vérifie c(v_s)leqalpha. Le profit d'une solution S est c(S)=|{s:c(v_s)leqalpha, s in S}|.
L'objectif est donc de trouver un ensemble de n piles disjointes maximisant le nombre de piles alpha-valides.
Une variante de ce problème, dans laquellle l'objectif est de minimiser le nombre total de zéros dans les vecteurs représentant les piles, bénéficie d'un grand nombre de réduction.
L'objectif de ce TER est dans un premier temps d'apréhender les problèmes, puis de recenser et comprendre les réductions polynomiales afin de chercher à étendre ces dernières au problème considéré.
PREREQUIS (souhaité): connaissances basiques des classes de complexité et des mécanismes de réduction polynomiale.
Lien : http://cv.duvillie.eu/media/ter_m1.pdf • Dernière mise à jour : 2015-11-13 19:56:08
Résumé : Encadrants : Konstantin Todorov, Zohra Bellahsene
Une ontologie est un ensemble de concepts et de relations entre ces concepts qui décrivent un domaine d'intérêt. Les ontologies sont utilisées en l'intelligence artificielle afin de rendre explicite les connaissances et particulièrement dans le domaine du Web afin de faciliter la représentation et l'accès à l'information et aller vers la création d'un web sémantique oĂč l'information est compréhensible à la fois pour les humains et pour les machines.
Souvent plusieurs ontologies sont créées de manière indépendante pour représenter le même domaine d'intérêt. LÂalignement dÂontologies est le processus de recherche des correspondances et des relations entres telles ontologies. C'est une tâche cruciale pour assurer l'interopérabilité entre les ontologies du web sémantique. Nous avons développé deux outils dÂalignement dÂontologies dans notre équipe : YAM++ [1] et LYAM++ [2]. Les entrées de chacun des outils sont deux ontologies O1 et O2 (sous forme de fichier OWL, le format de référence du web sémantique). En sortie, les outils produisent un ensemble de correspondances, ou de mappings, sous la forme
{Concept de O1, Concept de O2, relation r, score n}.
Ces deux outils ont été développés en Java sous forme dÂune application bureau. On souhaite rendre l'exécution des deux outils en ligne. Nous voulons aussi saisir cette opportunité pour enrichir notre corpus d'ontologies et notre base de connaissance avec les mappings produits par nos outils.
Le travail à faire est le suivant :
1. Création dÂune interface web qui permet à lÂutilisateur de fournir en entrée deux ontologies (deux fichiers OWL). Le résultat de l'exécution doit être stocké sous forme de tableau. Une possibilité doit être proposée à l'utilisateur de valider (oui/non) chacun des mappings produit par le système.
2. Sauvegarde des ontologies fournies par lÂutilisateur (après accord de celuiÂci).
3. Sauvegarde des mappings produits dans une base de données MySQL.
4. Déploiement de la page web dans un serveur web (LIRMM).
Compétences requises : PHP, CSS, HTML et MySQL.
Lien : - • Dernière mise à jour : 2015-11-13 20:19:38
Résumé : Les langages orientés objet tels que Java, C++ ou Smalltalk offrent des avantages certains pour faciliter le développement de systèmes logiciels de qualité. Néanmoins, pour des systèmes de plus en plus complexes, ces langages atteignent leur limite, entre autres, par rapport aux propriétés de compréhension, de maintenabilité et de réutilisabilité de ces systèmes. Ainsi, d'autres langages dits post-objet ont vu le jour tels que les langages à base de composants (ArchJava, CCM, Fractal, Compo, etc.)
Notre objectif dans le cadre de ce travail est d'expérimenter l'extension d'un langage objet existant pour le doter de certaines capacités offertes par les langages à base de composants. Ainsi, nous proposons d'étendre le langage Java pour y intégrer les principaux concepts proposés dans les langages à base de composants : composant, interface de composant, port, architecture, assemblage, etc.
Ce travail se basera sur une compréhension du concept de composant inspirée du projet ROMANTIC (Re-engineering of Object-oriented sytesMs by Architecture extractioN and migraTIon to Component based ones.) .
Les principales étapes de ce travail sont :
- Ătudier les principaux langages à base de composant existants pour pouvoir identifier leur principaux concepts/éléments pour ensuite compléter la définition de la grammaire de ComJava (l'extension de java proposée dans ce travail), dont une partie est déjà définie.
- Proposer une implémentation d'un programme écrit en ComJava en Java (c-a-d, Modèle de correspondance entre concepts ComJava et concepts Java).
- Créer un analyseur lexical/syntaxique de ComJava en utilisant l'outil ANTLR . En plus, une transformation d'un code écrit en ComJava en Java est demandée.
Ce travail convient à des étudiants intéressés par l'amélioration de leur compréhension par rapport aux concepts/langages orientés objet et par la création de langages post-objet.
Lien : http://www.lirmm.fr/~seriai/index.php?n=Encadrement.TERMaster12015-2016 • Dernière mise à jour : 2015-11-19 21:47:21
Résumé : Les langages à base de composants sont des langages de programmation dits post-objet. Ils permettent la création d'applications logicielles par assemblage de briques de base dites composants. L'idée générale de ces langages est de créer un système logiciel comme en industries mécanique ou électronique : par assemblage de composants existants. Le langage OSGI fait partie de ces langages . OSGI est basé sur Java, oĂč un composant OSGI est créé à partir d'un groupe de classes Java.
Nous proposons d'étudier dans le cadre de ce travail l'évaluation de la qualité d'un composant OSGI. Cette évaluation doit se baser sur un modèle de mesure de la qualité d'un composant qui a été proposé dans le cadre du projet ROMANTIC (Re-engineering of Object-oriented sytesMs by Architecture extractioN and migraTIon to Component based ones.). Ce modèle de mesure est inspiré du modèle de mesure de la qualité ISO9126
Les étapes principales proposées pour ce travail sont :
- Formaliser et structurer les éléments du modèle de mesure de la qualité décrit dans ROMANTIC.
- Implémenter le modèle de mesure de la qualité d'un composant OSGI en JAVA. Il s'agit de l'analyse de l'ensemble des classes d'un composant OSGI pour déterminer certaines métriques telles que le couplage et la cohésion des classes.
- Expérimenter ce modèle de mesure sur des composants OSGI.
Lien : http://www.lirmm.fr/~seriai/index.php?n=Encadrement.TERMaster12015-2016 • Dernière mise à jour : 2015-11-19 21:41:16
Résumé : Il nous est tous arrivé un jour ou lÂautre de ne pas nous souvenir dÂun titre de film, ni même du nom des acteurs. Le seul souvenir du film (ou de la série) était lÂhistoire ou bien des scènes clés de lÂÂuvre de fiction (par exemple, la scène de la roulette russe dans « Voyage au bout de lÂenfer »). Plusieurs sites de cinéma existent, mais ils ne proposent pas un moteur de recherches par mots clefs ou idées associées. Il existe peu de systèmes de recherche qui permettent de retrouver un film (ou séries) à partir de plusieurs mots (ou multi-mots) clefs ou bien de phrases.
Présentation du sujet
Le but de ce TER sera de proposer une application Android permettant de retrouver un film (ou une série) quÂon a au bout de la langue, à partir de plusieurs mots clefs évoquant le film (ou la série).
Tâche à effectuer
* Dans une première partie du travail, il sera demandé aux étudiants dÂextraire des informations pertinentes (extraction de mots clefs ou idées pertinentes) à partir des synopsis des films ou séries. Pour cela on récupérera les données sur un site comme Allo ciné par exemple. Dans cette première partie les étudiants utiliseront des algorithmes et techniques issues du traitement automatiques des langues (TALN) : extraction dÂentité nommée, extraction de relations pertinentes, etc.
* Ces données récupérées seront intégrées à un réseau lexico-sémantique de
* La troisième phase sera la construction de lÂapplication proprement dite.
Le langage de programmation utilisé dans la 1ère phase du projet sera aux choix des étudiants (php, python, java, ...).
Lien : - • Dernière mise à jour : 2015-11-14 21:48:23
Résumé : Ce projet sÂinscrit dans le contexte général de lÂaccessibilité numérique au Web pour les personnes présentant un handicap visuel (thèse en cours). Afin de permettre à ces personnes dÂaccéder à une page web, il convient dans un premier temps dÂanalyser la structure visuelle de cette page (découpage en blocs visuels), selon une granularité prédéfinie. Il faudra ensuite annoter les blocs visuels afin de les associer à des types génériques de bloc comme par exemple : menu, bandeau haut, bandeau bas, fil dÂAriane, article, lien, ... LÂutilisateur qui aura au préalable défini ses préférences concernant ces blocs génériques pourra ainsi visualiser une page web transformée selon ses voeux.
Yoann Bonavero termine actuellement une thèse sur ce sujet et travaille plus précisément sur le calcul de solutions au problème des préférences. Franck Petitdemange a effectué en 2014 un stage de recherche de M2 concernant lÂinférence de structure dÂune page web en vue dÂaméliorer son accessibilité. Une application javascript sous grease monkey a été développée et servira de base à votre étude. Quatre étudiants de Master 1 ont réalisé en 2014 un TER portant sur le même sujet et ont continué à développer le prototype. Celui-ci permet notamment de changer la couleur de police et de fond ainsi que la taille de police.
** Objectifs
Les objectifs de votre travail sont multiples :
 analyse du mémoire de recherche et du code javascript existant ;
 La documentation (jsdoc) du code permettra une compréhension plus aisée ;
 annotation des blocs visuels et appariement au méta-modèle ;
 saisie des préférences utilisateur ;
 mise en place dÂune expérimentation permettant de déterminer selon des métriques à déterminer la pertinence de lÂoutil par rapport à une reconnaissance visuelle humaine ;
 liaison avec le prototype C++ de résolution de Y. Bonavero.
** Etapes
Le projet se déroulera, chronologiquement, suivant les étapes ci-dessous :
 lecture du mémoire de recherche, du rapport de TER et de quelques articles référencés ;
 analyse et du code ;
 réflexion autour de lÂannotation et de lÂappariement des noeuds composites avec les classes du méta-modèle ;
 amélioration de lÂoutil de saisie des préférences utilisateur ;
 compréhension de lÂoutil de résolution et liaison avec ce dernier ;
 tests, expérimentation, analyse des performances.
** Mots-clefs
 javascript, GreaseMonkey ;
 extraction et annotation du DOM ;
 Accessibilité.
Lien : - • Dernière mise à jour : 2015-11-16 16:47:52
Résumé : Blizzard interdit de connecter des robots à Hearthstone, mais rien nÂinterdit de cloner lÂapplication pour réaliser un simulateur. Nous proposons dans ce TER de réaliser un environnement jouable permettant à la fois dÂintroduire des IA de jeux sur un ensemble restreint de cartes (aubergiste, carte sans aléatoires, Â ) mais aussi de faire tourner des parties virtuelles afin de générer et valider automatiquement des nouveaux decks pour faire évoluer la méta !
Lien : http://www.lirmm.fr/~bourreau/TER/HearthCraft.pdf • Dernière mise à jour : 2015-11-17 10:32:42
Résumé : Le but du projet est de développer un assistant de poche (disponible sur smartphone) permettant de proposer une solution pour réaliser un point au billard en prenant simplement une photo. Un prototype fonctionnel a été développé lÂannée dernière par un précédent TER de M1. Fort de cette expérience, nous passons à la phase industrielle (déploiement sur le store, refactoring du code pour encaisser les évolutions fonctionnelles, tests grandeur nature avec des joueurs).
Lien : http://www.lirmm.fr/~bourreau/TER/AssistantBillardV2.pdf • Dernière mise à jour : 2015-11-17 10:47:47
Résumé : Nous proposons d'utiliser l'Analyse Formelle des Concepts pour structurer la Catalogue de Contraintes Globale mis en place par la communauté CSP. Après une première passe, des pistes d'extensions concernant les méta-données seront proposées ainsi qu'une liste des bonnes pratiques de modélisation issues des concepts sous jacents mis en évidence.
Lien : http://www.lirmm.fr/~bourreau/TER/CSPetFCA.pdf • Dernière mise à jour : 2015-11-17 11:54:15
Résumé : MetaCiv est une plate-forme de simulation et de jeux pour la conception et lÂanalyse de sociétés humaines en développement. Il sÂagit dÂun logiciel permettant de créer des IA pour jeux liés au RTS et surtout à lÂévolution de sociétés (Civilization, Simcity).
Plusieurs tâches sont proposées dans ce TER:
Proposer et d'implémenter des framework portant sur la définition de situations dÂinteractions (échange, commerce, combat, propriété, diffusion culturelle, évolution technologique, création de villes) et de relations sociales dynamiques (groupes, rôles), en élargissant le modèle AGR.
Etendre et améliorer l'éditeur de plans de MetaCiv, de manière à disposer d'un langage graphique de définition de plans.
Tester ces fonctionnalités sur des IA de jeux.
Prérequis: connaitre Java, avoir suivi le module de programmation orienté agent (HMIN108), aimer les jeux dÂévolution de sociétés.
Lien : http://www.lirmm.fr/~ferber/TER/metaciv_m1.htm • Dernière mise à jour : 2015-11-20 10:12:25
Résumé : Le logiciel Warbot réalisé sous MadKit est un système de simulation de combats entre "robots". Il est destiné à valider des stratégies de coordination entre agents. Ce système est utilisé dans le cadre des module de programmation par agents du M1 d'informatique de Montpellier. Il sÂagit dÂétendre ses possibilités dans plusieurs directions.
Voici quelques idées d'extensions possibles:
Amélioration de lÂinterface du jeu
Intégration d'unités supplémentaires
Ajouter de nouveaux scénarios de Jeu. Extension du jeu à d'autres situations qu'une guerre des robots.
Développement d'un langage graphique pour implémenter des comportements
Extension du site Warbot.fr, intégration de démos et d'exemples et adaptation à la définition de tournois en ligne.
Prérequis: connaitre Java, avoir suivi le module de programmation orienté agent (HMIN108)
Lien : http://www.lirmm.fr/~ferber/TER/Warbot3-extensions.htm • Dernière mise à jour : 2015-11-20 10:13:02
Résumé : (pour plus d'informations sur le sujet consultez le lien ci-dessous)
Ce stage vise à dÂétudier le problème de la validation en streaming de données RDF.
RDF est devenu le langage standard pour la representation et lÂéchange de données et de connaissances dans le Web Sémantique. Il sÂagit dÂun langage basé sur le modèle des graphes orientés, quÂon exprime en RDF par des collections de triplets.
À la différence dÂautres modèles et langages (comme par exemple le modèle relationnel), RDF nÂimpose aucune contrainte structurelle sur ses données. Toutefois, dans le cadre du Web Sémantique, afin dÂétablir une communication entre des agents différents (e.g., applications et utilisateurs) il est souvent nécessaire de définir dÂabord un Âcontrat sur la structure des graphes échangés : un schéma de données.
Un schéma est un ensemble de contraintes dont le but est de définir lÂensemble des données valides. Un graphe RDF qui satisfait un ensemble de contraintes données est dit valide.
Dans ce stage nous considérerons ShEx comme langage de contraintes pour les graphes RDF. Etant donnés en entrée un ensemble de triplets et un ensemble de contraintes, le problème de validation demande de répondre oui si le document est valide par rapport aux contraintes, et non autrement.
LÂobjectif du stage est de définir et implanter un algorithme de validation en streaming, cÂest à dire un algorithme qui reçoit en entrée un graphe RDF comme un flot continu de triplets. Généralement ces algorithmes ne disposent que dÂune taille mémoire limitée (bien inférieure à la taille des données) et doivent être rapides (bien quÂon peut envisager plusieurs lectures du flux de données). Pour atteindre cet objectif, il sera donc nécessaire de définir une structure de données adaptée au problème. LÂimplementation de lÂalgorithme sera faite en de préférence en C++ ou Java.
Lien : https://www.dropbox.com/s/kh4d3g8nslruf9o/rdf_validation.pdf • Dernière mise à jour : 2015-11-20 15:03:25
Résumé : Dans le cadre dÂun projet en collaboration avec lÂABES (Agence Bibliographique de lÂEnseignement Supérieur) (cf. https://info-web.lirmm.fr/qualinca) sur la vérification de la qualité de bases documentaires, on sÂintéresse à définir une mesure de la proximité thématique de deux documents en fonction des mots-clés utilisés pour indexer ces documents dans le catalogue Sudoc (le catalogue du système universitaire français de documentation). LÂobjectif de ce TER est de proposer différentes solutions pour calculer une telle mesure, dÂimplanter ces solutions et dÂévaluer leur pertinence par une expérimentation sur les données réelles du Sudoc.
** Travail demandé :
* Comprendre le système dÂindexation par mots-clés utilisés par le Sudoc (en particulier la structuration (http://guiderameau.bnf.fr/) des sujets Rameau (http://rameau.bnf.fr/) et les relations utilisées dans le thesaurus Rameau.
* Etudier les différentes possibilités (format et méthode) dÂaccès au thesaurus Rameau fourni par la BNF (Bibliothèque Nationale de France) : dump RDF/SKOS, dump JSON, Sparql Endpoint (data.bnf.fr) et développer une API basée sur un modèle de graphes facilitant lÂexploitation du Rameau : recherche dÂun sujet donné, accès aux sujets voisins par une relation donnée, calcul de la profondeur dÂun sujet...
* Proposer une ou plusieurs mesure de proximité sémantique entre sujets. On pourra sÂinspirer des mesures classiques utilisées pour la distance entre termes dÂun thesaurus (ou dÂune ontologie) comme par exemple la mesure de Wu et Palmer (cf. http://www-sop.inria.fr/members/Fabien.Gandon/docs/HDR_Fabien_Gandon.html) que lÂon appliquerait simplement aux têtes de vedette, et proposer des extensions pour avoir des mesures adaptées aux sujets complexes, et aux listes de sujets.
Définir une méthodologie dÂexpérimentation de la pertinence de la mesure proposée et la mettre en Âuvre sur les données de lÂABES (cf. http://www.sudoc.abes.fr/).
** Extensions possibles :
- Exploitation dÂautres référentiels : Mesh, Geonames...
- Exploitation dÂautres données : mots-clés « texte », titres...
Lien : - • Dernière mise à jour : 2015-11-20 18:46:16
Résumé : Ce TER consiste à concevoir et implémenter une application web simple pour lÂextraction, la prédiction et la validation de métadonnées pour des ontologies. Pour une ontologie donnée (fichier OWL) lÂapplication devra extraire les propriétés de cette ontologie (nom, description, dates, contributeurs, language, format, etc.) à partir du fichier et en prédire dÂautres (langue naturelle, mot clés, etc.). Différents vocabulaires du web sémantique pour décrire les métadonnées seront gérer (DublinCore, VOAF, DCAT, VOID, etc.) et mappés vers des propriétés communes. Une interface Web permettra à lÂutilisateur de valider les propriétés extraites et dÂéventuellement les récupérer directement dans son fichier dÂorigine.
** Description détaillée :
Une ontologie est une représentation formelle des concepts, relations et règles dÂun domaine. Il existe plusieurs language du web sémantique pour encoder les ontologies : RDFS, SKOS, OWL, OBO, etc. Pour permettre dÂordonner, identifier, réutiliser les ontologies, nous avons besoins de métadonnées sur ces ontologies les plus précise possible. Ces propriétés ne sont en général pas assez remplies par les développeurs dÂontologies et notre objectif est de développer une application web qui leur facilite la tâche. Quand elles sont remplies, ces ontologies peuvent utiliser différents vocabulaires que nous devrons prendre en compte dans cette application.
Pour une ontologie donnée, lÂapplication extraira les propriétés de lÂontologie (nom, description, page de documentation, contributeurs, dates, etc.) à partir du fichier. Lorsque ces informations ne seront pas là, lÂapplication essaiera de les prédire en fonction du contenu de lÂontologie ou en utilisant des informations en ligne. Par exemple, en regardant les labels dÂune ontologie, on peut en déduire la langue de lÂontologie. En cherchant dans PubMed, on peut trouver la publication de référence pour une ontologie.
LÂapplication affichera ensuite à lÂutilisateur les propriétés extraites, prédites et vides pour lui permettre de les valider, changer ou simplement remplir. Une fois cela effectué, un nouveau fichier de lÂontologie pourra être produit avec les propriétés inclues dans lÂontologie
** Mots clésÂ
Application web, web service (REST), technologies web, ontologies, parseur XML/RDF/OWL, web sémantique.
** Technologies
Java/JEE, REST, ResTful web services, XML/JSON, Tomcat, pour le Web service, RubyOnRails, web client technologies (HTML5, JavaScript, CSS), pour lÂinterface Web.
Lien : http://www.lirmm.fr/sifr/positions/2016_TER_M1_Jonquet_Metadata.pdf • Dernière mise à jour : 2015-11-23 20:41:32
Résumé : Ce TER consiste à concevoir et implémenter un web service REST (en Java et hébergé dans un serveur dÂapplication Tomcat) et une petite application web (en RubyOnRails et hébergée au sein dÂune plateforme Web existante) dont lÂobjectif est de parser des documents structurés (PDF, DOC, XLS, HTML, XML) pour en extraire certains champs texte qui seront envoyés à un service dÂannotation existant. Lien : http://www.lirmm.fr/sifr/positions/2016_TER_M1_Jonquet_Parsers.pdf • Dernière mise à jour : 2015-11-23 20:41:45
Par exemple, pour un PDF donné, nous souhaitons extraire automatiquement des sections, (e.g.,
** Description détaillée :
Le service que nous souhaitons interroger est un service dÂannotation sémantique avec des ontologies, dont la nouvelle version francophone, le SIFR Annotator, est accessible a :
Interface utilisateur : http://bioportal.lirmm.fr/annotator
API REST : http://data.bioportal.lirmm.fr/documentation#nav_annotator
Pour le moment, le SIFR Annotator nÂaccepte que du texte en entrée, et il renvoie lÂensemble des concepts dÂontologies biomédicales qui sont présents dans le texte. Nous voudrions que ce service traite des documents structurés en entrée et ainsi soit capable dÂautomatiquement extraire et annoter des parties différentes de documents et en faire la synthèse. En plus de permettre de traiter directement des documents structurés, cela permettrait également, lors de la synthèse des annotations, dÂaffecter plus ou moins dÂimportance a une annotation suivant sa section dÂorigine. Par exemple, une annotation faite à partir du titre dÂun article scientifique en PDF pourrait avoir plus dÂimportance quÂune annotation faite dans le corps de ce même article.
Les documents que nous souhaitons traiter seront dans des formats hétérogènes tels que PDF, XLS, DOC, HTML ou XML. Et surtout, ils auront des structures/sections différentes. Il sÂagira ainsi de développer un mécanisme de configuration de template, quÂun utilisateur pourra définir, précisant le template à appliquer lors de lÂannotation dÂun document donné. Par exemple, lÂutilisation du template « article en .pdf » indiquera au nouveau web service quÂil doit identifier et annoter les sections titre/abstract/keywords dans le PDF ; tandis que le template « données XYZ en .xls » indiquera quÂil sÂagit dÂannoter les colonnes X, Y et Z dÂun tableau Excel.
Le nouveau web service sera développé en Java et hébergé dans un serveur Tomcat. Nous avons déjà une infrastructure de web service « proxy » utilisé en amont et en aval du SIFR Annotator. Il sÂagira de venir développer des nouvelles fonctionnalités de parsing dans cette infrastructure. De façon similaire, nous avons déjà une interface graphique (en RubyOnRails) quÂil sÂagira dÂadapter aux appels du nouveau web service.
Des exemples de document structurés à traiter seront fournis.
** Mots clés :
Application web, web service (REST), technologies web, parseur de documents structurés (PDF, DOC, XLS, HTML, XML) web sémantique, annotation sémantique.
** Technologies :
Java/JEE, REST, ResTful web services, XML/JSON, Tomcat, pour le Web service.
RubyOnRails, web client technologies (HTML5, JavaScript, CSS), pour lÂinterface Web.
Résumé : Il s'agit d'un sujet à la fois théorique (combinatoire et algorithmique), pratique (programmation d'un petit logiciel utile) et musical (relations entre gammes et accords). Un accord musical est vu ici comme n'importe quel ensemble de notes (3 ou 4 typiquement, 5 pour des accords colorés) parmi l'ensemble des 12 notes de la gamme chromatique. Les gammes sont vues comme des ensembles prédéfinis de notes (7 pour les gammes majeures, 5 pour les pentatoniques, 8 pour les diminuées, etc.) parmi ces mêmes 12 notes.
Il s'agit de concevoir un programme qui prend en entrée une suite d'accords, et produit en sortie une (ou plusieurs) suite de gammes adaptée à la suite d'accords, de sorte que :
- les notes des accords fassent partie des notes de la gamme associée,
- une même gamme soit utilisée sur le plus d'accords consécutifs possibles (ou bien que le moins de gammes possibles soient utilisées au total).
Il peut y avoir bien sur de nombreuses solutions possibles, et on peut aussi s'amuser à imposer plus ou moins de contraintes.
Sur le plan théorique, il s'agira de modéliser et résoudre ce problème à la fois combinatoire et algorithmique (des solutions simples seront faciles à trouver, mais on pourra aussi en concevoir de plus complexes).
Sur le plan informatique, il s'agira d'implémenter proprement ces objets et solutions, et de permettre leur écoute en produisant un fichier MIDI.
Sur le plan musical, l'idée est que les gammes produites puissent être utilisées pour de l'improvisation ou de la composition sur la grille d'accords donnée.
Divers prolongements peuvent être envisagés selon le nombre, la rapidité et la motivation des étudiants, par exemple :
- optimisation de différents critères pour la pertinence de la suite de gammes, sur le plan combinatoire comme sur le plan musical (par exemple : chercher à minimiser les nombres de notes qui diffèrent d'une gamme à la gamme suivante, afin de donner une consonance la plus naturelle à la suite de gammes ; ou bien prendre en compte la durée de chaque accord pour pondérer son importance dans la suite de gamme générée ; etc.) ;
- génération automatique de mélodies adaptées à la grille d'accords suivant les gammes calculées (en inventant des types génériques de mélodies) ;
- génération automatique de morceau en générant automatiquement au préalable une grille d'accords suivant un chemin dans le Tonnetz (graphe classique représentant les évolutions naturelles d'un accord à l'autre) ;
- etc.
Toute idée que les étudiants pourraient avoir seront également bienvenues.
*** Prérequis :
En plus du prérequis standard pour du M1 info (capacités en programmation, notions d'algorithmique), il faudrait que dans le groupe d'étudiants certains au moins aient (avec des et/ou) :
- un gout pour les questions mathématiques combinatoires simples
- des connaissances minimales en théorie musicale
- une motivation pour les applications musicales de l'informatique
- éventuellement avoir déjà manipulé la norme MIDI (mais sinon ca s'apprend facilement)
Lien : - • Dernière mise à jour : 2015-11-23 20:44:03
Résumé : Plusieurs frameworks Javascript déclinant le modèle MVC (notamment vers un modèle MVVM) sont à ce jour extrêmement populaires.
Nous pouvons par exemple citer :
- ANGULAR
- EXTJS
- KNOCKOUT
Le problème est qu'il est difficile de les comparer, les quelques essais de mises en perspectives existant sur le web étant partiels et assez vagues.
Le sujet de ce TER est donc au travers d'une application "témoin" (un réseau social spécialisé (*)) d'en faire une comparaison sur tous les plans (modèle, efficacité, richesse des UI, documentation...), les applications clientes ainsi développées se connectant toutes au même serveur Node que vous réaliserez en commun.
Chaque membre du groupe aura en charge un framework particulier.
(*) J'aimerais bien partir sur un réseau social spécialisé sur la cuisine moléculaire mais cela sera négociable...
Lien : - • Dernière mise à jour : 2016-04-14 09:18:03
Résumé : Nous souhaiterions mettre en place un système de Deep Learning dont l'apprentissage se ferait sur le réseau lexical JeuxDeMots. L'idée globale est d'entrainer le réseau sur les relations déjà existantes. En particulier, on utilisera en entrée et en sortie d'entrainement des "demi-relations. Par exemple : x a_comme_partie ailes & x peut voler etc. Les réponses espérées pourrait être x r_isa avion, x r_isa oiseau, etc. Le nombre de noeuds d'entrée et de sortie serait de l'ordre du million. On envisagera 2 couches internes de 1000 noeuds environ.
Une stratégie d'apprentissage est de répéter un grand nombre de fois la procédure suivante :
* sélectionner au hasard un terme du réseau ;
* prendre pour ce terme quelques relations existantes au hasard (quelques dizaines) ;
* en prendre une première moitié pour l'entrée de lÂapprentissage et l'autre moitié pour la sortie.
** attendus :
* réaliser un état de l'art d'une dizaine de pages sur le Deep Learning
* évaluer les différent package de Deep Learning et en choisir un pour les expérimentations ;
* expérimenter sur le réseau JeuxDeMots ;
(pour les données du réseau lexical : http://www.jeuxdemots.org/jdm-about.php)
** prérequis :
* un fort intérêt pour l'apprentissage automatique, l'intelligence artificielle ;
* disposer un pc costaud ;
* ne pas avoir peur d'expérimenter, de coder, de geeker ;
** liens :
* https://en.wikipedia.org/wiki/Deep_learning
* https://www.quora.com/What-are-good-open-source-deep-learning-packages
* http://www.jeuxdemots.org/jdm-accueil.php
Lien : - • Dernière mise à jour : 2015-11-25 21:05:54
Résumé : Borderlands est un mélange de jeu de tir à la première personne et de jeu de rôle multi-joueurs. Le jeu permet dÂincarner un chasseur de trésors confronté à la nature hostile du monde fictif dans lequel il se trouve. Chaque chasseur défini une classe qui dispose dÂune capacité spéciale et de compétences qui lui sont propres. Un joueur peut également coopérer avec plusieurs amis qui amèneront leur personnage dans la partie du joueur hôte.
** Objectif
Ce TER aura pour objectif de créer les bases dÂune ligne de produits, permettant de créer une suite de jeux que les utilisateurs pourront configurer. Le projet sera développé en C++ à lÂaide du moteur Unreal Engine 4 avec des extensions en lua.
Dans le cadre de ce projet, les étudiants devrons :
 Conçevoir une application entièrement modulable, permettant aux utilisateurs de rajouter et configurer leur propre contenu(classes, armes, zones...) afin de créer leur propre jeu.
 Développer un programme multi-thread afin dÂaméliorer les performances.
 Elaborer plusieurs types dÂIA pour les ennemis.
 Implémenter un multi-joueurs en ligne permettant dÂhéberger jusquÂa 4 joueurs en simultané.
Ce sont sur ces points que les étudiants travailleront donc les concepts de ligne de produits et réutilisabilité. Les étudiants se concentreront notamment sur lÂutilisation de patrons de conceptions, et la création de points de paramétrages.
Ce projet permettra également dÂen apprendre plus sur la programmation concurrente, lÂintelligence artificielle ainsi que la gestion de ressources 3D.
Lien : - • Dernière mise à jour : 2015-11-26 09:07:28
Résumé : On souhaite tester différentes mesures de similarité entre objets décrits par des listes dÂattributs dépendants et pondérés. A titre dÂexemple, on peut penser que les objets à comparer sont des documents textuels et que leurs attributs sont des mots-clés. Dans un tel contexte, les attributs ne sont pas indépendants (il y a, par exemple, plus de probabilités de retrouver le mot « informatique » dans un document aussi décrit par le mot « programmation » que de retrouver le mot « botanique »).
Différentes propositions de modification de la classique mesure du cosinus (utilisée pour comparer deux objets décrits par des listes dÂattributs indépendants et pondérés) ont été introduites pour prendre en compte cette notion de dépendance : SoftCosinus, Simplexe...
D'autre part, il existe des méthodes de réduction de la dimension de l'espace d'attributs (i.e., de leur nombre) qui visent à regrouper des attributs qui sont sémantiquement dépendant sur une seule dimension, notamment l'Analyse Sémantique Latente (ASL). LÂobjectif de ce TER est de faire une expérimentation comparative rigoureuse de ces mesures que ce soit dÂun point de vue temps de calcul, comportement selon lÂévolution des attributs et poids, pertinence vis à vis dÂun objectif dÂutilisation comme mesure de similarité de deux objets.
** Travail demandé :
1. Comprendre et implanter différentes mesures de comparaison de listes dÂattributs pondérés indépendants et dépendants.
2. Identifier un benchmark dÂexpérimentation de ces mesures. On sÂintéressera aux benchmarks proposés dans les campagnes dÂévaluation OAEI (en particulier celui relatif aux conférences dans http://oaei.ontologymatching.org/2015/). On pourra aussi sÂintéresser à construire un benchmark à partir de la base Sudoc des documents de lÂABES (Agence Bibliographique de lÂEnseignement Supérieur http://www.sudoc.abes.fr/)
3. Définir les modalités dÂune expérimentation comparative de mesures sur un benchmark.
4. Evaluer les mesures aux attributs dépendants en les comparants (1) entre elles (2) à des mesures classiques, et (3) à des mesures sur des modèles de réduction sémantique de dimensions, tels que ASL.
5. Mettre en Âuvre les expérimentations décrites.
Lien : - • Dernière mise à jour : 2015-11-28 09:23:12
Résumé : La réalité virtuelle (visualisation interactive en 3D) en immergeant lÂutilisateur dans un monde virtuel, permet dÂavoir une interface naturelle et dÂintégrer différentes sources dÂinformation pour améliorer la perception. De nombreux périphériques dÂaffichage et dÂinteraction à bas coĂ»t ont fait leur apparition ces dernières années. Conçus principalement pour les jeux vidéo, ils ont permis la définition dÂinterfaces « naturelles » : intuitives, basées sur la reconnaissance des gestes, possèdent une très faible courbe dÂapprentissage. Nous pouvons citer lÂOculus Rift, (casque dÂaffichage stéréoscopique) devenu très populaire, et le LeapMotion qui permet de reconnaître la position et les mouvements des mains de lÂutilisateur, pour éviter au maximum un encombrement physique.
Mais les interfaces immersives ne sont pas dépourvues dÂinconvénients. En effet, le « motion sickness » ou cinétose, cÂest-à-dire les malaises induits par lÂutilisation dÂun casque immersive (HMD) et dus au manque de concordance entre les informations visuelles et la proprioception sont leur point faible. Le motion sickness limite fortement lÂexpérience et lÂusage des environnements immersifs.
Le jeu qui sera développé permettra de réaliser une évaluation de ce phénomène grâce à des changements dans la taille de lÂavatar ( du type « Alice aux pays des merveilles »). LÂhistoire se déroule dans un contexte médiéval fantastique. Un voleur sÂinfiltre dans le laboratoire dÂune personne Âmagique pour lui dérober quelque chose (objet/formule...). LÂobjet étant bien caché, il lui faudra trouver des indices, en observant son environnement et les objets de près. Il lui faudra aussi résoudre des énigmes afin de parvenir à son but. Il dispose dÂune possibilité technologique ou magique de rétrécissement qui lui permet de fouiller certains endroits en étant petit, afin de trouver lÂobjet de son larcin.
Le projet se déroule sur diverses étapes :
· Prise en main du moteur Unreal.
· Etude du fonctionnement du casque immersif Oculus Rift et du capteur Leap Motion ainsi que des techniques dÂinteraction 3D sous-jacentes à ces technologies
· Création graphique des divers éléments du jeu
· Développement du jeu
· Etudes et dÂexpérimentations, visant à évaluer à la fois les aspects ergonomiques, les impératifs et les performances de ces dispositifs, ainsi que les paramètres nécessaires à une bonne évaluation
· Exploitation des résultats des expériences
Lien : - • Dernière mise à jour : 2015-11-28 09:25:21
Résumé : ** Titre long : Conception d'une application Android intelligente pour la génération et la création automatique des recettes de cocktails à partir d'une liste d'ingrédients fournie par l'utilisateur.
** Résumé : Malgré son apparente simplicité, ce sujet fait appel à des mécanismes complexes. La plupart des applications existantes sur le thème des cocktails utilisent une base de données des recettes, mais sont incapables de raisonner sur ces données et de produire des recettes innovantes.
La connaissance et la créativité humaine se présente en grande partie sous forme de textes même si d'autres ressources comme des réseaux sémantiques et des ressources de type ontologique sedéveloppent et certains, tels que le réseau Jeux de Mots, arrivent à maturité.
L'objectif de ce sujet est double :
** implémenter un algorithme de fouille efficace afin d'extraire les recettes qui correspondent au critères de l'utilisateur et en générer des variantes (proposer des ingrédients de substitution) dont la performance serait comparable à celle des applications existantes
** concevoir un système capable de proposer des recettes nouvelles à partir de la connaissance sur la composition et l'association entre les ingrédients et sur les techniques de préparation extraite à partir des textes grâce aux outils de TALN.
La performance de l'application dépendra de la capacité de l'équipe de proposer un algorithme consistant d'extraction des termes et des relations sémantiques entre les termes ainsi que d'effectuer les mesures pertinentes pour mettre en évidence les associations d'ingrédients possibles et leur proportions. La réussite du projet s'appuie également sur la qualité de gestion des problématiques liées au plurilinguisme, à la désambiguĂŻsation, aux entités nommées. Ressources (au choix, anglophones ou francophones) :
* pour les ressources anglophones, il est possible d'utiliser les ressources du challenge Computer Cooking Contest disponibles au http://wikitaaable.loria.fr/
Â* les ressources web francophones comme www.deliriumÂcocktails.com peuvent être récupérées facilement en vue de constitution d'un corpus
Le travail sera composé des tâches suivantes:
* état de l'art sur l'extraction des termes et relations sémantiques à partir de textes, la classification
* récupération des ressources textuelles
* proposition de l'algorithme « état de l'art » d'extraction de termes et relations sémantiques
* proposition de l'algorithme « état de l'art » de classification
* création de l'application Android intelligente
** proposition de l'architecture de l'application (schéma spécifiant les classes, les fonctions, les paramètres avec commentaire succinct)
** réalisation de l'application
** test et pistes d'amélioration
Le langage de programmation utilisé sera au choix des étudiants.
Lien : - • Dernière mise à jour : 2015-11-28 09:32:34
Résumé : Dans le cadre de recherches en bioinformatique, nous sommes amenées à explorer de grands graphes représentant des génomes. Les sommets de ces graphes sont des gènes et il existe une arête entre deux sommets si les gènes qu'ils représentent sont adjacents dans le génome. La structure de ces graphes est assez simple mais leur nombre de sommets très important rend leur visualisation et leur manipulation peut aisée.
Le but de ce TER est dans une première partie de recenser toutes les solutions existantes pour la visualisation et la manipulation de grands graphes et d'en faire un comparatif. Dans un deuxième temps, il s'agira de développer ou d'améliorer un logiciel pour répondre à nos besoins spécifiques.
Lien : http://www.pages-perso-severine-berard.univ-montp2.fr/Encadrements/TERM1_2015-16.pdf • Dernière mise à jour : 2015-11-28 09:42:02
Résumé : Les bactériophages sont des virus qui s'attaquent aux bactéries de façon spécifiques. Ils ont donc un intérêt primordial dans la lutte contre les bactéries, par exemple dans des structures hospitalières ou les réseaux d'eau potable. Ces virus ont un génome de taille relativement petite (mots de quelques dizaines de milliers de lettres). Bien que l'on dispose à l'heure actuelle d'un grand nombre de ces génomes, les informations qui permettent d'identifier les gènes sur ces génomes sont assez souvent incomplètes ou erronées. Une partie de l'explication réside dans le fait que chez les bactériophages, un même gène n'est pas forcément codé par des séquences similaires dans des génomes différents, même lorsque les espèces sont très proches. Nous disposons d'un outil qui permet d'aligner plusieurs génomes de bactériophages dans un graphe d'alignement multiple. Le graphe peut nous fournir un contexte permettant d'identifier, justement, quand deux séquences sont censées avoir la même fonction dans ces différents génomes. L'idée du TER est de donc tirer partie de l'information disponible dans ce graphe pour réaliser du transfert d'annotation (i.e. on sait que la séquence A a la fonction "lysogénie" dans tel génome, on sait que A est en correspondance avec B dans le graphe, donc la séquence B a également la fonction "lysogénie"). Les outils sont :
- les bases de données de génomes, avec leurs annotations (fichiers à plat récupérables et parsables à l'aide de la librairie Biopython)
- l'outil actuel d'alignement multiple (écrit en python), disponible à l'adresse : http://www.lirmm.fr/~swenson/alpha/alpha.htm
Les tâches dévolues au groupe seront donc :
1. Identification des annotations qui veulent dire la même chose (système expert, apprentissage, etc.)
2. Mettre au point la méthode pour transférer les annotations et proposer une mesure de confiance sur les propositions de transfert
3. L'intégrer de façon potentiellement interactive dans l'outil (permettre à l'utilisateur de modifier à la main ces annotations par exemple)
4. Tester sur des jeux de données réelles
NB : Aucune connaissance en biologie n'est requise !
Lien : - • Dernière mise à jour : 2015-11-28 09:47:03
Résumé : Dans ce projet, nous nous intéressons aux complexes simpliciaux géométriques que l'on peut représenter en 3D sans superpositions. Un complexe simplicial géométrique est couple (V,E), dont V est l'ensemble de points et E={e1,e2,...} est un ensemble de paires, triplets ou quadruplets de sommets. On appelle ces ensembles des simplexes, et suivant leur taille ils correspondent à des segments, des triangles ou des tétraèdres. On intéressera ici aux complexes sans croisements, càd dont les simplexes ne s'intersectent pas deux à deux.
Le premier objectif de ce projet est le développement d'un outil de visualisation (avec java3d de préférence).
- Cet outil devra permettre l'observation sous différents angles.
- Il devra aussi permettre de modifier la couleur et la transparence de certains simplexes.
Le second objectif de ce projet consiste à améliorer une représentation donnée. En effet certaines représentations sont très déséquilibrées, on peut avoir plusieurs points ayant des coordonnées très proches (et donc avoir du mal à les distinguer lorsque on observe le complexe dans sa totalité). Pour ce faire vous pourrez programmer l'heuristique suivante, et/ou proposer une heuristique alternative. L'heuristique proposée consiste, itérativement pour chaque point p n'étant pas sur l'enveloppe convexe, à déplacer p afin de maximiser le volume du plus petit tétraèdre auquel p appartient.
Prérequis :
- java3d, OpenGL
Lien : http://www.lirmm.fr/~goncalves/pmwiki/index.php?n=Main.SujetTER • Dernière mise à jour : 2015-11-28 09:48:41
Résumé : Classiquement, on représente les graphes planaires dans le plan de sorte que chaque arête corresponde à un segment, et en évitant que 2 arêtes ne se croisent. Le but de ce projet est de développer 2 algorithmes de dessin de graphe planaire.
Pour le premier algorithme, le graphe aura un sommet distingué C (son centre) et sera représenté dans un disque. Le centre sera placé au centre du disque, et les arêtes seront représentées par des arcs de cercles.
Pour le second algorithme, le graphe aura deux sommets distingués N et S (les pôles) et sera représenté sur une sphère. Les pôles seront placés aux pôles de cette sphère, et les arêtes seront ici aussi représentées par des arcs de cercles. Pour cette partie il faudra également développer un outil de visualisation, permettant l'observation de la sphère sous différents angles.
Prérequis :
- java3d, OpenGL
Lien : http://www.lirmm.fr/~goncalves/pmwiki/index.php?n=Main.SujetTER-2 • Dernière mise à jour : 2015-11-28 09:51:10
Résumé : LÂune des activités de la rénovation logicielle consiste à extraire le modèle métier enfoui dans le code, pour reconstruire une application en repartant de ce modèle. Dans ce projet nous nous focaliserons sur le modèle conceptuel, représentable sous forme dÂun diagramme de classes UML. Une première approche de la problématique a été réalisée les deux années précédentes durant des TER M1. Plusieurs solutions ont été proposées dans de précédents TER, basées respectivement sur lÂAnalyse Formelle de Concepts, une méta-heuristique (recuit simulé) et une méthode de regroupement hiérarchique. Le projet de cette année consistera à consolider ces trois approches.
Lien : https://www.lirmm.fr/users/utilisateurs-lirmm/marianne-huchard/enseignement/sujets-de-projets-2015-2016/ter-m1-renovation • Dernière mise à jour : 2015-11-30 11:28:19
Résumé : Le projet utiliserait la table numérique présente dans le nouvel espace "fontaine" de la cafétéria. L'idée serait d'utiliser l'importante surface tactile offerte par ce dispositif et de proposer une application conviviale.
Ce projet consisterait donc en la création, en premier lieu :
- d'un jeu de rythme musical, similaire à Dande Dance Revolution, Guitar hero, Osu!, Deemo, etc... à plusieurs. La table supportant 10 points de contact maximum, on peut imaginer que l'on peut réunir jusqu'à 10 étudiants/enseignants/membres du personnel autour de cette table.
Illustration :
Le principe est donc d'appuyer au bon moment sur l'un des cercles pour gagner des points.
- En deuxième partie, on peut aussi imaginer un algorithme analysant un fichier audio fournit par l'utilisateur, générant ainsi un niveau de jeu (en fonction des fréquences / patterns, l'algorithme générerait automatiquement des "notes" à des temps précis).
Lien : - • Dernière mise à jour : 2015-12-01 14:41:09
Résumé : Ce projet consiste en l'étude de l'activité humaine et en la conception et la réalisation d'une plateforme web permettant à des utilisateurs de gérer facilement leurs objectifs.
En premier lieu, l'étude de l'activité humaine étant un domaine vaste [3] et ancien [1], il s'agira de commencer par une étude bibliographique des outils et modèles existants. Ces modèles ont des finalités différentes : spécialisées et descriptives comme par exemple avec les business process models; prédictives de performances tels que dans le modèle Keystroke par exemple ou autre. Il s'agira de s'intéresser à un petit sous-ensemble de modèles et en priorité à deux approches très différentes et non exclusives : (1) des modèles permettant de construire des stratégies d'organisation à partir de la description d'un objectif et de stratégies utilisées par le passé de manière analogue à Dijkman et al [2] par exemple et, (2) la construction de stratégies prenant en compte le "contexte énergétique" de la personne selon des approches telles que celles préconisées pas Schwartz et MacCarthy [5].
En second lieu, il s'agira de concevoir et de réaliser une plateforme web comme un support à la réalisation d'objectifs en s'appuyant sur l'étude bibliographique et en choisissant de se positionner de manière originale par rapport aux nombreux outils existants tels, par exemple, que Wrike.
1. Bannon L., Cypher A., Greenspan S., and Monty M. "Evaluation and Analysis of User's Activity Organization". In Proceedings of CHI, 1983 (Boston, December). ACM, New York, 1983. pp. 54-57.
2. R. Dijkman, M. Dumas, L. GarcĂa-Bañuelos. Graph Matching Algorithms for Business Process Model Similarity Search. In Proceedings of the 7th International Conference on Business Process Management (BPM), Ulm, Germany, September 2009. Springer Verlag.
3. Fabio PaternĂČ. 2002. Tools for Task Modelling: Where we are, Where we are headed. In Proceedings of the First International Workshop on Task Models and Diagrams for User Interface Design (TAMODIA '02), Costin Pribeanu and Jean Vanderdonckt (Eds.). INFOREC Publishing House Bucharest 10-17.
4. M. Rosemann. Potential Pitfalls of Process Modelling (Part A and B). Business Process Management Journal,12(3): 377-384, 2006.
5. T. Schwartz, C. MacCarthy, Manage your energy not your time, Harvard Business Review, October 2007, https://hbr.org/2007/10/manage-your-energy-not-your-time
6. Using the Keystroke-Level Model to Estimate Execution Times, Kieras, D., University of Michigan - 2001.
7. Wrike, https://www.wrike.com/fr/tour/worksmart/.
Lien : - • Dernière mise à jour : 2015-12-01 16:16:20
Résumé : HILECOP (High Level hardware Component Programming) est un logiciel développé sous Eclipse au sein de lÂéquipe Inria DEMAR (Déambulation et Mouvement Artificiel).
Il permet de modéliser des systèmes numériques complexes à lÂaide de composants dont le comportement est décrit par des réseaux de Petri.
Le logiciel est utilisé dans lÂéquipe pour modéliser puis programmer sur FPGA (circuits intégrés reprogrammables) le comportement et le contrôle de microélectrodes implantées chez des patients tétraplégiques, amputés ou handicapés afin de leur permettre de restaurer des fonctions motrices ou sensorielles, ou bien de diminuer certaines douleurs.
De récents travaux sur lÂarchitecture du logiciel ont modifié le modèle Ecore de lÂapplication, rendant dÂanciens projets incompatibles avec la nouvelle version. LÂobjectif du TER est donc de développer, en coopération avec lÂéquipe, un outil de migration permettant de rendre un ancien projet HILECOP compatible avec la version actuelle.
LÂoutil pourra être :
- soit intégré au logiciel via un plugin Eclipse
- soit externe au logiciel sous forme dÂune application
Ce travail demandera dÂétudier les différences de modèles entre les versions puis dÂimaginer et de mettre en Âuvre des transformations de modèles efficaces pour convertir un projet HILECOP. Ces transformations pourront se faire directement en manipulant les modèles en java + XTend ou bien en effectuant une analyse lexicale et syntaxique des fichiers XML les représentants.
Compétences requises :
- maîtrise dÂun langage de modélisation (UML, Ecore) et de la POO
- pratique de java
- Rigueur et motivation sont exigées
- Le code devra être commenté et documenté
Mots-clés:
Ecore, model transformation, plugin Eclipse, java
Lien : - • Dernière mise à jour : 2015-12-02 16:14:00
Résumé : Les contraintes d'architecture [1] permettent de spécifier de façon précise et vérifiable certaines décisions de conception, comme le choix d'un patron de conception dans le développement d'une application à objets. Nous avons proposé dans le passé un langage pour la spécification de ces contraintes dÂarchitecture et une méthode pour la génération de code Java à partir de celles-ci [2].
LÂidée dans ce projet est de développer une méthode pour la mise en Âuvre de ce code généré. Dans un premier temps, il faudrait identifier automatiquement les instructions, dans le code de l'application, qui ont un effet de bord sur la structure de celle-ci. Ensuite, il faudrait tisser autour de ces instructions des aspects dans lesquels il faudrait exécuter le code généré à partir des contraintes.
La méthode doit être implémentée en Java et expérimentée pour un certain nombre de patrons de conception.
[1] C. Tibermacine. Software Architecture 2, chapter Architecture Constraints, pages 37-90. John Wiley and Sons, New York, USA, 2014.
[2] S. Kallel, C. Tibermacine, B. Tramoni, C. Dony, and A. Hadj Kacem. Automatic translation of OCL meta-level constraints into Java meta-programs. In Proceedings of the 14 th International Conference on Software Engineering Research, Management and Applications (SERAÂ15), Hammamet, Tunisia. Springer, May 2015.
Pré-requis : HLIN 505 (Programmation par objets en Java)
Lien : - • Dernière mise à jour : 2015-12-04 09:44:20
Résumé : Compo est un nouveau langage de description d'architectures et de
programmation par composants développé au LIRMM.
Compo unifie les différentes modèles de composants existants, explicite les architectures de composition;
c'est en cela aussi un langage de description d'architecture. Il est réflexif et c'est en cela une plate forme pour l'ingénierie dirigée par les modèles.
Le sujet du TER consiste à concevoir et implanter une nouvelle interface graphique associé à la partie description d'architecture du langage, qui pourra
elle-même être améliorer par analogie avec ce que proposent d'autres ADL.
tout est là : http://www.lirmm.fr/~dony/enseig/IL/TER-M1-56.html
Lien : http://www.lirmm.fr/~dony/enseig/IL/TER-M1-56.html • Dernière mise à jour : 2015-12-07 20:30:34
Résumé : LÂobjectif du stage est dÂeffectuer une étude comparative des systèmes de traitement de données RDF dans lÂétat de lÂart. Cette étude comprend (i) une veille scientifique des résultats publiés concernant des expériences effectuées sur des jeux de données standard et (ii) une analyse expérimentale des systèmes existants, par rapport à un jeu de données réelles contenant des données scientifiques propres à une application développée par lÂINRA (Institut National Recherche Agronomique), dont les traitements sont très spécifiques.
LÂobjectif final de lÂétude est d'aider à reconnaitre le système le plus adapté à la gestion de données RDF, selon le contexte applicatif.
Bibliographie
http://www.w3.org/wiki/RdfStoreBenchmarking
Lien : www.lirmm.fr/~ulliana • Dernière mise à jour : 2015-12-08 16:59:27
Résumé : ** Type de jeu
ÂRéflexion, action-Âaventure : inspirations Â> Legend of Zelda, The Binding of Isaac, Child of Light ...
ÂPlateforme et Controles : Jeu PC , manette ou sourisÂclavier (a voir pour autres versions)
ÂMoteur : Unity3D
ÂOutils de développement: ÂBitBucket pour le versionnage et le partage de code
Skype et facebook pour la comunication de base
** Synopsis
Après une catastrophe planétaire, les hommes se sont réfugiés sous terre pour survivre. Longtemps après, des peuplades vivent encore mais sont revenues à un stade plus primitif (détérioration des sens, de la culture et de la communication).
Le protagoniste du jeu appartient à un de ces peuples ayant survécu. Un jour, il découvre par inadvertance une voie dissimulée et décide de sÂy aventurer. Il y découvre des indications le poussant à continuer dÂexplorer cette voie.
** Gameplay
Le gameplay se base sur la découverte dÂobjets permettant de combattre et/ou de résoudre des énigmes pour avancer dans les salles.
Les objets découverts permettent de réintégrer leurs couleurs respectives.
** Technique
Génération procédurale des niveau et de lÂagencement entre les salles.
Intégration dÂIA ( sous forme dÂagent communiquant entre eux).
Découverte progressive des couleurs, intégration de lumières adaptées (Shaders).
ÂThèmes musicaux évolutifs par addition de pistes.
** Détails sur la direction artistique
ÂAu début, le jeu propose des nuances de gris et des couleurs pâles et faiblement contrastés. Chaque objet découvert permet de faire évoluer progressivement les couleurs du niveau en question en apportant les nuances de sa couleurs le long de la découvertes des salles.
De la même manière, chaque niveau possède un thème musical qui lui est propre. Les pistes sonores qui composent le thème sÂajoute progressivement en fonction de lÂavancée du joueur dans le niveau. Les Boss possèdent leur propre thème.
Lien : - • Dernière mise à jour : 2015-12-14 11:47:11
Résumé : L'objectif du stage est de concevoir et de réaliser un module de calcul et de visualisation graphique d'indicateurs permettant de comparer des procédés de transformation d'une biomasse en glucose à partir de données scientifiques. Ce module sera intégré dans un outil d'aide à la décision en bioraffinerie développé par l'INRA. Les données à utiliser dans le calcul sont stockées dans une base RDF accessible par un SPARQL end-point.
Lien : www.lirmm.fr/~ulliana • Dernière mise à jour : 2015-12-14 12:43:30
Résumé : Le but de ce projet est de déevelopper un logiciel de créeation de portfolio pour artistes (photographes, peintres,...) grâce à un éediteur WYSIWYG (What You See Is What You Get).
Lien : http://www.lirmm.fr/~lafourcade/TERM1/SUJ2016/TERM1_2016_portfolio.pdf • Dernière mise à jour : 2016-01-06 22:05:27
Résumé : La but de ce projet est de réaliser une application ludique et pédagogique pour Android, se basant sur lÂimage et son traitement. LÂintérêt premier est de réaliser un travail complet le plus proche possible de la vie professionnelle, de la conception jusquÂà la mise en ligne et donc de voir tous les enjeux soulevés par cette démarche.
Dans un premier temps lÂobjectif sera de trouver un domaine dÂapplication (par exemple la santé) oĂč nous pouvons utiliser lÂimage et dÂy chercher un angle dÂattaque puis de dégager un véritable sujet avec ses contraintes précises (par exemple la mémoire), en consultant des professionnels dans la matière (des chercheurs) pour que lÂapplication fonctionne sur de vrais mécanismes.
Dans un second temps nous chercherons les produits existants pour pouvoir étudier le marché et développer notre idée dÂapplication novatrice et originale, avant de la soumettre de nouveau aux professionnels. Nous créerons notre concept et concevrons nos algorithmes.
Ensuite, nous pourrons commencer la programmation de lÂapplication, tout en gardant à lÂesprit la modularité pour de futures extensions des fonctionnalités. C'est en effet un enjeu que de créer une application pouvant évoluer au grès des années et pouvant être reprise par une tierce personne.
Pour finir nous nous attaquerons à la mise en ligne sur le store Android de notre travail.
Ce sujet nous apprendra de plus le côté entrepreneur avec son côté étude de marché avant de se lancer, à bien dialoguer et répondre aux attentes de professionnels (avec une démarche scientifique) et donc la conception complète dÂun logiciel, de lÂidée à la commercialisation, tout en respectant un modèle clair de codage rendant l'évolution de l'application facile, propre et effectuable par n'importe quel programmeur voulant pousser nos traveaux vers un plus haut niveau.
** prérequis :
*Vouloir mener un projet du début jusqu'à la fin.
*Ătre intéressé par le traitement d'image.
*Avoir une démarche d'entrepreneur.
*Avoir une démarche scientifique.
*Travailler en dialogue avec des professionnels.
*Vouloir découvrir de nouvelles facettes de la programmation.
*Ătre motivé.
Lien : - • Dernière mise à jour : 2016-01-06 22:38:38
Résumé : Il existe un jeu web s'appelant Curve Fever (http://curvefever.com). Mais il ne propose pas d'IA contre lesquels on peut jouer. Curve ferver est un jeu 2D multijoueurs s'inspirant du célèbre jeu "Snake". En effet le but du jeu est dÂéliminer vos adversaires en les encerclant ou en les forçant à toucher votre sillon.
Le but de ce TER est dans un premier temps de redévelopper ce jeu en Javascript et d'y ajouter des IA afin de pouvoir jouer à un ou plusieurs joueurs contre un ou plusieurs IA. Pour cela, nous allons nous intéresser à un problème très courant dans les IA des jeux vidéo : la recherche de chemin (ou « pathfinding »). Le problème est simple, comment se déplacer dÂun point A à un point B avec, si possible, le « meilleur » itinéraire ? Pour cela nous étudierons l'algorithme de Dijkstra ainsi que ses améliorations. L'algorithme de A* dit "informé" utilisant des heuristiques qui estime la distance à lÂarrivée. Contrairement à lÂalgorithme de Dijkstra (dit « aveugle »), A* oriente sa recherche au lieu dÂexplorer toutes les zones. Ainsi que l'algorithme D* qui permet de redéfinir le chemin si lÂIA rencontre un obstacle.
http://qiao.github.io/PathFinding.js/visual/
La difficulté sera de développer un algorithme permettant à l'ordinateur de jouer en temps réel et de pouvoir jouer contre celui ci.
Lien : - • Dernière mise à jour : 2016-01-20 10:13:15
Résumé : Plusieurs frameworks Javascript déclinant le modèle MVC (notamment vers un modèle MVVM) sont à ce jour extrêmement populaires.
Nous pouvons par exemple citer :
- EMBER
- BACKBONE
- REACT
Le problème est qu'il est difficile de les comparer, les quelques essais de mises en perspectives existant sur le web étant partiels et assez vagues.
Le sujet de ce TER est donc au travers d'une application "témoin" (un réseau social spécialisé (*)) d'en faire une comparaison sur tous les plans (modèle, efficacité, richesse des UI, documentation...), les applications clientes ainsi développées se connectant toutes au même serveur Node que vous réaliserez en commun.
Chaque membre du groupe aura en charge un framework particulier.
(*) J'aimerais bien partir sur un réseau social spécialisé sur la cuisine moléculaire mais cela sera négociable...
Lien : - • Dernière mise à jour : 2016-04-14 09:17:51
Mathieu Lafourcade, janvier 2018 (merci d'envoyer toute remarque ou question sur les TERs à mathieu.lafourcade avec comme sujet du mail "[TER_M1_2018] Question") - Merci à Mountaz qui est l'origine du contenu et du style de cette page.