TEST CODE
package javafintest;
import com.hp.hpl.jena.query.Query;
import com.hp.hpl.jena.query.QueryExecution;
import com.hp.hpl.jena.query.QueryExecutionFactory;
import com.hp.hpl.jena.query.QueryFactory;
import com.hp.hpl.jena.rdf.model.Model;
import com.hp.hpl.jena.rdf.model.ModelFactory;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.apache.jena.riot.RDFDataMgr;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
/**
* @author don
*/
public class JavaFinTest {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
DoCk ck = new DoCk();
ck.CkIllegal();
class DoCk{
public void CkIllegal(){
//Input rdf
String rdfname = "BadUTF";
//String fullPath = "c:\\tmp\\Files\\transformed\\2013\\QTR1\\1800_2013-02-15.rdf";
String fullPath = "/tmp/Files/transformed/2013/QTR1/1800_2013-02-15.rdf";
//String fullPath = "/tmp/Files/transformed/2014/QTR4/test.rdf";
//File file = new File("c:\\tmp\\Files\\transformed\\2013\\QTR1\\1800_2013-02-15.rdf");
File file = new File("c:\\tmp\\Files\\transformed\\2013\\QTR2\\2488_2013-05-06.rdf");
//String xmlFilePath = "c:\\tmp\\Files\\transformed\\2013\\QTR"+qtr+"\\"+rdfname+".rdf";
//File file = new File(xmlFilePath);
try {
InputStream in = new FileInputStream(file);
File qfile = new File("/tmp/Files/instances/queries/CoCik.rq");
FileReader reader = new FileReader(qfile);
char[] chars = new char[(int) qfile.length()];
reader.read(chars);
String content = new String(chars);
reader.close();
// Check for illegal characters
FileReader reader2 = new FileReader(fullPath);
Reader buffer = new BufferedReader(reader2);
handleCharacters(buffer);
//Test for Jena Model
Model model = RDFDataMgr.loadModel(fullPath) ;
Model financialModel = ModelFactory.createDefaultModel();
financialModel.read(fullPath);
// Test Query Factory
//Query query = QueryFactory.read("file:/tmp/Files/instances/queries/CoCik.rq");
//Query query2 = QueryFactory.create(content);
String queryString = "PREFIX m_terms: <http://www.mansurus.com/terms/> \" "
+ "PREFIX us-gaap: <http://xbrl.us/us-gaap/2008-03-31/> \" "
+ "PREFIX xbrldi: <http://xbrl.org/2006/xbrldi/> \" "
+ "SELECT ?periodEndDate \" "
+ "Where { $y m_terms:DocumentPeriodEndDate ?periodEndDate . }";
reader2 = new FileReader(fullPath);
buffer = new BufferedReader(reader2);
handleCharacters(buffer);
QueryExecution qe = QueryExecutionFactory.create(queryString, financialModel);
} catch (Exception e) {
e.printStackTrace();
public void handleCharacters(Reader reader) throws IOException {
int r;
int line= 0;
while ((r = reader.read()) != -1) {
char current = (char) r;
if(current == 0xA)
line++;
if ((current <= 0x1F || current >= 0x7F) & (current != 0xD) & current != 0xA & current != 0x9 ){
System.out.println("possible illegal character: " + Integer.toHexString(current)+" at line number: "+line);
Simple RDF XML Example
<?xml version="1.0" encoding="utf-8"?>
<rdf:RDF xmlns:contact="http://www.w3.org/2000/10/swap/pim/contact#" xmlns:eric="http://www.w3.org/People/EM/contact#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="http://www.w3.org/People/EM/contact#me">
<contact:fullName>Eric Miller</contact:fullName>
</rdf:Description>
<rdf:Description rdf:about="http://www.w3.org/People/EM/contact#me">
<contact:mailbox rdf:resource="mailto:e.miller123(at)example"/>
</rdf:Description>
<rdf:Description rdf:about="http://www.w3.org/People/EM/contact#me">
<contact:personalTitle>Dr.</contact:personalTitle>
</rdf:Description>
<rdf:Description rdf:about="http://www.w3.org/People/EM/contact#me">
<rdf:type rdf:resource="http://www.w3.org/2000/10/swap/pim/contact#Person"/>
</rdf:Description>
</rdf:RDF>
SIMPLE TURTLE EXAMPLE
@PREFIX eric: <http://www.w3.org/People/EM/contact#> .
@PREFIX contact: <http://www.w3.org/2000/10/swap/pim/contact#> .
@PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
eric:me contact:fullName "Eric Miller" .
eric:me contact:mailbox <mailto:e.miller123(at)example> .
eric:me contact:personalTitle "Dr." .
eric:me rdf:type contact:Person .
Exception in thread "main" java.lang.NoSuchFieldError: actualValueType
at com.hp.hpl.jena.datatypes.xsd.XSDDatatype.convertValidatedDataValue(XSDDatatype.java:396)
at com.hp.hpl.jena.datatypes.xsd.XSDDatatype.parse(XSDDatatype.java:270)
at com.hp.hpl.jena.graph.impl.LiteralLabelImpl.setValue(LiteralLabelImpl.java:213)
at com.hp.hpl.jena.graph.impl.LiteralLabelImpl.setLiteralLabel_1(LiteralLabelImpl.java:107)
at com.hp.hpl.jena.graph.impl.LiteralLabelImpl.<init>(LiteralLabelImpl.java:96)
at com.hp.hpl.jena.graph.impl.LiteralLabelFactory.createLiteralLabel(LiteralLabelFactory.java:28)
at com.hp.hpl.jena.graph.NodeFactory.createLiteral(NodeFactory.java:81)
at com.hp.hpl.jena.sparql.graph.NodeConst.<clinit>(NodeConst.java:29)
at com.hp.hpl.jena.sparql.lang.ParserBase.<init>(ParserBase.java:56)
at com.hp.hpl.jena.sparql.lang.SPARQLParserBase.<init>(SPARQLParserBase.java:48)
at com.hp.hpl.jena.sparql.lang.sparql_11.SPARQLParser11Base.<init>(SPARQLParser11Base.java:22)
at com.hp.hpl.jena.sparql.lang.sparql_11.SPARQLParser11.<init>(SPARQLParser11.java:5006)
at com.hp.hpl.jena.sparql.lang.ParserSPARQL11.perform(ParserSPARQL11.java:93)
at com.hp.hpl.jena.sparql.lang.ParserSPARQL11.parse$(ParserSPARQL11.java:53)
at com.hp.hpl.jena.sparql.lang.SPARQLParser.parse(SPARQLParser.java:37)
at com.hp.hpl.jena.query.QueryFactory.parse(QueryFactory.java:156)
at com.hp.hpl.jena.query.QueryFactory.create(QueryFactory.java:79)
at com.hp.hpl.jena.query.QueryFactory.create(QueryFactory.java:52)
at com.hp.hpl.jena.query.QueryFactory.create(QueryFactory.java:40)
at com.hp.hpl.jena.query.QueryExecutionFactory.makeQuery(QueryExecutionFactory.java:480)
at com.hp.hpl.jena.query.QueryExecutionFactory.create(QueryExecutionFactory.java:191)
at javafintest.DoCk.CkIllegal(JavaFinTest.java:104)
at javafintest.JavaFinTest.main(JavaFinTest.java:59)
Java Result: 1
package javafintest;
import com.hp.hpl.jena.query.Query;
import com.hp.hpl.jena.query.QueryExecution;
import com.hp.hpl.jena.query.QueryExecutionFactory;
import com.hp.hpl.jena.query.QueryFactory;
import com.hp.hpl.jena.rdf.model.Model;
import com.hp.hpl.jena.rdf.model.ModelFactory;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.apache.jena.riot.RDFDataMgr;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
/**
* @author don
*/
public class JavaFinTest {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
DoCk ck = new DoCk();
ck.CkIllegal();
class DoCk{
public void CkIllegal(){
//Input rdf
String rdfname = "BadUTF";
//String fullPath = "c:\\tmp\\Files\\transformed\\2013\\QTR1\\1800_2013-02-15.rdf";
String fullPath = "/tmp/Files/transformed/2013/QTR1/1800_2013-02-15.rdf";
//String fullPath = "/tmp/Files/transformed/2014/QTR4/test.rdf";
//File file = new File("c:\\tmp\\Files\\transformed\\2013\\QTR1\\1800_2013-02-15.rdf");
File file = new File("c:\\tmp\\Files\\transformed\\2013\\QTR2\\2488_2013-05-06.rdf");
//String xmlFilePath = "c:\\tmp\\Files\\transformed\\2013\\QTR"+qtr+"\\"+rdfname+".rdf";
//File file = new File(xmlFilePath);
try {
InputStream in = new FileInputStream(file);
File qfile = new File("/tmp/Files/instances/queries/CoCik.rq");
FileReader reader = new FileReader(qfile);
char[] chars = new char[(int) qfile.length()];
reader.read(chars);
String content = new String(chars);
reader.close();
// Check for illegal characters
FileReader reader2 = new FileReader(fullPath);
Reader buffer = new BufferedReader(reader2);
handleCharacters(buffer);
//Test for Jena Model
Model model = RDFDataMgr.loadModel(fullPath) ;
Model financialModel = ModelFactory.createDefaultModel();
financialModel.read(fullPath);
// Test Query Factory
//Query query = QueryFactory.read("file:/tmp/Files/instances/queries/CoCik.rq");
//Query query2 = QueryFactory.create(content);
String queryString = "PREFIX m_terms: <http://www.mansurus.com/terms/> \" "
+ "PREFIX us-gaap: <http://xbrl.us/us-gaap/2008-03-31/> \" "
+ "PREFIX xbrldi: <http://xbrl.org/2006/xbrldi/> \" "
+ "SELECT ?periodEndDate \" "
+ "Where { $y m_terms:DocumentPeriodEndDate ?periodEndDate . }";
reader2 = new FileReader(fullPath);
buffer = new BufferedReader(reader2);
handleCharacters(buffer);
QueryExecution qe = QueryExecutionFactory.create(queryString, financialModel);
} catch (Exception e) {
e.printStackTrace();
public void handleCharacters(Reader reader) throws IOException {
int r;
int line= 0;
while ((r = reader.read()) != -1) {
char current = (char) r;
if(current == 0xA)
line++;
if ((current <= 0x1F || current >= 0x7F) & (current != 0xD) & current != 0xA & current != 0x9 ){
System.out.println("possible illegal character: " + Integer.toHexString(current)+" at line number: "+line);
Simple RDF XML Example
<?xml version="1.0" encoding="utf-8"?>
<rdf:RDF xmlns:contact="http://www.w3.org/2000/10/swap/pim/contact#" xmlns:eric="http://www.w3.org/People/EM/contact#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="http://www.w3.org/People/EM/contact#me">
<contact:fullName>Eric Miller</contact:fullName>
</rdf:Description>
<rdf:Description rdf:about="http://www.w3.org/People/EM/contact#me">
<contact:mailbox rdf:resource="mailto:e.miller123(at)example"/>
</rdf:Description>
<rdf:Description rdf:about="http://www.w3.org/People/EM/contact#me">
<contact:personalTitle>Dr.</contact:personalTitle>
</rdf:Description>
<rdf:Description rdf:about="http://www.w3.org/People/EM/contact#me">
<rdf:type rdf:resource="http://www.w3.org/2000/10/swap/pim/contact#Person"/>
</rdf:Description>
</rdf:RDF>
SIMPLE TURTLE EXAMPLE
@PREFIX eric: <http://www.w3.org/People/EM/contact#> .
@PREFIX contact: <http://www.w3.org/2000/10/swap/pim/contact#> .
@PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
eric:me contact:fullName "Eric Miller" .
eric:me contact:mailbox <mailto:e.miller123(at)example> .
eric:me contact:personalTitle "Dr." .
eric:me rdf:type contact:Person .
Exception in thread "main" java.lang.NoSuchFieldError: actualValueType
at com.hp.hpl.jena.datatypes.xsd.XSDDatatype.convertValidatedDataValue(XSDDatatype.java:396)
at com.hp.hpl.jena.datatypes.xsd.XSDDatatype.parse(XSDDatatype.java:270)
at com.hp.hpl.jena.graph.impl.LiteralLabelImpl.setValue(LiteralLabelImpl.java:213)
at com.hp.hpl.jena.graph.impl.LiteralLabelImpl.setLiteralLabel_1(LiteralLabelImpl.java:107)
at com.hp.hpl.jena.graph.impl.LiteralLabelImpl.<init>(LiteralLabelImpl.java:96)
at com.hp.hpl.jena.graph.impl.LiteralLabelFactory.createLiteralLabel(LiteralLabelFactory.java:28)
at com.hp.hpl.jena.graph.NodeFactory.createLiteral(NodeFactory.java:81)
at com.hp.hpl.jena.sparql.graph.NodeConst.<clinit>(NodeConst.java:29)
at com.hp.hpl.jena.sparql.lang.ParserBase.<init>(ParserBase.java:56)
at com.hp.hpl.jena.sparql.lang.SPARQLParserBase.<init>(SPARQLParserBase.java:48)
at com.hp.hpl.jena.sparql.lang.sparql_11.SPARQLParser11Base.<init>(SPARQLParser11Base.java:22)
at com.hp.hpl.jena.sparql.lang.sparql_11.SPARQLParser11.<init>(SPARQLParser11.java:5006)
at com.hp.hpl.jena.sparql.lang.ParserSPARQL11.perform(ParserSPARQL11.java:93)
at com.hp.hpl.jena.sparql.lang.ParserSPARQL11.parse$(ParserSPARQL11.java:53)
at com.hp.hpl.jena.sparql.lang.SPARQLParser.parse(SPARQLParser.java:37)
at com.hp.hpl.jena.query.QueryFactory.parse(QueryFactory.java:156)
at com.hp.hpl.jena.query.QueryFactory.create(QueryFactory.java:79)
at com.hp.hpl.jena.query.QueryFactory.create(QueryFactory.java:52)
at com.hp.hpl.jena.query.QueryFactory.create(QueryFactory.java:40)
at com.hp.hpl.jena.query.QueryExecutionFactory.makeQuery(QueryExecutionFactory.java:480)
at com.hp.hpl.jena.query.QueryExecutionFactory.create(QueryExecutionFactory.java:191)
at javafintest.DoCk.CkIllegal(JavaFinTest.java:104)
at javafintest.JavaFinTest.main(JavaFinTest.java:59)
Java Result: 1