-//
-// Variant variant = value.value;
-// Datatype dt = variant.getBinding().type();
-// if (Datatypes.STRING.equals(dt)) {
-// String s = (String) variant.getValue(Bindings.STRING);
-// if (s.contains("\n")) {
-// return "\"\"\"" + s + "\"\"\"";
-// } else {
-// return "\"" + s + "\"";
-// }
-// } else if (Datatypes.BOOLEAN.equals(dt)) {
-// Boolean i = (Boolean) variant.getValue(Bindings.BOOLEAN);
-// return i ? "true" : "false";
-// } else if (Datatypes.INTEGER.equals(dt)) {
-// Integer i = (Integer) variant.getValue(Bindings.INTEGER);
-// return i.toString();
-// } else if (Datatypes.LONG.equals(dt)) {
-// Long i = (Long) variant.getValue(Bindings.LONG);
-// return i.toString();
-// } else if (Datatypes.DOUBLE.equals(dt)) {
-// Double d = (Double) variant.getValue();
-// return d.toString();
-// } else if (Datatypes.FLOAT.equals(dt)) {
-// Float f = (Float) variant.getValue();
-// return f.toString();
-// } else if (Datatypes.STRING_ARRAY.equals(dt)) {
-// return Arrays.toString((String []) variant.getValue());
-// } else if (Datatypes.BOOLEAN_ARRAY.equals(dt)) {
-// return Arrays.toString((boolean []) variant.getValue());
-// } else if (Datatypes.INTEGER_ARRAY.equals(dt)) {
-// return Arrays.toString((int []) variant.getValue());
-// } else if (Datatypes.LONG_ARRAY.equals(dt)) {
-// return Arrays.toString((long []) variant.getValue());
-// } else if (Datatypes.DOUBLE_ARRAY.equals(dt)) {
-// return Arrays.toString((double []) variant.getValue());
-// } else if (Datatypes.FLOAT_ARRAY.equals(dt)) {
-// return Arrays.toString((float []) variant.getValue());
-// } else if (Datatypes.BYTE_ARRAY.equals(dt)) {
-// return Arrays.toString((byte []) variant.getValue());
-//// } else if (dt instanceof ArrayType) {
-//// return Arrays.toString((Object []) variant.getValue());
-// } else {
-// byte[] data = Bindings.getSerializerUnchecked(variant.getBinding()).serialize(variant.getValue());
-// m.reset();
-// m.update(data, 0, data.length);
-// return "\"" + new BigInteger(1, m.digest()).toString(16) + "\"";
-// }
+ //
+ // Variant variant = value.value;
+ // Datatype dt = variant.getBinding().type();
+ // if (Datatypes.STRING.equals(dt)) {
+ // String s = (String) variant.getValue(Bindings.STRING);
+ // if (s.contains("\n")) {
+ // return "\"\"\"" + s + "\"\"\"";
+ // } else {
+ // return "\"" + s + "\"";
+ // }
+ // } else if (Datatypes.BOOLEAN.equals(dt)) {
+ // Boolean i = (Boolean) variant.getValue(Bindings.BOOLEAN);
+ // return i ? "true" : "false";
+ // } else if (Datatypes.INTEGER.equals(dt)) {
+ // Integer i = (Integer) variant.getValue(Bindings.INTEGER);
+ // return i.toString();
+ // } else if (Datatypes.LONG.equals(dt)) {
+ // Long i = (Long) variant.getValue(Bindings.LONG);
+ // return i.toString();
+ // } else if (Datatypes.DOUBLE.equals(dt)) {
+ // Double d = (Double) variant.getValue();
+ // return d.toString();
+ // } else if (Datatypes.FLOAT.equals(dt)) {
+ // Float f = (Float) variant.getValue();
+ // return f.toString();
+ // } else if (Datatypes.STRING_ARRAY.equals(dt)) {
+ // return Arrays.toString((String []) variant.getValue());
+ // } else if (Datatypes.BOOLEAN_ARRAY.equals(dt)) {
+ // return Arrays.toString((boolean []) variant.getValue());
+ // } else if (Datatypes.INTEGER_ARRAY.equals(dt)) {
+ // return Arrays.toString((int []) variant.getValue());
+ // } else if (Datatypes.LONG_ARRAY.equals(dt)) {
+ // return Arrays.toString((long []) variant.getValue());
+ // } else if (Datatypes.DOUBLE_ARRAY.equals(dt)) {
+ // return Arrays.toString((double []) variant.getValue());
+ // } else if (Datatypes.FLOAT_ARRAY.equals(dt)) {
+ // return Arrays.toString((float []) variant.getValue());
+ // } else if (Datatypes.BYTE_ARRAY.equals(dt)) {
+ // return Arrays.toString((byte []) variant.getValue());
+ //// } else if (dt instanceof ArrayType) {
+ //// return Arrays.toString((Object []) variant.getValue());
+ // } else {
+ // byte[] data =
+ // Bindings.getSerializerUnchecked(variant.getBinding()).serialize(variant.getValue());
+ // m.reset();
+ // m.update(data, 0, data.length);
+ // return "\"" + new BigInteger(1, m.digest()).toString(16) + "\"";
+ // }
+
+ }
+
+ // void fixInstanceOf(TransferableGraph1 graph, ResourceInfo info) {
+ // Identity id = getIdentity(graph, info.resource);
+ // if(id == null) return;
+ // if(id.definition instanceof Internal) {
+ // Identity instanceOf = findExternal(graph,
+ // "http://www.simantics.org/Layer0-1.1/InstanceOf");
+ // Identity library = findExternal(graph,
+ // "http://www.simantics.org/Layer0-1.1/Library");
+ // info.statements.add(instanceOf.resource);
+ // info.statements.add(library.resource);
+ // }
+ // }
+
+ public static String getExternalURI(TransferableGraph1 tg, External ext) {
+ String name = ext.name;
+ if (name.contains(" "))
+ name = name.replace(" ", "_").replaceAll("@", "_");// name = "\"" +
+ // name + "\"";
+ int parentId = ext.parent;
+ // if(parentId == 0) return ext.name;
+ // else {
+ Identity id = TransferableGraphUtils.getIdentity(tg, parentId);
+ if (id.definition instanceof External) {
+ return getExternalURI(tg, (External) id.definition) + "/" + name;
+ } else if (id.definition instanceof Root) {
+ Root root = (Root) id.definition;
+ return "http:/" + root.name + "/" + name;
+ } else {
+ return null;
+ }
+ // }
+ }
+
+ public static String getExternalURI(TransferableGraph1 tg, int resource) {
+ Identity id = TransferableGraphUtils.getIdentity(tg, resource);
+ if (id == null)
+ return null;
+ if (id.definition instanceof External) {
+ External ext = (External) id.definition;
+ return getExternalURI(tg, ext);
+ }
+ return null;
+ }
+
+ String rewritePredicateURI(TransferableGraph1 graph, int predicate) {
+
+ String uri = getExternalURI(graph, predicate);
+ if (uri == null) {
+ ResourceInfo info = infos.get(predicate);
+ if (info != null)
+ return info.name;
+ return "_";
+ }
+
+ for (String ontology : ontologies.keySet()) {
+ if (uri.contains(ontology)) {
+ String key = ontologies.get(ontology);
+ uri = uri.replace(ontology, key);
+ referencedOntologies.add(ontology);
+ }
+ }
+
+ uri = uri.replace("/", ".");
+
+ return uri;
+
+ }