package edu.isi.karma.mapreduce.tripleparser;
import java.io.IOException;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper;
public class NodeMapper extends Mapper<Text, Text, Text, Text> {
@Override
public void map(Text key, Text value, Context context)
throws IOException, InterruptedException {
String keyStr = key.toString();
String[] parts = keyStr.split("\\t");
if (parts == null || parts.length != 3) return;
String subject = parts[0];
String object = parts[2];
String predicate = parts[1];
String node1, node2, label;
label = "Uri";
node1 = subject + "\t" + subject;
context.write(new Text(node1), new Text(label));
if (value.toString().length() == 0) {
if (predicate.equalsIgnoreCase("http://www.w3.org/1999/02/22-rdf-syntax-ns#type")) {
node2 = object + "\t" + object;
label = "Class";
} else {
node2 = object + "\t" + object;
label = "Uri";
}
} else {
node2 = object + "\t" + value;
label = "Literal";
}
context.write(new Text(node2), new Text(label));
}
}