Con quale frequenza Prolog / ASP viene utilizzato in aree non di ricerca?


9

Di recente ho scoperto KRR (rappresentazione della conoscenza e ragionamento) e ASP, non ne ho mai sentito parlare prima (tranne un po 'di prolog). Ne ho letto un po 'e uno dei loro usi principali sembra essere AI.

La mia domanda sarebbe: quanto sono ampiamente utilizzati ASP o altri linguaggi dichiarativi, esiste qualche programma usato frequentemente (come i motori di ricerca?) O è principalmente per scopi di ricerca? Quale potrebbe essere la ragione per cui non sono così conosciuti? È perché lo sviluppo dell'IA appartiene a un livello più "avanzato" di programmazione?


Questo sembra fuori tema qui.
Yuval Filmus,

2
È il secondo posto in cui l'ho pubblicato, qualche idea su dove sarebbe in tema?
FloriOn

@FloriOn: qual è il primo posto e la prima occorrenza della tua domanda?
Basile Starynkevitch,

Prolog era buono per i suoi tempi ma è davvero difficile da usare in qualsiasi grande progetto. La sintassi diventa molto oscura in termini complessi, anche interpretare sempre l'intera struttura nell'albero della religione non è ciò che desideri - Il sistema KRR potresti avere ulteriori funzionalità ...
user8426627

Risposte:


4

quanto sono ampiamente usati ASP o altri linguaggi dichiarativi

Puoi vedere l'attività di Prolog che penso sia il linguaggio di programmazione ASP più comune:

Basandosi solo su questo, il pacchetto principale di Prolog è (483 / 139.326) x 100 = 0,35% popolare come uno dei pacchetti di grandi dimensioni di Node.js. O 0,07% del numero di pacchetti.

è principalmente a scopo di ricerca

IMO sì, è principalmente a scopo di ricerca. Ma è simile a Ocaml , che dalla mia esperienza è stato principalmente per scopi di ricerca fino a quando gli utenti aziendali come Facebook non hanno pubblicato Flow (tipizzazione di programmazione JavaScript), e altri hanno pubblicato Coq (dimostrazione di teoremi automatizzati), che ha contribuito a portare Ocaml al mainstream.

Quale potrebbe essere la ragione per cui non sono così conosciuti?

IMO Prolog non viene utilizzato perché è (a) un paradigma diverso, (b) il gestore dei pacchetti non è all'altezza (questo è un grosso problema in questi giorni), e (c) non esiste un framework web evangelizzato . Se esistesse un buon gestore di pacchetti come NPM per Node.js, e fosse commercializzato un framework web, oltre a un piccolo gruppo di evangelisti, che avrebbe contribuito a portarlo alla ribalta. Ruby aveva 37signals e Rails, Python aveva Google, ecc.

È perché lo sviluppo dell'IA appartiene a un livello più "avanzato" di programmazione?

No, non proprio. Alcune ricerche sull'IA usano il prologo per modellare le cose , ma non è un requisito per l'IA. L'intelligenza artificiale potrebbe essere divisa in due parti: (1) modelli basati sull'apprendimento automatico / probabilistici in cui le relazioni sono apprese e non ben definite, quindi (2) modelli definiti manualmente. La maggior parte dell'intelligenza artificiale è una combinazione di entrambi, ma i modelli definiti manualmente sono preziosi e mantenuti privati ​​per la maggior parte. I modelli definiti manualmente potrebbero essere definiti usando Prolog e ci sono alcuni documenti là fuori per farlo, ma non è necessario. Riassumendo, tutto il lavoro di intelligenza artificiale può essere svolto in normali linguaggi di programmazione, solo che Prolog potrebbe renderlo leggermente più compatto da scrivere in alcuni casi.


2
1. Penso che Coq sia molto meno mainstream di OCaml. 2. SWI-Prolog ha un framework web swi-prolog.org/FAQ/PrologLAMP.txt , pathwayslms.com/swipltuts/html/index.html Per dirla in parole povere, non è stato sufficiente per renderlo mainstream.
Alexey Romanov,

Dang, ho pensato che potesse essere d'aiuto: p
Lance Pollard,

Parte di ciò si riduce alla facilità di installazione, e prologo e pacchetti sono difficili da installare ed eseguire .
Lance Pollard,

6
C'è molto di più nel mondo della programmazione rispetto ai siti web. Sono abbastanza sicuro che Flow abbia fatto ben poco per migliorare l'adozione di OCaml, che prima non aveva difficoltà. Allo stesso modo per Coq ma per diversi motivi. Coq ha 30 anni. Per quanto ne so, l'adozione di OCaml nella finanza è abbastanza significativa. Ma la finanza non è un sito web, quindi per lo più non ne hai notizia. Ora considera cose come la catena di approvvigionamento e la ricerca operativa in cui potrebbe essere applicato ASP. Questo è il problema con domande come gli OP. Presumibilmente qualcuno sta dando soldi a SICStus per continuare ad essere una preoccupazione continua.
Derek Elkins lasciò SE il

2

Ho appena guidato 354 studenti, principalmente SE, attraverso l'installazione di SWI-Prolog. Aveva circa una dozzina di problemi di installazione. La maggior parte ha trovato il processo abbastanza semplice.

Devo ammettere che se SWI-Prolog avesse 100x il numero di utenti l'installazione sarebbe più raffinata. Ma nessuno sta sfuggendo perché l'installazione è troppo difficile.

Per quanto riguarda i pacchetti, per installare un pacchetto richiedi pack_install (my_pack).

È più facile che installare gemme di rubino.

Ora, quanto spesso viene usato in aree non di ricerca - le statistiche d / l non significano nulla a) perché http://swi-prolog.org è servito attraverso una CDN (che dobbiamo usare più server e una CDN dice qualcosa) eb) sappiamo che la maggior parte degli utenti sono studenti universitari che seguono un corso di teoria / sondaggio PL.

