From - Tue Feb 16 09:59:27 1999 Received: from stanford.edu (Durgon.Stanford.EDU [171.64.75.98]) by DB.Stanford.EDU (8.8.8/8.8.8) with ESMTP id MAA25843 for ; Tue, 2 Feb 1999 12:08:11 -0800 Sender: melloul@DB.Stanford.EDU Message-ID: <36B75B29.CB05B571@stanford.edu> Date: Tue, 02 Feb 1999 12:08:09 -0800 From: Laurence Melloul Organization: Stanford University X-Mailer: Mozilla 4.08 [en] (X11; I; SunOS 5.6 sun4u) MIME-Version: 1.0 To: chaims@DB.Stanford.EDU Subject: chaims minutes Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Keywords: X-UID: 52 Status: RO X-Status: X-Mozilla-Status: 8001 Hi all, Here is a summary of today's meeting. We discussed EXAMINE, and Partial/Progressive extract. - EXAMINE: We keep the previous syntax: (mystatus = status, myprogress = progress) = invocation_handle.EXAMINE() status: chaims integer of value {ERROR, DONE, NOT_DONE} progress: chaims integer whose semantics is megamodule specific. Could give qualitative/quantitative information. Suggestion for partial results information (in the case where some results might be ready before others - Gio, we assumed such situation could make sense in very long and intensive computation; we could not come up with a good example though): bit vector signalling which results are ready accordingly to what is specified in the repository Problem: what if progress wants to give both qualitative AND quantitative info? Maybe we should need two separate fields, one for quantitative progress, and one for qualitative progress We mainly discussed the quantitative aspect. - EXTRACT Partial/progressive extraction: It is the responsability of the server to update the progress field and make progressive/partial results accessible. Here is a suggestion for an interface in the server, called from the wrapper (one again, we mainly had in mind partial extraction): class server { public: data method1(); int method1_progress() { return method1_progress; } data_list method1_extract() { return list composed of data members (ptr1, ptr2, ptr3) which are not null } private: data *ptr1, *ptr2, *ptr3; int method1_progress; // bit vector } The wrapper calls method1_progress when EXAMINE is called by the client and status is NOT_DONE. The wrapper calls method1_extract when EXTRACT is called by the client and ( status is NOT_DONE && method1_progress() != 0) // 0 or whatever the semantics which signifies no progress is. Laurence.