Message Boards Message Boards

Wolfram Model and hypergraph search API released

Posted 3 years ago

Today 10th June 2021 we just released a new beta test application interface to search for Wolfram Models and Hypergraphs based on search criteria as an external gigabrain.io API service.

Here is documentation and usage information for the API.

API can be called with the following search criteria.

  • Dimension – How the model’s dimensions grows in the graph.
  • Growth rate – How the model’s resulted node count grows
  • Signature – Rule signature
  • Termination reason – What was the reason for the analysis termination in a certain step
  • Steps – Return the analysis for a specific range of steps. Can be used only with dimension, growth rate and termination reason
  • Causality – Causality % is the 1 - divergent edges / total number of edges How many divergent edges there are in the range of generations

  • Singularity – How many number of singular edges there are in a range of generations

The API call endpoint location is

http://gigabrain.io/physics/export/query

HTTP GET Query REST parameters

Search model based on the analyzed values per step.

stepsFrom Integer value
stepsTo Integer value
dimensionFrom Double value between 0 - 3
dimensionTo Double value between 0 - 3
growthRateFrom Double value between 0 - 3
growthRateTo Double value between 0 - 3
signature String of model signature in format {{2, 3} -> {3, 3}} for models 
terminationReason String FixedPoint or MaxGenerations

Search model based on the causal analysis steps calculated from multiple steps.

singularityFrom Integer value
singularityTo Integer value
causalityFrom Double value between 0 - 1
causalityTo Double value between 0 - 1

Example queries

http://gigabrain.io/physics/export/query?stepsFrom=4&stepsTo=40&dimensionFrom=0.5&dimensionTo=5.5&growthRateFrom=0.3&growthRateTo=5.8&terminationReason=MaxGenerations&signature={{2,%203}}%20-%3E%20{{3,%203}}

The interface loads a text file that you can open with a normal text editor. You can copy the results to a new notebook and for example here combine two rules

ids = {}; 
rules = {}; 
inits = {}; 
dimensionStart = 0.5;
dimensionEnd = 5.5;
dimensions = {}; 
growthRateStart = 0.3;
growthRateEnd = 5.8;
growthRates = {}; 
signature = "{{2, 3}} -> {{3, 3}}";
signatures = {}; 
terminationReason = "MaxGenerations";
terminationReasons = {}; 
stepsStart = 4;
stepsEnd = 40;
steps = {}; 
AppendTo[ids, "ts55"]; 
AppendTo[rules, {{{1, 1, 2}, {3, 4, 1}} -> {{4, 4, 5}, {1, 4, 1}, {3, 
      2, 4}}}]; 
AppendTo[inits, {{1, 1, 1}, {1, 1, 1}}]; 
AppendTo[dimensions, 1.9574883626054191]; 
AppendTo[growthRates, 1.352791305916306]; 
AppendTo[signatures, {{2, 3}} -> {{3, 3}}]; 
AppendTo[terminationReasons, "MaxGenerations"]; 
AppendTo[steps, 8]; 
AppendTo[ids, "ts56"]; 
AppendTo[rules, {{{1, 2, 2}, {3, 1, 4}} -> {{4, 2, 5}, {3, 4, 4}, {1, 
      3, 4}}}]; 
AppendTo[inits, {{1, 1, 1}, {1, 1, 1}}]; 
AppendTo[dimensions, 2.1905775596780885]; 
AppendTo[growthRates, 1.3032738095238092]; 
AppendTo[signatures, {{2, 3}} -> {{3, 3}}]; 
AppendTo[terminationReasons, "MaxGenerations"]; 
AppendTo[steps, 8]; 
size = 2;

(* Below added functionality to combine the previous models. Show the combination as plot and show the rules that were used in each event *)
ResourceFunction["WolframModel"][{First@rules[[1]], 
   First@rules[[2]]}, Automatic, 4]["FinalStatePlot"]

ResourceFunction["WolframModel"][{First@rules[[1]], 
   First@rules[[2]]}, Automatic, 4][ "AllEventsRuleIndices"]

To make a search with a causality analysis you can search for the singularities from a model or the causality percentage calculated for a model.

http://gigabrain.io/physics/export/query?causalityFrom=0.7&causalityTo=0.8

The result is loaded as a text file that you can edit with a text editor

ids = {}; 
rules = {}; 
inits = {}; 
causalityFrom = 0.7;
causalityTo = 0.8;
causalities = {}; 
AppendTo[ids, "6721"]; 
AppendTo[rules, {{{1,1,2},{3,2,4}}->{{5,5,3},{3,1,5},{4,2,4}}}]; 
AppendTo[inits, {{1,1,1},{1,1,1}}]; 
AppendTo[causalities, 0.7421052631578947]; 
size = 1;

How to use the API in more detail

  • Find models from the same signature for multiple rules.
  • Find models with a low growth rate.
  • Find models with higher growth rate.
  • Combine models with low growth rate to high growth rate from same signature.

Help in development by telling what else would be your search criteria that you would like to try with the API?

How would you use the API with combination of the Multiway system or with different rule ordering?

Currently the analyzed data is calculated with default rule ordering.

POSTED BY: Tuomas Sorakivi
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard

Group Abstract Group Abstract