/*
* Created on Dec 22, 2005
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
package org.mindswap.swoop.utils.ui.turtle2RDF;
import java.awt.Component;
import java.io.BufferedReader;
import java.io.StringReader;
import javax.swing.JOptionPane;
import javax.swing.text.JTextComponent;
import org.openrdf.rio.turtle.TurtleParser;
/**
* @author Dave Wang
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class Turtle2RDFConverter
{
public static String turtle2RDF( String turtleStr, String baseURI, Component c, JTextComponent t )
{
TurtleParser parser = new TurtleParser();
Turtle2RDFStatementHandler handler = new Turtle2RDFStatementHandler();
parser.setStatementHandler( handler );
parser.setParseErrorListener( new Turtle2RDFParseErrorListener( c, turtleStr, t ) );
//parser.setParseLocationListener(new Turtle2RDFParseLocationListener() );
try
{
handler.start();
parser.parse( new StringReader( turtleStr ), baseURI );
handler.end();
return handler.getRDF();
}
catch ( Exception e)
{
//showMessageDialog( c, e.getMessage(), "Turtle Parse Error", JOptionPane.ERROR_MESSAGE );
System.out.println("Error parsing Turtle code");
//e.printStackTrace();
return null;
}
}
public static void showMessageDialog( Component owner, String msg, String title, int type )
{ JOptionPane.showMessageDialog( owner, msg, title, type ); }
/* newEntityCode is the text from JEditorPane.getDocument().getText()
* htmlText is the text from JEditorPane.getText();
*
*/
public static String addLineInfo( String newEntityCode, String htmlText)
{
try
{
htmlText = htmlText.replaceAll( " ", " " );
htmlText = htmlText.replaceAll( "<head>", "" );
htmlText = htmlText.replaceAll( "</head>", "" );
htmlText = htmlText.replaceAll( "<html>", "" );
htmlText = htmlText.replaceAll( "</html>", "" );
htmlText = htmlText.replaceAll( "<body>", "" );
htmlText = htmlText.replaceAll( "</body>", "" );
htmlText = htmlText.replaceAll( "<font face=\"Verdana\" size=\"3\">", "" );
htmlText = htmlText.replaceAll( "</font>", "" );
htmlText = htmlText.replaceAll( "<", "<" );
htmlText = htmlText.replaceAll( ">", ">" );
htmlText = htmlText.replaceAll( """, "\"" );
htmlText = htmlText.replaceAll( "<br>", "\n" ).trim();
StringBuffer buffer = new StringBuffer( newEntityCode );
BufferedReader reader = new BufferedReader ( new StringReader( htmlText ) );
String line = "";
String text = "";
int ind = 0;
while ( (line = reader.readLine() ) != null )
{
if ( (line.indexOf("@prefix") != -1) || (line.indexOf("<") != -1 ) )
continue;
ind = buffer.indexOf( line, ind );
if (ind == -1)
break;
ind = ind + line.length();
buffer.insert( ind, "\n");
ind++;
}
newEntityCode = (buffer.toString()).replaceAll( " \\.", " .\n" );
return newEntityCode;
}
catch ( Exception e )
{ e.printStackTrace(); }
return null;
}
public static void main( String [] args )
{
String text3 =
"@prefix xsd: <http://www.w3.org/2001/XMLSchema#> ." +
"@prefix owl: <http://www.w3.org/2002/07/owl#> ." +
"@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> ." +
"@prefix : <http://protege.stanford.edu/plugins/owl/owl-library/koala.owl#> ." +
":Koala�����a�owl:Class; ���rdfs:subClassOf�����:Marsupials . ";
char c = 160;
text3 = text3.replaceAll( ""+c, " " );
String rdf = Turtle2RDFConverter.turtle2RDF( text3, "http://protege.stanford.edu/plugins/owl/owl-library/koala.owl#", null, null );
System.out.println( rdf );
}
}