• ANN: Dogelog Player 1.0.5 (Chat-80 in Novacore)

    From Mostowski Collapse@janburse@fastmail.fm to comp.lang.prolog on Thu Apr 6 14:14:24 2023
    From Newsgroup: comp.lang.prolog

    Dear All,

    We are happy to announce a new edition of
    the Dogelog player:

    - library(compat):
    To match the Dogelog player's 100% Prolog label,
    we added the sort/2 and keysort/2 predicates,
    written in Prolog itself. In the Novacore sense,
    the implementation does not require additional
    native predicates and behaves the same under
    Python and JavaScript.

    - library(aggregate):
    We also added the predicates bagof/3 and setof/3,
    again written in Prolog itself. The implementation
    is once more, in the sense of Novacore, without
    additional native predicates, only term_variables/2
    was extended in term_variables/3.

    - Chat-80 Example:
    As a proof of concept for an application of these
    predicates, we ported Chat-80, a natural language
    question-answer system by D.H.D. Warren and F.C.N.
    Pereira, to Dogelog Player. It is transpiled
    about 400 kBytes that can be loaded in the browser
    in less than 100 ms.

    Have Fun!
    Jan Burse, 06.04.2023, http://www.xlog.ch/
    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mostowski Collapse@bursejan@gmail.com to comp.lang.prolog on Mon Apr 17 04:06:02 2023
    From Newsgroup: comp.lang.prolog

    Dogelog Player is a 100% Prolog implementation
    of a Prolog system that targets the JavaScript and
    he Python platform. We got interested in the JavaScript
    Object Notation (JSON) format. We present a first
    realization of a little unparser/parser library which
    is again written in Prolog itself.

    Our Prolog systems get away without implementation
    specific dict or string datatypes. Our register of sins only
    contains new constants 0rNone, 0rFalse and 0rTrue. We
    attribute the nice performance of the parser to a first
    argument indexing programming style.

    See also:

    JSON Unparser/Parser in Dogelog Player https://twitter.com/dogelogch/status/1647918275832033283

    JSON Unparser/Parser in Dogelog Player
    https://www.facebook.com/groups/dogelog

    Mostowski Collapse schrieb am Donnerstag, 6. April 2023 um 14:14:26 UTC+2:
    Dear All,

    We are happy to announce a new edition of
    the Dogelog player:

    - library(compat):
    To match the Dogelog player's 100% Prolog label,
    we added the sort/2 and keysort/2 predicates,
    written in Prolog itself. In the Novacore sense,
    the implementation does not require additional
    native predicates and behaves the same under
    Python and JavaScript.

    - library(aggregate):
    We also added the predicates bagof/3 and setof/3,
    again written in Prolog itself. The implementation
    is once more, in the sense of Novacore, without
    additional native predicates, only term_variables/2
    was extended in term_variables/3.

    - Chat-80 Example:
    As a proof of concept for an application of these
    predicates, we ported Chat-80, a natural language
    question-answer system by D.H.D. Warren and F.C.N.
    Pereira, to Dogelog Player. It is transpiled
    about 400 kBytes that can be loaded in the browser
    in less than 100 ms.

    Have Fun!
    Jan Burse, 06.04.2023, http://www.xlog.ch/
    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mostowski Collapse@janburse@fastmail.fm to comp.lang.prolog on Mon Apr 24 15:11:41 2023
    From Newsgroup: comp.lang.prolog


    Dogelog Player is a Prolog system that is 100%
    written in Prolog. Some of its ancestors is formerly
    Jekejeke Prolog which had a couple of toolings, such
    as a predicate index generator and a Prolog text pretty
    printer. We gave these tools a new spin.

    Instead of first loading the Prolog texts into
    the Prolog system, we deviced a new approach based
    on source to source transformation. Some hara-kiri
    experiments show that using a 100% Prolog implementations
    for the read and write routines gives an
    acceptable factor 4x slow down.

    See also:

    Indexer and Beautify for Dogelog Player https://twitter.com/dogelogch/status/1650486681575866369

    Indexer and Beautify for Dogelog Player
    https://www.facebook.com/groups/dogelog

    Mostowski Collapse schrieb:
    Dogelog Player is a 100% Prolog implementation
    of a Prolog system that targets the JavaScript and
    he Python platform. We got interested in the JavaScript
    Object Notation (JSON) format. We present a first
    realization of a little unparser/parser library which
    is again written in Prolog itself.

    Our Prolog systems get away without implementation
    specific dict or string datatypes. Our register of sins only
    contains new constants 0rNone, 0rFalse and 0rTrue. We
    attribute the nice performance of the parser to a first
    argument indexing programming style.

    See also:

    JSON Unparser/Parser in Dogelog Player https://twitter.com/dogelogch/status/1647918275832033283

    JSON Unparser/Parser in Dogelog Player https://www.facebook.com/groups/dogelog

    Mostowski Collapse schrieb am Donnerstag, 6. April 2023 um 14:14:26 UTC+2:
    Dear All,

    We are happy to announce a new edition of
    the Dogelog player:

    - library(compat):
    To match the Dogelog player's 100% Prolog label,
    we added the sort/2 and keysort/2 predicates,
    written in Prolog itself. In the Novacore sense,
    the implementation does not require additional
    native predicates and behaves the same under
    Python and JavaScript.

    - library(aggregate):
    We also added the predicates bagof/3 and setof/3,
    again written in Prolog itself. The implementation
    is once more, in the sense of Novacore, without
    additional native predicates, only term_variables/2
    was extended in term_variables/3.

    - Chat-80 Example:
    As a proof of concept for an application of these
    predicates, we ported Chat-80, a natural language
    question-answer system by D.H.D. Warren and F.C.N.
    Pereira, to Dogelog Player. It is transpiled
    about 400 kBytes that can be loaded in the browser
    in less than 100 ms.

    Have Fun!
    Jan Burse, 06.04.2023, http://www.xlog.ch/

    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mostowski Collapse@janburse@fastmail.fm to comp.lang.prolog on Tue May 9 17:36:09 2023
    From Newsgroup: comp.lang.prolog

    Dogelog Player is a Prolog system that is
    written 100% in Prolog that targets the
    JavaScript and Python platform. So far we
    supported HTML generation via a library(markup).
    A new library(react) takes care of HTML events.
    Here is a first report on its current state.

    Armed with new API calls we could use some
    Prolog code to register event handlers that
    allow paning the content of SVG output area
    by changing its coordinate system. Some corners
    still need some work, but the solution has
    already advanced to event capturing outside
    of the initial target.

    See also:

    Preview library(react) for Dogelog Player https://twitter.com/dogelogch/status/1655958238246973441

    Preview library(react) for Dogelog Player https://www.facebook.com/groups/dogelog

    Mostowski Collapse schrieb:

    Dogelog Player is a Prolog system that is 100%
    written in Prolog. Some of its ancestors is formerly
    Jekejeke Prolog which had a couple of toolings, such
    as a predicate index generator and a Prolog text pretty
    printer. We gave these tools a new spin.

    Instead of first loading the Prolog texts into
    the Prolog system, we deviced a new approach based
    on source to source transformation. Some hara-kiri
    experiments show that using a 100% Prolog implementations
    for the read and write routines gives an
    acceptable factor 4x slow down.

    See also:

    Indexer and Beautify for Dogelog Player https://twitter.com/dogelogch/status/1650486681575866369

    Indexer and Beautify for Dogelog Player https://www.facebook.com/groups/dogelog

    Mostowski Collapse schrieb:
    Dogelog Player is a 100% Prolog implementation
    of a Prolog system that targets the JavaScript and
    he Python platform. We got interested in the JavaScript
    Object Notation (JSON) format. We present a first
    realization of a little unparser/parser library which
    is again written in Prolog itself.

    Our Prolog systems get away without implementation
    specific dict or string datatypes. Our register of sins only
    contains new constants 0rNone, 0rFalse and 0rTrue. We
    attribute the nice performance of the parser to a first
    argument indexing programming style.

    See also:

    JSON Unparser/Parser in Dogelog Player
    https://twitter.com/dogelogch/status/1647918275832033283

    JSON Unparser/Parser in Dogelog Player
    https://www.facebook.com/groups/dogelog

    Mostowski Collapse schrieb am Donnerstag, 6. April 2023 um 14:14:26
    UTC+2:
    Dear All,

    We are happy to announce a new edition of
    the Dogelog player:

    - library(compat):
    To match the Dogelog player's 100% Prolog label,
    we added the sort/2 and keysort/2 predicates,
    written in Prolog itself. In the Novacore sense,
    the implementation does not require additional
    native predicates and behaves the same under
    Python and JavaScript.

    - library(aggregate):
    We also added the predicates bagof/3 and setof/3,
    again written in Prolog itself. The implementation
    is once more, in the sense of Novacore, without
    additional native predicates, only term_variables/2
    was extended in term_variables/3.

    - Chat-80 Example:
    As a proof of concept for an application of these
    predicates, we ported Chat-80, a natural language
    question-answer system by D.H.D. Warren and F.C.N.
    Pereira, to Dogelog Player. It is transpiled
    about 400 kBytes that can be loaded in the browser
    in less than 100 ms.

    Have Fun!
    Jan Burse, 06.04.2023, http://www.xlog.ch/


    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mostowski Collapse@janburse@fastmail.fm to comp.lang.prolog on Mon May 22 12:01:35 2023
    From Newsgroup: comp.lang.prolog


    Apache Ant Tasks is an XML based definition
    format that is typically executed in a Java
    runtime. It can provide a platform independent
    model (PIM) for a variety of tasks. We began
    using Ant Tasks for some testing automatization
    in Dogelog Prolog.

    We faced some challenges in defining the test
    cases Prolog code as a single point of
    truth (SPOT). By code refactoring and using
    common features we arrived at covering Dogelog
    Player, formerly Jekejeke Prolog, SWI-Prolog
    and Trealla Prolog under one umbrella.

    By means of argv Prolog flag and the initialzation/1
    directive we wrote an universal testing scripts.
    By further using Prolog system specific facades and
    operating system specific Ant imports, we could
    semi-automate the generation of a HTML report that
    combines different Prolog system results
    across Windows 10 and WSL2.

    See also:

    Ant Tasks for Dogelog Prolog https://twitter.com/dogelogch/status/1660579469088702464

    Ant Tasks for Dogelog Prolog
    https://www.facebook.com/groups/dogelog


    Mostowski Collapse schrieb:
    Dear All,

    We are happy to announce a new edition of
    the Dogelog player:

    - library(compat):
    To match the Dogelog player's 100% Prolog label,
    we added the sort/2 and keysort/2 predicates,
    written in Prolog itself. In the Novacore sense,
    the implementation does not require additional
    native predicates and behaves the same under
    Python and JavaScript.

    - library(aggregate):
    We also added the predicates bagof/3 and setof/3,
    again written in Prolog itself. The implementation
    is once more, in the sense of Novacore, without
    additional native predicates, only term_variables/2
    was extended in term_variables/3.

    - Chat-80 Example:
    As a proof of concept for an application of these
    predicates, we ported Chat-80, a natural language
    question-answer system by D.H.D. Warren and F.C.N.
    Pereira, to Dogelog Player. It is transpiled
    about 400 kBytes that can be loaded in the browser
    in less than 100 ms.

    Have Fun!
    Jan Burse, 06.04.2023, http://www.xlog.ch/

    --- Synchronet 3.20a-Linux NewsLink 1.114