Home

Modeling complex phenomena such as food insecurity requires reasoning over multiple levels of abstraction and fully utilizing expert knowledge about multiple disparate domains, ranging from the environmental to the sociopolitical.

Delphi is a Python library (3.6+) for assembling causal, dynamic, probabilistic models from information extracted from two sources:

  • Text: Delphi utilizes causal relations extracted using machine reading from text sources such as UN agency reports, news articles, and technical papers.

  • Software: Delphi also incorporates functionality to extract abstracted representations of scientific models from code that implements them, and convert these into probabilistic models.

Usage

  • Assembling a model from text:

from delphi.AnalysisGraph import AnalysisGraph

G = AnalysisGraph.from_text(
    "Significantly increased conflict seen in South Sudan forced many"
    " families to flee in 2017.")
G.map_concepts_to_indicators()
G.parameterize(country="South Sudan", year=2017, month=4)
A = G.to_agraph()
A.draw("CAG.png", prog="dot")
Causal analysis graph example
  • Assembling a model from Fortran code:

from delphi.GrFN.networks import GroundedFunctionNetwork

G = GroundedFunctionNetwork.from_fortran_src("""\
      subroutine relativistic_energy(e, m, c, p)

      implicit none

      real e, m, c, p
      e = sqrt((p**2)*(c**2) + (m**2)*(c**4))

      return
      end subroutine relativistic_energy"""
)
A = G.to_agraph()
A.draw("relativistic_energy_grfn.png", prog="dot")
Executable Grounded Function Network constructed from Fortran source.

Citing

If you use Delphi, please cite the following:

@InProceedings{sharp-EtAl:2019:N19-4,
  author    = {Sharp, Rebecca  and  Pyarelal, Adarsh  and  Gyori, Benjamin
    and  Alcock, Keith  and  Laparra, Egoitz  and  Valenzuela-Esc\'{a}rcega,
    Marco A.  and  Nagesh, Ajay  and  Yadav, Vikas  and  Bachman, John  and
    Tang, Zheng  and  Lent, Heather  and  Luo, Fan  and  Paul, Mithun  and
    Bethard, Steven  and  Barnard, Kobus  and  Morrison, Clayton  and
    Surdeanu, Mihai},
  title     = {Eidos, INDRA, \& Delphi: From Free Text to Executable Causal Models},
  booktitle = {Proceedings of the 2019 Conference of the North American
  Chapter of the Association for Computational Linguistics (Demonstrations)},
  month     = {6},
  year      = {2019},
  address   = {Minneapolis, Minnesota},
  publisher = {Association for Computational Linguistics},
  pages     = {42-47},
  url       = {http://www.aclweb.org/anthology/N19-4008},
  keywords = {demo paper, causal relations, timelines, locations, information extraction},
}

@misc{Delphi,
    Author = {Adarsh Pyarelal and Paul Hein and Jon Stephens and Pratik
              Bhandari and HeuiChan Lim and Saumya Debray and Clayton
              Morrison},
    Title = {Delphi: A Framework for Assembling Causal Probabilistic
             Models from Text and Software.},
    doi={10.5281/zenodo.1436915},
}

Delphi builds upon INDRA and Eidos. For a detailed description of our procedure to convert text to models, see this document. Delphi is also part of the AutoMATES project.

License and Funding

Delphi is licensed under the Apache License 2.0.

The development of Delphi was supported by the Defense Advanced Research Projects Agency (DARPA) under the World Modelers (grant no. W911NF1810014) and Automated Scientific Knowledge Extraction (agreement no. HR00111990011) programs.

Indices and tables