Wsmo Restricted

10

Click here to load reader

description

Riassunto e traduzione della reference ufficiale del framework WSMO per la descrizione di Web Service e la definizione di ontologie.

Transcript of Wsmo Restricted

Page 1: Wsmo Restricted

WSMO // Restricted !Liberamente estratto e sintetizzato da

Web Service Modeling Ontology (http://www.wsmo.org/TR/d2/v1.3/)

Il linguaggio per definire Web Service Modeling Ontology (WSMO)I livelli del meta-modello per la definizioni di WSMOWSMO è un meta-modello per aspetti collegati ai Web Service Semantici ed è specificato usando il Meta-Object Facility (MOF). Il MOF definisce un linguaggio astratto e un framework per la specificazione, la costruzione ed il mantenimento di meta-modelli indipendenti dalla tecnologia.Sono definiti quattro livelli:

• Information layer comprende i dati da descrivere• Model layer comprende i meta-dati che descrivono i dati nel infomation layer• Meta-model layer comprende le descrizioni che definiscono la struttura e la semantica dei

metadati.• Meta-meta-model layer comprende le descrizioni che definiscono la struttura e la semantica

dei meta-metadati.In questa classificazione, il linguaggio per definire WSMO è il livello meta-meta-model, WSMO in sé è il livello meta-model, ontologie, Web Service, Goal e mediator costituiscono il livello Model mentre i dati di un'ontologia o quelli scambiati tra web service costituiscono il livello information.Una nota sulla terminologia: un web service è un'entità computazionale capace tramite invocazione di soddisfare i goal degli utenti mentre il servizio è il valore attuale fornito da questa invocazione.IdentificatoriURI:Sono l'opzione di default. Possono essere completi oppure qualified name(QName) che sono risolti usando le dichiarazioni di namespace.ID Anonimi:Un id anonimo può essere numerato (#_1,#_2) oppure non numerato (#_). Ad esempio, se qualcuno vuole dire che una persona John ha un indirizzo _ # che a sua volta ha un nome della via "hitchhikerstreet" e un numero civico "42", quindi l'oggetto indirizzo di per sé non ha bisogno di un particolare URI, ma dal momento che deve esistere come un oggetto di collegamento tra John e "hitchhikersstreet" e "42" si può indicare con un id anonimo.Valori e tipi di datoIn WSMO, i literal sono utilizzati per identificare i valori come numeri per mezzo di una rappresentazione lessicale. Literal possono essere semplici o tipizzati (vengono tipizzati tramite i tipi di dati XML). Formalmente un tipo è definito da 3 elementi:

• un insieme non vuoto i stringhe chiamato spazio lessicale. E.G.{"true", "1", "false", "0"}• un insieme non vuoto chiamato spazio dei valori. E.G. {true, false}• una mappatura dello spazio lessicale sullo spazio dei valori. E.G.{"true", "1"}->{true};

{"false", "0"}->{false}.AnnotazioniLe annotazioni sono usate nella definizione di elementi WSMO; nella lista seguente troviamo un insieme di annotazioni che possono essere applicate a qualsiasi tipo elemento.

Class annotation hasContributor type dc:contributor hasCoverage type dc:coverage hasCreator type dc:creator hasDate type dc:date hasDescription type dc:description hasFormat type dc:format hasIdentifier type dc:identifier

Page 2: Wsmo Restricted

hasLanguage type dc:language hasOwner type owner hasPublisher type dc:publisher hasRelation type dc:relation hasRights type dc:rights hasSource type dc:source hasSubject type dc:subject hasTitle type dc:title hasType type dc:type hasVersion type version

Contributor: un'entità che ha dato un contributo al contenuto dell'elemento. Esempi di dc:contributor sono persone, organizzazioni o anche web service.Coverage: l'estensione o la portata del contenuto dell'elemento. Tipicamente dc:coverage include locazioni spaziali, periodi temporali o giurisdizioni.Creator: un'entità primaria responsabile della creazione del contenuto dell'elemento. Esempio di dc:creator sono persone,organizzazioni o anche web service.Date: la data di un evento associato al ciclo di vita dell'elemento (generalmente si tratta della creazione)Description: un descrizione del contenuto dell'elemento. Esempi di dc:description sono una indice astratto dei contenuti, descrizioni in testo libero oppure riferimenti a rappresentazioni grafiche.Format: una manifestazione, fisica o digitale, dell'elemento. Tipicamente dc:format include il media-type e le dimensioni di un elemento. Format è usato per identificare il software, l'hardware o altro equipaggiamento necessario per operare con l'elemento.Identifier: Un riferimento non ambiguo all'elemento in un dato contesto. E' buona pratica identificare l'elemento per mezzo di una stringa o di un numero conformandosi però ad sistemi di identificazione formale(ad esempio URI).Language: la lingua usata per il contenuto intellettuale dell'elemento.Owner: la persona o l'organizzazione a cui appartiene un particolare elemento WSMO.Publisher: un'entità che rende disponibile l'elemento.Reference: un riferimento ad un elemento collegato. E' buona pratica identificare l'elemento per mezzo di una stringa o di un numero conformandosi però ad sistemi di identificazione formale(ad esempio URI).Rights: informazioni sui diritti collegati all'elemento. Tipicamente dc:rights una dichiarazione di gestione dei diritto oppure in riferimento ad un web service che fornisce tale informazioni. Esempio di diritto sono il Copyright o l'Intellectual Property Righs(IPR). Se non viene specificato nessun diritto non si possono fare assunzioni su quale siano effettivamente i diritti collegati all'elemento.Source: un riferimento ad un elemento da cui il presente è derivato. E' buona pratica identificare l'elemento per mezzo di una stringa o di un numero conformandosi però ad sistemi di identificazione formale(ad esempio URI).Subject: un argomento del contenuto dell'elemento. Generalmente dc:subject sono parole chiave, frasi chiave o codici di classificazione per gli argomenti. Si raccomanda di usare valori presi da un vocabolario controllato o da uno schema di classificazione formale.Title: un nome dato a questo elemento. Il dc:title è il nome con il quale l'elemento è formalmente conosciuto.Type: La natura o il genere del contenuto dell'elemento.Version: visto che molte proprietà dell'elemento possono cambiare nel tempo, si rende necessario un identificatore dell'elemento in un certo periodo di tempo.

Elementi WSMO di alto livelloWSMO si riferisce ai concetti che definisce come “elementi”. Il listato seguente mostra la definizione generale di un qualsiasi elemento WSMO; questa definizione viene poi raffinata da ogni singolo elemento.

Page 3: Wsmo Restricted

Class wsmoElement hasAnnotation type annotation

Ogni elemento WSMO ha un insieme di annotazioni associate.WSMO identifica quattro elementi di altro livello come i concetti principali che devono essere specificati per descrivere un Web Service semantico.Le Ontologie forniscono la terminologia usata dagli altri elementi WSMO per descrivere aspetti rilevanti del dominio del discorso.I Web Service descrivono l'entità computazionale che fornisce l'accesso ad un servizio che fornisce un qualche valore nel dominio. Questa descrizione comprende le capacità, le interfacce e il funzionamento interno del Web Service.I Goal rappresentano i desideri degli utenti che possono essere soddisfatti con l'esecuzione di un Web Service. Il modello dei Goal rappresenta la visione dell'utente all'interno del processo d'uso di Web Service.I Mediator descrivono gli elementi che superano i problemi di interoperabilità tra diversi elementi WSMO. I mediator sono il concetto chiave per risolvere le incompatibilità sui dati, sui processi o sui protocolli.

OntologieUn'ontologia è una specifica esplicita e formale di una concettualizzazione condivisa: l'ontologia quindi definisce una terminologia condivisa fornendo dei concetti e relazioni tra i concetti. Al fine di descrivere le proprietà semantiche delle relazioni e dei concetti, un ontologia fornisce generalmente un'insieme di assiomi (che sono espressioni in qualche linguaggio logico).

Class ontology sub-Class wsmoElement importsOntology type ontology usesMediator type ooMediator hasConcept type concept hasRelation type relation hasFunction type function hasInstance type instance hasRelationInstance type relationInstance hasAxiom type axiom

Importazione di OntologieL'importazione di ontologie ci permette di utilizzare la modularità per superare le difficoltà collegate alla definizione di ontologie complesse. Un'ontologia può essere usata solo nei casi in cui non ci sono conflitti altrimenti si deve usare un ooMediator.Usare i MediatorNel caso in cui sia necessario l'allineamento di ontologie importate è di gran lunga preferibile usare un ooMediator. Il mediator saranno descritti meglio in seguito.ConcettiDa una prospettiva di alto livello un concetto( descritte da una definizione di concetto) è provvisto di attributo (ognuno con nome e tipo) e può essere un sotto-concetto di alcuni (possibilmente nessuno) super-concetti.

Class concept sub-Class wsmoElement hasSuperConcept type concept hasAttribute type attribute hasDefinition type logicalExpression multiplicity = single-valued

Supercontept: vi è un numero finito di concetti che possono servire come super-concetti di un

Page 4: Wsmo Restricted

determinato concetto. Essere il sotto-concetto di un un altro concetto significa ereditare la signature e i vincoli del super-concetto e inoltre ogni istanza del sotto-concetto è anche un'istanza del super-concetto.Attribute: ogni concetto fornisce un insieme di attributi che rappresentano degli slot (forniti di nome) per i dati delle istanze: tali slot saranno riempiti a livello di istanza.

Class attribute sub-Class wsmoElement hasRange type concept multiplicity = single-valued

Ad un attributo viene associato, tramite un Range, un vincolo logico sui possibili valori che possono essere contenuti in questo slot dati.Definition: la definizione è un'espressione logica che può essere usata per descrivere formalmente la semantica del concetto; più precisamente, l'espressione logica definisce (oppure restringe) l'estensione del concetto(ad esempio l'insieme delle istanze). Se C è l'identificatore di un concetto allora l'espressione logica può prendere una delle seguenti forme:

