Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Lettore RSS: grammatiche

Realizzare le grammatiche per l'interfaccia
Realizzare le grammatiche per l'interfaccia
Link copiato negli appunti

In questa lezione scriviamo le grammatiche per il file inizio.vxml e per la navigazione.

La prima gramamatica serve esclusivamente all'utente per scegliere quale argomento desidera ascoltare, la lista degli argomenti la possiamo trovare all'indirizzo: https://www.html.it/rss.php.

La nostra grammatica perciò dovrà contenere la lista degli argomenti e alcune possibilità di pronunciare le frasi di scelta.

Il nome della grammatica, come abbiamo dichiarato nel file precendete è argomenti.grxml e la sua struttura sarà la seguente:

Listato 6.3: argomenti.grxml

<?xml version="1.0"?>
<grammar
xml:lang="it-IT"
version="1.0"
mode="voice"
tag-format="Nuance"
root="myapp"
xmlns="http://www.w3.org/2001/06/grammar"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3.org/2001/06/grammar
http://www.w3.org/TR/speech-grammar/grammar.xsd">

<meta name="creator" content="Fabizio Gramuglio"/>

<rule id="argomento" scope="public">
<item>
<item repeat="0-1"><ruleref uri="#Ausiliare"/></item>
<item repeat="0-1"><ruleref uri="#Verbo"/></item>
<item repeat="0-1"><ruleref uri="#Articolo"/></item>
<item><ruleref uri="#Azione"/></item>
</item>
</rule>

<!--- level 0 grammar -->
<rule id="Azione" scope="public">
<one-of>
<item>news di accatiemmeelle punto it<tag><![CDATA[<argomento
"webnews_news">]]></tag></item>
<item>news<tag><![CDATA[<argomento "webnews_news">]]></tag></item>
<item>nius<tag><![CDATA[<argomento "webnews_news">]]></tag></item>
......
<!-- inseriamo i diversi argomenti -->
......
<item>aiuto<tag><![CDATA[<argomento "aiuto">]]></tag></item>
<item>aiutami<tag><![CDATA[<argomento "aiuto">]]></tag></item>
</one-of>
</rule>

<rule id="Ausiliare">
<one-of>
<item>vorrei</item>
<item>voglio</item>
<item>puoi</item>
<item>potresti</item>
.......
</one-of>
</rule>

<rule id="Verbo">
<one-of>
<item>ascoltare</item>
<item>leggermi</item>
......
</one-of>
</rule>

<rule id="Articolo">
<one-of>
<item>il</item>
<item>lo</item>
<item>la</item>
......
</one-of>
</rule>

</grammar>

Abbiamo associato al valore del singolo argomento il nome del file xml che dovremo aprire, cosi ci limitiremo a passarlo direttamente al file asp senza dover fare altre elaborazioni. Questo caso dimostra come si possa utilizzare l'attribuzione semantica per velocizzare e migliorare anche la stesura del codice.

Scriviamo la grammatica di navigazione per il prossimo file, ovvero quello in cui l'utente potrà scegliere di cambiare argomento, tornando indietro, oppure di passare alla prossima notizia, a quella precedente etc.

Listato 6.4: navigazione.grxml

<?xml version="1.0"?>
<grammar
xml:lang="it-IT"
version="1.0"
mode="voice"
tag-format="Nuance"
root="myapp"
xmlns="http://www.w3.org/2001/06/grammar"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3.org/2001/06/grammar
http://www.w3.org/TR/speech-grammar/grammar.xsd">

<meta name="creator" content="Fabrizio Gramuglio"/>

<rule id="myapp" scope="public">
<item>
<ruleref special="GARBAGE"/>
<item repeat="0-1"><ruleref uri="#Ausiliare"/></item>
<item repeat="0-1"><ruleref uri="#Verbo"/></item>
<item repeat="0-1"><ruleref uri="#Articolo"/></item>
<item><ruleref uri="#Azione"/></item>
</item>
</rule>

<!--- level 0 grammar -->
<rule id="Azione" scope="public">
<one-of>
<item>notizia prossima<tag><![CDATA[<myapp "not+">]]></tag></item>
<item>prossima notizia<tag><![CDATA[<myapp "not+">]]></tag></item>
<item>avanti di una notizia<tag><![CDATA[<myapp "not+">]]></tag></item>
<item>notizia avanti<tag><![CDATA[<myapp "not+">]]></tag></item>
<item>notizia successiva<tag><![CDATA[<myapp "not+">]]></tag></item>
<item>successiva notizia<tag><![CDATA[<myapp "not+">]]></tag></item>
<item>seguente notizia<tag><![CDATA[<myapp "not+">]]></tag></item>
<item>notizia seguente<tag><![CDATA[<myapp "not+">]]></tag></item>
<item>notizia dopo<tag><![CDATA[<myapp "not+">]]></tag></item>

<item>ripeti<tag><![CDATA[<myapp "rip">]]></tag></item>
<item>puoi ripetere<tag><![CDATA[<myapp "rip">]]></tag></item>
<item>rileggi<tag><![CDATA[<myapp "rip">]]></tag></item>
<item>puoi rileggere<tag><![CDATA[<myapp "rip">]]></tag></item>
<item>ripeti ultimo<tag><![CDATA[<myapp "rip">]]></tag></item>
<item>ripeti ultimo paragrafo<tag><![CDATA[<myapp "rip">]]></tag></item>
<item>non ho capito<tag><![CDATA[<myapp "rip">]]></tag></item>

<!-- anche in questo caso mettiamo la possibilità di chiedere aiuto -->
<item>aiuto<tag><![CDATA[<myapp "aiuto">]]></tag></item>

</one-of>
</rule>

<rule id="Ausiliare">
<one-of>
<item>vorrei</item>
<item>voglio</item>
<item>puoi</item>
<item>potresti</item>
</one-of>
</rule>

<rule id="Verbo">
<one-of>
<item>leggi</item>
<item>mi leggi</item>
<item>leggimi</item>
<item>vai</item>
<item>torna</item>
</one-of>
</rule>

<rule id="Articolo">
<one-of>
<item>il</item>
<item>a</item>
<item>al</item>
<item>alla</item>
</one-of>
</rule>

</grammar>

In questa grammatica abbiamo perciò inserito i comandi per la navigazione e la possibilità di chiedere aiuto. Quello che ci resta da fare è scrivere il codice del documento argomento.asp per la gestione dei contenuti del feed RSS.


Ti consigliamo anche