- System.out.format("Converting exported shared ontology%n\t" + input.toString() + "%nto bundle-compatible ontology%n\t" + output.toString());
- try (InputStream is = new BufferedInputStream(Files.newInputStream(input), 128*1024)) {
- DataInput dis = new DataInputStream(is);
- org.simantics.databoard.container.DataContainer container =
- DataContainers.readFile(dis);
- Binding binding = TransferableGraph1.BINDING;
- TransferableGraph1 graph = (TransferableGraph1)container.content.getValue(binding);
- prettyPrint(graph);
- Files.write(output, this.output.toString().getBytes());
-
- }
-
- }
-
- static Map<String,String> knownOntologies = new HashMap<>();
-
- static {
- knownOntologies.put("http://www.simantics.org/Layer0-1.1", "L0");
- knownOntologies.put("http://www.simantics.org/Layer0X-1.1", "L0X");
- knownOntologies.put("http://www.simantics.org/Modeling-1.2", "MOD");
- knownOntologies.put("http://www.simantics.org/Diagram-2.2", "DIA");
- knownOntologies.put("http://www.simantics.org/Structural-1.2", "STR");
- knownOntologies.put("http://www.simantics.org/Document-1.2", "DOC");
- knownOntologies.put("http://www.simantics.org/Documentation-1.2", "DOCU");
- knownOntologies.put("http://www.simantics.org/G2D-1.1", "G2D");
- knownOntologies.put("http://www.simantics.org/SelectionView-1.2", "SEL");
- knownOntologies.put("http://www.simantics.org/Viewpoint-1.2", "VP");
- knownOntologies.put("http://www.simantics.org/Image2-1.2", "IMAGE2");
- knownOntologies.put("http://www.simantics.org/GraphFile-0.1", "GRAPHFILE");
- knownOntologies.put("http://www.simantics.org/Project-1.2", "PROJECT");
- knownOntologies.put("http://www.semantum.fi/Simupedia-1.0", "SIMUPEDIA");
- knownOntologies.put("http://www.semantum.fi/SimupediaWorkbench-1.0", "SIMUPEDIA_WORKBENCH");
- }
-
-
- void prettyPrint(TransferableGraph1 graph) throws Exception {
- log("Starting prettyPrint for TransferableGraph with " + graph.resourceCount + " resources, " + graph.identities + " identities, " + graph.statements.length + " statements and " + graph.values.length + " values");
-
- for(Identity id : graph.identities) {
- if(id.definition instanceof Internal) {
- Internal internal = (Internal)id.definition;
- Identity parent = TransferableGraphUtils.getIdentity(graph, internal.parent);
- if(parent.definition instanceof External) {
- log("Resolving internal identity " + id);
- String name = "BASE";
- ResourceInfo info = new ResourceInfo(true, name, id.resource, -1);
- info.aliasURI = TransferableGraphUtils.getURI(graph, id.resource);
- info.newResource = true;
- orderedInfos.put(name, info);
-// infos.put(id.resource, info);
- log(" which parent is external " + parent + " and has an aliasURI " + info.aliasURI);
- for(Identity child : TransferableGraphUtils.getChildren(graph, id)) {
- recurseURI(graph, child, name, info.resource);
- }
- log(" and has " + (infos.size() - 1) + " children");
- }
- } else if (id.definition instanceof External) {
- External ext = (External)id.definition;
- // Try to detect shared libraries
- if(ext.name.contains("@")) {
-
- log("Detected an external shared library " + ext);
-
- int index = ext.name.indexOf('@');
- String prefix = ext.name.substring(0, index);
- int index2 = ext.name.indexOf('/', index);
- String ontology = index2 == -1 ? ext.name : ext.name.substring(0, index2);
- String uri = TransferableGraphUtils.getURI(graph, id.resource);
-
- log(" which was resolved as URI=" + uri + " and prefix " + prefix);
-
- ontologies.put(uri, prefix);
-
- } else if (ext.name.contains("-")) {
- log("Resolving possible ontology " + ext);
- String uri = TransferableGraphUtils.getURI(graph, id.resource);
- Matcher m = versionExtractPattern.matcher(uri);
- if (m.matches()) {
- if(!ontologies.containsKey(uri)) {
- int index = ext.name.indexOf('-');
+ System.out.format("Converting exported shared ontology%n\t" + input.toString()
+ + "%nto bundle-compatible ontology%n\t" + output.toString());
+ try (InputStream is = new BufferedInputStream(Files.newInputStream(input), 128 * 1024)) {
+ DataInput dis = new DataInputStream(is);
+ org.simantics.databoard.container.DataContainer container = DataContainers.readFile(dis);
+ Binding binding = TransferableGraph1.BINDING;
+ TransferableGraph1 graph = (TransferableGraph1) container.content.getValue(binding);
+ prettyPrint(graph);
+ Files.write(output, this.output.toString().getBytes());
+
+ }
+
+ }
+
+ static Map<String, String> knownOntologies = new HashMap<>();
+
+ static {
+ knownOntologies.put("http://www.simantics.org/Layer0-1.1", "L0");
+ knownOntologies.put("http://www.simantics.org/Layer0X-1.1", "L0X");
+ knownOntologies.put("http://www.simantics.org/Modeling-1.2", "MOD");
+ knownOntologies.put("http://www.simantics.org/Diagram-2.2", "DIA");
+ knownOntologies.put("http://www.simantics.org/Structural-1.2", "STR");
+ knownOntologies.put("http://www.simantics.org/Document-1.2", "DOC");
+ knownOntologies.put("http://www.simantics.org/Documentation-1.2", "DOCU");
+ knownOntologies.put("http://www.simantics.org/G2D-1.1", "G2D");
+ knownOntologies.put("http://www.simantics.org/SelectionView-1.2", "SEL");
+ knownOntologies.put("http://www.simantics.org/Viewpoint-1.2", "VP");
+ knownOntologies.put("http://www.simantics.org/Image2-1.2", "IMAGE2");
+ knownOntologies.put("http://www.simantics.org/GraphFile-0.1", "GRAPHFILE");
+ knownOntologies.put("http://www.simantics.org/Project-1.2", "PROJECT");
+ knownOntologies.put("http://www.semantum.fi/Simupedia-1.0", "SIMUPEDIA");
+ knownOntologies.put("http://www.semantum.fi/SimupediaWorkbench-1.0", "SIMUPEDIA_WORKBENCH");
+ }
+
+ void prettyPrint(TransferableGraph1 graph) throws Exception {
+ log("Starting prettyPrint for TransferableGraph with {} resources, {} identities, {} statements and {} values",
+ graph.resourceCount, graph.identities, graph.statements.length, graph.values.length);
+
+ for (Identity id : graph.identities) {
+ if (id.definition instanceof Internal) {
+ Internal internal = (Internal) id.definition;
+ Identity parent = TransferableGraphUtils.getIdentity(graph, internal.parent);
+ if (parent.definition instanceof External) {
+ log("Resolving internal identity {}", id);
+ String name = "BASE";
+ ResourceInfo info = new ResourceInfo(true, name, id.resource, -1);
+ info.aliasURI = TransferableGraphUtils.getURI(graph, id.resource);
+ info.newResource = true;
+ orderedInfos.put(name, info);
+ // infos.put(id.resource, info);
+ log(" which parent is external {} and has an aliasURI {}", parent, info.aliasURI);
+ for (Identity child : TransferableGraphUtils.getChildren(graph, id)) {
+ recurseURI(graph, child, name, info.resource);
+ }
+ log(" and has {} children", infos.size());
+ }
+ } else if (id.definition instanceof External) {
+ External ext = (External) id.definition;
+ // Try to detect shared libraries
+ if (ext.name.contains("@")) {
+
+ log("Detected an external shared library {}", ext);
+
+ int index = ext.name.indexOf('@');
+ String prefix = ext.name.substring(0, index);
+ int index2 = ext.name.indexOf('/', index);
+ String ontology = index2 == -1 ? ext.name : ext.name.substring(0, index2);
+ String uri = TransferableGraphUtils.getURI(graph, id.resource);
+
+ log(" which was resolved as URI={} and prefix={}", uri, prefix);
+
+ ontologies.put(uri, prefix);
+
+ } else if (ext.name.contains("-")) {
+ log("Resolving possible ontology {}", ext);
+ String uri = TransferableGraphUtils.getURI(graph, id.resource);
+ Matcher m = versionExtractPattern.matcher(uri);
+ if (m.matches()) {
+ if (!ontologies.containsKey(uri)) {
+ int index = ext.name.indexOf('-');