• forAll ?x ( ?x memberOf C implies l-expr(?x))• forAll ?x ( ?x memberOf C impliedBy l-expr(?x))• forAll ?x ( ?x memberOf C equivalent l-expr(?x))

dove l-expr(?x) è un'espressione logica con una sola variabile ?x libera. Il primo esempio esprime una condizione necessaria per l'appartenenza all'estensione del concetto, il secondo esprime una condizione sufficiente mentre la terza espressione indica che c'è una condizione necessari e sufficiente affinché un oggetto sia un elemento dell'estensione del concetto.RelazioniLe relazioni sono usate per modellare l'interdipendenza tra alcuni concetti (e quindi anche tra le sue istanze).

Class relation sub-Class wsmoElement hasSuperRelation type relation hasParameter type parameter hasDefinition type logicalExpression multiplicity = single-valued

Superrelation: Un insieme finito di relazioni delle quale la relazione può essere considerata una sotto-relazione. Essere la sotto-relazione significa ereditare la signature e i vincoli della super-relazione e inoltre l'insieme delle tuple che appartengono alla relazione (cioè l'estensione della relazione) deve essere un sottoinsieme di ognuna delle estensioni delle super-relazioni.Parameter: La lista dei parametri.

Class parameter sub-Class wsmoElement hasDomain type concept multiplicity = single-valued

