SlideShare una empresa de Scribd logo
1 de 10
Descargar para leer sin conexión
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 WSMO
WSMO è 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.
Identificatori
URI:
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
quot;hitchhikerstreetquot; e un numero civico quot;42quot;, 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 quot;hitchhikersstreetquot; e quot;42quot; si può indicare con un id anonimo.
Valori e tipi di dato
In 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.{quot;truequot;, quot;1quot;, quot;falsequot;, quot;0quot;}
     • un insieme non vuoto chiamato spazio dei valori. E.G. {true, false}
     • una mappatura dello spazio lessicale sullo spazio dei valori. E.G.{quot;truequot;, quot;1quot;}->{true};
         {quot;falsequot;, quot;0quot;}->{false}.
Annotazioni
Le 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
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 livello
WSMO 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.
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.
Ontologie
Un'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 Ontologie
L'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 Mediator
Nel caso in cui sia necessario l'allineamento di ontologie importate è di gran lunga preferibile usare
un ooMediator. Il mediator saranno descritti meglio in seguito.
Concetti
Da 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
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.
Relazioni
Le 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
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.
Funzioni
Una 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) )
Istanze
Le 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 Relazioni
Le 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.
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.
Assiomi
Un 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 Service
Le 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 funzionali
Esempi 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
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 esecuzione
Assumption: le assunzioni descrivono lo stato del mondo prima dell'esecuzione del Web Service
Postcondition: 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.
Interfacce
Un 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
        Service
