Skip to content

Meaning of "directed", "undirected", and "bipartite" keywords/concepts. #409

Open
@krivit

Description

@krivit

Right now, we use "directed" if a term can work on directed networks and analogously for undirected. On the other hand, we use "bipartite" for terms that only work on bipartite networks. For example,

  • absdiff: works for everything, has keywords "directed" and "undirected"
  • b1factor: works for bipartite undirected only, has keywords "bipartite" and "undirected"

This is not very consistent conceptually, and it also produces inconsistent search results:

  • Searching with keyword "undirected" returns all terms (including bipartite-only) suitable for undirected networks (e.g., both absdiff and b1factor).
  • Searching with keyword "bipartite" returns terms that work only on bipartite networks (e.g., b1factor but not absdiff).

The question is what should we do?

My sense is that the most common use cases would be something like:

  • List terms that work for a bipartite (undirected) network.
  • List terms that work for a unipartite undirected network.
  • List terms that work for a unipartite directed network.

Here are some ideas:

  1. We could accomplish this by declaring "bipartite" to be a third type of network. Then, absdiff would get all three keywords, whereas b1factor would get only "bipartite". The downside of this is that it's not technically correct and is not future-proof, if we ever decide to implement directed bipartite networks.
  2. We could keep the status quo but also implement some way of specifying logical expressions in the search. For example, ~undirected&!bipartite would include absdiff but not b1factor (i.e., terms that work for undirected unipartite networks), whereas ~undirected would include both (i.e., everything that works for bipartite undirected networks). However, this is cumbersome and counterintuitive.
  3. We could declare that "bipartite" should be used the way "directed" and "undirected" are (i.e., so that absdiff gets the keyword as well) and also implement some way of specifying logical expressions in the search. Then, ~bipartite would get absdiff and b1factor (i.e., terms that work for undirected bipartite networks), but so would ~undirected. We may want to the introduce a keyword "unipartite". (A term that supports both should have both keywords.)

Any thoughts?

@mbojan @CarterButts @martinamorris @drh20drh20 @sgoodreau @handcock

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions