diff --git a/src/main/java/com/metaweb/gridworks/protograph/transpose/TripleLoaderTransposedNodeFactory.java b/src/main/java/com/metaweb/gridworks/protograph/transpose/TripleLoaderTransposedNodeFactory.java index 867b28228..22696e34d 100644 --- a/src/main/java/com/metaweb/gridworks/protograph/transpose/TripleLoaderTransposedNodeFactory.java +++ b/src/main/java/com/metaweb/gridworks/protograph/transpose/TripleLoaderTransposedNodeFactory.java @@ -1,7 +1,9 @@ package com.metaweb.gridworks.protograph.transpose; +import java.util.HashMap; import java.util.LinkedList; import java.util.List; +import java.util.Map; import org.json.JSONObject; @@ -19,6 +21,7 @@ import com.metaweb.gridworks.protograph.ValueNode; public class TripleLoaderTransposedNodeFactory implements TransposedNodeFactory { protected List rootNodes = new LinkedList(); protected StringBuffer stringBuffer; + protected Map varPool = new HashMap(); public String getLoad() { stringBuffer = new StringBuffer(); @@ -112,12 +115,22 @@ public class TripleLoaderTransposedNodeFactory implements TransposedNodeFactory cell.recon.match != null) { id = cell.recon.match.topicID; } else { - id = "$" + node.columnName.replaceAll("\\W", "_"); + long var = 0; + if (varPool.containsKey(node.columnName)) { + var = varPool.get(node.columnName); + } + varPool.put(node.columnName, var + 1); + + id = "$" + node.columnName.replaceAll("\\W+", "_") + "_" + var; writeLine("{ 's' : '" + id + "', 'p' : 'type', 'o' : '" + node.type.id + "' }"); writeLine("{ 's' : '" + id + "', 'p' : 'name', 'o' : " + JSONObject.quote(cell.value.toString()) + " }"); } + if (subject != null) { + writeLine(subject, predicate, id); + } + writeChildren(id); return JSONObject.quote(id);