What are the differences between BNGL (BioNetGen Language) and SBML (System Biology Markup Langague) formats? Per request from meta comment.

I am self-learning about whole cell modeling, specifically An introduction to whole-cell modeling and Fundamentals of Systems Biology: From Synthetic Circuits to Whole-cell Models. While my background is decades of programming, for cellular biology it is only skimming through a few books. 

In the process of learning I soon discovered software/apps that use SBML (System Biology Markup language) but in referring back to "An introduction to whole-cell modeling" see that they use BioNetGen (GitHub) which has its own language BioNetGen language (BNGL)

What are the differences between BNGL (BioNetGen Language) and SBML (System Biology Markup Langague) formats?
Both formats have formal grammars for describing similar concepts, however they are different and to my knowledge one is not a proper subset of the other. While one could do a comparison of a syntactic nature, a simple Google search of just both acronyms reveals BioNetGen 2.2: Advances in Rule-Based Modeling 

In here can be found:


  2.4 SBML-to-BNGL translation
  SBML is a widely-used model exchange format in systems biology (Hucka et al., 2003). Models encoded in SBML
  are ﬂat, i.e., their species do not have internal structure, which
  limits their utility for rule-based modeling. BioNetGen 2.2 includes
  an SBML-to-BNGL translator, called Atomizer (also available as a web
  tool at ratomizer.appspot.com), that can extract implicit molecular
  structure from ﬂat species (Tapia and Faeder, 2013). A full report on
  Atomizer and its application to the BioModels database (Li et al.,
  2010) is currently in preparation. However, Tapia and Faeder (2013)
  reported that an early version of the tool could recover implicit
  structure for about 60% of species in models within the database that
  contain ≥20 species. Thus, Atomizer makes available a large set of
  pre-existing models in a rule-based format, facilitating their
  visualization (Wenskovitch et al., 2014) and extension (Chylek et al.,
  2015).


While not directly related to the question this also helped in understanding more about BioNetGen

Wikipedia: Multi-state modeling of biomolecules


  Biological signaling systems often rely on complexes of biological
  macromolecules that can undergo several functionally significant
  modifications that are mutually compatible. Thus, they can exist in a
  very large number of functionally different states. Modeling such
  multi-state systems poses two problems: The problem of how to describe
  and specify a multi-state system (the "specification problem") and the
  problem of how to use a computer to simulate the progress of the
  system over time (the "computation problem"). To address the
  specification problem, modelers have in recent years moved away from
  explicit specification of all possible states, and towards rule-based
  formalisms that allow for implicit model specification, including the
  κ-calculus, BioNetGen, the Allosteric Network Compiler and others. To
  tackle the computation problem, they have turned to particle-based
  methods that have in many cases proved more computationally efficient
  than population-based methods based on ordinary differential
  equations, partial differential equations, or the Gillespie stochastic
  simulation algorithm. Given current computing technology,
  particle-based methods are sometimes the only possible option.
  Particle-based simulators further fall into two categories:
  Non-spatial simulators such as StochSim, DYNSTOC, RuleMonkey, and
  NFSim and spatial simulators, including Meredys, SRSim and MCell.
  Modelers can thus choose from a variety of tools; the best choice
  depending on the particular problem. Development of faster and more
  powerful methods is ongoing, promising the ability to simulate ever
  more complex signaling processes in the future.