freenode/#lisp - IRC Chatlog
Search
5:06:42
beach
Suppose we had a documentation system based on (say) "chunks", and each chunk is a standard object that can be read and written using READ and PRINT perhaps with one or two additional reader macros. Suppose further that each chunk has a unique identifier based on Common Lisp universal time plus some random number.
5:06:52
beach
In other words, chunk identifiers can be created by the person creating the chunk and we are reasonably sure it is going to be unique. Also, suppose these chunks can either be inlined into other chunks or referred to from other chunks. We could even go so far as to have each individual words be a separate chunk.
5:07:04
beach
Such word chunks could then be used in other applications such as spell checkers and grammar checkers. So far so good. However, I would like some input on the process of creating the "database" of chunks. First of all, we can't assume that every word in English (let's start with English) has been turned into a chunk. So we probably need to allow for a Common Lisp string to replace a word chunk.
5:07:12
beach
I can see an interactive (CLIM-based?) editor that would allow people to create chunks, and perhaps also taking strings and substituting word chunks in the data base. This process could be "manual" but supported by the tool. For example, a string that has a word chunk in the data base could be highlighted, and the user could examine the possible chunks and select one.
5:07:14
beach
But here is where I need a discussion: How do we maintain the "database" of chunks? Individual users will create chunks and store them locally, but how do we merge individual "databases"? Also, we might want to merge updates to a chunk from different users. Should we then create a tool that checks for conflicts and such? And who is in charge of the merge?
5:17:06
beach
Maybe I am exaggerating the problem? Maybe each chunk would belong to some "library" that would be managed just like code libraries are, i.e., there will be one or more maintainers for a GIT repository and people will submit pull requests.
5:30:02
beach
I should perhaps give some examples of chunk types, so that the idea becomes more clear. The lowest level chunks would be morpheme chunks, word chunks, phrase chunks, sentence chunks, paragraph chunks. Then there would be inline chunks, reference chunks for inserting or referring to other chunks.
5:30:03
beach
There would be bibliography chunks, figure chunks, math formula chunks, etc. And there would be specific chunks for documenting code, like chunks corresponding to the different DOCUMENTATION methods, chunks for referring to names in programs like class names, function names, etc. I don't have a complete list of chunk types yet, of course.
6:22:05
easye
Strictly speaking, RDF only has the simplest possible scaffolding for ontologies. One usually layers in something like OWL2 for any real ontological reasoning. OWL2 happens to have an RDF serialization, which might confuse things.
6:23:06
easye
One can get pretty far with abcl by using W3C RDF stacks which tend to have a JVM implementation.
6:23:37
easye
c.f. <https://github.com/alanruttenberg/lsw2> for a several decade long project that takes this approach.
6:26:26
easye
We will be having an ELS2021 dress rehearsal today sometime after 1000 UTC in which we could use people to help smoke test the participatory a/v infrastructure we have been preparing. Join #elsconf for details if you are interested.
6:35:34
fe[nl]ix
beach: "morpheme chunks, word chunks, phrase chunks, sentence chunks, paragraph chunks" <- those are ontologies
6:36:43
fe[nl]ix
beach: the problem I see there is that most people who write documentation don't want to accurately annotate what they're writing
6:37:05
fe[nl]ix
it's much more convenient to just write text and rely on the readers to figure out the context
7:22:45
splittist
beach: I'm missing the point of having a shared database of chunks. Is this for collaborating on public documentation, or ... ?
7:27:29
beach
splittist: It would be good if low-level chunks such as words, bibliography entries, etc. were shared.
7:28:43
beach
splittist: Also, for the purpose of cross references, like if the documentation for one system would like to refer to the documentation of another system.
7:33:05
beach
nij: See the logs for ideas on the kind of documentation system I might want to see. As you can see, CommonDoc is not quite it. Also, don't expect me to be present between 19:00 and 05:00. And, try to avoid private messages for subjects that are interesting to more than you and me.
7:34:26
beach
I guess I would have to create some kind of demo of the "chunk" system to see whether it is technically feasible.
7:50:54
splittist
beach: OK. I keep thinking about #<chunk "Very secret stuff" #xABCD> and #<chunk "Personally identifiable information, imposing obligations on everyone who has a copy" #xFACE> etc.
8:09:15
jdz
There's also the #<chunk "I thought this is OK to share, but then got fired. #xDEADBEEF>.
9:36:18
theothornhill
I mailed Kent Pitman about the dpANS to see if he knows the status with regards to copyrights for the hyperspec and the dpans. Hopefully he knows something about it and is willing to share
9:39:06
theothornhill
beach: as for the document, how do you envision I handle the macros? I can expand everything now using this perl script, but I lose a lot of semantics doing that
9:39:54
theothornhill
I think it might be better to expand all the "\input foo" and concatenate everything and use the macros as parsable items
9:40:26
beach
We could also contact ANSI. They do not seem to make any money from this particular standard.
9:40:52
theothornhill
Now it is simple to grab the two \displaythree{Foo}{Bar}, rather than 75 lines of tex primitives
11:52:17
phoe
"We, as a community, expect to continue to own the spec." is the particular quote I am interested in
11:52:45
phoe
in this context, I can infer that the specification is public domain but a standard that's based on it to the point of being identical is ANSI-copyrighted
11:54:50
phoe
and ANSI copyrights the fact that it has "the standard", along with the graphical rendition of it
12:03:01
no-defun-allowed
Thankyou for taking a bot to #lisp. Though if it makes okay output on IRC it'd be nice.
12:03:49
no-defun-allowed
Okay, so the bot says nothing on IRC and Mrtn Dk looks like they are talking to the wind.
12:04:19
phoe
no-defun-allowed: I actually can't see the bot output in the tymoon log, which is decent
12:06:39
no-defun-allowed
Does that bother you? Don't read it as if I'm saying it should, I'm just wondering.
12:07:59
no-defun-allowed
Suppose saying "nice" suggests it doesn't. I'll be more awake in 46 hours surely.
12:10:16
phoe
if it was used multiple times a day it probably would but it's the first time I ever saw it here, so nah
12:13:25
_death
even if there are other means of rate control, it's just clutter and I'll likely /ignore it
12:24:16
MrtnDk[m]
I guess if an @ on IRC side kicks the bot, it will be kicked on the matrix side as well. fe[nl]ix
12:33:34
jeosol
phoe: I realized you are one of the contributors listed on cl:yesql. Is it possible to somehow issue multiple commands, e.g., a create extension command, then a CREATE table command, and possible an index later on. See this paste: https://pastebin.ubuntu.com/p/BZfhCVMGMC/
12:34:13
jeosol
So far, i get errors that "cannot insert multipe commands into a prepared statement".
12:35:35
jeosol
I am doing small tests, the issues i sometimes get with ORM's makes me want to explore the alternative and write the sql queries. So I started looking at alternatives
12:36:17
phoe
jeosol: https://stackoverflow.com/questions/19589841/pg-prepare-cannot-insert-multiple-commands-into-a-prepared-statement
12:36:59
jeosol
Thanks. for clearning that up. When I split the command into separate function calls, it works. Closed
12:39:03
phoe
it's a really really nice wrapper that allows me to treat SQL statements as Lisp functions
12:39:32
phoe
and it just works™ - I only had trouble with the initial setup and overlord/vernacular when combo'd with some EVAL-ALWAYS situations, but afterwards, it works
12:39:56
jeosol
I am no postmodern or mito expert, but sometimes, the lack of transparency and need for more complex operations, I start having problems
12:40:41
jeosol
I understand SQL more so using the queries directly seems to present less issues. And then you get the statement as functions.
12:42:34
jeosol
I haven't been here much; have some abstracts that are due and trying to finish some of the work; crazy days
12:43:17
phoe
things are looking good for the latter and not very good for the former, but that's business as usual
12:44:05
jeosol
Regarding ELS, do you guys accept paper about application, e.g., describing the use of CL to build an application?
12:45:08
jeosol
great work by the way. I'll get to support you guys soon. My task is coming to an end, once I get the web thingy going
12:47:00
jeosol
I'll like to contribute something along those lines. I know it's closed for this year
12:47:06
heisig
jeosol: Yes, ELS accepts both classical academic papers of up to eight pages, and software demonstrations of up to four pages.
13:22:36
seok
When I run the same piece of code on a linux machine on the same network it's blazingly fast, no problem
14:14:02
loke[m]
(disassemble #'(lambda (x) (tagbody a (print 1) (go c) b (print 2) (go d) c (print 3) (go b) d (print 4))))
14:14:42
loke[m]
All I can tell from that is that there seems to be nothing special about TAGBODY. You'll have to come up with an example we can run so we have something to analyse.
14:19:02
loke[m]
lotuseater: Well, if that thing is bigger than you expect, it's not because of TAGBODy
14:19:22
loke[m]
If you want to optimise it, the first thing you need to do is add type declarations.
14:20:17
loke[m]
Am I missing something by the way? L2, L3 and L4 don't seem to be used. This is just an infinite loop, no?
14:20:40
lotuseater
yes loke[m], i will, but first it should work correctly and 1:1 as the algorithm is given
14:25:34
lotuseater
it's basically this (one page): https://trash.randomerror.de/ev4tw/algorithm-k.pdf
14:25:57
beach
Like for instance: (let (... perms) ...) means "I am not initializing perms explicitly because I intend to assign to it before it is used" But then you use it before you assign to it.
14:26:58
beach
And (= j 0) is better expressed as (zerop j). There is a general rule in programming that you should use the most specific construct that will do the work.
14:27:35
beach
lotuseater: Semantically, it's an empty list, but it is not an empty list in the message that you send to the person reading your code.
14:53:18
dieggsy
beach: wait, so what's the difference between (let ((this) ...) ...) and (let (this ...) ...))
14:55:58
dieggsy
lotuseater: the former is actually what i use lol, only because i didn't realize (let (this ...) ...) is alllowed
14:57:00
TMA
beach: I have written a (part of a) compiler, I am prone to dismiss differences that have no effect on the resulting code.
14:57:27
lotuseater
but with this now I even once more get the feeling I can become at anything and that makes me sad, but it's too offtopic
14:58:33
vms14
I suppose the way is to write minimal stuff in the "host language" and much as possible in your lisp implementation
15:00:04
beach
vms14: Is ABCL written in Java? I am asking because there is no particular reason to do that.
15:00:05
TMA
beach: I am my own maintainer, mostly (the rest of my work no longer maintained). But I do have rather strong style preferences. I just resigned trying to enforce them on others or explaining them.
15:00:45
beach
TMA: I see. I find that even if I am the maintainer of my own code, I have to be very disciplined, or else I won't forget it some weeks later.
15:01:05
minion
dieggsy: SICL: SICL is a (perhaps futile) attempt to re-implement Common Lisp from scratch, hopefully using improved programming and bootstrapping techniques. See https://github.com/robert-strandh/SICL
15:01:10
minion
dieggsy: Cleavir: A project to create an implementation-independent compilation framework for Common Lisp. Currently Cleavir is part of SICL, but that might change in the future
15:01:56
beach
vms14: There is no particular reason to use any "host language" at all, as the SICL bootstrapping technique shows.
15:03:18
TMA
beach: I do have quite consistent style, I think. I use it when not under undue time pressure. In the other case anything goes. It makes me sad, though less sad than missed deadline.
15:03:37
vms14
my technique is to use s7 scheme, which is a .h and a .c file and you can just add your own stuff in it, but it's scheme not cl, which meh. I really prefer cl, I guess just because it's the lisp I used
15:04:04
beach
dieggsy: The compiler framework is in use production in Clasp, and the SICL compiler is of course based on it too.
15:05:23
beach
dieggsy: Oh, and I should add that, even though I started it, Bike and karlosz have done a lot of work on Cleavir lately.
15:06:49
beach
vms14: So it is hard to write a Common Lisp compiler, but it is an order of magnitude harder to write an implementation-independent compiler framework. :)
15:08:33
lotuseater
ACTION has high respect for things like that and asks how he can ever catch up to this expertise
15:09:26
beach
lotuseater: It has taken me the better part of a lifetime, because I am not particularly smart; just stubborn.
15:38:27
ecraven
thanks for pointing out cl-yesql, this finally seems like a sane approach to "sql as a dsl"
15:57:04
engblom
When building up a plist, is it ok to first push value and then push key? Or could I push both at the same time?