<?xml version="1.0" encoding="iso-8859-1"?>

<!DOCTYPE grammar PUBLIC "-//W3C//DTD GRAMMAR 1.0//EN" "http://www.w3.org/TR/speech-grammar/grammar.dtd">

<grammar version="1.0" xmlns="http://www.w3.org/2001/06/grammar" tag-format="semantics/1.0" xml:lang="en-US" mode="voice" root="actions">
<!-- 
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
-->
        <rule id="actions" scope="public">
          <one-of>
           <item>tell me more <tag>$ = "details"</tag></item>
           <item>describe <item repeat="0-1">the</item> album 
                 <tag>$ = "details"</tag></item>
           <item>add to <item repeat="0-1">the</item> <item repeat="0-1">shopping</item> cart
                 <tag>$ = "addtocart"</tag></item>
           <item>buy it <tag>$ = "addtocart"</tag> </item>
           <item>take it <tag>$ = "addtocart"</tag> </item>
           <item>buy <item repeat="0-1">the</item>
                 <one-of>
                   <item>album</item>
                   <item>title</item>
                   <item>item</item>
                 </one-of>
                 <tag>$ = "addtocart"</tag> </item>
           <item>
                <item>
                  <one-of>
                    <item>show</item>
                    <item>look up</item>
                  </one-of>
                </item>           
                similar     <item repeat="0-1">
                                <one-of>
                                   <item>items</item>
                                   <item>titles</item>
                                   <item>albums</item>
                                </one-of>
                              </item>
                 <tag>$ = "showsimilar"</tag></item>
	   	   <item><item repeat="0-1">give me</item> <item repeat="0-1">the</item> details
	   	         <tag>$ = "details"</tag>
	   	   </item>
		   <item>
		        <item repeat="0-1">proceed to</item>
		        checkout
		        <tag>$ = "checkout"</tag>
		   </item>
		   <item>
		        <item>
		          <one-of>
                    <item>show me my</item>
                    <item>view</item>
                  </one-of>
				</item> cart 
				<tag>$ = "viewcart"</tag>
		   </item>
		   <item>
				<item>
                  <one-of>
                     <item>continue shopping</item>
                     <item>buy more <item repeat="0-1">albums</item></item>
                 </one-of>
				</item>
                <tag>$ = "continueshop"</tag>		        
		   </item>
          </one-of>
        </rule>


</grammar>

