¿Con qué frecuencia se usa Prolog / ASP en áreas que no son de investigación?


9

Recientemente me enteré de KRR (Representación del conocimiento y razonamiento) y ASP, sin haber escuchado nada sobre ellos antes (excepto un poco sobre el prólogo). He leído un poco sobre ellos y uno de sus usos principales parece ser la IA.

Mi pregunta sería cuán ampliamente utilizados son los ASP u otros lenguajes declarativos, ¿hay algún programa que los use con frecuencia (como los motores de búsqueda) o es principalmente para fines de investigación? ¿Cuál puede ser la razón por la que no son tan conocidos? ¿Es porque el desarrollo de IA pertenece a un "nivel más avanzado" de programación?


Esto parece fuera de tema aquí.
Yuval Filmus

2
Es el segundo lugar donde lo publiqué, ¿alguna idea de dónde estaría en el tema?
FloriOn

@FloriOn: ¿cuál es el primer lugar y la primera aparición de su pregunta?
Basile Starynkevitch

Prolog fue bueno para su época, pero es realmente difícil de usar en cualquier gran proyecto. La sintaxis se vuelve muy oscuro en términos complejos, también siempre interpretando toda la estructura en árbol desigion no es lo que deseo - KRR sistema Yould tiene más funcionalidad ...
user8426627

Respuestas:


4

cuán ampliamente utilizados son ASP u otros lenguajes declarativos

Puedes ver la actividad de Prolog, que creo que es el lenguaje de programación ASP más común:

Solo en base a eso, el paquete principal de Prolog es (483 / 139,326) x 100 = 0.35% tan popular como uno de los paquetes grandes de Node.js. O 0.07% como muchos paquetes.

es principalmente para fines de investigación

OMI sí, es principalmente para fines de investigación. Pero es similar a Ocaml , que desde mi experiencia fue principalmente para fines de investigación hasta que los usuarios corporativos como Facebook publicaron Flow (programación JavaScript escrita), y otros publicaron Coq (prueba de teorema automatizada), que ayudó a llevar a Ocaml a la corriente principal.

¿Cuál puede ser la razón por la que no son tan conocidos?

IMO Prolog no se usa porque es (a) un paradigma diferente, (b) el administrador de paquetes no está a la altura (esto es un gran problema en estos días) y (c) no hay un marco web evangelizado . Si hubiera un buen administrador de paquetes como NPM para Node.js, y hubiera un marco web comercializado, así como un pequeño grupo de evangelistas, que ayudaría a llevarlo a la corriente principal. Ruby tenía 37 señales y Rails, Python tenía Google, etc.

¿Es porque el desarrollo de IA pertenece a un "nivel más avanzado" de programación?

No en realidad no. Algunas investigaciones de IA usan el prólogo para modelar cosas , pero no es un requisito para la IA. La IA podría dividirse en dos partes: (1) Aprendizaje automático / modelos basados ​​en probabilidad donde las relaciones se aprenden y no están bien definidas, y luego (2) modelos definidos manualmente. La mayoría de la IA es una mezcla de ambos, pero los modelos definidos manualmente son valiosos y se mantienen privados en su mayor parte. Los modelos definidos manualmente pueden definirse usando Prolog , y hay algunos documentos disponibles para hacerlo, pero no es necesario. Para resumir, todo el trabajo de IA se puede hacer en lenguajes de programación regulares, solo que Prolog podría hacer que sea un poco más compacto escribir en algunos casos.


2
1. Creo que Coq es mucho menos convencional que OCaml. 2. SWI-Prolog tiene un marco web swi-prolog.org/FAQ/PrologLAMP.txt , pathwayslms.com/swipltuts/html/index.html. Para decirlo suavemente, eso no ha sido suficiente para que sea convencional.
Alexey Romanov

Dang, pensé que eso podría ayudar: p
Lance Pollard

Parte de esto se reduce a la facilidad de instalación, y el prólogo y los paquetes son difíciles de instalar y ejecutar .
Lance Pollard

66
Hay mucho más en el mundo de la programación que los sitios web. Estoy bastante seguro de que Flow hizo poco para mejorar la adopción de OCaml, que antes apenas tenía problemas. Del mismo modo para Coq pero por diferentes razones. Coq tiene 30 años. Por lo que puedo decir, hay una adopción bastante significativa de OCaml en las finanzas. Pero las finanzas no son sitios web, por lo que la mayoría de las veces no se entera. Ahora considere cosas como la cadena de suministro y la investigación de operaciones donde se podría aplicar ASP. Este es el problema con preguntas como los OP. Presumiblemente, alguien le está dando dinero a SICStus para que siga siendo una empresa en marcha.
Derek Elkins salió del SE

2

