This new release brings much faster dynamic predicates,...
Move to
=> <=
Darueber Spitze
See also
MINERVA2.4
MINERVA2.3
MINERVA2.2
MINERVA2.1
MINERVA2.0
MINERVA1.3
MINERVA1.2
MINERVA1.1
MINERVA1.0
IF Computer > MINERVA > Manual > Release Notes > MINERVA2.1

MINERVA2.1

This new release brings much faster dynamic predicates, prolog flags to deal with them, and a few improvements due to customer requests which we gratefully acknowledge. CORBA was added into the set of provided extensions.

Notes:

  1. *.mbc MINERVA binary code is not compatible to previous releases of MINERVA. Please recompile *.min source files to update your *.mbc binary code files.
  2. *.min MINERVA source programs are upward compatible.
  3. Please update your *.msp and *.mca MINERVA Startup Property and Compressed Archives if you are using custom files that access MINERVA libraries.
  4. This version executes on Java 1.1 and on Java 1.2. (Caution: Netscape 4.0.4 and earlier do not suffice.)

New Functionality:

  1. Fast Dynamic Predicates

    Dynamic predicates (see dynamic, asserta, assertz, retract) are now implemented with smart indexing. Customer applications which make heavy use of dynamic predicates showed a performance increase of two orders of magnitude over previous versions of MINERVA.

    A word about indexing in MINERVA: indexing is a general word for a variety of methods to increase access speed to collections of data from linear resp exponential to constant resp logarithmic time. In MINERVA there are 3 forms of data: compiled predicates, dynamic predicates, and blackboards.

    For compiled predicates, "first argument indexing" is used for collections of predicates where the first argument is not a variable. Indexing works on the functor and arity of the predicate and the functor of the first argument, deeper parts of a term are not used.

    For dynamic predicates, "smart indexing" is done whenever MINERVA considers it worthwhile over all arguments which are never asserted as a variable. Indexing works on the functor and arity of the predicate and the functor of the targeted arguments, deeper parts of a term are not used.

    For data stored in blackboards, "exhaustive indexing" is done over the key: the whole term, incuding its deeper parts, is used as material for indexing.

    Programming Hints:

    1) Indexing can only be performed for data sets that are "ground" i.e. not variables in the important locations. Indexing something like:

    		a(1).
    		a(2).
    		a(X) :- X = undetermined.  % catch-all case
    	
    will NOT result in the desired speedup. This is a BAD example.

    2) Access to indexed data sets is only fast if the key is actually used. Compare:

    	Data:
    		male(eric).
    		male(kentaro).
    			:
    		female(mika).
    		female(sonya).
    			:
    	Program:
    		% GOOD			% BAD
    		?- male(charles).	?- male(X), X = kaori.
    	

  2. prolog_flags MINERVA 2.1 knows set_prolog_flag/2 and get_prolog_flag/2:

    set_prolog_flag knows 'unknown' with possible values error, warning and fail.

    get_prolog_flag knows 'max_arity' and 'unknown'.

    In violation of the ISO Standard for Prolog, the first argument to get_prolog_flag must be instantiated.

  3. predicate_type/2 predicate_type/2 returns dynamic, static, or undefined.

  4. improved sort/2

    Upon a customer complaint the implementation of sort/2 was replaced with a highly efficient and better behaved version.

  5. CORBA in ExamplePrograms/Extensions

    Upon request we added the source and precompiled MINERVA predicates to access CORBA. See ExamplePrograms/Extensions/CORBA/

Please also re-read the Release Notes of previous versions of MINERVA. You have feedback on this release or requests for the next? Please let us know!

read on...
MINERVA
ifcomputer logo
f
Expert Services on the Web
Sprache
English
Japanese
Server
USA
Japan
Site Access
Local Index
Local Contents
Site Contents
Site Index
Printer Friendly
For imode
For PDA
Search
document: http://www.ifcomputer.co.jp/MINERVA/Manual/ReleaseNotes/MINERVA2.1/home_de.html
published 2008/12/1 update 1999/10/8 (c) 1996-2006 IF Computer Japan
IF Computer 5-28-2 Sendagi, Bunkyo-ku Tel +81-3-5814-3352 start (AT) ifcomputer.com
Customer Support Tokyo 113-0022 Japan   http://www.ifcomputer.com
scroll to top managed with ubiCMS