RE: private rules

But the SRGS tells:
Both the XML Form and ABNF Form permit the grammar header to optionally declare a single rule to be the root rule of the grammar. The rule declared as the root rule must be defined within the scope of the grammar. The rule declared as the root rule may be scoped as either public or private.

So it's not required to specify the root rule. And if I don't, which rules will work? Only public rules? Or none of the existing rules?

-----Original Message-----
From: Petrova Anastasia 
Sent: Friday, October 20, 2006 16:58
To: 'Mihai Sucan'; www-voice@w3.org
Subject: 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 13:07:56 UTC