/** * Creates an RDF model of publications and vcards, then uses RDQL * to query the model. * * WARNING: The query classes are very sensitive to the format of the * query string. */ //Java IO classes. import java.io.PrintWriter; import java.io.Writer; import java.io.InputStreamReader; import java.io.FileInputStream; import java.io.FileReader; import java.io.InputStream; import java.io.IOException; import java.io.BufferedReader; import java.io.FileReader; import java.io.OutputStream; //Java utility classes import java.util.StringTokenizer; import java.util.Vector; import java.util.Iterator; //The Dublin Core import com.hp.hpl.mesa.rdf.jena.vocabulary.DC; //The VCARD class import com.hp.hpl.mesa.rdf.jena.vocabulary.VCARD; //Use the memory model implementation import com.hp.hpl.mesa.rdf.jena.mem.ModelMem; //Model package imports import com.hp.hpl.mesa.rdf.jena.model.Model; import com.hp.hpl.mesa.rdf.jena.model.Resource; import com.hp.hpl.mesa.rdf.jena.model.Literal; import com.hp.hpl.mesa.rdf.jena.model.Property; import com.hp.hpl.mesa.rdf.jena.model.Statement; import com.hp.hpl.mesa.rdf.jena.model.StmtIterator; import com.hp.hpl.mesa.rdf.jena.model.RDFNode; import com.hp.hpl.mesa.rdf.jena.model.RDFException; import com.hp.hpl.mesa.rdf.jena.model.ResIterator; //RDQL imports import com.hp.hpl.jena.rdf.query.Query; import com.hp.hpl.jena.rdf.query.QueryExecution; import com.hp.hpl.jena.rdf.query.QueryEngine; import com.hp.hpl.jena.rdf.query.QueryResults; import com.hp.hpl.jena.rdf.query.ResultBinding; public class DublinCoreEx7 { //Some URIs for people with VCARDS. String[] nameUris={"http://cgl.indiana.edu/people/GCF", "http://cgl.indiana.edu/people/MEP", "http://cgl.indiana.edu/people/DBC"}; //Some URIs for VCARDs. Model model=null; DublinCoreEx5 dc5; public DublinCoreEx7() throws Exception { model=new ModelMem(); new DublinCoreEx7(model); } public DublinCoreEx7(Model model) throws Exception { this.model=model; // model.read(new FileReader("people.rdf"),""); dc5=new DublinCoreEx5(model); dc5.init(); // dc5.printRDFXML(model,System.out); } //Process a query string public QueryResults processQuery(String queryString) throws RDFException{ Query query=new Query(queryString); query.setSource(model); QueryExecution qe=new QueryEngine(query); QueryResults results=qe.exec(); return results; } //Print the results of the query public void printQueryResults(QueryResults results) { for(Iterator iter=results;iter.hasNext();) { ResultBinding res=(ResultBinding)iter.next(); Resource r=(Resource)res.get("x"); Literal l=(Literal)res.get("fname"); System.out.println(r+" "+l); } //Must call close() to get any results. results.close(); } public static void main(String[] args) throws Exception{ Model model=new ModelMem(); DublinCoreEx7 dc7=new DublinCoreEx7(model); String queryString = "SELECT ?x, ?fname "+ "WHERE (?x, , ?fname)" ; dc7.printQueryResults(dc7.processQuery(queryString)); } }