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    }