Il domain è il concetto che vincola i possibili valori che il parametro può avere.Definition: Un espressione logica che definisce un insieme di istanze (una tupla di n elementi) della relazione. Se i parametri sono specificati, la relazione è rappresentata da un simbolo di predicato n-ario con argomenti nominati e l'identificatore della relazione è usato come nome del simbolo del predicato. Se R è l'identificatore di una relazione e i parametri sono specificati allora le espressioni logiche possono avere queste forme:

• forAll ?v1,...,?vn ( R[p1 hasValue ?v1,...,pn hasValue ?vn] implies l-expr(?v1,...,?vn) ) • forAll ?v1,...,?vn ( R[p1 hasValue ?v1,...,pn hasValue ?vn] impliedBy l-expr(?v1,...,?

vn) ) • forAll ?v1,...,?vn ( R[p1 hasValue ?v1,...,pn hasValue ?vn] equivalent l-expr(?v1,...,?vn)

) Se i parametri non sono specificati la relazione è rappresentata come un simbolo di predicato dove l'identificatore della relazione è il nome del simbolo di predicato. Se R è l'identificatore di una

Page 5: Wsmo Restricted

relazione e i parametri non sono specificati allora le espressioni logiche che si possono avere sono:• forAll ?v1,...,?vn ( R(?v1,...,?vn) implies l-expr(?v1,...,?vn) ) • forAll ?v1,...,?vn ( R(?v1,...,?vn) impliedBy l-expr(?v1,...,?vn) ) • forAll ?v1,...,?vn ( R(?v1,...,?vn) equivalent l-expr(?v1,...,?vn) )

