... system1.1
Many of the Prolog components of XSB are based on PSB-Prolog [48], which itself is based on version 2.0 of SB-Prolog [13].
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... results).2.1
This convention does not apply to the subdirectories of the examples directory, which illustrate advanced features of XSB.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... symbols 3.1
Operator symbols can be exported as any other symbols, but their precedence must be redeclared in the importing module.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... XSB3.2
Any parallelisation directives ( parallel) are simply ignored by the compiler, but do not result in syntax errors to enhance compatibility with various other earlier versions of PSB-Prolog.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... systems3.3
The most common uses of mode declarations in Prolog systems are to reduce the size of compiled code, or to speed up a predicate's execution.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... factoring:3.4
Unification factoring was once called transformational indexing, hence the abbreviation ti in the compiler directives
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...sec:table-aggregation 5.1
We also note that the library subsumes contains routines for checking variance and subsumption.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... aborted5.2
A more sophisticated solution is proposed in [41].
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... module6.1
The only limitation is that blah must indeed be a module in the sense that it exports at least one symbol.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... 0$\}$.8.1
A term like
$\{$foo$\}$ is just a syntactic-sugar for the term
'$\{\}$'(foo).
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... brackets.8.2
Readers familiar with Quintus Prolog may notice the difference in the treatment of the various kinds of not. For example, in Quintus Prolog a not/1 that is not enclosed within curly brackets is interpreted as a non-terminal grammar symbol.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.