About
In the computer science, the term declarative is closely linked to the notion of logic and is the opposite of procedural.
You declare/ask/tag an object/properties without detailing the background process to retrieve it.
By decoupling specification from execution details, declarative systems allow language users to focus on the specifics of their application domain, while freeing language developers to optimize processing.
A declarative language only expresses conditions that must be met in order for a result to be an answer, not how to get that answer.
A declarative language try to declare the semantic (the term may be used interchangeably).
See also: Language - Intent Development (or Intentional programming)
A declarative language is simpler to read and audit.
Declarative languages make it easier to explore equivalent computations to find the best one and allows therefore optimization.
Articles Related
Rule Engine
Discussing rules engines at work. My opinion: there is no point trying to unify everything and building a general-purpose rules engine. That's a programming language. The point of a rules engine is you figure out the right representation for your use case.