]> matita.cs.unibo.it Git - helm.git/commitdiff
- reviewed latest CSC'comments
authorStefano Zacchiroli <zack@upsilon.cc>
Wed, 28 May 2003 06:58:47 +0000 (06:58 +0000)
committerStefano Zacchiroli <zack@upsilon.cc>
Wed, 28 May 2003 06:58:47 +0000 (06:58 +0000)
- added future works
- added an image

helm/papers/calculemus-2003/hbugs-calculemus-2003.tex

index ecce0e4fc923cf70e5bc244390087ec77c8e9532..5d08fa067af8f612a55d2cd6a7b8f190df2680b7 100644 (file)
@@ -62,7 +62,9 @@
   and beginners (who can learn from it).
 \end{abstract}
 
-\section{Introduction}
+\section{Introduction\ednote{Zack: attualmente sembra che posto ne abbiamo: se
+la situazione non muta un 10 righe su \helm{} possiamo metterle, non tanto per
+la conferenza quanto per i posteri}}
   The \ws{} approach at software development seems to be a working solution for
   getting rid of a wide range of incompatibilities between communicating
   software applications. W3C's efforts in standardizing related technologies
   for client applications to access a wide variety of services and abstract over
    them.
 
-  Since the \emph{Declaration of Linz}, the MONET Consortium \cite{MONET},
+  \oldpart Since the \emph{Declaration of Linz}, the MONET Consortium \cite{MONET},
   following the guidelines \ednote{guidelines non e' molto appropriato, dato che
   il concetto di broker non e' definito da W3C e co} of the \wss{}/brokers
   approach, is working on the development of a framework aimed at providing a
   set of software tools for the advertisement and discovering of mathematical
   \wss{}.
+  \begin{newpart}Since the \emph{Declaration of Linz}, the MONET Consortium
+  \cite{MONET}, is working on the development of a framework, based on the
+  \wss{}/brokers approac, aimed at providing a set of software tools for the
+  advertisement and the discovery of mathematical \wss{}.\end{newpart}
   %CSC This framework turns out to be strongly based on both \wss{} and brokers.
 
   Several groups have already developed \wss{} providing both computational and
   A precursor of \hbugs{} is the \OmegaAnts{} project \cite{???},
   which provided similar functionalities to the
   \Omegapp{} proof-planner \cite{Omega}. The main architectural difference
-  between \hbugs{} and \OmegaAnts{} is that the latter is based on a
+  between \hbugs{} and \OmegaAnts{} are that the latter is based on a
   black-board architecture and it is not implemented using \wss{} and
   brokers. Other differences will be detailed in Sect. \ref{conclusions}.
 
   domain.
 }
 
-\section{Architecture}
+\section{An \hbugs{} Bird'S Eye View\ednote{Zack: sono in vena di boiate
+stasera!}}
 \label{architecture}
   \myincludegraphics{arch}{t}{8cm}{\hbugs{} architecture}{\hbugs{} architecture}
 
     An \hbugs{} client is a software component able to produce \emph{proof
     status} and to consume \emph{hints}.
 
-    \ednote{Zack: "status" ha il plurale? CSC: no}
     A proof status is a representation of an incomplete proof and is supposed to
     be informative enough to be used by an interactive proof assistant. No
     additional requirements exist on the proof status, but there should be an
     agreement on its format between clients and tutors. An hint is a
-    representation\ednote{non c'\'e un sinonimo pi\'u carino?}
+    representation\ednote{CSC: non c'\'e un sinonimo pi\'u carino? Zack: l'unico
+    decente sembra essere nuovamente "suggestion"}
     of a step that can be performed in order to proceed in an
     incomplete proof. Usually it represents a reference to a tactic available
     on some proof assistant along with an instantiation for its formal
     parameters. More structured hints can also be used: an hint can be
     as complex as a whole proof-plan.
 
-    Clients act both as \ws{} provider and requester (using W3C's terminology
-    \cite{ws-glossary}). They act as providers for the broker (to receive hints)
-    and as requesters (to submit new status). Clients
+    \myincludegraphics{interfaces}{t}{8cm}{\hbugs{} \wss{} interfaces}{\hbugs{}
+    \wss{} interfaces}
+
+    Using W3C's terminology \cite{ws-glossary}, clients act both as \ws{}
+    provider and requester, see \ednote{Zack: va bene "see"?, "cfr" credo sia
+    solo italiano ...} Fig. \ref{interfaces}.
+    They act as providers for the broker (to receive hints)
+    and as requesters (to submit new status) \ednote{Zack: non manca il "for"
+    anche per i requesters?}. Clients
     additionally use broker service to know which tutors are available and to
     subscribe to one or more of them.
 
     the user be the means of some effect in the user interface (e.g. popping a
     dialog box or enlightening a tactic button).
 
-    \hbugs{} clients act as MONET clients and ask broker to provide access to a
+    \hbugs{} clients act as MONET clients and ask brokers to provide access to a
     set of services (the tutors). \hbugs{} has no actors corresponding to
     MONET's Broker Locating Service (since the client is supposed to know the
     URI of at least one broker) and Mathematical Object Manager (since proof
     status are built on the fly and not stored).
 
   \paragraph{Brokers}
-    \hbugs{} brokers are the key actors of the \hbugs{} architecture since they
-    act as intermediaries between clients and tutors. They behave as \ws{}
-    providers and requesters for \emph{both} clients and tutors.
+    Brokers are the key actors of the \hbugs{} architecture since they
+    act as intermediaries between clients and tutors. They behave as \wss{}
+    providers and requesters for \emph{both} clients and tutors, see Fig.
+    \ref{interfaces}.
 
     With respect to client, a broker act as \ws{} provider, receiving the
     proof status and forwarding it to one or more tutors.
     by requesting computations (\emph{musings} in \hbugs{} terminology) on
     status received by clients and by stopping already late but still
     ongoing \musings{}
