Did you know ... Search Documentation:
SWI-Prolog owl logoProfile for user Jan Wielemaker

Tags by Jan Wielemaker

Apache[wiki] Can I replace a LAMP stack with SWI-Prolog?, [wiki] Making the server accessible at port 80
C-Sharp[wiki] SWI-Prolog interface to C# and F#
Debian[wiki] Prerequisites for Debian based systems (Ubuntu, Mint, ...)
Eclipse(IDE)[wiki] Program Development Tools
F-Sharp[wiki] SWI-Prolog interface to C# and F#
JPL[wiki] SWI-Prolog signal handling (Unix-like platforms)
JVM[wiki] SWI-Prolog signal handling (Unix-like platforms)
Java[wiki] SWI-Prolog signal handling (Unix-like platforms)
MacOSX[wiki] SWI-Prolog downloads
Mint[wiki] Prerequisites for Debian based systems (Ubuntu, Mint, ...)
Mono[wiki] SWI-Prolog interface to C# and F#
MySQL[wiki] Can I replace a LAMP stack with SWI-Prolog?
PHP[wiki] Can I replace a LAMP stack with SWI-Prolog?
Raspberry[wiki] Prerequisites for Debian based systems (Ubuntu, Mint, ...)
Raspbian[wiki] Prerequisites for Debian based systems (Ubuntu, Mint, ...)
UTF-8Sec. 2.19
Ubuntu[wiki] Prerequisites for Debian based systems (Ubuntu, Mint, ...)
UnicodeSec. 2.19
ansi(color)[wiki] Controlling colored output on the terminal
apt-get[wiki] Prerequisites for Debian based systems (Ubuntu, Mint, ...)
blanknormalize_space/2
brew[wiki] Building SWI-Prolog on MacOS (Lion and Snow Lion)
canonicalnormalize_space/2
cleanupat_halt/1, thread_at_exit/1, setup_call_cleanup/3, retractall/1
colormessage_property/2
copy[wiki] Windows keyboard accelerators in XPCE
dollarSec. 2.8
edit-distanceisub/4
filterinclude/3, exclude/3
git[wiki] How to submit patches?
github[wiki] Creating and submitting extension packages for SWI-Prolog
goalinitialization/1
homebrew[wiki] Building SWI-Prolog on MacOS (Lion and Snow Lion)
http-server[wiki] Running the server from Linux upstart
http_errorSec. 3.17
lion(macos)[wiki] Building SWI-Prolog on MacOS (Lion and Snow Lion)
lxc-container[wiki] Running the server from Linux upstart
macos[wiki] Building SWI-Prolog on MacOS (Lion and Snow Lion)
namespaces[wiki] How to deal with prefixes in RDF?
needs-updating[wiki] RDF Query Languages, Sec. A.6, [wiki] SWI-Prolog -- Installation on Linux, *BSD (Unix), [wiki] Graphical applications
not\+/1
octetSec. 2.19
paste[wiki] Windows keyboard accelerators in XPCE
pausesleep/1
pcre
pi[wiki] Prerequisites for Debian based systems (Ubuntu, Mint, ...)
port[wiki] Building SWI-Prolog on MacOS (Lion and Snow Lion)
projects[wiki] Related Web Resources
proxy[wiki] Making the server accessible at port 80
pull-request[wiki] How to submit patches?
quasiquotationjavascript/4, html/4
readPL_chars_to_term()
regex
replace-in-listselect/4
stripnormalize_space/2
suspendsleep/1
terminalmessage_property/2
top-level-variableSec. 2.8
tutorials[wiki] Related Web Resources
utf8proc
version-7Sec. 5
waitsleep/1
whitenormalize_space/2
zero-padding-integersformat/2

Comments by Jan Wielemaker

