Created
August 31, 2011 11:21
-
-
Save espeed/1183331 to your computer and use it in GitHub Desktop.
Jython Wordnet 3.0 Loader 2
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Jython Wordnet 3.0 Loader Example 2 | |
# by James Thornton, http://jamesthornton.com | |
from org.openrdf.rio import RDFHandler | |
from org.openrdf.rio import RDFHandlerException | |
from org.openrdf.rio import RDFParseException | |
from org.openrdf.rio import ParseErrorListener | |
from org.openrdf.rio.turtle import TurtleParser | |
from org.openrdf.sail import Sail | |
from org.openrdf.sail import SailConnection | |
from org.openrdf.sail import SailException | |
from org.openrdf.model import ValueFactory | |
from org.openrdf.model import Statement | |
from org.openrdf.rio.helpers import StatementCollector | |
from com.tinkerpop.blueprints.pgm.impls.neo4j import Neo4jGraph | |
from com.tinkerpop.blueprints.pgm.oupls.sail import GraphSail | |
from com.tinkerpop.blueprints.pgm.util import TransactionalGraphHelper | |
from com.tinkerpop.blueprints.pgm.util.TransactionalGraphHelper import CommitManager | |
from java.io import BufferedInputStream, FileInputStream, FileOutputStream, \ | |
File, InputStreamReader, BufferedReader | |
from java.lang import Object as JavaObject | |
from java.lang import ClassLoader | |
from java.util import ArrayList | |
from java.net import URL | |
from java.lang.System import setProperty | |
from time import sleep | |
class TripleHandler(RDFHandler): | |
def __init__(self,sail_connection, commit_manager): | |
self.sail_connection = sail_connection | |
self.commit_manager = commit_manager | |
def handleStatement(self,arg0): | |
if arg0.getSubject().stringValue() == arg0.getObject().stringValue(): | |
return | |
self.sail_connection.addStatement(arg0.getSubject(), arg0.getPredicate(), arg0.getObject()) | |
self.commit_manager.incrCounter() | |
if (self.commit_manager.atCommit()): | |
print "." | |
file_name = "Manifest.ttl" | |
url = "http://purl.org/vocabularies/princeton/wn30/" | |
my_list = ArrayList() | |
setProperty("org.openrdf.repository.debug", "true") | |
neo = Neo4jGraph("wordnet") | |
sail = GraphSail(neo) | |
sail.initialize() | |
commit_manager = TransactionalGraphHelper.createCommitManager(neo, 10) | |
sail_connection = sail.getConnection() | |
value_factory = sail.getValueFactory() | |
handler = TripleHandler(sail_connection, commit_manager) | |
parser = TurtleParser(value_factory) | |
parser.setRDFHandler(handler) | |
parser.setStopAtFirstError(False) | |
f = File(file_name) | |
fin = FileInputStream(f) | |
bin = BufferedInputStream(fin) | |
parser.parse(bin,url) | |
print "Current number of operations counted", commit_manager.getCounter() | |
print "Number of commits that have occured", commit_manager.getCommitCount() | |
print "Closing commit manager..." | |
commit_manager.close() | |
print "Current number of operations counted", commit_manager.getCounter() | |
print "Number of commits that have occured", commit_manager.getCommitCount() | |
print "Shutting down sail..." | |
sail.shutDown() | |
#neo.shutdown() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment