• Aucun résultat trouvé

Afin de tirer parti du succès des plateformes des Réseaux Sociaux, beaucoup de gens essaient de mettre en oeuvre des applications sociales. Elles sont des applications reposant sur des interactions avec les Réseaux Sociaux et exploitent leurs infrastructures comme moyen de dialogue avec les utilisateurs finaux. En effet, ces plateformes sont conçues

pour prendre en charge un nombre élevé d’utilisateurs et de contenus. Par conséquent, les applications sociales peuvent utiliser l’infrastructure des Réseaux Sociaux pour atteindre plus d’utilisateurs. Donc, il s’agit bien d’une interface front-end robuste. En outre, divers services et applications peuvent réutiliser les données sociales et les informations dispo-nibles dans les réseaux. L’échange de contenu entre les services est facilité grâce à une telle portabilité. Cette dernière nécessite des mécanismes de représentation qui sont four-nis grâce aux formalismes de web sémantique, permettant aux personnes et aux ordina-teurs de travailler en coopération. En particulier, FOAF fournit une solution de portabilité en termes de profils d’utilisateurs et de connexions réseau.

Cependant, développer des applications sociales a des aspects particuliers qui sont différents des applications web génériques, par exemple :

• Généralement dans les Réseaux Sociaux seule une partie des données est publique. Les applications sociales ont donc besoin d’obtenir des autorisations spécifiques des utilisateurs afin d’accéder au reste de données privées demandées.

• L’accès aux ressources des Réseaux Sociaux nécessite l’utilisation des API de dé-veloppement correspondantes. L’inconvénient que les développeurs ont besoin de gérer des concepts de programmation complexes en manipulant ces interfaces. • Les applications sociales doivent s’authentifier auprès des Réseaux Sociaux avec

lesquels elles vont interagir. Chaque Réseau Social possède son propre processus d’authentification pour les applications.

1.3.1 Qui a besoin d’implémenter des applications sociales ?

Les besoins de construction d’applications sociales peuvent être classés dans les caté-gories suivantes :

• Applications de Crowdsourcing : ces applications se basent sur la répartition des tâches entre un grand nombre de participants. Elles peuvent être construites à travers les Réseaux Sociaux pour atteindre plus d’utilisateurs.

• Diffusion ciblée : ces applications sont utilisées par des utilisateurs voulant envoyer une requête à un groupe d’amis.

• Interfaces utilisateur pour les systèmes d’entreprises : certaines entreprises uti-lisent des Réseaux Sociaux comme moyen d’accès à leurs systèmes d’informations. L’avantage est que les utilisateurs n’ont pas besoin d’installer un nouveau logiciel pour interagir avec ces systèmes. Ils utilisent leurs comptes des sites des Réseaux Sociaux pour l’interaction.

• Création de contenus guidés : ces applications permettent de guider les utilisateurs à travers les processus de création de contenus proposés.

• Applications pour des situations inattendues : ces applications permettent de dif-fuser des informations lors des catastrophes naturelles ou la réaffectation des vols en cas d’annulations ou grèves, etc. Les Réseaux Sociaux sont populaires et sup-portent de fortes charges donc les utilisateurs n’auraient pas besoins d’installer de nouvelles applications.

• Applications Ad-hoc collaboratives : des groupes d’utilisateurs finaux ont besoin d’utiliser certains Réseaux Sociaux pour collecter des données structurées sous forme d’informations qui peuvent être par la suite traitées automatiquement. Ces applications comprennent celles d’organisation événementielle ou de votes. Les premières permettent aux utilisateurs de définir des messages d’invitation et de les programmer pour une diffusion périodique via les Réseaux Sociaux pour des événements sportifs, de jeux éducatifs ou d’autres. Les secondes présentent aux utilisateurs des listes d’objets et leurs demandent de sélectionner un ou plusieurs d’entre eux.

Dans la plupart du temps, la construction des applications utilisant les Réseaux So-ciaux se fait manuellement sans support automatisé. Dans ce contexte, nous observons un besoin croissant d’automatiser cette construction.

Dans le cadre de notre thèse, nous visons à générer des applications interactives à contenus personnalisés basées sur les Réseaux Sociaux en suivant une approche de type MDA12 (Model Driven Architecture). Ce type d’approche permet la spécification des ap-plications à partir de modèles conceptuels de manière abstraite. Une suite de transforma-tions automatiques ou semi-automatiques est par la suite appliquée à travers des spéci-fications afin de générer l’interface finale. Ainsi l’automatisation de certaines tâches du processus de développement permet d’assurer une qualité plus fiable des interfaces et de réduire l’intervention des concepteurs.

MDA, standard lancé par OMG13, se base sur le paradigme de l’Ingénierie Dirigée par les Modèles. Cette discipline fait référence à l’utilisation des modèles, qui sont des abs-tractions des éléments du monde réel, comme élément principal dans le cycle de vie du logiciel. Ces modèles, qui sont les piliers de cette technologie, sont normalement moins liés à la technologie et plus proches du domaine. Ils permettent de modéliser des systèmes complexes en un temps de développement plus réduit. Selon OMG 2003, un modèle est

