001 /*
002 * (c) 2009
003 * Damian Steer <mailto:pldms@mac.com>
004 */
005
006 package net.rootdev.javardfa;
007
008 import com.hp.hpl.jena.query.Query;
009 import com.hp.hpl.jena.query.QueryExecution;
010 import com.hp.hpl.jena.query.QueryExecutionFactory;
011 import com.hp.hpl.jena.query.QueryFactory;
012 import com.hp.hpl.jena.rdf.model.Model;
013 import com.hp.hpl.jena.rdf.model.ModelFactory;
014 import com.hp.hpl.jena.util.FileManager;
015 import java.io.IOException;
016 import java.io.InputStream;
017 import javax.xml.stream.XMLInputFactory;
018 import org.xml.sax.InputSource;
019 import org.xml.sax.SAXException;
020 import org.xml.sax.XMLReader;
021 import org.xml.sax.helpers.XMLReaderFactory;
022
023 /**
024 *
025 * @author pldms
026 */
027 public class Scratch {
028
029 private static XMLInputFactory xmlFactory = XMLInputFactory.newInstance();
030
031 public static void main(String[] args) throws SAXException, IOException, ClassNotFoundException {
032 /*xmlFactory.setProperty(XMLInputFactory.SUPPORT_DTD, false);
033 String base = "http://www.w3.org/2006/07/SWD/RDFa/testsuite/xhtml1-testcases/";
034 String testHTML = base + "0101.xhtml";
035 String testSPARQL = base + "0101.sparql";
036
037 check(testHTML, testSPARQL);*/
038
039 Class.forName(RDFaReader.class.getName());
040 Model model = ModelFactory.createDefaultModel();
041 model.read("http://www.ivan-herman.net/foaf.html", "HTML");
042 System.err.println("== Read ==");
043 model.write(System.err, "TTL");
044 }
045
046 private static void check(String testHTML, String testSPARQL) throws SAXException, IOException {
047 Model model = ModelFactory.createDefaultModel();
048 StatementSink sink = new JenaStatementSink(model);
049 InputStream in = FileManager.get().open(testHTML);
050 Parser parser = new Parser(sink);
051 parser.setBase(testHTML);
052 XMLReader reader = XMLReaderFactory.createXMLReader();
053 reader.setContentHandler(parser);
054 reader.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);
055 reader.parse(new InputSource(in));
056 Query theQuery = QueryFactory.read(testSPARQL);
057 QueryExecution qe = QueryExecutionFactory.create(theQuery, model);
058 if (qe.execAsk()) {
059 System.err.println("It worked! " + testHTML);
060 return;
061 }
062
063 System.err.println("Failed: ");
064 model.write(System.err, "TTL");
065 System.err.println(theQuery);
066 }
067
068 }