![]() |
| |||||||
| S'inscrire | FAQ | Membres | Calendrier | Recherche | Messages du jour | Marquer les forums comme lus |
![]() |
| LinkBack | Outils de la discussion | Modes d'affichage |
| |||
| [suivi sur fr.comp.ia] Bonjour, Skill est un langage que l'on pourrait classer dans la même catégorie que Prolog, mais il en diffère sur beaucoup de points. Il n'existe pour l'instant que sous la forme d'une maquette de maquette qui n'est guère utilisable que pour en expliquer les concepts principaux, La maquette est présentée et téléchargeable ici: http://patrick.davalan.free.fr/skill-0/ Le but de cette présentation (dont la lecture est facile) est pour moi d'obtenir des critiques et des suggestions car c'est un domaine que je connais très peu et cette maquette est sans doute un peu naïve. Je vous remercie de votre attention. -- Patrick Davalan, almazz à wanadoo point fr |
| | ||||
| ||||
| |
| |||
| Harpo <invalid***invalid.invalid> writes: > [suivi sur fr.comp.ia] > > Bonjour, > > Skill est un langage que l'on pourrait classer dans la même catégorie > que Prolog, mais il en diffère sur beaucoup de points. > > Il n'existe pour l'instant que sous la forme d'une maquette de maquette > qui n'est guère utilisable que pour en expliquer les concepts principaux, > La maquette est présentée et téléchargeable ici: > > http://patrick.davalan.free.fr/skill-0/ > > Le but de cette présentation (dont la lecture est facile) est pour moi > d'obtenir des critiques et des suggestions car c'est un domaine que je > connais très peu et cette maquette est sans doute un peu naïve. > > Je vous remercie de votre attention. Je suggere deja de changer de nom, SKILL est deja le nom d'un langage de programmation (un dialecte de Lisp). Ca ne m'etonnerais pas du tout que le nom soit depose. Sur le fond, je ne vois pas ce qu'apporte ton langage par rapport a prolog (la syntaxe est differente, mais ca ne suffit pas). A+ -- Jean-Marc Site de usenet-fr: http://www.usenet-fr.news.eu.org |
| |||
| Harpo <invalid***invalid.invalid> writes: > [suivi sur fr.comp.ia] > > Bonjour, > > Skill est un langage que l'on pourrait classer dans la même catégorie > que Prolog, mais il en diffère sur beaucoup de points. > > Il n'existe pour l'instant que sous la forme d'une maquette de maquette > qui n'est guère utilisable que pour en expliquer les concepts principaux, > La maquette est présentée et téléchargeable ici: > > http://patrick.davalan.free.fr/skill-0/ > > Le but de cette présentation (dont la lecture est facile) est pour moi > d'obtenir des critiques et des suggestions car c'est un domaine que je > connais très peu et cette maquette est sans doute un peu naïve. > > Je vous remercie de votre attention. Je suggere deja de changer de nom, SKILL est deja le nom d'un langage de programmation (un dialecte de Lisp). Ca ne m'etonnerais pas du tout que le nom soit depose. Sur le fond, je ne vois pas ce qu'apporte ton langage par rapport a prolog (la syntaxe est differente, mais ca ne suffit pas). A+ -- Jean-Marc Site de usenet-fr: http://www.usenet-fr.news.eu.org |
| |||
| Jean-Marc Bourguet <jm***bourguet.org> writes: > Harpo <invalid***invalid.invalid> writes: > > > [suivi sur fr.comp.ia] [SKILL] > > http://patrick.davalan.free.fr/skill-0/ > > > > Le but de cette présentation (dont la lecture est facile) est pour moi > > d'obtenir des critiques et des suggestions car c'est un domaine que je > > connais très peu et cette maquette est sans doute un peu naïve. > > > > Je vous remercie de votre attention. > > Je suggere deja de changer de nom, SKILL est deja le nom d'un langage de > programmation (un dialecte de Lisp). Ca ne m'etonnerais pas du tout que le > nom soit depose. > > Sur le fond, je ne vois pas ce qu'apporte ton langage par rapport a prolog > (la syntaxe est differente, mais ca ne suffit pas). Peut-être faudrait-il détailler le rejet de l'hypothèse du monde clos. En prolog, la résolution d'un but conduit à la production d'un liste de solutions, qui (quand elle est finie) s'achève par un arret (y'a plus d'autres solutions) ou une boucle infinie. Est-ce que le refus de Hyp. du monde clos conduit à différencier un autre cas de terminaison, qu'on interprèterait pas "j'en trouve pas d'autres, mais y en a ptet, c'est juste que je sais pas" ? pour le programmeur, ca se ferait comment, pour matérialiser la difference entre "romeo" et "juliette" sont *des* personnages de R+J "romeo" et "juliette" sont *les* roles titres. ? MB -- Michel BILLAUD billaud***labri.fr LABRI-Université Bordeaux I tel 05 4000 6922 / 05 5684 5792 351, cours de la Libération http://www.labri.fr/~billaud 33405 Talence (FRANCE) |
| |||
| Jean-Marc Bourguet <jm***bourguet.org> writes: > Harpo <invalid***invalid.invalid> writes: > > > [suivi sur fr.comp.ia] [SKILL] > > http://patrick.davalan.free.fr/skill-0/ > > > > Le but de cette présentation (dont la lecture est facile) est pour moi > > d'obtenir des critiques et des suggestions car c'est un domaine que je > > connais très peu et cette maquette est sans doute un peu naïve. > > > > Je vous remercie de votre attention. > > Je suggere deja de changer de nom, SKILL est deja le nom d'un langage de > programmation (un dialecte de Lisp). Ca ne m'etonnerais pas du tout que le > nom soit depose. > > Sur le fond, je ne vois pas ce qu'apporte ton langage par rapport a prolog > (la syntaxe est differente, mais ca ne suffit pas). Peut-être faudrait-il détailler le rejet de l'hypothèse du monde clos. En prolog, la résolution d'un but conduit à la production d'un liste de solutions, qui (quand elle est finie) s'achève par un arret (y'a plus d'autres solutions) ou une boucle infinie. Est-ce que le refus de Hyp. du monde clos conduit à différencier un autre cas de terminaison, qu'on interprèterait pas "j'en trouve pas d'autres, mais y en a ptet, c'est juste que je sais pas" ? pour le programmeur, ca se ferait comment, pour matérialiser la difference entre "romeo" et "juliette" sont *des* personnages de R+J "romeo" et "juliette" sont *les* roles titres. ? MB -- Michel BILLAUD billaud***labri.fr LABRI-Université Bordeaux I tel 05 4000 6922 / 05 5684 5792 351, cours de la Libération http://www.labri.fr/~billaud 33405 Talence (FRANCE) |
| |||
| On Tue, 03 Apr 2007 10:51:37 +0200, Jean-Marc Bourguet wrote: > Je suggere deja de changer de nom, SKILL est deja le nom d'un langage de > programmation (un dialecte de Lisp). Oui, j'ai appris ça en cours de route. > Ca ne m'etonnerais pas du tout que le nom soit depose. Au train où on va, tous les noms de la langue anglaise seront bientôt déposés. Je vais même me presser de déposer 'Bullshit' avant qu'il ne soit pris. Le nom n'est pas un gros problème à ce stade, ça peut se changer. > Sur le fond, je ne vois pas ce qu'apporte ton langage par rapport a > prolog (la syntaxe est differente, mais ca ne suffit pas). La syntaxe a une importance mineure, j'en ai pris une qui est, ama, compréhensible et facile à implémenter (ça va un peu de paire). Les différences avec Prolog sont : - Skill n'est basé sur aucune logique. - Il ne fait pas l'hypothèse d'un monde clôt (ce qui n'est pas vrai n'est pas faux) - Un prédicat peut avoir plusieurs valeurs simultanément et elles ne sont pas limitées au domaine {true, not true} Concrètement : En Prolog, un nom de Prédicat ne peut être une variable libre dans une règle, i.e. on ne peut pas écrire : X(Y, Z) |- <blah> En Sill (je viens de faire un typo, mais je le retiens ! je vais peut-être me pencher sur un 'Window sill' ), on peut écrire:(?x ?y ?z) <- <blah> Le fait qu'une chose ne soit pas vraie ne voulant pas dire qu'elle soit fausse pourrait permettre à Skill d'être utilisé dans des systèmes non basés sur le tiers-exclus. Son utilité n'est pas dans le langage d'interrogation, délibérement baclé et simplement utile à fin de démos et de tests, Il vise à offrir une API d'assez bas niveau pour faire du pattern-matching pour des applications basées sur une logique. NB: J'ai peut-être dit des conneries plus haut, j'ai une connaissance limitée en logiques et mon expérience en Prolog date de bientôt 2 mois, j'ai profité de quelques heures de libérées par jour pour l'apprendre, j'ai vite abandonné parce que c'est difficile pour moi d'apprendre une chose pour laquelle je n'ai pas d'utilisation immédiate. Je préfère écrire. Déjà maintenant, je comprends mieux les problèmes qu'il y a à implémenter ce genre de langage. Merci pour ta réponse. -- SKILL (Simple Knowledge Inference Logic Language) http://patrick.davalan.free.fr/skill-0/ |
| |||
| On Tue, 03 Apr 2007 10:51:37 +0200, Jean-Marc Bourguet wrote: > Je suggere deja de changer de nom, SKILL est deja le nom d'un langage de > programmation (un dialecte de Lisp). Oui, j'ai appris ça en cours de route. > Ca ne m'etonnerais pas du tout que le nom soit depose. Au train où on va, tous les noms de la langue anglaise seront bientôt déposés. Je vais même me presser de déposer 'Bullshit' avant qu'il ne soit pris. Le nom n'est pas un gros problème à ce stade, ça peut se changer. > Sur le fond, je ne vois pas ce qu'apporte ton langage par rapport a > prolog (la syntaxe est differente, mais ca ne suffit pas). La syntaxe a une importance mineure, j'en ai pris une qui est, ama, compréhensible et facile à implémenter (ça va un peu de paire). Les différences avec Prolog sont : - Skill n'est basé sur aucune logique. - Il ne fait pas l'hypothèse d'un monde clôt (ce qui n'est pas vrai n'est pas faux) - Un prédicat peut avoir plusieurs valeurs simultanément et elles ne sont pas limitées au domaine {true, not true} Concrètement : En Prolog, un nom de Prédicat ne peut être une variable libre dans une règle, i.e. on ne peut pas écrire : X(Y, Z) |- <blah> En Sill (je viens de faire un typo, mais je le retiens ! je vais peut-être me pencher sur un 'Window sill' ), on peut écrire:(?x ?y ?z) <- <blah> Le fait qu'une chose ne soit pas vraie ne voulant pas dire qu'elle soit fausse pourrait permettre à Skill d'être utilisé dans des systèmes non basés sur le tiers-exclus. Son utilité n'est pas dans le langage d'interrogation, délibérement baclé et simplement utile à fin de démos et de tests, Il vise à offrir une API d'assez bas niveau pour faire du pattern-matching pour des applications basées sur une logique. NB: J'ai peut-être dit des conneries plus haut, j'ai une connaissance limitée en logiques et mon expérience en Prolog date de bientôt 2 mois, j'ai profité de quelques heures de libérées par jour pour l'apprendre, j'ai vite abandonné parce que c'est difficile pour moi d'apprendre une chose pour laquelle je n'ai pas d'utilisation immédiate. Je préfère écrire. Déjà maintenant, je comprends mieux les problèmes qu'il y a à implémenter ce genre de langage. Merci pour ta réponse. -- SKILL (Simple Knowledge Inference Logic Language) http://patrick.davalan.free.fr/skill-0/ |
| |||
| On Tue, 03 Apr 2007 11:23:47 +0200, Michel Billaud wrote: >> Sur le fond, je ne vois pas ce qu'apporte ton langage par rapport a >> prolog (la syntaxe est differente, mais ca ne suffit pas). > > Peut-être faudrait-il détailler le rejet de l'hypothèse du monde > clos. > > En prolog, la résolution d'un but conduit à la production d'un liste > de solutions, qui (quand elle est finie) s'achève par un arret (y'a > plus d'autres solutions) ou une boucle infinie. C'est la même chose pour skill, à ses bugs près, le fait que la boucle ne soit pas infinie tient surtout du hack pour le moment. Ce sont ama des problèmes séparés. > Est-ce que le refus de Hyp. du monde clos conduit à différencier un > autre cas de terminaison, qu'on interprèterait pas "j'en trouve pas > d'autres, mais y en a ptet, c'est juste que je sais pas" ? Le problème de la terminaison est pour moi un problème différent (et non encore résolu) dans skill. Le problème du monde clos est encore ouvert dans ma tête (le projet est en cours de design, il est présenté ici pour m'aider à rélèchir). Pour moi, il y a 2 idées principales : 1 - un prédicat (bien que le terme soit inadéquat) n'a pas de valeur vrai ou faux déterminée, il peut avoir une valeur quelconque ou une valeur _none_ (un peu comme nil), qui indique plutôt une valeur non trouvable. 2 - il peut avoir plusieurs valeurs en même temps (mais je vais peut-être laisser tomber ça), cela me semble cohérent avec le fait qu'on décide de ne pas inférer qu'il ait une certaine valeur (assimilée à non-vrai) s'il n'a pas la valeur vrai. Mais bon, la logique et moi... > pour le programmeur, ca se ferait comment, pour matérialiser la > difference entre "romeo" et "juliette" sont *des* personnages de R+J > "romeo" et "juliette" sont *les* roles titres. ? Là, j'ai du mal à comprendre la question. Pour moi, cela vient du fait qu'ils apparaissent dans le titre, mais si la pièce s'était appelée 'Mort à Verone' ça ne marcherait pas. Peut-être faudrait-il chercher à le discerner en fonction du temps de présence des personnage sur les planches, le fait que l'on puisse attribuer une valeur quelconque à un fait permet de classer suivant cette valeur, disons un nombre, ça laisse ouvert à des calculs de probabilité. Mais parfois l'importance des choses se situent dans leur absence, l'auteur absent peut être aussi important que les personnages qui en sont en quête, et l'absence ne peut parfois être manifeste que dans le non-dit. De toute manière, cela dépasse la portée de Sill (voilà le nom est adopté !) qui reste en-deçà de cette problématique. Il a l'ambition de : 1- fournir une interface de bas niveau à une structure de données adaptée aux inférences. Cette structure doit avoir un certain nombre de qualités, notamment en termes de performances. Le design est en assez bonne voie. 2- fournir, à un niveau au-dessus, un langage exploitant cette structure, c'est ce langage qui fait l'objet de la présentation Par analogie, on pourrait dire que cela correspondrait à un RDBMS qui proposerait une interface avec l'algèbre relationnelle et un truc comme SQL. Bon, j'espère faire moins cobol-like que SQL. Le langage d'interrogation qui permet d'interroger d'un terminal en gérant l'interaction avec un utilisateur et qui a été écrit en une petite matinée est totalement ininteressant, c'est juste une appli minimale qui utilise le langage sous-jacent. Ma problématique à moi que j'ai là maintenant, c'est, si on fait exception de mes bugs et de ceux de mes programmes (qui font souvent leurs exceptions tout seuls), c'est de proposer quelque chose d'utilisable pour une frange aussi large que possible de problèmes, et qui se placerait comme un outil et non comme un framework. Enfin, tout ça c'est encore un peu flou dans ma tête, merci de m'avoir répondu. -- SK^hILL (Simple Knowledge^w Inference Logic Language) http://patrick.davalan.free.fr/skill-0/ Ou alors peut-être kill ? |
| |||
| On Tue, 03 Apr 2007 11:23:47 +0200, Michel Billaud wrote: >> Sur le fond, je ne vois pas ce qu'apporte ton langage par rapport a >> prolog (la syntaxe est differente, mais ca ne suffit pas). > > Peut-être faudrait-il détailler le rejet de l'hypothèse du monde > clos. > > En prolog, la résolution d'un but conduit à la production d'un liste > de solutions, qui (quand elle est finie) s'achève par un arret (y'a > plus d'autres solutions) ou une boucle infinie. C'est la même chose pour skill, à ses bugs près, le fait que la boucle ne soit pas infinie tient surtout du hack pour le moment. Ce sont ama des problèmes séparés. > Est-ce que le refus de Hyp. du monde clos conduit à différencier un > autre cas de terminaison, qu'on interprèterait pas "j'en trouve pas > d'autres, mais y en a ptet, c'est juste que je sais pas" ? Le problème de la terminaison est pour moi un problème différent (et non encore résolu) dans skill. Le problème du monde clos est encore ouvert dans ma tête (le projet est en cours de design, il est présenté ici pour m'aider à rélèchir). Pour moi, il y a 2 idées principales : 1 - un prédicat (bien que le terme soit inadéquat) n'a pas de valeur vrai ou faux déterminée, il peut avoir une valeur quelconque ou une valeur _none_ (un peu comme nil), qui indique plutôt une valeur non trouvable. 2 - il peut avoir plusieurs valeurs en même temps (mais je vais peut-être laisser tomber ça), cela me semble cohérent avec le fait qu'on décide de ne pas inférer qu'il ait une certaine valeur (assimilée à non-vrai) s'il n'a pas la valeur vrai. Mais bon, la logique et moi... > pour le programmeur, ca se ferait comment, pour matérialiser la > difference entre "romeo" et "juliette" sont *des* personnages de R+J > "romeo" et "juliette" sont *les* roles titres. ? Là, j'ai du mal à comprendre la question. Pour moi, cela vient du fait qu'ils apparaissent dans le titre, mais si la pièce s'était appelée 'Mort à Verone' ça ne marcherait pas. Peut-être faudrait-il chercher à le discerner en fonction du temps de présence des personnage sur les planches, le fait que l'on puisse attribuer une valeur quelconque à un fait permet de classer suivant cette valeur, disons un nombre, ça laisse ouvert à des calculs de probabilité. Mais parfois l'importance des choses se situent dans leur absence, l'auteur absent peut être aussi important que les personnages qui en sont en quête, et l'absence ne peut parfois être manifeste que dans le non-dit. De toute manière, cela dépasse la portée de Sill (voilà le nom est adopté !) qui reste en-deçà de cette problématique. Il a l'ambition de : 1- fournir une interface de bas niveau à une structure de données adaptée aux inférences. Cette structure doit avoir un certain nombre de qualités, notamment en termes de performances. Le design est en assez bonne voie. 2- fournir, à un niveau au-dessus, un langage exploitant cette structure, c'est ce langage qui fait l'objet de la présentation Par analogie, on pourrait dire que cela correspondrait à un RDBMS qui proposerait une interface avec l'algèbre relationnelle et un truc comme SQL. Bon, j'espère faire moins cobol-like que SQL. Le langage d'interrogation qui permet d'interroger d'un terminal en gérant l'interaction avec un utilisateur et qui a été écrit en une petite matinée est totalement ininteressant, c'est juste une appli minimale qui utilise le langage sous-jacent. Ma problématique à moi que j'ai là maintenant, c'est, si on fait exception de mes bugs et de ceux de mes programmes (qui font souvent leurs exceptions tout seuls), c'est de proposer quelque chose d'utilisable pour une frange aussi large que possible de problèmes, et qui se placerait comme un outil et non comme un framework. Enfin, tout ça c'est encore un peu flou dans ma tête, merci de m'avoir répondu. -- SK^hILL (Simple Knowledge^w Inference Logic Language) http://patrick.davalan.free.fr/skill-0/ Ou alors peut-être kill ? |
| |
| |
![]() |
| Tags: ann, inference, knowledge, language, logic, simple, skill |
| Outils de la discussion | |
| Modes d'affichage | |
| |
| ||||
| Discussion | Auteur | Forum | Réponses | Dernier message |
| Logic ou Cubase ? | Gérald Niel | Newsgroup fr.comp.musique | 35 | 04/12/2007 03h04 |
| Sound knowledge | marc | Newsgroup fr.lettres.langue.anglaise | 8 | 03/12/2007 02h20 |
| [VDS 94] 2GO DDR2 800 Mhz (PC6400) G.Skill | Pr3sCotT | Newsgroup fr.petites-annonces.informatique.materiel | 0 | 06/09/2007 08h19 |
| [ANN] Skill (simple knowledge inference logic language) | Harpo | Newsgroup fr.comp.lang.general | 0 | 03/04/2007 05h10 |
| [ANN] Skill (simple knowledge inference logic language) | Harpo | Newsgroup fr.comp.developpement | 0 | 03/04/2007 05h10 |