Q&A Session for Programming Languages Lecture 5
Session Number: 1209889489
Date: 2020-9-18
Starting time: 14:23
________________________________________________________________
ANON – 14:34
Q: I have yet to be able to login to submitty. Will we have the same
deadline as last quiz (4pm EST or something like that)?
Priority: N/A
Konstantin Kuzmin – 14:35
A: Try refreshing the page. Yes, the deadline is 4:19:59 pm
EDT.
________________________________________________________________
ANON – 14:48
Q: when are we returning here for lecture?
Priority: N/A
Ana L. Milanova – 14:48
A: 3pm
________________________________________________________________
ANON – 14:48
Q: what does it mean “associated with nearest unmatched ‘then'”
Priority: N/A
Konstantin Kuzmin – 14:51
A: We can’t answer questions, related to quiz contents while
the quiz is open. Try to do your best to interpret the question.
________________________________________________________________
ANON – 14:55
Q: Can we submit multiple times?
Priority: N/A
Ana L. Milanova – 14:56
A: Yes
________________________________________________________________
ANON – 14:57
Q: Can we have the HW deadline extended to midnight? I (along with
many others, I think) saw the 1:59 deadline as 11:59 and assumed
midnight.
Priority: N/A
________________________________________________________________
ANON – 14:59
Q: I finished the Quiz and was hoping that after the Quiz was finished
if this Question could be answered. I was wondering if to determine
LL(1) if you always had to draw the Parsing Table, if the Grammar is
determined to not be Ambiguous.
Priority: N/A
Ana L. Milanova – 15:00
A: We can answer this question next time since submission is
open until the end of class
________________________________________________________________
ANON – 15:00
Q: there is no test case 14?
Priority: N/A
Konstantin Kuzmin – 15:22
A: It is test 12 in this quiz. Just look for the test name to
be “Check Honor Pledge”.
________________________________________________________________
ANON – 15:01
Q: This isn’t a quiz-related question, but how can we confirm our
attendance via mediasite?
Priority: N/A
Ana L. Milanova – 15:02
A: You can check the gradeable for the week. And if you think
we have missed your attendance, let us know.
________________________________________________________________
ANON – 15:01
Q: When will the grade for quizzes be released?
Priority: N/A
Ana L. Milanova – 15:03
A: We release the grades by following class or earlier.
Ana L. Milanova – 15:03
A: Quiz 1 is already out.
________________________________________________________________
ANON – 15:02
Q: Im getting no audio
Priority: N/A
Steven Haussmann – 15:03
A: Webex may be playing the audio on the wrong device.
Assuming you’re on Windows, you can disable devices until it picks the
right one — I don’t see a way to control the streamed video output
device
________________________________________________________________
ANON – 15:02
Q: Do you need to download it on our laptop or will a home computer
work?
Priority: N/A
Ana L. Milanova – 15:05
A: Prolog I’m assuming. You can download anywhere you would
like. Submission of homework is autograded in Submitty.
________________________________________________________________
ANON – 15:03
Q: Afternoon all. Are we allowed to ask questions about the quiz?
Priority: N/A
Steven Haussmann – 15:04
A: You can submit the quiz up until the end of class, so no
________________________________________________________________
ANON – 15:05
Q: Should we get the stable version of Prolog or is another version
recommanded
Priority: N/A
Steven Haussmann – 15:05
A: That will suffice. I don’t think we’re using any bleeding-
edge features!
Ana L. Milanova – 15:05
A: Stable version.
________________________________________________________________
ANON – 15:11
Q: What does it mean by “match”?
Priority: N/A
Ana L. Milanova – 15:11
A: They are the same term (essentially).
________________________________________________________________
ANON – 15:14
Q: Could we go back to the last few seconds of the first video for a
little bit? Just want to copy your writing.
Priority: N/A
Konstantin Kuzmin – 15:24
A: Done.
________________________________________________________________
ANON – 15:14
Q: Can you give a brief synopsis of logic programming and functional
programming?
Priority: N/A
Steven Haussmann – 15:16
A: Logical programming sets out a series of statements and
tries to find a way to satisfy all of them. Functional programming
mostly revolves around the composition and application of pure (side-
effect-free) functions
________________________________________________________________
ANON – 15:18
Q: SWI Prolog is just the terminal?
Priority: N/A
Steven Haussmann – 15:20
A: SWI-Prolog is an implementation of Prolog. If you’re
talking about the executable, it depends on your platform, but yes,
one of the things included is a REPL (i.e. an interactive prompt).
________________________________________________________________
ANON – 15:23
Q: Why does it say “name: Not found” on Check Honor Pledge entry?
Priority: N/A
Konstantin Kuzmin – 15:27
A: Submitty didn’t find your name in the list of students.
Please send us an email, so that I could look into that problem and
correct it. Make sure that you put your first name last name under the
Honor Pledge.
________________________________________________________________
ANON – 15:28
Q: So what would !likes(al, pie) Output then?
Priority: N/A
Ana L. Milanova – 15:29
A: Prolog is a subset of first order logic. One of the
restrictions is that it does not allow for negative assertions. We
cannot assert things like !likes(al, pie).
Ana L. Milanova – 15:31
A: We can ask a query !likes(al,pie), and Prolog will answer
true. It has failed to assert likes(al,pie), which makes the negation
true. More on negation in prolog later.
Steven Haussmann – 15:32
A: Prolog does have the notion of “not provable”, so you can
*query* for something like that: \+likes(al, pie). gives “true” as a
result. However, as Milanova said, you cannot assert a negative. There
are no negative facts.
________________________________________________________________
ANON – 15:29
Q: so if prolog cannot assert a theorem as true, it defaults to false?
eg, not Likes(pie, al), would be true, because it cannot assert that
al likes pie
Priority: N/A
Ana L. Milanova – 15:29
A: Correct.
________________________________________________________________
ANON – 15:32
Q: So Variables Values can be specified after the Query? And if no
Value is specified for that Variable then Prolog searches the Entire
Database for all Potential Values?
Priority: N/A
Ana L. Milanova – 15:33
A: Yes, that’s correct.
________________________________________________________________
ANON – 15:35
Q: for “?-likes(eve, W), person(W), food(V)” why aren’t “W=eve, V=pie”
and “W=eve, V=apple” answers too?
Priority: N/A
Ana L. Milanova – 15:37
A: Because in our database of facts only tom is a person,
i.e., we don’t have person(eve).
________________________________________________________________
ANON – 15:38
Q: is it just me one having trouble with audio?
Priority: N/A
________________________________________________________________
ANON – 15:38
Q: ok no need to answer that. i see i am not. I will stream on
mediasite.
Priority: N/A
Steven Haussmann – 15:39
A: See my answer from around the top of the hour above —
webex is probably sending the audio to the wrong place. If so,
disabling all devices other than the one you want the audio to come
out on should correct it
Steven Haussmann – 15:40
A: the streamed content ignores your output settings in webex
________________________________________________________________
ANON – 15:39
Q: Strangely enough I have audio when the lecture is not being
streamed.
Priority: N/A
________________________________________________________________
ANON – 15:41
Q: If we press ; and there are no more answers, then Prolog will just
terminate the query?
Priority: N/A
Steven Haussmann – 15:42
A: It will terminate once it fails to find any more satisfying
assignment for your variables.
________________________________________________________________
ANON – 15:43
Q: What does the period mean in prolog?
Priority: N/A
Steven Haussmann – 15:44
A: The period ends a statement.
________________________________________________________________
ANON – 15:45
Q: So does that mean that when you enter a query, Prolog has
automatically done one extra search?
Priority: N/A
Ana L. Milanova – 15:47
A: When Prolog sees the query, it starts the search.
Steven Haussmann – 15:49
A: If you’re referring to how it automatically ends the search
if there’s aren’t more answers, rather than requiring you to enter ;
to make it check for more, I do believe that Prolog recognizes there
can’t be more answers and stops immediately.
________________________________________________________________
ANON – 15:50
Q: Sorry, so does the query terminate automatically when there’s no
more answers? Or you have to type ; one more time?
Priority: N/A
Ana L. Milanova – 15:52
A: Depends on the query and database of facts. Sometimes,
Prolog is able to see there is nowhere more to search; in this case it
will terminate with a full stop. Other times, it will look like there
is more to search; in this case prolog will not terminate
Ana L. Milanova – 15:52
A: the query. And if the user presses ;, it will terminate
then with just . or false.
________________________________________________________________
ANON – 15:53
Q: In the Example with snowy(troy), it was not specified by
rainy(troy), cold(troy) so if we then queried ? – rainy(C) would this
return C = troy as well although not explictly stated?
Priority: N/A
Ana L. Milanova – 15:53
A: No.
Ana L. Milanova – 15:55
A: Prolog proved snowy(troy) due to the second clause,
snowy(troy). But we don’t have a fact rainy(troy), or a deductive rule
that can help us prove rainy(troy).
________________________________________________________________
ANON – 15:58
Q: could you specify something like rainy(x) := snowy(x) to make that
work?
Priority: N/A
Ana L. Milanova – 15:58
A: Yes, that should work.
Ana L. Milanova – 15:58
A: rainy(X) :- snowy(X).
Ana L. Milanova – 15:59
A: X should be upper case, to denote a variable.
________________________________________________________________
ANON – 15:59
Q: Are the steps for installing and running prolog the same for
windows/ubuntu? Also, which platform do you reccommend?
Priority: N/A
Steven Haussmann – 15:59
A: I’ve had no problems on Windows or Linux, so I would
suggest using whatever platform you’re already familiar with.
________________________________________________________________
ANON – 15:59
Q: im watching on media site? am I just behind or…. because I have
like seattle and rochester, not troy. Are they just different values?
can someone tell me what timestamp you all are currently on? I can’t
see the video on webex due to linux difficulties
Priority: N/A
Steven Haussmann – 16:00
A: at the time I answered this, we’re at 14:00 or so into the
third part
Ana L. Milanova – 16:02
A: On slide 28 I changed the snowy example slightly, adding
snowy(troy) as a fact at the end. That’s what we were discussing. The
snowy.pl example we are usually referring to, does not include
snowy(troy).
________________________________________________________________
ANON – 16:02
Q: So when X is initially bound to seattle, simultaneously C is also
cound to that value since they are unified? And when we backtrack, X,
the same occurs for C?
Priority: N/A
Ana L. Milanova – 16:03
A: Yes.
________________________________________________________________
ANON – 16:07
Q: can variables unify with functors?
Priority: N/A
Ana L. Milanova – 16:08
A: Yes, variables can unify with structures.
________________________________________________________________
ANON – 16:12
Q: Why is ajit for art not also output?
Priority: N/A
Ana L. Milanova – 16:16
A: Because the query is classmates(jane,Y), and having
Y=ajit // Z=cs would require that takes(jane,art) is asserted as true.
________________________________________________________________
ANON – 16:12
Q: When will the hw be posted?
Priority: N/A
________________________________________________________________
ANON – 16:14
Q: Oh never mind I understand, for the Above Question.
Priority: N/A
________________________________________________________________
ANON – 16:15
Q: so when I enter a query into prolog, eg Food(X), it returns only
the first satisfying instance – should this return all satisfying
instances?
Priority: N/A
Steven Haussmann – 16:16
A: it will return one set of satisfying assignments, then wait
for your input. Hit ; to see another set of answers, ot hit . to stop
________________________________________________________________
ANON – 16:16
Q: If given a question about the bindings for C (like in slide 35), is
it only asking for the results of the goal?
Priority: N/A
Ana L. Milanova – 16:18
A: Yes, the question is asking for the possible bindings for
C. And that’s what Prolog outputs. Prolog does not output the values
of Z that lead to that particular binding for C, we just did this as
exercise.
________________________________________________________________
ANON – 16:17
Q: Would we go over the Search Tree for the Final Exercise next class?
Priority: N/A
Ana L. Milanova – 16:18
A: We can do that.
________________________________________________________________
ANON – 16:17
Q: Why is C = jane returned twice again? I might have missed this in
the video.
Priority: N/A
Ana L. Milanova – 16:19
A: We’ll go over the tree in the beginning of next class. But
basically, beause there are two different values of Z, Z = his, and
Z=art that make classmates(jane,jane) true.
Ana L. Milanova – 16:19
A: Sorry, Z=his and Z=cs.
________________________________________________________________