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

Intelligence artificielle Discussion :

Quel langage pour le Langage Naturel ?


Sujet :

Intelligence artificielle

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2008
    Messages : 42
    Points : 17
    Points
    17
    Par défaut Quel langage pour le Langage Naturel ?
    Bonsoir à tous,
    Je suis vraisemblablement un Nième à vouloir concevoir un programme qui comprend le langage naturel, en représente les connaissances, et répond en langage naturel.

    J’ai les bases mais ça date de 15 ans (ingénieur en informatique, spécialité I.A., et mineur en sciences cognitives) à l’époque en 2-3h on pouvait faire des trucs très puissants grâce à Prolog (voire Lisp). J’avais par ailleurs codé en C le Bescherelle de conjugaison…

    Ma question : quel langage utiliser pour ce projet ?

    Pas uniquement un langage récursif comme Prolog, mais qui soit aussi itératif (ou qui s’interface avec le C++ par exemple) et qui permette aussi de gérer une base de données.

    J’ai vu des noms de nouveaux langages comme Scheme, Caml, Haskell, Erlang, Oz, Anubis…est-ce qu’ils conviendraient pour çà, et mieux que Prolog ? Tout en ayant aussi la puissance de Prolog pour représenter le langage naturel ?

    Merci beaucoup pour votre aide afin de m’éviter un ‘faux départ’…
    Hercule.

  2. #2
    Membre régulier

    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 78
    Points : 105
    Points
    105
    Par défaut
    Il n'y a à ce jour encore rien qui est près de détrôner Prolog nativement.
    D'ailleurs, le labo. d'IA spécialisé en traitement de la langue là où je suis fait une très grande partie de son boulot en Prolog.

    SWI-Prolog s'interface assez efficacement avec le C++.

    Aucun des langages que tu cites n'ont de facilités native de traitement de la langue, contrairement à Prolog (qui a été inventé par un linguiste, rappelons le).
    "The worst errors I've ever seen do not came from no knowledge, but from having just the the right amount of it, too small to really understand what you're doing, but enough to think you did. That amount of knowledge, is evil."

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2008
    Messages : 42
    Points : 17
    Points
    17
    Par défaut
    Hhuuummm, SWI-Prolog...intéressant...

    Mais ne pourrait-on pas inverser l'approche: programmer par exemple en C (ou tout autre langage 'bon à tout faire' se marriant bien avec une BdD) et reprogrammer à l'intérieur un 'analyseur de grammaire' pour matcher les phrases du langage naturel ?

    Mais cela reviendrait peut-être à refaire le moteur Prolog...à moins qu'il n'existe déjà ce genre de bibliothèque...?

  4. #4
    Alp
    Alp est déconnecté
    Expert éminent sénior

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 860
    Points
    11 860
    Par défaut
    Citation Envoyé par Aszarsha Voir le message
    Il n'y a à ce jour encore rien qui est près de détrôner Prolog nativement.
    D'ailleurs, le labo. d'IA spécialisé en traitement de la langue là où je suis fait une très grande partie de son boulot en Prolog.

    SWI-Prolog s'interface assez efficacement avec le C++.

    Aucun des langages que tu cites n'ont de facilités native de traitement de la langue, contrairement à Prolog (qui a été inventé par un linguiste, rappelons le).
    Tout à fait d'accord, du moins à ma connaissance, sur chacun des points donnés.

    Du coup ... bonne chance

  5. #5
    Membre régulier Avatar de Merfolk
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    170
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 170
    Points : 113
    Points
    113
    Par défaut
    hello,

    je ne sais pas si je suis hors sujet ou non mais :
    lex - yacc peut être ?
    http://www.linux-france.org/article/devl/lexyacc/
    Chasseur de bug en activité
    L'erreur est humaine, mais pour vraiment foutre le bordel, on a besoin d'un ordinateur

  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
    Citation Envoyé par Hercule78 Voir le message
    Hhuuummm, SWI-Prolog...intéressant...

    Mais ne pourrait-on pas inverser l'approche: programmer par exemple en C (ou tout autre langage 'bon à tout faire' se marriant bien avec une BdD) et reprogrammer à l'intérieur un 'analyseur de grammaire' pour matcher les phrases du langage naturel ?

    Mais cela reviendrait peut-être à refaire le moteur Prolog...à moins qu'il n'existe déjà ce genre de bibliothèque...?
    L'interfaçage avec un autre langage n'est intéressant à mon avis que dans l'optique d'un moteur de travail et d'une "couche de présentation" exemple IHM en C++, GTK ou java (SWING je crois) et moteur d'etude en Prolog.
    Tu vas te compliquer la vie à écrire un analyseur en C alors que le Prolog est un peu fait pour à la base.
    "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
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Trap D Voir le message
    L'interfaçage avec un autre langage n'est intéressant à mon avis que dans l'optique d'un moteur de travail et d'une "couche de présentation" exemple IHM en C++, GTK ou java (SWING je crois) et moteur d'etude en Prolog.
    Tu vas te compliquer la vie à écrire un analyseur en C alors que le Prolog est un peu fait pour à la base.
    voui, de l'autre côté j'ai travaillé sur un truc comme ça pour un système expert,en Prolog, et quand même le fait de le transformer en C à fait gagner plus d'un facteur 2000 en vitesse...

    Donc ça dépend un peu..

    Car souvent, un problème sémantique se résume à un gigantesque if imbriqué.

    Si donc on y pense bien, on peut tenter de modéliser ce if..

    (pour exemple, le système sur lequel je travaillais avait plus de 1600 règles, et nous l'avons transformé en un bloc de 400 lignes de 10 éléments chacune, avec une petite boucle bien paramétrée, on a non seulement gagné un facteur 2000, mais aussi remplacé 6000 lignes de Prolog par 600 de C...)
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 38
    Points : 45
    Points
    45
    Par défaut
    Bonjour.

    En ce qui concerne les langages d'écriture de règles grammaticales, je ne saurais trop te conseiller de regarder le langage MetaL très prtique et basé sur XML et donc facile à parser.
    Voili, Voilou
    FX

  9. #9
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Citation Envoyé par souviron34 Voir le message
    voui, de l'autre côté j'ai travaillé sur un truc comme ça pour un système expert,en Prolog, et quand même le fait de le transformer en C à fait gagner plus d'un facteur 2000 en vitesse...
    Est-ce vraiment le fait de le transformer en C qui a apporté ce gain gigantesque ou également un changement dans l'algorithme utilisé ?

    --
    Jedaï

  10. #10
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    non non c'est juste la traduction en C, qui a impose , l'analyse etant semantique dans Prolog, une re-actualisation de l'algo, et donc a remplace un "raisonnement" par un if imbrique..

    En fait, en gros, il y avait quelque chose comme 10 parametres avec des valeurs mix-max.

    Le raisonnement etait du style :

    si valeur1 compris entre bornmin1 bornemax1 ET valeur2 ....... ET .... alors "resultat est ..."
    si valeur1 compris entre bornmin2 bornemax2 ET valeur2 ....... ET .... alors "resultat est ..."

    (pas exprime sous cette forme, car utilisant justement les concepts PRolog, mais le resultat etait la, en analysant finement)


    Transforme en un if :

    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
     
    si valeur1 compris entre bornmin1 bornemax1
            si valeur2 ....... 
                  si valeur3 ....... 
                  sinon
                   ...
                  fin si
            sinon
                  .....
            fin si
    sinon
        si valeur1 compris entre bornmin2 bornemax2
             ....
        sinon
             ...
        fin si
    fin si
    un peu plus joli car parametre, mais le principe est la...
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2008
    Messages : 42
    Points : 17
    Points
    17
    Par défaut Représentation des connaissances & langage naturel
    Merci pour vos réponses...

    Aujourd'hui quelqu'un m'a prétendu que dans certaine(s) version(s) du C++ il était possible d'inclure du code en Prolog ??! C'est vrai ?!

    Sinon, quel bon BOUQUIN me conseilleriez-vous sur la représentation des connaissances en Prolog issues du langage naturel ? (pas un livre sur le matching de phrases du genre phrase(gn(article('le'),nom('chat'...) car ça je sais faire, mais plutôt un truc sur la représentation des connaissances, c'est-à-dire les...euhh...prédicats c'est ça ?)

    Merci !

  12. #12
    Membre régulier

    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 78
    Points : 105
    Points
    105
    Par défaut
    Citation Envoyé par Hercule78 Voir le message
    pas un livre sur le matching de phrases du genre phrase(gn(article('le'),nom('chat'...) car ça je sais faire, mais plutôt un truc sur la représentation des connaissances, c'est-à-dire les...euhh...prédicats c'est ça ?
    Pour le traitement de la langue en Prolog, on utilise des DCG qui construisent les prédicats, et ces prédicats ne s'utilisent pas comme tu l'as écrit. Ce qui semble supposer qu'en fait, non, tu ne sais pas faire du matching de phrase en Prolog...

    Si tu veux apprendre à vraiment maîtriser le Prolog, a la fois parce que la partie sur le traitement de la langue, mais aussi parce que le reste est excellement traité, Prolog Programming for Artificial Intelligence d'Ivan Bratko est ce livre qu'il te faut.
    "The worst errors I've ever seen do not came from no knowledge, but from having just the the right amount of it, too small to really understand what you're doing, but enough to think you did. That amount of knowledge, is evil."

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2008
    Messages : 42
    Points : 17
    Points
    17
    Par défaut
    OK, je vais creuser Prolog et les prédicats avec ce bouquin.

    Mais j'ai peut-être mal décrit mon projet; l'objectif est de pouvoir converser avec le programme, d'age mental peu élevé (de 3 à 5 ans).

    La difficulté n'est pas dans l'analyse syntaxique/lexicale comme la génération de phrases ou la 'traduction' de phrases, par exemple "le chat mange la souris" donne phrase(groupe_nominal(article('le'), nom('chat'), verbe('mange'...) qui correspond à une simple grammaire qui doit pouvoir être gérée dans presque tous les langages.

    La difficulté est plutôt dans la représentation des connaissances, c-a-d le 'plaquage' de phrase(...article...nom('chat')...) par rapport à la représentation des connaissances très orientée objet: le chat est un animal, qui a 4 pattes...etc, qui roupille à longueur de journée, les chats mangent des souris, etc. Avec une représentation des probabilités d'occurence en logique floue.
    Avec la représentation du temps, des intentions (bonne, mauvaise, etc), etc.
    Et tout cela change en dynamique bien sûr...

    J'ai peur que le Prolog soit limité pour tout cela, ou alors j'ai mal compris la puissance des prédicats ?

  14. #14
    Membre régulier

    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 78
    Points : 105
    Points
    105
    Par défaut
    Citation Envoyé par Hercule78 Voir le message
    J'ai peur que le Prolog soit limité pour tout cela, ou alors j'ai mal compris la puissance des prédicats ?

    Si tu comptes faire de la génération sémantique de phrases, dit tout de suite à ton patron d'employer une université et d'attendre une dizaine d'années, c'est encore un domaine inaccessible pour l'état de l'art.


    De mémoire, le mieux à avoir été obtenu est justement celui d'enfant de l'âge cité, et par des chercheurs qui passent leur vie dans le domaine. Il va te falloir bien du courage pour y arriver ; sans compter qu'il n'existe à l'heure actuelle aucun corpus de texte consistant annoté sémantiquement...
    "The worst errors I've ever seen do not came from no knowledge, but from having just the the right amount of it, too small to really understand what you're doing, but enough to think you did. That amount of knowledge, is evil."

  15. #15
    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
    Citation Envoyé par Hercule78 Voir le message
    Aujourd'hui quelqu'un m'a prétendu que dans certaine(s) version(s) du C++ il était possible d'inclure du code en Prolog ??! C'est vrai ?!
    En SWI-Prolog, tu peux appeler des prédicats ecrits en C ou C++ et un programme C ou C++ peut fort bien appeler un bout de code ecrit en Prolog par l'intermédiaire d'une dll.
    Tu as un exemple ici

    Pour une documentation plus complète, regarde
    "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

  16. #16
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2008
    Messages : 42
    Points : 17
    Points
    17
    Par défaut Langage pour la représentation des "connaissances"
    Tout cela est intéressant.

    A me remémorer Prolog, je me souviens des N-uplets qui permettent de transcrire une phrase 'langage naturel' en prédicats, et ensuite de faire de la résolution par substitution (c'est çà ?) ce qui permet en fait d'inférer et de faire des déductions logiques...PUISSANT !

    MAIS très bien pour de "l'académique" mais ce sera vite trop lourd et contraignant si on veut couvrir un domaine assez large...

    En fait j'ai peut-être pris le problème par le mauvais bout (le langage naturel). Car on pense avant de lire ou écrire. C'est donc sur la représentation des connaissances qu'il faut me concentrer:
    CONCEPT - RELATION - CONCEPT
    Ex: Chat - AppartientAFamille - Carnivores
    Carnivores - AppartientAFamille - Animaux
    Chat - EstFaitDe [4] - Patte
    Etc, etc, etc.

    Mon interrogation change: quel est le langage qui me permettra de représenter des milliers de ces liens simples (que je vais allègrement complexifier) puis de les parcourir ?

    Ce sont des pointeurs...donc, le C++ ?

  17. #17
    mon_nom_est_personne
    Invité(e)
    Par défaut
    Je suis d'accord avec le precedant post. En temps que specialiste en TAL (traitement automatique des langues) je pense que prolog n'a plus lieu d'etre car il est base sur de vieilles theories syntaxiques comme X_ (prononce "x barre") et les branchements binaire. cCest cela shematiquement:

    p->sn,sv
    sv -> v,sn
    sn -> n
    (ca vous rappelle rien ? )

    Or les recentes recherches sur le sujet ont montrees, contrairement a ce qu'a dit chomsky, de la syntaxe ne decoule pas le sens. Je te recommande ainsi de pas trop t'attarder sur le parsing syntaxique (et de t'interesser a des formalismes grammaticaux comme lfg ou hpsg) mais de travaille sur la couche semantique. Bref travailler sur ton ontologie des connaissance (j'espere pour toi que c'est un develloppement dans le cadre d'un vocabulaire technique sans ambiguite). je te recommande alors de faire des recherche du cote de protege, n3, rdf, le formalisme ontologique appeller lexique generatif ou en anglais generative lexicon de Pustejovsky ou encore le dictionnaire explicatif et combinatoire de Mel'uk. j'ai travailler avec ca sur un systeme similaire est les resultats n'etait pas si mauvais (logiciel d'e-learning de la langue francaise pour les locuteurs etrangers).

    j'espere que t'en attend pas trop, car a titre d'information, le MIT a mis sur l'affaire les plus gros cerveaux depuis l'apres deuxieme guerre mondiale et les resultat ne sont toujours pas tres pertinants (cf. tout les traducteur automatique du monde).

  18. #18
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 17
    Points : 2
    Points
    2
    Par défaut
    Je prends le sujet alors qu'il est en bas de la première page.

    Moi aussi, je suis sceptique sur le Prolog (qui est bien pour résoudre des problèmes du type: traverser d'une rive à l'autre sans qu'il y ait de problèmes: choux, chèvre, loup).
    J'ai découvert ce langage en maitrise informatique et pencherait aussi plutôt pour le C++ couplé à un analyseur de langage naturel comme AGFL.

    J'ai aussi vu le langage LISP et me suis amusé a refaire ce que j'avais fait en LISP mais en C++ (c'était de la dérivation de polynômes suivant un système de base de règles, base de faits avec un moteur d'inférence) . C'est possible, même si ça demande plus de codes mais le résultat est plus rapide.

    Voilà ce n'est que mon avis.

  19. #19
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2008
    Messages : 42
    Points : 17
    Points
    17
    Par défaut Langage naturel, et représentation des connaissances
    Bonsoir à tous !
    Je reprends ce post qui date de plus d'un an, car la passion du langage naturel et de la représentation des connaissances est éternelle...

    Au début les avis penchaient pour SWI-Prolog (éventuellement avec une couche IHM en C++) puis au final on basculait plutôt sur les ontologies...

    J'ai installé Protégé 4.0 avec le raisonneur Fact++, et OWLviz pour visualiser les connaissances graphiquement.

    Pour l'instant je cherche comment ajouter la couche compréhension du langage naturel, si facile en Prolog, par exemple: si je tape "Marie est-elle la soeur de Jean ?" j'obtiens Soeur(Marie,Jean) que j'envoie au raisonneur Fact++ (après l'avoir traduit dans son language) qui peut le vérifier facilement sur la base de l'ontologie, et me répondre oui ou non.
    Si vous avez une piste sur le sujet, merci d'avance !

    Je n'ai pas souhaité m'orienter vers Prolog, car ensuite il faut rajouter la représentation sur une trame temporelle, la gestion en logique floue de chaque élément, et le fait qu'un énoncé n'est pas forcément que vrai ou Faux mais peut aussi être probable, ou être vrai si on le change un peu, et toute cette flexibilité je la vois très mal en Prolog...

    Et si vous aussi vous jouez aux dieux à vouloir recréer l'intelligence en représentant les connaissances traitées à partir du langage naturel, contactez-moi et avançons ensemble !!
    Hercule.

  20. #20
    Membre émérite
    Avatar de SpiceGuid
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 704
    Points : 2 990
    Points
    2 990
    Par défaut pas une question d'ergonomie
    Citation Envoyé par Hercule78
    Je reprends ce post qui date de plus d'un an, car la passion du langage naturel et de la représentation des connaissances est éternelle...
    J'ai l'impression que depuis un an tu n'as pas progressé sur les logiques de description et que tu persiste à prendre le problème par la syntaxe plutôt que par la logique.
    Je ne dis pas que tu ne fais pas d'effort.
    Par contre je vois bien le travers dans ton approche:
    • comme nombre de visiteurs du forum dvp tu sembles mettre en avant la question des utilitaires (quel langages,quels outils,quel algorithme) au lieu de chercher à améliorer ta compréhension du domaine
    • autrement dit je suis presque certain que tu souscris à l'idée selon laquelle il n'y aurait pas besoin de comprendre le problème si on sait concevoir la solution
    • ton approche est sans doute pragmatique, cependant des fois il est nécessaire de comprendre et pour ça il est d'abord nécessaire d'apprendre
    • en gros ton approche magique consiste à réduire l'intelligence à une question d'ergonomie de l'interface


    Citation Envoyé par Hercule78
    J'ai installé Protégé 4.0 avec le raisonneur Fact++, et OWLviz pour visualiser les connaissances graphiquement.

    Pour l'instant je cherche comment ajouter la couche compréhension du langage naturel, si facile en Prolog, par exemple: si je tape "Marie est-elle la soeur de Jean ?" j'obtiens Soeur(Marie,Jean) que j'envoie au raisonneur Fact++ (après l'avoir traduit dans son language) qui peut le vérifier facilement sur la base de l'ontologie, et me répondre oui ou non.
    Si vous avez une piste sur le sujet, merci d'avance !
    Il ne faut pas être trop naif.
    Si cette interface en langage naturelle n'est pas fournie d'office avec l'outil ça n'est probablement pas parce que personne d'autre que toi n'y a pensé.
    Il y a forcément une autre raison que tu ignore ou que tu veux ignorer.

    Pour comprendre cette raison il faudrait faire l'effort de comprendre la logique de description qui se cache derrière les graphes conceptuels.
    Tu as sans doute entendu parler de ABox (les instances ou objets) et de TBox (les types ou concepts), ça veut dire que le langage est fortement typé:
    • soit de façon explicite (certaines constructions/requêtes sont interdites)
    • soit de façon implicite (certaines requêtes sur certaines constructions déclenchent une erreur à l'exécution)


    C'est ce qui explique que l'interface textuelle est dans un format du style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (exists ((x Sitting) (y Mat)) (and (Cat Elsie) (agent x Elsie) (location x y)))
    Format qui n'a rien de naturel.
    Bien sûr tu peux toujours maquiller ce langage formel avec du sucre syntaxique qui lui donnera un aspect plus naturel, mais alors:
    • pour ce faire tu vas devoir comprendre la logique de description et son système de typage
    • il faudra répercuter la logique sous-jacente sur l'interface utilisateur, du coup tu devras générer des messages d'erreurs qui n'auront rien du tout de naturel ou d'ergonomique
    • si au contraire tu te contente d'une transformation purement syntaxique (puisque c'est "facile en Prolog") alors les requêtes échoueront à l'exécution et les messages d'erreurs seront incompréhensibles (car en langage "natif" au lieu de en langage "naturel")
    • ton langage "naturel" ne sera qu'un cache-misère pour ne pas avouer que l'utilisateur doit s'exprimer dans un langage d'expert; le fait que l'interface soit dans un langage plus naturel ne résout en rien le problème d'accessibilité de la logique de description, il ne fait que l'aggraver en le rendant implicite


    L'interface n'est pas naturelle parce que la logique derrière n'est pas naturelle.
    La question de l'interface est totalement superficielle.
    Invente une logique naturelle et après ce sera un jeu d'enfant de lui fabriquer une interface naturelle.
    À moins que tu sois un logicien de génie il n'y a rien que tu puisses y faire car ça n'est pas une question d'ergonomie de l'interface, c'est plus fondamental.
    Du même auteur: mon projet, le dernier article publié, le blog dvp et le jeu vidéo.
    Avant de poser une question je lis les règles du forum.

Discussions similaires

  1. Quel langage pour le Langage Naturel ?
    Par Hercule78 dans le forum Langages fonctionnels
    Réponses: 25
    Dernier message: 17/12/2017, 01h24
  2. Débat : Quel est le meilleur langage pour coder en open-source ?
    Par Katleen Erna dans le forum Actualités
    Réponses: 15
    Dernier message: 17/08/2009, 10h54
  3. Quel est le meilleur langage pour la portabilité : Windows & Linux (voire Mac) ?
    Par iubito dans le forum Débats sur le développement - Le Best Of
    Réponses: 57
    Dernier message: 26/11/2007, 23h45
  4. Quels sont les meilleurs langages pour créer une application non-web (en local) ?
    Par Skeud007 dans le forum Langages de programmation
    Réponses: 11
    Dernier message: 31/08/2007, 16h33
  5. Réponses: 4
    Dernier message: 12/05/2007, 00h55

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