I am going through the text from "R.Brachmann and H.Levesque: Knowledge representation and reasoning". Here it has been described(in page 15) that there are two types of symbols : the logical symbols and the non logical symbols.
Logical symbols are the ones that have a fixed meaning and the non logical ones are the ones having application dependent meaning.
What I find confusing is "variables" having classified as logical ones whereas functions symbols have been classified as non logical ones.
I don't know whether I should be confusing this with the context of programming languages or not but variables also don't have fixed meanings and they too are created for application dependent use.
Shouldn't they both be in the same slot?
Now for predicates, I do not understand what exactly is a predicate? Do predicates mean the same thing as relations like "greater than", "less than"? If yes, then can there be an infinite variety of predicates? I can think of only this "lesser than ", "greater than", "equal to". What are some more examples of predicates?
P.S : Sorry about the predicate part , perhaps the following link contains a lot about it : https://stackoverflow.com/questions/6337778/predicate-vs-functions-in-first-order-logic