Il simbolo l-expr(?v1,...,?vn) indica un'espressione logica con ?v1,...,?vn come variabili libere e p1,...,pn sono i nomi dei parametri della relazione.FunzioniUna funzione è un tipo speciale di relazione che ha un range unario e un dominio n-ario dove i valori del range è funzionalmente dipendenti dai valori del dominio. Il seguente vincolo deve essere soddisfatto (F è il nome della funzione).forAll ?x1,...,?xn,?r1,?r2 (false impliedBy F(?x1,...,?xn,?r1) and F(?x1,...,?xn,?r2) and ?r1 != ?r2)A differenza del simbolo di funzione, una funzione non è solo una entità sintattica ma ha una semantica definita che permette di valutare effettivamente la funzione se vengono passati dei valori di input concreti per i parametri.

Class function sub-Class relation hasRange type concept multiplicity = single-valued

Il range di una funzione è un concetto che vincola i possibili valori di ritorno.La rappresentazione logica di una funzione è praticamente identica a quella delle relazioni tranne che il valore del risultato della funzione ( il valore del termine della funzione) deve essere rappresentato esplicitamente. La funzione è quindi un simbolo di predicato (n+1)-ario dove n è il numero degli argomenti della funzione; se i parametri non sono specificati si adotta la convenzione che il primo argomento del simbolo di predicato rappresenti il termine della funzione.Se F è l'identificatore di un funzione la rappresentazione logica della funzione avrà una forma simile a questa:forAll ?v1,...,?vn,?range ( F[p1 hasValue ?v1,...,pn hasValue ?vn, range hasValue ?range] equivalent l-expr(?v1,...,?vn,?range) )IstanzeLe istanze possono essere definite esplicitamente oppure attraverso un link ad un “instance store”.

Class instance sub-Class wsmoElement hasType type concept hasAttributeValues type attributeValue

Type: il concetto di cui è istanza la presente istanza.Attribute Value: il valore di un singolo attributo definito nel concetto.

Class attributeValue sub-Class wsmoElement hasAttribute type attribute multiplicity = single-valued hasValue type {instance, literal, anonymousId}

Attribute è l'attributo a cui questo valore fa riferimento mentre value può essere un istanza, un literal o un ID anonimo che rappresenta il valore attuale dell'istanza di uno specifico attributo.Istanze di RelazioniLe istanze di relazioni possono essere viste come tuple a n valori di istanze dei concetti specificati come parametri della relazione.

Class relationInstance sub-Class wsmoElement hasType type relation hasParameterValue type parameterValue

Type: la relazione a cui appartiene questa istanza.

Page 6: Wsmo Restricted

ParameterValue: un insieme di valori dei parametri che specificano le singole istanze che sono collegate in accordo con l'istanza di relazione.

Class parameterValue sub-Class wsmoElement hasParameter type parameter multiplicity = single-valued hasValue type {instance, literal, anonymousId} multiplicity = single-valued

Parameter indica il parametro a cui si fa riferimento mentre value può essere un'istanza, un liteal o un ID anonimo rappresentante il valore attuale di un'istanza per uno specifico parametro.AssiomiUn assioma è un'espressione logica accompagnata da un'annotazione.

Class axiom sub-Class wsmoElement hasDefinition type logicalExpression

Definition: la dichiarazione effettiva catturata dall'assioma è definita da una formula in un linguaggio logico.

Descrizioni di Web ServiceLe descrizioni WSMO di Web Service comprendono aspetti funzionali, non funzionali e comportamentali del Web Service. Un Web Service è un'entità computazionale che è capace tramite invocazione di raggiungere un traguardo (goal) definito dall'utente. Un servizio, invece, è il valore attuale fornito da tale invocazione. Un Web Service deve anche fornire un insieme di servizi differenti.

Class webService sub-Class wsmoElement importsOntology type ontology usesMediator type {ooMediator, wwMediator} hasNonFunctionalProperties type nonFunctionalProperty hasCapability type capability multiplicity = single-valued hasInterface type interface

