1 / 20

Formal Languages, Part Two

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

nuala
Download Presentation

Formal Languages, Part Two

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Formal Languages, Part Two SIE 550 Lecture Matt Dube Doctoral Student – Spatial

  2. 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 NON- TERMINAL SYMBOLS atom::=proton{proton}{electron}{neutron} TERMINAL SYMBOLS Carbon 14 = 6 protons, 6 electrons, 8 neutrons Helium = 2 protons, 5 electrons, 2 neutrons

  3. 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 … =?

  4. 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”

  5. undo Another Example to Discuss Language for Computer Drawing? Just like text, we can interpret this as a formal language and use the same concepts and terminology! Terminal Symbols? Non-terminal Symbols?

  6. Questions, Comments, Concerns? • Please voice before we move forward

  7. Today’s Class • Apply formal languages to a class of English sentences • Propositional logic • First Order Languages • Predicates

  8. Peter Naur John Backus Backus-Naur Form • Recall the operators: | ::= [] {} “” () • These operators are referred to as the Backus-Naur Form. • “Language of the language” – meta-language • Standard syntax

  9. 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 veterinarian The tricycle burns rubber. the cat rode a tricycle. a tricycle burns the ferrari.

  10. What are the goals? • We want a computer to retrieve correct information. • We want a computer to tell us correct information. • We want a computer to test the correctness of information. • We want a computer to infer correct information. Query Language Print Commands Formal Language ??? How should we go about that?

  11. 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 Can Think!

  12. You expect me to think? I am only a machine! My aren’t they temperamental sometimes!

  13. 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

  14. 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?

  15. 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.

  16. 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( )

  17. 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

  18. 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.

  19. Example 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) TERMINAL SYMBOLS Suzy John AXIOMS Jack Almice What can we say about: Tim Daniel

  20. 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

More Related