Inkling: How to make queries

Downloads

BNF

javadoc

readme

Documents

Demos

Installation

How to make queries

Known Bugs

Squish-dev archives

How to...:

In-memory queries

Inkling uses the JDBC API. So to make a query do this (from AskTheWebTest.java):


/** specify the query */

public String query =
"SELECT ?x, ?l, ?c " + 
"FROM     file:rdf/Job.rdf " +
"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 = null;

        try {

/** download the urls */

            RDFModelCore rdfdata = DownloadUrls.getUrlsFromQuery(query);
            if (rdfdata != null && !((RDFGraph) rdfdata).isEmpty()) {
                Driver inklingDriver = null;
                java.sql.Connection conn = null;
                try {
                    inklingDriver = new MemModelCoreDriver();
                    conn = ((InMemoryDriver) inklingDriver).connect(    
                            rdfdata);
                } catch (Exception e) {
                    System.out.println("Inkling: JDBC-RDF error: " + e);
                    e.printStackTrace();
                }

/* make the query */

                java.sql.Statement statement = conn.createStatement();
                results = statement.executeQuery(query);
                statement.close();
                conn.close();
                java.sql.DriverManager.deregisterDriver(inklingDriver); 
            }//end if

/* loop through the result */

            while (results.next()) {
                
                count++;
                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");
            
                
            }//end while  
       }       
        catch (Exception e) {
            System.err.println("Inkling: RDF query exception: " + e);
            e.printStackTrace();
        }
               

SQL queries

Inkling uses the JDBC API. So to make a query do this (from AskTheWebTest.java):

/** specify the query */

public String query =
"SELECT ?x, ?l, ?c " + 
"FROM     file:rdf/Job.rdf " +
"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#";

/* specify the SQL datbase url *?

String databaseUrl =
 "rdf:jdbc:postgresql://localhost:5432/test?auth=password&user=postgres&password=notneeded";

Vector urls = DownloadUrls.getAndReturnUrlsFromQuery(query);

/* insert into the database */

Enumeration er = urls.elements();

        while (er.hasMoreElements()) {
            String url = (String) er.nextElement();
            Scutter scut = new Scutter();
            scut.insertData(url, databaseUrl);
        }
         
java.sql.ResultSet results1 = null;

        try {

            Driver inklingDriver = null;
            java.sql.Connection conn = null;
            try {

                inklingDriver = new ModelCoreDriver();
                conn = java.sql.DriverManager.getConnection(databaseUrl);

            } catch (Exception e) {   
                System.out.println("Inkling: JDBC-RDF error: " + e);
            }

/* make the query */

            java.sql.Statement statement = conn.createStatement();
            results1 = statement.executeQuery(query);
            statement.close();
            conn.close();
            java.sql.DriverManager.deregisterDriver(inklingDriver);
            
            SquishParser pq = SquishParser.parse(query);

/* loop through the results */

            while (results1.next()) {
                        
                count++;
                Enumeration fields = pq.variables.elements();
                while (fields.hasMoreElements()) {   
                    String varname = (String) fields.nextElement();
                    String value = (String) results1.getString(varname);
                    System.out.println("  " + varname + " = " + value);
                }
                System.out.println("\n");


            }//end while  
        }               
        catch (Exception e) {
            System.err.println("Inkling: RDF query exception (SQL): " + e);
            e.printStackTrace();
        }

RDF hacking