JuliaGraphs / JuliaGraphs/MetaGraphsNext.jl

voluntary Labels support

Open
#59 12 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
Julia
Stars
93
Forks
24
PR merge metrics
No merged PRs in 30d

Description

It would be nice if there was a version of MetaGraphs that didn't need the explicit label definition from the user.

I guess something similar to AttributeGraphs.jl. OAttributeGraph models the vertex properties as a Vector and switches the elements for every vertex deletion, etc.

Here in MetaGraphsNext.jl the data structure is hardcored to be Dict{Label,Tuple{Code,VertexData}}. Ofc the user could make a Label being an Int. But at the moment s/he will also need to maintain it, which is a bother.

@gdalle suggested a MetaGraph subtype with automatic labeling. I am not sure why would you need a subtype ??

I was thinking something like interfacing a keyword in the constructor default_labeling=false that when it's true, we take over and make it so that label::Int=code::Int at any state.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading the graph constructor and the current Dict{Label,Tuple{Code,VertexData}} storage described in the issue. Compare the proposed default_labeling option with the referenced AttributeGraphs.jl approach and the suggested MetaGraph subtype. Done means automatic integer labels remain consistent through vertex deletion without requiring user-maintained labels.

Written by the indexing model from the issue text.

Assessment

Tech stack
julia
Domain
data
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.