PATG is:
Common Lisp library for matching and altering subgraphs in graphs
implemented as domain specific language, uses Lisp's macros to translate declarative graph patterns to fast CL code
written in pure ANSI Common Lisp (except small part for running OS programs, now SBCL only)
PATG can be used as:
integral part of compilers, used for altering the intermediate representation of source language
core of visual languages which are based on graph
model of state of any application which finds representation of problem using graphs natural
(defmatch ((0 |.| -> 1 2 3)
(1 |+| -> 1 (4 |~|))
(2 |+| -> (2 |-|) (3 |~-|))
(3 -> 1 4)
(4)
(5 |-| -> 1)))

motivation example: how the graph pattern from definition above looks like