Importing Ontology: usato per importare ontologie fino a quando non si generano conflitti.Using Mediator: un Web Service può importare ontologie usando un mediatore di ontologie (ooMediator) quando servono allineamenti o trasformazioni delle ontologie. Un Web Service può usare un wwMediator per la mediazione di protocolli e processi.Proprietà non funzionaliEsempi di proprietà non funzionali sono il costo, la precisione, QoS della rete, performance etc. A differenza delle semplici annotazioni le proprietà non funzionali non sono rappresentate solo come una coppia chiave-valore ma possono essere espresse usando delle espressioni logiche.

Class nonFunctionalProperty sub-Class wsmoElement hasDefinition type logicalExpression

Definition: l'espressione logica che specifica le informazioni non funzionali. WSMO non impone nessuna restrizione sulla codifica delle informazioni in espressioni logiche. Si raccomanda di usare delle terminologie standard dove è possibile per facilitare l'interoperabilità. WSMO raccomanda: accuracy, financial, networkRelatedQoS, performance, reliability, robustness, scalability, security, transactional, trust.CapacitàUna capacità descrive un Web Service attraverso le sue funzionalità.

Class capability sub-Class wsmoElement importsOntology type ontology

Page 7: Wsmo Restricted

usesMediator type {ooMediator, wgMediator} hasNonFunctionalProperties type nonFunctionalProperty hasSharedVariables type sharedVariables hasPrecondition type axiom hasAssumption type axiom hasPostcondition type axiom hasEffect type axiom

Importing Ontology: usato per importare ontologie fino a quando non si generano conflitti.Using Mediator: un Web Service può importare ontologie usando un mediatore di ontologie (ooMediator) quando servono allineamenti o trasformazioni delle ontologie. Può essere collegato ad un goal tramite un wgMediator.Non-funcional Properties: un insieme di proprietà non funzionali strettamente collegate alla capacità.Shared Variables: rappresentano le variabili condivise dalle precondizioni, postcondizioni, assunzioni ed effetti.Precondition: le precondizioni specificano lo spazio delle informazioni del Web Service prima della sua esecuzioneAssumption: le assunzioni descrivono lo stato del mondo prima dell'esecuzione del Web ServicePostcondition: le postcondizioni specificano lo spazio delle informazioni del Web Service dopo la sua esecuzione.Effect: gli effetti descrivono lo stato del mondo dopo l'esecuzione del Web Service.InterfacceUn interfaccia descrive come la funzionalità di un Web Service può essere ottenuta fornendo due punti di vista sulle competenze operazionali del Web Service:

• la coreografia decompone una capacità in termini di interazioni con il Web Service• l'orchestrazione decompone una capacità in termini di funzionalità richieste da altri Web

ServiceQuesta distinzione riflette la distinzione tra comunicazione e cooperazione. La coreografia definisce il modo per comunicare con il web service al fine di “consumare” una sua funzionalità. L'orchestrazione definisce come una funzionalità complessiva può essere ottenuta tramite la cooperazione tra più Web Service elementari.

Class interface sub-Class wsmoElement importsOntology type ontology usesMediator type ooMediator hasNonFunctionalProperties type nonFunctionalProperty hasChoreography type choreography hasOrchestration type orchestration

Importing Ontology: usato per importare ontologie fino a quando non si generano conflitti.Using Mediator: un Web Service può importare ontologie usando un mediatore di ontologie (ooMediator) quando servono allineamenti o trasformazioni delle ontologie. Non-functional Properties: un insieme di proprietà strettamente collegate all'interfaccia.Choreography: fornisce le informazioni necessarie, dal punto di vista del cliente, per permettere la comunicazione con il servizio.Orchestration: descrive come il servizio fa uso di altri servizi al fine di realizzare la sua capacità.

GoalI goal sono rappresentazioni di obiettivi il cui soddisfacimento è visto attraverso l'esecuzione di un Web Service. Un goal può essere la descrizione di un Web Service che potrebbe potenzialmente soddisfare i desideri dell'utente.

Page 8: Wsmo Restricted

Class goal sub-Class wsmoElement importsOntology type ontology usesMediator type {ooMediator, ggMediator} hasNonFunctionalProperties type nonFunctionalProperty requestsCapability type capability multiplicity = single-valued requestsInterface type interface

