Qualche giorno fa mi è capitato di vedere un video sulla situazione COVID a New York: chi parlava era mio nipote, che ricordavo bambino, ma che vedevo diventato uomo, maturo, col viso segnato da profonde rughe. Mi ha stupito come il tempo sia passato velocemente, ma ero fiero del nipote, diventato adulto ed affermato professionista.

FileMaker 19 mi ha fatto lo stesso effetto: mi sembra ieri che pargoletto stentava a impostare collegamenti tra files, liste relazionali e altre cose “complicate”, circondato dall’affetto di una grande e variegata community, e me lo ritrovo adulto a gestire intelligenza artificiale e JavaScript.

Un pò di nostalgia per i mille workaround che toccava inventarsi ? Sicuramente si, complici gli anni che passano.

Ma soprattutto ammirazione e soddisfazione per la strada fatta da FileMaker in questi anni.

Veniamo però alle cose pratiche, nello specifico FileMaker e il Machine Learning:

Wikipedia definisce il Machine Learning come una branca dell'intelligenza artificiale che raccoglie un insieme di metodi quali: statistica computazionale, riconoscimento di pattern, reti neurali artificiali, filtraggio adattivo, teoria dei sistemi dinamici, elaborazione delle immagini, data mining, algoritmi adattivi, ecc; che utilizza metodi statistici per migliorare progressivamente la performance di un algoritmo nell'identificare pattern nei dati. Nell'ambito dell'informatica, il Machine Learning è una variante alla programmazione tradizionale nella quale si predispone in una macchina l'abilità di apprendere qualcosa dai dati in maniera autonoma, senza ricevere istruzioni esplicite a riguardo.

Cominciamo col dire che siamo ai primi passi: al momento il Machine Learning in FileMaker è limitato al riconoscimento di pattern, sia relativamente alle immagini che al testo, e il progressivo miglioramento dell’algoritmo derivante dall'accumularsi dei dati non viene gestito. Inoltre, FileMaker 19 per gestire il Machine Learning utilizza CoreML (una libreria di sistema di Apple), e quindi l'utilizzo è limitato a MacOS e a iOS; oltretutto, non tutti i modelli sono supportati, quindi siamo proprio all'inizio. Ma già si intravede il futuro.

La selezione di un modello e del tipo di analisi da un campo

Tutto ruota intorno all’utilizzo di modelli con i quali eseguire l’analisi richiesta: un modello è normalmente composto da un file con estensione .mlmodel; una selezione di modelli è disponibile ai link:

https://developer.apple.com/machine-learning/models/

https://likedan.github.io/Awesome-CoreML-Models/

Di fatto quindi la gestione pratica di un aspetto teoricamente complessissimo è particolarmente semplice: prima si carica il modello e poi si procede all’analisi.
Per caricare il modello l'istruzione di script è  Configure Machine Learning Model, e ha 3 parametri:

1. nome del modello: assegnare un nome a piacere, eventualmente calcolato (in genere lo si calcola dal nome del file)

2. Operazione 

  • Load Vision  serve a caricare i modelli che analizzano immagini
  • Load General serve a caricare i modelli che analizzano testi
  • Unload scarica il modello liberando le risorse che occupava

3. il campo contenitore che contiene il file .mlmodel

Quindi l’unica variante è che nel caricare il modello va indicato se analizzeremo un’immagine o del testo.

Con un altra istruzione di script si dà in pasto al modello quello che si vuole analizzare e si registrano i risultati dell’analisi: ComputeModel ha 3 parametri:

1. nome del modello caricato dallo step precedente

2. nome del parametro da analizzare (per es. image o text)

3. il campo che contiene l’immagine o il testo da analizzare

e restituisce un oggetto JSON.

Le istruzioni di script all'opera

Nel caso di analisi di immagini, le varianti che si possono aggiungere sono 2, una che ci aiuta nel limitare i dati di ritorno, escludendo quelli inutili, ed un’altra che specularmente ci garantisce di avere almeno un risultato, quello più significativo.

Di fatto tutto il lavoro di analisi viene fatto dal modello che utilizziamo, nel bene e nel male: non dobbiamo fare nessuna fatica, ma dobbiamo solo sapere che tipo di analisi viene fatta dal modello che utilizziamo (in questo senso FileMaker non ci dà alcun suggerimento) .

Nel file di esempio, che potrete scaricare a fondo pagina, sono presenti alcune applicazioni pratiche: possiamo per esempio prendere una foto contenente persone ed oggetti vari ed analizzarla utilizzando un modello (ResNet50.mlmodel) che riconosce quali oggetti fanno parte della foto, oppure un altro modello (AgeNet50.mlmodel)  per capire l’età della persona presente nella foto.

E’ anche possibile analizzare testi; nel file di esempio il modello utilizzato (ReviewTextClassifier.mlmodel) ci dice se la recensione di un film era positiva o negativa (per l’analisi testuale c’è ovviamente il problema della lingua …).

L’elenco delle analisi possibili è lungo ( e verosimilmente crescerà rapidamente): potremo per esempio controllare se una immagine che stiamo usando sia coperta da copyright, oppure se le figure nella immagine stiano impugnando delle armi (esistono modelli specifici per la gestione della sicurezza), altri oggetti o semplicemente un certo tipo di capi di abbigliamento.

La cosa fondamentale è che tutto il lavoro di analisi viene fatto dal modello che utilizziamo, FileMaker si limita a caricare il modello ed a dargli in pasto l’immagine da analizzare. Ed è proprio questa la svolta epocale di FileMaker 19: siamo in piena programmazione ad oggetti, pura e semplice ( e vanno in questa direzione anche i componenti aggiuntivi). 

Senza enfasi né proclami entra a far parte del nostro armamentario uno strumento dalla potenza estrema, cui passare in maniera semplice i dati che vogliamo ed ottenere il risultato delle analisi che ci servono senza alcuno sforzo di programmazione, ma potendo contare su algoritmi di potenza elevatissima.

Forse è ancora presto per capire quale ruolo possano avere nei nostri database.
Ma è evidente che è iniziata una nuova era.

FileMaker Pro 19

FileMaker Pro 19 è ora disponibile!
Approfitta degli sconti di lancio e scegli la tua licenza.

FileMaker Pro 19 - Licenza Singola
FileMaker Pro 19 - Aggiornamento

FileMaker Pro 19

LASCIA UN COMMENTO

Please enter your comment!
Please enter your name here