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 ∧ 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) ⇒ hasFather(x, y)</pre>
+has two atoms
+<ul>
+<li>Person(·)</li>
+<li>hasFather(·, ·)</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. <http//dbpedia.org/resource/Bob_Marley> 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