Partage
  • Partager sur Facebook
  • Partager sur Twitter

Idée de SGBD sémantique

    5 décembre 2010 à 17:39:06

    Bonjour, cela fait longtemps que j'ai une idée. C'est un nouveau genre de SGBD.

    Système de Gestion de Base de Donnée Sémantique



    Introduction


    Stocker des documents a toujours était un problème pour toutes applications. C'est pour cela que les SGBD (abréviation de Système de Gestion de Base de donnée) ont étaient créés.

    C'est SGBD d'aujourd'hui, bien qu'avec de multiples améliorations, ont un gros défaut : les données n'ont pas une organisation logique. Ceux relationnels stocke, par exemple, les données dans des tables avec une ligne par document.
    C'est la ou est née cette idée de SGBD Sémantique (abrégé SGBDS). Le but est de faciliter la création de bases de données ou il existe un rapport entre chaque document.

    Principes


    Tout d'abord, il s'agira d'un SGBD orienté document. Dans chaque BDD (Base De Donnée) les documents seront mélangé entre eux même s'ils appartiendrons à des tables différentes (l'utilisation d'un système de table est une nécessité pour une bonne organisation dans le corpus).

    Ensuite on suppose qu'un document a un sens et que deux documents ont des sens comparables.
    Si les deux documents ont le même sens, alors ceux-ci sont « rapprochés » (ou ont une faible distance entre eux deux), si ceux-ci n'ont pas le même, ils sont « éloignés ». Deux documents peuvent avoir, bien-sûr, le même sens.

    La distance entre deux documents pourra être exprimé par une valeur numérique. Celle-ci est proche de 0 si les deux documents sont rapprochés et proche de 1 si les deux documents sont éloignés.
    Si elle est égale à 0, les deux documents sont équivalents. Si elle est égale à 1, ils sont opposés.

    Explication

    Image utilisateur
    La distance entre les documents a et b est appelé α.
    La distance entre les documents b et c est appelé β.
    La distance entre les documents a et c est appelé θ.

    On voit que la distance θ pourra être calculé automatiquement à partir de α et β. En effet, si deux documents ont le même sens, tout document ayant le même sens avec l'un l'a avec l'autre.
    Donc l'utilisateur n'aura pas à calculer la distance θ comme il n'aura pas à calculer toutes les distances entre tous les documents de la base de données (même s'il devra en fournir au moins une pour chacune d'elle).
    A fortiori les documents a et c seront rapprochés ou éloigné selont les distances α et β.

    Intérêts


    Autre le fait que les distances seront créé automatiquement, il faut que le système soit rapide et léger.

    Comme dans tous les SGBD, il y aura des indexes.
    La ou c'est intéressant, c'est que on devra chercher un document dans le corpus en partant d'un autre et le temps qu'on mettra à le trouver dépendra de leur distance.

    Bien sûr, il y aura un « document d'origine » vide dans chaque BDD qui sera le point de départ pour les recherches sans point de départ. Plus un document sera sélectionné, plus il sera proche de celui-ci.

    Application


    Évidemment, il est possible que ce précédemment dit ne fut pas été clair. Voici plusieurs applications possible un SGBDS de ce type.

    Utilisation pour créer un dictionnaire organisé


    Pour faire un dictionnaire avec celui-ci, chaque document remplace un mot. La distance entre deux mots sera bien évidemment leurs synonymies.
    On a trois mots « manger », « bonjour », « boire ». On sait que manger a à peu près le même sens que « boire » mais n'a pas le même sens que « bonjour ».
    Automatiquement, le SGBD pourra généré la distance entre « bonjour » et « boire ».

    Utilisation avec un moteur de recherche


    Contrairement à ceux que le titre pourrai faire penses, ce qui suit a pour unique objet la gestion des données des moteurs de recherche.

    Pour faire les choses simples, pour un moteur de recherche à un seul mot-clé, on suppose qu'il existera deux tables, une pour contenir les mots-clés et une pour les pages.
    A l'instar du dictionnaire organisé, la distance entre deux mots dépendra de leurs synonymies. Cependant, les pages auront, elles aussi, des distances entre elles et avec les mots.

    Pour lancer une recherche, il suffira d'écrire un mot et le résultat sera une liste croissante des toutes les pages proches au mot en fonction de la distance.
    On voit ici que le SGBDS sera capable d'établir des relations entre documents de natures différentes.

    Conclusion


    Ce qui fut précédemment dit à pour but d'être une simple introduction. Aucune formule ou détails quelconque n'a été écrit. Ceux-ci seront surement l'objet d'un future texte.
    Mais je suis presque sur (subjectivement) que cela reste possible.
    A suivre...
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      5 décembre 2010 à 18:08:34

      Je n'ai presque rien compris, mais dans ton système :

      Sous quelle forme son représentées les données pour l'utilisateur ? (En SQL sous forme de tables)
      Comment fais-tu pour manipuler les données ? (selection, mise à jour..)
      Comment garantis-tu l'intégrité des données ? (différentes contraintes, par exemples celles d'intégrité réferentielles).

      Ton SGBD va gérer l'accès concurrentiel ?


      Quoi qu'il arrive, lorsque l'on s'attaque à la gestion des données, on en revient toujours au Modèle Relationnel (je n'ai pas dit SQL). Au lieu de faire dans le "NoSQL" (qui n'a aucun sens), lance toi plutôt dans la création d'un SGBD réellement relationnel, basé sur le langage Tutorial D à l'instar de Rel.
      • Partager sur Facebook
      • Partager sur Twitter
        5 décembre 2010 à 19:17:45

        Citation : Cintre Sournois

        Je n'ai presque rien compris, mais dans ton système


        C'est important que tout le monde comprenne donc dis moi tout ce que tu n'as pas compris.
        Je me suis peut-être mal exprimé et je m'en excuse mais c'est plutôt compliqué ... :-°

        Citation : Cintre sournois

        Sous quelle forme sont représentées les données pour l'utilisateur ? (En SQL sous forme de tables)


        Il y aura pas de SQL ni de tables. Je n'ai pas encore réfléchie dans les moindres détails, mais il n'y aura que des documents reliés entre eux par un nombre décimal (qui représente la distance) !

        Citation : Cintre sournois

        Comment fais-tu pour manipuler les données ? (selection, mise à jour..)


        La partie la plus importante sera dans les selects et les inserts :

        • Lors de l'insert, l'utilisateur devra informer au SGBD une distance avec un ou d'autres documents. Les autres distances seront calculées automatiquement. Le document sera sous la forme clé valeur, avec au moins une clé unique.
        • Lors du select, plus un document aura une distance faible par rapport à un autre, plus trouver ce document en partant de celui-la est rapide.
          Par exemple, soient x et y, deux documents dans le corpus, plus la distance x - y est faible, plus la requête est rapide. Sinon pour sélectionner un document par rapport à rien, on partira du "centre". Et à l'instar du plan d'exécution d'oracle, plus ce document est sélectionné souvent, plus il est proche du centre (où la propriété ci-dessus est valable pour le centre qui peut alors être considéré comme le document d'origine).
        Pour des requêtes plus rapide, un buffer sera utilisé.

        Citation : Cintre Sournois

        Comment garantis-tu l'intégrité des données ? (différentes contraintes, par exemples celles d'intégrité référentielles).



        L'intégrité des données sera garantie à l'instar des grands SGBD SQL:

        à chaque update, insert et delete, un verrou exclusif est créé pour le document dans le corpus, mais aussi dans le buffer. Les select et les nouveaux update-insert-delete seront donc bloqués jusqu'à la fin des manipulations sur le document.

        Citation : Cintre sournois

        Quoi qu'il arrive, lorsque l'on s'attaque à la gestion des données, on en revient toujours au Modèle Relationnel (je n'ai pas dit SQL). Au lieu de faire dans le "NoSQL" (qui n'a aucun sens), lance toi plutôt dans la création d'un SGBD réellement relationnel, basé sur le langage Tutorial D à l'instar de Rel.



        Et non! On pourra parler de relation, mais pas comme on l'emploie tous les jours pour les SGBDs, il y aura qu'une seule relations, la distance. Et en plus il n'y a pas que les modèles relationnels, il y a :

        • Base de données hiérarchique
        • Base de données réseau (qui n'est pas la même chose que mon idée)
        • Base de données orientée objet
        • Base de données orientée XML
        • Et j'en passe ...


        Si d'autres personnes n'ont pas compris , je réécrirais le poste, car dans ma tête c'est très clair !
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          5 décembre 2010 à 20:07:34

          Citation : engies


          Citation : Cintre sournois

          Quoi qu'il arrive, lorsque l'on s'attaque à la gestion des données, on en revient toujours au Modèle Relationnel (je n'ai pas dit SQL). Au lieu de faire dans le "NoSQL" (qui n'a aucun sens), lance toi plutôt dans la création d'un SGBD réellement relationnel, basé sur le langage Tutorial D à l'instar de Rel.



          Et non! On pourra parler de relation, mais pas comme on l'emploie tous les jours pour les SGBDs, il y aura qu'une seule relations, la distance.


          Dans le Modèle relationnel, le mot "relation" n'a rien à voir avec d'éventuels "liens" entre les tables.
          Voir :
          Qu'est-ce qu'un SGBDR ?
          Qu'est-ce qu'une Relation ?
          et même:
          Qu'est-ce qu'un Modèle de Données ?

          Citation : engies


          Et en plus il n'y a pas que les modèles relationnels, il y a :

          • Base de données hiérarchique
          • Base de données réseau (qui n'est pas la même chose que mon idée)
          • Base de données orientée objet
          • Base de données orientée XML
          • Et j'en passe ...



          Les SGBD hiérarchiques et réseaux sont devenus obsolètes et ont commencé leurs déclin dans les années 70, face à l'évidente supériorité (fondations scientifiques) du modèle relationnel.

          Les BDD Orienté Objet n'ont pas vraiment de sens, c'est juste un terme marketing.
          Les BDD XML c'est simplement du hiérarchique... autrement dit, retour vers le passé 40 ans en arrière.

          En tout cas bonne chance ;)
          • Partager sur Facebook
          • Partager sur Twitter
            5 décembre 2010 à 20:49:05

            Citation : Cintre sournois

            Dans le Modèle relationnel, le mot "relation" n'a rien à voir avec d'éventuels "liens" entre les tables.
            Voir :
            Qu'est-ce qu'un SGBDR ?
            Qu'est-ce qu'une Relation ?
            et même:
            Qu'est-ce qu'un Modèle de Données ?



            Justement, c'est pour cela que je dit que ce sera pas un SGBD relationnel comme on connait, mais un SGBD relationnel, le mot français, et je précise qu'il n'y aura pas de tables.

            Citation : Cintre sournois

            Les SGBD hiérarchiques et réseaux sont devenus obsolètes et ont commencé leurs déclin dans les années 70, face à l'évidente supériorité (fondations scientifiques) du modèle relationnel.

            Les BDD Orienté Objet n'ont pas vraiment de sens, c'est juste un terme marketing.
            Les BDD XML c'est simplement du hiérarchique... autrement dit, retour vers le passé 40 ans en arrière.


            Bon, c'était seulement des exemples pris sur wikipédia pour montrer qu'il existe par que le relationnel ;) , de plus, Facebook, twitter, Google et d'autres geants d'internet utilisent des SGBD noSQL !

            Citation : Cintre sournois

            En tout cas bonne chance ;)


            Enfaite, c'est seulement une idée. C'est d'ailleurs pour cela que je poste ici, pour avoir des avis mais merci quand même. :)
            • Partager sur Facebook
            • Partager sur Twitter
              19 janvier 2011 à 22:54:24

              Bonjour, après y avoir longuement réfléchi, j'ai édité mon poste: je n'abandonne pas mon idée.
              Je penses que cette fois si, mon poste est plus clair que le premier. Donc merci d'avance pour vos avis ^^
              • Partager sur Facebook
              • Partager sur Twitter
                20 janvier 2011 à 7:51:14

                bonjour,
                post clair et agitateur de neurones. Tu veux créer un nouveau système gestion de données basé sur le concept de distance entre autres.
                Je suppose que tu as commencé par fouiller, et le terme est choisi comme un clin d'oeil, dans des textes sur la sémantique.
                Le très court article de wikipedia à ce sujet te donne déjà quelques pistes et quelques recherches et applications dans le domaine informatique : http://fr.wikipedia.org/wiki/S%C3%A9mantique
                Un autre article intéressant sur la proximité en informatique http://hal.inria.fr/docs/00/13/52/20/P [...] SE06Final.pdf
                Et un dernier dont la bibliographie est plus intéressante, pour toi, que l'article lui-même
                http://fidelia1.free.fr/ibekwe-TIA-05-v3.pdf
                De nombreuses et anciennes ou récentes recherches existent dans ta direction (Traduction automatique, text mining, ...)

                • Partager sur Facebook
                • Partager sur Twitter
                  20 janvier 2011 à 17:54:03

                  Citation : sicilien007

                  bonjour,
                  post clair et agitateur de neurones. Tu veux créer un nouveau système gestion de données basé sur le concept de distance entre autres.
                  Je suppose que tu as commencé par fouiller, et le terme est choisi comme un clin d'oeil, dans des textes sur la sémantique.
                  Le très court article de wikipedia à ce sujet te donne déjà quelques pistes et quelques recherches et applications dans le domaine informatique : http://fr.wikipedia.org/wiki/S%C3%A9mantique
                  Un autre article intéressant sur la proximité en informatique http://hal.inria.fr/docs/00/13/52/20/P [...] SE06Final.pdf
                  Et un dernier dont la bibliographie est plus intéressante, pour toi, que l'article lui-même
                  http://fidelia1.free.fr/ibekwe-TIA-05-v3.pdf
                  De nombreuses et anciennes ou récentes recherches existent dans ta direction (Traduction automatique, text mining, ...)



                  Bonjour, d'abord merci de m'avoir rappeler l'appellation de ce que je voulais faire ... (cf « sémantique »)
                  J'ignorais que de tel recherche ont été faite à ce sujet, mais c'est exactement ce dont j'ai besoin !

                  Pour la petite histoire, cette idée n'est pas venu toutes seules. Au départ, je cherché un SGBD capable d'être utilisé pour un moteur de recherche.
                  Je ne sais pas si ce genre de SGBD existe déjà, mais comme je n'en ai pas trouvé après de longue recherche, je suis pose que je vais être le premier à en créer un.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    20 janvier 2011 à 18:04:11

                    re,
                    Bing de MS, mais c'est peut-être plus marketing qu'autre, s'orienterait dans cette direction.

                    D'autres articles excellents sur le domaine ...
                    PROX : un modèle mathématique de la proximité sémantique
                    Le modèle mathématico-computationnel, PROX, développé par Gaume
                    (Gaume & al., 2002, Gaume, 2003, 2004) établit une distance entre les verbes à
                    partir d'un graphe de dictionnaire
                    http://www.info-metaphore.com/articles [...] aphasique.pdf

                    Page PROX
                    http://erss.irit.fr:8080/graph/prox-synonyme-fr/

                    LingWay et son logiciel
                    Le clustering ou "classification" consiste à extraire des groupes ("clusters") de documents à partir d'un ensemble de documents non classifiés.
                    http://www.lingway.com/content/view/22/62/lang,fr/

                    Série d'articles mais payants ...
                    http://portal.acm.org/citation.cfm?id= [...] OKEN=96334664

                    • Partager sur Facebook
                    • Partager sur Twitter
                      20 janvier 2011 à 18:13:08

                      Il est possible que Bing fonctionnerait sur ce principe... cependant, il y a très peu (ou aucune) chance que elle rendrait son SGBD publique.
                      Le projet n'a pas pour but de servir uniquement au text mining (moteur de recherche ou autre), mais ca sera bien un SGBD.
                      Je pense que le faire évitera au future développeur créant des logiciels accès sur la sémantique de refaire encore et encore les même chose.

                      Merci encore pour tes nombreux liens et tes conseilles ! ^^
                      • Partager sur Facebook
                      • Partager sur Twitter
                        21 janvier 2011 à 18:31:04

                        Bonjour, j'ai détaillé de nouveau mon poste (j'espère que ce n'est pas trop long).
                        J'aimerais d'autre avis que ce soit sur l'orientation que prendra ce SGBD ou des conseils sur les détails sur le fonctionnement, ou autre...
                        • Partager sur Facebook
                        • Partager sur Twitter
                          21 janvier 2011 à 22:18:47

                          bonjour,
                          ton objectif premier est de créer un SGBD.
                          Il devrait s'appuyer sur un modèle mathématique!
                          As-tu le modèle en question?
                          Tout ça me semble une oeuvre "titanesque".
                          Es-tu seul? Travailles-tu en équipe? Dans quel cadre le fais-tu? Etudes? Projet perso?
                          Le site du zéro est-il le site adéquat? As-tu interrogé developpez.com?


                          • Partager sur Facebook
                          • Partager sur Twitter
                            22 janvier 2011 à 12:05:13

                            Ce n'est pas vraiment un objectif, mais juste une idée et je n'ai écrit aucune formule.
                            C'est pour ca que je suis venu sur ce forum car je n'ai jamais fais de SGBD auparavant (mais je compte apprendre).

                            Une œuvre titanesque ? Effectivement, je suis tout seule mais il est presque sur que si un jour un projet de ce genre née, il sera open-source.
                            J'avais effectivement pas pensé à demander des conseilles sur developpez.com

                            J'ai lut les liens que tu m'as passé et ca ma beaucoup éclairé. Merci sicilien007 !
                            • Partager sur Facebook
                            • Partager sur Twitter
                              22 janvier 2011 à 12:57:45

                              engies> C'est bien de réfléchir à d'autres modèles que le modèle relationnel pour construire des bases de données. Maintenant, comme l'a dit Cintre Sournois, il faut une vraie connaissance de la théorie derrière tout ça pour faire les choses bien, sans quoi tu es quasiment condamné à "réinventer" ce qui a déjà été fait, probablement de façon plus maladroite.

                              Le modèle relationnel s'appuie sur des notions fortes et raisonnablement souples, telles que l'algèbre relationnel et la logique du premier ordre. Il est possible de dépasser ce modèle, j'ai le sentiment que de plus en plus de travail est fait chez les chercheurs pour se débarasser de ces fondations et en prendre des plus vastes. Mais il n'empêche que si tu veux t'assurer de la puissance de ton modèle, tu vas devoir passer par une grosse quantité de formalismes.
                              • Partager sur Facebook
                              • Partager sur Twitter
                                22 janvier 2011 à 14:23:44

                                Dois-je comprendre que c'est pas forcement une mauvaise idée mais que je n'ai pas les aptitudes nécessaires ?
                                Est-ce que on peut apprendre ? Est-ce si difficile que ca ?

                                Je n'ai pas dit que j'étais une professionnel en SGBD.
                                J'ai juste une idée même si je savais en postant que je n'aurais peut-être pas les compétences requises.
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  22 janvier 2011 à 14:39:30

                                  bonjour,
                                  Je dirais que le premier problème est ta modélisation des données. Après il se pourrait que la mise place puisque être faite par un SGBDR ou un autre type de SGBD.
                                  L'article http://www.info-metaphore.com/articles [...] aphasique.pdf montrait bien que la structuration est une structuration en réseaux, comme le WEB d'ailleurs.
                                  Maintenant quel SGBD utilisent-ils? Oracle? ...
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    22 janvier 2011 à 15:08:15

                                    Je n'ai pas trouvé comment PROX stocke les données.
                                    C'est vrai que ce SGBD pourra être la sur-couche d'un autre SGBD... Sauf que un SGBD doit être capable de gérer un grand nombre de donnée.
                                    Je vais essayé de faire quelques tests...
                                    • Partager sur Facebook
                                    • Partager sur Twitter

                                    Idée de SGBD sémantique

                                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                    • Editeur
                                    • Markdown