FAQ Declarative Languages

What are any two features of a declarative language?
From the 2007 SQA marking instructions
Consists of facts and rules
Which can be searched/queried
Uses pattern matching
Uses recursion/inheritance
So I thought I might go a little deeper on this one. Declarative languages came up in the software development unit Topic 5.5.
Declarative language
A declarative language is one which is used to give an exact description of all the relevant facts and relationships which define the problem, rather than an algorithm to solve it. Prolog is an example of a declarative language
These languages are covered in more depth in the optional AI unit. However I did find a video that explains it, in a similar way to the lesson I delivered. You might want to skip forward to 2m 27s
[kml_flashembed movie="http://www.youtube.com/v/_68E261irTY#t=02m27s" width="425" height="344" allowfullscreen="true" fvars="fs=1" /]