RE: private rules

So you mean that root rule must always be defined? And only rules used in the root one can be matched? It is not enough to specify a public rule to make it work?

-----Original Message-----
From: Mihai Sucan [mailto:mihai.sucan@gmail.com] 
Sent: Friday, October 20, 2006 15:53
To: Petrova Anastasia; www-voice@w3.org
Subject: Re: private rules

Le Fri, 20 Oct 2006 14:27:33 +0300, Petrova Anastasia  
<Anastasia.Petrova@bercut.com> a Êcrit:

> Hello. A private-scoped rule cannot be referenced in the rule
> definitions of other grammars and in other non-grammar documents and is
> directly accessible only within its containing grammar. But if I have a
> private rule, and user says something matching this rule, will this mean
> that e.g. a field is filled? Or only public rules can be matched by user
> input?
>
> Best regards, Anastasia Petrova

Hello!

Yes, a private-scoped rule cannot be referenced in the definition of other  
grammar rules, nor in non-grammar documents. It's only directly accessible  
within its containing grammar. Also, your VoiceXML <grammar /> element  
cannot use as a root a private rule.

However, a private rule which is not used will never match. The same  
applies to public rules.

So, given the following SRGS grammar:

START:--
root $whatever;

$pages = contact | services | portfolio;

$numbers = one | two | three;

$countries = romania | france | germany;

public $people = me | you | her;

public $whatever = $pages | $countries;
--EOF;

$numbers and $people will never match, even if the user says  
"one/two/three" or "me/you/her". This is because the root rule $whatever  
never makes use of $numbers nor $people rules.



-- 
http://www.robodesign.ro
ROBO Design - We bring you the future

Received on Friday, 20 October 2006 12:58:10 UTC