- From: Dan Brickley <danbri@w3.org>
- Date: Mon, 3 Sep 2001 13:27:18 -0400 (EDT)
- To: <www-archive@w3.org>
- cc: <libby.miller@bristol.ac.uk>
I just made this, to better understand how Inkling uses the JDBC APIs to hide RDFisms behind a familiar looking interface. Looks similar to my SOAP version. It has been a while since I used JDBC, so I'm not sure how close this usage is to classic JDBC apps. Dan ---------- Forwarded message ---------- package DanTest; import org.desire.rudolf.rdf.*; import org.desire.rudolf.query.*; import org.desire.rudolf.query.modelcore.*; import java.sql.*; import java.util.*; import java.lang.*; /** A class that uses the Inkling RDF query APIs (and hence JDBC) to download and query RDF. See also: http://swordfish.rdfweb.org/rdfquery/ ...and Libby, Edd, Leigh and Andy's investigations into re-factoring Inkling. TODO: - figure out how these interfaces relate to my SOAP experiments - rationalise package naming - datatypes, nameless nodes etc. - getting RDF view of resultset @@author Dan Brickley <danbri@w3.org> */ public class AskWeb { public static void main (String[] args) { String query = "SELECT ?x, ?l, ?c " + "FROM http://xmlns.com/wordnet/1.6/Job "+ "WHERE "+ " (web::type ?x rdfs::Class) "+ " (rdfs::label ?x ?l) "+ " (rdfs::description ?x ?c) "+ "USING web FOR http://www.w3.org/1999/02/22-rdf-syntax-ns# "+ "rdfs FOR http://www.w3.org/2000/01/rdf-schema#"; java.sql.ResultSet results; try { RDFModelCore rdfdata = DownloadUrls.getUrlsFromQuery(query); if(rdfdata != null && !((RDFGraph)rdfdata).isEmpty()) { Driver inklingDriver = null; java.sql.Connection conn = null; try { inklingDriver = new MemModelCoreDriver(); conn = ((MemDriverInterface)inklingDriver).connect(rdfdata); } catch(Exception e){ System.out.println("Inkling: JDBC-RDF error: "+e ); e.printStackTrace(); } java.sql.Statement statement = conn.createStatement(); results = statement.executeQuery( query ); statement.close(); conn.close(); java.sql.DriverManager.deregisterDriver(inklingDriver); } ParsedQuery pq = ParsedQuery.parse(query); while (results.next()) { Enumeration fields = pq.variables.elements(); while(fields.hasMoreElements()){ String varname = (String)fields.nextElement(); String value = (String)results.getString(varname); System.out.println (" "+ varname + " = " + value); } System.out.println("\n"); } } catch (Exception e) { System.err.println("Inkling: RDF query exception: "+ e ); e.printStackTrace(); } } } /* Installation notes Saved and compiled as DanTest/AskWeb.java this should run with the following CLASSPATH: LIB=`pwd`/lib export CLASSPATH=$CLASSPATH:$LIB/rdfquery.jar:$LIB/modelcore.jar:$LIB/rdf-api-2001-01-19.jar export CLASSPATH=$CLASSPATH:$LIB/sirpac-1.14.jar */
Received on Monday, 3 September 2001 13:27:20 UTC