Importing Ontology: usato per importare ontologie fino a quando non si generano conflitti.Using Mediator: un Web Service può importare ontologie usando un mediatore di ontologie (ooMediator) quando servono allineamenti o trasformazioni delle ontologie. Un goal può essere definito a partire da uno o più goal preesistenti e per ottenere questo effetto si usano i ggMediator.Non-functional Properties: un insieme di funzionalità strettamente collegate al goal.Capabilty: le capacità che il Web Service voluto dall'utente dovrebbe avere.Interface: le interfacce che il Web Service voluto dall'utente dovrebbe avere e con cui l'utente vorrebbe interagire.

MediatorSi distinguono 4 tipi di Mediator:

• ggMediator: mediator tra due goal. Questo collegamento rappresenta il raffinamento del goal sorgente nel goal finale oppure uno stato di equivalenza se i due goal sono sostituibili.

• ooMediator: mediator che importa ontologie e risolvono possibili conflitti tra le ontologie.• wgMediator: mediator che collega un web service ad un goal indicando che il Web Service

raggiunge completamente o parzialmente gli obiettivi descritti dal goal.• wwMediator: mediator tra due Web Service.

Class mediator sub-Class wsmoElement importsOntology type ontology hasNonFunctionalProperties type nonFunctionalProperty hasSource type {ontology, goal, webService, mediator} hasTarget type {ontology, goal, webService, mediator} hasMediationService type {goal, webService, wwMediator}

Class ooMediator sub-Class mediator hasSource type {ontology, ooMediator}

Class ggMediator sub-Class mediator usesMediator type ooMediator hasSource type {goal, ggMediator} hasTarget type {goal, ggMediator}

Class wgMediator sub-Class mediator usesMediator type ooMediator hasSource type {webService, goal, wgMediator, ggMediator} hasTarget type {webService, goal, ggMediator, wgMediator}

Class wwMediator sub-Class mediator usesMediator type ooMediator hasSource type {webService, wwMediator} hasTarget type {webService, wwMediator}

Importing Ontology: usato per importare ontologie fino a quando non si generano conflitti.Non-functional Properties: un insieme di proprietà appartenenti al mediator.Source: definisce le entità che sono le sorgenti del mediator.Target: definisce l'entità che rappresenta l'obiettivo del mediator.

Page 9: Wsmo Restricted

Mediation Service: punta ad un goal che descrive in maniera dichiarativa la mappatura di mediazione oppure ad un web Service che implementa effettivamente la mappatura oppure ad un wwMediator che si collega un Web service che implementa effettivamente la mappatura.Using Mediator: alcuni tipi specifici di mediator usano un insieme di ooMediator per mappare tra di loro i vocabolari differenti usati nella descrizione di goal o di Web Service.Un wgModel può avere due funzioni distinte:

1. un goal è collegato ad un web service attraverso la coreografia della sua interfaccia indicando che il web service soddisfa il goal indicato.

2. Un web service è collegato ad un goal attraverso l'orchestrazione della sua interfaccia indicando che il web service ha bisogno che questo goal sia soddisfatto per riuscire a compiere la funzionalità descritta.

Vi sono due modi per usare i mediator per collegare due entità WSMO: la prima prevede che le entità indicano un mediator per gestire la relazione mentre la seconda prevede che le entità siano indicate direttamente all'interno del mediator.

Il Linguaggio Logico per la definizione di Dichiarazioni Formali in WSMOIdentificatori di variabiliOltre agli identificatori (URI o anonimi) e ai valori le espressioni in WSMO possono contenere delle variabili. I nomi delle variabili iniziano con il carattere punto interrogativo '?' seguito da un numero positivo di simboli dell'insieme {a-z, A-Z, 0-9,_ , -}. Ad esempio ?var o ?lastValue_Of.Vocabolario di Base e TerminiIl vocabolario V del nostro Linguaggio L(V) è composto da i seguenti simboli:

• un insieme possibilmente infinito di Uniform Resource Identifier URI• un insieme possibilmente infinito di ID anonimi AnID• un insieme possibilmente infinito di literal Lit• un insieme possibilmente infinito di variabili Var• un insieme possibilmente infinito di simboli di funzione FSym sottoinsieme di URI• un insieme possibilmente infinito di simboli di predicato PSym sottoinsieme di URI• un insieme possibilmente infinito di simboli di predicato con argomenti forniti di nome

PSymNamed sottoinsieme di URI• un insieme finito di simboli ausiliari AuxSym che include (, ), ofType, ofTypeSet,

