The correct answer is C. First-order definite clauses.
A datalog knowledge base is a set of first-order definite clauses. A first-order definite clause is a statement of the form $A \leftarrow B_1, \ldots, B_n$, where $A$ is an atomic formula and $B_1, \ldots, B_n$ are atomic formulas or negated atomic formulas.
Variables are not allowed in datalog knowledge bases. Function symbols are allowed in datalog knowledge bases, but they are not used to define new relations. Only the relations that are explicitly mentioned in the knowledge base are considered.
Therefore, the correct answer is C. First-order definite clauses.
Here is a brief explanation of each option:
- A. Variables: Variables are not allowed in datalog knowledge bases.
- B. No function symbols: Function symbols are allowed in datalog knowledge bases, but they are not used to define new relations. Only the relations that are explicitly mentioned in the knowledge base are considered.
- D. None of the mentioned: This option is incorrect because it does not include the correct answer, which is C. First-order definite clauses.