Skip to content

Commit

Permalink
Merge branch 'master' into feature/spellCheck
Browse files Browse the repository at this point in the history
# Conflicts:
#	CoreDataAccessView/src/au/gov/asd/tac/constellation/views/dataaccess/plugins/experimental/TestParametersPlugin.java
#	CoreDependencies/src/ivy.xml
#	CorePluginFramework/src/au/gov/asd/tac/constellation/plugins/gui/PasswordInputPane.java
#	CorePluginFramework/src/au/gov/asd/tac/constellation/plugins/gui/ValueInputPane.java
#	CorePreferences/src/au/gov/asd/tac/constellation/preferences/ApplicationOptionsPanel.form
#	CorePreferences/src/au/gov/asd/tac/constellation/preferences/ApplicationOptionsPanel.java
#	CorePreferences/src/au/gov/asd/tac/constellation/preferences/Bundle.properties
#	CoreWhatsNewView/src/au/gov/asd/tac/constellation/views/whatsnew/whatsnew.txt
  • Loading branch information
Auriga2 committed Feb 10, 2025
2 parents fdec899 + ac9de3a commit 3a62296
Show file tree
Hide file tree
Showing 2,306 changed files with 49,265 additions and 28,451 deletions.
1 change: 1 addition & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
blank_issues_enabled: false
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
---
name: Issue Template
about: The template for submitting issues
title: ''
labels: ''
assignees: ''

---

<!--
### Requirements
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/build-and-scan.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,12 +26,12 @@ jobs:
steps:
# Checkout this commit
- name: Checkout Branch
uses: actions/checkout@v1
uses: actions/checkout@v4

# Set the verbose flag as a variable
- name: Set Verbosity
run: |
if [[ ${{ contains(github.event.pull_request.labels.*.name, 'verbose-logging') }} = 'true' ]]; then echo '::set-output name=VERBOSITY::-v -verbose' && echo 'Verbose Logging Enabled'; else echo '::set-output name=VERBOSITY::-v " "' && echo 'Verbose Logging Disabled'; fi
if [[ ${{ contains(github.event.pull_request.labels.*.name, 'verbose-logging') }} = 'true' ]]; then echo "{name}={value}" >> $GITHUB_OUTPUT name=VERBOSITY::-v -verbose' && echo 'Verbose Logging Enabled'; else echo "{name}={value}" >> $GITHUB_OUTPUT name=VERBOSITY::-v " "' && echo 'Verbose Logging Disabled'; fi
id: verbosity

