Did you know ... Search Documentation:
Profile for user Jan Wielemaker

Tags by Jan Wielemaker

=>Sec. 5.6
Android[wiki] SWI-Prolog on Android Termux
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#
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
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?
UTF-8Sec. 2.18
UnicodeSec. 2.18
ansi(color)[wiki] Controlling colored output on the terminal
brew[wiki] Building SWI-Prolog on MacOSX
cleanupat_halt/1, thread_at_exit/1, setup_call_cleanup/3, retractall/1
cmake, [wiki] SWI-Prolog -- Installation on Linux, *BSD (Unix)
copy[wiki] Windows keyboard accelerators in XPCE
dollarSec. 2.9
filterinclude/3, exclude/3
git[wiki] How to submit patches?
github[wiki] Creating and submitting extension packages for SWI-Prolog
homebrew[wiki] Building SWI-Prolog on MacOSX
http-server[wiki] Running the server from Linux upstart
http_errorSec. 3.18
lxc-container[wiki] Running the server from Linux upstart
macos[wiki] Building SWI-Prolog on MacOSX
macports[wiki] Building SWI-Prolog on MacOSX
namespaces[wiki] How to deal with prefixes in RDF?
needs-updating[wiki] RDF Query Languages, Sec. A.7, [wiki] Graphical applications
ninja[wiki] SWI-Prolog -- Installation on Linux, *BSD (Unix)
octetSec. 2.18
paste[wiki] Windows keyboard accelerators in XPCE
port[wiki] Building SWI-Prolog on MacOSX
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
tcmallocSec. 4.43.2
top-level-variableSec. 2.9
trimSec. 4.24.2
tutorials[wiki] Related Web Resources
version-7Sec. 5

Comments by Jan Wielemaker

[wiki] Wiki page at "howto/http/HelloText.txt"In particular on Unix-like systems, the web-server toplevel is typically provide ...
Sec. 7If 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.4.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)) ...
[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 ...
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 ...
min_member/2This is a general property of predicates that depend on the standard of terms wh ...
load_html/3HTML is often illegal.
Sec. 4.6.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 ...
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.7Replace 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 ...
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

The new [Janus](https://www.swi-prolog.org/pldoc/package/janus.html) package all ...
SWI-Prolog 9 has arrived -- On November 24, 2022, SWI-Prolog 9 has been released.
SWEEP: A SWI-Prolog mode for GNU-Emacs based on semantic analysis by Prolog -- Good editing support for Prolog is hard due to the lack of _keywords_, _types_ a ...
Prolog celebrates its 50 year anniversary! -- The Prolog language as started by Alain Colmerauer has reached the age of 50.
s(CASP) + SWI-Prolog = 🔥 -- Jason Morris posted a very nice blog post on [using s(CASP) with SWI-Prolog and ...
SWI-Prolog 8.2.0 (stable) released -- After almost a year development a new stable version has been made available. SW ...
DataChemist sponsors development machine -- [DataChemist](https://www.datachemist.com/), the developer of [TerminusDB](https ...
Kyndi’s secret sauce is a decades-old programming language called Prolog -- Kyndi raised $20M using Prolog as secret sauce.
SWI-Prolog 8.0 available for download -- The SWI-Prolog 8.0 major release marks mostly a milestone for the internals, sta ...
SWI-Prolog on Android Termux -- The migration to CMake has motivated the github user _erlanger_ to port SWI-Prol ...
Sam Neaves successfully defends LP in Bioninformatics PhD thesis -- In late September 2018, Sam Neaves defended his thesis titled "Explorations in L ...
Wouter Beek earned cum laude PhD! -- Wouter Beek successfully defended his thesis "The ‘K’ in ‘Semantic Web’ stands f ...
SWI-Prolog on WebAssembly in your browser and Node.js -- Raivo Laanemets ported SWI-Prolog to WebAssembly using [Emscripten](https://gith ...
7.7.3/7.6.2 released -- The versions 7.6.2 (stable) and 7.7.3 (development) have been released.
Version 7.6.1 released -- Version 7.6.1 has been released.
7.6.0-rc1 available -- Stable release version 7.6.0-rc has been uploaded.
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

tot: 26
tot: 2,518
Write GraphML files
Use a browser as HTML console
Show Prolog terms using graphviz
Web Service Description Language (WSDL) and SOAP
Access to WordNet database
An (E)SMTP client for sending mail
Small Adventure Games in Prolog using the CHAT80 Prolog natural language application
Goal directed ASP solver
R Rserve client
SWI-Prolog interface to RocksDB
Run goal with resource bounds
reCAPTCHA plugin for SWI-Prolog HTTP framework
PrologMUD I7 (NomicMU!) with small Adventure Games in Prolog using the CHAT80 Prolog natural language application
Persistent answer cache
OpenAPI (Swagger) interface
Load and analyze ODF spreadsheets (.ods)
MIME processing library based on maildrop
Provide an embedded SSH server
Access Linux inotify API to watch file system changes
Analyse SWI-Prolog HTTP server log files
Access RDF HDT files
SWI-Prolog code for "Login with Google"
Access GeoIP library
HTTP support for file uploading
Dynamically call C functions
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 3 reviews, sorted by date entered, last review first.

Pack: refactor

Great stuff! I managed to rewrite Ciao lpdoc documentation into PlDoc quite easily. It would be great to have some more documentation though!

Had to manually install the assertions pack.

Tuesday 13 July 2021, Jan Wielemaker
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