Formal Languages, Part Two
SIE 550 Lecture
Matt Dube
Doctoral Student – Spatial
Where we left off on Friday
• Formal Languages– Terminal Symbols – base-level instances
• “symbols that we can’t break down further”-Jake
– Non-terminal Symbols – rules to extract specific sequences of terminal symbols
• “symbols that can be broken down”
• Well Formed Formulas (WFF)– Valid outputs of a formal language– Semantics DO NOT matter!– Logic is not involved
TERMINAL SYMBOLS
NON- TERMINAL SYMBOLS
atom::=proton{proton}{electron}{neutron}
Carbon 14 = 6 protons, 6 electrons, 8 neutronsHelium = 2 protons, 5 electrons, 2 neutrons
Homework from Friday
• You are a math teacher and want to take a nap during class.
• Create a formal language that will generate addition and subtraction problems involving arbitrary terms over positive integers.
48 + 97 – 9 + 17 – 4 – 1 … =?
One possible solution
• start ::= problem• problem ::= integer sign {term} integer end• term ::= integer sign• integer ::= digit/0 {digit}• sign ::= “+” | “-”• end ::= “=?”• digit/0 ::= “1” | “2” | … | “9”• digit ::= “0” | “1” | “2” | … | “9”
Another Example to DiscussLanguage for Computer Drawing?
undo
Just like text, we can interpret this as a formal language and use the same concepts and terminology!
Terminal Symbols?
Non-terminal Symbols?
Questions, Comments, Concerns?
• Please voice before we move forward
Today’s Class
• Apply formal languages to a class of English sentences
• Propositional logic
• First Order Languages
• Predicates
Backus-Naur Form
• Recall the operators: | ::= [] {} “” ()
• These operators are referred to as the Backus-Naur Form.
• “Language of the language” – meta-language
• Standard syntax
John Backus
Peter Naur
Example of BNF
• start ::= transitive_sentence• transitive_sentence ::= [article] noun verb
[article] noun end• article ::= “a” | “an” | “the”• noun ::= “tricycle” | “cat” | “veterinarian” | “rubber”
| “ferrari”• verb ::= “rides” | “fixes” | “eats” | “burns” | “jumps”• end ::= “.”
the cat fixes the veterinarian.an ferrari eats a cat.ferrari jumps a veterinarianThe tricycle burns rubber.the cat rode a tricycle.a tricycle burns the ferrari.
What are the goals?
1. We want a computer to retrieve correct information.
2. We want a computer to tell us correct information.
3. We want a computer to test the correctness of information.
4. We want a computer to infer correct information.
Query Language
Print Commands
???
Formal Language
How should we go about that?
Well…
• How do we do it minus a computer?
• Propositional Logic– Related statements and then moving
information between them– Example:
• Jake lives in Hampden• Hampden is in Maine• Therefore Jake lives in Maine.
• Very effective system if…
You expect me to think?I am only a machine!
My aren’t they temperamental sometimes!
How do we rectify the situation?
• We need a logic system
• “Propositional logic”-like, but…
• We know a computer can:– Handle a formal language– Cross-reference and replace terms– Pass information through code
• So what’s missing?– We need functions to pass through
First Order Logic
• First order logic = functional propositional logic• Example:
– man(X)– X=socrates– X=plato
• man(socrates) -> socrates is a man.• man(plato) -> plato is a man.
• Could we use this? YES– What if we established “man(socrates)” as a terminal
symbol and put something above it in the code saying mortal(X)::=man(X)?
– Do we find out anything else about socrates?
Note
• Things in a computer program starting with a capital letter are variables.
• Things in a computer program starting with a lowercase letter are constants.
• IMPLICATION: The program sees what satisfies the capital letter and then passes that information through the rest of the program.
A New Language
• It is now time to define a new type of formal language: a first order language.
• WFFs in a first order language– a predicate– (WFF or WFF)– (WFF and WFF)– (WFF implies WFF)– (WFF = WFF)
WHAT IS A PREDICATE?
animal( )
Predicates
• Gateways– man( )
• Whatever we put inside the parentheses is a man.
– father( , )• Whatever we put first is the father; second is the child.
• User defined linkages• Predicates are non-terminal symbols• Variables are non-terminal symbols• Constants are terminal symbols• Number of terms in the predicate = arity
Use formal language now
• Treat predicate information based on constants as if they were terminal symbols– man(mike), man(henry), etc.
• Treat predicate information based on variables as if they were non-terminal symbols– mortal(X)::=man(X)
• If X is a man, than X is also a mortal.
• We can now build in as many crazy combinations as we choose.
Example
What can we say about:
JohnSuzyJack
DanielAlmice
Tim
TERMINAL SYMBOLS
AXIOMS
PREDICATE CALCULUS
• parent(X,A) ::= father(X,A) | mother(X,A)
• child(X,A) ::= father(A,X) | mother(A,X)
• father(john,suzy)
• father(jack,daniel)
• mother(almice,jack)
• mother(almice,tim)
Other Example Commands
• We used an or statement– Mother or father makes you a parent
• father(X,A)=child(A,X)– If X is A’s father, then A is a child of X IMPLY
• parents(X,Y,A)=parent(X,A) parent(Y,A)– X and Y are A’s parents if X is A’s parent and
Y is also A’s parent AND