Any kind of programming language that specifies output in terms of some property and some arguments. For example, if Tom has two brothers, Dick and Harry, a relational language will respond to the query "Who is Tom's brother?" with either Dick or Harry. Notice that unlike functional languages, relational languages do not require a unique output for each predicate/argument pair. Prolog is the best known relational language.