-
Aug. 5, 2017: Version 2.3
- New built-ins for Viterbi computation based on cyclic explanation graphs
- New built-ins for learning to rank and ranking goals
-
March 30, 2016: Version 2.2
- Re-organized the released packages and refined the user's manual
-
Sept. 12, 2014: Version 2.2 alpha 1
- New built-ins for generative conditional random fields (CRFs)
- New built-ins for probability computation based on explanation graphs
-
Sept. 1, 2012: Version 2.1
- New built-ins for MCMC sampling
- New built-ins for Viterbi training (thanks to Christian Theil Have for the motivation)
- Bug-fix: an unsafe optimization of non-probabilistic clauses of probabilistic predicates
was performed (thanks to Waleed Alsanie for his report)
- Cumulative bug-fixes and code improvements (see
doc/changes.txt
in the package)
-
March 15, 2012: Version 2.0.3
- Integration with B-Prolog 7.8 beta 1 (thanks to Christian Theil Have for the motivation)
-
Feb. 16, 2012: Version 2.0.2
- New built-in for saving data in the CSV format:
save_csv/2-3
(thanks to Dan Stowell for the motivation)
- Bug-fix: some wrong computation was performed in several probabilistic inferences (such as
prob/1-2
, probf/1-2
, viterbif/{1,3}
, and so on) for goals with logical variables when the clean_table
flag is turned off
- Bug-fix: there could often be read/write conflicts for a temporary byte-code file when probabilistic inferences for goals with logical variables are performed by multiple processes
-
Dec. 21, 2011: Version 2.0.1
- Integration with B-Prolog 7.5#8
- Backtrackable sampling exection of random switches (thanks to Jon Sneyers for offering a public-domain code)
- Fixed a wrong computation in the computation of variational free energy in VB-FAM (thanks to Masakazu Ishihata)
- Added an experimental flag
force_gc
for enabling/disabling garbage collection after probf
, viterbi{f,g}
and {,c}hindsight
- Modified
expand_probs/3
to allow noisy_u
as an argument
- Cumulative bug-fixes and code improvements (see
doc/changes.txt
in the package)
-
July 15, 2010: Version 2.0
- Revival of parallel EM learning
- Clearer way of handling hyperparameters
- Predicates
*_sw_d
are used in MAP estimation
- Predicates
*_sw_a
are used in variational Bayes
- Removal of obsolete/unrecommended execution flags:
dynamic_default_sw
,
dynamic_default_sw_h
,
params_after_vbem
,
reduce_copy
and
smooth
- Probabilities of explanation paths included into the output of
the built-ins such as
probfi/1-2
- New built-ins for system/program information:
is_prob_pred/1-2
, is_tabled_pred/1-2
,
get_version/1
and print_version/0
- New execution flag for controlling the learning message:
learn_message
fix_sw/2
changed to unfix the target
random switch before setting its parameters
- Default initial size of the program area changed: 4M -> 8M words
- Many bug/problem fixes
(thanks to Jon Sneyers and Christian Theil Have)
- Revised user's manual
March 15, 2010: Version 2.0 beta 4
- Integration with B-Prolog 7.4
- B-Prolog 7.3 shows a problematic behavior while expanding the
table area
- Renewed usage of multi-valued switch declarations
values/2-3
were extended so that they can be a replacement of
values_x/2-3
get_values/2
and its variants were introduced to
access the outcome spaces of random switches instead of directly
calling values/2
in the clause body
- Unified specification for log-scaled probability computation
- constant scaling was abolished
log_scale
flag was introduced to turn on/off
log-scaled probability computation
- Built-ins for easy specification of outcome spaces, distributions and
pseudo counts
expand_values/2
, expand_probs/2-3
and
expand_pseudo_counts/2-3
were respectively introduced
- Change in the format of the empty explanation for a true subgoal output by
probf/2
- Static library of B-Prolog for Mac OS X 10.6 added
- Documents added:
- User's manual
- Brief developper's guide on adding the C-interface predicates into the PRISM system
- Problem fix:
bin/upprism.bat
was not included in the package for Windows
Nov. 25, 2009: Version 2.0 beta 3
- Integration with B-Prolog 7.3
- Bug fixes:
- Non-probabilistic predicates that call values/2 in the
clause body were misclassified as probabilistic
- Nagated calls of probabilistic predicates were incorrectly
translated
Nov. 12, 2009: Version 2.0 beta 2
- Several bug fixes (thanks to Jon Sneyers and Chander Iyer):
- set_sw_all/0-2 didn't work
- The write_call predicates didn't work
- count/2 was not allowed in the observed data
- The translator didn't appropriately insert a routine for initializations of variables in the disjunctive clause bodies (this bug has been added while 2.0 beta 1 being developped and possibly makes explanation search incorrect)
- The static libraries of B-Prolog for other platforms were included in the package
August 31, 2009: Version 2.0 beta 1
- Source code of the PRISM-specific part is available under the modified BSD license
- Basic components entirely replaced:
- Translator from PRISM to Prolog
- Hashtables for tabled subgoals and random switches
- Error handling mechanism
- No changes from version 1.12.1 on the usage
- Lack of some features:
- Parallel EM learning unavailable
- User's manual unavailable
June 3, 2009: Version 1.12.1
- New program examples:
- Java translator from a Bayesian network specification to a PRISM program in junction-tree style
- Cross-validation routine of a naive Bayes classifier that utilizes the built-ins newly introduced in version 1.12
- New built-ins for handling a data structure called `big arrays'
- Revised user's manual (see pages iii for the major changes)
Dec. 9, 2008: Version 1.12
- Integration with B-Prolog 7.1#3
- Utility that helps debug logging (called
write_call
)
- New built-in predicates for explanation graphs with probabilities (useful for numerical check):
-
probfi/1-2
, probfo/1-2
, probfv/1-2
and probfio/1-2
- New built-in predicates for Viterbi explanations in tree form:
-
viterbit/{1,3}
, n_viterbit/2-3
and
viterbi_tree/2
- New built-in predicates for random operations:
-
random_uniform/1-3
, random_gaussian/{1,3}
,
random_select/2-3
, random_multiselect/3
,
random_group/3
, random_shuffle/2
,
etc.
-
dice/2-3
obsoleted and replaced by random_select/2-3
-
[Note] We have changed the way to retrieve floating-point numbers from Mersenne Twister,
so the results may differ from those in the previous versions even with the same
random seed.
- New built-in predicates for statistical operations:
-
avglist/2
, varlist/2
,
stdlist/2
, modelist/2
, medianlist/2
,
minlist/2
, maxlist/2
,
etc.
- New built-in predicates for list processing:
-
Map function and reduction operation:
maplist/{3,5,7}
, reducelist/7
, etc.
-
Sorting:
number_sort/2
and custom_sort/{3,5}
-
Others:
sublist/{2,4}
, splitlist/4
,
grouplist/4
, countlist/2-3
,
filter/3-4
, etc.
- Target declaration obsoleted (now
target/1-2
make no effect on the program)
- Data file declaration obsoleted (please use the
data_source
flag instead)
- New execution flag
show_itemp
for deterministic annealing EM
- Default value of the
rerank
flag raised (from 5
) to 10
- Default value of the
reset_hparams
flag changed to on
- Options
missing(X)
and missing
newly available in load_csv/3
prism/1-2
and prismn/1-2
extended to accept string file names
- Default initial sizes of some memory areas changed
- Program area: 2M -> 4M words
- Stack + heap: 30M -> 5M words
- Trail: 2M -> 2M words (unchanged)
- Table: 60M -> 10M words
- Several minor bug fixes
- Program examples updated to follow the changes in version 1.12 and to demonstrate the new facilities
- Revised user's manual (see pages ii-iii for the major changes)
Oct. 31, 2008: Version 1.11.3
- Bug fix: Top-N Viterbi predicates, such as
n_viterbif/3
,
computed probabilities incorrectly when the log_viterbi
flag was on
(This affected the usual Viterbi routines, such as
viterbif/3
, in the variational Bayes mode. Fortunately however, it is
confirmed with our dataset that the bad influence was mitigated by the mechanism of reranking)
- Bug fix: When a program contains a query statement for random switches,
the system inappropriately detected an error while loading the program in the consult mode
- Change in delete/3 so that it works in the same way as that of B-Prolog
- Several other minor bug fixes
- No changes in the contents of the user's manual
(we just modified the part related to the version number and removed the notification of changes from 1.11.1)
Feb. 15, 2008: Version 1.11.2
- Some minor bug fixes
- Minor revision of the user's manual (see page ii for the changes)
Nov. 13, 2007: Version 1.11.1
- Bug fix: dice/2 didn't work at all
- Bug fix: The chindsight predicates returned NaN when
the ‘scaling’ flag was set to ‘log_exp’
- Bug fix: Some n_viterbig predicates didn't work for ground goals
- Bug fix: The n_viterbi_h predicates crashed under some conditions
- Changes in the specifications of some n_viterbig predicates
for the cases where a given goal is ground
- Revised user's manual
(Section 4.6.2 is modified according to the changes of the n_viterbig predicates)
Oct. 29, 2007: Version 1.11
- Several bug fixes
- Revised user's manual (grammatical corrections and a couple of new sections)
Sept. 12, 2007: Version 1.11 beta 7
- Integration with B-Prolog 7.0
- Redesigned virtual machine
(significant speed-up for non-tabled predicates)
- Efficient memory use in tabling
- Variational Bayesian learning
- Parallel EM learning
- Top-N Viterbi computation
- Deterministic annealing EM algorithm
- Improved efficiency in various probabilistic inferences
- Inter-goal sharing of subgoals fully implemented
- Removal of the redundancy in constructing explanation graphs
Dec. 26, 2006: Version 1.10
- Integration with B-Prolog 6.9
- New memory manager that automatically expands the memory areas
(no need to specify the memory area sizes)
- Almost 100% ISO compliant built-ins
- New useful built-ins
- Improved stability against large data
- Model scoring (Bayesian Information Criterion and Cheeseman-Stutz)
- User's control for automatic cleaning of the solution table
- Several extensions to built-ins of PRISM
- (Numerous bug/problem fixes)
Mar. 7, 2006: Version 1.9
-
64bit version available for large-scale computation
-
Twice faster routine for tabled search
-
New probability computation called “hindsight” computation
-
Various practical utilities:
-
MAP (maximum a posteriori) estimation with Dirichlet prior
-
Random restart in EM learning
-
Batch (or non-interactive) execution
-
Mechanism for avoiding underflow
-
Enhanced facilities for handling random switches
Dec. 12, 2004: Version 1.8.1
-
Bug fix for the problem in learning with non-ground observed goals.
Nov. 25, 2004: Version 1.8
-
Extended learning ability for generative models with failure,
which is based on Cussens's FAM (failure-adjusted maximization)
algorithm and Sato's First-Order Compiler
-
Improvement in efficiency of built-ins for probabilistic inference
(e.g.
prob/1-2
, probf/1-2
)
-
Native implementation of Viterbi algorithm
July 2, 2004: Version 1.8 alpha 2
- Significant speed-up in EM learning
(by an order of magnitude, from our benchmark)
June 4, 2004:
A new program example for profile HMMs is added to the version 1.7
package.
May 12, 2004: Version 1.7
- Significant speed-up in tabled search
- More efficient memory use
- Some additional useful built-ins (including a tracer for sampling)
Last update: Aug. 5, 2017