package com.ontology2.bakemono.rewriteSubject; import com.ontology2.bakemono.joins.TaggedTextItem; import com.ontology2.bakemono.primitiveTriples.PrimitiveTriple; import com.ontology2.bakemono.primitiveTriples.PrimitiveTripleCodec; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Reducer; import java.io.IOException; public class RewriteSubjectReducer extends Reducer<TaggedTextItem,TaggedTextItem,Text,Text> { PrimitiveTripleCodec ptc=new PrimitiveTripleCodec(); Log LOG= LogFactory.getLog(RewriteSubjectReducer.class); @Override public void reduce(TaggedTextItem key, Iterable<TaggedTextItem> values, Context context) throws IOException, InterruptedException { String newSubject=null; for(TaggedTextItem value:values) { int tag=value.getTag().get(); PrimitiveTriple t=ptc.decode(value.getKey().toString()); switch(tag) { case 1: if(t.getPredicate().equals("<http://www.w3.org/2002/07/owl#sameAs>")) newSubject=t.getObject(); break; default: if(newSubject!=null) context.write( new Text(newSubject), new Text(t.getPredicate()+"\t"+t.getObject()+"\t.") ); } } } }