Author: anuzzolese
Date: Tue May 17 12:55:16 2011
New Revision: 1104210

URL: http://svn.apache.org/viewvc?rev=1104210&view=rev
Log:
STANBOL-195 Added a web tutorial for Stanbol Rules.

Added:
    
incubator/stanbol/trunk/rules/web/src/main/resources/org/apache/stanbol/rules/web/templates/imports/tutorial2.ftl
    
incubator/stanbol/trunk/rules/web/src/main/resources/org/apache/stanbol/rules/web/templates/imports/tutorial3.ftl
    
incubator/stanbol/trunk/rules/web/src/main/resources/org/apache/stanbol/rules/web/templates/imports/tutorial4.ftl
    
incubator/stanbol/trunk/rules/web/src/main/resources/org/apache/stanbol/rules/web/templates/imports/tutorial5.ftl
Modified:
    
incubator/stanbol/trunk/rules/web/src/main/java/org/apache/stanbol/rules/web/resources/RefactorResource.java
    
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/imports/tutorial1.ftl
    
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/src/main/java/org/apache/stanbol/rules/web/resources/RefactorResource.java
URL: 
http://svn.apache.org/viewvc/incubator/stanbol/trunk/rules/web/src/main/java/org/apache/stanbol/rules/web/resources/RefactorResource.java?rev=1104210&r1=1104209&r2=1104210&view=diff
==============================================================================
--- 
incubator/stanbol/trunk/rules/web/src/main/java/org/apache/stanbol/rules/web/resources/RefactorResource.java
 (original)
+++ 
incubator/stanbol/trunk/rules/web/src/main/java/org/apache/stanbol/rules/web/resources/RefactorResource.java
 Tue May 17 12:55:16 2011
@@ -19,6 +19,7 @@ import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
 
 import org.apache.clerezza.rdf.core.access.TcManager;
+import org.apache.stanbol.commons.web.base.ContextHelper;
 import org.apache.stanbol.commons.web.base.format.KRFormat;
 import org.apache.stanbol.commons.web.base.resource.BaseStanbolResource;
 import org.apache.stanbol.ontologymanager.ontonet.api.ONManager;
@@ -53,15 +54,14 @@ public class RefactorResource extends Ba
     private Logger log = LoggerFactory.getLogger(getClass());
 
     protected ONManager onManager;
-    protected Refactorer semionRefactorer;
-    // protected SemionManager semionManager;
+    protected Refactorer refactorer;
     protected TcManager tcManager;
 
     public RefactorResource(@Context ServletContext servletContext) {
-        semionRefactorer = (Refactorer) 
(servletContext.getAttribute(Refactorer.class.getName()));
-        onManager = (ONManager) 
(servletContext.getAttribute(ONManager.class.getName()));
-        tcManager = (TcManager) 
(servletContext.getAttribute(TcManager.class.getName()));
-        if (semionRefactorer == null) {
+       refactorer = (Refactorer) 
ContextHelper.getServiceFromContext(Refactorer.class, servletContext);
+       onManager = (ONManager) 
ContextHelper.getServiceFromContext(ONManager.class, servletContext);
+        tcManager = (TcManager) 
ContextHelper.getServiceFromContext(TcManager.class, servletContext);
+        if (refactorer == null) {
             throw new IllegalStateException("SemionRefactorer missing in 
ServletContext");
         }
 
@@ -100,7 +100,7 @@ public class RefactorResource extends Ba
             inputOntology = manager.loadOntologyFromOntologyDocument(input);
             OWLOntology outputOntology;
             try {
-                outputOntology = 
semionRefactorer.ontologyRefactoring(inputOntology, actualRecipe);
+                outputOntology = refactorer.ontologyRefactoring(inputOntology, 
actualRecipe);
             } catch (RefactoringException e) {
                 // refactoring exceptions are re-thrown
                 throw new WebApplicationException(e, INTERNAL_SERVER_ERROR);
@@ -137,7 +137,7 @@ public class RefactorResource extends Ba
 
             OWLOntology outputOntology;
             try {
-                outputOntology = 
semionRefactorer.ontologyRefactoring(inputOntology, recipeIRI);
+                outputOntology = refactorer.ontologyRefactoring(inputOntology, 
recipeIRI);
             } catch (RefactoringException e) {
                 // refactoring exceptions are re-thrown
                 throw new WebApplicationException(e, INTERNAL_SERVER_ERROR);
@@ -167,7 +167,7 @@ public class RefactorResource extends Ba
         // Refactorer semionRefactorer = 
semionManager.getRegisteredRefactorer();
 
         try {
-            semionRefactorer.ontologyRefactoring(outputGraphIRI, 
inputGraphIRI, recipeIRI);
+            refactorer.ontologyRefactoring(outputGraphIRI, inputGraphIRI, 
recipeIRI);
             return Response.ok().build();
         } catch (RefactoringException e) {
             // refactoring exceptions are re-thrown

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=1104210&r1=1104209&r2=1104210&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
 Tue May 17 12:55:16 2011
@@ -1,5 +1,5 @@
 var tutorialPage = 0;
-var totalPages = 2;
+var totalPages = 5;
 
 function Interaction() {
        
@@ -48,11 +48,10 @@ Interaction.prototype.previousTutorial =
 Interaction.prototype.nextTutorial = function(){
 
        //set the current page as inactive
-       $("#tutorial0").removeClass("active");
-       $("#tutorial0").addClass("inactive");
+       $("#tutorial" + tutorialPage).removeClass("active");
+       $("#tutorial" + tutorialPage).addClass("inactive");
 
 
-       alert("tutorial" + tutorialPage);
 
        //set the next page as active
        tutorialPage = tutorialPage + 1;
@@ -67,4 +66,31 @@ Interaction.prototype.nextTutorial = fun
        if(tutorialPage == (totalPages-1)){
                $("#next").hide();
        }
+}
+
+Interaction.prototype.getTutorial = function(page){
+
+       
+       //set all the pages as inactive
+       
+       for(var i=0; i<totalPages; i++){
+               $("#tutorial" + i).removeClass("active");
+               $("#tutorial" + i).addClass("inactive");
+       }
+       
+       //set the wanted page as active
+       
+       $("#tutorial" + page).removeClass("inactive");
+       $("#tutorial" + page).addClass("active");
+       
+       if(page > 0){
+               $("#previous").show();
+       }
+       
+       if(page == (totalPages-1)){
+               $("#next").hide();
+       }
+       
+       tutorialPage = page;
+
 }
\ 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=1104210&r1=1104209&r2=1104210&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
 Tue May 17 12:55:16 2011
@@ -1,4 +1,4 @@
-.title-point div{
+div.indent {
        margin-left: 20px;
        display: none; 
 }
@@ -11,15 +11,19 @@ span.red{
        color: red;
 }
 
-p.active{
+div.active{
        display: block;
 }
 
-p.inactive{
+div.inactive{
        display: none;
 }
 
 div.arrows{
        text-align: center;
        display: block;
+}
+
+a#previous{
+       display: none;
 }
\ No newline at end of file

Modified: 
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=1104210&r1=1104209&r2=1104210&view=diff
==============================================================================
--- 
incubator/stanbol/trunk/rules/web/src/main/resources/org/apache/stanbol/rules/web/templates/imports/tutorial1.ftl
 (original)
+++ 
incubator/stanbol/trunk/rules/web/src/main/resources/org/apache/stanbol/rules/web/templates/imports/tutorial1.ftl
 Tue May 17 12:55:16 2011
@@ -1,6 +1,22 @@
 <#macro view>
 
-Prova
+in Stanbol a rule is defined using the following syntax
 
+<pre>     <i>ruleName</i>[<span class="red">body</span> -> <span 
class="red">head</span>]</pre>
+
+where
+<ul>
+<li>the ruleName identifies the rule</li>
+<li>the body is a set of <b>atoms</b> that must be satisfied by evaluating the 
rule</li>
+<li>the head or consequent is a set of <b>atoms</b> that must be true if the 
condition is evaluated to be true</li>
+<li>both body and head consist of a list of conjunctive atoms 
+<ul>
+<li>head = atom1 . atom2 . ... . atomM</li>
+<li>body = atom1 . atom2 . ... . atomN</li>
+</ul>
+</li>
+<li>the conjunction &and; in Stanbol Rules is expressed with the symbol " . 
"</li>
+
+</ul>
 
 </#macro>
\ No newline at end of file

Added: 
incubator/stanbol/trunk/rules/web/src/main/resources/org/apache/stanbol/rules/web/templates/imports/tutorial2.ftl
URL: 
http://svn.apache.org/viewvc/incubator/stanbol/trunk/rules/web/src/main/resources/org/apache/stanbol/rules/web/templates/imports/tutorial2.ftl?rev=1104210&view=auto
==============================================================================
--- 
incubator/stanbol/trunk/rules/web/src/main/resources/org/apache/stanbol/rules/web/templates/imports/tutorial2.ftl
 (added)
+++ 
incubator/stanbol/trunk/rules/web/src/main/resources/org/apache/stanbol/rules/web/templates/imports/tutorial2.ftl
 Tue May 17 12:55:16 2011
@@ -0,0 +1,26 @@
+<#macro view>
+
+An atom is the smallest unit of the interpretation of a rule, e.g. the 
following predicate calculus formula
+<pre>     Person(x) &rArr; hasFather(x, y)</pre>
+has two atoms
+<ul>
+<li>Person(&middot;)</li>
+<li>hasFather(&middot;, &middot;)</li>
+</ul>
+
+In Stanbol basic atoms are
+<ul>
+<li><a href="javascript:var interaction = new Interaction(); 
interaction.getTutorial(3);">Class assertion atom</a></li>
+<li><a href="javascript:var interaction = new Interaction(); 
interaction.getTutorial(4);">Individual assertion atom</a></li>
+<li><a href="javascript:var interaction = new Interaction(); 
interaction.getTutorial(5);">Data value assertion atom</a></li>
+<li>Range assertion atom </li>
+</ul>
+
+The atoms may contain
+
+<ul>
+<li>constants: they consist of URI (we are in Web context) or Literal 
(values), e.g. e.g. &lt;http//dbpedia.org/resource/Bob_Marley&gt; is a 
constant, but "Bob Marley"^^xsd:string is a constant too</li>
+<li>variables: any identifier preceded by ?, e.g. ?x is a variable, but also 
?y is a variable</li>
+</ul>
+
+</#macro>
\ No newline at end of file

Added: 
incubator/stanbol/trunk/rules/web/src/main/resources/org/apache/stanbol/rules/web/templates/imports/tutorial3.ftl
URL: 
http://svn.apache.org/viewvc/incubator/stanbol/trunk/rules/web/src/main/resources/org/apache/stanbol/rules/web/templates/imports/tutorial3.ftl?rev=1104210&view=auto
==============================================================================
--- 
incubator/stanbol/trunk/rules/web/src/main/resources/org/apache/stanbol/rules/web/templates/imports/tutorial3.ftl
 (added)
+++ 
incubator/stanbol/trunk/rules/web/src/main/resources/org/apache/stanbol/rules/web/templates/imports/tutorial3.ftl
 Tue May 17 12:55:16 2011
@@ -0,0 +1,20 @@
+<#macro view>
+
+A class assertion atom is identified by the operator
+
+<pre>     <b>is</b>(<i>classPredicate</i>, <i>argument</i>)</pre>
+
+where
+<ul>
+<li><i>classPredicate</i> is a URI that identified a class</li>
+<li><i>argument</i> is the resource that has to be proved as typed with the 
classPredicate. It can be both a constant (a URI) or a variable</li>
+</ul>
+
+For example
+
+<pre>     <span class="red">is(http://xmlns.com/foaf/0.1/Person, ?x)</span> is 
evaluated to be
+                    <b>true</b> if the concrete value associated to ?x is 
typed as http://xmlns.com/foaf/0.1/Person    
+                    <b>false</b> otherwise</pre>
+
+
+</#macro>
\ No newline at end of file

Added: 
incubator/stanbol/trunk/rules/web/src/main/resources/org/apache/stanbol/rules/web/templates/imports/tutorial4.ftl
URL: 
http://svn.apache.org/viewvc/incubator/stanbol/trunk/rules/web/src/main/resources/org/apache/stanbol/rules/web/templates/imports/tutorial4.ftl?rev=1104210&view=auto
==============================================================================
--- 
incubator/stanbol/trunk/rules/web/src/main/resources/org/apache/stanbol/rules/web/templates/imports/tutorial4.ftl
 (added)
+++ 
incubator/stanbol/trunk/rules/web/src/main/resources/org/apache/stanbol/rules/web/templates/imports/tutorial4.ftl
 Tue May 17 12:55:16 2011
@@ -0,0 +1,15 @@
+<#macro view>
+
+An individual assertion atom is useful to evaluate or assert facts between 
individuals and is identified by the operator
+
+<pre>     <b>has</b>(<i>propertyPredicate</i>, <i>individualArgument1</i>, 
<i>individualArgument2</i>)</pre>
+
+where
+
+<ul>
+<li><i>propertyPredicate</i> is the object property that has to be evaluated. 
It can be a constant (URI) or a variable (?x)</li>
+<li><i>individualArgument1</i> and <i>individualArgument2</i> are the two 
arguments of the property. They can be either constants (URI) or variables (?x)
+</li>
+</ul>
+
+</#macro>
\ No newline at end of file

Added: 
incubator/stanbol/trunk/rules/web/src/main/resources/org/apache/stanbol/rules/web/templates/imports/tutorial5.ftl
URL: 
http://svn.apache.org/viewvc/incubator/stanbol/trunk/rules/web/src/main/resources/org/apache/stanbol/rules/web/templates/imports/tutorial5.ftl?rev=1104210&view=auto
==============================================================================
--- 
incubator/stanbol/trunk/rules/web/src/main/resources/org/apache/stanbol/rules/web/templates/imports/tutorial5.ftl
 (added)
+++ 
incubator/stanbol/trunk/rules/web/src/main/resources/org/apache/stanbol/rules/web/templates/imports/tutorial5.ftl
 Tue May 17 12:55:16 2011
@@ -0,0 +1,16 @@
+<#macro view>
+
+An datavalued assertion atom is useful to evaluate or assert facts between 
individuals and values and is identified by the operator
+
+<pre>     <b>values</b>(<i>propertyPredicate</i>, <i>individualArgument</i>, 
<i>valueArgument</i>)</pre>
+
+where
+
+<ul>
+<li><i>propertyPredicate</i> is the object property that has to be evaluated. 
It can be a constant (URI) or a variable (?x)</li>
+<li><i>individualArgument</i>is the subject of the statement. It can be either 
constants (i.e. URI) or variables (e.g. ?x)</li>
+<li><i>valueArgument</i>is the object of the statement. It can be either 
constants (i.e. a literal) or variables (e.g. ?x)
+</li>
+</ul>
+
+</#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=1104210&r1=1104209&r2=1104210&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
 Tue May 17 12:55:16 2011
@@ -2,13 +2,17 @@
 <#import "/imports/ruleSyntax.ftl" as ruleSyntax>
 <#import "/imports/tutorial0.ftl" as tutorial0>
 <#import "/imports/tutorial1.ftl" as tutorial1>
+<#import "/imports/tutorial2.ftl" as tutorial2>
+<#import "/imports/tutorial3.ftl" as tutorial3>
+<#import "/imports/tutorial4.ftl" as tutorial4>
+<#import "/imports/tutorial5.ftl" as tutorial5>
 <#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-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">
+<div id="syntax-body"  class="indent">
 
 <@ruleSyntax.view /> 
 
@@ -19,21 +23,40 @@
 <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">
+<div id="tutorial-body" class="indent">
 
-<p id="tutorial0" class="active"> 
+<div id="tutorial0" class="active"> 
 <@tutorial0.view />
-</p>
+</div>
 
-<p id="tutorial1" class="inactive"> 
+<div id="tutorial1" class="inactive"> 
 <@tutorial1.view />
-</p> 
 
 
 </div>
+
+<div id="tutorial2" class="inactive"> 
+<@tutorial2.view />
+</div>
+
+<div id="tutorial3" class="inactive"> 
+<@tutorial3.view />
+</div>
+
+<div id="tutorial4" class="inactive"> 
+<@tutorial4.view />
+</div>
+
+<div id="tutorial5" class="inactive"> 
+<@tutorial5.view />
+</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>
+
 </div>
 </@common.page>
 </#escape>
\ No newline at end of file


Reply via email to