{"id":2640,"date":"2016-09-18T20:31:48","date_gmt":"2016-09-18T18:31:48","guid":{"rendered":"http:\/\/blog.nebule.org\/?p=2640"},"modified":"2016-09-18T20:31:48","modified_gmt":"2016-09-18T18:31:48","slug":"ajout-demotions-sur-des-objets-suite-5","status":"publish","type":"post","link":"http:\/\/blog.nebule.org\/?p=2640","title":{"rendered":"Ajout d&rsquo;\u00e9motions sur des objets \u00e2\u20ac\u201c suite 5"},"content":{"rendered":"<p style=\"text-align: justify;\">Suite des articles sur l&rsquo;<a title=\"Ajout de sentiments sur des objets\" href=\"http:\/\/blog.nebule.org\/?p=1480\">Ajout d&rsquo;\u00e9motions sur des objets<\/a> et suites <a title=\"Ajout d'\u00e9motions sur des objets \u00e2\u20ac\u201c suite\" href=\"http:\/\/blog.nebule.org\/?p=1484\">1<\/a> <a title=\"Ajout d'\u00e9motions sur des objets \u00e2\u20ac\u201c suite 2\" href=\"http:\/\/blog.nebule.org\/?p=1506\">2<\/a> <a title=\"Ajout d'\u00e9motions sur des objets \u00e2\u20ac\u201c suite 3\" href=\"http:\/\/blog.nebule.org\/?p=1515\">3<\/a> <a title=\"Ajout d'\u00e9motions sur des objets \u00e2\u20ac\u201c suite 4\" href=\"http:\/\/blog.nebule.org\/?p=1531\">4<\/a>, et <a title=\"Liens d'\u00e9motions\" href=\"http:\/\/blog.nebule.org\/?p=1499\">Liens d&rsquo;\u00e9motions<\/a>.<\/p>\n<p style=\"text-align: justify;\">Les \u00e9motions sont une fa\u00e7on de marque un objet avec les sentiments qu&rsquo;il inspire \u00e0 un \u00eatre humain. Les \u00e9motions sont plut\u00f4t subjectives l\u00e0 o\u00f9 les avis sont beaucoup plus objectifs. L&rsquo;intensit\u00e9 que l&rsquo;on peut donner \u00e0 une \u00e9motion est toujours strictement positive, le sens positif ou n\u00e9gatif est d\u00e9j\u00e0 port\u00e9 par l&rsquo;\u00e9motion elle-m\u00eame.<\/p>\n<p>Les \u00e9motions \u00e9taient fonctionnelles sur les objets dans la version <a title=\"sylabe 2014\" href=\"http:\/\/2014.sylabe.org\" target=\"_blank\">2014<\/a> de <a title=\"sylabe\" href=\"http:\/\/www.sylabe.org\" target=\"_blank\">sylabe<\/a>. Mais le code ayant \u00e9t\u00e9 enti\u00e8rement repris en <em>php<\/em> orient\u00e9 objet elles n&rsquo;avaient pas encore \u00e9t\u00e9 r\u00e9-impl\u00e9ment\u00e9es. Le n\u00e9cessaire est en cours de remise en place directement dans la librairie afin que les \u00e9motions sur les objets soient utilisables dans toutes les applications.<\/p>\n<p style=\"text-align: justify;\">Les avis ne sont pas maintenus.<\/p>\n<p style=\"text-align: justify;\">En parall\u00e8le, la r\u00e9flexion \u00e0 long terme continue sur la pond\u00e9ration des objets en vue de leur suppression automatique au bout d&rsquo;une certain temps. C&rsquo;est la fonction d&rsquo;oublie. Il faut que cette pond\u00e9ration soit ais\u00e9e \u00e0 utiliser, et surtout qu&rsquo;elle ait du sens pour que l&rsquo;utilisateur prenne le temps de le faire. Il est clair qu&rsquo;un champs de quantification de l&rsquo;importance d&rsquo;un objet est difficile \u00e0 appr\u00e9hender et ne sera pas utilis\u00e9. La gestion des \u00e9motions devient en fait la solution \u00e9vidente de pond\u00e9ration. De plus, la pond\u00e9ration d&rsquo;un objet, qui repr\u00e9sente en fait son importance, peut influencer et \u00eatre influenc\u00e9e par l&rsquo;importance des objets qui lui sont li\u00e9s.<br \/>\nSans pond\u00e9ration, la gestion de l&rsquo;oublie sera chaotique et peu fiable, donc pas utilis\u00e9e.<\/p>\n<p style=\"text-align: justify;\">La <strong>facilit\u00e9 d&rsquo;usage<\/strong> et la <strong>pertinence<\/strong> de la solution de gestion des \u00e9motions et leurs pond\u00e9rations sont donc <strong>d\u00e9terminantes<\/strong> pour leur <strong>adoption<\/strong> et leur <strong>utilisation<\/strong> mais aussi plus tard pour la <strong>gestion de l&rsquo;oublie<\/strong>.<\/p>\n<p style=\"text-align: justify;\">Il y a plusieurs fa\u00e7ons d&rsquo;aborder la pond\u00e9ration avec les \u00e9motions.<!--more--><\/p>\n<h2 style=\"text-align: justify;\">Solution 1 : \u00e9motions \u00e0 \u00e9tats sans pond\u00e9ration d&rsquo;intensit\u00e9<\/h2>\n<p style=\"text-align: justify;\">Dans sa version 2014, la pond\u00e9ration \u00e9tait uniquement \u00e0 \u00e9tat. C&rsquo;est \u00e0 dire que l&rsquo;on peut ajouter \u00e0 un objet chaque \u00e9motion individuellement mais sans valeur d&rsquo;intensit\u00e9 des diff\u00e9rentes \u00e9motions. Chaque \u00e9motion est donc dans un \u00e9tat activ\u00e9 ou non.<\/p>\n<p style=\"text-align: justify;\">Cette solution est facile \u00e0 mettre en place et elle est claire pour l&rsquo;utilisateur. Elle peut se fondre discr\u00e8tement dans la page en une seule ligne avec l&rsquo;affichage d&rsquo;un objet.<br \/>\nLe lien utilis\u00e9 par \u00e9motion est simplement un lien de type <code>f<\/code> avec l&rsquo;objet concern\u00e9 en <em>source<\/em> et l&rsquo;\u00e9motion en <em>cible<\/em>. Un lien de type <code>x<\/code> suffit \u00e0 supprimer l&rsquo;\u00e9motion.<\/p>\n<p style=\"text-align: justify;\">Mais elle n&rsquo;offre aucune pond\u00e9ration donc on peut avoir un effet <em>facebook<\/em> avec la moiti\u00e9 des articles que l&rsquo;on marque <em>J&rsquo;aime<\/em>. A long terme il est impossible de d\u00e9terminer ce qui est important de garder ou pas pour une entit\u00e9, seule le nombre de <em>J&rsquo;aime<\/em> global donne une valeur mais seulement pour le groupe et non pour un individu.<br \/>\nDe plus, la suppression d&rsquo;une \u00e9motion par une entit\u00e9 supprime de fait aussi la m\u00eame \u00e9motion que d&rsquo;autres entit\u00e9s aurait pu marquer avant. C&rsquo;est \u00e0 relativiser puisque la suppression ne sera pas pris en compte au del\u00e0 d&rsquo;un cercle tr\u00e8s proche d&rsquo;entit\u00e9s amis.<\/p>\n<h2 style=\"text-align: justify;\">Solution 2 : \u00e9motions \u00e0 pond\u00e9ration d&rsquo;intensit\u00e9<\/h2>\n<p style=\"text-align: justify;\">Il est possible de modifier la fa\u00e7on de g\u00e9rer les \u00e9motions par \u00e9tat et de permettre en plus de g\u00e9rer une valeur pour chaque \u00e9motions. Le champs m\u00e9ta \u00e9tait libre dans la pr\u00e9c\u00e9dente solution, il peut \u00eatre utilis\u00e9 pour la pond\u00e9ration. Cependant, l&rsquo;ordre logique d&rsquo;ordonnancement des liens serait plut\u00f4t d&rsquo;avoir la valeur de la pond\u00e9ration en cible et le type d&rsquo;\u00e9motion en m\u00e9ta (contextualisation).<\/p>\n<p style=\"text-align: justify;\">On r\u00e9sout partiellement le probl\u00e8me de la suppression en limitant les effets de bord de celle-ci sur les autres entit\u00e9s. Mais ce n&rsquo;est pas absolu.<\/p>\n<p style=\"text-align: justify;\">Le calcul de l&rsquo;importance de l&rsquo;objet peut facilement se calculer en moyennant les pond\u00e9rations des \u00e9motions utilis\u00e9es sur l&rsquo;objet, et ceci au niveau de l&rsquo;individu comme du groupe.<\/p>\n<p style=\"text-align: justify;\">Cependant cette solution impose dans l&rsquo;interface d&rsquo;avoir quelque chose de plus complexe. Il faut non seulement pr\u00e9senter les diff\u00e9rentes \u00e9motions, mais aussi permettre pour chacune de choisir une valeur de pond\u00e9ration. Et l&rsquo;affichage doit aussi indiquer la valeur de la pond\u00e9ration actuelle pour l&rsquo;individu et\/ou pour le groupe. Cette affichage devient encombrant et difficile \u00e0 synth\u00e9tiser.<\/p>\n<h2 style=\"text-align: justify;\">Solution 3 : \u00e9motions \u00e0 \u00e9tats et pond\u00e9ration d&rsquo;intensit\u00e9 globale<\/h2>\n<p style=\"text-align: justify;\">Il est aussi possible de garder des \u00e9motions d\u00e9finies par \u00e9tat et de g\u00e9rer une pond\u00e9ration d&rsquo;intensit\u00e9 globale des \u00e9motions. Ainsi, ce n&rsquo;est plus chaque \u00e9motions qui a une intensit\u00e9 mais toutes les \u00e9motions activ\u00e9es ont cette intensit\u00e9.<\/p>\n<p style=\"text-align: justify;\">On revient sur les liens des \u00e9motions sans pond\u00e9ration avec les avantages et inconv\u00e9nients et on ajoute un autre lien pour g\u00e9rer en quelque sorte l&rsquo;intensit\u00e9 de l&rsquo;\u00e9motion g\u00e9n\u00e9rale.<\/p>\n<h2 style=\"text-align: justify;\">Compl\u00e9ments de pond\u00e9ration<\/h2>\n<p style=\"text-align: justify;\">Le syst\u00e8me de liens des \u00e9motions dans la version 2014 cumule toutes les \u00e9motions de toutes les entit\u00e9s sur un objet. Lors que l&rsquo;on a plac\u00e9 une \u00e9motion mais que l&rsquo;on d\u00e9cide de la retirer, le m\u00e9canisme de lien fait que cette \u00e9motion est marqu\u00e9 supprim\u00e9 non seulement pour soi mais aussi pour toutes les entit\u00e9s qui l&rsquo;avaient pr\u00e9c\u00e9demment activ\u00e9. Cela fausse le r\u00e9sultat du calcul des \u00e9motions sur un objet puisque l&rsquo;on perd ainsi l&rsquo;information pour d&rsquo;autres entit\u00e9s.<br \/>\nLa solution \u00e0 ce probl\u00e8me particulier est d&rsquo;utiliser le champs m\u00e9ta des liens des \u00e9motions avec une valeur non nulle et non constante. Ainsi la suppression d&rsquo;une \u00e9motion se limitera \u00e0 un lien bien cibl\u00e9. Et en plus on peut toujours marquer supprim\u00e9 l&rsquo;\u00e9motion d&rsquo;une autre entit\u00e9, ce qui a bien s\u00fcr une valeur relative pour les autres entit\u00e9s.<\/p>\n<p style=\"text-align: justify;\">Le marquage de la valeur de la pond\u00e9ration d&rsquo;une \u00e9motion n\u00e9cessite la cr\u00e9ation de l&rsquo;objet de cette valeur. On peut acc\u00e9l\u00e9rer le traitement et r\u00e9duire le nombre d&rsquo;objet en utilisant le champs de pond\u00e9ration non pas comme hash d&rsquo;objet mais directement comme valeur. Mais ce n&rsquo;est pas ce qui est pr\u00e9vu dans le registre des liens \u00e0 part pour le lien de dissimulation. Pour que ce soit propre, il faudrait un nouveau type de lien avec une gestion sp\u00e9cifique de celui-ci.<br \/>\nLa gestion des \u00e9motions prend une importance qui suffit \u00e0 se demander si la cr\u00e9ation d&rsquo;un nouveau type de lien ne serait pas une fa\u00e7on de faciliter la gestion des \u00e9motions, mais surtout de faciliter apr\u00e8s la gestion de l&rsquo;oublie.<\/p>\n<h2 style=\"text-align: justify;\">Solution retenu<\/h2>\n<p style=\"text-align: justify;\">Pour l&rsquo;instant, la r\u00e9-impl\u00e9mentation se fait sur la troisi\u00e8me solution. C&rsquo;est \u00e0 dire des liens d&rsquo;\u00e9motions sans pond\u00e9ration et avec en plus un lien d&rsquo;intensit\u00e9 globale de l&rsquo;\u00e9motion.<\/p>\n<p>On prend en compte le probl\u00e8me de suppression sans effet collat\u00e9ral en remplissant le champs m\u00e9ta avec le hash de l&rsquo;entit\u00e9 signataire. Ce champs devra \u00eatre v\u00e9rifi\u00e9 comme \u00e9gal au champs signataire. Ainsi la suppression est cibl\u00e9.<\/p>\n<p style=\"text-align: justify;\">Les liens des \u00e9motions sont de type <code>f<\/code> avec comme <em>source<\/em> l&rsquo;objet concern\u00e9, comme <em>cible<\/em> le hash de l&rsquo;\u00e9motion et comme <em>m\u00e9ta<\/em> le hash du signataire.<\/p>\n<p style=\"text-align: justify;\">Le lien d&rsquo;intensit\u00e9 globale de l&rsquo;\u00e9motion est un lien de type <code>f<\/code> avec comme <em>source<\/em> l&rsquo;objet concern\u00e9, comme <em>cible<\/em> le hash de l&rsquo;objet de r\u00e9f\u00e9rence et comme <em>m\u00e9ta<\/em> \u00e0 <code>0<\/code>. Ce lien ne contient pas de valeur mais le nombre de liens additionn\u00e9s donnera la valeur de l&rsquo;intensit\u00e9.<br \/>\nDans l&rsquo;interface, il est propos\u00e9 un bouton pour ajouter de l&rsquo;intensit\u00e9 aux \u00e9motions par incr\u00e9ment de <code>1<\/code>. Cela devrait limiter l&rsquo;envol\u00e9e des valeurs et rester pour un usage normal autour de sa valeur de base, c&rsquo;est \u00e0 dire <code>1<\/code>.<\/p>\n<p style=\"text-align: justify;\">Cette solution est en cours de test&#8230;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Suite des articles sur l&rsquo;Ajout d&rsquo;\u00e9motions sur des objets et suites 1 2 3 4, et Liens d&rsquo;\u00e9motions. Les \u00e9motions sont une fa\u00e7on de marque un objet avec les sentiments qu&rsquo;il inspire \u00e0 un \u00eatre humain. Les \u00e9motions sont plut\u00f4t subjectives l\u00e0 o\u00f9 les avis sont beaucoup plus objectifs. L&rsquo;intensit\u00e9 que l&rsquo;on peut donner \u00e0 &hellip; <a href=\"http:\/\/blog.nebule.org\/?p=2640\" class=\"more-link\">Continuer la lecture de <span class=\"screen-reader-text\">Ajout d&rsquo;\u00e9motions sur des objets \u00e2\u20ac\u201c suite 5<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[55,60,61,7,13,19,111,20,114,24,38,39],"tags":[],"_links":{"self":[{"href":"http:\/\/blog.nebule.org\/index.php?rest_route=\/wp\/v2\/posts\/2640"}],"collection":[{"href":"http:\/\/blog.nebule.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.nebule.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.nebule.org\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.nebule.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2640"}],"version-history":[{"count":15,"href":"http:\/\/blog.nebule.org\/index.php?rest_route=\/wp\/v2\/posts\/2640\/revisions"}],"predecessor-version":[{"id":2655,"href":"http:\/\/blog.nebule.org\/index.php?rest_route=\/wp\/v2\/posts\/2640\/revisions\/2655"}],"wp:attachment":[{"href":"http:\/\/blog.nebule.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2640"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.nebule.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2640"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.nebule.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2640"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}