- name: Create Cache Folder
Expand All @@ -40,7 +40,7 @@ jobs:
# Cache the ivy dependencies to the home directory.
- name: Initialise Cache
id: cache-dependencies
uses: actions/cache@v2
uses: actions/cache@v4
env:
cache-name: cache-dependencies
with:
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/nightly-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,19 +53,19 @@ jobs:
"${RUNNER_IMAGE}" \
./build-zip.sh -a constellation -m "constellation constellation-adaptors"
- name: Upload Linux Build
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: Linux Nightly Build
path: ./workspace/constellation-applications/constellation/dist/constellation-linux**
retention-days: 2
- name: Upload MacOS Build
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: MacOSX Nightly Build
path: ./workspace/constellation-applications/constellation/dist/constellation-macosx**
retention-days: 2
- name: Upload Windows Build
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: Windows Nightly Build
path: ./workspace/constellation-applications/constellation/dist/constellation-win**.zip
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/release-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ jobs:
runs-on: ubuntu-latest
env:
RUNNER_IMAGE: "constellationapplication/netbeans-runner:21.0.2"
ADAPTORS_VERSION: "v2.11.0"
ADAPTORS_VERSION: "v3.0.0"
container:
image: docker://pandoc/latex:2.9
options: --entrypoint=bash
Expand Down Expand Up @@ -52,19 +52,19 @@ jobs:
constellationapplication/netbeans-runner:21.0.2 \
./build-zip.sh -a constellation -m "constellation constellation-adaptors"
- name: Upload Linux Build
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: Linux Release Build
path: ./workspace/constellation-applications/constellation/dist/constellation-linux**
retention-days: 2
- name: Upload MacOS Build
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: MacOSX Release Build
path: ./workspace/constellation-applications/constellation/dist/constellation-macosx**
retention-days: 2
- name: Upload Windows Build
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: Windows Release Build
path: ./workspace/constellation-applications/constellation/dist/constellation-win**.zip
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/stale.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/stale@v3
- uses: actions/stale@v9
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
stale-issue-message: >
Expand Down
3 changes: 3 additions & 0 deletions ATTRIBUTION.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,9 @@ website shares free icons to download. (https://www.shareicon.net/tos)
- [Flat Icons](https://www.flaticon.com/packs/countrys-flags) under the
license (https://file000.flaticon.com/downloads/license/license.pdf)

- [MiniSearch](https://github.com/lucaong/minisearch) under the license
(https://github.com/lucaong/minisearch/blob/master/LICENSE.txt)

The following is a list of third-party libraries used in the development
of Constellation.

Expand Down
50 changes: 50 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,55 @@
# Constellation Changes

## Changes in January 2025
- Removed classes `VideoCreator` and `VideoFrame` from Core Utilities as they are unused.

## Changes in December 2024
- Refactored animation framework to update graph attributes and hold write locks for minimal durations to enable graph interction.
- Created Color Warp Animation.
- Enhanced Fly through and Direction Indicators Animation.
- Created Graph Connection Motion Attribute as a META graph element type.
- Created Animation setting to disable animations for low power machines.
- Created SetColorValuesOperation to save space on the undo/redo stack.
- Modified access of `VertexTypeIOProvider.writeTypeObject()` from public to private, reflecting current use and mirroring related classes and functions.
- Removed `CompositeStatus.getCompositeStatus()` which was unused.

## Changes in November 2024
- Removed `CreateVertexTypePlugin` and `CreateTransactionTypePlugin` which were unused.
- Removed `AnalyticSchemaPluginRegistry` as there were no more plugins after above ones were removed.
- Removed `ImageConcept` which was unused.
- Removed `ColorblindUtilities.colorNodes()` which was unused. This behaviour is replicated in `VisualSchemaFactory.VisualSchema` with `applyColorblindVertex()` and `applyColorblindTransaction()`.
- Removed `ColorblindUtilities.setColorRef()` which only had one use. This behaviour is now directly added to where the function was previously used.
- Renamed `ColorblindUtilities.calcColorBrightness()` to `ColorblindUtilities.calculateColorBrightness()` for readability.
- Refactored MenuBaseAction to disable graph dependant menu items when primary graph is ambiguous.

## Changes in October 2024
- Added ability to pass parameters and selected items on graph to PluginReporter to display via `DefaultPluginInteraction`.
- Added the ability to set of Table View default columns by implementing `TableDefaultColumns` and using lookup.
- Moved `BrowseContextMenu` from `au.gov.asd.tac.constellation.graph.visual.contextmenu` to `au.gov.asd.tac.constellation.functionality.browser` to group it with other browser functionality.
- Removed several functions from `VisualGraphUtilities` passing attribute ids as parameters in favour of using existing complimentary functions using default attributes.
- Removed `BBoxd` as it was unused.
- Removed `BBoxf.getGraphBoundingBoxMix()` as it was unused.
- Renamed `getSelectedElements()` in `VisualGraphUtilities` to `getSelectedVertices` to better reflect what the function does.
- Updated Table View to now default to primary key columns for Show Default Columns and new graphs.

## Changes in September 2024
- Removed `AddBlazePlugin` in favour of applying defaults to `AddCustomBlazePlugin` (which was already being used by `AddBlazeAction`).
- Removed `BlazeUtilities.getHTMLColor()` as this is already available through existing functionality `ConstellationColor.fromJavaColor().getHtmlColor()`.
- Renamed `DeSelectBlazesAction` and `DeSelectBlazesPlugin` to `DeselectBlazesAction` and `DeselectBlazesPlugin`.
- Updated `BlazeUtilities.colorDialog` to return just a ConstellationColor.
- Updated both `SavePreset` functions in `BlazeUtilities` to accept a `ConstellationColor` instead of a `java.awt.Color` based on use.

## Changes in July 2024
- Moved hashmod package from Core Graph Utilities to Core Import Export Plugins as a more appropriate module.
- Moved `NoGraphPane` from Layers View to the View Framework so that other views can use it.
- Updated `NoGraphPane` to take two parameters needed for the abstraction.

## Changes in May 2024
- Removed `FloatArray.clone()` and replaced with a constructor that takes a `FloatArray` object.
- Removed `IntArray.clone()` in favour of constructor that takes a `IntArray` object.
- Removed `NamedSelection.clone()` and replaced with a constructor that takes a `NamedSelection` object.
- Updated the method GetNodeLocation() to getNodeLocation() in class InteractiveGLVisualProcessor.

## Changes in April 2024
- Removed `graph` parameter from `PermanentMergeTableModel.initialise` as it was unused.

Expand Down
14 changes: 0 additions & 14 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,20 +60,6 @@ as an appointed representative at an online or offline event.
Representation of a project may be further defined and clarified by
project maintainers.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behaviour may
be reported by contacting the project team at [email protected].
All complaints will be reviewed and investigated and result in a
response deemed necessary and appropriate to the circumstances. The
project team is obligated to maintain confidentiality with regard to the
reporter of an incident. Further details of specific enforcement
policies may be posted separately.

Project maintainers who do not follow or enforce the Code of Conduct in
good faith may face temporary or permanent repercussions as determined
by other members of the project’s leadership.

## Attribution

This Code of Conduct is adapted from the [Contributor
Expand Down
13 changes: 5 additions & 8 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,14 +44,11 @@ Repositories](#constellation-modules-and-repositories)

This project and everyone participating in it is governed by the
[Constellation Code of Conduct](CODE_OF_CONDUCT.md). By participating,
you are expected to uphold this code. Please report unacceptable
behaviour to <[email protected]>.
you are expected to uphold this code.

## I don’t want to read this whole thing I just have a question!

To start, you can create an issue to ask your question and please be
patient until we respond. In the near future, we will consider using a
different forum like Stack Overflow, Slack, etc.
Ask your question [here](https://gitter.im/constellation-app/community)

## What should I know before I get started?

Expand All @@ -70,7 +67,7 @@ Note that if some of the functionality you develop can be developed in a
domain agnostic approach then you can contribute that functionality to
Core and develop the domain specific functionality in your own module.
Refer to the [developer
guide](https://github.com/constellation-app/constellation-training/blob/master/CONSTELLATION%20Developer%20Guide.pdf)
guide](https://github.com/constellation-app/constellation-training/blob/master/Developer%20Training/docs/Developer%20Guide.pdf)
for information on how this is achieved.

### Constellation Modules and Repositories
Expand Down Expand Up @@ -331,7 +328,7 @@ change will have.

If you want to read about developing modules for Constellation, please
make sure you complete the self-paced [Constellation Developer
Guide](https://github.com/constellation-app/constellation-training/blob/master/CONSTELLATION%20Developer%20Guide.pdf).
Guide](https://github.com/constellation-app/constellation-training/blob/master/Developer%20Training/docs/Developer%20Guide.pdf).

#### Local development

Expand Down Expand Up @@ -362,7 +359,7 @@ section in the [Readme](README.md).
<#if licenseFirst??>
${licenseFirst}
</#if>
${licensePrefix}Copyright 2010-2021 Australian Signals Directorate
${licensePrefix}Copyright 2010-2024 Australian Signals Directorate
${licensePrefix}
${licensePrefix}Licensed under the Apache License, Version 2.0 (the "License");
${licensePrefix}you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion CoreAlgorithmPlugins/nbproject/project.properties
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
javac.source=21
javac.compilerargs=-Xlint -Xlint:-serial
license.file=../LICENSE
test.run.args=--add-opens=java.base/java.net\=ALL-UNNAMED
test.run.args=-Djava.awt.headless=true -Dtestfx.headless=true -Dtestfx.robot=glass --add-exports=javafx.graphics/com.sun.javafx.util=ALL-UNNAMED --add-exports=javafx.base/com.sun.javafx.beans=ALL-UNNAMED --add-exports=javafx.base/com.sun.javafx.logging=ALL-UNNAMED --add-exports=javafx.base/com.sun.javafx.event=ALL-UNNAMED --add-opens=javafx.graphics/com.sun.glass.ui=ALL-UNNAMED --add-exports=javafx.graphics/com.sun.glass.ui.delegate=ALL-UNNAMED --add-opens=java.base/java.net=ALL-UNNAMED
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@
<tocitem text="Cluster" mergetype="javax.help.SortMerge">
<tocitem text="Chinese Whispers" target="au.gov.asd.tac.constellation.plugins.algorithms.clustering.chinesewhispers.ChineseWhispers"/>
<tocitem text="K-Truss" target="au.gov.asd.tac.constellation.plugins.algorithms.clustering.ktruss.KTruss"/>
<tocitem text="Hierarchical" target="au.gov.asd.tac.constellation.plugins.algorithms.clustering.hierarchical.Hierarchical"/>
<tocitem text="Info Map" target="au.gov.asd.tac.constellation.plugins.algorithms.clustering.infomap.InfoMap"/>
</tocitem>
</tocitem>
</toc>
Original file line number Diff line number Diff line change
@@ -1,52 +1,76 @@
# Chinese Whispers Clustering

**Chinese Whispers - an Efficient Graph Clustering Algorithm and its
Application to Natural Language Processing Problems.**


Chris Biemann
University of Liepzig, NLP Department

Intuitively, the algorithm works as follows in a bottom-up fashion:
First all nodes get different classes. Then the nodes are processed for
a small number of iterations and inherit the strongest class in the
local neighborhood. This is the class whose sum of edge weights to the
current node is maximal. In case of multiple strongest classes, one is
chosen randomly. Regions of the same class stabilize during the
iteration and grow until they reach the border of a stable region of
another class. Note that classes are updated immediately: a node can
obtain classes from the neighborhood that were introduced there in the
same iteration.

initialize:
for all vi in V:
class(vi) = i
while changes:
for all v in V, randomized order:
class(v) = highest ranked class in neighborhood of v;

Apart from ties, the classes usually do not change any more after a
handful of iterations. The number of iterations depends on the diameter
of the graph: the larger the distance between two nodes is, the more
iterations it takes to percolate information from one to another.

## Other features

Chinese Whispers in CONSTELLATION makes use of overlay colors. When the
# Chinese Whispers

<table class="table table-striped">
<colgroup>
<col style="width: 25%" />
<col style="width: 25%" />
<col style="width: 25%" />
<col style="width: 25%" />
</colgroup>
<thead>
<tr class="header">
<th>Constellation Action</th>
<th>Keyboard Shortcut</th>
<th>User Action</th>
<th style="text-align: center;">Menu Icon</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>Run Chinese Whispers</td>
<td></td>
<td>Tools -&gt; Cluster -&gt; Chinese Whispers</td>
<td style="text-align: center;"><img src="../ext/docs/CoreAlgorithmPlugins/src/au/gov/asd/tac/constellation/plugins/algorithms/resources/chineseWhispers.png" alt="Chinese Whispers Icon" /></td>
</tr>
</tbody>
</table>

Chinese Whispers is a clustering algorithm which forms clusters around the
strongest classes in the graph.

The algorithm works as follows:

1. Firstly it assigns all nodes in the graph their own class
2. It then iterates through each node in a random order. For each node, it
changes its class to the one which has the largest sum of edge weights
connected to that node. If there is a tie for the largest, it randomly chooses
one of the largest.
3. Step 2 is repeated until clusters stabilise.

Because of the random nature of the algorithm, multiple runs of the algorithm
on the same graph can produce different clusters (depending on the order nodes
are iterated through, and which classes are selected in the case of ties).

## Constellation Display

Chinese Whispers in Constellation makes use of overlay colors. When the
clustering algorithm has been run, each cluster is assigned a unique
color. Node backgrounds and intra-cluster transactions are colored using
the cluster's color, while inter-cluster transactions are colored dark
grey.

Rather than set the color directly, Chinese Whispers in CONSTELLATION
creates a new color attribute and tells Constellation to display the
graph using the new attribute. To switch back to the default color
attribute, use Edit → Color attribute selection.
Rather than set the color directly, Chinese Whispers in Constellation
creates a new color attribute "Cluster.ChineseWhispers.Color" and tells
Constellation to display the graph using the new attribute (via the
"node\_color\_reference" and "transaction\_color_reference" graph attributes).
To switch back to the default color attribute, edit the graph attributes via
the Attribute Editor and click on "Restore Default" followed by Ok.

Before Chinese Whispers is run:
<div style="text-align: center">
<img src="../ext/docs/CoreAlgorithmPlugins/src/au/gov/asd/tac/constellation/plugins/algorithms/resources/ChineseWhispersBefore.png" alt="Graph before Chinese Whispers clustering applied" />
</div>

After Chinese Whispers is run:
<div style="text-align: center">
<img src="../ext/docs/CoreAlgorithmPlugins/src/au/gov/asd/tac/constellation/plugins/algorithms/resources/ChineseWhispersAfter.png" alt="Graph after Chinese Whispers clustering applied" />
</div>
<br />

When the clustering algorithm runs, no arrangement is done, so the graph
can look confusing.

The clustering algorithms add an integer attribute "cluster" to the
vertices. This attribute has a unique per-cluster value to indicate
which cluster a vertex belongs to, which other algorithms can later use.
The clustering algorithms add an integer attribute "Cluster.ChineseWhispers"
to the nodes. This attribute has a unique per-cluster value to indicate
which cluster a node belongs to, which other algorithms can later use
(e.g. [Arrange by Node Attribute](../ext/docs/CoreArrangementPlugins/src/au/gov/asd/tac/constellation/plugins/arrangements/node-attribute.md)).
Loading

0 comments on commit 3a62296

Please sign in to comment.