On Tue, Jun 21, 2022 at 08:32:03PM +0100, Paul Onions wrote:
> Hi Qian,
>
> > I saw your github PR#93 and tested it, the bug exists and your fix
> > works.
>
> Thanks.
>
> > About "condition query", can you give an example? What's the
> > input and what you expect to get? The HyperDoc seems to ignore
> > the condition part when it "Search for operations”.
>
> The information I’m after is what you get when you enter (for example)
> “QuadraticForm” in the HyperDoc browser page, then press:-
>
> Constructors -> Operations -> Conditions
>
> where you’ll see, at the bottom of the page, an entry for “convert” that
> shows under what conditions it is exported.
>
> Also, I’d like to get the Origins info so I can show where an operation is
> implemented, and basically get access to any of the other information that
> the HyperDoc browser displays. Ideally there would be a well-defined API
> that would allow me to do this, but after looking at the br-*.boot files I
> see that it all seems to be mixed in with the HyperDoc page construction
> code. So I need to spend some more time looking into it to see properly how
> it all works.
Note that Origins is about declaration, not implementation. That is
place which declared given operation. Spad forms set theoretic sum
on signatures, so "the same" signature may be declared in multiple
placses, Origins probably only gives one declaration. AFAICS
Origins sometimes get confused by coditions.
Implemention is separate thing, you get it clicking at Implementions
in view for operations. But it works only for fully determined
domains, that is all parameters must be explicit.
> However, I get the feeling that different parts of this algebra database
> “system” were perhaps developed at different times by different people, and
> that there is unnecessary overlap and redundancy at play here.
Well, primary info is in domain vectors. For fully specified domain
one can view it using routines in 'showimp.boot', for example using
)boot showSummary(FreeModule(Integer(), Symbol()))
(this is probably intended as help for people developing Spad
compiler).
There are separate routines for viewing info without giving
parameters (in 'nruncomp.boot') like:
)boot dcAll('Expression)
To speed up searching for declarations/documentaion we have
databases. Basic routine here is GETDATABSE which takes
two arguments, one is name of thing (symbol), the second
is kind of requested information. In 'daase.lisp' there
is description what various kinds mean. One can also use
SHOWDATABASE to get all information about constructor.
Actual information is kept in four files: interp.daase,
browse.daase, operation.daase and category.daase.
HyperDoc also uses 'USERS.DAASE' and 'DEPENDENTS.DAASE'.
HyperDoc and ')show' mostly give higher level info based
on databases. But there is a lot of filtering, reformatting,
and some manipulation with conditions.
Certanly I would like to expose useful information to
allow better reuse. And ultimately convert all this
code to Spad.
--
Waldek Hebisch
--
You received this message because you are subscribed to the Google Groups
"FriCAS - computer algebra system" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/fricas-devel/20220622081049.GB22370%40fricas.math.uni.wroc.pl.