12. http ://www.omg.org/mda/ 13. http ://www.omg.org

une description ou une spécification d’un système et de son environnement dans un but bien déterminé. Un modèle est souvent présenté comme une combinaison de dessins et de textes. Le texte peut être dans un langage de modélisation ou dans une langue naturelle. La technique utilisée pour la définition des relations entre les éléments d’un modèle et sa syntaxe abstraite est la méta-modélisation. Cette dernière est une abstraction du modèle lui-même en définissant ses propriétés.

Selon OMG 2006 un méta-modèle est défini comme un modèle définissant le langage per-mettant d’exprimer un modèle.

La solution proposée dans notre thèse est de générer des systèmes interactifs personnalisés qui s’adaptent aux besoins des utilisateurs en termes de leurs intérêts et leurs contextes. Dans ce mémoire, nous adoptons la définition de la personnalisation proposée par [ Bros-sard,2008], [Bacha et al.,2011].

Définition 10 (Personnalisation). La personnalisation est la capacité de fournir à un utilisateur, à chaque instant, des contenus et des services adaptés à ses besoins et à ses attentes en utilisant des interactions homme-machine appropriées.

Ce processus peut être appliqué à plusieurs niveaux qui sont les suivants [Abbas,2008,

Kobsa et al.,2001] :

• Le contenu : il s’agit d’adapter le contenu aux besoins et intérêts de l’utilisateur ainsi que son contexte ;

• La navigation : ce type de personnalisation permet d’orienter l’utilisateur, en fonc-tion de sa connaissance par le système, afin d’éviter les chemins lui menant à des informations non pertinentes ;

• La présentation : elle consiste à adapter le format des éléments d’interaction de l’interface de l’application en tenant compte des contextes et besoins des utilisa-teurs ;

• Les fonctionnalités : il s’agit d’adapter le système en fonction de sa connais-sance des besoins fonctionnels de l’utilisateur afin de faciliter l’accomplissement des tâches ;

• La structure : la personnalisation conduit à la structure d’un site web c’est-à-dire aux liens entre les pages qui le composent.

Dans le cadre de nos travaux, nous nous intéressons à la personnalisation du contenu dans la génération des applications interactives en tenant compte des données de contexte de l’utilisateur. Ces dernières permettent de définir les mécanismes de personnalisation.

Cette dernière est sensible aux différents contextes d’un utilisateur. Il convient donc de spécifier une définition pouvant être utilisée de manière normative dans le domaine de l’informatique contextuelle.

Définition 11 (Contexte). Le contexte est une information qui peut être utilisée pour ca-ractériser la situation d’une entité (une personne, un lieu ou un objet) considérée comme pertinente pour l’interaction entre un utilisateur et une application, y compris l’utilisateur et les applications eux-mêmes [Abowd et al.,2000].

Certains facteurs peuvent influencer le processus de personnalisation du contenu, qui sont les suivants :

• Les facteurs d’information ou de contenu : sont les facteurs qui représentent les caractéristiques des contenus comme le type et méta-données d’un document. Ces propriétés permettent de spécifier la manière de personnalisation de l’information ; • Les facteurs liés aux utilisateurs : ils représentent l’ensemble des centres des

in-térêts, des préférences et caractéristiques des utilisateurs permettant de décrire la manière avec laquelle la personnalisation de l’information doit être effectuée ; • Les facteurs liés à la méthode de personnalisation : différentes méthodes de

per-sonnalisation peuvent être utilisées ce qui explique la différence dans les résultats obtenus ;

• Les facteurs de contexte : ils représentent des facteurs des environnements tech-niques et physiques de l’utilisateur et du système.

Plusieurs méthodes peuvent être utilisées pour la mise en place de la personnalisation du contenu [Doucet et al.,2004],[Abbas,2008],[Ioannidis and Koutrika,2005] :

• La recommandation : cette méthode permet de recommander à un utilisateur des informations en se référant aux différentes expériences des autres utilisateurs avec le système ;

• La recherche personnalisée de l’information : elle consiste à satisfaire un besoin d’un utilisateur exprimé par une requête sur un ensemble de documents appelés corpus ;

• Le remplissage automatique des formulaires : il s’agit de remplir automatique-ment les formulaires qui sont traditionnelleautomatique-ment remplis manuelleautomatique-ment par les uti-lisateurs. Ce remplissage tient compte des profils de ces derniers ainsi que leurs contextes ;

• Le filtrage de l’information : il s’agit d’un processus permettant d’extraire des informations pertinentes et d’éliminer celles non pertinentes parmi l’ensemble des informations sollicitées par l’utilisateur [Hanani et al.,2001]. Il s’avère une solution efficace au problème de surcharge d’information.