Prolog is a declarative logic programming language where programs consist of facts and rules. Facts are terms that are always true, while rules define relationships between terms using logic notation "if-then". A Prolog program is run by asking queries of the program's database. Variables must start with an uppercase letter and are used to represent unknown values, while atoms are constants that represent known values.