-
Notifications
You must be signed in to change notification settings - Fork 234
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Equality at pattern compile time (static-analysis unification) #554
Comments
Another example:
The above can be reduced at pattern-compile-time, by plugging in This can be generally performed whenever the More generally, if the |
Another example, from @ngeiswei in #2650 (comment) (EqualLink
(Inheritance (Concept "A") (Variable "$Y"))
(Inheritance (Variable "$X") (Concept "B")) can be statically analyzed before the search is even started. The URE has a unifier that does this. |
I suppose the unifier could be moved to its own repository, if it is to be used more broadly than by just the URE. |
So far, the atomspace has no dependencies other than cogutils. Although it could be a stand-alone repo, it would need work to be usable for this issue. For example, Right now, its just two files, about 2KLocs of code .. do you expect that it might grow? |
Not much, it's pretty mature at that point. There are limitations with with types (for instance deep types are not supported), but this can or should be done outside of the unifier. However, I'm frankly uncomfortable having that code go to the atomspace repo, due to the opencog/atomspace vs singnet/atomspace divergence. Keeping my main work away from the atomspace repo allows me to minimize the pain resulting from the opencog vs singnet situation. Ideally I would only develop on one side but for reasons outside of my control that's not possible. |
I do agree however that from a design standpoint, having the unifer inside the atomspace repo is sensible, and it should be examined, independently of my personal comfort. |
I very strongly and very sharply encourage this divergence to be fixed. If you have any pull or sway with Ben or the other developers, please, please, please encourage them to set things right again! I've tried to convince @vsbogd to do this, but he is unwilling, because it's a fair amount of work. Someone of authority would need to apply pressure to make this happen. If you can bend the ear of those people .. that would be great. |
@noskill I have not changed my mind. Please note that I see two paths forward: merge the singnet version into the atomspace, and then immediately rip out the grounded object node and place it into it's own repository, so that it would be a module just like @noskill, you could have created a module from the very beginning, and none of this would have happened. But this is not your fault -- you were told to intentionally fork the atomspace, to create a competing project, for political reasons, not for technical reasons. You were told to NOT create a module, even though technically, it would have been the right thing to do. You were told to make the atomspace "better", because, politically, it needed to "look better". Otherwise, there would have been no reason for the fork. The fork must be "better". I think the political pressures have subsided. I think it is now safe to split grounded object node into it's own module. I think you need to just do this. I'm worried that if you ask, even politely, they might still say "no" and to "not waste your time on it", and that "it is a low priority". Technically it is the right thing to do. Please do it. Tag @vsbogd as this is part of your stuff. |
Wow... it suddenly occurs to me that if we ripped out |
@linas I agree. PtrValue was at first living in it's own repo, i guess we can move it again somewhere, maybe to opencog/opencog |
@noskill well, one of the goals is to split up opencog/opencog into pieces -- an nlp piece, a ghost piece, a few other things, so that it ends up empty or mostly empty. (See opencog/opencog#3391) You should create a brand new repo (or I can create it and give you admin authority) to hold all of the needed parts. Pick a name -- vqa? tensorflow? something else? (a long name - visual-question-answering? something funny - vizquest?) |
URE generates PatternLinks with this content:
which evaluates to always-false, and thus can be deduced to always fail, at static-analysis time. See opencog/ure#92 |
Consider the following:
Obviously, we should be able to deduce, whatever x is, that is what y should be, so the above should execute fine, and do what we think it should, instead of throwing.
The text was updated successfully, but these errors were encountered: