LearnPrologNow / lpn

Learn Prolog Now LaTeX sources
Other
82 stars 257 forks source link

Chapter 1, 1.1 "Some Simple Examples" is blank #9

Open abevoelker opened 4 years ago

abevoelker commented 4 years ago

If you navigate to the Chapter 1 page on lpn.swi-prolog.org, then click on 1.1 Some Simple Examples, the page is blank.

If you visit the same link on the learnprolognow.org version of "Learn Prolog Now!" without SWISH it has content: http://www.learnprolognow.org/lpnpage.php?pagetype=html&pageid=lpn-htmlse1

mukhinid commented 3 years ago

It is still empty.

GregDavidson commented 2 years ago

Alas, it is still blank. No LPN with SWISH?

JanWielemaker commented 2 years ago

Well, it is there mostly. LPN on swish is implemented as a proxy service. Analyzing and properly rewriting the rather dirty HTML that comes from the LPN pipeline is a bit of a challenge though. One day someone should reconsider the whole pipeline and -for example- move it to the pipeline used by Simply Logical

marnen commented 1 year ago

@JanWielemaker Is that the issue, though? I believe I remember the SWISH version of Learn Prolog Now! working beautifully last time I tried to work with it, around 2015. I thought I'd give it another try, and unfortunately the wonderful interactive textbook that I remember seems to be no more—even though there are links to it all over the SWISH website. (It is in fact blank, not "there mostly".)

If I hadn't had the experience in 2015, and were coming to it now as my first impression of Prolog, I might well give up before I'd even started, because the major tutorial (showcasing both Prolog and SWISH) doesn't even work.

Can I help fix this somehow?

marnen commented 1 year ago

...or could the enhancements from the Chrome extension be incorporated into whatever builds the site?

JanWielemaker commented 1 year ago

After opening some pages I think the site still works as it always has. This issue points a a specific page that goes wrong and probably always has gone wrong. I suspect the proxy goes wrong on this page. You find the proxy code in https://github.com/LearnPrologNow/lpn-swish-proxy. You can run it locally and figure out what goes wrong on this page. I'm happy to handle PRs on the proxy and update the server.

To get a really good interactive LPN you have to start with the LPN source material and add annotations that gives the proxy more information about how the SWISH instances should be created from the code and query snippets. All the material is on this github organization.

marnen commented 1 year ago

I’m fairly sure I remember that page not going wrong. I’ll poke at the code and see if there’s an obvious reason that that should happen, and if I can fix it.

marnen commented 1 year ago

Unfortunately the conversion code is in Prolog, which I don’t know very well yet, which is why I wanted to work through LPN…but I’ll see if I can make sense of it.

But I had a general thought: perhaps if the converter can’t make sense of the HTML, it should return it unchanged instead of deleting it? The original would be better than nothing.

JanWielemaker commented 1 year ago

Of course the conversion is in Prolog. What else? :smile: Actually it makes more sense than you may think because we have to figure out what is in the code boxes: a valid Prolog program? Queries? Snippets that are themselves not valid Prolog code? Could one code block define the predicates used in another, etc. Prolog's reflexive features come handy here.

But I had a general thought: perhaps if the converter can’t make sense of the HTML, it should return it unchanged instead of deleting it? The original would be better than nothing.

The HTML parser is pretty flexible in tolerating invalid HTML. I have no clue what happens, only a bit of debugging will tell. That is indeed a bit challenging for a beginner. You'll learn a lot though :smile:

marnen commented 1 year ago

I’m not saying that the conversion shouldn’t be in Prolog, but rather that since I need the introductory textbook, there may be a circular dependency. :) Maybe I’ll try Simply Logical and come back.