CLI endpoint to handle (ASP encoded) graphs

graph, answer-set-programming, graph-theory, python
pip install graph-asp==0.0.9



Graph with ASP made easy.

Use cases

Write an ASP graph into gexf

phasme convert data.lp target.gexf

Rewrite a gml graph with normalized node names

phasme convert data.gml --normalized

Extract the biggest cc, write it anonymized in gml

phasme split data.lp --biggest-first "data_cc.lp" --slice 0 1
phasme convert data_cc_1.lp target.gml --anonymized

Generate a small world graph in gml

phasme generate data.gml erdos_renyi_graph n=100 p=0.01


pip install phasme

Will also populate your env with the executable phasme, enabling access to the CLI.

CLI commands

CLI provides access to higher level routines.

  • split: split by connected component.
  • info: give info about given graph.
  • convert: rewrite, anonymize, normalize or convert the graph to (clean) ASP or standard format.
  • generate: generate a graph using a given generation method.

Other examples

# split a graph by cc
python -m phasme split data.lp -o "data_{}.lp"

# get infos
python -m phasme infos data.lp --graph-properties

# there is a shitload of options
python -m phasme infos --help

# conversions between formats
python -m phasme convert data.lp data.gml --anonymize

# generation of new graphs to play with
python -m phasme generate graph.gml powerlaw_cluster_graph n=5 m=2 p=0.01

# ready-to-draw tikz visualization of ASP graph
python -m phasme convert data.lp graph-in-latex-tikz.tex

# randomize a graph, keeping the same degree distribution, using switching method
python -m phasme randomize data.lp randomized-graph.gml


  • 0.0.14
  • 0.0.13
    • randomize: --per-cc option to run it on each connected component independantly
  • 0.0.12
    • new subcommand: randomize, to build a random graph based on another
    • new subcommand: extract, to extract subgraphs based on their nodes
    • convert: new output format: latex/tikz
    • infos: give infos on articulation points
    • infos: indicate number of self loops, if any, or give property 'no loop'