2015-09-23 15 views
9

Attualmente sto cercando di capire, quindi utilizzare OWL e quindi utilizzare UML per descrivere un dominio di interesse in un processo di ingegneria del software.Qual è la differenza tra OWL e UML nel processo di ingegneria del software

Ho letto this paper by Atkinson, che offre un'ottima panoramica delle differenze e delle uguaglianze di OWL e UML a livello semantico e sintattico.

Tuttavia, non fornisce un'indicazione chiara in cui casi di utilizzo potrebbe essere preferibile utilizzare OWL anziché, ad esempio, un diagramma di classe UML.

Potrebbe essere il processo di sviluppo del sottosquadro, che decide il linguaggio di modellazione da adottare (ad esempio model-driven = go per UML, ontology-driven = go per OWL) ma per me questa differenza non è ancora chiara?

In entrambe le lingue posso costruire una terminologia, che io - come ingegnere di ontologia - posso riutilizzare per dedurne nuove conoscenze. Come ingegnere software uso questa terminologia per la costruzione di un (singolo) sistema.

Quindi la differenza tra OWL e UML è solo il campo di studio? O potrei usare OWL per descrivere la costruzione del mio (singolo) sistema software?

Inoltre, questo solleva la questione se la decisione su quale tipo di linguaggio di modellazione scegliere sia guidata solo dall'obiettivo, che cerco di raggiungere?

risposta

9

Una risposta sintetica

  • UML è un (grafico) linguaggio per la modellazione
  • OWL è un linguaggio utilizzato per knowledge representation (KR) con una prospettiva semantica

Nella prima posto, lo scopo di OWL non è la modellazione. L'utilizzo di una tecnica KR è un'opzione nel campo dell'ingegneria del software. Dovrebbe essere distinto da qualsiasi processo di ingegneria del software. Entrambe le lingue hanno scopi diversi.

Naturalmente, è possibile che [utilizzi] OWL per descrivere la costruzione di [un sistema software]. Ma l'interesse di tale mossa sarebbe principalmente nel ragionamento automatico sul processo di costruzione del software e non sarebbe molto utile nel contesto di un singolo progetto. Questo sarebbe efficace solo se fatto per tutti i tuoi progetti in modo da avere un conseguente knowledge base (KB).

Una spiegazione dettagliata

Secondo il W3C wiki section about OWL:

Il W3C Web Ontology Language (OWL) è un linguaggio di Semantic Web progettato per rappresentare la conoscenza ricco e complesso di cose, gruppi di cose e le relazioni tra le cose. OWL è un linguaggio basato sulla logica computazionale in modo tale che la conoscenza espressa in OWL può essere sfruttata da programmi per computer, ad esempio, per verificare la coerenza di tale conoscenza o per fare la conoscenza implicita esplicita

Ci dovrebbe essere un dibattito su ciò che è un linguaggio di modellazione. Ad esempio, lo Wikipedia article on the topic considera un senso ampio che potrebbe coprire anche OWL. Considero qui con la modellazione solo l'attività di ingegneria del software (che è quella su cui ci si concentra nella domanda).

Potrebbe essere necessario modellare per definire le ontologie, proprio come se fosse necessario per lo sviluppo di un progetto software. Ma questa modellazione OWL non considererebbe gli elementi di ingegneria del software, ma piuttosto i dati di dominio del progetto. In altre parole, l'uso di UML in un processo di costruzione del software mira a configurare gli elementi del software.Con OWL, non ci si concentrerà su questi elementi, a meno che non si stia tentando un ragionamento automatico sulla costruzione del software.

Accanto a questo, esiste una relazione tra UML e OWL. Un note by Walter W. Change nella cornice del W3C discute la domanda. Vorrei riassumere la domanda considerando due relazioni distinte.

Usando UML per rappresentare la conoscenza OWL

specifica Un OMG chiamato ODM (per Ontology Definition Metamodel) fornisce un metamodello per la definizione di ontologie. Nella cornice di questa specifica, l'uso di un profilo UML è introdotto come un modo per colmare una lacuna tra le due lingue. Nella specifica ODM 1.1, sezione 8.4.2:

L'obiettivo di un profilo UML dalla prospettiva ODM è quello di realizzare un ponte tra le comunità UML e rappresentazione della conoscenza su una base semantica fondate, con un obiettivo più ampio del software correlato e degli approcci logici alla rappresentazione delle informazioni.

L'utilizzo del profilo UML è introdotto in an article. È possibile trovare tale profilo nello ODM 1.0 specification resources come documento non normativo. Secondo quanto qui considerato, questo profilo UML potrebbe essere uno strumento per modellare ontologie.

Utilizzando/tecnologie Web Semantico OWL per rappresentare UML

RDF è il formato base usato per scrivere ontologie OWL.

An early (2000) academic work fornisce un documento RDF semantico che modella gli elementi UML (in base alle specifiche OMG). Questo lavoro ha preceduto il draft works on the OWL W3C recommendation (2002).

4

In realtà OWL è disponibile come profilo in UML. Vedi OMG specfication. Quindi puoi usare UML con il profilo OWL in "una zuppa".

+0

Grazie per la vostra risposta - è stata un'informazione abbastanza utile! Ok, posso mescolarli. Tuttavia non è ancora chiaro, perché dovrei mescolare entrambe le lingue nel processo SE? C'è qualche tipo di beneficio? Penso che mescolandoli in "una zuppa" il risultato diventerà molto complesso ... – rzo

+0

No. Puoi descrivere cose di alto livello in OWL e, laddove necessario, puoi passare a UML. –

+0

Immagino che la tua domanda centrale sia la stessa di "Posso dire le parole di Goethe in francese" o "Posso dire le parole di Rousseau in tedesco". Goethe disse una volta. "Loro [i francesi] traducono ogni cosa nella loro lingua e da quel momento in poi ha il suo significato completamente diverso". –

4

Iniziamo con le definizioni.

Unified Modeling Language (UML) è un general-purpose, dello sviluppo, il linguaggio di modellazione nel campo dell'ingegneria del software, che è destinato a fornire un modo standard per visualizzare la progettazione di un sistema . (Wikipedia)

UML ha molti diagrammi, ma nessuno dei classici è progettato per la modellazione ontologica. Pertanto, i ricercatori hanno creato GUFO con questo scopo.

Il W3C Web Ontology Language (OWL) è un linguaggio Web Semantico progettato per rappresentare la conoscenza ricca e complessa di cose, gruppi di cose, e le relazioni tra le cose. (W3C)

Come detto da Thomas Kilian nell'altro risposta:

OWL è disponibile come profilo in UML. Vedi la specificazione OMG. Quindi puoi usare UML con profilo OWL in "una zuppa".

Pertanto, OWL può essere parte del set di diagrammi UML utilizzati in un processo di ingegneria del software. Il vantaggio principale di OWL rispetto ai diagrammi UML classici è quando devi progettare un sistema utilizzando le ontologie. Lo scopo dei diagrammi delle classi è rappresentare le classi, non le ontologie. Se il tuo sistema non si basa su ontologia, segui i classici diagrammi UML; non hai bisogno di OWL. Se il tuo sistema utilizza l'ontologia e devi rappresentarlo su un diagramma, usa OWL.

2

OWL è utilizzato per descrivere un dominio e per essere in grado di utilizzare in modo specifico la semantica, specificare la conoscenza di un dominio e descriverne le specificità. Prendiamo ad esempio l'ontologia Friend of a Friend. Usandolo puoi descrivere come le persone si relazionano l'una con l'altra.

Si potrebbe dire che si può fare la stessa cosa usando UML e si è corretti. È possibile specificare proprietà, relazioni e così via, utilizzando OWL e UML. Tuttavia, ciò che non puoi fare con UML è dedurre la conoscenza del dominio. OWL, essendo un linguaggio Semantic Web, modella un dominio con un'ipotesi di Open o Closed World. Fondamentalmente si presuppone la conoscenza in base a ciò che è descritto nel dominio. Quindi puoi utilizzare istruzioni specifiche per dedurre la conoscenza usando le regole o semplicemente guardare i predicati e le affermazioni che hai creato. Inoltre, puoi usare linguaggi di query specifici come SPARQL per interrogare la tua ontologia allo stesso modo in cui useresti SQL per interrogare un database.

TL; DR: Usando UML si specifica come si tradurrebbe un dominio specifico in software, utilizzando OWL si specifica la conoscenza del dominio in quanto è molto più ricco di UML.

-2

L'importanza e i vantaggi della mappatura dell'ontologia del dominio nel modello UML stanno integrando i vantaggi e la qualità forniti da queste due tecniche di modellazione. Cioè, se ci sono già ontologie di dominio con un certo livello di autorità, queste basi di conoscenza possono aiutare nella creazione di diagrammi di classe UML, come le garanzie assiomatiche fornite dalla logica descrittiva che lo costruisce, oltre a consentire il potere di inferenza di UML fornito con questo formalismo, con la trasformazione si intende mostrare l'evidenza che il riutilizzo dell'ontologia può aiutare a ridurre l'ambiguità nei diagrammi delle classi.

Problemi correlati