Author: anuzzolese
Date: Mon May 16 13:43:30 2011
New Revision: 1103734
URL: http://svn.apache.org/viewvc?rev=1103734&view=rev
Log:
Added web tutorial to Stanbol rules.
Added:
incubator/stanbol/trunk/rules/web/src/main/resources/org/apache/stanbol/rules/web/templates/imports/ruleSyntax.ftl
incubator/stanbol/trunk/rules/web/src/main/resources/org/apache/stanbol/rules/web/templates/imports/tutorial0.ftl
incubator/stanbol/trunk/rules/web/src/main/resources/org/apache/stanbol/rules/web/templates/imports/tutorial1.ftl
Removed:
incubator/stanbol/trunk/rules/web/src/test/java/org/apache/stanbol/rules/web/RecipeTest.java
incubator/stanbol/trunk/rules/web/src/test/java/org/apache/stanbol/rules/web/RuleTest.java
Modified:
incubator/stanbol/trunk/rules/web/pom.xml
incubator/stanbol/trunk/rules/web/src/main/resources/org/apache/stanbol/rules/web/static/actions/actions.js
incubator/stanbol/trunk/rules/web/src/main/resources/org/apache/stanbol/rules/web/static/css/rules.css
incubator/stanbol/trunk/rules/web/src/main/resources/org/apache/stanbol/rules/web/templates/org/apache/stanbol/rules/web/resources/RulesRootResource/index.ftl
Modified: incubator/stanbol/trunk/rules/web/pom.xml
URL:
http://svn.apache.org/viewvc/incubator/stanbol/trunk/rules/web/pom.xml?rev=1103734&r1=1103733&r2=1103734&view=diff
==============================================================================
--- incubator/stanbol/trunk/rules/web/pom.xml (original)
+++ incubator/stanbol/trunk/rules/web/pom.xml Mon May 16 13:43:30 2011
@@ -141,6 +141,9 @@
<groupId>org.apache.clerezza</groupId>
<artifactId>org.apache.clerezza.rdf.core</artifactId>
</dependency>
+
</dependencies>
+
+
</project>
Modified:
incubator/stanbol/trunk/rules/web/src/main/resources/org/apache/stanbol/rules/web/static/actions/actions.js
URL:
http://svn.apache.org/viewvc/incubator/stanbol/trunk/rules/web/src/main/resources/org/apache/stanbol/rules/web/static/actions/actions.js?rev=1103734&r1=1103733&r2=1103734&view=diff
==============================================================================
---
incubator/stanbol/trunk/rules/web/src/main/resources/org/apache/stanbol/rules/web/static/actions/actions.js
(original)
+++
incubator/stanbol/trunk/rules/web/src/main/resources/org/apache/stanbol/rules/web/static/actions/actions.js
Mon May 16 13:43:30 2011
@@ -1,26 +1,70 @@
+var tutorialPage = 0;
+var totalPages = 2;
+
function Interaction() {
}
-Interaction.prototype.hide = function(){
- $('#syntax-body').hide('slow');
- $("#show-sytanx-button").show();
- $("#hide-sytanx-button").hide();
- /*
- $('#syntax-button').attr('value', 'show');
- $("#sytanx-button").unbind('click.hide');
- $("#sytanx-button").bind('click.show', function() {var interaction =
new Interaction(); interaction.hide();});
- */
+Interaction.prototype.hide = function(elementID){
+ $("#" + elementID + "-body").hide('slow');
+ $("#show-" + elementID + "-button").show();
+ $("#hide-" + elementID + "-button").hide();
}
-Interaction.prototype.show = function(){
- $('#syntax-body').show('slow');
- $("#show-sytanx-button").hide();
- $("#hide-sytanx-button").show();
+Interaction.prototype.show = function(elementID){
+ $("#" + elementID + "-body").show('slow');
+ $("#show-" + elementID + "-button").hide();
+ $("#hide-" + elementID + "-button").show();
/*
$("#sytanx-button").unbind('click.show');
$("#sytanx-button").bind('click.hide', function() {var interaction =
new Interaction(); interaction.hide();});
$('#syntax-button').val('hide');
alert($('#syntax-button').val());
*/
+}
+
+Interaction.prototype.previousTutorial = function(){
+
+ //set the current page as inactive
+ $("#tutorial" + tutorialPage).removeClass("active");
+ $("#tutorial" + tutorialPage).addClass("inactive");
+
+
+ //set the previous page as active
+ tutorialPage = tutorialPage - 1;
+
+ $("#tutorial" + tutorialPage).removeClass("inactive");
+ $("#tutorial" + tutorialPage).addClass("active");
+
+ if(tutorialPage == 0){
+ $("#previous").hide();
+ }
+ if(tutorialPage < (totalPages-1)){
+ $("#next").show();
+ }
+}
+
+
+Interaction.prototype.nextTutorial = function(){
+
+ //set the current page as inactive
+ $("#tutorial" + tutorialPage).removeClass("active");
+ $("#tutorial" + tutorialPage).addClass("inactive");
+
+
+ alert("tutorial" + tutorialPage);
+
+ //set the next page as active
+ tutorialPage = tutorialPage + 1;
+
+ $("#tutorial" + tutorialPage).removeClass("inactive");
+ $("#tutorial" + tutorialPage).addClass("active");
+
+ if(tutorialPage > 0){
+ $("#previous").show();
+ }
+
+ if(tutorialPage == (totalPages-1)){
+ $("#next").hide();
+ }
}
\ No newline at end of file
Modified:
incubator/stanbol/trunk/rules/web/src/main/resources/org/apache/stanbol/rules/web/static/css/rules.css
URL:
http://svn.apache.org/viewvc/incubator/stanbol/trunk/rules/web/src/main/resources/org/apache/stanbol/rules/web/static/css/rules.css?rev=1103734&r1=1103733&r2=1103734&view=diff
==============================================================================
---
incubator/stanbol/trunk/rules/web/src/main/resources/org/apache/stanbol/rules/web/static/css/rules.css
(original)
+++
incubator/stanbol/trunk/rules/web/src/main/resources/org/apache/stanbol/rules/web/static/css/rules.css
Mon May 16 13:43:30 2011
@@ -3,6 +3,23 @@
display: none;
}
-input#hide-sytanx-button{
+input.hide-button{
display: none;
+}
+
+span.red{
+ color: red;
+}
+
+p.active{
+ display: block;
+}
+
+p.inactive{
+ display: none;
+}
+
+div.arrows{
+ text-align: center;
+ display: block;
}
\ No newline at end of file
Added:
incubator/stanbol/trunk/rules/web/src/main/resources/org/apache/stanbol/rules/web/templates/imports/ruleSyntax.ftl
URL:
http://svn.apache.org/viewvc/incubator/stanbol/trunk/rules/web/src/main/resources/org/apache/stanbol/rules/web/templates/imports/ruleSyntax.ftl?rev=1103734&view=auto
==============================================================================
---
incubator/stanbol/trunk/rules/web/src/main/resources/org/apache/stanbol/rules/web/templates/imports/ruleSyntax.ftl
(added)
+++
incubator/stanbol/trunk/rules/web/src/main/resources/org/apache/stanbol/rules/web/templates/imports/ruleSyntax.ftl
Mon May 16 13:43:30 2011
@@ -0,0 +1,474 @@
+<#macro view>
+
+<H3>TOKENS</H2>
+<TABLE>
+ <!-- Token -->
+ <TR>
+ <TD>
+ <PRE>
+<DEFAULT> SKIP : {
+" "
+}
+
+ </PRE>
+ </TD>
+ </TR>
+ <!-- Token -->
+ <TR>
+ <TD>
+ <PRE>
+<DEFAULT> SKIP : {
+"\r"
+| "\t"
+| "\n"
+}
+
+ </PRE>
+ </TD>
+ </TR>
+ <!-- Token -->
+ <TR>
+ <TD>
+ <PRE>
+<DEFAULT> TOKEN : {
+<LARROW: "->">
+| <COLON: ":">
+| <EQUAL: "=">
+| <AND: ".">
+| <COMMA: ",">
+| <REFLEXIVE: "+">
+| <SAME: "same">
+| <DIFFERENT: "different">
+| <LESSTHAN: "lt">
+| <GREATERTHAN: "gt">
+| <IS: "is">
+| <NEW_NODE: "newNode">
+| <LENGTH: "length">
+| <SUBSTRING: "substring">
+| <UPPERCASE: "upperCase">
+| <LOWERCASE: "lowerCase">
+| <STARTS_WITH: "startsWith">
+| <ENDS_WITH: "endsWith">
+| <LET: "let">
+| <CONCAT: "concat">
+| <HAS: "has">
+| <VALUES: "values">
+| <NOTEX: "notex">
+| <PLUS: "sum">
+| <MINUS: "sub">
+| <NOT: "not">
+| <NAMESPACE: "namespace">
+| <LOCALNAME: "localname">
+| <STR: "str">
+| <APOX: "^">
+| <UNION: "union">
+| <CREATE_LABEL: "createLabel">
+| <SPARQL_C: "sparql-c">
+| <SPARQL_D: "sparql-d">
+| <SPARQL_DD: "sparql-dd">
+| <PROP: "prop">
+| <IS_BLANK: "isBlank">
+| <FORWARD_CHAIN: "!">
+}
+
+ </PRE>
+ </TD>
+ </TR>
+ <!-- Token -->
+ <TR>
+ <TD>
+ <PRE>
+<DEFAULT> TOKEN : {
+<LPAR: "(">
+| <RPAR: ")">
+| <DQUOT: "\"">
+| <LQUAD: "[">
+| <RQUAD: "]">
+}
+
+ </PRE>
+ </TD>
+ </TR>
+ <!-- Token -->
+ <TR>
+ <TD>
+ <PRE>
+<DEFAULT> TOKEN : {
+<NUM: (["0"-"9"])+>
+| <VAR: (["0"-"9","a"-"z","A"-"Z","-","_","."])+>
+| <VARIABLE: "?" (["0"-"9","a"-"z","A"-"Z","-","_"])+>
+| <URI: "<" (["0"-"9","a"-"z","A"-"Z","-","_",".","#",":","/","(",")"])+
">">
+| <STRING: "\""
(["0"-"9","a"-"z","A"-"Z","-","_",".",":","/","#","\\","?"," ","!","$","%"])+
"\"">
+| <SPARQL_STRING: "%"
(["0"-"9","a"-"z","A"-"Z","-","_",".",":","/","#","\\","?","
","!","$","%","{","}","(",")","\"","<",">","=","+","\n","\t","&","|",","])+
"%">
+| <BNODE: "_:" (["0"-"9","a"-"z","A"-"Z","-","_","."])+>
+}
+
+ </PRE>
+ </TD>
+ </TR>
+</TABLE>
+<H3>NON-TERMINALS</H2>
+<TABLE>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod1">start</A></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod2">expression</A> <A
HREF="#prod3">expressionCont</A></TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod3">expressionCont</A></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>( <AND> <A HREF="#prod2">expression</A>
)</TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>|</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE></TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod2">expression</A></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod4">prefix</A> <A
HREF="#prod3">expressionCont</A></TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod4">prefix</A></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod5">getVariable</A> ( <A
HREF="#prod6">equality</A> | <A HREF="#prod7">rule</A> )</TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>|</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><FORWARD_CHAIN> <A
HREF="#prod5">getVariable</A> <A HREF="#prod7">rule</A></TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>|</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><REFLEXIVE> <A
HREF="#prod5">getVariable</A> <A HREF="#prod7">rule</A></TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod6">equality</A></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><EQUAL> ( <A HREF="#prod8">getURI</A>
)</TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod7">rule</A></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><LQUAD> <A
HREF="#prod9">ruleDefinition</A> <RQUAD></TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod9">ruleDefinition</A></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod10">atomList</A> <LARROW>
<A HREF="#prod10">atomList</A></TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>|</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><SPARQL_C> <LPAR>
<SPARQL_STRING> <RPAR></TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>|</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><SPARQL_D> <LPAR>
<SPARQL_STRING> <RPAR></TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>|</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><SPARQL_DD> <LPAR>
<SPARQL_STRING> <RPAR></TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod10">atomList</A></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod11">atom</A> <A
HREF="#prod12">atomListRest</A></TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>|</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE></TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod12">atomListRest</A></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><AND> <A HREF="#prod10">atomList</A></TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>|</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE></TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod11">atom</A></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod13">classAtom</A></TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>|</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><A
HREF="#prod14">individualPropertyAtom</A></TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>|</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><A
HREF="#prod15">datavaluedPropertyAtom</A></TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>|</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod16">letAtom</A></TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>|</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod17">newNodeAtom</A></TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>|</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod18">comparisonAtom</A></TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>|</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod19">unionAtom</A></TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod19">unionAtom</A></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><UNION> <LPAR> <A
HREF="#prod10">atomList</A> <COMMA> <A HREF="#prod10">atomList</A>
<RPAR></TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod20">createLabelAtom</A></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><CREATE_LABEL> <LPAR> <A
HREF="#prod21">stringFunctionAtom</A> <RPAR></TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod22">propStringAtom</A></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><PROP> <LPAR> <A
HREF="#prod21">stringFunctionAtom</A> <COMMA> <A
HREF="#prod21">stringFunctionAtom</A> <RPAR></TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod23">endsWithAtom</A></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><ENDS_WITH> <LPAR> <A
HREF="#prod21">stringFunctionAtom</A> <COMMA> <A
HREF="#prod21">stringFunctionAtom</A> <RPAR></TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod24">startsWithAtom</A></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><STARTS_WITH> <LPAR> <A
HREF="#prod21">stringFunctionAtom</A> <COMMA> <A
HREF="#prod21">stringFunctionAtom</A> <RPAR></TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod21">stringFunctionAtom</A></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod25">concatAtom</A> | <A
HREF="#prod26">upperCaseAtom</A> | <A HREF="#prod27">lowerCaseAtom</A> | <A
HREF="#prod28">substringAtom</A> | <A HREF="#prod29">namespaceAtom</A> | <A
HREF="#prod30">localnameAtom</A> | <A HREF="#prod31">strAtom</A> | <A
HREF="#prod32">stringAtom</A> | <A HREF="#prod22">propStringAtom</A> | <A
HREF="#prod20">createLabelAtom</A> )</TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod31">strAtom</A></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><STR> <LPAR> <A
HREF="#prod33">iObject</A> <RPAR></TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod29">namespaceAtom</A></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><NAMESPACE> <LPAR> <A
HREF="#prod33">iObject</A> <RPAR></TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod30">localnameAtom</A></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><LOCALNAME> <LPAR> <A
HREF="#prod33">iObject</A> <RPAR></TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod32">stringAtom</A></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod34">uObject</A></TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod25">concatAtom</A></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><CONCAT> <LPAR> <A
HREF="#prod21">stringFunctionAtom</A> <COMMA> <A
HREF="#prod21">stringFunctionAtom</A> <RPAR></TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod26">upperCaseAtom</A></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><UPPERCASE> <LPAR> <A
HREF="#prod21">stringFunctionAtom</A> <RPAR></TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod27">lowerCaseAtom</A></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><LOWERCASE> <LPAR> <A
HREF="#prod21">stringFunctionAtom</A> <RPAR></TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod28">substringAtom</A></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><SUBSTRING> <LPAR> <A
HREF="#prod21">stringFunctionAtom</A> <COMMA> <A
HREF="#prod35">numericFunctionAtom</A> <COMMA> <A
HREF="#prod35">numericFunctionAtom</A> <RPAR></TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod35">numericFunctionAtom</A></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod36">sumAtom</A> | <A
HREF="#prod37">subtractionAtom</A> | <A HREF="#prod38">lengthAtom</A> | <A
HREF="#prod39">numberAtom</A> )</TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod38">lengthAtom</A></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><LENGTH> <LPAR> <A
HREF="#prod21">stringFunctionAtom</A> <RPAR></TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod36">sumAtom</A></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><PLUS> <LPAR> <A
HREF="#prod35">numericFunctionAtom</A> <COMMA> <A
HREF="#prod35">numericFunctionAtom</A> <RPAR></TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod37">subtractionAtom</A></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><MINUS> <LPAR> <A
HREF="#prod35">numericFunctionAtom</A> <COMMA> <A
HREF="#prod35">numericFunctionAtom</A> <RPAR></TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod39">numberAtom</A></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>( <NUM> | <VARIABLE> )</TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod13">classAtom</A></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><IS> <LPAR> <A
HREF="#prod33">iObject</A> <COMMA> <A HREF="#prod33">iObject</A>
<RPAR></TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod17">newNodeAtom</A></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><NEW_NODE> <LPAR> <A
HREF="#prod33">iObject</A> <COMMA> <A HREF="#prod40">dObject</A>
<RPAR></TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod16">letAtom</A></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><LET> <LPAR> <A
HREF="#prod33">iObject</A> <COMMA> <A
HREF="#prod21">stringFunctionAtom</A> <RPAR></TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A
NAME="prod14">individualPropertyAtom</A></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><HAS> <LPAR> <A
HREF="#prod33">iObject</A> <COMMA> <A HREF="#prod33">iObject</A>
<COMMA> <A HREF="#prod33">iObject</A> <RPAR></TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A
NAME="prod15">datavaluedPropertyAtom</A></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><VALUES> <LPAR> <A
HREF="#prod33">iObject</A> <COMMA> <A HREF="#prod33">iObject</A>
<COMMA> <A HREF="#prod40">dObject</A> <RPAR></TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod41">sameAsAtom</A></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><SAME> <LPAR> <A
HREF="#prod21">stringFunctionAtom</A> <COMMA> <A
HREF="#prod21">stringFunctionAtom</A> <RPAR></TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod42">lessThanAtom</A></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><LESSTHAN> <LPAR> <A
HREF="#prod33">iObject</A> <COMMA> <A HREF="#prod33">iObject</A>
<RPAR></TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod43">greaterThanAtom</A></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><GREATERTHAN> <LPAR> <A
HREF="#prod33">iObject</A> <COMMA> <A HREF="#prod33">iObject</A>
<RPAR></TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod44">differentFromAtom</A></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><DIFFERENT> <LPAR> <A
HREF="#prod21">stringFunctionAtom</A> <COMMA> <A
HREF="#prod21">stringFunctionAtom</A> <RPAR></TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod45">reference</A></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod8">getURI</A></TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>|</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod5">getVariable</A> <COLON>
<A HREF="#prod5">getVariable</A></TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod46">varReference</A></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod8">getURI</A></TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>|</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod5">getVariable</A> <COLON>
<A HREF="#prod5">getVariable</A></TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod8">getURI</A></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><URI></TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod5">getVariable</A></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><VAR></TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod47">getString</A></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><STRING></TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod48">getInt</A></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><NUM></TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod34">uObject</A></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod49">variable</A> | <A
HREF="#prod45">reference</A> | <A HREF="#prod47">getString</A> | <A
HREF="#prod48">getInt</A> )</TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod33">iObject</A></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod49">variable</A></TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>|</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod45">reference</A></TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod40">dObject</A></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod50">literal</A> | <A
HREF="#prod49">variable</A> )</TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod50">literal</A></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod47">getString</A> <A
HREF="#prod51">typedLiteral</A> | <A HREF="#prod48">getInt</A> <A
HREF="#prod51">typedLiteral</A> )</TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod51">typedLiteral</A></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>( <APOX> <APOX> <A
HREF="#prod45">reference</A> | )</TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod49">variable</A></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><NOTEX> <LPAR> <VARIABLE>
<RPAR></TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>|</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><VARIABLE></TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>|</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><BNODE></TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod52">notAtom</A></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><NOT> <LPAR> <A
HREF="#prod18">comparisonAtom</A> <RPAR></TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod53">isBlankAtom</A></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><IS_BLANK> <LPAR> <A
HREF="#prod33">iObject</A> <RPAR></TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod18">comparisonAtom</A></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod41">sameAsAtom</A> | <A
HREF="#prod42">lessThanAtom</A> | <A HREF="#prod43">greaterThanAtom</A> | <A
HREF="#prod44">differentFromAtom</A> | <A HREF="#prod52">notAtom</A> | <A
HREF="#prod24">startsWithAtom</A> | <A HREF="#prod23">endsWithAtom</A> | <A
HREF="#prod53">isBlankAtom</A> )</TD>
+</TR>
+</TABLE>
+
+</#macro>
\ No newline at end of file
Added:
incubator/stanbol/trunk/rules/web/src/main/resources/org/apache/stanbol/rules/web/templates/imports/tutorial0.ftl
URL:
http://svn.apache.org/viewvc/incubator/stanbol/trunk/rules/web/src/main/resources/org/apache/stanbol/rules/web/templates/imports/tutorial0.ftl?rev=1103734&view=auto
==============================================================================
---
incubator/stanbol/trunk/rules/web/src/main/resources/org/apache/stanbol/rules/web/templates/imports/tutorial0.ftl
(added)
+++
incubator/stanbol/trunk/rules/web/src/main/resources/org/apache/stanbol/rules/web/templates/imports/tutorial0.ftl
Mon May 16 13:43:30 2011
@@ -0,0 +1,12 @@
+<#macro view>
+
+
+The rule pattern (modus ponens) used in Stanbol is the following
+<pre> <span class="red">if</span> conditioon <span class="red">then</span>
consequent</pre>
+
+For example the statement "every person has a father", i.e.
∀x.∃y. Person(x) ⇒ hasFather(x, y), becomes
+<pre> <span class="red">if</span> X is a person <span
class="red">then</span> X has a father</pre>
+Or "the brother of the father is the uncle", i.e. ∀xyz. hasFather(x,y)
∧ hasBrother(y,z) ⇒ hasUncle(x,z), becomes
+<pre> <span class="red">if</span> Y is the father of X and Z the brother
of Y <span class="red">then</span> Z is the uncle of X</pre>
+
+</#macro>
\ No newline at end of file
Added:
incubator/stanbol/trunk/rules/web/src/main/resources/org/apache/stanbol/rules/web/templates/imports/tutorial1.ftl
URL:
http://svn.apache.org/viewvc/incubator/stanbol/trunk/rules/web/src/main/resources/org/apache/stanbol/rules/web/templates/imports/tutorial1.ftl?rev=1103734&view=auto
==============================================================================
---
incubator/stanbol/trunk/rules/web/src/main/resources/org/apache/stanbol/rules/web/templates/imports/tutorial1.ftl
(added)
+++
incubator/stanbol/trunk/rules/web/src/main/resources/org/apache/stanbol/rules/web/templates/imports/tutorial1.ftl
Mon May 16 13:43:30 2011
@@ -0,0 +1,6 @@
+<#macro view>
+
+Prova
+
+
+</#macro>
\ No newline at end of file
Modified:
incubator/stanbol/trunk/rules/web/src/main/resources/org/apache/stanbol/rules/web/templates/org/apache/stanbol/rules/web/resources/RulesRootResource/index.ftl
URL:
http://svn.apache.org/viewvc/incubator/stanbol/trunk/rules/web/src/main/resources/org/apache/stanbol/rules/web/templates/org/apache/stanbol/rules/web/resources/RulesRootResource/index.ftl?rev=1103734&r1=1103733&r2=1103734&view=diff
==============================================================================
---
incubator/stanbol/trunk/rules/web/src/main/resources/org/apache/stanbol/rules/web/templates/org/apache/stanbol/rules/web/resources/RulesRootResource/index.ftl
(original)
+++
incubator/stanbol/trunk/rules/web/src/main/resources/org/apache/stanbol/rules/web/templates/org/apache/stanbol/rules/web/resources/RulesRootResource/index.ftl
Mon May 16 13:43:30 2011
@@ -1,482 +1,39 @@
<#import "/imports/common.ftl" as common>
+<#import "/imports/ruleSyntax.ftl" as ruleSyntax>
+<#import "/imports/tutorial0.ftl" as tutorial0>
+<#import "/imports/tutorial1.ftl" as tutorial1>
<#escape x as x?html>
<@common.page title="Apache Stanbol Rules" hasrestapi=false>
<div id="syntax-title" class="title-point">Rules syntax in BNF
-<input id="show-sytanx-button" value="show" type="button"
onClick="javascript:var interaction = new Interaction(); interaction.show();">
-<input id="hide-sytanx-button" value="hide" type="button"
onClick="javascript:var interaction = new Interaction(); interaction.hide();">
+<input id="show-syntax-button" class="show-button" value="show" type="button"
onClick="javascript:var interaction = new Interaction();
interaction.show('syntax');">
+<input id="hide-syntax-button" class="hide-button" value="hide" type="button"
onClick="javascript:var interaction = new Interaction();
interaction.hide('syntax');">
<div id="syntax-body">
-<H3>TOKENS</H2>
-<TABLE>
- <!-- Token -->
- <TR>
- <TD>
- <PRE>
-<DEFAULT> SKIP : {
-" "
-}
-
- </PRE>
- </TD>
- </TR>
- <!-- Token -->
- <TR>
- <TD>
- <PRE>
-<DEFAULT> SKIP : {
-"\r"
-| "\t"
-| "\n"
-}
-
- </PRE>
- </TD>
- </TR>
- <!-- Token -->
- <TR>
- <TD>
- <PRE>
-<DEFAULT> TOKEN : {
-<LARROW: "->">
-| <COLON: ":">
-| <EQUAL: "=">
-| <AND: ".">
-| <COMMA: ",">
-| <REFLEXIVE: "+">
-| <SAME: "same">
-| <DIFFERENT: "different">
-| <LESSTHAN: "lt">
-| <GREATERTHAN: "gt">
-| <IS: "is">
-| <NEW_NODE: "newNode">
-| <LENGTH: "length">
-| <SUBSTRING: "substring">
-| <UPPERCASE: "upperCase">
-| <LOWERCASE: "lowerCase">
-| <STARTS_WITH: "startsWith">
-| <ENDS_WITH: "endsWith">
-| <LET: "let">
-| <CONCAT: "concat">
-| <HAS: "has">
-| <VALUES: "values">
-| <NOTEX: "notex">
-| <PLUS: "sum">
-| <MINUS: "sub">
-| <NOT: "not">
-| <NAMESPACE: "namespace">
-| <LOCALNAME: "localname">
-| <STR: "str">
-| <APOX: "^">
-| <UNION: "union">
-| <CREATE_LABEL: "createLabel">
-| <SPARQL_C: "sparql-c">
-| <SPARQL_D: "sparql-d">
-| <SPARQL_DD: "sparql-dd">
-| <PROP: "prop">
-| <IS_BLANK: "isBlank">
-| <FORWARD_CHAIN: "!">
-}
-
- </PRE>
- </TD>
- </TR>
- <!-- Token -->
- <TR>
- <TD>
- <PRE>
-<DEFAULT> TOKEN : {
-<LPAR: "(">
-| <RPAR: ")">
-| <DQUOT: "\"">
-| <LQUAD: "[">
-| <RQUAD: "]">
-}
-
- </PRE>
- </TD>
- </TR>
- <!-- Token -->
- <TR>
- <TD>
- <PRE>
-<DEFAULT> TOKEN : {
-<NUM: (["0"-"9"])+>
-| <VAR: (["0"-"9","a"-"z","A"-"Z","-","_","."])+>
-| <VARIABLE: "?" (["0"-"9","a"-"z","A"-"Z","-","_"])+>
-| <URI: "<" (["0"-"9","a"-"z","A"-"Z","-","_",".","#",":","/","(",")"])+
">">
-| <STRING: "\""
(["0"-"9","a"-"z","A"-"Z","-","_",".",":","/","#","\\","?"," ","!","$","%"])+
"\"">
-| <SPARQL_STRING: "%"
(["0"-"9","a"-"z","A"-"Z","-","_",".",":","/","#","\\","?","
","!","$","%","{","}","(",")","\"","<",">","=","+","\n","\t","&","|",","])+
"%">
-| <BNODE: "_:" (["0"-"9","a"-"z","A"-"Z","-","_","."])+>
-}
-
- </PRE>
- </TD>
- </TR>
-</TABLE>
-<H3>NON-TERMINALS</H2>
-<TABLE>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod1">start</A></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod2">expression</A> <A
HREF="#prod3">expressionCont</A></TD>
-</TR>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod3">expressionCont</A></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>( <AND> <A HREF="#prod2">expression</A>
)</TD>
-</TR>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>|</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE></TD>
-</TR>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod2">expression</A></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod4">prefix</A> <A
HREF="#prod3">expressionCont</A></TD>
-</TR>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod4">prefix</A></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod5">getVariable</A> ( <A
HREF="#prod6">equality</A> | <A HREF="#prod7">rule</A> )</TD>
-</TR>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>|</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><FORWARD_CHAIN> <A
HREF="#prod5">getVariable</A> <A HREF="#prod7">rule</A></TD>
-</TR>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>|</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><REFLEXIVE> <A
HREF="#prod5">getVariable</A> <A HREF="#prod7">rule</A></TD>
-</TR>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod6">equality</A></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><EQUAL> ( <A HREF="#prod8">getURI</A>
)</TD>
-</TR>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod7">rule</A></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><LQUAD> <A
HREF="#prod9">ruleDefinition</A> <RQUAD></TD>
-</TR>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod9">ruleDefinition</A></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod10">atomList</A> <LARROW>
<A HREF="#prod10">atomList</A></TD>
-</TR>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>|</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><SPARQL_C> <LPAR>
<SPARQL_STRING> <RPAR></TD>
-</TR>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>|</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><SPARQL_D> <LPAR>
<SPARQL_STRING> <RPAR></TD>
-</TR>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>|</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><SPARQL_DD> <LPAR>
<SPARQL_STRING> <RPAR></TD>
-</TR>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod10">atomList</A></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod11">atom</A> <A
HREF="#prod12">atomListRest</A></TD>
-</TR>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>|</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE></TD>
-</TR>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod12">atomListRest</A></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><AND> <A HREF="#prod10">atomList</A></TD>
-</TR>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>|</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE></TD>
-</TR>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod11">atom</A></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod13">classAtom</A></TD>
-</TR>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>|</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><A
HREF="#prod14">individualPropertyAtom</A></TD>
-</TR>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>|</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><A
HREF="#prod15">datavaluedPropertyAtom</A></TD>
-</TR>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>|</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod16">letAtom</A></TD>
-</TR>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>|</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod17">newNodeAtom</A></TD>
-</TR>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>|</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod18">comparisonAtom</A></TD>
-</TR>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>|</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod19">unionAtom</A></TD>
-</TR>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod19">unionAtom</A></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><UNION> <LPAR> <A
HREF="#prod10">atomList</A> <COMMA> <A HREF="#prod10">atomList</A>
<RPAR></TD>
-</TR>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod20">createLabelAtom</A></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><CREATE_LABEL> <LPAR> <A
HREF="#prod21">stringFunctionAtom</A> <RPAR></TD>
-</TR>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod22">propStringAtom</A></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><PROP> <LPAR> <A
HREF="#prod21">stringFunctionAtom</A> <COMMA> <A
HREF="#prod21">stringFunctionAtom</A> <RPAR></TD>
-</TR>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod23">endsWithAtom</A></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><ENDS_WITH> <LPAR> <A
HREF="#prod21">stringFunctionAtom</A> <COMMA> <A
HREF="#prod21">stringFunctionAtom</A> <RPAR></TD>
-</TR>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod24">startsWithAtom</A></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><STARTS_WITH> <LPAR> <A
HREF="#prod21">stringFunctionAtom</A> <COMMA> <A
HREF="#prod21">stringFunctionAtom</A> <RPAR></TD>
-</TR>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod21">stringFunctionAtom</A></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod25">concatAtom</A> | <A
HREF="#prod26">upperCaseAtom</A> | <A HREF="#prod27">lowerCaseAtom</A> | <A
HREF="#prod28">substringAtom</A> | <A HREF="#prod29">namespaceAtom</A> | <A
HREF="#prod30">localnameAtom</A> | <A HREF="#prod31">strAtom</A> | <A
HREF="#prod32">stringAtom</A> | <A HREF="#prod22">propStringAtom</A> | <A
HREF="#prod20">createLabelAtom</A> )</TD>
-</TR>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod31">strAtom</A></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><STR> <LPAR> <A
HREF="#prod33">iObject</A> <RPAR></TD>
-</TR>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod29">namespaceAtom</A></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><NAMESPACE> <LPAR> <A
HREF="#prod33">iObject</A> <RPAR></TD>
-</TR>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod30">localnameAtom</A></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><LOCALNAME> <LPAR> <A
HREF="#prod33">iObject</A> <RPAR></TD>
-</TR>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod32">stringAtom</A></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod34">uObject</A></TD>
-</TR>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod25">concatAtom</A></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><CONCAT> <LPAR> <A
HREF="#prod21">stringFunctionAtom</A> <COMMA> <A
HREF="#prod21">stringFunctionAtom</A> <RPAR></TD>
-</TR>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod26">upperCaseAtom</A></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><UPPERCASE> <LPAR> <A
HREF="#prod21">stringFunctionAtom</A> <RPAR></TD>
-</TR>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod27">lowerCaseAtom</A></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><LOWERCASE> <LPAR> <A
HREF="#prod21">stringFunctionAtom</A> <RPAR></TD>
-</TR>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod28">substringAtom</A></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><SUBSTRING> <LPAR> <A
HREF="#prod21">stringFunctionAtom</A> <COMMA> <A
HREF="#prod35">numericFunctionAtom</A> <COMMA> <A
HREF="#prod35">numericFunctionAtom</A> <RPAR></TD>
-</TR>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod35">numericFunctionAtom</A></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod36">sumAtom</A> | <A
HREF="#prod37">subtractionAtom</A> | <A HREF="#prod38">lengthAtom</A> | <A
HREF="#prod39">numberAtom</A> )</TD>
-</TR>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod38">lengthAtom</A></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><LENGTH> <LPAR> <A
HREF="#prod21">stringFunctionAtom</A> <RPAR></TD>
-</TR>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod36">sumAtom</A></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><PLUS> <LPAR> <A
HREF="#prod35">numericFunctionAtom</A> <COMMA> <A
HREF="#prod35">numericFunctionAtom</A> <RPAR></TD>
-</TR>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod37">subtractionAtom</A></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><MINUS> <LPAR> <A
HREF="#prod35">numericFunctionAtom</A> <COMMA> <A
HREF="#prod35">numericFunctionAtom</A> <RPAR></TD>
-</TR>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod39">numberAtom</A></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>( <NUM> | <VARIABLE> )</TD>
-</TR>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod13">classAtom</A></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><IS> <LPAR> <A
HREF="#prod33">iObject</A> <COMMA> <A HREF="#prod33">iObject</A>
<RPAR></TD>
-</TR>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod17">newNodeAtom</A></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><NEW_NODE> <LPAR> <A
HREF="#prod33">iObject</A> <COMMA> <A HREF="#prod40">dObject</A>
<RPAR></TD>
-</TR>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod16">letAtom</A></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><LET> <LPAR> <A
HREF="#prod33">iObject</A> <COMMA> <A
HREF="#prod21">stringFunctionAtom</A> <RPAR></TD>
-</TR>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A
NAME="prod14">individualPropertyAtom</A></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><HAS> <LPAR> <A
HREF="#prod33">iObject</A> <COMMA> <A HREF="#prod33">iObject</A>
<COMMA> <A HREF="#prod33">iObject</A> <RPAR></TD>
-</TR>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A
NAME="prod15">datavaluedPropertyAtom</A></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><VALUES> <LPAR> <A
HREF="#prod33">iObject</A> <COMMA> <A HREF="#prod33">iObject</A>
<COMMA> <A HREF="#prod40">dObject</A> <RPAR></TD>
-</TR>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod41">sameAsAtom</A></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><SAME> <LPAR> <A
HREF="#prod21">stringFunctionAtom</A> <COMMA> <A
HREF="#prod21">stringFunctionAtom</A> <RPAR></TD>
-</TR>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod42">lessThanAtom</A></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><LESSTHAN> <LPAR> <A
HREF="#prod33">iObject</A> <COMMA> <A HREF="#prod33">iObject</A>
<RPAR></TD>
-</TR>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod43">greaterThanAtom</A></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><GREATERTHAN> <LPAR> <A
HREF="#prod33">iObject</A> <COMMA> <A HREF="#prod33">iObject</A>
<RPAR></TD>
-</TR>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod44">differentFromAtom</A></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><DIFFERENT> <LPAR> <A
HREF="#prod21">stringFunctionAtom</A> <COMMA> <A
HREF="#prod21">stringFunctionAtom</A> <RPAR></TD>
-</TR>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod45">reference</A></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod8">getURI</A></TD>
-</TR>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>|</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod5">getVariable</A> <COLON>
<A HREF="#prod5">getVariable</A></TD>
-</TR>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod46">varReference</A></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod8">getURI</A></TD>
-</TR>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>|</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod5">getVariable</A> <COLON>
<A HREF="#prod5">getVariable</A></TD>
-</TR>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod8">getURI</A></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><URI></TD>
-</TR>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod5">getVariable</A></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><VAR></TD>
-</TR>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod47">getString</A></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><STRING></TD>
-</TR>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod48">getInt</A></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><NUM></TD>
-</TR>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod34">uObject</A></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod49">variable</A> | <A
HREF="#prod45">reference</A> | <A HREF="#prod47">getString</A> | <A
HREF="#prod48">getInt</A> )</TD>
-</TR>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod33">iObject</A></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod49">variable</A></TD>
-</TR>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>|</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod45">reference</A></TD>
-</TR>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod40">dObject</A></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod50">literal</A> | <A
HREF="#prod49">variable</A> )</TD>
-</TR>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod50">literal</A></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod47">getString</A> <A
HREF="#prod51">typedLiteral</A> | <A HREF="#prod48">getInt</A> <A
HREF="#prod51">typedLiteral</A> )</TD>
-</TR>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod51">typedLiteral</A></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>( <APOX> <APOX> <A
HREF="#prod45">reference</A> | )</TD>
-</TR>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod49">variable</A></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><NOTEX> <LPAR> <VARIABLE>
<RPAR></TD>
-</TR>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>|</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><VARIABLE></TD>
-</TR>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>|</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><BNODE></TD>
-</TR>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod52">notAtom</A></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><NOT> <LPAR> <A
HREF="#prod18">comparisonAtom</A> <RPAR></TD>
-</TR>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod53">isBlankAtom</A></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><IS_BLANK> <LPAR> <A
HREF="#prod33">iObject</A> <RPAR></TD>
-</TR>
-<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod18">comparisonAtom</A></TD>
-<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod41">sameAsAtom</A> | <A
HREF="#prod42">lessThanAtom</A> | <A HREF="#prod43">greaterThanAtom</A> | <A
HREF="#prod44">differentFromAtom</A> | <A HREF="#prod52">notAtom</A> | <A
HREF="#prod24">startsWithAtom</A> | <A HREF="#prod23">endsWithAtom</A> | <A
HREF="#prod53">isBlankAtom</A> )</TD>
-</TR>
-</TABLE>
+
+<@ruleSyntax.view />
+
</div>
</div>
+
+
+<div id="tutorial-title" class="title-point">Rules tutorial
+<input id="show-tutorial-button" class="show-button" value="show"
type="button" onClick="javascript:var interaction = new Interaction();
interaction.show('tutorial');">
+<input id="hide-tutorial-button" class="hide-button" value="hide"
type="button" onClick="javascript:var interaction = new Interaction();
interaction.hide('tutorial');">
+<div id="tutorial-body">
+
+<p id="tutorial0" class="active">
+<@tutorial0.view />
+</p>
+
+<p id="tutorial1" class="inactive">
+<@tutorial1.view />
+</p>
+
+
+</div>
+<div class="arrows">
+<a id="previous" href="javascript:var interaction = new Interaction();
interaction.previousTutorial()">Previous</a> | <a id="next"
href="javascript:var interaction = new Interaction();
interaction.nextTutorial()">Next</a>
+</div>
+</div>
</@common.page>
</#escape>
\ No newline at end of file