Acabo de caminar con 354 estudiantes, en su mayoría SE, a través de la instalación de SWI-Prolog. Tuve alrededor de una docena de problemas de instalación. La mayoría encontró el proceso bastante fácil.

Admito que si SWI-Prolog tuviera 100 veces más usuarios, la instalación se vería más pulida. Pero nadie rehuye porque la instalación es demasiado difícil.

En cuanto a los paquetes, para instalar un paquete, consulte pack_install (my_pack).

Eso es más fácil que instalar gemas de rubí.

Ahora, en cuanto a la frecuencia con la que se usa en áreas que no son de investigación, las estadísticas d / l no significan nada a) porque http://swi-prolog.org se sirve a través de un CDN (que tenemos que usar múltiples servidores y un CDN dice algo), yb) sabemos que la mayoría de los usuarios son estudiantes universitarios que toman un curso de teoría / encuesta PL.

El uso comercial se está volviendo más común. Llevo unos años escribiendo Prolog y no soy académico (a veces trabajaba como contratista de una universidad, pero no como académico, como ingeniero).

La mayoría de las aplicaciones se encuentran en entornos de inteligencia artificial o aprendizaje automático. Los problemas difíciles de LD a menudo se benefician de una mezcla de IA simbólica.


2

Lea sobre AI winter sy más sobre la historia de AI .

En la década de 1980, la IA simbólica era dominante. En ese tiempo, proliferaron los sistemas expertos . Muchos de ellos han sido codificados en Prolog.

Hoy en día, todavía tenemos (en algunas áreas) sistemas de reglas de negocios y motores de reglas de negocios , y el enfoque de reglas de negocios utilizado en los sistemas de administración de reglas de negocios , que en mi humilde opinión son los sucesores directos de los sistemas expertos de la década de 1980. AFAIK, una gran cantidad de software orientado a los negocios se basa en principios similares. Creo que muchas decisiones de crédito (o seguro) se toman hoy de forma automática (y diaria) en bancos con tales sistemas. Los sistemas de reescritura como XSLT también se usan a diario y son descendientes de las ideas de sistemas expertos de 1980. Programación declarativa (incluidos CLIPS o incluso make u otroLos sistemas basados ​​en reglass) puede verse como la disolución de ideas simbólicas de IA en la industria general de software y programación (tan pronto como algo se vuelve "fácil" y "generalizado", ya no se puede llamar AI).

Hoy, la IA se reduce a enfoques de aprendizaje automático (incluida la computación neuronal ). Lo que (en términos generales) se llamaba IA antes de la década de 1980 se llama actualmente AGI .

El próximo invierno de IA podría ser un invierno de interpretación abstracta . La interpretación abstracta es una teoría y mentalidad sobre el análisis de programas estáticos . Hoy, esa IA se ha convertido en una palabra de moda, y a veces se presenta como la solución a la mayoría de las preocupaciones de seguridad del software (en mi humilde opinión, no lo es).

Algunas personas (incluido yo) creen que la IA simbólica no está completamente muerta (al menos cuando se combina con otros paradigmas). Una visión interesante es la de Jacques Pitrat (un investigador retirado y pionero francés de la IA) en su blog .

Pero los sistemas de IA (tanto como "inteligencia artificial" como se define en Dartmouth 1956 como "informática avanzada") son difíciles de construir. Se necesitan muchos años de esfuerzo para desarrollarlos. Recuerde la idea de Brook : "mientras que una mujer tarda nueve meses en tener un bebé, nueve mujeres no pueden tener un bebé en un mes". Esto es cierto para sistemas de software complejos y desafiantes (que pueden necesitar nueve años para completarse, pero vivimos en un mundo que no puede permitirse pagar un pequeño equipo de investigadores de software talentosos durante nueve años). Por razones sociales y económicas que no entiendo completamente (pero que lamento profundamente), el software no tiene equivalente a grandes proyectos a largo plazo como ITER(y ni siquiera tiene pequeños proyectos de investigación a largo plazo que duren más de 4 o 5 años con una docena de investigadores). Vea también el proyecto softwareheritage y observe que el dominio del software es hoy menos creativo, en general, que las muchas ideas que florecieron en la década de 1980. Vea la charla FOSDEM 2018 de Liam Proven The Circuit Less Traveled

Lo que se llamó sobre todo en el siglo pasado (XX XX siglo) AI se llama hoy AGI . La terminología ha cambiado, y la ambición hoy casi se ha ido. En estos días, a principios de la década de 2020, la IA se trata principalmente de redes neuronales y aprendizaje automático . Mi sensación es que en 2019 se convirtió en una palabra de moda AI inútil hoy (que es no más sobre Un rtificial que los Servicios de Inteligencia ).

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.