Q:

Prolog Domain of activity

I have found a Prolog program and read about AI programming a little.  My program is :
causes(measles, spots). 
causes(mumps, swollen_glands). 

known(spots). 

diagnosis(Symptom,Disease) :-
    causes(Disease,Symptom),
    known(Symptom). 

and it's file name is :

ex.pl

when i run this command on Linux :

swipl ex.pl

I get this prompt 

?- 

My question is how can I ask a question from it beside of getting true or false answers ?  Like "what is the name of the disease causes spots?"  Or what happen when I delete the line of:
known(spots). 

Or is there is any interesting question can I ask it? 

A:

Quick answer to "what is the name of the disease causes spots?" ( notice the capital in Disease):
?-  causes(Disease, spots). 
Disease = measles. 

Longer answer: Prolog is a logic programming language.  This means that you program code is universally quantified.  For example, the following code states "All diseases that cause a known symptom have that symptom as a diagnosis". 
diagnosis(Symptom,Disease) :-
  causes(Disease,Symptom),
  known(Symptom). 

Your queries in the top-level are existentially quantified.  For example causes(Disease, spots) asks "Is there a disease that causes spots?". 
The following are also universally quantified (since they belong to the program code).  But since they contain no variables to quantify over they are facts. 
causes(measles, spots). 
causes(mumps, swollen_glands). 
known(spots). 

PS: Notice that your code does not state what a disease and a symptom is.  This is only apparent from your choice of variable names.