From c0f5bdcdb29608532656c71c219680eccd4aad09 Mon Sep 17 00:00:00 2001 From: yzhou Date: Tue, 21 Apr 2015 22:45:35 +0100 Subject: fixed some bugs in windows server --- test/uk/ac/ox/cs/jrdfox/Tester.java | 121 +++++++++++++++++++++++++++++++----- 1 file changed, 107 insertions(+), 14 deletions(-) (limited to 'test/uk/ac/ox/cs/jrdfox/Tester.java') diff --git a/test/uk/ac/ox/cs/jrdfox/Tester.java b/test/uk/ac/ox/cs/jrdfox/Tester.java index 00476d6..94f5401 100644 --- a/test/uk/ac/ox/cs/jrdfox/Tester.java +++ b/test/uk/ac/ox/cs/jrdfox/Tester.java @@ -2,44 +2,137 @@ package uk.ac.ox.cs.jrdfox; import java.io.File; +import org.semanticweb.owlapi.model.OWLOntology; + import uk.ac.ox.cs.JRDFox.JRDFStoreException; import uk.ac.ox.cs.JRDFox.Prefixes; import uk.ac.ox.cs.JRDFox.store.DataStore; +import uk.ac.ox.cs.JRDFox.store.DataStore.UpdateType; import uk.ac.ox.cs.JRDFox.store.Parameters; +import uk.ac.ox.cs.JRDFox.store.TripleStatus; import uk.ac.ox.cs.JRDFox.store.TupleIterator; +import uk.ac.ox.cs.JRDFox.store.DataStore.StoreType; +import uk.ac.ox.cs.pagoda.owl.OWLHelper; +import uk.ac.ox.cs.pagoda.reasoner.light.RDFoxQueryEngine; +import uk.ac.ox.cs.pagoda.util.Namespace; import uk.ac.ox.cs.pagoda.util.Timer; public class Tester { - public static void main(String[] args) { + public static void main(String[] args) throws JRDFStoreException { + Tester tester = new Tester(); + tester.testCrash(); + } + + private void evaluate_againstIDs(String queryText) throws JRDFStoreException { + int number = 0; + Timer t = new Timer(); + TupleIterator iter = null; try { - (new Tester()).test();; - } catch (JRDFStoreException e) { - // TODO Auto-generated catch block - e.printStackTrace(); + iter = store.compileQuery(queryText, prefixes, parameters, TripleStatus.TUPLE_STATUS_IDB.union(TripleStatus.TUPLE_STATUS_EDB), TripleStatus.TUPLE_STATUS_IDB); + for (long multi = iter.open(); multi != 0; multi = iter.getNext()) + ++number; + } finally { + if (iter != null) iter.dispose(); } + System.out.println(number); + System.out.println(t.duration()); + } - + DataStore store; Prefixes prefixes = new Prefixes(); Parameters parameters; public Tester() { try { - store = new DataStore(new File("lazy-upper-bound")); + store = new DataStore(StoreType.NarrowParallelHead); + store.setNumberOfThreads(RDFoxQueryEngine.matNoOfThreads); + store.initialize(); + System.out.println("data store created."); } catch (JRDFStoreException e) { e.printStackTrace(); } - parameters = new Parameters(); + parameters = new Parameters(); parameters.m_allAnswersInRoot = true; - parameters.m_useBushy = true; - + parameters.m_useBushy = true; + } + + public Tester(String path) { + try { + store = new DataStore(new File(path)); + } catch (JRDFStoreException e) { + e.printStackTrace(); + } + parameters = new Parameters(); +// parameters.m_allAnswersInRoot = true; +// parameters.m_useBushy = true; + } + + public void applyReasoning(boolean incremental) { + Timer t = new Timer(); + try { + store.applyReasoning(incremental); + } catch (JRDFStoreException e) { + e.printStackTrace(); + } + System.out.println("reasoning done: " + t.duration()); } public void dispose() { store.dispose(); } + public void testCrash() throws JRDFStoreException { +// DataStore lowerStore = new DataStore(StoreType.NarrowParallelHead); +// lowerStore.setNumberOfThreads(RDFoxQueryEngine.matNoOfThreads); +// lowerStore.initialize(); +// System.out.println("lower data store created."); + OWLOntology ontology = OWLHelper.loadOntology("data/fly/fly_anatomy_XP_with_GJ_FC_individuals.owl"); + System.out.println("ontology loaded ... " + ontology.getAxiomCount()); + + store.importTurtleFile(new File("testcase/fly.ttl")); + System.out.println("data loaded. " + store.getTriplesCount()); + + store.importRules(new File[] {new File("testcase/lower.dlog")}); + System.out.println("rules loaded. " + store.getTriplesCount()); + + store.applyReasoning(); + System.out.println("materialised. " + store.getTriplesCount()); + + store.clearRulesAndMakeFactsExplicit(); + + store.importRules(new File[] {new File("testcase/multi.dlog")}); + System.out.println("rules loaded. " + store.getTriplesCount()); + + store.applyReasoning(); + System.out.println("materialised. " + store.getTriplesCount()); + + store.makeFactsExplicit(); + + store.importTurtleFiles(new File[] {new File("testcase/first.ttl")}, UpdateType.ScheduleForAddition); + System.out.println("first data loaded. " + store.getTriplesCount()); + + store.applyReasoning(true); + System.out.println("incremental reasoning done. " + store.getTriplesCount()); + + store.clearRulesAndMakeFactsExplicit(); + + store.importTurtleFiles(new File[] {new File("testcase/second.ttl")}, UpdateType.ScheduleForAddition); + store.importRules(new File[] {new File("testcase/tracking.dlog")}, UpdateType.ScheduleForAddition); + store.applyReasoning(true); + System.out.println("incremental reasoning done. " + store.getTriplesCount()); + + evaluate_againstIDs("select distinct ?z where { ?x <" + Namespace.RDF_TYPE + "> ?z . }"); + System.out.println("done."); +// tester.applyReasoning(true); +// tester.evaluate_againstIDs("select distinct ?z where { ?x <" + Namespace.RDF_TYPE + "> ?z . }"); +// System.out.println("done."); + + store.dispose(); +// lowerStore.dispose(); + } + public void test() throws JRDFStoreException { evaluate("PREFIX benchmark: " + "SELECT distinct ?x WHERE { " @@ -82,18 +175,18 @@ public class Tester { + "?z benchmark:isHeadOf . " + "?z benchmark:like ?y . " + "?y a }"); -} + } public void evaluate(String query) throws JRDFStoreException { - TupleIterator iter = store.compileQuery(query, prefixes, parameters); - int number = 0; Timer t = new Timer(); + TupleIterator iter = null; try { + iter = store.compileQuery(query, prefixes, parameters); for (long multi = iter.open(); multi != 0; multi = iter.getNext()) ++number; } finally { - iter.dispose(); + if (iter != null) iter.dispose(); } System.out.println(number); System.out.println(t.duration()); -- cgit v1.2.3