# Knowledge-based engineering

La Knowledge-based engineering (KBE) è una disciplina che trae le sue origini sia dal mondo Computer-Aided Design (CAD) che dai sistemi Knowledge Based, ma ha varie definizioni e applicazioni a seconda del contesto. Nelle prime applicazioni si trattava sostanzialmente di strumenti di supporto alla progettazione in generale. Il successo dei primi prototipi di KBE è stato notevole, tanto da portare il KBE ad essere considerato un elemento fondamentale per la progettazione generativa, con molte aspettative in termini di miglioramento delle prestazioni per tutti i processi di progettazione che presentino limitato intervento umano.

## Panoramica

La Knowledge Based Engineering (KBE) rappresenta l'applicazione tecnologica della visione e della strategia di Knowledge Management, relativa all'engineering. La KBE offre ai progettisti gli strumenti per acquisire e riutilizzare la conoscenza multidisciplinare in modo integrato, al fine di ridurre tempi e costi di progettazione, automatizzare operazioni ripetitive ed essere di supporto in attività di Conceptual design.
Fornisce ai progettisti gli strumenti per accedere in modo virtuale alle loro idee, modellare il prodotto in modo multidisciplinare, modificare le geometrie e supportare nell'indagine di diversi scenari "what-if" nell'ambito della progettazione. Uno dei suoi scopi, infatti, è di connettere Knowledge Management e automazione della progettazione. In particolare, la capacità di utilizzare regole per generare disegni meccanici, costituisce un importante elemento di collegamento tra diversi sistemi aziendali (PLM, CAD, ERP).

## Storia

La KBE nasce a partire dal 1980 come sviluppo complementare delle tecnologie CAx (CAD, CAM, CAE etc.). In quel periodo infatti, dopo i primi sviluppi degli anni '70, il CAx compie grandi progressi, di pari passo con l'evoluzione del Computer.
Come molte altre innovazioni, anche la KBE, dopo un fulgido inizio, dovette fronteggiare un periodo di declino. Tra le cause principali di questo declino vanno sicuramente citate le aspettative sproporzionate e l'infrastruttura tecnologica inadeguata. Vi furono comunque sufficienti casi di successo da mantenere vivo l'interesse fino al 1990.
Durante gli anni '90 la KBE ha continuato ad esistere in una specifica nicchia, grazie a metodologie "Object-Oriented" e sistemi sufficientemente avanzati da permettere il raggiungimento di obiettivi minori.
Attualmente, soprattutto grazie alle nuove tecnologie (web a banda larga, Cloud Computing), la KBE è tornata ad essere di grande attualità e costituisce un elemento di supporto fondamentale per PLM e ambiente CAx nell'automazione dei processi aziendali.

## KBE e gestione del ciclo di vita del prodotto

Product Lifecycle Management (PLM) è la gestione del processo di produzione di qualsiasi settore che produce beni. Può coprire l'intero ciclo di vita del prodotto, dalla generazione dell'idea all'implementazione, consegna e smaltimento. KBE a questo livello si occuperà di problemi di prodotto di natura più generica rispetto a CAx. Un'area naturale di enfasi è sul processo di produzione; tuttavia, la gestione del ciclo di vita può coprire molte più questioni come la pianificazione aziendale, il marketing, ecc. Un vantaggio dell'utilizzo di KBE è ottenere il ragionamento automatizzato e i servizi di gestione della conoscenza di un ambiente basato sulla conoscenza integrato con le molte esigenze diverse ma correlate della gestione del ciclo di vita. KBE supporta i processi decisionali coinvolti con la configurazione, le negoziazioni, il controllo, la gestione e una serie di altre aree, come l'ottimizzazione.

## KBE e CAx