Sec. A.34If you table predicates with infinitely many solutions you simply run out of (ta ...
wildcard_match/2Note that - The pattern is compiled first.
phrase_from_stream/2Recent versions of this library do not use repositioning but use non-backtrackab ...
Sec. A.3.3Use assoc_to_keys/2 and length/2
current_stream/3You do not need current_stream/3 for that: ``` ?- stream_property(X, file_no(2)) ...
file_search_path/2No.
[wiki] How do I upload a file, preserving the file-name?`octet` should have worked as it should imply `binary`.
?=/2You forgot the negative side.
print_message/2There is no restriction on Term as long as there is a grammar rule that accepts ...
Thanks.
access_file/2The access_file/2 predicate is broken on Windows.
phrase_from_stream/2The stream must have the `reposition` property (see stream_property/2).
http_status_reply/4Users should *not* call this predicate directly (or in fact any other predicate ...
flatten/2Indeed.
min_member/2This is a general property of predicates that depend on the standard of terms wh ...
rdf_resource/1AFAIK, the term _resource_ in RDF refers to URIs only.
load_html/3HTML is often illegal.
Sec. 4.7.1I think that ISO only guarantees that variables that are not unified to each oth ...
Sec. 4.24.2For example (note that =|\n|= is a newline): ?- normalize_space(atom(Out), ' \nh ...
callable/1The footnote supports that.
[wiki] Is there a true C++ binding?Thanks.
uuid/2SWI-Prolog's library(uuid) is based on the [OSSP library](http://www.ossp.org/pk ...
term_factorized/3Note that the results of this predicate are independent from the actual sharing ...
assertz/1@bug If the order of the clauses is irrelevant, it is generally better to use as ...
rdf_meta/1@see [Howto](</howto/UseRdfMeta.txt>) for a more in-depth discussion and example ...
pack_install/1pack_install/1 requires the archive package installed.
term_hash/2The predicates term_hash/2 and term_hash/4 are typically used to add indexable a ...
[wiki] Graphical applicationsThis page should point at the options to use the browser.
Sec. 5.4.3should be get_assoc/3 and dict_pairs/3.
Sec. A.6Replace with PlDoc comments; the manual version is way outdated.
[wiki] RDF Query LanguagesNeeds updating.
Sec. 4.13@see library(dcg/basics) for rules parsing and generating numbers, identifiers, ...
copysign/1Must be /2
message_queue_property/2The existence of a _named_ queue can be tested without generating an exception u ...
get_assoc/5Normally used to update the value associated with a key.
put_byte/1Note that put_byte/1 can only be used with a _binary_ stream. @see open/4, set_s ...
http_parameters/3POST data is read using http_read_data/3.
http_parse_header/2@see http_parameters/3 for deatils
Sec. 3.6@see [SWI-Prolog IDE --- Prolog Navigator](</navigator.txt>)
format/2Use the format string below to realize zero-padded integers.
repeat/0repeat/0 is commonly used for _failure driven_ loops, for example to read data.
current_stream/3@deprecated New code should use the ISO predicate stream_property/2

News articles by Jan Wielemaker

Fast cars and Prolog -- Now the dust has mostly settled for me, I thought people here might be intereste ...
SWI-Prolog 7.4.0 release candidate -- After about 18 months SWI-Prolog is almost ready for its next stable version.
Doxygen plugin (helper) for Prolog -- I received an announcement from _Dr Beco_ that he wrote a plugin (helper) for th ...
SWI-Prolog 7.2.0 is available for download.
UCSD Students Contributing to SWI-Prolog -- The University of California San Diego is sponsoring a group of nine computer sc ...
Call for help: Oauth 2.0 and OpenID Connect -- After getting a message that Google will discontinue plain OpenID `login-with-go ...
Learn Prolog Now! with embedded SWISH -- I'm very pleased that [Learn Prolog Now!](http://www.learnprolognow.org/) and SW ...
Mike Elson and Matt Lilley contributed CQL: a high-level database interface -- CQL is a powerful high level abstraction of SQL queries.
Todo-Backend: a shared example to showcase backend tech stacks -- I have submitted a showcase implementation for [Todo-Backend: a shared example t ...
Markus Triska added clp(b) to SWI-Prolog -- Markus Triska, the author of SWI-Prolog's clp(fd) library, contributed a boolean constraint library, [library(clpb)](</pldoc/man?section=clpb>).
SWI-Prolog supports websockets -- As of version 7.1.19, SWI-Prolog provides support for websockets.
New edition of the SWI-Prolog manual as book -- The SWI Prolog Manual 7.1 in book form is now available worldwide.
SWISH meets clp(fd) -- The SWISH web application (SWI-Shell or SWI for Sharing, depending on your taste ...
Ann: SWI-Prolog 7.1.14 -- I have uploaded SWI-Prolog 7.1.14.
Primary git repository moved to GitHub -- The primary git repository has been moved from [www.swi-prolog.org](</git/>) to ...
The mailing list moved to Google groups -- The SWI-Prolog mailinglist has been turned into a Google Group.
SWI-Prolog's source on GitHub -- I'm moving the SWI-Prolog sources from www.swi-prolog.org to github.
[wiki] SWI-Prolog downloadsOn January 29, Markus Triska successfully defended his PhD thesis titled [Correc ...
Pengines: Web Logic Programming Made Easy -- Pengines is short for Prolog Engines.
New website -- The [SWI-Prolog](http://www.swi-prolog.org) website runs on SWI-Prolog for about 6 years. It grew out of a big mess the site was before then.

Packages by Jan Wielemaker

PackVersion
(#older)
Downloads
(#latest)
Rating
(#votes/
#comments)
Title
graphml0.1.063
(1/1)
Write GraphML files
gvterm1.117948
(1/1)
Show Prolog terms using graphviz
wsdl0.137
Web Service Description Language (WSDL) and SOAP
webconsole0.9.116261
(0/1)
Use a browser as HTML console
smtp1.0.051928
An (E)SMTP client for sending mail
rserve_client0.872710
R Rserve client
rocksdb0.6.0185
SWI-Prolog interface to RocksDB
resbound0.8.112322
Run goal with resource bounds
recaptcha0.9.225045
reCAPTCHA plugin for SWI-Prolog HTTP framework
odf_sheet0.2.344125
Load and analyze ODF spreadsheets (.ods)
mime0.5.01
MIME processing library based on maildrop
inotify0.9.1121
Access Linux inotify API to watch file system changes
httplog0.5.03
Analyse SWI-Prolog HTTP server log files
hdt0.51
Access RDF HDT files
googleclient0.5.211311
SWI-Prolog code for "Login with Google"
geoip0.9.03
Access GeoIP library
environ1.023
Demo package with C code, fetching the program environment
This list contains packages whose author name, e-mail or homepage url matches the profile information.

Reviews by Jan Wielemaker

Showing 2 reviews, sorted by date entered, last review first.

Pack: sparkle

Really nice way to run SPARQL queries. With support for concurrency and auto paging this can be used for large scale federated processing of RDF. Fits great with ClioPatria's SWISH plugin. Two small points:

  • I wonder about the high-priority ?? operator. Possibly it is ok because we have module-specific operators ...
  • Is it necessary to have an explicit filter(Filter) term?
Sunday 19 April 2015, Jan Wielemaker
Pack: thousands

Note that the 6.3 development versions allow for large integers using digit groups. These groups are separated by a single space or a an underscore followed by arbitrary white space. For example

:- set_prolog_stack(global, limit(10 000 000 000)).

This practically makes this pack redundant for SWI-Prolog. It is still a useful work around for older versions and other Prolog systems.

Friday 21 June 2013, Jan Wielemaker