This file is indexed.

/usr/lib/swi-prolog/doc/Manual/swiprolog.html is in swi-prolog-nox 5.10.4-3ubuntu1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

<HTML>
<HEAD>
<TITLE>SWI-Prolog 5.11.18 Reference Manual: Section 1.1</TITLE><LINK REL=home HREF="index.html">
<LINK REL=contents HREF="Contents.html">
<LINK REL=index HREF="DocIndex.html">
<LINK REL=summary HREF="summary.html">
<LINK REL=previous HREF="intro.html">
<LINK REL=next HREF="status.html">
<STYLE type="text/css">
/* Style sheet for SWI-Prolog latex2html
*/

dd.defbody
{ margin-bottom: 1em;
}

dt.pubdef
{ background-color: #c5e1ff;
}

dt.multidef
{ background-color: #c8ffc7;
}

.bib dd
{ margin-bottom: 1em;
}

.bib dt
{ float: left;
margin-right: 1.3ex;
}

pre.code
{ margin-left: 1.5em;
margin-right: 1.5em;
border: 1px dotted;
padding-top: 5px;
padding-left: 5px;
padding-bottom: 5px;
background-color: #f8f8f8;
}

div.navigate
{ text-align: center;
background-color: #f0f0f0;
border: 1px dotted;
padding: 5px;
}

div.title
{ text-align: center;
padding-bottom: 1em;
font-size: 200%;
font-weight: bold;
}

div.author
{ text-align: center;
font-style: italic;
}

div.abstract
{ margin-top: 2em;
background-color: #f0f0f0;
border: 1px dotted;
padding: 5px;
margin-left: 10%; margin-right:10%;
}

div.abstract-title
{ text-align: center;
padding: 5px;
font-size: 120%;
font-weight: bold;
}

div.toc-h1
{ font-size: 200%;
font-weight: bold;
}

div.toc-h2
{ font-size: 120%;
font-weight: bold;
margin-left: 2em;
}

div.toc-h3
{ font-size: 100%;
font-weight: bold;
margin-left: 4em;
}

div.toc-h4
{ font-size: 100%;
margin-left: 6em;
}

span.sec-nr
{
}

span.sec-title
{
}

span.pred-ext
{ font-weight: bold;
}

span.pred-tag
{ float: right;
padding-top: 0.2em;
font-size: 80%;
font-style: italic;
color: #202020;
}

/* Footnotes */

sup.fn { color: blue; text-decoration: underline; }
span.fn-text { display: none; }
sup.fn span {display: none;}
sup:hover span
{ display: block !important;
position: absolute; top: auto; left: auto; width: 80%;
color: #000; background: white;
border: 2px solid;
padding: 5px; margin: 10px; z-index: 100;
font-size: smaller;
}
</STYLE>
</HEAD>
<BODY BGCOLOR="white">
<DIV class="navigate"><A class="nav" href="index.html"><IMG SRC="home.gif" BORDER=0 ALT="Home"></A>
<A class="nav" href="Contents.html"><IMG SRC="index.gif" BORDER=0 ALT="Contents"></A>
<A class="nav" href="DocIndex.html"><IMG SRC="yellow_pages.gif" BORDER=0 ALT="Index"></A>
<A class="nav" href="summary.html"><IMG SRC="info.gif" BORDER=0 ALT="Summary"></A>
<A class="nav" href="intro.html"><IMG SRC="prev.gif" BORDER=0 ALT="Previous"></A>
<A class="nav" href="status.html"><IMG SRC="next.gif" BORDER=0 ALT="Next"></A>
</DIV>

<H2><A NAME="sec:1.1"><SPAN class="sec-nr">1.1</SPAN> <SPAN class="sec-title">SWI-Prolog</SPAN></A></H2>

<A NAME="sec:swiprolog"></A>

<P>SWI-Prolog started back in 1986 with the requirement for a Prolog 
that could handle recursive interaction with the C-language: Prolog 
calling C and C calling Prolog recursively. Those days Prolog systems 
were very aware of its environment and we needed such a system to 
support interactive applications. Since then, SWI-Prolog's development 
has been guided by requests from the user community, especially 
focussing on (in arbitrary order) interaction with the environment, 
scalability, (I/O) performance, standard compliance, teaching and the 
program development environment.

