netroles
netroles: A Java library for role equivalence analysis in networks - Published in JOSS (2024)
Science Score: 100.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 4 DOI reference(s) in README and JOSS metadata -
✓Academic publication links
Links to: joss.theoj.org, zenodo.org -
✓Committers with academic emails
1 of 2 committers (50.0%) from academic institutions -
○Institutional organization owner
-
✓JOSS paper metadata
Published in Journal of Open Source Software
Keywords
Keywords from Contributors
Repository
A Java library for role equivalence analysis in networks
Basic Info
Statistics
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 1
- Releases: 3
Topics
Metadata Files
README.md
netroles
The netroles library offers tools for analyzing network data in terms of role equivalences and structures.
This library implements many common notions of role equivalences, such as structural, weak or regular equivalence in their standard formulation.
While implementations in other software packages tend to be restricted to these standard equivalence concepts on unweighted networks, netroles has been deliberately designed to expand the scope of applicability for role equivalences. It facilitates the expression of alternative and more nuanced definitions of role, such as notions that build on other mechanisms or those that are intended to accomodate and combine various actor and tie attributes as appropriate for the performed analysis.
In this way, netroles generalizes prior tools and expands the scope of applicability of role equivalence concepts.
Netroles is a library implemented in and provided for Java, requiring Java 8 or newer.
Installation
Netroles is available in Maven Central. You can add it by using your preferred dependency management tool. When using Maven, for example, you can add netroles as a dependency in your POM file (replacing "x.y" by the appropriate version tag):
xml
<dependency>
<groupId>io.github.muellerj2</groupId>
<artifactId>netroles-api</artifactId>
<version>x.y</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>io.github.muellerj2</groupId>
<artifactId>netroles-engine</artifactId>
<version>x.y</version>
<scope>runtime</scope>
</dependency>
Netroles includes its own implementation of network structures. Optionally, you can add the following artifacts to read networks into netroles' default network representation or write the network representation to files:
xml
<dependency>
<groupId>io.github.muellerj2</groupId>
<artifactId>netroles-io-api</artifactId>
<version>x.y</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>io.github.muellerj2</groupId>
<artifactId>netroles-io-engine</artifactId>
<version>x.y</version>
<scope>runtime</scope>
</dependency>
In Gradle, you can add these dependencies as follows: ```gradle dependencies { // required implementation "io.github.muellerj2:netroles-api:x.y" runtimeOnly "io.github.muellerj2:netroles-engine:x.y"
// optional IO support implementation "io.github.muellerj2:netroles-io-api:x.y" runtimeOnly "io.github.muellerj2:netroles-io-engine:x.y" } ```
Alternatively, you can add the following artifacts (available on the Releases page) to your Java project manually: * netroles-api-*.*.jar * netroles-engine-*.*.jar (only needed at runtime) * netroles-networks-api-*.*.jar * netroles-networks-engine-*.*.jar (only needed at runtime) * netroles-io-api-*.*.jar (optional IO support) * netroles-io-engine-*.*.jar (optional IO support, only needed at runtime)
In addition, netroles uses SLF4J for logging purposes, so you have to add SLF4J and an SLF4J binding to some logging library to your build path. If you also add the optional IO support to your project, you should further add the following external libraries: * Univocity parsers * JSON-Java * FasterXML Jackson Databind
ⓘ Note
You can make use of another library's network data structure than the default one bundled with netroles if you prefer to do so. To achieve this, you have to write an adapter implementing the NetworkView interface in package ch.ethz.sn.visone3.roles.position. You can then use this adapter to specify role concepts on these networks.
Tutorial
The tutorial presents common usage examples step by step.
Scientific background and design
The design document explains:
- the theoretical background of this library in the area of Social Network Analysis, including the relevant ideas from the role analysis literature.
- the library's design principles.
API Documentation
For each release, corresponding Javadoc documentation is made available on Maven Central and can be accessed on the external website javadoc.io.
You can follow the links below to view the Javadoc of each API module on javadoc.io: * netroles-lang-api * netroles-networks-api * netroles-api * netroles-io-api
Besides the API modules, netroles also includes engine modules that implement the library's API. Users of netroles usually do not need to interact with these modules directly. But if you wish to access some feature of an engine module directly, you can browse the Javadoc for these modules as well: * netroles-lang-engine * netroles-networks-engine * netroles-engine * netroles-io-engine
Working on the code
If you would like to work directly on the library's source code, fork this repository and download the library's source. Finally, you can import it into your favorite IDE for Java programming. The project uses Gradle as its build tool, so you might have to install a Gradle plugin to import the project easily into your IDE.
Contributing
Support, bug reports and enhancement requests
If you have questions how to use netroles, find a bug or would like to suggest an idea or enhancement, please file an issue on the project's Github page.
Contributing code
If you would like to contribute code to the project, please open a pull request. Your code will be considered for inclusion if you are agree to make it available under the project's license.
Owner
- Login: muellerj2
- Kind: user
- Repositories: 1
- Profile: https://github.com/muellerj2
JOSS Publication
netroles: A Java library for role equivalence analysis in networks
Authors
Tags
network analysis role analysisCitation (CITATION.cff)
cff-version: "1.2.0"
authors:
- family-names: Müller
given-names: Julian
orcid: "https://orcid.org/0000-0001-6440-8046"
doi: 10.5281/zenodo.10070537
message: If you use this software, please cite our article in the
Journal of Open Source Software.
preferred-citation:
authors:
- family-names: Müller
given-names: Julian
orcid: "https://orcid.org/0000-0001-6440-8046"
date-published: 2024-01-17
doi: 10.21105/joss.05903
issn: 2475-9066
issue: 93
journal: Journal of Open Source Software
publisher:
name: Open Journals
start: 5903
title: "netroles: A Java library for role equivalence analysis in
networks"
type: article
url: "https://joss.theoj.org/papers/10.21105/joss.05903"
volume: 9
title: "netroles: A Java library for role equivalence analysis in
networks"
GitHub Events
Total
- Delete event: 20
- Issue comment event: 7
- Push event: 29
- Pull request event: 31
- Create event: 22
Last Year
- Delete event: 20
- Issue comment event: 7
- Push event: 29
- Pull request event: 31
- Create event: 22
Committers
Last synced: 5 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Julian Müller | j****r@g****h | 62 |
| dependabot[bot] | 4****] | 57 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 4 months ago
All Time
- Total issues: 3
- Total pull requests: 150
- Average time to close issues: 7 days
- Average time to close pull requests: 3 days
- Total issue authors: 3
- Total pull request authors: 3
- Average comments per issue: 2.0
- Average comments per pull request: 0.2
- Merged pull requests: 131
- Bot issues: 1
- Bot pull requests: 100
Past Year
- Issues: 0
- Pull requests: 51
- Average time to close issues: N/A
- Average time to close pull requests: 5 days
- Issue authors: 0
- Pull request authors: 1
- Average comments per issue: 0
- Average comments per pull request: 0.27
- Merged pull requests: 34
- Bot issues: 0
- Bot pull requests: 51
Top Authors
Issue Authors
- leifeld (1)
- abhishektiwari (1)
- dependabot[bot] (1)
Pull Request Authors
- dependabot[bot] (100)
- muellerj2 (48)
- danielskatz (2)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- JamesIves/github-pages-deploy-action v4 composite
- actions/checkout v3 composite
- actions/setup-java v3 composite
- actions/upload-artifact v3 composite
- cicirello/jacoco-badge-generator v2 composite
- gradle/gradle-build-action v2 composite
- gradle/wrapper-validation-action v1 composite
