package com.bigdata.perf.chem2bio2rdf; import java.io.FileReader; import java.io.Reader; import java.util.Properties; import org.openrdf.query.GraphQueryResult; import org.openrdf.query.QueryLanguage; import org.openrdf.query.TupleQuery; import org.openrdf.query.TupleQueryResult; import com.bigdata.journal.Journal; import com.bigdata.rdf.sail.BigdataSail; import com.bigdata.rdf.sail.BigdataSailRepository; import com.bigdata.rdf.sail.BigdataSailRepositoryConnection; import com.bigdata.rdf.sail.webapp.client.IPreparedGraphQuery; public class TestQuery2 { private static String query = "PREFIX c2b2r_chembl: <http://chem2bio2rdf.org/chembl/resource/> " + "PREFIX drugbank: <http://www4.wiwiss.fu-berlin.de/drugbank/resource/drugbank/> " + "SELECT ?alogp ?hha ?hhd ?molformula ?molweight ?mw_freebase ?num_ro5_violations ?psa ?rtb " + "?affectedOrganism ?biotransformation ?description ?indication ?meltingPoint ?proteinBinding ?toxicity " + "WHERE { " + "GRAPH <file:///home/OPS/develop/openphacts/datasets/chem2bio2rdf/chembl.nt> { " + "OPTIONAL { <http://chem2bio2rdf.org/chembl/resource/chembl_compounds/276734> c2b2r_chembl:alogp ?alogp } " + "OPTIONAL { <http://chem2bio2rdf.org/chembl/resource/chembl_compounds/276734> c2b2r_chembl:hha ?hha } " + "OPTIONAL { <http://chem2bio2rdf.org/chembl/resource/chembl_compounds/276734> c2b2r_chembl:hhd ?hhd } " + "OPTIONAL { <http://chem2bio2rdf.org/chembl/resource/chembl_compounds/276734> c2b2r_chembl:molformula ?molformula } " + "OPTIONAL { <http://chem2bio2rdf.org/chembl/resource/chembl_compounds/276734> c2b2r_chembl:molweight ?molweight } " + "OPTIONAL { <http://chem2bio2rdf.org/chembl/resource/chembl_compounds/276734> c2b2r_chembl:mw_freebase ?mw_freebase } " + "OPTIONAL { <http://chem2bio2rdf.org/chembl/resource/chembl_compounds/276734> c2b2r_chembl:num_ro5_violations ?num_ro5_violations } " + "OPTIONAL { <http://chem2bio2rdf.org/chembl/resource/chembl_compounds/276734> c2b2r_chembl:psa ?psa } " + "OPTIONAL { <http://chem2bio2rdf.org/chembl/resource/chembl_compounds/276734> c2b2r_chembl:rtb ?rtb } " + "} " + "GRAPH <http://linkedlifedata.com/resource/drugbank> { " + "OPTIONAL {<http://www4.wiwiss.fu-berlin.de/drugbank/resource/drugs/DB00398> drugbank:affectedOrganism ?affectedOrganism } " + "OPTIONAL {<http://www4.wiwiss.fu-berlin.de/drugbank/resource/drugs/DB00398> drugbank:biotransformation ?biotransformation } " + "OPTIONAL {<http://www4.wiwiss.fu-berlin.de/drugbank/resource/drugs/DB00398> drugbank:description ?description } " + "} " + "OPTIONAL {<http://www4.wiwiss.fu-berlin.de/drugbank/resource/drugs/DB00398> drugbank:indication ?indication } " + "OPTIONAL {<http://www4.wiwiss.fu-berlin.de/drugbank/resource/drugs/DB00398> drugbank:proteinBinding ?proteinBinding } " + "OPTIONAL {<http://www4.wiwiss.fu-berlin.de/drugbank/resource/drugs/DB00398> drugbank:toxicity ?toxicity } " + "OPTIONAL {<http://www4.wiwiss.fu-berlin.de/drugbank/resource/drugs/DB00398> drugbank:meltingPoint ?meltingPoint} " + "}"; private static String query2 = "PREFIX c2b2r_chembl: <http://chem2bio2rdf.org/chembl/resource/> " + "PREFIX drugbank: <http://www4.wiwiss.fu-berlin.de/drugbank/resource/drugbank/> " + "describe <http://chem2bio2rdf.org/chembl/resource/chembl_compounds/276734> <http://www4.wiwiss.fu-berlin.de/drugbank/resource/drugs/DB00398> "; /** * @param args */ public static void main(String[] args) throws Exception { final String journalProps = "/Users/mikepersonick/Documents/workspace/bigdata-release-1.2/bigdata-perf/chem2bio2rdf/RWStore.properties"; final String journal = "/Users/mikepersonick/Documents/nobackup/chem2bio2rdf/bigdata.RW.journal"; final Reader reader = new FileReader(journalProps); final Properties props = new Properties(); props.load(reader); reader.close(); props.setProperty(Journal.Options.FILE, journal); final BigdataSail sail = new BigdataSail(props); final BigdataSailRepository repo = new BigdataSailRepository(sail); repo.initialize(); BigdataSailRepositoryConnection cxn = null; try { cxn = repo.getReadOnlyConnection(); System.err.println(sail.getDatabase().predicateUsage().toString()); long total = 0; for (int i = 0; i < 10; i++) { final long start = System.currentTimeMillis(); final TupleQuery tq = cxn.prepareTupleQuery(QueryLanguage.SPARQL, query); final TupleQueryResult result = tq.evaluate(); int j = 0; while (result.hasNext()) { j++; result.next(); } result.close(); final long duration = System.currentTimeMillis() - start; total += duration; System.err.println("run " + i + ", " + duration + " millis, " + j + " results"); } final long average = total / 10; System.err.println("average time: " + average + " millis"); } catch (Exception ex) { ex.printStackTrace(); } finally { if (cxn != null) cxn.close(); repo.shutDown(); } System.exit(0); } }