package com.ontology2.bakemono.smushObject;
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 SmushObjectReducer extends Reducer<TaggedTextItem,TaggedTextItem,Text,Text> {
PrimitiveTripleCodec ptc=new PrimitiveTripleCodec();
Log LOG= LogFactory.getLog(SmushObjectReducer.class);
@Override
public void reduce(TaggedTextItem key, Iterable<TaggedTextItem> values, Context context) throws IOException, InterruptedException {
String newObject=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>"))
newObject=t.getObject();
break;
default:
if(newObject!=null)
context.write(
new Text(t.getSubject()),
new Text(t.getPredicate()+"\t"+newObject+"\t.")
);
}
}
}
}