-    \ednote{Sta frase va comunque riscritta perch\'e non si capisce una mazza}.
+    \ednote{CSC: Sta frase va comunque riscritta perch\'e non si capisce una
+    mazza. Zack: io intanto ho aggiunto una figura, vorrei pero' un tuo commento
+    sulla utilita'/quantita' delle figure ...}
 
     Additionally brokers keep track of available tutors and clients
     subscriptions.
 
     \hbugs{} tutors act as MONET services.
 
-\section{Implementation details}
+\section{Implementation's Highlights}
 \label{implementation}
 \ednote{Zack: l'aspetto grafico di questa parte e' un po' peso, possiamo
 aggiungere varie immagini volendo, e.g.: schema dei thread di un tutor, sample
 code di un tutor generato automaticamente}
-\ednote{Zack: ho cambiato idea riguardo a questa parte, mettere la lista delle
-interfacce di client/broker/... mi sembrava sterile e palloso. Di conseguenza ho
-messo i punti chiave dell'implementazione, dimmi cosa te ne pare ...}
 In this section we present some of the most relevant implementation details of
 the \hbugs{} architecture.
 
@@ -350,7 +363,8 @@ the \hbugs{} architecture.
     broker to send him an unique identifier and its base URI as a
     \ws{}. After the registration, the client can use broker's
     \texttt{List\_tutors} method to get a list of available tutors.
-    Eventually\ednote{CSC: Vuoi veramente dire eventually qui?} the
+    Eventually\ednote{CSC: Vuoi veramente dire eventually qui? Zack: si, prima o
+    poi lo faranno ...} the
     client can subscribe to one or more of these using broker's \emph{Subscribe}
     method. Clients can also unregister from brokers using
     \texttt{Unregister\_client} method.
@@ -394,7 +408,8 @@ the \hbugs{} architecture.
     just to update the \musings{} registry.
 
     Consulting the \musings{} registry, the tutor\ednote{CSC: ma \'e vero o
-    stai delirando?} is able to know, at each time,
+    stai delirando? Zack: e' vero, non ti fidi? :-) Up to delay di rete
+    ovviamente ...} is able to know, at each time,
     which \musings{} are in execution on which tutor. This peculiarity is
     exploited by the broker on invocation of Status method. Receiving a new
     status from the client imply indeed that the previous status no longer
@@ -432,7 +447,8 @@ the \hbugs{} architecture.
     received, the thread actually running them is killed freeing its
     resources.\ednote{CSC: A cosa dobbiamo questa architettura delirante? Se non
     ricordo male al problema dell'uccisione dei thread. Ora o si spiega
-    il motivo di questa architettura o si glissa/bluffa.}
+    il motivo di questa architettura o si glissa/bluffa. Zack: cosa ti sembra
+    delirante? che i thread vengono uccisi? ... non mi e' molto chiaro ...}
 
     This architecture turns out to be scalable and allows the running threads
     to share the cache of loaded (and type-checked) theorems.
@@ -584,8 +600,49 @@ we have investigated three classes of tutors:
   figuring out where the lemmas could have been stored in the library.
 \end{enumerate}
 
-\section{???}
+\section{Conclusions and Future Work\ednote{Zack: ho scritto la parte "future
+work"}}
 \label{conclusions}
+  We have many plan for further developing both the \hbugs{} architecture and
+  our prototype implementing them. Interesting results could be obtained
+  augmenting the informative content of each suggestion. We can for example
+  modify the broker so that also negative results are sent back to the client.
+  Those negative suggestions could be reflected in the user interface by
+  deactivating command narrowing the choice of tactics available to the user.
+  This approach could be interesting expecially for novice users, but require
+  the client to trust other actors a bit more than in the current approach.
+
+  We plan also to add some rating mechanism to the architecture. A first
+  improvement in this direction could be to distinguish between hints that, when
+  applied, are able to close one or more\ednote{Zack: e' possibile?} goals and
+  tactics that doesn't. Other heuristics and/or measures could be added to rate
+  hints and show them to the user in a particular order: an interesting one
+  could be a measure that try to minimize the size of the generated proof,
+  privileging therefore non-overkilling solutions\ednote{Zack: qua se vuoi ti
+  puoi pure auto-citare, cosa vuoi di piu'?}
+
+  We are also considering to follow the \OmegaAnts{} path more closely adding
+  ``recursion'' to the system so that proof status resulting from the
+  application of old hints are cached somewhere and could be used as a starting
+  point for new hint searches. Tough the approach is interesting, it moves the
+  focus closer to automatic theorem proving and we are considering if its worth
+  the effort given the increasing availability of automation in proof
+  assistants' tactics.
+
+  Even if not strictly part of the \hbugs{} architecture, the graphical user
+  interface (GUI) of our prototype needs a lot of improvement if we would like
+  it to be usable by novices.\ednote{Zack: la parte della GUI non ci sta molto
+  bene, sembra che vogliamo fare soldi vendendo HBugs ... forse va solo
+  formulata meglio ...}
+
+  Finally we hardly believe that \wss{} such our brokers and tutors could be
+  used also as components uncoupled from our client, exploiting their
+  capabilities is for example possible to develop a web-based proof assistant
+  demonstrative application. In order to widen even more their accessibility we
+  plan to write MONET descriptions \ednote{Zack: controllare se esiste un
+  termine piu' preciso} of the \wss{} offered by \hbugs{} actors. For the same
+  reasons we plan also to add support for Mathematical Object Managers both for
+  store and retrieve proof status.
 
 \begin{thebibliography}{01}