memberOf, subConceptOf, hasValue, hasValues, false, true.

• Un insieme finito di connettori logici e quantificatori che include or, and, not, implies,impliedBy, equivalent , forAll, exists.

Tutti gli insiemi sono mutuamente distinti a meno che non sia specificato altrimenti.Per ogni simbolo S in FSym, PSym o PSymNamed, si assume che sia definita una corrispondente arity arity(S), che è un numero intero non negativo, specificante il numero di argomenti che ci si aspetta dal corrispondente simbolo quando si costruiscono delle espressioni nel nostro linguaggio.Per ogni simbolo S in PSymNamed si assume che sia definito un corrispondente insieme dei nomi dei parametri parName(S) che contiene i nomi dei parametri che devono essere usati quando si costruiscono delle espressioni nel nostro linguaggio.I simboli di funzione con arity pari a zero sono detti costanti.Dato un vocabolario V, definiamo insieme dei termini sul vocabolario V l'insieme Term(V) composto da:

• identificatori u in URI• ID anonimi i in AnID• literal l in Lit• variabili v in Var• f(t1,...,tn) dove f appartiene a Fsym e ha arity pari a n e t1,...,tn appartengono a Term(V)

Definiamo GroundTerm(V) l'insieme dei termini di Term(V) che non contengono variabili. I Termini sono usati per descrivere computazioni ma anche oggetti in un universo e per questo

Page 10: Wsmo Restricted

forniscono dei nomi a delle entità in certi domini.Espressioni LogicheUn'espressione logica semplice in L(V) o formula atomica è induttivamente definita come segue:

• Se p è un simbolo di predicato in PSym con arity(p)=n e t1,...,tn sono termini allora p(t1,...,tn) è un'espressione logica semplice in L(V)

• Se r è un simbolo di predicato in PSymNamed con arity(r)=n, parNames(r)={p1,...,pn} e t1,...,tn sono termini allora r[p1 hasValue t1,...,pn hasValue tn] è un'espressione logica semplice in L(V)

• true e false sono espressioni logiche semplici in L(V)• Se P, ATT, T sono termini allora P[ATT ofType T] è un'espressione logica semplice in L(V)• Se P,ATT, T1,...,Tn (con n>=1) sono termini allora P[ATT ofTypeSet (T1,...,Tn)] è

un'espressione logica semplice in L(V)• Se O, T sono termini allora O memberOf T è un'espressione logica semplice in L(V)• Se C1,C2 sono termini allora C1 subConceptOf C2 è un'espressione logica semplice in L(V)• Se R1, R2 sono simboli di predicato in PSym o PSymNamed con la stessa signature allora

R1 subRelationOf R2 è un'espressione logica semplice in L(V)• Se O, V, T sono termini allora O[V hasValue T] è un'espressione logica semplice in L(V)• Se O, V, T1,..., Tn (con n>=1) sono termini allora O[V hasValues (T1,...,Tn)] è

un'espressione logica semplice in L(V)• Se T1, T2 sono termini allora T1=T2 è un'espressione logica semplice in L(V)

L'espressione C[ATT ofType T] definisce un vincolo sui possibili valori che un'istanza della classe C può avere per la proprietà ATT restringendoli hai soli valori di tipo T.O memberOf T è vero se e solo se O è un'istanza di tipo TO[ATT hasValue T] è vera se l'elemento indicato con O ha la proprità ATT con valore T.T1=T2 è vera se T1 e T2 denotano lo stesso elemento all'interno dell'universo.Si estende la definizione precedente per ottenere una definizione induttiva di un'espressione logica complessa in L(V):

• Ogni espressione logica semplice è un'espressione logica in L(V).• Se L è un'espressione logica in L(V) allora anche not L è un'espressione logica in L(V).• Se L1 ed L2 sono espressioni logiche in L(V) e op è un connettore logico contenuto

nell'insieme {or, and, implies, impliedBy, equivalent} allora L1 op L2 è un'espressione logica in L(V).

• Se L è un'espressione logica in L(V), x è una variabile contenuta in Var e Q è un quantificatore contenuto nell'insieme {forAll, exists}, allora Qx(L) è un'espressione logica in L(V).

Le notazioni or, and, implies, impliedBy, equivalent corrispondono alla disgiunzione, congiunzione, implicazione, implicazione inversa ed equivalenza.