A distributed language with constraint-based inference