IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Prolog Discussion :

Génération arbre généalogique à partir des enfants


Sujet :

Prolog

  1. #1
    Membre extrêmement actif
    Avatar de Madmac
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2004
    Messages
    1 685
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Alimentation

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 685
    Points : 1 376
    Points
    1 376
    Billets dans le blog
    7
    Par défaut Génération arbre généalogique à partir des enfants
    En fait, il s'agit de produire la liste d'arbre généologique en débutant par la base vers la cime.

    C'est une façon de représenter le véritable probléme, car ce que j'aimerais produire c'est un outil pour installer des paquetages complexes sous linux...

  2. #2
    C_C
    C_C est déconnecté
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 139
    Points : 92
    Points
    92
    Par défaut
    Salut,

    Ta question est un peu trop vague.
    Peux tu donner plus de précisions?

  3. #3
    Membre extrêmement actif
    Avatar de Madmac
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2004
    Messages
    1 685
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Alimentation

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 685
    Points : 1 376
    Points
    1 376
    Billets dans le blog
    7
    Par défaut
    Et bien imagine que tu aurais à faire générer la liste des individues d'un ou de plusieurs plusieurs familles qui ont des liens de parenté en partant des tous petit-enfants jusqu'aux ancètres.

    Bref en partant de la base vers le sommet.

    Sans rentré dans les détails, les RPMs sont des systèmes qui permettent de groupée ensemble, plusieurs document en un seul. Un peu comme les documents .tar.

    En tant que programmeur, tu comprendras sans doute qu'il faut installé les libraries pour débuté, le application de base et les aplications qui dépendent des application de base.

    Je crois qu'à partir des messages d'erreur qui m'indique des problèmes de dépendance, que je pourrais transformé ces erreurs en inférence prolog pour compiler ces sources avec un minimum d'intervention humaine.....

    Malheureusement, je suis rouillé en prolog, mais il me semble que ce serait dans le domaine du possible et que l'avenue aurait du potentiel....

  4. #4
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    En fait, c'est une sorte de graphes de dépendances, et tu veux retrouver tout ce qui est nécessaire, faire une sorte de recouvrement de ce graphe (je ne sais pas si c'est le bon vocabulaire )

    module M1 dépend de C, D ,
    module M2 dépend de B, C
    ....
    module B dépend de E, F
    ......

    donc j'ai besoin de B, C, D, E, F...

    C'est ça ?
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  5. #5
    Rédacteur
    Avatar de pcaboche
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    2 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Singapour

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 785
    Points : 9 716
    Points
    9 716
    Par défaut
    euh... c'est quoi le rapport avec Prolog?
    "On en a vu poser les armes avant de se tirer une balle dans le pied..."
    -- pydévelop

    Derniers articles:

    (SQL Server) Introduction à la gestion des droits
    (UML) Souplesse et modularité grâce aux Design Patterns
    (UML) Le Pattern Etat
    Autres articles...

  6. #6
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    Ben, il veut écrire son prog en Prolog je crois :
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  7. #7
    Rédacteur
    Avatar de pcaboche
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    2 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Singapour

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 785
    Points : 9 716
    Points
    9 716
    Par défaut
    Juste une petite question: as-tu déjà essayé autre chose qu'une distribution basée sur des RPM? As-tu déjà essayé, par exemple, une Debian? (ou une distribution basée sur Debian, comme Ubuntu qui est super facile à installer?)

    As-tu déjà utiliisé la commande:?

    Franchement, question gestion de paquets, c'est nickel ! La gestion des dépendances est super bien foutue ! (tellement bien foutue qu'ils ont même copié le principe avec le programme apt4rpm )

    Avant de te lancer dans l'écriture d'un programme Prolog qui ferait des inférences sur les messages d'erreur des paquets RPM, tu devrais essayer une Debian !
    "On en a vu poser les armes avant de se tirer une balle dans le pied..."
    -- pydévelop

    Derniers articles:

    (SQL Server) Introduction à la gestion des droits
    (UML) Souplesse et modularité grâce aux Design Patterns
    (UML) Le Pattern Etat
    Autres articles...

  8. #8
    Membre extrêmement actif
    Avatar de Madmac
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2004
    Messages
    1 685
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Alimentation

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 685
    Points : 1 376
    Points
    1 376
    Billets dans le blog
    7
    Par défaut
    Trap D: Tu as bien saisi

    pcaboche: Et bien, tu es le reflet de beaucoup de programmeur. Quand il est question de faire quelque chose de pratique avec Prolog. Les gens sont sceptique comme si pratique et Prolog serait deux concept incompatibles....

    Et pour répondre à ta question, j'ai essayé apt-get mais je préférais un système qui me laisse un plus grande liberté au niveau du stockage et qui ne travaillerai qu'avec des sources. Mais le problème n'est spécifique à Débian. Qui est malgré tout très bien.

    Mais comme j'ai une carte graphique Ati et que quelquefois le système se contamine, je me retrouve souvent à refaire des installations complète...

    Ce n'est pas la principale raison, c'est que plus je découvre Linux, plus je découvre des applications qui pourraientt être remplacé avantageusement par des équivalents écrit en Prolog. Je pense à tous ce qui est lié à la compilation (à l'exception de GCC) ou de tout ce qui regarde la gestion des librairies et des scripts. Beaucoup d'outil à apprendre qui ont peu de chose ou pas de chose commune entre elle. Et chaque application a sa façon de stocker les informations.

    Je pense qui serait possible de faire l'équivalent apt-get en Prolog. Mais non seulement pour les paquetages mais pour les cartes graphiques, cartes sonores,etc...Avec en bonus, un modèle unique pour représenter l'information recueillie. Parce ce que c'est un autre aspect qui me fruste comme programmeur, c'est qu'il est difficile d'avoir de l'information sur la machine. Pour moi, écrire des 'parser' c'est plus chiant que d'écrire des interfaces graphiques.Mais en plus il faut savoir où se procurer cette information. Tous le monde regarde le XML comme la création du siècle, pourtant cela fait 30 ans que les programmeurs stockent des structures complexes sans devoir créé de librairie particulière! Et on peut faire des bases de donnée avec ce langage. Avec un système qui utiliserait toutes les fonctionnalités de Prolog, toute ces informations pourraient disponible à l'aide d'un petit évaluateur intégré aux applications.

    À me lire, certains auront l'impression que je veux réécrire un autre système d'exploitation à partir du kernel de Linux. Si j'en avait le temps et l'argent, je tenterais surement la chose. Mais pour l'instant, j'ai des ambitions plus limité. Ce que je pense faire c'est à un système à double écriture ( un concept emprunté à la comptabilité...). Faire des interfaces utilisateur qui générerait des documents en Prolog. Et ces documents générerais les données (ou les scripts) dans un format lisible par Linux. J'aurais donc une façon uniforme de représenter ces données....

    Mais il est évident que pour aborder ce projet que je dois abandonné tous ce que pourrait altéré ces informations par l'extérieur. Donc la première priorité est un système pour se substituer au paquetage.....

    Mais si vous trouvez ce projet un peu farfelu, il y a des gens qui pensent que le futur de linux passe par initiave semblable:

    http://fr.wikipedia.org/wiki/Elektra_(registre_linux)
    http://www.libelektra.org/Api/

  9. #9
    Rédacteur
    Avatar de pcaboche
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    2 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Singapour

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 785
    Points : 9 716
    Points
    9 716
    Par défaut
    Citation Envoyé par Madmac
    pcaboche: Et bien, tu es le reflet de beaucoup de programmeur. Quand il est question de faire quelque chose de pratique avec Prolog. Les gens sont sceptique comme si pratique et Prolog serait deux concept incompatibles....
    Là, tu te trompes, je pense que Prolog peut avoir un grand intérêt dans certains domaines mais qu'il est malheureusement sous-exploité car assez mal enseigné et qu'il existe peu de ressources à son sujet (c'est un cercle vicieux en somme).

    Pour pallier un peu ce manque et rendre le Prolog un peu plus accessible, j'ai d'ailleurs écrit 2 articles sur ce langage (Note: je crois bien être le seul sur DVP à avoir écrit des articles sur Prolog...) :
    http://pcaboche.developpez.com/


    J'espère en écrire d'autres, mais je ne suis pas non plus un super spécialiste de Prolog.



    Citation Envoyé par Madmac
    Et pour répondre à ta question, j'ai essayé apt-get mais je préférais un système qui me laisse un plus grande liberté au niveau du stockage et qui ne travaillerai qu'avec des sources. Mais le problème n'est spécifique à Débian. Qui est malgré tout très bien.
    C'était plus cela le but de ma question: savoir si tu as bien fait le tour des solutions existantes avant de vouloir développer quelque chose "from scratch".



    Citation Envoyé par Madmac
    Tous le monde regarde le XML comme la création du siècle, pourtant cela fait 30 ans que les programmeurs stockent des structures complexes sans devoir créé de librairie particulière!
    Justement, XML a permis une standardisation de pas mal de choses qui évitent de réinventer la roue à chaque fois et met à disposition des outils de très grande qualité (DOM, SAX, Schema, XSLT, SOAP...). Donc le principe n'est pas novateur, mais le standard l'est !



    Ton projet m'a l'air assez intéressant, même si je n'ai pas tout saisi dans le détail. En plus, il me parait loin d'être farfelu (pas comme certains qui voudraient écrire un OS en 2 jours...)


    Si tu as des questions, n'hésite pas à les poser sur ce forum (à ce sujet, ta question de départ est un peu vague, donne-nous des exemples concrêts de ce que tu veux, en précisant les prédicats Prolog que tu utilises). Sinon, tu peux également me contacter par mp et on pourra s'échanger nos e-mails si tu veux discuter plus en détails de ton projet.
    "On en a vu poser les armes avant de se tirer une balle dans le pied..."
    -- pydévelop

    Derniers articles:

    (SQL Server) Introduction à la gestion des droits
    (UML) Souplesse et modularité grâce aux Design Patterns
    (UML) Le Pattern Etat
    Autres articles...

  10. #10
    Rédacteur
    Avatar de pcaboche
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    2 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Singapour

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 785
    Points : 9 716
    Points
    9 716
    Par défaut
    Pas encore de réaction.

    Vu que je ne serai pas là dans la journée du 21, je te mets ce petit bout de programme, en espérant que ça réponde à ta question:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    % Dependances exprimées par Trap D
     
    depend(m1, c).
    depend(m1, d).
    depend(m2, b).
    depend(m2, c).
    depend(b, e).
    depend(b, f).
     
     
    %%%
     
    dependance(A,B) :-
      depend(A,T),
      dep(T,B).
     
    dep(A,A).
    dep(A,B) :- dependance(A,B).
     
     
    %%%
     
    inlist([T|_], T).
    inlist([_|Q], R) :- inlist(Q, R).
     
     
    l_dep(L, Dep) :-
      inlist(L, Package),
      dependance(Package, Dep).
     
    %%%
     
     
    liste_dependances(L,R) :-
      setof(Dep, l_dep(L, Dep), R).
    Exécution:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    |?- liste_dependances([m1, m2], Dep).
     
    Dep = [b, c, d, e, f] ;
    "On en a vu poser les armes avant de se tirer une balle dans le pied..."
    -- pydévelop

    Derniers articles:

    (SQL Server) Introduction à la gestion des droits
    (UML) Souplesse et modularité grâce aux Design Patterns
    (UML) Le Pattern Etat
    Autres articles...

  11. #11
    Membre extrêmement actif
    Avatar de Madmac
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2004
    Messages
    1 685
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Alimentation

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 685
    Points : 1 376
    Points
    1 376
    Billets dans le blog
    7
    Par défaut
    C'est excellent, j'étais en train de faire des recherche sur les mécanisme des moteur de système expert....

    Aurait-tu de la documentation à me suggérer pour la conception d'un 'parser', désolé pour l'anglicisme mais j'ignore le terme français. Je désire saisir les infos générés par le programme RPM, par le biais d'une redirection, pour les transformés en expression Prolog....

Discussions similaires

  1. Générer un arbre à partir des données
    Par daniel1985 dans le forum Général Java
    Réponses: 10
    Dernier message: 02/10/2012, 00h39
  2. Réponses: 4
    Dernier message: 21/04/2010, 16h17
  3. Réponses: 2
    Dernier message: 05/10/2004, 22h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo