You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stanbol.apache.org by an...@apache.org on 2013/04/05 18:09:10 UTC
svn commit: r1465023 [1/4] - in /stanbol/trunk/rules:
adapters/clerezza/src/main/java/org/apache/stanbol/rules/adapters/clerezza/
adapters/clerezza/src/test/java/org/apache/stanbol/rules/adapters/clerezza/
adapters/jena/src/main/java/org/apache/stanbol...
Author: anuzzolese
Date: Fri Apr 5 16:09:09 2013
New Revision: 1465023
URL: http://svn.apache.org/r1465023
Log:
[STANBOL-560] Improvement of Rules' code.
Added:
stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/VariableClauseEntry.java
Modified:
stanbol/trunk/rules/adapters/clerezza/src/main/java/org/apache/stanbol/rules/adapters/clerezza/ClerezzaAdapter.java
stanbol/trunk/rules/adapters/clerezza/src/test/java/org/apache/stanbol/rules/adapters/clerezza/ClerezzaAdpterTest.java
stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/JenaAdapter.java
stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/NodeFactory.java
stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/DifferentAtom.java
stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/DivisionAtom.java
stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/EndsWithAtom.java
stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/GreaterEqualThanAtom.java
stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/GreaterThanAtom.java
stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/IndividualPropertyAtom.java
stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/IsBlankAtom.java
stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/LessEqualThanAtom.java
stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/LessThanAtom.java
stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/LetAtom.java
stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/MultiplicationAtom.java
stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/NumberAtom.java
stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/NumericVariableAtom.java
stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/StrAtom.java
stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/StringVariableAtom.java
stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/SubtractionAtom.java
stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/SumAtom.java
stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/VariableAtom.java
stanbol/trunk/rules/adapters/sparql/src/main/java/org/apache/stanbol/rules/adapters/sparql/SPARQLAdapter.java
stanbol/trunk/rules/adapters/swrl/src/main/java/org/apache/stanbol/rules/adapters/swrl/SWRLAdapter.java
stanbol/trunk/rules/manager/src/main/java/org/apache/stanbol/rules/manager/ClerezzaRuleStore.java
stanbol/trunk/rules/manager/src/main/java/org/apache/stanbol/rules/manager/parse/ParseException.java
stanbol/trunk/rules/manager/src/main/java/org/apache/stanbol/rules/manager/parse/RuleGrammar.jj
stanbol/trunk/rules/manager/src/main/java/org/apache/stanbol/rules/manager/parse/RuleParserImpl.java
stanbol/trunk/rules/manager/src/main/java/org/apache/stanbol/rules/manager/parse/RuleParserImplConstants.java
stanbol/trunk/rules/manager/src/main/java/org/apache/stanbol/rules/manager/parse/RuleParserImplTokenManager.java
stanbol/trunk/rules/manager/src/main/java/org/apache/stanbol/rules/manager/parse/SimpleCharStream.java
stanbol/trunk/rules/manager/src/main/java/org/apache/stanbol/rules/manager/parse/Token.java
stanbol/trunk/rules/manager/src/main/java/org/apache/stanbol/rules/manager/parse/TokenMgrError.java
stanbol/trunk/rules/refactor/src/main/java/org/apache/stanbol/rules/refactor/impl/RefactorerImpl.java
Modified: stanbol/trunk/rules/adapters/clerezza/src/main/java/org/apache/stanbol/rules/adapters/clerezza/ClerezzaAdapter.java
URL: http://svn.apache.org/viewvc/stanbol/trunk/rules/adapters/clerezza/src/main/java/org/apache/stanbol/rules/adapters/clerezza/ClerezzaAdapter.java?rev=1465023&r1=1465022&r2=1465023&view=diff
==============================================================================
--- stanbol/trunk/rules/adapters/clerezza/src/main/java/org/apache/stanbol/rules/adapters/clerezza/ClerezzaAdapter.java (original)
+++ stanbol/trunk/rules/adapters/clerezza/src/main/java/org/apache/stanbol/rules/adapters/clerezza/ClerezzaAdapter.java Fri Apr 5 16:09:09 2013
@@ -17,6 +17,9 @@
package org.apache.stanbol.rules.adapters.clerezza;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Dictionary;
@@ -25,6 +28,7 @@ import java.util.Iterator;
import java.util.List;
import java.util.Set;
+import org.apache.clerezza.rdf.core.UriRef;
import org.apache.clerezza.rdf.core.sparql.query.ConstructQuery;
import org.apache.clerezza.rdf.core.sparql.query.Expression;
import org.apache.clerezza.rdf.core.sparql.query.TriplePattern;
@@ -48,10 +52,22 @@ import org.apache.stanbol.rules.base.api
import org.apache.stanbol.rules.base.api.UnavailableRuleObjectException;
import org.apache.stanbol.rules.base.api.UnsupportedTypeForExportException;
import org.apache.stanbol.rules.base.api.util.RuleList;
+import org.apache.stanbol.rules.manager.KB;
+import org.apache.stanbol.rules.manager.RecipeImpl;
+import org.apache.stanbol.rules.manager.parse.RuleParserImpl;
import org.osgi.service.component.ComponentContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import com.hp.hpl.jena.query.Query;
+import com.hp.hpl.jena.query.QueryExecution;
+import com.hp.hpl.jena.query.QueryExecutionFactory;
+import com.hp.hpl.jena.query.QueryFactory;
+import com.hp.hpl.jena.query.Syntax;
+import com.hp.hpl.jena.rdf.model.Model;
+import com.hp.hpl.jena.rdf.model.ModelFactory;
+import com.hp.hpl.jena.util.FileManager;
+
/**
*
* The Rule Adapter for Clerezza.<br/>
@@ -74,12 +90,14 @@ public class ClerezzaAdapter extends Abs
@Reference
RuleAdaptersFactory ruleAdaptersFactory;
-
+
+ ComponentContext componentContext;
+
/**
* For OSGi environments.
*/
public ClerezzaAdapter() {
-
+
}
/**
@@ -102,6 +120,8 @@ public class ClerezzaAdapter extends Abs
} catch (UnavailableRuleObjectException e) {
log.error("Failed to add the adapter to the registry.", e);
}
+
+
}
@SuppressWarnings("unchecked")
@@ -190,16 +210,30 @@ public class ClerezzaAdapter extends Abs
if (type == ConstructQuery.class) {
+ //ClassLoader loader = Thread.currentThread().getContextClassLoader();
+
+ //log.info("loader : " + loader);
+
+
+
+
String className = ruleAtom.getClass().getSimpleName();
String canonicalName = ARTIFACT + "." + className;
try {
-
- // ClassLoader loader = Thread.currentThread().getContextClassLoader();
- // Class<AdaptableAtom> clerezzaAtomClass = (Class<AdaptableAtom>)
- // loader.loadClass(canonicalName);
- Class<AdaptableAtom> clerezzaAtomClass = (Class<AdaptableAtom>) Class.forName(canonicalName);
+ Class<AdaptableAtom> clerezzaAtomClass = null;
+ if(componentContext != null){
+ // in OSGi environment
+ clerezzaAtomClass = componentContext.getBundleContext().getBundle().loadClass(canonicalName);
+ }
+ else{
+ // in non-OSGi environment
+ clerezzaAtomClass = (Class<AdaptableAtom>) Thread.currentThread().getContextClassLoader().loadClass(canonicalName);
+ }
+ /* Class<AdaptableAtom> clerezzaAtomClass = (Class<AdaptableAtom>) loader
+ .loadClass(canonicalName);
+ */
try {
AdaptableAtom clerezzaAtom = clerezzaAtomClass.newInstance();
@@ -243,6 +277,9 @@ public class ClerezzaAdapter extends Abs
if (context == null) {
throw new IllegalStateException("No valid" + ComponentContext.class + " parsed in activate!");
}
+
+ componentContext = context;
+
activate((Dictionary<String,Object>) context.getProperties());
}
@@ -270,10 +307,77 @@ public class ClerezzaAdapter extends Abs
@Override
public <T> boolean canAdaptTo(Adaptable adaptable, Class<T> type) {
- if (type == ConstructQuery.class) {
+ if(type == ConstructQuery.class){
return true;
- } else {
+ }
+ else{
return false;
}
}
+
+
+ public static void main(String[] args){
+ RuleAdapter ruleAdapter = new ClerezzaAdapter();
+ try {
+ KB kb = RuleParserImpl.parse("http://sssw.org/2012/rules/", new FileInputStream("/Users/mac/Documents/CNR/SSSW2012/construct/exercise3"));
+ System.out.println("Rules: " + kb.getRuleList().size());
+ Recipe recipe = new RecipeImpl(new UriRef("http://sssw.org/2012/rules/"), "Recipe", kb.getRuleList());
+
+ //List<ConstructQuery> jenaRules = (List<ConstructQuery>) ruleAdapter.adaptTo(recipe, ConstructQuery.class);
+
+ String rules = "[ Exercise1: (http://dbpedia.org/resource/Madrid http://dbpedia.org/ontology/locationOf ?location) (?location rdf:type http://dbpedia.org/ontology/Museum) (?location http://dbpedia.org/ontology/numberOfVisitors ?visitors) greaterThan(?visitors '2000000'^^http://www.w3.org/2001/XMLSchema#integer) -> (?location rdf:type http://www.mytravels.com/Itinerary/MadridItinerary) ]";
+
+ //List<com.hp.hpl.jena.reasoner.rulesys.Rule> jenaRules = com.hp.hpl.jena.reasoner.rulesys.Rule.parseRules(rules);
+
+
+ String spqral = "CONSTRUCT " +
+ "{ ?city a <http://www.mytravels.com/Itinerary/MovieCityItinerary> . " +
+ " ?city <http://www.w3.org/2000/01/rdf-schema#label> ?cLabel . " +
+ " ?event a <http://linkedevents.org/ontology/Event> . " +
+ " ?event <http://linkedevents.org/ontology/atPlace> ?location . " +
+ " ?location <http://www.w3.org/2000/01/rdf-schema#label> ?lLabel . " +
+ " ?location <http://www.w3.org/2002/07/owl#sameAs> ?city" +
+ "} " +
+ "WHERE " +
+ "{ " +
+ " ?city a <http://www.mytravels.com/Itinerary/MovieCityItinerary> . " +
+ " ?city <http://www.w3.org/2000/01/rdf-schema#label> ?cLabel . " +
+ " ?event a <http://linkedevents.org/ontology/Event> . " +
+ " ?event <http://linkedevents.org/ontology/atPlace> ?location . " +
+ " ?location <http://www.w3.org/2000/01/rdf-schema#label> ?lLabel . " +
+ " FILTER(?lLabel = ?cLabel) " +
+ "}";
+ Model m = ModelFactory.createDefaultModel();
+ Model model = FileManager.get().loadModel("/Users/mac/Documents/CNR/SSSW2012/datasets_new/Exercise5_tmp.rdf");
+ //for(ConstructQuery constructQuery : jenaRules){
+ //Query query = QueryFactory.create(constructQuery.toString(), Syntax.syntaxARQ);
+ Query query = QueryFactory.create(spqral, Syntax.syntaxARQ);
+ QueryExecution queryExecution = QueryExecutionFactory.create(query, model);
+
+ //System.out.println(constructQuery.toString());
+ m.add(queryExecution.execConstruct());
+ //}
+
+ FileOutputStream max = new FileOutputStream("/Users/mac/Documents/CNR/SSSW2012/datasets_new/example5.rdf");
+ m.write(max);
+
+
+ } catch (FileNotFoundException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } /*catch (RuleAtomCallExeption e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (UnavailableRuleObjectException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (UnsupportedTypeForExportException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }*/
+
+
+ }
+
+
}
Modified: stanbol/trunk/rules/adapters/clerezza/src/test/java/org/apache/stanbol/rules/adapters/clerezza/ClerezzaAdpterTest.java
URL: http://svn.apache.org/viewvc/stanbol/trunk/rules/adapters/clerezza/src/test/java/org/apache/stanbol/rules/adapters/clerezza/ClerezzaAdpterTest.java?rev=1465023&r1=1465022&r2=1465023&view=diff
==============================================================================
--- stanbol/trunk/rules/adapters/clerezza/src/test/java/org/apache/stanbol/rules/adapters/clerezza/ClerezzaAdpterTest.java (original)
+++ stanbol/trunk/rules/adapters/clerezza/src/test/java/org/apache/stanbol/rules/adapters/clerezza/ClerezzaAdpterTest.java Fri Apr 5 16:09:09 2013
@@ -17,20 +17,31 @@
package org.apache.stanbol.rules.adapters.clerezza;
+import java.util.Dictionary;
+import java.util.Hashtable;
import java.util.List;
import junit.framework.Assert;
import org.apache.clerezza.rdf.core.UriRef;
+import org.apache.clerezza.rdf.core.access.TcManager;
+import org.apache.clerezza.rdf.core.access.WeightedTcProvider;
import org.apache.clerezza.rdf.core.sparql.ParseException;
+import org.apache.clerezza.rdf.core.sparql.QueryEngine;
import org.apache.clerezza.rdf.core.sparql.QueryParser;
import org.apache.clerezza.rdf.core.sparql.query.ConstructQuery;
+import org.apache.clerezza.rdf.jena.sparql.JenaSparqlEngine;
+import org.apache.clerezza.rdf.simple.storage.SimpleTcProvider;
import org.apache.stanbol.rules.adapters.clerezza.ClerezzaAdapter;
+import org.apache.stanbol.rules.adapters.impl.RuleAdaptersFactoryImpl;
import org.apache.stanbol.rules.base.api.Recipe;
import org.apache.stanbol.rules.base.api.RuleAdapter;
+import org.apache.stanbol.rules.base.api.RuleAdaptersFactory;
import org.apache.stanbol.rules.base.api.RuleAtomCallExeption;
+import org.apache.stanbol.rules.base.api.RuleStore;
import org.apache.stanbol.rules.base.api.UnavailableRuleObjectException;
import org.apache.stanbol.rules.base.api.UnsupportedTypeForExportException;
+import org.apache.stanbol.rules.manager.ClerezzaRuleStore;
import org.apache.stanbol.rules.manager.KB;
import org.apache.stanbol.rules.manager.RecipeImpl;
import org.apache.stanbol.rules.manager.parse.RuleParserImpl;
@@ -59,7 +70,24 @@ public class ClerezzaAdpterTest {
@BeforeClass
public static void setUpClass() {
- ruleAdapter = new ClerezzaAdapter();
+
+ class SpecialTcManager extends TcManager {
+ public SpecialTcManager(QueryEngine qe, WeightedTcProvider wtcp) {
+ super();
+ bindQueryEngine(qe);
+ bindWeightedTcProvider(wtcp);
+ }
+ }
+
+ QueryEngine qe = new JenaSparqlEngine();
+ WeightedTcProvider wtcp = new SimpleTcProvider();
+ TcManager tcm = new SpecialTcManager(qe, wtcp);
+
+ Dictionary<String,Object> configuration = new Hashtable<String,Object>();
+ RuleAdaptersFactory ruleAdaptersFactory = new RuleAdaptersFactoryImpl();
+ RuleStore ruleStore = new ClerezzaRuleStore(configuration, tcm);
+
+ ruleAdapter = new ClerezzaAdapter(configuration, ruleStore, ruleAdaptersFactory);
}
@AfterClass
Modified: stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/JenaAdapter.java
URL: http://svn.apache.org/viewvc/stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/JenaAdapter.java?rev=1465023&r1=1465022&r2=1465023&view=diff
==============================================================================
--- stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/JenaAdapter.java (original)
+++ stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/JenaAdapter.java Fri Apr 5 16:09:09 2013
@@ -17,12 +17,19 @@
package org.apache.stanbol.rules.adapters.jena;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
import java.io.IOException;
+import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Dictionary;
+import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
+import java.util.Map;
+import org.apache.clerezza.rdf.core.UriRef;
+import org.apache.clerezza.rdf.core.sparql.ResultSet;
import org.apache.felix.scr.annotations.Activate;
import org.apache.felix.scr.annotations.Component;
import org.apache.felix.scr.annotations.Deactivate;
@@ -30,6 +37,7 @@ import org.apache.felix.scr.annotations.
import org.apache.felix.scr.annotations.Service;
import org.apache.stanbol.rules.adapters.AbstractRuleAdapter;
import org.apache.stanbol.rules.adapters.AdaptableAtom;
+import org.apache.stanbol.rules.adapters.jena.atoms.VariableAtom;
import org.apache.stanbol.rules.base.api.Adaptable;
import org.apache.stanbol.rules.base.api.Recipe;
import org.apache.stanbol.rules.base.api.Rule;
@@ -42,11 +50,36 @@ import org.apache.stanbol.rules.base.api
import org.apache.stanbol.rules.base.api.UnsupportedTypeForExportException;
import org.apache.stanbol.rules.base.api.util.AtomList;
import org.apache.stanbol.rules.base.api.util.RuleList;
+import org.apache.stanbol.rules.manager.KB;
+import org.apache.stanbol.rules.manager.RecipeImpl;
+import org.apache.stanbol.rules.manager.parse.RuleParserImpl;
import org.osgi.service.component.ComponentContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import com.hp.hpl.jena.JenaRuntime;
+import com.hp.hpl.jena.query.Query;
+import com.hp.hpl.jena.query.QueryExecution;
+import com.hp.hpl.jena.query.QueryExecutionFactory;
+import com.hp.hpl.jena.query.QueryFactory;
+import com.hp.hpl.jena.query.ResultSetFormatter;
+import com.hp.hpl.jena.query.Syntax;
+import com.hp.hpl.jena.rdf.model.InfModel;
+import com.hp.hpl.jena.rdf.model.Model;
+import com.hp.hpl.jena.rdf.model.ModelFactory;
+import com.hp.hpl.jena.rdf.model.Resource;
+import com.hp.hpl.jena.rdf.model.StmtIterator;
+import com.hp.hpl.jena.reasoner.Reasoner;
+import com.hp.hpl.jena.reasoner.ReasonerRegistry;
import com.hp.hpl.jena.reasoner.rulesys.ClauseEntry;
+import com.hp.hpl.jena.reasoner.rulesys.GenericRuleReasoner;
+import com.hp.hpl.jena.reasoner.rulesys.GenericRuleReasonerFactory;
+import com.hp.hpl.jena.reasoner.rulesys.OWLFBRuleReasonerFactory;
+import com.hp.hpl.jena.util.FileManager;
+import com.hp.hpl.jena.util.PrintUtil;
+import com.hp.hpl.jena.vocabulary.RDF;
+import com.hp.hpl.jena.vocabulary.ReasonerVocabulary;
+import com.ibm.icu.util.Output;
/**
* The adapter for Jena rules. <br/>
@@ -71,7 +104,11 @@ public class JenaAdapter extends Abstrac
@Reference
RuleAdaptersFactory ruleAdaptersFactory;
-
+
+ private ComponentContext componentContext;
+
+ public Map<String,Integer> variableMap = new HashMap<String,Integer>();
+
@SuppressWarnings("unchecked")
@Override
protected <T> T adaptRecipeTo(Recipe recipe, Class<T> type) throws RuleAtomCallExeption,
@@ -112,6 +149,9 @@ public class JenaAdapter extends Abstrac
List<ClauseEntry> headClauseEntries = new ArrayList<ClauseEntry>();
List<ClauseEntry> bodyClauseEntries = new ArrayList<ClauseEntry>();
+
+ variableMap = new HashMap<String,Integer>();
+
Iterator<RuleAtom> it = headAtomList.iterator();
while (it.hasNext()) {
RuleAtom atom = it.next();
@@ -167,14 +207,30 @@ public class JenaAdapter extends Abstrac
String className = ruleAtom.getClass().getSimpleName();
String canonicalName = ARTIFACT + "." + className;
-
+
try {
- // ClassLoader loader = Thread.currentThread().getContextClassLoader();
- // Class<AdaptableAtom> jenaAtomClass = (Class<AdaptableAtom>)loader.loadClass(canonicalName);
- Class<AdaptableAtom> jenaAtomClass = (Class<AdaptableAtom>) Class.forName(canonicalName);
-
- try {
+
+
+ Class<AdaptableAtom> jenaAtomClass = null;
+ if(componentContext != null){
+ // in OSGi environment
+ jenaAtomClass = componentContext.getBundleContext().getBundle().loadClass(canonicalName);
+ }
+ else{
+ // in non-OSGi environment
+ jenaAtomClass = (Class<AdaptableAtom>) Thread.currentThread().getContextClassLoader().loadClass(canonicalName);
+ }
+
+ try
+
+ {
+
+
AdaptableAtom jenaAtom = jenaAtomClass.newInstance();
+
+ if(jenaAtom instanceof VariableAtom){
+ System.out.println("Class equals");
+ }
jenaAtom.setRuleAdapter(this);
@@ -219,6 +275,9 @@ public class JenaAdapter extends Abstrac
if (context == null) {
throw new IllegalStateException("No valid" + ComponentContext.class + " parsed in activate!");
}
+
+ componentContext = context;
+
activate((Dictionary<String,Object>) context.getProperties());
}
@@ -246,10 +305,82 @@ public class JenaAdapter extends Abstrac
@Override
public <T> boolean canAdaptTo(Adaptable adaptable, Class<T> type) {
- if (type == com.hp.hpl.jena.reasoner.rulesys.Rule.class) {
+ if(type == com.hp.hpl.jena.reasoner.rulesys.Rule.class){
return true;
- } else {
+ }
+ else{
return false;
}
}
+
+ public static void main(String[] args){
+ RuleAdapter ruleAdapter = new JenaAdapter();
+ try {
+ KB kb = RuleParserImpl.parse("http://sssw.org/2012/rules/", new FileInputStream("/Users/mac/Documents/CNR/SSSW2012/rules/exercise1"));
+ System.out.println("Rules: " + kb.getRuleList().size());
+ Recipe recipe = new RecipeImpl(new UriRef("http://sssw.org/2012/rules/"), "Recipe", kb.getRuleList());
+
+ List<com.hp.hpl.jena.reasoner.rulesys.Rule> jenaRules = (List<com.hp.hpl.jena.reasoner.rulesys.Rule>) ruleAdapter.adaptTo(recipe, com.hp.hpl.jena.reasoner.rulesys.Rule.class);
+
+ String rules = "[ Exercise1: (http://dbpedia.org/resource/Madrid http://dbpedia.org/ontology/locationOf ?location) (?location rdf:type http://dbpedia.org/ontology/Museum) (?location http://dbpedia.org/ontology/numberOfVisitors ?visitors) greaterThan(?visitors '2000000'^^http://www.w3.org/2001/XMLSchema#integer) -> (?location rdf:type http://www.mytravels.com/Itinerary/MadridItinerary) ]";
+
+ //List<com.hp.hpl.jena.reasoner.rulesys.Rule> jenaRules = com.hp.hpl.jena.reasoner.rulesys.Rule.parseRules(rules);
+ for(com.hp.hpl.jena.reasoner.rulesys.Rule jenaRule : jenaRules){
+ System.out.println(jenaRule.toString());
+ }
+
+ Model m = ModelFactory.createDefaultModel();
+
+ Resource configuration = m.createResource();
+ configuration.addProperty(ReasonerVocabulary.PROPruleMode, "hybrid");
+
+ //Model model = FileManager.get().loadModel("/Users/mac/Documents/workspaceMyStanbol/sssw2012/events.rdf");
+ Model model = FileManager.get().loadModel("/Users/mac/Documents/CNR/SSSW2012/datasets_new/Exercise1.rdf");
+ //GenericRuleReasoner reasoner = new GenericRuleReasoner(jenaRules);
+
+ //GenericRuleReasoner reasoner = new GenericRuleReasoner(com.hp.hpl.jena.reasoner.rulesys.Rule.parseRules(rules));
+ GenericRuleReasoner reasoner = new GenericRuleReasoner(jenaRules);
+
+ reasoner.setOWLTranslation(true); // not needed in RDFS case
+ reasoner.setTransitiveClosureCaching(true);
+
+
+ InfModel infModel = ModelFactory.createInfModel(reasoner, model);
+
+ infModel.prepare();
+ infModel.getDeductionsModel().write(System.out);
+ //String sparql = "select * where {?s a <http://www.mytravels.com/Itinerary/MovieCityMuseums> }";
+ //String sparql = "select * where {?s a <http://www.mytravels.com/Itinerary/CityEventItinerary> }";
+ String sparql = "select * where {?s a <http://www.mytravels.com/Itinerary/MadridItinerary> }";
+ //String sparql = "select * where {?s a <http://linkedevents.org/ontology/cazzo> }";
+ //String sparql = "select * where {?s a <http://www.mytravels.com/Itinerary/MovieCityItinerary> }";
+
+ Query query = QueryFactory.create(sparql, Syntax.syntaxARQ);
+ QueryExecution queryExecution = QueryExecutionFactory.create(query, infModel);
+
+ com.hp.hpl.jena.query.ResultSet resultSet = queryExecution.execSelect();
+
+ ResultSetFormatter.out(System.out, resultSet);
+
+
+ } catch (FileNotFoundException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (RuleAtomCallExeption e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (UnavailableRuleObjectException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (UnsupportedTypeForExportException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+
+ }
+
+ public Map<String,Integer> getVariableMap() {
+ return variableMap;
+ }
}
Modified: stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/NodeFactory.java
URL: http://svn.apache.org/viewvc/stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/NodeFactory.java?rev=1465023&r1=1465022&r2=1465023&view=diff
==============================================================================
--- stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/NodeFactory.java (original)
+++ stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/NodeFactory.java Fri Apr 5 16:09:09 2013
@@ -60,18 +60,19 @@ public class NodeFactory {
} else {
literal = Node_RuleVariable.createLiteral(argument.toString());
}
- } else if (argument instanceof String) {
- literal = Node_RuleVariable.createLiteral((String) argument, null, XSDDatatype.XSDstring);
- } else if (argument instanceof Integer) {
- literal = Node_RuleVariable.createLiteral(argument.toString(), null, XSDDatatype.XSDinteger);
- } else if (argument instanceof Double) {
- literal = Node_RuleVariable.createLiteral(argument.toString(), null, XSDDatatype.XSDdouble);
- } else if (argument instanceof Float) {
- literal = Node_RuleVariable.createLiteral(argument.toString(), null, XSDDatatype.XSDfloat);
- } else if (argument instanceof Boolean) {
- literal = Node_RuleVariable.createLiteral(argument.toString(), null, XSDDatatype.XSDboolean);
+ } else if(argument instanceof String) {
+
+ System.out.println(argument);
+ String argString = (String) argument;
+ if(argString.startsWith("\"") && argString.endsWith("\"")){
+ argString = argString.substring(1, argString.length()-1);
+ }
+ literal = Node_RuleVariable.createLiteral(argString);
+ } else if(argument instanceof Integer) {
+
+ literal = Node_RuleVariable.createLiteral(argument.toString(), null, XSDDatatype.XSDint);
} else {
- literal = Node_RuleVariable.createLiteral((String) argument);
+ literal = Node_RuleVariable.createLiteral(argument.toString());
}
return literal;
Added: stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/VariableClauseEntry.java
URL: http://svn.apache.org/viewvc/stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/VariableClauseEntry.java?rev=1465023&view=auto
==============================================================================
--- stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/VariableClauseEntry.java (added)
+++ stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/VariableClauseEntry.java Fri Apr 5 16:09:09 2013
@@ -0,0 +1,50 @@
+/*
+ * 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.
+ */
+
+package org.apache.stanbol.rules.adapters.jena;
+
+import java.util.Map;
+
+import com.hp.hpl.jena.graph.Node;
+import com.hp.hpl.jena.reasoner.rulesys.ClauseEntry;
+
+/**
+ * A wrapper in order to treat a node as a {@link ClauseEntry}
+ *
+ * @author anuzzolese
+ *
+ */
+public class VariableClauseEntry extends NodeClauseEntry {
+
+ private Map<String,Integer> variableMap;
+
+ public VariableClauseEntry(Node node, Map<String,Integer> variableMap) {
+ super(node);
+ this.variableMap = variableMap;
+ }
+
+ @Override
+ public boolean sameAs(Object o) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ public Map<String,Integer> getVariableMap() {
+ return variableMap;
+ }
+
+}
Modified: stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/DifferentAtom.java
URL: http://svn.apache.org/viewvc/stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/DifferentAtom.java?rev=1465023&r1=1465022&r2=1465023&view=diff
==============================================================================
--- stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/DifferentAtom.java (original)
+++ stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/DifferentAtom.java Fri Apr 5 16:09:09 2013
@@ -87,7 +87,7 @@ public class DifferentAtom extends Abstr
nodes.add(arg1Node);
nodes.add(arg2Node);
- return (T) new Functor("notEqual", nodes, new BuiltinRegistry());
+ return (T) new Functor("notEqual", nodes, BuiltinRegistry.theRegistry);
}
Modified: stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/DivisionAtom.java
URL: http://svn.apache.org/viewvc/stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/DivisionAtom.java?rev=1465023&r1=1465022&r2=1465023&view=diff
==============================================================================
--- stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/DivisionAtom.java (original)
+++ stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/DivisionAtom.java Fri Apr 5 16:09:09 2013
@@ -93,7 +93,7 @@ public class DivisionAtom extends Abstra
nodes.add(arg2Node);
nodes.add(arg3Node);
- ClauseEntry clauseEntry = new Functor("quotient", nodes, new BuiltinRegistry());
+ ClauseEntry clauseEntry = new Functor("quotient", nodes, BuiltinRegistry.theRegistry);
clauseEntries.add(clauseEntry);
Modified: stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/EndsWithAtom.java
URL: http://svn.apache.org/viewvc/stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/EndsWithAtom.java?rev=1465023&r1=1465022&r2=1465023&view=diff
==============================================================================
--- stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/EndsWithAtom.java (original)
+++ stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/EndsWithAtom.java Fri Apr 5 16:09:09 2013
@@ -99,7 +99,7 @@ public class EndsWithAtom extends Abstra
nodes.add(arg1Node);
nodes.add(arg2Node);
- return (T) new Functor("regex", nodes, new BuiltinRegistry());
+ return (T) new Functor("regex", nodes, BuiltinRegistry.theRegistry);
}
Modified: stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/GreaterEqualThanAtom.java
URL: http://svn.apache.org/viewvc/stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/GreaterEqualThanAtom.java?rev=1465023&r1=1465022&r2=1465023&view=diff
==============================================================================
--- stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/GreaterEqualThanAtom.java (original)
+++ stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/GreaterEqualThanAtom.java Fri Apr 5 16:09:09 2013
@@ -87,7 +87,7 @@ public class GreaterEqualThanAtom extend
nodes.add(arg1Node);
nodes.add(arg2Node);
- Functor functor = new Functor("ge", nodes, new BuiltinRegistry());
+ Functor functor = new Functor("ge", nodes, BuiltinRegistry.theRegistry);
clauseEntries.add(functor);
Modified: stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/GreaterThanAtom.java
URL: http://svn.apache.org/viewvc/stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/GreaterThanAtom.java?rev=1465023&r1=1465022&r2=1465023&view=diff
==============================================================================
--- stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/GreaterThanAtom.java (original)
+++ stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/GreaterThanAtom.java Fri Apr 5 16:09:09 2013
@@ -29,10 +29,12 @@ import org.apache.stanbol.rules.base.api
import org.apache.stanbol.rules.manager.atoms.ExpressionAtom;
import com.hp.hpl.jena.graph.Node;
+import com.hp.hpl.jena.reasoner.rulesys.Builtin;
import com.hp.hpl.jena.reasoner.rulesys.BuiltinRegistry;
import com.hp.hpl.jena.reasoner.rulesys.ClauseEntry;
import com.hp.hpl.jena.reasoner.rulesys.Functor;
import com.hp.hpl.jena.reasoner.rulesys.Rule;
+import com.hp.hpl.jena.reasoner.rulesys.builtins.GreaterThan;
/**
*
@@ -87,7 +89,13 @@ public class GreaterThanAtom extends Abs
nodes.add(arg1Node);
nodes.add(arg2Node);
- Functor functor = new Functor("greaterThan", nodes, new BuiltinRegistry());
+ Builtin f = BuiltinRegistry.theRegistry.getImplementation("greaterThan");
+
+ System.out.println("Class: " + f.getClass().getCanonicalName());
+ System.out.println("Arg1: " + arg1Node.getClass().getCanonicalName());
+ System.out.println("Arg2: " + arg2Node.getClass().getCanonicalName());
+
+ Functor functor = new Functor("greaterThan", nodes, BuiltinRegistry.theRegistry);
clauseEntries.add(functor);
Modified: stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/IndividualPropertyAtom.java
URL: http://svn.apache.org/viewvc/stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/IndividualPropertyAtom.java?rev=1465023&r1=1465022&r2=1465023&view=diff
==============================================================================
--- stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/IndividualPropertyAtom.java (original)
+++ stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/IndividualPropertyAtom.java Fri Apr 5 16:09:09 2013
@@ -18,6 +18,7 @@ package org.apache.stanbol.rules.adapter
import org.apache.stanbol.rules.adapters.AbstractAdaptableAtom;
import org.apache.stanbol.rules.adapters.jena.NodeClauseEntry;
+import org.apache.stanbol.rules.adapters.jena.VariableClauseEntry;
import org.apache.stanbol.rules.base.api.RuleAtom;
import org.apache.stanbol.rules.base.api.RuleAtomCallExeption;
import org.apache.stanbol.rules.base.api.UnavailableRuleObjectException;
@@ -50,6 +51,7 @@ public class IndividualPropertyAtom exte
IObjectAtom argument2 = tmp.getArgument2();
IObjectAtom objectProperty = tmp.getObjectProperty();
+ System.out.println(argument1);
ClauseEntry argument2ClauseEntry = (ClauseEntry) adapter.adaptTo(argument2, Rule.class);
ClauseEntry argument1ClauseEntry = (ClauseEntry) adapter.adaptTo(argument1, Rule.class);
ClauseEntry objectPropertyClauseEntry = (ClauseEntry) adapter.adaptTo(objectProperty, Rule.class);
@@ -58,8 +60,12 @@ public class IndividualPropertyAtom exte
Node predicateNode;
Node objectNode;
+ System.out.println(argument1ClauseEntry.getClass());
if (argument1ClauseEntry instanceof NodeClauseEntry) {
subjectNode = ((NodeClauseEntry) argument1ClauseEntry).getNode();
+ } else if (argument1ClauseEntry instanceof VariableClauseEntry) {
+ subjectNode = ((VariableClauseEntry) argument1ClauseEntry).getNode();
+ System.out.println("Here");
} else {
throw new RuleAtomCallExeption(getClass());
}
Modified: stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/IsBlankAtom.java
URL: http://svn.apache.org/viewvc/stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/IsBlankAtom.java?rev=1465023&r1=1465022&r2=1465023&view=diff
==============================================================================
--- stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/IsBlankAtom.java (original)
+++ stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/IsBlankAtom.java Fri Apr 5 16:09:09 2013
@@ -65,7 +65,7 @@ public class IsBlankAtom extends Abstrac
nodes.add(argNode);
- return (T) new Functor("isBNode", nodes, new BuiltinRegistry());
+ return (T) new Functor("isBNode", nodes, BuiltinRegistry.theRegistry);
}
Modified: stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/LessEqualThanAtom.java
URL: http://svn.apache.org/viewvc/stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/LessEqualThanAtom.java?rev=1465023&r1=1465022&r2=1465023&view=diff
==============================================================================
--- stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/LessEqualThanAtom.java (original)
+++ stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/LessEqualThanAtom.java Fri Apr 5 16:09:09 2013
@@ -88,7 +88,7 @@ public class LessEqualThanAtom extends A
nodes.add(arg1Node);
nodes.add(arg2Node);
- Functor functor = new Functor("le", nodes, new BuiltinRegistry());
+ Functor functor = new Functor("le", nodes, BuiltinRegistry.theRegistry);
clauseEntries.add(functor);
Modified: stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/LessThanAtom.java
URL: http://svn.apache.org/viewvc/stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/LessThanAtom.java?rev=1465023&r1=1465022&r2=1465023&view=diff
==============================================================================
--- stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/LessThanAtom.java (original)
+++ stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/LessThanAtom.java Fri Apr 5 16:09:09 2013
@@ -87,7 +87,7 @@ public class LessThanAtom extends Abstra
nodes.add(arg1Node);
nodes.add(arg2Node);
- Functor functor = new Functor("lessThan", nodes, new BuiltinRegistry());
+ Functor functor = new Functor("lessThan", nodes, BuiltinRegistry.theRegistry);
clauseEntries.add(functor);
Modified: stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/LetAtom.java
URL: http://svn.apache.org/viewvc/stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/LetAtom.java?rev=1465023&r1=1465022&r2=1465023&view=diff
==============================================================================
--- stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/LetAtom.java (original)
+++ stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/LetAtom.java Fri Apr 5 16:09:09 2013
@@ -84,7 +84,7 @@ public class LetAtom extends AbstractAda
nodes.add(variableNode);
nodes.add(parameterNode);
- ClauseEntry clauseEntry = new Functor("makeSkolem", nodes, new BuiltinRegistry());
+ ClauseEntry clauseEntry = new Functor("makeSkolem", nodes, BuiltinRegistry.theRegistry);
clauseEntries.add(clauseEntry);
Modified: stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/MultiplicationAtom.java
URL: http://svn.apache.org/viewvc/stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/MultiplicationAtom.java?rev=1465023&r1=1465022&r2=1465023&view=diff
==============================================================================
--- stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/MultiplicationAtom.java (original)
+++ stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/MultiplicationAtom.java Fri Apr 5 16:09:09 2013
@@ -92,7 +92,7 @@ public class MultiplicationAtom extends
nodes.add(arg2Node);
nodes.add(arg3Node);
- ClauseEntry clauseEntry = new Functor("product", nodes, new BuiltinRegistry());
+ ClauseEntry clauseEntry = new Functor("product", nodes, BuiltinRegistry.theRegistry);
clauseEntries.add(clauseEntry);
Modified: stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/NumberAtom.java
URL: http://svn.apache.org/viewvc/stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/NumberAtom.java?rev=1465023&r1=1465022&r2=1465023&view=diff
==============================================================================
--- stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/NumberAtom.java (original)
+++ stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/NumberAtom.java Fri Apr 5 16:09:09 2013
@@ -42,6 +42,8 @@ public class NumberAtom extends Abstract
String number = tmp.getNumber();
Node node = null;
+
+ System.out.println("Number atom " + number);
if (number.startsWith("?")) {
Modified: stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/NumericVariableAtom.java
URL: http://svn.apache.org/viewvc/stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/NumericVariableAtom.java?rev=1465023&r1=1465022&r2=1465023&view=diff
==============================================================================
--- stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/NumericVariableAtom.java (original)
+++ stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/NumericVariableAtom.java Fri Apr 5 16:09:09 2013
@@ -20,6 +20,7 @@ package org.apache.stanbol.rules.adapter
import java.net.URI;
import org.apache.stanbol.rules.adapters.AbstractAdaptableAtom;
+import org.apache.stanbol.rules.adapters.jena.JenaAdapter;
import org.apache.stanbol.rules.adapters.jena.NodeClauseEntry;
import org.apache.stanbol.rules.base.api.RuleAtom;
import org.apache.stanbol.rules.base.api.RuleAtomCallExeption;
@@ -50,7 +51,15 @@ public class NumericVariableAtom extends
if (variable.startsWith("?")) {
variable = variable.substring(1);
}
+
+ Integer index = ((JenaAdapter)adapter).variableMap.get(variable);
+ if(index == null){
+ index = ((JenaAdapter)adapter).variableMap.size();
+ ((JenaAdapter)adapter).variableMap.put(variable, index);
+ }
+
+ Node_RuleVariable ruleVariable = new Node_RuleVariable("?" + variable, index.intValue());
- return (T) new NodeClauseEntry(Node_RuleVariable.createVariable(variable));
+ return (T) new NodeClauseEntry(ruleVariable);
}
}
Modified: stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/StrAtom.java
URL: http://svn.apache.org/viewvc/stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/StrAtom.java?rev=1465023&r1=1465022&r2=1465023&view=diff
==============================================================================
--- stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/StrAtom.java (original)
+++ stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/StrAtom.java Fri Apr 5 16:09:09 2013
@@ -20,6 +20,7 @@ import java.util.ArrayList;
import java.util.List;
import org.apache.stanbol.rules.adapters.AbstractAdaptableAtom;
+import org.apache.stanbol.rules.adapters.jena.HigherOrderClauseEntry;
import org.apache.stanbol.rules.adapters.jena.NodeClauseEntry;
import org.apache.stanbol.rules.base.api.RuleAtom;
import org.apache.stanbol.rules.base.api.RuleAtomCallExeption;
@@ -66,7 +67,11 @@ public class StrAtom extends AbstractAda
args.add(emptyString);
args.add(bindind);
- return (T) new Functor("strConcat", args);
+ Functor functor = new Functor("strConcat", args);
+
+ List<ClauseEntry> clauseEntries = new ArrayList<ClauseEntry>();
+ clauseEntries.add(functor);
+ return (T) new HigherOrderClauseEntry(node, clauseEntries);
} else {
throw new RuleAtomCallExeption(getClass());
Modified: stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/StringVariableAtom.java
URL: http://svn.apache.org/viewvc/stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/StringVariableAtom.java?rev=1465023&r1=1465022&r2=1465023&view=diff
==============================================================================
--- stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/StringVariableAtom.java (original)
+++ stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/StringVariableAtom.java Fri Apr 5 16:09:09 2013
@@ -20,6 +20,7 @@ package org.apache.stanbol.rules.adapter
import java.net.URI;
import org.apache.stanbol.rules.adapters.AbstractAdaptableAtom;
+import org.apache.stanbol.rules.adapters.jena.JenaAdapter;
import org.apache.stanbol.rules.adapters.jena.NodeClauseEntry;
import org.apache.stanbol.rules.base.api.RuleAtom;
import org.apache.stanbol.rules.base.api.RuleAtomCallExeption;
@@ -49,7 +50,14 @@ public class StringVariableAtom extends
if (variable.startsWith("?")) {
variable = variable.substring(1);
}
+
+ Integer index = ((JenaAdapter)adapter).variableMap.get(variable);
+ if(index == null){
+ index = ((JenaAdapter)adapter).variableMap.size();
+ ((JenaAdapter)adapter).variableMap.put(variable, index);
+ }
+ Node_RuleVariable ruleVariable = new Node_RuleVariable("?" + variable, index.intValue());
- return (T) new NodeClauseEntry(Node_RuleVariable.createVariable(variable));
+ return (T) new NodeClauseEntry(ruleVariable);
}
}
Modified: stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/SubtractionAtom.java
URL: http://svn.apache.org/viewvc/stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/SubtractionAtom.java?rev=1465023&r1=1465022&r2=1465023&view=diff
==============================================================================
--- stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/SubtractionAtom.java (original)
+++ stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/SubtractionAtom.java Fri Apr 5 16:09:09 2013
@@ -91,7 +91,7 @@ public class SubtractionAtom extends Abs
nodes.add(arg2Node);
nodes.add(arg3Node);
- ClauseEntry clauseEntry = new Functor("difference", nodes, new BuiltinRegistry());
+ ClauseEntry clauseEntry = new Functor("difference", nodes, BuiltinRegistry.theRegistry);
clauseEntries.add(clauseEntry);
Modified: stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/SumAtom.java
URL: http://svn.apache.org/viewvc/stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/SumAtom.java?rev=1465023&r1=1465022&r2=1465023&view=diff
==============================================================================
--- stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/SumAtom.java (original)
+++ stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/SumAtom.java Fri Apr 5 16:09:09 2013
@@ -91,7 +91,7 @@ public class SumAtom extends AbstractAda
nodes.add(arg2Node);
nodes.add(arg3Node);
- ClauseEntry clauseEntry = new Functor("sum", nodes, new BuiltinRegistry());
+ ClauseEntry clauseEntry = new Functor("sum", nodes, BuiltinRegistry.theRegistry);
clauseEntries.add(clauseEntry);
Modified: stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/VariableAtom.java
URL: http://svn.apache.org/viewvc/stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/VariableAtom.java?rev=1465023&r1=1465022&r2=1465023&view=diff
==============================================================================
--- stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/VariableAtom.java (original)
+++ stanbol/trunk/rules/adapters/jena/src/main/java/org/apache/stanbol/rules/adapters/jena/atoms/VariableAtom.java Fri Apr 5 16:09:09 2013
@@ -19,6 +19,7 @@ package org.apache.stanbol.rules.adapter
import java.net.URI;
import org.apache.stanbol.rules.adapters.AbstractAdaptableAtom;
+import org.apache.stanbol.rules.adapters.jena.JenaAdapter;
import org.apache.stanbol.rules.adapters.jena.NodeClauseEntry;
import org.apache.stanbol.rules.base.api.RuleAtom;
import org.apache.stanbol.rules.base.api.RuleAtomCallExeption;
@@ -48,8 +49,18 @@ public class VariableAtom extends Abstra
if (variable.startsWith("?")) {
variable = variable.substring(1);
}
-
- return (T) new NodeClauseEntry(Node_RuleVariable.createVariable(variable));
+
+
+ Integer index = ((JenaAdapter)adapter).variableMap.get(variable);
+ if(index == null){
+ index = ((JenaAdapter)adapter).variableMap.size();
+ ((JenaAdapter)adapter).variableMap.put(variable, index);
+ }
+ Node_RuleVariable ruleVariable = new Node_RuleVariable("?" + variable, index.intValue());
+
+
+ return (T) new NodeClauseEntry(ruleVariable);
}
+
}
Modified: stanbol/trunk/rules/adapters/sparql/src/main/java/org/apache/stanbol/rules/adapters/sparql/SPARQLAdapter.java
URL: http://svn.apache.org/viewvc/stanbol/trunk/rules/adapters/sparql/src/main/java/org/apache/stanbol/rules/adapters/sparql/SPARQLAdapter.java?rev=1465023&r1=1465022&r2=1465023&view=diff
==============================================================================
--- stanbol/trunk/rules/adapters/sparql/src/main/java/org/apache/stanbol/rules/adapters/sparql/SPARQLAdapter.java (original)
+++ stanbol/trunk/rules/adapters/sparql/src/main/java/org/apache/stanbol/rules/adapters/sparql/SPARQLAdapter.java Fri Apr 5 16:09:09 2013
@@ -69,6 +69,8 @@ public class SPARQLAdapter extends Abstr
@Reference
RuleAdaptersFactory ruleAdaptersFactory;
+
+ private ComponentContext componentContext;
@SuppressWarnings("unchecked")
protected <T> T adaptRecipeTo(Recipe recipe, Class<T> type) throws UnsupportedTypeForExportException,
@@ -204,11 +206,17 @@ public class SPARQLAdapter extends Abstr
String canonicalName = ARTIFACT + "." + className;
try {
- // ClassLoader loader = Thread.currentThread().getContextClassLoader();
- // Class<AdaptableAtom> sparqlAtomClass =
- // (Class<AdaptableAtom>)loader.loadClass(canonicalName);
- Class<AdaptableAtom> sparqlAtomClass = (Class<AdaptableAtom>) Class.forName(canonicalName);
-
+
+ Class<AdaptableAtom> sparqlAtomClass = null;
+ if(componentContext != null){
+ // in OSGi environment
+ sparqlAtomClass = componentContext.getBundleContext().getBundle().loadClass(canonicalName);
+ }
+ else{
+ // in non-OSGi environment
+ sparqlAtomClass = (Class<AdaptableAtom>) Thread.currentThread().getContextClassLoader().loadClass(canonicalName);
+ }
+
try {
AdaptableAtom sparqlAtom = sparqlAtomClass.newInstance();
sparqlAtom.setRuleAdapter(this);
@@ -260,6 +268,9 @@ public class SPARQLAdapter extends Abstr
if (context == null) {
throw new IllegalStateException("No valid" + ComponentContext.class + " parsed in activate!");
}
+
+ componentContext = context;
+
activate((Dictionary<String,Object>) context.getProperties());
}
@@ -287,9 +298,10 @@ public class SPARQLAdapter extends Abstr
@Override
public <T> boolean canAdaptTo(Adaptable adaptable, Class<T> type) {
- if (type == SPARQLObject.class) {
+ if(type == SPARQLObject.class){
return true;
- } else {
+ }
+ else{
return false;
}
}
Modified: stanbol/trunk/rules/adapters/swrl/src/main/java/org/apache/stanbol/rules/adapters/swrl/SWRLAdapter.java
URL: http://svn.apache.org/viewvc/stanbol/trunk/rules/adapters/swrl/src/main/java/org/apache/stanbol/rules/adapters/swrl/SWRLAdapter.java?rev=1465023&r1=1465022&r2=1465023&view=diff
==============================================================================
--- stanbol/trunk/rules/adapters/swrl/src/main/java/org/apache/stanbol/rules/adapters/swrl/SWRLAdapter.java (original)
+++ stanbol/trunk/rules/adapters/swrl/src/main/java/org/apache/stanbol/rules/adapters/swrl/SWRLAdapter.java Fri Apr 5 16:09:09 2013
@@ -73,6 +73,8 @@ public class SWRLAdapter extends Abstrac
@Reference
RuleAdaptersFactory ruleAdaptersFactory;
+
+ private ComponentContext componentContext;
@SuppressWarnings("unchecked")
@Override
@@ -147,9 +149,16 @@ public class SWRLAdapter extends Abstrac
String canonicalName = ARTIFACT + "." + className;
try {
- // ClassLoader loader = Thread.currentThread().getContextClassLoader();
- // Class<AdaptableAtom> swrlAtomClass = (Class<AdaptableAtom>)loader.loadClass(canonicalName);
- Class<AdaptableAtom> swrlAtomClass = (Class<AdaptableAtom>) Class.forName(canonicalName);
+
+ Class<AdaptableAtom> swrlAtomClass = null;
+ if(componentContext != null){
+ // in OSGi environment
+ swrlAtomClass = componentContext.getBundleContext().getBundle().loadClass(canonicalName);
+ }
+ else{
+ // in non-OSGi environment
+ swrlAtomClass = (Class<AdaptableAtom>) Thread.currentThread().getContextClassLoader().loadClass(canonicalName);
+ }
try {
AdaptableAtom swrlAtom = swrlAtomClass.newInstance();
@@ -197,6 +206,9 @@ public class SWRLAdapter extends Abstrac
if (context == null) {
throw new IllegalStateException("No valid" + ComponentContext.class + " parsed in activate!");
}
+
+ componentContext = context;
+
activate((Dictionary<String,Object>) context.getProperties());
}
@@ -224,9 +236,10 @@ public class SWRLAdapter extends Abstrac
@Override
public <T> boolean canAdaptTo(Adaptable adaptable, Class<T> type) {
- if (type == SWRLRule.class) {
+ if(type == SWRLRule.class){
return true;
- } else {
+ }
+ else{
return false;
}
}
Modified: stanbol/trunk/rules/manager/src/main/java/org/apache/stanbol/rules/manager/ClerezzaRuleStore.java
URL: http://svn.apache.org/viewvc/stanbol/trunk/rules/manager/src/main/java/org/apache/stanbol/rules/manager/ClerezzaRuleStore.java?rev=1465023&r1=1465022&r2=1465023&view=diff
==============================================================================
--- stanbol/trunk/rules/manager/src/main/java/org/apache/stanbol/rules/manager/ClerezzaRuleStore.java (original)
+++ stanbol/trunk/rules/manager/src/main/java/org/apache/stanbol/rules/manager/ClerezzaRuleStore.java Fri Apr 5 16:09:09 2013
@@ -21,6 +21,9 @@
package org.apache.stanbol.rules.manager;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
@@ -283,7 +286,8 @@ public class ClerezzaRuleStore implement
UriRef recipeID = recipe.getRecipeID();
String namespace = recipeID.toString().substring(1, recipeID.toString().length() - 1) + "/";
-
+
+ log.info("Rule Namespace is " + namespace);
RuleList ruleList = RuleParserImpl.parse(namespace, rulesStream).getRuleList();
for (Rule rule : ruleList) {
@@ -662,4 +666,21 @@ public class ClerezzaRuleStore implement
return matchingRules;
}
+
+ public static void main(String[] args){
+
+ InputStream inputStream;
+ try {
+ inputStream = new FileInputStream(new File("/Users/mac/Desktop/domain.rule"));
+
+ RuleList ruleList = RuleParserImpl.parse("http://www.prova.it/", inputStream).getRuleList();
+
+ for (Rule rule : ruleList) {
+
+ }
+ } catch (FileNotFoundException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
}
Modified: stanbol/trunk/rules/manager/src/main/java/org/apache/stanbol/rules/manager/parse/ParseException.java
URL: http://svn.apache.org/viewvc/stanbol/trunk/rules/manager/src/main/java/org/apache/stanbol/rules/manager/parse/ParseException.java?rev=1465023&r1=1465022&r2=1465023&view=diff
==============================================================================
--- stanbol/trunk/rules/manager/src/main/java/org/apache/stanbol/rules/manager/parse/ParseException.java (original)
+++ stanbol/trunk/rules/manager/src/main/java/org/apache/stanbol/rules/manager/parse/ParseException.java Fri Apr 5 16:09:09 2013
@@ -1,182 +1,187 @@
-/*
- * 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.
- */
/* Generated By:JavaCC: Do not edit this line. ParseException.java Version 5.0 */
/* JavaCCOptions:KEEP_LINE_COL=null */
package org.apache.stanbol.rules.manager.parse;
/**
- * This exception is thrown when parse errors are encountered. You can explicitly create objects of this
- * exception type by calling the method generateParseException in the generated parser.
- *
- * You can modify this class to customize your error reporting mechanisms so long as you retain the public
- * fields.
+ * This exception is thrown when parse errors are encountered.
+ * You can explicitly create objects of this exception type by
+ * calling the method generateParseException in the generated
+ * parser.
+ *
+ * You can modify this class to customize your error reporting
+ * mechanisms so long as you retain the public fields.
*/
public class ParseException extends Exception {
- /**
- * The version identifier for this Serializable class. Increment only if the <i>serialized</i> form of the
- * class changes.
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * This constructor is used by the method "generateParseException" in the generated parser. Calling this
- * constructor generates a new object of this type with the fields "currentToken",
- * "expectedTokenSequences", and "tokenImage" set.
- */
- public ParseException(Token currentTokenVal, int[][] expectedTokenSequencesVal, String[] tokenImageVal) {
- super(initialise(currentTokenVal, expectedTokenSequencesVal, tokenImageVal));
- currentToken = currentTokenVal;
- expectedTokenSequences = expectedTokenSequencesVal;
- tokenImage = tokenImageVal;
- }
-
- /**
- * The following constructors are for use by you for whatever purpose you can think of. Constructing the
- * exception in this manner makes the exception behave in the normal way - i.e., as documented in the
- * class "Throwable". The fields "errorToken", "expectedTokenSequences", and "tokenImage" do not contain
- * relevant information. The JavaCC generated code does not use these constructors.
- */
-
- public ParseException() {
- super();
+ /**
+ * The version identifier for this Serializable class.
+ * Increment only if the <i>serialized</i> form of the
+ * class changes.
+ */
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * This constructor is used by the method "generateParseException"
+ * in the generated parser. Calling this constructor generates
+ * a new object of this type with the fields "currentToken",
+ * "expectedTokenSequences", and "tokenImage" set.
+ */
+ public ParseException(Token currentTokenVal,
+ int[][] expectedTokenSequencesVal,
+ String[] tokenImageVal
+ )
+ {
+ super(initialise(currentTokenVal, expectedTokenSequencesVal, tokenImageVal));
+ currentToken = currentTokenVal;
+ expectedTokenSequences = expectedTokenSequencesVal;
+ tokenImage = tokenImageVal;
+ }
+
+ /**
+ * The following constructors are for use by you for whatever
+ * purpose you can think of. Constructing the exception in this
+ * manner makes the exception behave in the normal way - i.e., as
+ * documented in the class "Throwable". The fields "errorToken",
+ * "expectedTokenSequences", and "tokenImage" do not contain
+ * relevant information. The JavaCC generated code does not use
+ * these constructors.
+ */
+
+ public ParseException() {
+ super();
+ }
+
+ /** Constructor with message. */
+ public ParseException(String message) {
+ super(message);
+ }
+
+
+ /**
+ * This is the last token that has been consumed successfully. If
+ * this object has been created due to a parse error, the token
+ * followng this token will (therefore) be the first error token.
+ */
+ public Token currentToken;
+
+ /**
+ * Each entry in this array is an array of integers. Each array
+ * of integers represents a sequence of tokens (by their ordinal
+ * values) that is expected at this point of the parse.
+ */
+ public int[][] expectedTokenSequences;
+
+ /**
+ * This is a reference to the "tokenImage" array of the generated
+ * parser within which the parse error occurred. This array is
+ * defined in the generated ...Constants interface.
+ */
+ public String[] tokenImage;
+
+ /**
+ * It uses "currentToken" and "expectedTokenSequences" to generate a parse
+ * error message and returns it. If this object has been created
+ * due to a parse error, and you do not catch it (it gets thrown
+ * from the parser) the correct error message
+ * gets displayed.
+ */
+ private static String initialise(Token currentToken,
+ int[][] expectedTokenSequences,
+ String[] tokenImage) {
+ String eol = System.getProperty("line.separator", "\n");
+ StringBuffer expected = new StringBuffer();
+ int maxSize = 0;
+ for (int i = 0; i < expectedTokenSequences.length; i++) {
+ if (maxSize < expectedTokenSequences[i].length) {
+ maxSize = expectedTokenSequences[i].length;
+ }
+ for (int j = 0; j < expectedTokenSequences[i].length; j++) {
+ expected.append(tokenImage[expectedTokenSequences[i][j]]).append(' ');
+ }
+ if (expectedTokenSequences[i][expectedTokenSequences[i].length - 1] != 0) {
+ expected.append("...");
+ }
+ expected.append(eol).append(" ");
}
-
- /** Constructor with message. */
- public ParseException(String message) {
- super(message);
+ String retval = "Encountered \"";
+ Token tok = currentToken.next;
+ for (int i = 0; i < maxSize; i++) {
+ if (i != 0) retval += " ";
+ if (tok.kind == 0) {
+ retval += tokenImage[0];
+ break;
+ }
+ retval += " " + tokenImage[tok.kind];
+ retval += " \"";
+ retval += add_escapes(tok.image);
+ retval += " \"";
+ tok = tok.next;
}
-
- /**
- * This is the last token that has been consumed successfully. If this object has been created due to a
- * parse error, the token followng this token will (therefore) be the first error token.
- */
- public Token currentToken;
-
- /**
- * Each entry in this array is an array of integers. Each array of integers represents a sequence of
- * tokens (by their ordinal values) that is expected at this point of the parse.
- */
- public int[][] expectedTokenSequences;
-
- /**
- * This is a reference to the "tokenImage" array of the generated parser within which the parse error
- * occurred. This array is defined in the generated ...Constants interface.
- */
- public String[] tokenImage;
-
- /**
- * It uses "currentToken" and "expectedTokenSequences" to generate a parse error message and returns it.
- * If this object has been created due to a parse error, and you do not catch it (it gets thrown from the
- * parser) the correct error message gets displayed.
- */
- private static String initialise(Token currentToken, int[][] expectedTokenSequences, String[] tokenImage) {
- String eol = System.getProperty("line.separator", "\n");
- StringBuffer expected = new StringBuffer();
- int maxSize = 0;
- for (int i = 0; i < expectedTokenSequences.length; i++) {
- if (maxSize < expectedTokenSequences[i].length) {
- maxSize = expectedTokenSequences[i].length;
- }
- for (int j = 0; j < expectedTokenSequences[i].length; j++) {
- expected.append(tokenImage[expectedTokenSequences[i][j]]).append(' ');
- }
- if (expectedTokenSequences[i][expectedTokenSequences[i].length - 1] != 0) {
- expected.append("...");
- }
- expected.append(eol).append(" ");
- }
- String retval = "Encountered \"";
- Token tok = currentToken.next;
- for (int i = 0; i < maxSize; i++) {
- if (i != 0) retval += " ";
- if (tok.kind == 0) {
- retval += tokenImage[0];
- break;
- }
- retval += " " + tokenImage[tok.kind];
- retval += " \"";
- retval += add_escapes(tok.image);
- retval += " \"";
- tok = tok.next;
- }
- retval += "\" at line " + currentToken.next.beginLine + ", column " + currentToken.next.beginColumn;
- retval += "." + eol;
- if (expectedTokenSequences.length == 1) {
- retval += "Was expecting:" + eol + " ";
- } else {
- retval += "Was expecting one of:" + eol + " ";
- }
- retval += expected.toString();
- return retval;
+ retval += "\" at line " + currentToken.next.beginLine + ", column " + currentToken.next.beginColumn;
+ retval += "." + eol;
+ if (expectedTokenSequences.length == 1) {
+ retval += "Was expecting:" + eol + " ";
+ } else {
+ retval += "Was expecting one of:" + eol + " ";
}
-
- /**
- * The end of line string for this machine.
- */
- protected String eol = System.getProperty("line.separator", "\n");
-
- /**
- * Used to convert raw characters to their escaped version when these raw version cannot be used as part
- * of an ASCII string literal.
- */
- static String add_escapes(String str) {
- StringBuffer retval = new StringBuffer();
- char ch;
- for (int i = 0; i < str.length(); i++) {
- switch (str.charAt(i)) {
- case 0:
- continue;
- case '\b':
- retval.append("\\b");
- continue;
- case '\t':
- retval.append("\\t");
- continue;
- case '\n':
- retval.append("\\n");
- continue;
- case '\f':
- retval.append("\\f");
- continue;
- case '\r':
- retval.append("\\r");
- continue;
- case '\"':
- retval.append("\\\"");
- continue;
- case '\'':
- retval.append("\\\'");
- continue;
- case '\\':
- retval.append("\\\\");
- continue;
- default:
- if ((ch = str.charAt(i)) < 0x20 || ch > 0x7e) {
- String s = "0000" + Integer.toString(ch, 16);
- retval.append("\\u" + s.substring(s.length() - 4, s.length()));
- } else {
- retval.append(ch);
- }
- continue;
- }
+ retval += expected.toString();
+ return retval;
+ }
+
+ /**
+ * The end of line string for this machine.
+ */
+ protected String eol = System.getProperty("line.separator", "\n");
+
+ /**
+ * Used to convert raw characters to their escaped version
+ * when these raw version cannot be used as part of an ASCII
+ * string literal.
+ */
+ static String add_escapes(String str) {
+ StringBuffer retval = new StringBuffer();
+ char ch;
+ for (int i = 0; i < str.length(); i++) {
+ switch (str.charAt(i))
+ {
+ case 0 :
+ continue;
+ case '\b':
+ retval.append("\\b");
+ continue;
+ case '\t':
+ retval.append("\\t");
+ continue;
+ case '\n':
+ retval.append("\\n");
+ continue;
+ case '\f':
+ retval.append("\\f");
+ continue;
+ case '\r':
+ retval.append("\\r");
+ continue;
+ case '\"':
+ retval.append("\\\"");
+ continue;
+ case '\'':
+ retval.append("\\\'");
+ continue;
+ case '\\':
+ retval.append("\\\\");
+ continue;
+ default:
+ if ((ch = str.charAt(i)) < 0x20 || ch > 0x7e) {
+ String s = "0000" + Integer.toString(ch, 16);
+ retval.append("\\u" + s.substring(s.length() - 4, s.length()));
+ } else {
+ retval.append(ch);
+ }
+ continue;
}
- return retval.toString();
- }
+ }
+ return retval.toString();
+ }
}
/* JavaCC - OriginalChecksum=6917a930637533b189885678ddc74852 (do not edit this line) */
Modified: stanbol/trunk/rules/manager/src/main/java/org/apache/stanbol/rules/manager/parse/RuleGrammar.jj
URL: http://svn.apache.org/viewvc/stanbol/trunk/rules/manager/src/main/java/org/apache/stanbol/rules/manager/parse/RuleGrammar.jj?rev=1465023&r1=1465022&r2=1465023&view=diff
==============================================================================
--- stanbol/trunk/rules/manager/src/main/java/org/apache/stanbol/rules/manager/parse/RuleGrammar.jj (original)
+++ stanbol/trunk/rules/manager/src/main/java/org/apache/stanbol/rules/manager/parse/RuleGrammar.jj Fri Apr 5 16:09:09 2013
@@ -245,7 +245,7 @@ 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","-", "_", ".", "#", ":", "/", "(", ")" ])+ ">" >
+| < URI : "<" ([ "0"-"9","a"-"z","A"-"Z","-", "_", ".", "#", ":", "/", "(", ")", "$", "%" ])+ ">" >
| < STRING : "\"" ([ "0"-"9","a"-"z","A"-"Z","-", "_", ".", ":", "/", "#", "\\", "?", " ", "!", "$", "%" ])+ "\"" >
| < BNODE : "_:" ([ "0"-"9","a"-"z","A"-"Z","-", "_", "."])+ >
}
@@ -481,7 +481,6 @@ SubstringAtom substringAtom() :
ExpressionAtom expressionAtom() :
{ExpressionAtom expressionAtom;}
{
- LOOKAHEAD(2)
expressionAtom = stringFunctionAtom()
| expressionAtom = numericFunctionAtom()