use of au.gov.asd.tac.constellation.views.analyticview.results.ScoreResult in project constellation by constellation-app.
the class MaxScoreAggregator method aggregate.
@Override
public ScoreResult aggregate(final List<ScoreResult> results) {
final ScoreResult combinedResults = new ScoreResult();
final ScoreResult aggregateResult = new ScoreResult();
if (CollectionUtils.isEmpty(results)) {
return aggregateResult;
}
aggregateResult.setIgnoreNullResults(results.stream().anyMatch(result -> result.isIgnoreNullResults()));
results.forEach(scoreResult -> combinedResults.combine(scoreResult));
combinedResults.getResult().forEach((key, value) -> {
final Map<String, Float> aggregateScores = new HashMap<>();
aggregateScores.put(SCORE_NAME, value.getNamedScores().values().stream().reduce(Math::max).orElse(0.0F));
aggregateResult.add(new ElementScore(key.getElementType(), key.getElementId(), key.getIdentifier(), false, aggregateScores));
});
return aggregateResult;
}
use of au.gov.asd.tac.constellation.views.analyticview.results.ScoreResult in project constellation by constellation-app.
the class MeanScoreAggregator method aggregate.
@Override
public ScoreResult aggregate(final List<ScoreResult> results) {
final ScoreResult combinedResults = new ScoreResult();
final ScoreResult aggregateResult = new ScoreResult();
if (CollectionUtils.isEmpty(results)) {
return aggregateResult;
}
aggregateResult.setIgnoreNullResults(results.stream().anyMatch(result -> result.isIgnoreNullResults()));
results.forEach(scoreResult -> combinedResults.combine(scoreResult));
combinedResults.getResult().forEach((key, value) -> {
final Map<String, Float> aggregateScores = new HashMap<>();
aggregateScores.put(SCORE_NAME, value.getNamedScores().values().stream().reduce((x, y) -> x + y).orElse(0.0F) / value.getNamedScores().size());
aggregateResult.add(new ElementScore(key.getElementType(), key.getElementId(), key.getIdentifier(), false, aggregateScores));
});
return aggregateResult;
}
use of au.gov.asd.tac.constellation.views.analyticview.results.ScoreResult in project constellation by constellation-app.
the class ScoreAnalyticPlugin method computeResultsFromGraph.
protected final void computeResultsFromGraph(final GraphReadMethods graph, final PluginParameters parameters) {
result = new ScoreResult();
result.setIgnoreNullResults(ignoreDefaultValues());
int graphElementCount = 0;
int identifierAttributeId = Graph.NOT_FOUND;
final Set<GraphElementType> graphElementTypes = getAnalyticAttributes(parameters).stream().map(attribute -> attribute.getElementType()).collect(Collectors.toSet());
for (final GraphElementType graphElementType : graphElementTypes) {
switch(graphElementType) {
case VERTEX:
graphElementCount = graph.getVertexCount();
identifierAttributeId = VisualConcept.VertexAttribute.IDENTIFIER.get(graph);
break;
case TRANSACTION:
graphElementCount = graph.getTransactionCount();
identifierAttributeId = VisualConcept.TransactionAttribute.IDENTIFIER.get(graph);
break;
default:
break;
}
for (int graphElementPosition = 0; graphElementPosition < graphElementCount; graphElementPosition++) {
final int graphElementId;
if (graphElementType == GraphElementType.VERTEX) {
graphElementId = graph.getVertex(graphElementPosition);
} else {
graphElementId = graphElementType == GraphElementType.TRANSACTION ? graph.getTransaction(graphElementPosition) : Graph.NOT_FOUND;
}
final String identifier = graph.getStringValue(identifierAttributeId, graphElementId);
final Map<String, Float> namedScores = new HashMap<>();
boolean isNull = true;
for (final SchemaAttribute analyticAttribute : getAnalyticAttributes(parameters)) {
final int scoreAttributeId = analyticAttribute.get(graph);
if (scoreAttributeId == Graph.NOT_FOUND) {
throw new RuntimeException("Expected attribute not found on graph: " + analyticAttribute.getName());
}
final float score = graph.getFloatValue(scoreAttributeId, graphElementId);
final float defaultScore = (float) graph.getAttributeDefaultValue(scoreAttributeId);
if (isNull) {
isNull = ignoreDefaultValues() && score == defaultScore;
}
namedScores.put(analyticAttribute.getName(), score);
}
result.add(new ElementScore(graphElementType, graphElementId, identifier, isNull, namedScores));
}
}
}
use of au.gov.asd.tac.constellation.views.analyticview.results.ScoreResult in project constellation by constellation-app.
the class AppendScoreAggregator method aggregate.
@Override
public ScoreResult aggregate(final List<ScoreResult> results) throws AnalyticException {
final ScoreResult aggregateResult = new ScoreResult();
if (CollectionUtils.isEmpty(results)) {
return aggregateResult;
}
aggregateResult.setIgnoreNullResults(results.stream().anyMatch(result -> result.isIgnoreNullResults()));
results.forEach(scoreResult -> aggregateResult.combine(scoreResult));
return aggregateResult;
}
use of au.gov.asd.tac.constellation.views.analyticview.results.ScoreResult in project constellation by constellation-app.
the class MinScoreAggregator method aggregate.
@Override
public ScoreResult aggregate(final List<ScoreResult> results) {
final ScoreResult combinedResults = new ScoreResult();
final ScoreResult aggregateResult = new ScoreResult();
if (CollectionUtils.isEmpty(results)) {
return aggregateResult;
}
aggregateResult.setIgnoreNullResults(results.stream().anyMatch(result -> result.isIgnoreNullResults()));
results.forEach(scoreResult -> combinedResults.combine(scoreResult));
combinedResults.getResult().forEach((key, value) -> {
final Map<String, Float> aggregateScores = new HashMap<>();
aggregateScores.put(SCORE_NAME, value.getNamedScores().values().stream().reduce(Math::min).orElse(0.0F));
aggregateResult.add(new ElementScore(key.getElementType(), key.getElementId(), key.getIdentifier(), false, aggregateScores));
});
return aggregateResult;
}
Aggregations