<P>SWI-Prolog is based on a very simple Prolog virtual machine called 
ZIP
<CITE><A class="cite" href="Bibliography.html#Bowen:83">Bowen <EM>et al.</EM>, 
1983</A>, <A class="cite" href="Bibliography.html#Neumerkel:93">Neumerkel, 
1993</A></CITE> which defines only 7 instructions. Prolog can easily be 
compiled into this language and the abstract machine code is easily 
decompiled back into Prolog. As it is also possible to wire a standard 
4-port debugger in the virtual machine there is no need for a 
distinction between compiled and interpreted code. Besides simplifying 
the design of the Prolog system itself this approach has advantages for 
program development: the compiler is simple and fast, the user does not 
have to decide in advance whether debugging is required and the system 
only runs slightly slower when in debug mode. The price we have to pay 
is some performance degradation (taking out the debugger from the VM 
interpreter improves performance by about 20%) and somewhat additional 
memory usage to help the decompiler and debugger.

<P>SWI-Prolog extends the minimal set of instructions described in
<CITE><A class="cite" href="Bibliography.html#Bowen:83">Bowen <EM>et al.</EM>, 
1983</A></CITE> to improve performance. While extending this set care 
has been taken to maintain the advantages of decompilation and tracing 
of compiled code. The extensions include specialised instructions for 
unification, predicate invocation, some frequently used built-in 
predicates, arithmetic, and control (<A class="pred" href="control.html#;/2">;/2</A>, <A class="pred" href="control.html#|/2">|/2</A>), 
if-then (<A class="pred" href="control.html#send_arrow/2">-&gt;/2</A>) 
and negation-by-failure (<A class="pred" href="control.html#\+/1">\+/1</A>).

<H3><A NAME="sec:1.1.1"><SPAN class="sec-nr">1.1.1</SPAN> <SPAN class="sec-title">Books 
about Prolog</SPAN></A></H3>

<A NAME="sec:books"></A>

<P>This manual does not describe the full syntax and semantics of 
Prolog, nor how one should write a program in Prolog. These subjects 
have been described extensively in the literature. See <CITE><A class="cite" href="Bibliography.html#Bratko:86">Bratko, 
1986</A></CITE>,
<CITE><A class="cite" href="Bibliography.html#Sterling:86">Sterling &amp; 
Shapiro, 1986</A></CITE>, and <CITE><A class="cite" href="Bibliography.html#Clocksin:87">Clocksin &amp; 
Melish, 1987</A></CITE>. For more advanced Prolog material see <CITE><A class="cite" href="Bibliography.html#Keefe:90">O'Keefe, 
1990</A></CITE>. Syntax and standard operator declarations conform to 
the `Edinburgh standard'. Most built-in predicates are compatible with 
those described in <CITE><A class="cite" href="Bibliography.html#Clocksin:87">Clocksin &amp; 
Melish, 1987</A></CITE>. SWI-Prolog also offers a number of primitive 
predicates compatible with Quintus Prolog<SUP class="fn">1<SPAN class="fn-text">Quintus 
is a trademark of Quintus Computer Systems Inc., USA</SPAN></SUP>
<CITE><A class="cite" href="Bibliography.html#QUINTUS:manual">Qui, 1997</A></CITE> 
and BIM_Prolog<SUP class="fn">2<SPAN class="fn-text">BIM is a trademark 
of BIM sa/nv., Belgium</SPAN></SUP>
<CITE><A class="cite" href="Bibliography.html#BIMPROLOG:manual">BIM, 
1989</A></CITE>.

<P>ISO compliant predicates are based on ``Prolog: The Standard'',
<CITE><A class="cite" href="Bibliography.html#Deransart:96">Deransart <EM>et 
al.</EM>, 1996</A></CITE>, validated using <CITE><A class="cite" href="Bibliography.html#stdprolog:98">Hodgson, 
1998</A></CITE>.

<P></BODY></HTML>