Questa 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à.
Goal
I 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.
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.
Mediator
Si 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.
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
WSMO
Identificatori di variabili
Oltre 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 Termini
Il 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
forniscono dei nomi a delle entità in certi domini.
Espressioni Logiche
Un'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 T
O[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.

Más contenido relacionado

Similar a WSMO Restricted

Arte di Ascoltare - Slide Rita Marinelli
Arte di Ascoltare - Slide Rita MarinelliArte di Ascoltare - Slide Rita Marinelli
Arte di Ascoltare - Slide Rita MarinelliPersonae
 
Presentazione Laurea Picariello Vincenzo Matr. 450334
Presentazione Laurea Picariello Vincenzo Matr. 450334Presentazione Laurea Picariello Vincenzo Matr. 450334
Presentazione Laurea Picariello Vincenzo Matr. 450334Vincenzo Picariello
 
Lezione 8 Il Web Semantico
Lezione 8   Il Web SemanticoLezione 8   Il Web Semantico
Lezione 8 Il Web SemanticoStefano Epifani
 
I dati strutturati in Wordpress
I dati strutturati in WordpressI dati strutturati in Wordpress
I dati strutturati in WordpressStefano Torselli
 
Repository pattern slides v1.1
Repository pattern slides v1.1Repository pattern slides v1.1
Repository pattern slides v1.1Christian Nastasi
 
Html e Css - 2 | WebMaster & WebDesigner
 Html e Css - 2 | WebMaster & WebDesigner Html e Css - 2 | WebMaster & WebDesigner
Html e Css - 2 | WebMaster & WebDesignerMatteo Magni
 
Html e Css - 2 | WebMaster & WebDesigner
Html e Css - 2 | WebMaster & WebDesignerHtml e Css - 2 | WebMaster & WebDesigner
Html e Css - 2 | WebMaster & WebDesignerMatteo Magni
 
RDFa Tutorial di Base
RDFa Tutorial di BaseRDFa Tutorial di Base
RDFa Tutorial di BaseMonkey's Head
 
Approccio Pratico al Domain Driven Design
Approccio Pratico al Domain Driven DesignApproccio Pratico al Domain Driven Design
Approccio Pratico al Domain Driven DesignLuca Milan
 
Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...
Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...
Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...Massimo Cenci
 
Linee guida web PA: formati, licenze, classificazione, open data
Linee guida web PA: formati, licenze, classificazione, open dataLinee guida web PA: formati, licenze, classificazione, open data
Linee guida web PA: formati, licenze, classificazione, open dataGianfranco Andriola
 
Linked Open Data di Vittorio Di Tomaso
Linked Open Data di Vittorio Di TomasoLinked Open Data di Vittorio Di Tomaso
Linked Open Data di Vittorio Di TomasoCELI
 
Sviluppare per Microsoft Band - Web Tiles (Preview)
Sviluppare per Microsoft Band - Web Tiles (Preview)Sviluppare per Microsoft Band - Web Tiles (Preview)
Sviluppare per Microsoft Band - Web Tiles (Preview)Massimo Bonanni
 

Similar a WSMO Restricted (20)

Wsmo Restricted
Wsmo RestrictedWsmo Restricted
Wsmo Restricted
 
Arte di Ascoltare - Slide Rita Marinelli
Arte di Ascoltare - Slide Rita MarinelliArte di Ascoltare - Slide Rita Marinelli
Arte di Ascoltare - Slide Rita Marinelli
 
Corso UML
Corso UMLCorso UML
Corso UML
 
Presentazione Laurea Picariello Vincenzo Matr. 450334
Presentazione Laurea Picariello Vincenzo Matr. 450334Presentazione Laurea Picariello Vincenzo Matr. 450334
Presentazione Laurea Picariello Vincenzo Matr. 450334
 
Lezione 8 Il Web Semantico
Lezione 8   Il Web SemanticoLezione 8   Il Web Semantico
Lezione 8 Il Web Semantico
 
I dati strutturati in Wordpress
I dati strutturati in WordpressI dati strutturati in Wordpress
I dati strutturati in Wordpress
 
Repository pattern slides v1.1
Repository pattern slides v1.1Repository pattern slides v1.1
Repository pattern slides v1.1
 
Composite Apps
Composite AppsComposite Apps
Composite Apps
 
Composite Application
Composite ApplicationComposite Application
Composite Application
 
Html e Css - 2 | WebMaster & WebDesigner
 Html e Css - 2 | WebMaster & WebDesigner Html e Css - 2 | WebMaster & WebDesigner
Html e Css - 2 | WebMaster & WebDesigner
 
Html e Css - 2 | WebMaster & WebDesigner
Html e Css - 2 | WebMaster & WebDesignerHtml e Css - 2 | WebMaster & WebDesigner
Html e Css - 2 | WebMaster & WebDesigner
 
RDFa Tutorial di Base
RDFa Tutorial di BaseRDFa Tutorial di Base
RDFa Tutorial di Base
 
Office & VBA - Giorno 6
Office & VBA - Giorno 6Office & VBA - Giorno 6
Office & VBA - Giorno 6
 
C# Language Evolution
C# Language EvolutionC# Language Evolution
C# Language Evolution
 
Approccio Pratico al Domain Driven Design
Approccio Pratico al Domain Driven DesignApproccio Pratico al Domain Driven Design
Approccio Pratico al Domain Driven Design
 
Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...
Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...
Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...
 
Linee guida web PA: formati, licenze, classificazione, open data
Linee guida web PA: formati, licenze, classificazione, open dataLinee guida web PA: formati, licenze, classificazione, open data
Linee guida web PA: formati, licenze, classificazione, open data
 
Linked Open Data di Vittorio Di Tomaso
Linked Open Data di Vittorio Di TomasoLinked Open Data di Vittorio Di Tomaso
Linked Open Data di Vittorio Di Tomaso
 
Sviluppare per Microsoft Band - Web Tiles (Preview)
Sviluppare per Microsoft Band - Web Tiles (Preview)Sviluppare per Microsoft Band - Web Tiles (Preview)
Sviluppare per Microsoft Band - Web Tiles (Preview)
 
Introduzione ai css
Introduzione ai cssIntroduzione ai css
Introduzione ai css
 

Más de Dario Mazza

Linux & Open Source : Lezione Cinque
Linux & Open Source : Lezione CinqueLinux & Open Source : Lezione Cinque
Linux & Open Source : Lezione CinqueDario Mazza
 
Linux & Open Source : Lezione Quattro
Linux & Open Source : Lezione QuattroLinux & Open Source : Lezione Quattro
Linux & Open Source : Lezione QuattroDario Mazza
 
Linux & Open Source : Lezione Tre Pratica
Linux & Open Source : Lezione Tre PraticaLinux & Open Source : Lezione Tre Pratica
Linux & Open Source : Lezione Tre PraticaDario Mazza
 
Linux & Open Source : Lezione Due Pratica
Linux & Open Source : Lezione Due PraticaLinux & Open Source : Lezione Due Pratica
Linux & Open Source : Lezione Due PraticaDario Mazza
 
Linux & Open Source : Lezione Due
Linux & Open Source : Lezione DueLinux & Open Source : Lezione Due
Linux & Open Source : Lezione DueDario Mazza
 
Linux & Open Source : Lezione 1 Pratica
Linux & Open Source : Lezione 1 PraticaLinux & Open Source : Lezione 1 Pratica
Linux & Open Source : Lezione 1 PraticaDario Mazza
 
Relazione Progetto cRio
Relazione Progetto cRioRelazione Progetto cRio
Relazione Progetto cRioDario Mazza
 
Presentazione Progetto cRio
Presentazione Progetto cRioPresentazione Progetto cRio
Presentazione Progetto cRioDario Mazza
 
OWL Guide Resticted
OWL Guide RestictedOWL Guide Resticted
OWL Guide RestictedDario Mazza
 

Más de Dario Mazza (9)

Linux & Open Source : Lezione Cinque
Linux & Open Source : Lezione CinqueLinux & Open Source : Lezione Cinque
Linux & Open Source : Lezione Cinque
 
Linux & Open Source : Lezione Quattro
Linux & Open Source : Lezione QuattroLinux & Open Source : Lezione Quattro
Linux & Open Source : Lezione Quattro
 
Linux & Open Source : Lezione Tre Pratica
Linux & Open Source : Lezione Tre PraticaLinux & Open Source : Lezione Tre Pratica
Linux & Open Source : Lezione Tre Pratica
 
Linux & Open Source : Lezione Due Pratica
Linux & Open Source : Lezione Due PraticaLinux & Open Source : Lezione Due Pratica
Linux & Open Source : Lezione Due Pratica
 
Linux & Open Source : Lezione Due
Linux & Open Source : Lezione DueLinux & Open Source : Lezione Due
Linux & Open Source : Lezione Due
 
Linux & Open Source : Lezione 1 Pratica
Linux & Open Source : Lezione 1 PraticaLinux & Open Source : Lezione 1 Pratica
Linux & Open Source : Lezione 1 Pratica
 
Relazione Progetto cRio
Relazione Progetto cRioRelazione Progetto cRio
Relazione Progetto cRio
 
Presentazione Progetto cRio
Presentazione Progetto cRioPresentazione Progetto cRio
Presentazione Progetto cRio
 
OWL Guide Resticted
OWL Guide RestictedOWL Guide Resticted
OWL Guide Resticted
 

Último

Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Associazione Digital Days
 
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Associazione Digital Days
 
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...Associazione Digital Days
 
Programma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 TorinoProgramma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 TorinoQuotidiano Piemontese
 
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...Associazione Digital Days
 
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Associazione Digital Days
 
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Associazione Digital Days
 
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Associazione Digital Days
 
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Associazione Digital Days
 

Último (9)

Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
 
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
 
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
 
Programma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 TorinoProgramma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 Torino
 
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
 
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
 
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
 
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
 
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
 

WSMO Restricted

  • 1. 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 WSMO WSMO è 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. Identificatori URI: 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 quot;hitchhikerstreetquot; e un numero civico quot;42quot;, 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 quot;hitchhikersstreetquot; e quot;42quot; si può indicare con un id anonimo. Valori e tipi di dato In 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.{quot;truequot;, quot;1quot;, quot;falsequot;, quot;0quot;} • un insieme non vuoto chiamato spazio dei valori. E.G. {true, false} • una mappatura dello spazio lessicale sullo spazio dei valori. E.G.{quot;truequot;, quot;1quot;}->{true}; {quot;falsequot;, quot;0quot;}->{false}. Annotazioni Le 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
  • 2. 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 livello WSMO 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.
  • 3. 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. Ontologie Un'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 Ontologie L'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 Mediator Nel caso in cui sia necessario l'allineamento di ontologie importate è di gran lunga preferibile usare un ooMediator. Il mediator saranno descritti meglio in seguito. Concetti Da 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
  • 4. 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. Relazioni Le 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
  • 5. 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. Funzioni Una 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) ) Istanze Le 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 Relazioni Le 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.
  • 6. 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. Assiomi Un 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 Service Le 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 funzionali Esempi 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
  • 7. 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 esecuzione Assumption: le assunzioni descrivono lo stato del mondo prima dell'esecuzione del Web Service Postcondition: 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. Interfacce Un 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 Service Questa 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à. Goal I 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.
  • 8. 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. Mediator Si 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.
  • 9. 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 WSMO Identificatori di variabili Oltre 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 Termini Il 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
  • 10. forniscono dei nomi a delle entità in certi domini. Espressioni Logiche Un'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 T O[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.