@Override public String findRoot(TriplesMapGraph graph) { for(String triplesMapId :graph.getTriplesMapIds()) { if(graph.getTriplesMap(triplesMapId).getSubject().isSteinerTreeRootNode()) { return triplesMapId; } } return this.backupStrategy.findRoot(graph); }
TriplesMap map = graph.getTriplesMap(triplesMapId); if(!triplesMapToWorkerPlan.containsKey(map))
private Map<TriplesMap, TriplesMapWorker> generatePlan(TriplesMapGraph graph, TriplesMapPlan plan, RootStrategy strategy) { unprocessedTriplesMapsIds.addAll(graph.getTriplesMapIds()); //add strategy Map<TriplesMap, TriplesMapWorker> mapToWorker = new HashMap<>(); if(strategy == null) { strategy = new SteinerTreeRootStrategy(new WorksheetDepthRootStrategy()); } String triplesMapId = graph.findRoot(strategy); do { if(triplesMapId == null) { triplesMapId = unprocessedTriplesMapsIds.iterator().next(); } TriplesMap map = graph.getTriplesMap(triplesMapId); generateTriplesMapWorker(mapToWorker, graph, map, plan); triplesMapId = null; } while(!unprocessedTriplesMapsIds.isEmpty()); return mapToWorker; } private void generateTriplesMapWorker(
TriplesMap source = graph.getTriplesMap(link.getSourceMap().getId()); TriplesMap target = graph.getTriplesMap(link.getTargetMap().getId()); if(source != null || target != null)
@Override public String findRoot(TriplesMapGraph graph) { Set<String> triplesMapIds = graph.getTriplesMapIds(); int minDepth = Integer.MAX_VALUE; String root = null; for(String triplesMapId : triplesMapIds) { TriplesMap map = graph.getTriplesMap(triplesMapId); int depth = ColumnTemplateTerm.calculateMaximumColumnPathLength(map.getSubject().getTemplate().getAllColumnNameTermElements()); if(depth < minDepth) { minDepth = depth; root = triplesMapId; } } if(root == null) { return backupStrategy.findRoot(graph); } return root; }
TriplesMap tm = newGraph.getTriplesMap(triplesMapId); if(tm == null)
protected Schema getSchemaForTriplesMap(TriplesMapGraph graph, String triplesMapId) TriplesMap map = graph.getTriplesMap(triplesMapId); RecordBuilder<Schema> rb = SchemaBuilder.record("subjr"+(id++));