À quelle fréquence Prolog / ASP est-il utilisé dans des domaines autres que la recherche?


9

Je viens tout juste de découvrir KRR (représentation des connaissances et raisonnement) et ASP, sans en avoir entendu parler auparavant (sauf un peu sur prolog). J'ai lu un peu à leur sujet et l'un de leurs principaux usages semble être les IA.

Ma question serait de savoir à quel point ASP ou d'autres langages déclaratifs sont largement utilisés, y a-t-il des programmes fréquemment utilisés qui les utilisent (comme les moteurs de recherche?) Ou est-ce principalement à des fins de recherche? Quelle peut être la raison pour laquelle ils ne sont pas si bien connus? Est-ce parce que le développement de l'IA appartient à un niveau de programmation plus "avancé"?


Cela semble hors sujet ici.
Yuval Filmus

2
C'est le deuxième endroit où je l'ai posté, une idée où serait-ce sur le sujet?
FloriOn

@FloriOn: quelle est la première place et la première occurrence de votre question?
Basile Starynkevitch

Prolog était bon pour son époque mais est vraiment difficile à utiliser dans un grand projet. La syntaxe devient très obscure en termes complexes, interpréter toujours la structure entière dans l'arbre desigion n'est pas non plus ce que vous désirez - le système KRR vous aurait d'autres fonctionnalités ...
user8426627

Réponses:


4

le degré d'utilisation d'ASP ou d'autres langages déclaratifs

Vous pouvez voir l'activité de Prolog qui, je pense, est le langage de programmation ASP le plus courant:

Sur la base de cela, le meilleur package de Prolog est (483/139 326) x 100 = 0,35% aussi populaire que l'un des gros packages de Node.js. Ou 0,07% autant de colis.

est-ce principalement à des fins de recherche

OMI oui, c'est surtout à des fins de recherche. Mais il est similaire à Ocaml , qui d'après mon expérience était principalement à des fins de recherche jusqu'à ce que des utilisateurs d'entreprise comme Facebook publient Flow (programmation JavaScript typée), et d'autres publient Coq ( vérification automatisée des théorèmes), ce qui a contribué à amener Ocaml dans le courant dominant.

Quelle peut être la raison pour laquelle ils ne sont pas si bien connus?

IMO Prolog n'est pas utilisé car il s'agit (a) d'un paradigme différent, (b) le gestionnaire de paquets n'est pas à la hauteur (c'est un gros problème de nos jours), et (c) il n'y a pas de cadre Web évangélisé . S'il y avait un bon gestionnaire de paquets comme NPM pour Node.js, et qu'il y avait un cadre Web qui était commercialisé, ainsi qu'un petit groupe d'évangélistes, cela aiderait à le faire grandir. Ruby avait 37 signaux et Rails, Python avait Google, etc.

Est-ce parce que le développement de l'IA appartient à un niveau de programmation plus "avancé"?

Non, pas vraiment. Certaines recherches sur l'IA utilisent prolog pour modéliser des trucs , mais ce n'est pas une exigence pour l'IA. L'IA pourrait être divisée en deux parties: (1) modèles d'apprentissage automatique / basés sur les probabilités où les relations sont apprises et mal définies, puis (2) modèles définis manuellement. La plupart des IA sont un mélange des deux, mais les modèles définis manuellement sont précieux et gardés confidentiels pour la plupart. Les modèles définis manuellement peuvent être définis à l'aide de Prolog , et il existe quelques documents pour le faire, mais ce n'est pas nécessaire. Pour résumer, tout le travail sur l'IA peut être effectué dans des langages de programmation normaux, juste que Prolog peut rendre l'écriture légèrement plus compacte dans certains cas.


2
1. Je pense que Coq est beaucoup moins courant que OCaml. 2. SWI-Prolog a un framework web swi-prolog.org/FAQ/PrologLAMP.txt , pathwayslms.com/swipltuts/html/index.html Pour ne pas dire, qui n'a pas été suffisante pour le rendre grand public.
Alexey Romanov

Dang, je pensais que cela pourrait aider: p
Lance Pollard

Une partie de cela se résume à la facilité d'installation, et les prologues et les packages sont difficiles à installer et à exécuter .
Lance Pollard

6
Il y a bien plus dans le monde de la programmation que des sites Web. Je suis presque sûr que Flow n'a pas fait grand chose pour améliorer l'adoption d'OCaml qui ne se débattait guère auparavant. De même pour Coq mais pour des raisons différentes. Coq a 30 ans. Autant que je sache, il y a une adoption assez importante d'OCaml en finance. Mais la finance n'est pas des sites Web, donc vous n'en entendez pas parler. Considérez maintenant des choses comme la chaîne d'approvisionnement et la recherche opérationnelle où l'ASP pourrait être appliqué. C'est le problème avec des questions comme les PO. Vraisemblablement, quelqu'un donne de l'argent à SICStus pour continuer à fonctionner.
Derek Elkins a quitté SE le

2

Je viens de marcher 354 étudiants, principalement des SE, à travers l'installation de SWI-Prolog. Eu environ une douzaine de problèmes d'installation. La plupart ont trouvé le processus assez facile.

J'admets que si SWI-Prolog avait 100 fois plus d'utilisateurs, l'installation serait plus soignée. Mais personne ne se dérobe car l'installation est trop difficile.

Comme pour les packs, pour installer un pack vous interrogez pack_install (my_pack).

C'est plus facile que d'installer des gemmes rubis.

Maintenant, quant à la fréquence à laquelle il est utilisé dans des domaines autres que la recherche - les statistiques d / l ne signifient rien a) parce que http://swi-prolog.org est servi via un CDN (que nous devons utiliser plusieurs serveurs et un CDN dit quelque chose), et b) nous savons que la majorité des utilisateurs sont des étudiants de premier cycle qui suivent un cours de théorie / enquête PL.

