diff --git a/ciflypy/README.md b/ciflypy/README.md index 8a510cb..6089063 100644 --- a/ciflypy/README.md +++ b/ciflypy/README.md @@ -1,3 +1,3 @@ # ciflypy -A Python package for using the CIfly framework. For more informations, see the introduction [here](https://cifly.dev/docs/ciflypy/). +A Python package for using the CIfly framework. For more information, see the introduction [here](https://cifly.dev/docs/ciflypy/). diff --git a/website/src/content/docs/introduction.mdx b/website/src/content/docs/introduction.mdx index c57a788..c822e79 100644 --- a/website/src/content/docs/introduction.mdx +++ b/website/src/content/docs/introduction.mdx @@ -25,7 +25,7 @@ Standard reachability is directly useful in causal inference, for example to fin - reachability is considered with respect to non-standard paths or walks, such as in *d-separation* (or rather d-connectivity) where one may switch between traversing edges the usual way $\rightarrow$ to the opposite direction $\leftarrow$ depending on a set of nodes $Z$ - graphs often have multiple edge types such as directed, undirected or bidirected edges, again with specific notions of paths in these graphs, for example, one may traverse *collider* paths, where each non end-point has two meeting arrowheads, in graphs with directed and bidirected edges, such as $a \rightarrow b \leftrightarrow c \leftrightarrow d \leftarrow e$. -Often, these reachability notions cannot (or at least not easily) be expressed or tackled with functionalities offered by standard graph libraries. Effectively, it is necessary to hand-write custom BFS or DFS modifications, as done in packages such as [dagitty](https://www.dagitty.net/) or [pcalg](https://cran.r-project.org/web/packages/pcalg/index.html) for many fundamental causal inference tasks. CIfly positions itself complementary and more low-level compared to these packages. It aims to provide a flexible language for expressing causal and probabilistic reachability notions with interfaces to Python and R. +Often, these reachability notions cannot (or at least not easily) be expressed or tackled with functionalities offered by standard graph libraries. Effectively, it is necessary to hand-write custom BFS or DFS modifications, as done in packages such as [DAGitty](https://www.dagitty.net/) or [pcalg](https://cran.r-project.org/web/packages/pcalg/index.html) for many fundamental causal inference tasks. CIfly positions itself complementary and more low-level compared to these packages. It aims to provide a flexible language for expressing causal and probabilistic reachability notions with interfaces to Python and R. ### Computing Descendants with CIfly It is easiest to explain CIfly using concrete examples. We start with the simplest one, namely computing descendants, which can be solved with standard BFS or DFS as well. In CIfly, one uses *rule tables* to specify reachability algorithms. This allows to express complex notions of reachability and we will see these advanced capabilities in later examples. But let's start with the rule table for computing descendants: