libera/#lisp - IRC Chatlog
Search
19:30:30
ieure
I have a function which returns a list, and I've declaimed the return type to precisely match what it should return. But when I use LOOP like: (loop for thing in (declaimed-func ...)) the compiler complains: Derived type of (DECLAIMED-FUNC ...) is (DECLAIMED-RETURN-TYPE), conflicting with its asserted type LIST.
19:31:01
ieure
Looks like this is because LOOP expands to: (SB-KERNEL:THE* (LIST :USE-ANNOTATIONS T) (DECLAIMED-FUNC ...))
19:31:55
ieure
(SIMPLE-ARRAY RESOLVEABLE), where the element type is a union: '(OR STRING QURI:URI HTTP:REQUEST TYPE:EVENT)
19:34:34
ieure
Hmmm, it is returning a list, so maybe my type is wrong. Is there a way to say that it's a list containing elements of a type? (LIST RESOLVEABLE) isn't a valie type specifier.
19:35:17
aeth
you can build a struct with typed slots as a "cons" with a car of your type and a cdr of either null or the struct type
19:38:51
aeth
I probably have the syntax off a bit, but something like (defstruct resolvable-cons (car (make-resolvable ...) :type resolvable) (cdr nil :type (or null resolvable-cons)))
19:38:55
ieure
Okay, thank you for the help. Changing to ACROSS compiled, I guess I'll go with that and change the return value to match, since it seems to be the most tractable way forward.
20:12:22
prokhor_
would you mind me asking you some question about reactive databases (playing wth the thought to implement one)?
20:13:06
White_Flame
I mean I can sort of answer, but I'm not sure how much it matches what you're looking for
20:14:26
prokhor_
like: the db does reasoning over its contents: how does it choose what to do (reason about) first?
20:15:32
prokhor_
i am glad that i know somebody who *knows shit*... to make the best out of your answers is my obligation...
20:19:54
prokhor_
well i guess such a system would reason A LOT, given a sufficiently complex& rich content..
20:21:33
prokhor_
if i would choose to do it "update based" (taking updated facts as base point) how would you decide, when to break, do sth else(compute from a different corner)
20:23:42
White_Flame
and since symbolic inference went out of vogue compared to statistical inference, cyc is probably still top dog for features
20:26:37
White_Flame
I haven't used cyc myself, I'm just digging into what I can to learn features & implmentation strategies
20:26:53
White_Flame
however, I do know that it's intended that you hook imperative code into cyc to perform behaviors
20:28:23
prokhor_
may i ask: you told me the last time, you did some work on such databases: what was your topic/goal to think about?
20:30:40
White_Flame
cyc also claims to have included some NN stuff in more recent versions than any of ther publci code releases
20:31:53
prokhor_
i ve got a nl-parser, that gives me every possible parsing as a tree... i want to reason with world/discourse knowledge to filter out the most probable interpretations...
20:32:37
White_Flame
yeah, I've been doing similar searches for nlp, I haven't found anythign useful
20:33:10
White_Flame
there might be something in some ultra complex system, but generally speaking most NLP systems are fixed and don't use their own AI capabilities to affect the grammar understanding itself
20:34:32
White_Flame
the notion of applying AI to the NLP itself is as old as SHRDLU, and not implemented there either ;)
20:34:49
prokhor_
i was thinking of taking sth like this as a base: https://www.airc.aist.go.jp/aitec-icot/ICOT/Museum/IFS/abst/011-J.html
20:35:34
prokhor_
i think, doing sth in parallel is a good aproach, but how do you "coordinate" between the reasoning efforts?
20:36:04
prokhor_
like when do you know, that the reasoning of one process conerns the reasoning of another?
20:38:32
White_Flame
'reasoning' as an abstract notion isn't a first class thing in my system. There are KBs, jobs, tasks, queues, etc
20:38:55
White_Flame
but there's plenty to (try to) read about Cyc's implementation strategies, which is waht I've been slowly trying to get at
20:39:24
prokhor_
how do your systems start a reasoning process(whatever that means in your context)?
20:43:00
prokhor_
how do they know? how do they decide between new facts from input& such the reasoner has added?