L'utilisation commerciale est de plus en plus courante. J'écris juste Prolog depuis quelques années maintenant, et je ne suis pas un universitaire (parfois je travaillais comme entrepreneur pour une université, mais pas comme un universitaire, comme un ingénieur).

La plupart des applications se trouvent dans des environnements d'IA ou d'apprentissage automatique. Les problèmes difficiles de ML bénéficient souvent d'un mélange d'IA symbolique.


2

En savoir plus sur l' hiver de l'IA et plus sur l' histoire de l'IA .

Dans les années 80, l'IA symbolique dominait. Pendant ce temps, le système expert a proliféré. Beaucoup d'entre eux ont été codés dans Prolog.

Aujourd'hui, nous avons encore (dans certains domaines) des systèmes de règles métier et des moteurs de règles métier , et l' approche des règles métier utilisée dans les systèmes de gestion des règles métier , qui à mon humble avis sont les successeurs directs des systèmes experts des années 80. AFAIK, beaucoup de logiciels orientés métier sont construits sur des principes similaires. Je crois que de nombreuses décisions de crédit (ou d'assurance) sont prises aujourd'hui automatiquement (et quotidiennement) dans les banques dotées de tels systèmes. Les systèmes de réécriture comme XSLT sont également utilisés quotidiennement et sont les descendants des idées de systèmes experts des années 80. Programmation déclarative (y compris CLIPS ou même make ou autreLes systèmes basés sur des règles peuvent être considérés comme la dissolution des idées symboliques de l'IA dans l'industrie générale de la programmation et des logiciels (dès que quelque chose devient "facile" et "répandu", il ne peut plus être appelé IA).

Aujourd'hui, l'IA est réduite aux approches d' apprentissage automatique (y compris l'informatique neuronale ). Ce qui (en gros) était appelé AI avant les années 1980 s'appelle actuellement AGI .

Le prochain hiver de l'IA pourrait être un hiver d' interprétation abstraite . L'interprétation abstraite est une théorie et un état d'esprit sur l'analyse de programme statique . Aujourd'hui, cette IA est devenue un mot à la mode et est parfois présentée comme la solution à la plupart des problèmes de sécurité des logiciels (ce qui n'est pas le cas à mon humble avis).

Certaines personnes (dont moi) pensent que l'IA symbolique n'est pas entièrement morte (du moins lorsqu'elle est combinée avec d'autres paradigmes). Un point de vue intéressant est celui de Jacques Pitrat (chercheur à la retraite et pionnier français de l'IA) dans son blog .

Mais l'IA (à la fois comme «intelligence artificielle» telle que définie dans Dartmouth 1956 et comme «informatique avancée») est difficile à construire. De nombreuses années d'efforts sont nécessaires pour les développer. Rappelez-vous la perspicacité de Brook : "alors qu'il faut une femme neuf mois pour faire un bébé, neuf femmes ne peuvent pas faire un bébé en un mois". Cela est vrai pour les systèmes logiciels complexes et difficiles (qui pourraient nécessiter neuf ans pour être achevés, mais nous vivons dans un monde qui ne peut pas se permettre de payer une petite équipe de chercheurs en logiciels talentueux pendant neuf ans). Pour des raisons sociales et économiques que je ne comprends pas bien (mais que je regrette profondément), le logiciel n'a pas d'équivalent de grands projets à long terme comme ITER(et n'a même pas de petits projets de recherche à long terme de plus de 4 ou 5 ans avec une dizaine de chercheurs). Voir également le projet Softwareheritage et notez que le domaine logiciel est aujourd'hui moins créatif dans son ensemble que les nombreuses idées qui ont fleuri dans les années 1980. Voir le FOSDEM 2018 de Liam Proven Le circuit le moins parcouru

Ce que l'on appelait principalement au siècle précédent (XX e siècle) l'IA s'appelle aujourd'hui AGI . La terminologie a changé et l'ambition est aujourd'hui presque révolue. De nos jours, au début des années 2020, l'IA concerne principalement les réseaux de neurones et l'apprentissage automatique . Mon sentiment est que 2019 AI est devenu aujourd'hui inutile mot à la mode (il est plus au sujet de A Interieur I de renseignements sur le ).

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.