You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by rv...@apache.org on 2014/04/02 11:20:58 UTC
svn commit: r1583942 [1/9] - in /jena/Experimental/hadoop-rdf: ./
hadoop-rdf-common/ hadoop-rdf-common/src/ hadoop-rdf-common/src/main/
hadoop-rdf-common/src/main/java/ hadoop-rdf-common/src/main/java/com/
hadoop-rdf-common/src/main/java/com/yarcdata/ ...
Author: rvesse
Date: Wed Apr 2 09:20:51 2014
New Revision: 1583942
URL: http://svn.apache.org/r1583942
Log:
Initial import of Hadoop RDF Tools code which is undergoing IP Clearance process (JENA-666)
Added:
jena/Experimental/hadoop-rdf/ (with props)
jena/Experimental/hadoop-rdf/hadoop-rdf-common/ (with props)
jena/Experimental/hadoop-rdf/hadoop-rdf-common/pom.xml
jena/Experimental/hadoop-rdf/hadoop-rdf-common/src/
jena/Experimental/hadoop-rdf/hadoop-rdf-common/src/main/
jena/Experimental/hadoop-rdf/hadoop-rdf-common/src/main/java/
jena/Experimental/hadoop-rdf/hadoop-rdf-common/src/main/java/com/
jena/Experimental/hadoop-rdf/hadoop-rdf-common/src/main/java/com/yarcdata/
jena/Experimental/hadoop-rdf/hadoop-rdf-common/src/main/java/com/yarcdata/urika/
jena/Experimental/hadoop-rdf/hadoop-rdf-common/src/main/java/com/yarcdata/urika/hadoop/
jena/Experimental/hadoop-rdf/hadoop-rdf-common/src/main/java/com/yarcdata/urika/hadoop/rdf/
jena/Experimental/hadoop-rdf/hadoop-rdf-common/src/main/java/com/yarcdata/urika/hadoop/rdf/types/
jena/Experimental/hadoop-rdf/hadoop-rdf-common/src/main/java/com/yarcdata/urika/hadoop/rdf/types/AbstractNodeTupleWritable.java
jena/Experimental/hadoop-rdf/hadoop-rdf-common/src/main/java/com/yarcdata/urika/hadoop/rdf/types/CharacteristicSetWritable.java
jena/Experimental/hadoop-rdf/hadoop-rdf-common/src/main/java/com/yarcdata/urika/hadoop/rdf/types/CharacteristicWritable.java
jena/Experimental/hadoop-rdf/hadoop-rdf-common/src/main/java/com/yarcdata/urika/hadoop/rdf/types/NodeTupleWritable.java
jena/Experimental/hadoop-rdf/hadoop-rdf-common/src/main/java/com/yarcdata/urika/hadoop/rdf/types/NodeWritable.java
jena/Experimental/hadoop-rdf/hadoop-rdf-common/src/main/java/com/yarcdata/urika/hadoop/rdf/types/QuadWritable.java
jena/Experimental/hadoop-rdf/hadoop-rdf-common/src/main/java/com/yarcdata/urika/hadoop/rdf/types/TripleWritable.java
jena/Experimental/hadoop-rdf/hadoop-rdf-common/src/main/java/com/yarcdata/urika/hadoop/rdf/types/compators/
jena/Experimental/hadoop-rdf/hadoop-rdf-common/src/main/java/com/yarcdata/urika/hadoop/rdf/types/compators/NodeComparator.java
jena/Experimental/hadoop-rdf/hadoop-rdf-common/src/main/resources/
jena/Experimental/hadoop-rdf/hadoop-rdf-common/src/test/
jena/Experimental/hadoop-rdf/hadoop-rdf-common/src/test/java/
jena/Experimental/hadoop-rdf/hadoop-rdf-common/src/test/java/com/
jena/Experimental/hadoop-rdf/hadoop-rdf-common/src/test/java/com/yarcdata/
jena/Experimental/hadoop-rdf/hadoop-rdf-common/src/test/java/com/yarcdata/urika/
jena/Experimental/hadoop-rdf/hadoop-rdf-common/src/test/java/com/yarcdata/urika/hadoop/
jena/Experimental/hadoop-rdf/hadoop-rdf-common/src/test/java/com/yarcdata/urika/hadoop/rdf/
jena/Experimental/hadoop-rdf/hadoop-rdf-common/src/test/java/com/yarcdata/urika/hadoop/rdf/io/
jena/Experimental/hadoop-rdf/hadoop-rdf-common/src/test/java/com/yarcdata/urika/hadoop/rdf/io/types/
jena/Experimental/hadoop-rdf/hadoop-rdf-common/src/test/java/com/yarcdata/urika/hadoop/rdf/io/types/CharacteristicTests.java
jena/Experimental/hadoop-rdf/hadoop-rdf-common/src/test/java/com/yarcdata/urika/hadoop/rdf/io/types/RdfTypesTest.java
jena/Experimental/hadoop-rdf/hadoop-rdf-common/src/test/resources/
jena/Experimental/hadoop-rdf/hadoop-rdf-io/ (with props)
jena/Experimental/hadoop-rdf/hadoop-rdf-io/NOTICE
jena/Experimental/hadoop-rdf/hadoop-rdf-io/pom.xml
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/HadoopIOConstants.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/RdfIOConstants.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/input/
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/input/AbstractNLineFileInputFormat.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/input/AbstractWholeFileInputFormat.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/input/BlockedNQuadsInputFormat.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/input/BlockedNTriplesInputFormat.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/input/NQuadsInputFormat.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/input/NTriplesInputFormat.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/input/QuadsInputFormat.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/input/RdfJsonInputFormat.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/input/RdfXmlInputFormat.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/input/TriGInputFormat.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/input/TriplesInputFormat.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/input/TriplesOrQuadsInputFormat.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/input/TurtleInputFormat.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/input/WholeFileNQuadsInputFormat.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/input/WholeFileNTriplesInputFormat.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/input/readers/
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/input/readers/AbstractBlockBasedNodeTupleReader.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/input/readers/AbstractBlockBasedQuadReader.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/input/readers/AbstractBlockBasedTripleReader.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/input/readers/AbstractLineBasedNodeTupleReader.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/input/readers/AbstractLineBasedQuadReader.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/input/readers/AbstractLineBasedTripleReader.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/input/readers/AbstractRdfReader.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/input/readers/AbstractWholeFileNodeTupleReader.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/input/readers/AbstractWholeFileQuadReader.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/input/readers/AbstractWholeFileTripleReader.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/input/readers/BlockedNQuadsReader.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/input/readers/BlockedNTriplesReader.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/input/readers/NQuadsReader.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/input/readers/NTriplesReader.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/input/readers/QuadsReader.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/input/readers/RdfJsonReader.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/input/readers/RdfXmlReader.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/input/readers/TriGReader.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/input/readers/TriplesOrQuadsReader.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/input/readers/TriplesReader.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/input/readers/TriplesToQuadsReader.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/input/readers/TurtleReader.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/input/readers/WholeFileNQuadsReader.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/input/readers/WholeFileNTriplesReader.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/input/util/
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/input/util/BlockInputStream.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/input/util/RdfIOUtils.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/input/util/TrackableInputStream.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/input/util/TrackedInputStream.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/input/util/TrackedPipedQuadsStream.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/input/util/TrackedPipedRDFStream.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/input/util/TrackedPipedTriplesStream.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/output/
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/output/AbstractBatchedNodeTupleOutputFormat.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/output/AbstractNodeOutputFormat.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/output/AbstractNodeTupleOutputFormat.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/output/NQuadsOutputFormat.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/output/NTriplesNodeOutputFormat.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/output/NTriplesOutputFormat.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/output/RdfJsonOutputFormat.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/output/RdfXmlOutputFormat.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/output/TriGOutputFormat.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/output/TurtleOutputFormat.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/output/writers/
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/output/writers/AbstractBatchedNodeTupleWriter.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/output/writers/AbstractBatchedQuadWriter.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/output/writers/AbstractBatchedTripleWriter.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/output/writers/AbstractLineBasedNodeTupleWriter.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/output/writers/AbstractLineBasedQuadWriter.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/output/writers/AbstractLineBasedTripleWriter.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/output/writers/AbstractNodeWriter.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/output/writers/AbstractWholeFileNodeTupleWriter.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/output/writers/AbstractWholeFileQuadWriter.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/output/writers/AbstractWholeFileTripleWriter.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/output/writers/NQuadsWriter.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/output/writers/NTriplesNodeWriter.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/output/writers/NTriplesWriter.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/output/writers/RdfJsonWriter.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/output/writers/RdfXmlWriter.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/output/writers/TriGWriter.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/java/com/yarcdata/urika/hadoop/rdf/io/output/writers/TurtleWriter.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/main/resources/
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/RdfTriplesInputTestMapper.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/input/
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/input/AbstractBlockedQuadInputFormatTests.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/input/AbstractBlockedTripleInputFormatTests.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/input/AbstractNodeTupleInputFormatTests.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/input/AbstractQuadsInputFormatTests.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/input/AbstractTriplesInputFormatTests.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/input/AbstractWholeFileQuadInputFormatTests.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/input/AbstractWholeFileTripleInputFormatTests.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/input/BlockedNQuadsInputTest.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/input/BlockedNTriplesInputTest.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/input/NQuadsInputTest.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/input/NTriplesInputTest.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/input/RdfJsonInputTest.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/input/RdfXmlInputTest.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/input/TriGInputTest.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/input/TurtleInputTest.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/input/WholeFileNQuadsInputTest.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/input/WholeFileNTriplesInputTest.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/input/compressed/
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/input/compressed/AbstractCompressedNodeTupleInputFormatTests.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/input/compressed/AbstractCompressedQuadsInputFormatTests.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/input/compressed/AbstractCompressedTriplesInputFormatTests.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/input/compressed/AbstractCompressedWholeFileQuadInputFormatTests.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/input/compressed/AbstractCompressedWholeFileTripleInputFormatTests.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/input/compressed/nquads/
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/input/compressed/nquads/AbstractCompressedNQuadsInputFormatTests.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/input/compressed/nquads/AbstractCompressedWholeFileNQuadsInputFormatTests.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/input/compressed/nquads/BZipppedNQuadsInputTest.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/input/compressed/nquads/BZipppedWholeFileNQuadsInputTest.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/input/compressed/nquads/DeflatedNQuadsInputTest.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/input/compressed/nquads/DeflatedWholeFileNQuadsInputTest.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/input/compressed/nquads/GZippedNQuadsInputTest.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/input/compressed/nquads/GZippedWholeFileNQuadsInputTest.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/input/compressed/ntriples/
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/input/compressed/ntriples/AbstractCompressedBlockedNTriplesInputFormatTests.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/input/compressed/ntriples/AbstractCompressedNTriplesInputFormatTests.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/input/compressed/ntriples/AbstractCompressedWholeFileNTriplesInputFormatTests.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/input/compressed/ntriples/BZippedBlockedNTriplesInput.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/input/compressed/ntriples/BZippedNTriplesInputTest.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/input/compressed/ntriples/BZippedWholeFileNTriplesInputTest.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/input/compressed/ntriples/DeflatedBlockedNTriplesInput.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/input/compressed/ntriples/DeflatedNTriplesInputTest.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/input/compressed/ntriples/DeflatedWholeFileNTriplesInputTest.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/input/compressed/ntriples/GZippedBlockedNTriplesInput.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/input/compressed/ntriples/GZippedNTriplesInputTest.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/input/compressed/ntriples/GZippedWholeFileNTriplesInputTest.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/input/compressed/rdfjson/
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/input/compressed/rdfjson/AbstractCompressedRdfJsonInputFormatTests.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/input/compressed/rdfjson/BZippedRdfJsonInputTest.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/input/compressed/rdfjson/DeflatedRdfJsonInputTest.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/input/compressed/rdfjson/GZippedRdfJsonInputTest.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/input/compressed/rdfxml/
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/input/compressed/rdfxml/AbstractCompressedRdfXmlInputFormatTests.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/input/compressed/rdfxml/BZippedRdfXmlInputTest.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/input/compressed/rdfxml/DeflatedRdfXmlInputTest.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/input/compressed/rdfxml/GZippedRdfXmlInputTest.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/input/compressed/trig/
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/input/compressed/trig/AbstractCompressedTriGInputFormatTests.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/input/compressed/trig/BZippedTriGInputTest.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/input/compressed/trig/DeflatedTriGInputTest.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/input/compressed/trig/GZippedTriGInputTest.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/input/compressed/turtle/
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/input/compressed/turtle/AbstractCompressedTurtleInputFormatTests.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/input/compressed/turtle/BZippedTurtleInputTest.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/input/compressed/turtle/DeflatedTurtleInputTest.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/input/compressed/turtle/GZippedTurtleInputTest.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/input/util/
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/input/util/AbstractTrackableInputStreamTests.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/input/util/BlockInputStreamTest.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/input/util/TrackedInputStreamTest.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/output/
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/output/AbstractNodeTupleOutputFormatTests.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/output/AbstractQuadOutputFormatTests.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/output/AbstractTripleOutputFormatTests.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/output/NQuadsOutputTest.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/output/NTriplesOutputTest.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/output/RdfJsonOutputTest.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/output/RdfXmlOutputTest.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/output/TriGOutputTest.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/java/com/yarcdata/urika/hadoop/rdf/io/output/TurtleOutputTest.java
jena/Experimental/hadoop-rdf/hadoop-rdf-io/src/test/resources/
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/ (with props)
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/pom.xml
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/hadoop/
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/hadoop/rdf/
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/hadoop/rdf/mapreduce/
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/hadoop/rdf/mapreduce/KeyMapper.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/hadoop/rdf/mapreduce/RdfMapReduceConstants.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/hadoop/rdf/mapreduce/TextCountReducer.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/hadoop/rdf/mapreduce/characteristics/
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/hadoop/rdf/mapreduce/characteristics/AbstractCharacteristicSetGeneratingReducer.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/hadoop/rdf/mapreduce/characteristics/CharacteristicSetReducer.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/hadoop/rdf/mapreduce/characteristics/QuadCharacteristicSetGeneratingReducer.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/hadoop/rdf/mapreduce/characteristics/TripleCharacteristicSetGeneratingReducer.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/hadoop/rdf/mapreduce/count/
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/hadoop/rdf/mapreduce/count/AbstractNodeTupleNodeCountMapper.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/hadoop/rdf/mapreduce/count/NodeCountReducer.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/hadoop/rdf/mapreduce/count/QuadNodeCountMapper.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/hadoop/rdf/mapreduce/count/TripleNodeCountMapper.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/hadoop/rdf/mapreduce/count/datatypes/
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/hadoop/rdf/mapreduce/count/datatypes/QuadDataTypeCountMapper.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/hadoop/rdf/mapreduce/count/datatypes/TripleDataTypeCountMapper.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/hadoop/rdf/mapreduce/count/namespaces/
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/hadoop/rdf/mapreduce/count/namespaces/AbstractNodeTupleNamespaceCountMapper.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/hadoop/rdf/mapreduce/count/namespaces/QuadNamespaceCountMapper.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/hadoop/rdf/mapreduce/count/namespaces/TripleNamespaceCountMapper.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/hadoop/rdf/mapreduce/count/positional/
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/hadoop/rdf/mapreduce/count/positional/QuadObjectCountMapper.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/hadoop/rdf/mapreduce/count/positional/QuadPredicateCountMapper.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/hadoop/rdf/mapreduce/count/positional/QuadSubjectCountMapper.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/hadoop/rdf/mapreduce/count/positional/TripleObjectCountMapper.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/hadoop/rdf/mapreduce/count/positional/TriplePredicateCountMapper.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/hadoop/rdf/mapreduce/count/positional/TripleSubjectCountMapper.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/hadoop/rdf/mapreduce/filter/
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/hadoop/rdf/mapreduce/filter/AbstractNodeTupleFilterMapper.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/hadoop/rdf/mapreduce/filter/AbstractQuadFilterMapper.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/hadoop/rdf/mapreduce/filter/AbstractTripleFilterMapper.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/hadoop/rdf/mapreduce/filter/GroundQuadFilterMapper.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/hadoop/rdf/mapreduce/filter/GroundTripleFilterMapper.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/hadoop/rdf/mapreduce/filter/ValidQuadFilterMapper.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/hadoop/rdf/mapreduce/filter/ValidTripleFilterMapper.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/hadoop/rdf/mapreduce/filter/positional/
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/hadoop/rdf/mapreduce/filter/positional/AbstractQuadFilterByPositionMapper.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/hadoop/rdf/mapreduce/filter/positional/AbstractTripleFilterByPositionMapper.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/hadoop/rdf/mapreduce/filter/positional/QuadFilterByGraphUriMapper.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/hadoop/rdf/mapreduce/filter/positional/QuadFilterByObjectUriMapper.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/hadoop/rdf/mapreduce/filter/positional/QuadFilterByPredicateMapper.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/hadoop/rdf/mapreduce/filter/positional/QuadFilterBySubjectUriMapper.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/hadoop/rdf/mapreduce/filter/positional/TripleFilterByObjectUriMapper.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/hadoop/rdf/mapreduce/filter/positional/TripleFilterByPredicateUriMapper.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/hadoop/rdf/mapreduce/filter/positional/TripleFilterBySubjectUriMapper.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/hadoop/rdf/mapreduce/group/
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/hadoop/rdf/mapreduce/group/AbstractNodeTupleGroupingMapper.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/hadoop/rdf/mapreduce/group/AbstractQuadGroupingMapper.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/hadoop/rdf/mapreduce/group/AbstractTripleGroupingMapper.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/hadoop/rdf/mapreduce/group/QuadGroupByGraphMapper.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/hadoop/rdf/mapreduce/group/QuadGroupByObjectMapper.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/hadoop/rdf/mapreduce/group/QuadGroupByPredicateMapper.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/hadoop/rdf/mapreduce/group/QuadGroupBySubjectMapper.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/hadoop/rdf/mapreduce/group/TripleGroupByObjectMapper.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/hadoop/rdf/mapreduce/group/TripleGroupByPredicateMapper.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/hadoop/rdf/mapreduce/group/TripleGroupBySubjectMapper.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/hadoop/rdf/mapreduce/split/
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/hadoop/rdf/mapreduce/split/AbstractNodeTupleSplitToNodesMapper.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/hadoop/rdf/mapreduce/split/AbstractNodeTupleSplitWithNodesMapper.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/hadoop/rdf/mapreduce/split/QuadSplitToNodesMapper.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/hadoop/rdf/mapreduce/split/QuadSplitWithNodesMapper.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/hadoop/rdf/mapreduce/split/TripleSplitToNodesMapper.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/hadoop/rdf/mapreduce/split/TripleSplitWithNodesMapper.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/hadoop/rdf/mapreduce/transform/
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/hadoop/rdf/mapreduce/transform/AbstractTriplesToQuadsMapper.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/hadoop/rdf/mapreduce/transform/QuadsToTriplesMapper.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/hadoop/rdf/mapreduce/transform/TriplesToQuadsBySubjectMapper.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/java/com/yarcdata/urika/hadoop/rdf/mapreduce/transform/TriplesToQuadsConstantGraphMapper.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/main/resources/
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/test/
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/test/java/
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/test/java/com/
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/test/java/com/yarcdata/
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/test/java/com/yarcdata/urika/
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/test/java/com/yarcdata/urika/hadoop/
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/test/java/com/yarcdata/urika/hadoop/rdf/
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/test/java/com/yarcdata/urika/hadoop/rdf/mapreduce/
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/test/java/com/yarcdata/urika/hadoop/rdf/mapreduce/AbstractMapReduceTests.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/test/java/com/yarcdata/urika/hadoop/rdf/mapreduce/AbstractMapperTests.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/test/java/com/yarcdata/urika/hadoop/rdf/mapreduce/characteristics/
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/test/java/com/yarcdata/urika/hadoop/rdf/mapreduce/characteristics/AbstractCharacteristicSetGeneratingReducerTests.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/test/java/com/yarcdata/urika/hadoop/rdf/mapreduce/characteristics/CharacteristicSetReducerTest.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/test/java/com/yarcdata/urika/hadoop/rdf/mapreduce/characteristics/TripleCharacteristicSetGeneratingReducerTest.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/test/java/com/yarcdata/urika/hadoop/rdf/mapreduce/count/
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/test/java/com/yarcdata/urika/hadoop/rdf/mapreduce/count/AbstractNodeTupleNodeCountReducedTests.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/test/java/com/yarcdata/urika/hadoop/rdf/mapreduce/count/AbstractNodeTupleNodeCountTests.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/test/java/com/yarcdata/urika/hadoop/rdf/mapreduce/count/QuadNodeCountMapReduceTest.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/test/java/com/yarcdata/urika/hadoop/rdf/mapreduce/count/QuadNodeCountMapperTest.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/test/java/com/yarcdata/urika/hadoop/rdf/mapreduce/count/TripleNodeCountMapReduceTest.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/test/java/com/yarcdata/urika/hadoop/rdf/mapreduce/count/TripleNodeCountMapperTest.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/test/java/com/yarcdata/urika/hadoop/rdf/mapreduce/filter/
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/test/java/com/yarcdata/urika/hadoop/rdf/mapreduce/filter/AbstractNodeTupleFilterTests.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/test/java/com/yarcdata/urika/hadoop/rdf/mapreduce/filter/AbstractQuadValidityFilterTests.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/test/java/com/yarcdata/urika/hadoop/rdf/mapreduce/filter/AbstractTripleValidityFilterTests.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/test/java/com/yarcdata/urika/hadoop/rdf/mapreduce/filter/TripleFilterByNoPredicateMapperTest.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/test/java/com/yarcdata/urika/hadoop/rdf/mapreduce/filter/TripleFilterByPredicateMapperTest.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/test/java/com/yarcdata/urika/hadoop/rdf/mapreduce/filter/TripleInvertedFilterByNoPredicateMapperTest.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/test/java/com/yarcdata/urika/hadoop/rdf/mapreduce/filter/TripleInvertedFilterByPredicateMapperTest.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/test/java/com/yarcdata/urika/hadoop/rdf/mapreduce/filter/ValidQuadFilterMapperTest.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/test/java/com/yarcdata/urika/hadoop/rdf/mapreduce/filter/ValidTripleFilterMapperTest.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/test/java/com/yarcdata/urika/hadoop/rdf/mapreduce/group/
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/test/java/com/yarcdata/urika/hadoop/rdf/mapreduce/group/AbstractNodeTupleGroupingTests.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/test/java/com/yarcdata/urika/hadoop/rdf/mapreduce/group/AbstractQuadGroupingTests.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/test/java/com/yarcdata/urika/hadoop/rdf/mapreduce/group/AbstractTripleGroupingTests.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/test/java/com/yarcdata/urika/hadoop/rdf/mapreduce/group/QuadGroupByGraphMapperTest.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/test/java/com/yarcdata/urika/hadoop/rdf/mapreduce/group/QuadGroupByObjectMapperTest.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/test/java/com/yarcdata/urika/hadoop/rdf/mapreduce/group/QuadGroupByPredicateMapperTest.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/test/java/com/yarcdata/urika/hadoop/rdf/mapreduce/group/QuadGroupBySubjectMapperTest.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/test/java/com/yarcdata/urika/hadoop/rdf/mapreduce/group/TripleGroupByObjectMapperTest.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/test/java/com/yarcdata/urika/hadoop/rdf/mapreduce/group/TripleGroupByPredicateMapperTest.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/test/java/com/yarcdata/urika/hadoop/rdf/mapreduce/group/TripleGroupBySubjectMapperTest.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/test/java/com/yarcdata/urika/hadoop/rdf/mapreduce/split/
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/test/java/com/yarcdata/urika/hadoop/rdf/mapreduce/split/AbstractNodeTupleSplitToNodesTests.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/test/java/com/yarcdata/urika/hadoop/rdf/mapreduce/split/AbstractNodeTupleSplitWithNodesTests.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/test/java/com/yarcdata/urika/hadoop/rdf/mapreduce/split/AbstractQuadSplitToNodesTests.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/test/java/com/yarcdata/urika/hadoop/rdf/mapreduce/split/AbstractQuadSplitWithNodesTests.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/test/java/com/yarcdata/urika/hadoop/rdf/mapreduce/split/AbstractTripleSplitToNodesTests.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/test/java/com/yarcdata/urika/hadoop/rdf/mapreduce/split/AbstractTripleSplitWithNodesTests.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/test/java/com/yarcdata/urika/hadoop/rdf/mapreduce/split/QuadSplitToNodesMapperTest.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/test/java/com/yarcdata/urika/hadoop/rdf/mapreduce/split/QuadSplitWithNodesMapperTest.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/test/java/com/yarcdata/urika/hadoop/rdf/mapreduce/split/TripleSplitToNodesMapperTest.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/test/java/com/yarcdata/urika/hadoop/rdf/mapreduce/split/TripleSplitWithNodesMapperTest.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/test/java/com/yarcdata/urika/hadoop/rdf/mapreduce/transform/
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/test/java/com/yarcdata/urika/hadoop/rdf/mapreduce/transform/QuadsToTriplesMapperTest.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/test/java/com/yarcdata/urika/hadoop/rdf/mapreduce/transform/TriplesToQuadsBySubjectMapperTest.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/test/java/com/yarcdata/urika/hadoop/rdf/mapreduce/transform/TriplesToQuadsConstantGraphMapperTest.java
jena/Experimental/hadoop-rdf/hadoop-rdf-mapreduce/src/test/resources/
jena/Experimental/hadoop-rdf/hadoop-rdf-stats/ (with props)
jena/Experimental/hadoop-rdf/hadoop-rdf-stats/hadoop-job.xml
jena/Experimental/hadoop-rdf/hadoop-rdf-stats/pom.xml
jena/Experimental/hadoop-rdf/hadoop-rdf-stats/src/
jena/Experimental/hadoop-rdf/hadoop-rdf-stats/src/main/
jena/Experimental/hadoop-rdf/hadoop-rdf-stats/src/main/java/
jena/Experimental/hadoop-rdf/hadoop-rdf-stats/src/main/java/com/
jena/Experimental/hadoop-rdf/hadoop-rdf-stats/src/main/java/com/yarcdata/
jena/Experimental/hadoop-rdf/hadoop-rdf-stats/src/main/java/com/yarcdata/urika/
jena/Experimental/hadoop-rdf/hadoop-rdf-stats/src/main/java/com/yarcdata/urika/hadoop/
jena/Experimental/hadoop-rdf/hadoop-rdf-stats/src/main/java/com/yarcdata/urika/hadoop/rdf/
jena/Experimental/hadoop-rdf/hadoop-rdf-stats/src/main/java/com/yarcdata/urika/hadoop/rdf/stats/
jena/Experimental/hadoop-rdf/hadoop-rdf-stats/src/main/java/com/yarcdata/urika/hadoop/rdf/stats/RdfStats.java
jena/Experimental/hadoop-rdf/hadoop-rdf-stats/src/main/java/com/yarcdata/urika/hadoop/rdf/stats/jobs/
jena/Experimental/hadoop-rdf/hadoop-rdf-stats/src/main/java/com/yarcdata/urika/hadoop/rdf/stats/jobs/JobFactory.java
jena/Experimental/hadoop-rdf/hadoop-rdf-stats/src/main/resources/
jena/Experimental/hadoop-rdf/hadoop-rdf-stats/src/test/
jena/Experimental/hadoop-rdf/hadoop-rdf-stats/src/test/java/
jena/Experimental/hadoop-rdf/hadoop-rdf-stats/src/test/resources/
jena/Experimental/hadoop-rdf/pom.xml
jena/Experimental/hadoop-rdf/src/
jena/Experimental/hadoop-rdf/src/site/
Propchange: jena/Experimental/hadoop-rdf/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Wed Apr 2 09:20:51 2014
@@ -0,0 +1,2 @@
+.project
+.settings
Propchange: jena/Experimental/hadoop-rdf/hadoop-rdf-common/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Wed Apr 2 09:20:51 2014
@@ -0,0 +1,4 @@
+.classpath
+.project
+.settings
+target
Added: jena/Experimental/hadoop-rdf/hadoop-rdf-common/pom.xml
URL: http://svn.apache.org/viewvc/jena/Experimental/hadoop-rdf/hadoop-rdf-common/pom.xml?rev=1583942&view=auto
==============================================================================
--- jena/Experimental/hadoop-rdf/hadoop-rdf-common/pom.xml (added)
+++ jena/Experimental/hadoop-rdf/hadoop-rdf-common/pom.xml Wed Apr 2 09:20:51 2014
@@ -0,0 +1,42 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>com.yarcdata.urika</groupId>
+ <artifactId>hadoop-rdf</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ </parent>
+ <artifactId>hadoop-rdf-common</artifactId>
+ <name>Hadoop RDF Common</name>
+ <description>Common code for Hadoop RDF such as writable types for RDF</description>
+
+ <!-- Note that versions are managed by parent POMs -->
+ <dependencies>
+ <!-- Hadoop Dependencies -->
+ <!-- Note these will be provided on the Hadoop cluster hence the provided
+ scope -->
+ <dependency>
+ <groupId>org.apache.hadoop</groupId>
+ <artifactId>hadoop-common</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.hadoop</groupId>
+ <artifactId>hadoop-mapreduce-client-common</artifactId>
+ <scope>provided</scope>
+ </dependency>
+
+ <!-- Jena dependencies -->
+ <dependency>
+ <groupId>org.apache.jena</groupId>
+ <artifactId>jena-arq</artifactId>
+ </dependency>
+
+ <!-- Test Dependencies -->
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+</project>
\ No newline at end of file
Added: jena/Experimental/hadoop-rdf/hadoop-rdf-common/src/main/java/com/yarcdata/urika/hadoop/rdf/types/AbstractNodeTupleWritable.java
URL: http://svn.apache.org/viewvc/jena/Experimental/hadoop-rdf/hadoop-rdf-common/src/main/java/com/yarcdata/urika/hadoop/rdf/types/AbstractNodeTupleWritable.java?rev=1583942&view=auto
==============================================================================
--- jena/Experimental/hadoop-rdf/hadoop-rdf-common/src/main/java/com/yarcdata/urika/hadoop/rdf/types/AbstractNodeTupleWritable.java (added)
+++ jena/Experimental/hadoop-rdf/hadoop-rdf-common/src/main/java/com/yarcdata/urika/hadoop/rdf/types/AbstractNodeTupleWritable.java Wed Apr 2 09:20:51 2014
@@ -0,0 +1,157 @@
+/*
+ * Copyright 2013 YarcData LLC All Rights Reserved.
+ */
+
+package com.yarcdata.urika.hadoop.rdf.types;
+
+import java.io.DataInput;
+import java.io.DataOutput;
+import java.io.IOException;
+import org.apache.hadoop.io.WritableComparable;
+import org.apache.hadoop.io.WritableUtils;
+import com.hp.hpl.jena.graph.Node;
+import com.hp.hpl.jena.sparql.util.NodeUtils;
+
+/**
+ * A abstract general purpose writable where the actual class represented is
+ * composed of a number of {@link Node} instances
+ *
+ * @author rvesse
+ *
+ * @param <T>
+ */
+public abstract class AbstractNodeTupleWritable<T> implements WritableComparable<AbstractNodeTupleWritable<T>> {
+
+ private T tuple;
+
+ /**
+ * Creates a new empty instance
+ */
+ protected AbstractNodeTupleWritable() {
+ this(null);
+ }
+
+ /**
+ * Creates a new instance with the given value
+ *
+ * @param tuple
+ * Tuple value
+ */
+ protected AbstractNodeTupleWritable(T tuple) {
+ this.tuple = tuple;
+ }
+
+ /**
+ * Gets the tuple
+ *
+ * @return Tuple
+ */
+ public T get() {
+ return this.tuple;
+ }
+
+ /**
+ * Sets the tuple
+ *
+ * @param tuple
+ * Tuple
+ */
+ public void set(T tuple) {
+ this.tuple = tuple;
+ }
+
+ @Override
+ public final void readFields(DataInput input) throws IOException {
+ // Determine how many nodes
+ int size = WritableUtils.readVInt(input);
+ Node[] ns = new Node[size];
+
+ NodeWritable nw = new NodeWritable();
+ for (int i = 0; i < ns.length; i++) {
+ nw.readFields(input);
+ ns[i] = nw.get();
+ }
+
+ // Load the tuple
+ this.tuple = this.createTuple(ns);
+ }
+
+ /**
+ * Creates the actual tuple type from an array of nodes
+ *
+ * @param ns
+ * Nodes
+ * @return Tuple
+ */
+ protected abstract T createTuple(Node[] ns);
+
+ @Override
+ public final void write(DataOutput output) throws IOException {
+ // Determine how many nodes
+ Node[] ns = this.createNodes(this.tuple);
+ WritableUtils.writeVInt(output, ns.length);
+
+ // Write out nodes
+ NodeWritable nw = new NodeWritable();
+ for (int i = 0; i < ns.length; i++) {
+ nw.set(ns[i]);
+ nw.write(output);
+ }
+ }
+
+ /**
+ * Converts the actual tuple type into an array of nodes
+ *
+ * @param tuple
+ * Tuples
+ * @return Nodes
+ */
+ protected abstract Node[] createNodes(T tuple);
+
+ /**
+ * Compares instances node by node
+ * <p>
+ * Derived implementations may wish to override this and substitute native
+ * tuple based comparisons
+ * </p>
+ *
+ * @param other
+ * Instance to compare with
+ */
+ @Override
+ public int compareTo(AbstractNodeTupleWritable<T> other) {
+ Node[] ns = this.createNodes(this.tuple);
+ Node[] otherNs = this.createNodes(other.tuple);
+
+ if (ns.length < otherNs.length) {
+ return -1;
+ } else if (ns.length > otherNs.length) {
+ return 1;
+ }
+ // Compare node by node
+ for (int i = 0; i < ns.length; i++) {
+ int c = NodeUtils.compareRDFTerms(ns[i], otherNs[i]);
+ if (c != 0)
+ return c;
+ }
+ return 0;
+ }
+
+ @Override
+ public String toString() {
+ return this.get().toString();
+ }
+
+ @Override
+ public int hashCode() {
+ return this.get().hashCode();
+ }
+
+ @SuppressWarnings("unchecked")
+ @Override
+ public boolean equals(Object other) {
+ if (!(other instanceof AbstractNodeTupleWritable))
+ return false;
+ return this.compareTo((AbstractNodeTupleWritable<T>) other) == 0;
+ }
+}
Added: jena/Experimental/hadoop-rdf/hadoop-rdf-common/src/main/java/com/yarcdata/urika/hadoop/rdf/types/CharacteristicSetWritable.java
URL: http://svn.apache.org/viewvc/jena/Experimental/hadoop-rdf/hadoop-rdf-common/src/main/java/com/yarcdata/urika/hadoop/rdf/types/CharacteristicSetWritable.java?rev=1583942&view=auto
==============================================================================
--- jena/Experimental/hadoop-rdf/hadoop-rdf-common/src/main/java/com/yarcdata/urika/hadoop/rdf/types/CharacteristicSetWritable.java (added)
+++ jena/Experimental/hadoop-rdf/hadoop-rdf-common/src/main/java/com/yarcdata/urika/hadoop/rdf/types/CharacteristicSetWritable.java Wed Apr 2 09:20:51 2014
@@ -0,0 +1,284 @@
+/*
+ * Copyright 2013 YarcData LLC All Rights Reserved.
+ */
+
+package com.yarcdata.urika.hadoop.rdf.types;
+
+import java.io.DataInput;
+import java.io.DataOutput;
+import java.io.IOException;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.TreeMap;
+
+import org.apache.hadoop.io.LongWritable;
+import org.apache.hadoop.io.WritableComparable;
+import org.apache.hadoop.io.WritableUtils;
+
+import com.hp.hpl.jena.graph.Node;
+import com.hp.hpl.jena.graph.NodeFactory;
+
+/**
+ * Represents a characteristic set which is comprised of a count of nodes for
+ * which the characteristic is applicable and a set of characteristics which
+ * represents the number of usages of predicates with those nodes
+ *
+ * @author rvesse
+ *
+ */
+public class CharacteristicSetWritable implements WritableComparable<CharacteristicSetWritable> {
+
+ private Map<NodeWritable, CharacteristicWritable> characteristics = new TreeMap<NodeWritable, CharacteristicWritable>();
+ private LongWritable count = new LongWritable();
+
+ /**
+ * Creates a new empty characteristic set with the default count of 1
+ */
+ public CharacteristicSetWritable() {
+ this(1);
+ }
+
+ /**
+ * Creates a new characteristic set with the default count of 1 and the
+ * given characteristics
+ *
+ * @param characteristics
+ * Characteristics
+ */
+ public CharacteristicSetWritable(CharacteristicWritable... characteristics) {
+ this(1, characteristics);
+ }
+
+ /**
+ * Creates an empty characteristic set with the given count
+ *
+ * @param count
+ * Count
+ */
+ public CharacteristicSetWritable(long count) {
+ this(count, new CharacteristicWritable[0]);
+ }
+
+ /**
+ * Creates a new characteristic set
+ *
+ * @param count
+ * Count
+ * @param characteristics
+ * Characteristics
+ */
+ public CharacteristicSetWritable(long count, CharacteristicWritable... characteristics) {
+ this.count.set(count);
+ for (CharacteristicWritable characteristic : characteristics) {
+ this.characteristics.put(characteristic.getNode(), characteristic);
+ }
+ }
+
+ /**
+ * Creates a new instance and reads its data from the given input
+ *
+ * @param input
+ * Input
+ * @return New instance
+ * @throws IOException
+ */
+ public static CharacteristicSetWritable read(DataInput input) throws IOException {
+ CharacteristicSetWritable set = new CharacteristicSetWritable();
+ set.readFields(input);
+ return set;
+ }
+
+ /**
+ * Gets the count
+ *
+ * @return Count
+ */
+ public LongWritable getCount() {
+ return this.count;
+ }
+
+ /**
+ * Gets the characteristics
+ *
+ * @return Characteristics
+ */
+ public Iterator<CharacteristicWritable> getCharacteristics() {
+ return this.characteristics.values().iterator();
+ }
+
+ /**
+ * Gets the size of the characteristic set
+ *
+ * @return Size
+ */
+ public int size() {
+ return this.characteristics.size();
+ }
+
+ /**
+ * Adds a characteristic to the set merging it into the appropriate existing
+ * characteristic if applicable
+ *
+ * @param characteristic
+ * Characteristics
+ */
+ public void add(CharacteristicWritable characteristic) {
+ if (this.characteristics.containsKey(characteristic.getNode())) {
+ this.characteristics.get(characteristic.getNode()).increment(characteristic.getCount().get());
+ } else {
+ this.characteristics.put(characteristic.getNode(), characteristic);
+ }
+ }
+
+ /**
+ * Adds some characteristics to the set merging them with the appropriate
+ * existing characteristics if applicable
+ *
+ * @param characteristics
+ */
+ public void add(CharacteristicWritable... characteristics) {
+ for (CharacteristicWritable characteristic : characteristics) {
+ this.add(characteristic);
+ }
+ }
+
+ /**
+ * Adds the contents of the other characteristic set to this characteristic
+ * set
+ *
+ * @param set
+ * Characteristic set
+ */
+ public void add(CharacteristicSetWritable set) {
+ this.increment(set.getCount().get());
+ Iterator<CharacteristicWritable> iter = set.getCharacteristics();
+ while (iter.hasNext()) {
+ this.add(iter.next());
+ }
+ }
+
+ /**
+ * Gets whether the set contains a characteristic for the given predicate
+ *
+ * @param uri
+ * Predicate URI
+ * @return True if contained in the set, false otherwise
+ */
+ public boolean hasCharacteristic(String uri) {
+ return this.hasCharacteristic(NodeFactory.createURI(uri));
+ }
+
+ /**
+ * Gets whether the set contains a characteristic for the given predicate
+ *
+ * @param n
+ * Predicate
+ * @return True if contained in the set, false otherwise
+ */
+ public boolean hasCharacteristic(Node n) {
+ return this.hasCharacteristic(new NodeWritable(n));
+ }
+
+ /**
+ * Gets whether the set contains a characteristic for the given predicate
+ *
+ * @param n
+ * Predicate
+ * @return True if contained in the set, false otherwise
+ */
+ public boolean hasCharacteristic(NodeWritable n) {
+ return this.characteristics.containsKey(n);
+ }
+
+ /**
+ * Increments the count by the given increment
+ *
+ * @param l
+ * Increment
+ */
+ public void increment(long l) {
+ this.count.set(this.count.get() + l);
+ }
+
+ @Override
+ public void write(DataOutput output) throws IOException {
+ // Write size, then count, then characteristics
+ WritableUtils.writeVInt(output, this.characteristics.size());
+ this.count.write(output);
+ for (CharacteristicWritable characteristic : this.characteristics.values()) {
+ characteristic.write(output);
+ }
+ }
+
+ @Override
+ public void readFields(DataInput input) throws IOException {
+ // Read size, then count, then characteristics
+ int size = WritableUtils.readVInt(input);
+ this.count.readFields(input);
+ this.characteristics.clear();
+ for (int i = 0; i < size; i++) {
+ CharacteristicWritable cw = CharacteristicWritable.read(input);
+ this.characteristics.put(cw.getNode(), cw);
+ }
+ }
+
+ @Override
+ public int compareTo(CharacteristicSetWritable cs) {
+ int size = this.characteristics.size();
+ int otherSize = cs.characteristics.size();
+ if (size < otherSize) {
+ return -1;
+ } else if (size > otherSize) {
+ return 1;
+ } else {
+ // Compare characteristics in turn
+ Iterator<CharacteristicWritable> iter = this.getCharacteristics();
+ Iterator<CharacteristicWritable> otherIter = cs.getCharacteristics();
+
+ int compare = 0;
+ while (iter.hasNext()) {
+ CharacteristicWritable c = iter.next();
+ CharacteristicWritable otherC = otherIter.next();
+ compare = c.compareTo(otherC);
+ if (compare != 0)
+ return compare;
+ }
+ return compare;
+ }
+ }
+
+ @Override
+ public boolean equals(Object other) {
+ if (!(other instanceof CharacteristicSetWritable))
+ return false;
+ return this.compareTo((CharacteristicSetWritable) other) == 0;
+ }
+
+ @Override
+ public int hashCode() {
+ // Build a hash code from characteristics
+ if (this.characteristics.size() == 0)
+ return 0;
+ Iterator<CharacteristicWritable> iter = this.getCharacteristics();
+ int hash = 17;
+ while (iter.hasNext()) {
+ hash = hash * 31 + iter.next().hashCode();
+ }
+ return hash;
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder builder = new StringBuilder();
+ builder.append("{ ");
+ builder.append(this.count.get());
+ Iterator<CharacteristicWritable> iter = this.getCharacteristics();
+ while (iter.hasNext()) {
+ builder.append(" , ");
+ builder.append(iter.next().toString());
+ }
+ builder.append(" }");
+ return builder.toString();
+ }
+
+}
Added: jena/Experimental/hadoop-rdf/hadoop-rdf-common/src/main/java/com/yarcdata/urika/hadoop/rdf/types/CharacteristicWritable.java
URL: http://svn.apache.org/viewvc/jena/Experimental/hadoop-rdf/hadoop-rdf-common/src/main/java/com/yarcdata/urika/hadoop/rdf/types/CharacteristicWritable.java?rev=1583942&view=auto
==============================================================================
--- jena/Experimental/hadoop-rdf/hadoop-rdf-common/src/main/java/com/yarcdata/urika/hadoop/rdf/types/CharacteristicWritable.java (added)
+++ jena/Experimental/hadoop-rdf/hadoop-rdf-common/src/main/java/com/yarcdata/urika/hadoop/rdf/types/CharacteristicWritable.java Wed Apr 2 09:20:51 2014
@@ -0,0 +1,146 @@
+/*
+ * Copyright 2013 YarcData LLC All Rights Reserved.
+ */
+
+package com.yarcdata.urika.hadoop.rdf.types;
+
+import java.io.DataInput;
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.hadoop.io.LongWritable;
+import org.apache.hadoop.io.WritableComparable;
+
+import com.hp.hpl.jena.graph.Node;
+
+/**
+ * Represents a characteristic for a single node and contains the node and a
+ * count associated with that node
+ * <p>
+ * Note that characteristics are compared based upon only the nodes and not
+ * their counts
+ * </p>
+ *
+ * @author rvesse
+ *
+ */
+public class CharacteristicWritable implements WritableComparable<CharacteristicWritable> {
+
+ private NodeWritable node = new NodeWritable();
+ private LongWritable count = new LongWritable();
+
+ /**
+ * Creates an empty characteristic writable
+ */
+ public CharacteristicWritable() {
+ this(null);
+ }
+
+ /**
+ * Creates a characteristic writable with the given node and the default
+ * count of 1
+ *
+ * @param n
+ * Node
+ */
+ public CharacteristicWritable(Node n) {
+ this(n, 1);
+ }
+
+ /**
+ * Creates a characteristic writable with the given node and count
+ *
+ * @param n
+ * Node
+ * @param count
+ * Count
+ */
+ public CharacteristicWritable(Node n, long count) {
+ this.node.set(n);
+ this.count.set(count);
+ }
+
+ /**
+ * Creates a new instance and reads in its data from the given input
+ *
+ * @param input
+ * Input
+ * @return New instance
+ * @throws IOException
+ */
+ public static CharacteristicWritable read(DataInput input) throws IOException {
+ CharacteristicWritable cw = new CharacteristicWritable();
+ cw.readFields(input);
+ return cw;
+ }
+
+ /**
+ * Gets the node
+ *
+ * @return Node
+ */
+ public NodeWritable getNode() {
+ return this.node;
+ }
+
+ /**
+ * Gets the count
+ *
+ * @return Count
+ */
+ public LongWritable getCount() {
+ return this.count;
+ }
+
+ /**
+ * Increments the count by 1
+ */
+ public void increment() {
+ this.increment(1);
+ }
+
+ /**
+ * Increments the count by the given value
+ *
+ * @param l
+ * Value to increment by
+ */
+ public void increment(long l) {
+ this.count.set(this.count.get() + l);
+ }
+
+ @Override
+ public void write(DataOutput output) throws IOException {
+ this.node.write(output);
+ this.count.write(output);
+ }
+
+ @Override
+ public void readFields(DataInput input) throws IOException {
+ this.node.readFields(input);
+ this.count.readFields(input);
+ }
+
+ @Override
+ public int compareTo(CharacteristicWritable o) {
+ return this.node.compareTo(o.node);
+ }
+
+ @Override
+ public boolean equals(Object other) {
+ if (!(other instanceof CharacteristicWritable))
+ return false;
+ return this.compareTo((CharacteristicWritable) other) == 0;
+ }
+
+ @Override
+ public int hashCode() {
+ return this.node.hashCode();
+ }
+
+ @Override
+ public String toString() {
+ return "(" + this.node.toString() + ", " + this.count.toString() + ")";
+ }
+
+}
Added: jena/Experimental/hadoop-rdf/hadoop-rdf-common/src/main/java/com/yarcdata/urika/hadoop/rdf/types/NodeTupleWritable.java
URL: http://svn.apache.org/viewvc/jena/Experimental/hadoop-rdf/hadoop-rdf-common/src/main/java/com/yarcdata/urika/hadoop/rdf/types/NodeTupleWritable.java?rev=1583942&view=auto
==============================================================================
--- jena/Experimental/hadoop-rdf/hadoop-rdf-common/src/main/java/com/yarcdata/urika/hadoop/rdf/types/NodeTupleWritable.java (added)
+++ jena/Experimental/hadoop-rdf/hadoop-rdf-common/src/main/java/com/yarcdata/urika/hadoop/rdf/types/NodeTupleWritable.java Wed Apr 2 09:20:51 2014
@@ -0,0 +1,66 @@
+/*
+ * Copyright 2013 YarcData LLC All Rights Reserved.
+ */
+
+package com.yarcdata.urika.hadoop.rdf.types;
+
+import java.io.DataInput;
+import java.io.IOException;
+
+import org.apache.jena.atlas.lib.Tuple;
+import com.hp.hpl.jena.graph.Node;
+
+/**
+ * A writable RDF tuple
+ * <p>
+ * Unlike the more specific {@link TripleWritable} and {@link QuadWritable} this
+ * class allows for arbitrary length tuples and does not restrict tuples to
+ * being of uniform size.
+ * </p>
+ *
+ * @author rvesse
+ *
+ */
+public class NodeTupleWritable extends AbstractNodeTupleWritable<Tuple<Node>> {
+
+ /**
+ * Creates a new empty instance
+ */
+ public NodeTupleWritable() {
+ this(null);
+ }
+
+ /**
+ * Creates a new instance with the given value
+ *
+ * @param tuple
+ * Tuple
+ */
+ public NodeTupleWritable(Tuple<Node> tuple) {
+ super(tuple);
+ }
+
+ /**
+ * Creates a new instance from the given input
+ *
+ * @param input
+ * Input
+ * @return New instance
+ * @throws IOException
+ */
+ public static NodeTupleWritable read(DataInput input) throws IOException {
+ NodeTupleWritable t = new NodeTupleWritable();
+ t.readFields(input);
+ return t;
+ }
+
+ @Override
+ protected Tuple<Node> createTuple(Node[] ns) {
+ return Tuple.create(ns);
+ }
+
+ @Override
+ protected Node[] createNodes(Tuple<Node> tuple) {
+ return tuple.tuple();
+ }
+}
Added: jena/Experimental/hadoop-rdf/hadoop-rdf-common/src/main/java/com/yarcdata/urika/hadoop/rdf/types/NodeWritable.java
URL: http://svn.apache.org/viewvc/jena/Experimental/hadoop-rdf/hadoop-rdf-common/src/main/java/com/yarcdata/urika/hadoop/rdf/types/NodeWritable.java?rev=1583942&view=auto
==============================================================================
--- jena/Experimental/hadoop-rdf/hadoop-rdf-common/src/main/java/com/yarcdata/urika/hadoop/rdf/types/NodeWritable.java (added)
+++ jena/Experimental/hadoop-rdf/hadoop-rdf-common/src/main/java/com/yarcdata/urika/hadoop/rdf/types/NodeWritable.java Wed Apr 2 09:20:51 2014
@@ -0,0 +1,201 @@
+/*
+ * Copyright 2013 YarcData LLC All Rights Reserved.
+ */
+
+package com.yarcdata.urika.hadoop.rdf.types;
+
+import java.io.DataInput;
+import java.io.DataOutput;
+import java.io.IOException;
+import java.io.StringWriter;
+import java.nio.charset.Charset;
+
+import org.apache.hadoop.io.WritableComparable;
+import org.apache.hadoop.io.WritableComparator;
+import org.apache.hadoop.io.WritableUtils;
+import org.apache.jena.atlas.io.AWriter;
+import org.apache.jena.atlas.io.Writer2;
+import org.apache.jena.riot.RiotException;
+import org.apache.jena.riot.lang.LabelToNode;
+import org.apache.jena.riot.out.NodeFmtLib;
+import org.apache.jena.riot.out.NodeFormatter;
+import org.apache.jena.riot.out.NodeFormatterNT;
+import org.apache.jena.riot.out.NodeToLabel;
+import org.apache.jena.riot.system.SyntaxLabels;
+import org.apache.jena.riot.tokens.Token;
+import org.apache.jena.riot.tokens.Tokenizer;
+import org.apache.jena.riot.tokens.TokenizerFactory;
+
+import com.hp.hpl.jena.graph.Node;
+import com.hp.hpl.jena.sparql.util.NodeUtils;
+import com.yarcdata.urika.hadoop.rdf.types.compators.NodeComparator;
+
+/**
+ * A writable for {@link Node} instances
+ *
+ * @author rvesse
+ *
+ */
+public class NodeWritable implements WritableComparable<NodeWritable> {
+
+ protected static final Charset utf8 = Charset.forName("utf-8");
+ protected static final NodeFormatter formatter = new NodeFormatterNT();
+ protected static final NodeToLabel nodeToLabel = SyntaxLabels.createNodeToLabelRT();
+ protected static final LabelToNode labelToNode = SyntaxLabels.createLabelToNodeRT();
+
+ static {
+ WritableComparator.define(NodeWritable.class, new NodeComparator());
+ }
+
+ private Node node;
+
+ /**
+ * Creates an empty writable
+ */
+ public NodeWritable() {
+ this(null);
+ }
+
+ /**
+ * Creates a new instance from the given input
+ *
+ * @param input
+ * Input
+ * @return New instance
+ * @throws IOException
+ */
+ public static NodeWritable read(DataInput input) throws IOException {
+ NodeWritable nw = new NodeWritable();
+ nw.readFields(input);
+ return nw;
+ }
+
+ /**
+ * Creates a new writable with the given value
+ *
+ * @param n
+ * Node
+ */
+ public NodeWritable(Node n) {
+ // Finally set the node
+ this.set(n);
+ }
+
+ /**
+ * Gets the node
+ *
+ * @return Node
+ */
+ public Node get() {
+ return this.node;
+ }
+
+ /**
+ * Sets the node
+ *
+ * @param n
+ * Node
+ */
+ public void set(Node n) {
+ if (n == null || !n.isBlank()) {
+ this.node = n;
+ } else {
+ // Special handling for blank nodes
+ this.node = labelToNode.get(null, nodeToLabel.get(null, n));
+ }
+ }
+
+ @Override
+ public void readFields(DataInput input) throws IOException {
+ // Read type and ignore, used elsewhere for fast binary comparisons
+ WritableUtils.readVInt(input);
+
+ // Read length and use this to read in the bytes that represent the
+ // serialized node
+ int length = WritableUtils.readVInt(input);
+ byte[] bytes = new byte[length];
+ input.readFully(bytes, 0, length);
+
+ // Parse in the node
+ this.node = this.parseNode(new String(bytes, utf8));
+ }
+
+ protected Node parseNode(String nodeString) {
+ Tokenizer tokenizer = TokenizerFactory.makeTokenizerString(nodeString);
+ if (!tokenizer.hasNext())
+ throw new RiotException("Empty RDF term");
+ Token token = tokenizer.next();
+ Node node;
+ if (token.isBNode()) {
+ String label = NodeFmtLib.decodeBNodeLabel(token.getImage());
+ node = labelToNode.get(null, label);
+ } else {
+ node = token.asNode(null);
+ }
+ if (node == null)
+ throw new RiotException("Bad RDF Term: " + nodeString);
+
+ if (tokenizer.hasNext())
+ throw new RiotException("Trailing characters in string: " + nodeString);
+ if (node.isURI()) {
+ // Lightly test for bad URIs.
+ String x = node.getURI();
+ if (x.indexOf(' ') >= 0)
+ throw new RiotException("Space(s) in IRI: " + nodeString);
+ }
+ return node;
+ }
+
+ @Override
+ public void write(DataOutput output) throws IOException {
+ StringWriter strWriter = new StringWriter();
+ AWriter writer = Writer2.wrap(strWriter);
+ formatter.format(writer, this.node);
+ writer.close();
+ String nodeStr = strWriter.toString();
+ byte[] bytes = nodeStr.getBytes(utf8);
+ // Write out type, length and bytes
+ WritableUtils.writeVInt(output, this.getTypeId());
+ WritableUtils.writeVInt(output, bytes.length);
+ output.write(bytes);
+ }
+
+ /**
+ * Gets the node type identifier
+ *
+ * @return Node type identifier
+ */
+ protected final int getTypeId() {
+ if (node.isVariable())
+ return 0;
+ if (node.isBlank())
+ return 1;
+ if (node.isURI())
+ return 2;
+ if (node.isLiteral())
+ return 3;
+ throw new RuntimeException("Unknown node type");
+ }
+
+ @Override
+ public int compareTo(NodeWritable other) {
+ return NodeUtils.compareRDFTerms(this.node, other.node);
+ }
+
+ @Override
+ public String toString() {
+ return this.node.toString();
+ }
+
+ @Override
+ public int hashCode() {
+ return this.node.hashCode();
+ }
+
+ @Override
+ public boolean equals(Object other) {
+ if (!(other instanceof NodeWritable))
+ return false;
+ return this.compareTo((NodeWritable) other) == 0;
+ }
+}
Added: jena/Experimental/hadoop-rdf/hadoop-rdf-common/src/main/java/com/yarcdata/urika/hadoop/rdf/types/QuadWritable.java
URL: http://svn.apache.org/viewvc/jena/Experimental/hadoop-rdf/hadoop-rdf-common/src/main/java/com/yarcdata/urika/hadoop/rdf/types/QuadWritable.java?rev=1583942&view=auto
==============================================================================
--- jena/Experimental/hadoop-rdf/hadoop-rdf-common/src/main/java/com/yarcdata/urika/hadoop/rdf/types/QuadWritable.java (added)
+++ jena/Experimental/hadoop-rdf/hadoop-rdf-common/src/main/java/com/yarcdata/urika/hadoop/rdf/types/QuadWritable.java Wed Apr 2 09:20:51 2014
@@ -0,0 +1,66 @@
+/*
+ * Copyright 2013 YarcData LLC All Rights Reserved.
+ */
+
+package com.yarcdata.urika.hadoop.rdf.types;
+
+import java.io.DataInput;
+import java.io.IOException;
+
+import com.hp.hpl.jena.graph.Node;
+import com.hp.hpl.jena.sparql.core.Quad;
+
+/**
+ * A writable quad
+ *
+ * @author rvesse
+ *
+ */
+public class QuadWritable extends AbstractNodeTupleWritable<Quad> {
+
+ /**
+ * Creates a new empty instance
+ */
+ public QuadWritable() {
+ this(null);
+ }
+
+ /**
+ * Creates a new instance with the given value
+ *
+ * @param q
+ * Quad
+ */
+ public QuadWritable(Quad q) {
+ super(q);
+ }
+
+ /**
+ * Creates a new instance from the given input
+ *
+ * @param input
+ * Input
+ * @return New instance
+ * @throws IOException
+ */
+ public static QuadWritable read(DataInput input) throws IOException {
+ QuadWritable q = new QuadWritable();
+ q.readFields(input);
+ return q;
+ }
+
+ @Override
+ protected Quad createTuple(Node[] ns) {
+ if (ns.length != 4)
+ throw new IllegalArgumentException(String.format("Incorrect number of nodes to form a quad - got %d but expected 4",
+ ns.length));
+ return new Quad(ns[0], ns[1], ns[2], ns[3]);
+ }
+
+ @Override
+ protected Node[] createNodes(Quad tuple) {
+ Quad q = this.get();
+ return new Node[] { q.getGraph(), q.getSubject(), q.getPredicate(), q.getObject() };
+ }
+
+}
Added: jena/Experimental/hadoop-rdf/hadoop-rdf-common/src/main/java/com/yarcdata/urika/hadoop/rdf/types/TripleWritable.java
URL: http://svn.apache.org/viewvc/jena/Experimental/hadoop-rdf/hadoop-rdf-common/src/main/java/com/yarcdata/urika/hadoop/rdf/types/TripleWritable.java?rev=1583942&view=auto
==============================================================================
--- jena/Experimental/hadoop-rdf/hadoop-rdf-common/src/main/java/com/yarcdata/urika/hadoop/rdf/types/TripleWritable.java (added)
+++ jena/Experimental/hadoop-rdf/hadoop-rdf-common/src/main/java/com/yarcdata/urika/hadoop/rdf/types/TripleWritable.java Wed Apr 2 09:20:51 2014
@@ -0,0 +1,66 @@
+/*
+ * Copyright 2013 YarcData LLC All Rights Reserved.
+ */
+
+package com.yarcdata.urika.hadoop.rdf.types;
+
+import java.io.DataInput;
+import java.io.IOException;
+
+import com.hp.hpl.jena.graph.Node;
+import com.hp.hpl.jena.graph.Triple;
+
+/**
+ * A writable triple
+ *
+ * @author rvesse
+ *
+ */
+public class TripleWritable extends AbstractNodeTupleWritable<Triple> {
+
+ /**
+ * Creates a new instance using the default NTriples node formatter
+ */
+ public TripleWritable() {
+ this(null);
+ }
+
+ /**
+ * Creates a new instance with a given value that uses a specific node
+ * formatter
+ *
+ * @param t
+ * Triple
+ */
+ public TripleWritable(Triple t) {
+ super(t);
+ }
+
+ /**
+ * Creates a new instance from the given input
+ *
+ * @param input
+ * Input
+ * @return New instance
+ * @throws IOException
+ */
+ public static TripleWritable read(DataInput input) throws IOException {
+ TripleWritable t = new TripleWritable();
+ t.readFields(input);
+ return t;
+ }
+
+ @Override
+ protected Triple createTuple(Node[] ns) {
+ if (ns.length != 3)
+ throw new IllegalArgumentException(String.format(
+ "Incorrect number of nodes to form a triple - got %d but expected 3", ns.length));
+ return new Triple(ns[0], ns[1], ns[2]);
+ }
+
+ @Override
+ protected Node[] createNodes(Triple tuple) {
+ Triple t = this.get();
+ return new Node[] { t.getSubject(), t.getPredicate(), t.getObject() };
+ }
+}
Added: jena/Experimental/hadoop-rdf/hadoop-rdf-common/src/main/java/com/yarcdata/urika/hadoop/rdf/types/compators/NodeComparator.java
URL: http://svn.apache.org/viewvc/jena/Experimental/hadoop-rdf/hadoop-rdf-common/src/main/java/com/yarcdata/urika/hadoop/rdf/types/compators/NodeComparator.java?rev=1583942&view=auto
==============================================================================
--- jena/Experimental/hadoop-rdf/hadoop-rdf-common/src/main/java/com/yarcdata/urika/hadoop/rdf/types/compators/NodeComparator.java (added)
+++ jena/Experimental/hadoop-rdf/hadoop-rdf-common/src/main/java/com/yarcdata/urika/hadoop/rdf/types/compators/NodeComparator.java Wed Apr 2 09:20:51 2014
@@ -0,0 +1,52 @@
+/*
+ * Copyright 2013 YarcData LLC All Rights Reserved.
+ */
+
+package com.yarcdata.urika.hadoop.rdf.types.compators;
+
+import java.io.IOException;
+
+import org.apache.hadoop.io.DataInputBuffer;
+import org.apache.hadoop.io.WritableComparator;
+import org.apache.hadoop.io.WritableUtils;
+
+/**
+ * A comparator for nodes that provides an efficient binary comparison
+ *
+ * @author rvesse
+ *
+ */
+public class NodeComparator extends WritableComparator {
+
+ private DataInputBuffer buffer = new DataInputBuffer();
+
+ @Override
+ public int compare(byte[] b1, int s1, int l1, byte[] b2, int s2, int l2) {
+ try {
+ // Read info for first node
+ buffer.reset(b1, s1, l1);
+ int type1 = WritableUtils.readVInt(buffer);
+ int length1 = WritableUtils.readVInt(buffer);
+
+ // Read info for second node
+ buffer.reset(b2, s2, l2);
+ int type2 = WritableUtils.readVInt(buffer);
+ int length2 = WritableUtils.readVInt(buffer);
+
+ // Are types different?
+ if (type1 < type2) {
+ return -1;
+ } else if (type1 > type2) {
+ return 1;
+ }
+
+ // Otherwise compare lexicographically
+ int adj1 = WritableUtils.getVIntSize(type1) + WritableUtils.getVIntSize(length1);
+ int adj2 = WritableUtils.getVIntSize(type2) + WritableUtils.getVIntSize(length2);
+ return WritableComparator.compareBytes(b1, s1 + adj1, l1 - adj1, b2, s2 + adj2, l2 - adj2);
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+}