{"id":2063,"date":"2016-01-14T02:10:55","date_gmt":"2016-01-14T00:10:55","guid":{"rendered":"http:\/\/blog.nebule.org\/?p=2063"},"modified":"2016-03-29T18:57:54","modified_gmt":"2016-03-29T16:57:54","slug":"definition-des-groupes","status":"publish","type":"post","link":"http:\/\/blog.nebule.org\/?p=2063","title":{"rendered":"D\u00e9finition des groupes"},"content":{"rendered":"<p style=\"text-align: justify;\">Dans le cadre de la recherche sur l&rsquo;impl\u00e9mentation des groupes dans <a title=\"Projet nebule\" href=\"http:\/\/www.nebule.org\/\" target=\"_blank\">nebule<\/a>, voir <a title=\"Le groupe ?\" href=\"http:\/\/blog.nebule.org\/?p=240\" target=\"_blank\">1<\/a> <a title=\"Le groupe\" href=\"http:\/\/blog.nebule.org\/?p=245\" target=\"_blank\">2<\/a> <a title=\"N\u00c5\u201cud et groupe\" href=\"http:\/\/blog.nebule.org\/?p=1094\" target=\"_blank\">3<\/a> <a title=\"Appartenance et\/ou propri\u00e9t\u00e9\" href=\"http:\/\/blog.nebule.org\/?p=1279\" target=\"_blank\">4<\/a> <a title=\"Appartenance et\/ou propri\u00e9t\u00e9 \u00e2\u20ac\u201c suite\" href=\"http:\/\/blog.nebule.org\/?p=1286\" target=\"_blank\">5<\/a>, deux nouveaux objets r\u00e9serv\u00e9s ont \u00e9t\u00e9 ajout\u00e9s :<\/p>\n<ul>\n<li><code>nebule\/objet\/groupe<\/code><\/li>\n<li><code>nebule\/objet\/groupe\/ferme<\/code><\/li>\n<\/ul>\n<h2 style=\"text-align: justify;\">Le groupe<\/h2>\n<p style=\"text-align: justify;\">Il a \u00e9t\u00e9 d\u00e9cid\u00e9 de rattacher explicitement le groupe aux objets, et donc aussi aux entit\u00e9s notamment. Mais la notion de groupe peut \u00eatre vu comme plus globale.<\/p>\n<p style=\"text-align: justify;\">Si on reprend par exemple l&rsquo;objet r\u00e9serv\u00e9 <code>nebule\/danger<\/code>, les objets qui lui sont li\u00e9s deviennent de fait un groupe des objets \u00e0 \u00e9viter. Il suffit donc de lier un objet \u00e0 un autre objet pour cr\u00e9er un groupe. Cependant cela n&rsquo;est pas tr\u00e8s pratique puisque l&rsquo;on ne peut rechercher que des groupes pr\u00e9-d\u00e9finis \u00e0 l&rsquo;avance et commun\u00e9ment accept\u00e9s. Cela marche bien pour quelques groupes avec des fonctions biens pr\u00e9cises et universellement reconnues, et pas plus.<\/p>\n<p style=\"text-align: justify;\">Fondamentalement, le groupe est la d\u00e9finition d&rsquo;un ensemble de plusieurs objets. C&rsquo;est \u00e0 dire, c&rsquo;est le regroupement d&rsquo;au moins deux objets. Le lien peut donc \u00e0 ce titre \u00eatre vu comme la mat\u00e9rialisation d&rsquo;un groupe. Le groupe met en relation des objets vis-\u00e0-vis d&rsquo;une r\u00e9f\u00e9rence. C&rsquo;est la r\u00e9f\u00e9rence qui identifie le groupe. Dans le cas de notre objet r\u00e9serv\u00e9 <code>nebule\/danger<\/code>, c&rsquo;est cet objet r\u00e9serv\u00e9 qui est la r\u00e9f\u00e9rence du groupe. Par simplification, l&rsquo;objet de r\u00e9f\u00e9rence peut \u00eatre assimil\u00e9 comme \u00e9tant le groupe.<\/p>\n<p style=\"text-align: justify;\">Tout objet peut ainsi devenir la r\u00e9f\u00e9rence d&rsquo;un groupe. Cela n&rsquo;est pas sans poser un gros probl\u00e8me pratique. Puisque tout objet peut \u00eatre un groupe, comment fait-on pour s&rsquo;y retrouver dans l&rsquo;immensit\u00e9 des groupes disponibles ?<br \/>\nPour simplifier le probl\u00e8me, nous allons consid\u00e9rer les liens comme \u00e9tant des groupes directs ou explicites. Et nous allons consid\u00e9rer les relations de deux liens ou plus comme \u00e9tant des groupes indirectes ou implicites. Ces groupes indirectes sont centr\u00e9s sur un et un seul objet de r\u00e9f\u00e9rence. Si nous prenons par exemple comme r\u00e9f\u00e9rence l&rsquo;objet r\u00e9serv\u00e9 <code>nebule\/objet\/type<\/code>, nous avons un groupe indirecte qui va contenir tous les objets de m\u00eame type mime.<\/p>\n<p style=\"text-align: justify;\">Nous allons \u00e0 partir de maintenant consid\u00e9rer comme groupe uniquement les groupes indirectes.<\/p>\n<p style=\"text-align: justify;\">Mais cela fait encore beaucoup trop de possibilit\u00e9s en pratique pour que la notion de groupe n&rsquo;ai un int\u00e9r\u00eat pour g\u00e9rer les objets. Nous allons en plus restreindre la notion du groupe, et donc son exploitation dans <em>nebule<\/em>, \u00e0 l&rsquo;objet vers lequel un lien explicite est cr\u00e9\u00e9 avec les objets. Ce lien explicite est un lien de type <code>l<\/code> avec comme objet meta l&rsquo;objet r\u00e9serv\u00e9 <code>nebule\/objet\/groupe<\/code> ou <code>nebule\/objet\/groupe\/ferme<\/code>.<\/p>\n<h2 style=\"text-align: justify;\">Groupe ouvert ou ferm\u00e9<\/h2>\n<p style=\"text-align: justify;\">L&rsquo;exploitation des objets d&rsquo;un groupe n\u00e9cessite de pouvoir lire et v\u00e9rifier les liens qui unissent les objets au groupe. Ces liens peuvent \u00eatre g\u00e9n\u00e9r\u00e9s par diff\u00e9rentes entit\u00e9s, le traitement social des liens d\u00e9terminera pour une entit\u00e9 donn\u00e9e quels sont les objets reconnus dans le groupe ou pas. Ce processus est avant tout un traitement pour reconnaitre ou non les objets d&rsquo;un groupe ouvert.<\/p>\n<p style=\"text-align: justify;\">Pour un groupe ferm\u00e9, la reconnaissance des objets du groupe n&rsquo;est plus d\u00e9termin\u00e9e par le traitement social des liens. Ne sont reconnus les objets comme appartenant au groupe ferm\u00e9 que ceux dont le lien est sign\u00e9 par l&rsquo;entit\u00e9 qui a cr\u00e9\u00e9 le groupe. Dans le cas d&rsquo;un groupe ferm\u00e9, les liens g\u00e9n\u00e9r\u00e9s par une autre entit\u00e9 pour ajouter des objets au groupe ne sont pas pris en compte.<\/p>\n<p style=\"text-align: justify;\">Si il est possible de cr\u00e9er un groupe ouvert avec un objet de r\u00e9f\u00e9rence donn\u00e9, le m\u00eame objet de r\u00e9f\u00e9rence peut aussi servir pour un groupe ferm\u00e9. Dans ce cas, lors du traitement, le groupe ouvert et le groupe ferm\u00e9 apparaissent comme deux groupes distincts. Si plusieurs entit\u00e9s cr\u00e9ent des groupes ouverts avec le m\u00eame objet de r\u00e9f\u00e9rence, un seul groupe est affich\u00e9 et regroupe tous les groupes ouverts. Si plusieurs entit\u00e9s cr\u00e9ent des groupes ferm\u00e9s avec le m\u00eame objet de r\u00e9f\u00e9rence, il faut exploiter et afficher tous les groupes ferm\u00e9s comme des groupes ind\u00e9pendants.<\/p>\n<p style=\"text-align: justify;\">Un groupe ferm\u00e9 doit toujours \u00eatre accompagn\u00e9 son l&rsquo;entit\u00e9 cr\u00e9atrice lors de l&rsquo;affichage.<\/p>\n<h2 style=\"text-align: justify;\">Groupe public ou priv\u00e9<\/h2>\n<p style=\"text-align: justify;\">La distinction entre un groupe public et un groupe priv\u00e9, c&rsquo;est la visibilit\u00e9 de celui-ci pour les entit\u00e9s tierces. Si tous les liens qui relient les objets au groupe sont dissimul\u00e9s, alors le groupe est priv\u00e9 et seuls les entit\u00e9s qui peuvent voir ces liens ont acc\u00e8s au groupe.<\/p>\n<p style=\"text-align: justify;\">Cependant, si une partie des liens ne sont pas dissimul\u00e9s ou si ils sont rendus publics, alors le groupe devient partiellement public.<br \/>\nLes liens, m\u00eame dissimul\u00e9s, sont compl\u00e8tement manipulables par toute entit\u00e9 qui y a acc\u00e8s, ainsi en terme de s\u00e9curit\u00e9 on peut dire qu&rsquo;un groupe priv\u00e9 est un groupe public qui s&rsquo;ignore. Mais ce n&rsquo;est pas forc\u00e9ment un probl\u00e8me, si une entit\u00e9 A cr\u00e9e un groupe ferm\u00e9 et priv\u00e9, alors le fait qu&rsquo;une autre entit\u00e9 B cr\u00e9e un m\u00eame groupe (m\u00eame r\u00e9f\u00e9rence) ouvert et public ne rend pas pour autant public le groupe de l&rsquo;entit\u00e9 A.<\/p>\n<h2 style=\"text-align: justify;\">Groupe actif ou passif<\/h2>\n<p style=\"text-align: justify;\">Un groupe est par d\u00e9faut passif. Il devient actif lorsqu&rsquo;il devient capable de r\u00e9aliser des actions, c&rsquo;est \u00e0 dire de signer des liens. Le seul objet capable de signer un lien est une entit\u00e9, ainsi un groupe actif est un groupe dont l&rsquo;objet de r\u00e9f\u00e9rence est une entit\u00e9.<\/p>\n<p style=\"text-align: justify;\">Si le secret de cette entit\u00e9 de r\u00e9f\u00e9rence du groupe n&rsquo;est connu que d&rsquo;une seule autre entit\u00e9 (entit\u00e9 maitresse) alors c&rsquo;est un groupe actif ferm\u00e9. Si cette entit\u00e9\u00c2\u00a0de r\u00e9f\u00e9rence du groupe a plusieurs entit\u00e9s maitresses alors c&rsquo;est un groupe actif ouvert.<\/p>\n<p style=\"text-align: justify;\">Un groupe actif ouvert peut aussi \u00eatre priv\u00e9 si tous ses liens sont dissimul\u00e9s. Il devient semi-public ou public si une des entit\u00e9s maitresse d\u00e9voile tout ou partie des liens du groupe. De la m\u00eame fa\u00e7on, une entit\u00e9 peut ajouter d&rsquo;autres entit\u00e9s au groupe, c&rsquo;est \u00e0 dire partager le secret de l&rsquo;entit\u00e9 de r\u00e9f\u00e9rence du groupe. En terme de s\u00e9curit\u00e9, un groupe actif ouvert priv\u00e9 est souvent un groupe actif ouvert public qui s&rsquo;ignore.<\/p>\n<p style=\"text-align: justify;\">De fait, toute entit\u00e9 pirat\u00e9e devient un groupe actif ouvert, m\u00eame si le secret de l&rsquo;entit\u00e9 n&rsquo;est pas rendu public.<\/p>\n<h2 style=\"text-align: justify;\">Groupe d&rsquo;entit\u00e9s<\/h2>\n<p style=\"text-align: justify;\">Un groupe d&rsquo;entit\u00e9 est un groupe dans lequel on ne consid\u00e8re que les objets qui sont des entit\u00e9s. Les autres objets sont ignor\u00e9s. Lorsque ce groupe n&rsquo;est plus vu comme un groupe d&rsquo;entit\u00e9s, tous les objets sont pris en compte et les entit\u00e9s sont g\u00e9r\u00e9s comme des objets. La distinction se fait donc uniquement sur le type d&rsquo;objet que l&rsquo;on attend du groupe au moment de l&rsquo;exploiter.<\/p>\n<h2 style=\"text-align: justify;\">Graphe de groupes<\/h2>\n<p style=\"text-align: justify;\">Lorsque l&rsquo;on a un groupe qui est li\u00e9 \u00e0 un autre groupe, comme doit-on l&rsquo;interpr\u00e9ter ?<br \/>\nCela cr\u00e9e un graphe de groupes. Il est possible soit d&rsquo;ignorer les sous-groupes dans un groupe ou au contraire de r\u00e9soudre le graphe pour en exploiter tous les objets. Dans le cas de la r\u00e9solution du graphe, on retombe sur les probl\u00e8mes classiques de la r\u00e9solution d&rsquo;un graphe.<\/p>\n<p style=\"text-align: justify;\">Le graphe de groupe peut aussi dans certains cas avoir un traitement convenu. Cela peut \u00eatre appliqu\u00e9 \u00e0 la gestion des options ou des droits dans une application. On va ainsi lier des groupes d&rsquo;entit\u00e9s avec des groupes d&rsquo;options et\/ou des groupes de droits. Dans ce cas on ne parcours le graphe que de fa\u00e7on simple et non ambig\u00fce.<\/p>\n<h2 style=\"text-align: justify;\">N\u00c5\u201cud<\/h2>\n<p style=\"text-align: justify;\">La notion de n\u00c5\u201cud est concurrente de la notion de groupe. Sauf usage nouveau et diff\u00e9renci\u00e9, le n\u00c5\u201cud va disparaitre de <em>nebule<\/em>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dans le cadre de la recherche sur l&rsquo;impl\u00e9mentation des groupes dans nebule, voir 1 2 3 4 5, deux nouveaux objets r\u00e9serv\u00e9s ont \u00e9t\u00e9 ajout\u00e9s : nebule\/objet\/groupe nebule\/objet\/groupe\/ferme Le groupe Il a \u00e9t\u00e9 d\u00e9cid\u00e9 de rattacher explicitement le groupe aux objets, et donc aussi aux entit\u00e9s notamment. Mais la notion de groupe peut \u00eatre vu &hellip; <a href=\"http:\/\/blog.nebule.org\/?p=2063\" class=\"more-link\">Continuer la lecture de <span class=\"screen-reader-text\">D\u00e9finition des groupes<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[79,81,89,90,99,107,110,24],"tags":[],"_links":{"self":[{"href":"http:\/\/blog.nebule.org\/index.php?rest_route=\/wp\/v2\/posts\/2063"}],"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=2063"}],"version-history":[{"count":1,"href":"http:\/\/blog.nebule.org\/index.php?rest_route=\/wp\/v2\/posts\/2063\/revisions"}],"predecessor-version":[{"id":2110,"href":"http:\/\/blog.nebule.org\/index.php?rest_route=\/wp\/v2\/posts\/2063\/revisions\/2110"}],"wp:attachment":[{"href":"http:\/\/blog.nebule.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2063"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.nebule.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2063"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.nebule.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2063"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}