CAx si riferisce al dominio degli strumenti assistiti da computer per l'analisi e la progettazione. CAx si estende su più domini. Esempi sono la progettazione assistita da computer di parti prodotte, software, l'architettura degli edifici, ecc. Sebbene ogni dominio specifico di CAx avrà tipi molto diversi di problemi e artefatti, tutti condividono problemi comuni come il dover gestire la collaborazione di sofisticati lavoratori della conoscenza, progettazione e riutilizzo di manufatti complessi, ecc.
Essenzialmente KBE si estende, si basa e si integra con il dominio CAx, generalmente indicato come CAD ( Computer Aided Design ). In questo senso KBE è analogo all'ingegneria del software basata sulla conoscenza, che ha esteso il dominio dell'ingegneria del software assistita dal computer con strumenti e tecnologia basati sulla conoscenza. Ciò che KBSE era per software e CASE, KBE è per prodotti fabbricati e CAD.
Un esempio può essere preso dall'esperienza di Boeing. Il programma 777 ha accettato la sfida di avere un aereo definito digitalmente. Ciò ha richiesto un investimento in sistemi, database e workstation su larga scala per il lavoro di progettazione e ingegneria analitica. Data l'ampiezza del lavoro di elaborazione richiesto, KBE ha messo i piedi nella porta, per così dire, attraverso un piano "pay as you go". In sostanza, questa tecnica doveva mostrare i benefici e quindi ottenere più lavoro (pensa all'ingegneria agile) in tal modo. Nel caso del 777, il progetto è arrivato al punto in cui le influenze sui cambiamenti nella prima parte del flusso di progettazione/costruzione (carichi) potevano essere ricalcolate in un fine settimana per consentire la valutazione dei processi a valle. Come richiesto, gli ingegneri erano in procinto di finire e firmare il lavoro. Allo stesso tempo, CAx ha consentito di soddisfare tolleranze più strette. Con il 777, KBE ebbe un tale successo che i programmi successivi lo applicarono in più aree. Nel tempo, le strutture KBE sono state integrate nella piattaforma CAx e sono una parte normale dell'operazione.

## KBE e gestione della conoscenza

Una delle più importanti tecnologie basate sulla conoscenza per KBE è la gestione della conoscenza. Gli strumenti di gestione della conoscenza supportano un repository ad ampio spettro, ovvero un repository in grado di supportare tutti i diversi tipi di artefatti di lavoro: disegni e note informali, tabelle di database di grandi dimensioni, oggetti multimediali e ipertestuali, ecc. le parti interessate collaborano alla progettazione e all'implementazione dei prodotti. Fornisce inoltre strumenti per automatizzare il processo di progettazione (ad esempio, regole) e per facilitare il riutilizzo.

## Metodologia KBE

Lo sviluppo di applicazioni KBE riguarda i requisiti per identificare, acquisire, strutturare, formalizzare e infine implementare la conoscenza. Molte diverse cosiddette piattaforme KBE supportano solo la fase di implementazione, che non è sempre il principale collo di bottiglia nel processo di sviluppo KBE. Al fine di limitare il rischio associato allo sviluppo e alla manutenzione dell'applicazione KBE, è necessario fare affidamento su una metodologia appropriata per gestire la conoscenza e mantenerla aggiornata. Come esempio di tale metodologia KBE, il progetto dell'UE MOKA, "Metodologia e strumenti orientati alle applicazioni basate sulla conoscenza", propone soluzioni incentrate sulle fasi di strutturazione e formalizzazione, nonché collegamenti all'implementazione.
Un'alternativa a MOKA consiste nell'utilizzare metodi di ingegneria della conoscenza generale che sono stati sviluppati per sistemi esperti in tutti i settori o utilizzare metodologie di sviluppo software generali come Rational Unified Process o metodi Agile.

## Linguaggi per KBE

Due questioni critiche per i linguaggi e i formalismi utilizzati per KBE sono:

### Programmazione basata sulla conoscenza e programmazione procedurale

Un compromesso fondamentale identificato con la rappresentazione della conoscenza nell'intelligenza artificiale è tra potenza espressiva e computabilità. Come Levesque ha dimostrato nel suo articolo classico sull'argomento, più potente si progetta un formalismo di rappresentazione della conoscenza, più il formalismo si avvicinerà al potere espressivo della logica del primo ordine. Come ha dimostrato anche Levesque, più un linguaggio è vicino alla logica del primo ordine, più è probabile che consentirà il completamento di espressioni indecidibili o che richiedono una potenza di elaborazione esponenziale. Nell'implementazione dei sistemi KBE, questo compromesso si riflette nella scelta di utilizzare potenti ambienti basati sulla conoscenza o ambienti di programmazione procedurali e orientati agli oggetti più convenzionali.

### Standardizzazione e proprietà

Esiste un compromesso tra l'utilizzo di standard come STEM e linguaggi proprietari specifici del fornitore o dell'azienda. La standardizzazione facilita la condivisione delle conoscenze, l'integrazione e il riutilizzo. I formati proprietari (come CATIA) possono fornire un vantaggio competitivo e potenti funzionalità oltre l'attuale standardizzazione.
Genworks GDL, un prodotto commerciale il cui nucleo è basato sul Gendl Project con licenza AGPL, affronta il problema della longevità dell'applicazione fornendo un kernel di linguaggio dichiarativo di alto livello che è un superset di un dialetto standard del linguaggio di programmazione Lisp ( ANSI Common Lisp o CL). Lo stesso Gendl/GDL è proposto come standard de facto per i linguaggi KBE basati su ANSI CL.
Nel 2006, Object Management Group ha rilasciato un documento RFP per i servizi KBE e ha richiesto un feedback. Ad oggi, non esiste alcuna specifica OMG per KBE; tuttavia, esiste uno standard OMG per i servizi CAD.
Un esempio di linguaggio indipendente dal sistema per lo sviluppo di ontologie leggibili dalla macchina che si trova nel dominio KBE è l'inglese Gellish.

## KBE in Accademia

* Knowledge-based engineering alla Norwegian University of Science and Technology (NTNU)
* Aircraft Design & Design Methodologies Archiviato il 18 ottobre 2018 in Internet Archive. dipartimento della Faculty of Aerospace Engineering della Delft University of Technology
* AI in Design sitografia ospitata dall' Worcester Polytechnic Institute e il NSF Report "Research Opportunities in Engineering Design."
* Knowledge-based engineering lab al Birmingham City University