L'uso commerciale sta diventando più comune. Scrivo solo Prolog da alcuni anni e non sono accademico (a volte lavoravo come appaltatore per un'università, ma non come accademico, come ingegnere).

La maggior parte delle applicazioni si trova in ambienti di intelligenza artificiale o machine learning. I problemi di ML duro spesso traggono beneficio da una mescolanza di AI simbolici.


2

Scopri di più sull'inverno AI e altro sulla storia dell'IA .

Negli anni '80, l'IA simbolica era dominante. A quel tempo, il sistema di esperti s proliferò. Molti di loro sono stati codificati in Prolog.

Oggi abbiamo ancora (in alcune aree) sistemi di regole di business e motori di regole di business , e l' approccio delle regole di business utilizzato nei sistemi di gestione delle regole di business , che IMHO è il diretto successore di sistemi esperti degli anni '80. AFAIK, molti software orientati al business si basano su principi simili. Credo che molte decisioni creditizie (o assicurative) vengano prese oggi (e quotidianamente) automaticamente nelle banche con tali sistemi. Anche i sistemi di riscrittura come XSLT sono di uso quotidiano e discendono dalle idee di sistemi esperti degli anni '80. Programmazione dichiarativa (incluso CLIPS o anche make o altroi sistemi basati su regole possono essere visti come la dissoluzione di idee simboliche di intelligenza artificiale nell'industria generale della programmazione e del software (non appena qualcosa diventa "facile" e "diffuso" non può più essere chiamato AI).

Oggi, l'IA è ridotta agli approcci di apprendimento automatico (incluso il calcolo neurale ). Ciò che (in senso lato) era chiamato AI prima degli anni '80 è attualmente chiamato AGI .

Il prossimo inverno AI potrebbe essere un inverno interpretazione astratta . L'interpretazione astratta è una teoria e una mentalità sull'analisi statica del programma . Oggi, quell'intelligenza artificiale è diventata una parola d'ordine, e talvolta è presentata come la soluzione alla maggior parte dei problemi di sicurezza del software (che IMHO non lo è).

Alcune persone (incluso me) credono che l'IA simbolica non sia del tutto morta (almeno quando combinata con altri paradigmi). Una visione interessante è quella di Jacques Pitrat (un ricercatore in pensione e pioniere dell'intelligenza artificiale francese) nel suo blog .

Ma i sistemi di intelligenza artificiale (sia come "intelligenza artificiale" come definita in Dartmouth 1956 sia come "informatica avanzata") sono difficili da costruire. Sono necessari molti anni di sforzi per svilupparli. Ricorda l' intuizione di Brook : "mentre una donna ha bisogno di nove mesi per fare un bambino, nove donne non possono fare un bambino in un mese". Questo è vero per sistemi software complessi e stimolanti (che potrebbero richiedere nove anni per essere completati, ma viviamo in un mondo che non può permettersi di pagare un piccolo team di talentuosi ricercatori di software per nove anni). Per motivi sociali ed economici che non capisco pienamente (ma che mi dispiace profondamente), il software non ha equivalenti di grandi progetti a lungo termine come ITER(e non ha nemmeno piccoli progetti di ricerca a lungo termine che durano più di 4 o 5 anni con una dozzina di ricercatori). Vedi anche il progetto softwareheritage e nota che il dominio del software è oggi meno creativo, nel suo insieme, rispetto alle molte idee che fiorirono negli anni '80. Guarda il discorso FOSDEM 2018 di Liam Proven The Circuit Less Traveled

Ciò che è stato per lo più chiamato nel secolo precedente (XX ° secolo) AI è oggi chiamato AGI . La terminologia è cambiata e l'ambizione oggi è quasi sparita. In questi giorni, nei primi anni del 2020, l'IA riguarda principalmente le reti neurali e l'apprendimento automatico . La mia sensazione è che nel 2019 AI è diventata una parola d'ordine inutile oggi (si tratta non più su un rtificial I ntelligence ).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.