(a -> T, b -> T, c -> T) ∨
(a -> T, b -> F, c -> T) ∨
(a -> F, b -> T, c -> T) ∨
(a -> F, b -> F, c -> T) ∨
(a -> T, b -> F, c -> F) ∨
(a -> F, b -> T, c -> F)
Is opencog suitable for automated code generation ?I'm searching in some AI technologies which can be applied in transformational programming, especially in automated code generation: synthsize programs code in mainstream languages like C(++), Java, JS,... basing on declarative highlevel descriptions, reasing code block taking in mind target system, predifines class structure, library of code snippets and so on.
--
You received this message because you are subscribed to the Google Groups "opencog" group.
To unsubscribe from this group and stop receiving emails from it, send an email to opencog+unsubscribe@googlegroups.com.
To post to this group, send email to ope...@googlegroups.com.
Visit this group at https://groups.google.com/group/opencog.
To view this discussion on the web visit https://groups.google.com/d/msgid/opencog/052d5af3-68db-4e08-9690-b66774d69b05%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
((a -> T) ∧ (b -> T) ∧ c -> T) ∨
((a -> T) ∧ (b -> F) ∧ c -> T) ∨
((a -> F) ∧ (b -> T) ∧ c -> T) ∨
((a -> F) ∧ (b -> F) ∧ c -> T) ∨
((a -> T) ∧ (b -> F) ∧ c -> F) ∨
((a -> F) ∧ (b -> T) ∧ c -> F)
Result:
In principle the opencog Rule Engine and backward chainer can do this...
Getting it to run quickly and scalably on such tasks without
combinatorial explosion is gonna be nontrivial however... but
important and interesting..
On Sun, May 7, 2017 at 11:46 PM, Dmitry Ponyatov <dpon...@gmail.com> wrote:
> Is opencog suitable for automated code generation ?
>
> I'm searching in some AI technologies which can be applied in
> transformational programming, especially in automated code generation:
> synthsize programs code in mainstream languages like C(++), Java, JS,...
> basing on declarative highlevel descriptions, reasing code block taking in
> mind target system, predifines class structure, library of code snippets and
> so on.
>
> --
> You received this message because you are subscribed to the Google Groups
> "opencog" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to opencog+unsubscribe@googlegroups.com.
> To post to this group, send email to ope...@googlegroups.com.
> Visit this group at https://groups.google.com/group/opencog.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/opencog/052d5af3-68db-4e08-9690-b66774d69b05%40googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
--
Ben Goertzel, PhD
http://goertzel.org
"I am God! I am nothing, I'm play, I am freedom, I am life. I am the
boundary, I am the peak." -- Alexander Scriabin
--
You received this message because you are subscribed to the Google Groups "opencog" group.
To unsubscribe from this group and stop receiving emails from it, send an email to opencog+unsubscribe@googlegroups.com.
To post to this group, send email to ope...@googlegroups.com.
Visit this group at https://groups.google.com/group/opencog.
To view this discussion on the web visit https://groups.google.com/d/msgid/opencog/CACYTDBcxum%3DrA23F_tRM-i5x185K%3DOoTizfOhQp70OwfA%2BKd9Q%40mail.gmail.com.
but I am not pursuing this path because I want object-oriented code - the generated code should be of industrial quality.
I see Prolog-derivatives as implementation of backtracking reasoner on top of hypergraph knowledge base -- prolog rules look like exclusively hypergraph beast.
Flora-2 (a.k.a. Ergo Lite) is an advanced object-oriented knowledge representation and reasoning system. It is a dialect of F-logic with numerous extensions, including meta-programming in the style of HiLog, logical updates in the style of Transaction Logic, and defeasible reasoning. Applications include intelligent agents, Semantic Web, knowledge-based networking, ontology management, integration of information, security policy analysis, and more.
At first time I thought about opencog as a partner for Flora, firstly, as a visualization tool (it seems Flora lacks it) and as a generic engine for non-backtracking applications.
is this new idea what are your writing about ""intensional" representation of deduction/abduction tree"? Do you have any literature or references regarding this idea? I could be greate if You can share the sources of your idea.
Code generation is one of my goals but I have not implemented it yet. I plan to do this in very crude way: I will have inference process whose result will be abstract syntax tree (of some industrial programming languages like Java, Typescript and HTML) as a Scheme code and then I will generate actual code (Java, Typescript, HTML) from this syntax tree.
Functional programming languages have no distinction between data and code (at least I have heard about such thesis in Scheme book) - meaning - Scheme data structures can be perceived as executable programs and that is why generation of Scheme data structures can be the same as generation of executable code (Javascript has some similar features) but I am not pursuing this path because I want object-oriented code - the generated code should be of industrial quality.
In AGI books (engineering AGI) there are chapters about evolutionary code generation but the generated code is the result of genetic programming process in that case. Genetic programming is quite relaxed and heuritic method, I would prefere more rigorous automatic programming methods - code should be generated in the inference process from the specifciation and specification should be autoatically generated from the normas, best practices, interaction with the customer. Of course, in this inference process we can use adaptable, probabilistic, non-classical logics, but nevertheless - logics should be used. Evolutionary search can not give guarantees that inference process can give.
--
You received this message because you are subscribed to the Google Groups "opencog" group.
To unsubscribe from this group and stop receiving emails from it, send an email to opencog+unsubscribe@googlegroups.com.
To post to this group, send email to ope...@googlegroups.com.
Visit this group at https://groups.google.com/group/opencog.
To view this discussion on the web visit https://groups.google.com/d/msgid/opencog/2d3ac0f2-0d30-4d7f-9fce-25afc7be392f%40googlegroups.com.
In principle the opencog Rule Engine and backward chainer can do this...
O
--
You received this message because you are subscribed to the Google Groups "opencog" group.
To unsubscribe from this group and stop receiving emails from it, send an email to opencog+unsubscribe@googlegroups.com.
To post to this group, send email to ope...@googlegroups.com.
Visit this group at https://groups.google.com/group/opencog.
To view this discussion on the web visit https://groups.google.com/d/msgid/opencog/7ead7c35-ec95-4ddf-874c-0f4ddb38a935%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/opencog/CAHrUA35mEEiUx6boeWxR4TmtknrUTOLmt2_yNwdmHY8%3D5A3LCw%40mail.gmail.com.
I think it was a very good decision not to be tied to a specific logic system, but to go a level further - to develop Atomese that can describe any system. I just don't get why didn't all of OpenCog add-ons (like MOSES) developed in Atomese.
Why do you still have to use C, Scheme, Python and possibly other languages?
In my opinion, universal rule rewriting system such is Atomese powered by chainers (did I get it right?) should be as complete as lambda calculus, thus should be capable to describe any conceivable algorithm.
To view this discussion on the web visit https://groups.google.com/d/msgid/opencog/CAB5%3Dj6XA7T2E-MKO69_z0sPQWM%2BjftaG3rHbqTCA7YT%2BaucsVw%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/opencog/CAHrUA36QY_TVh4EGM1yv9WMb9WW2FtU1etm18dxTO_DrqhKPWA%40mail.gmail.com.
I mean, I guess you could layer lisp or scheme on to of atomese, but it would be painfully slow, with the current evaluator, and would be quite bloated, since atoms are fat. Atoms get indexed in the atomspace, and that ends up being costly in both cpu and ram.We index them because we want to use the atomspace for KR... which conflicts with using them only for performing calculations. Its a balancing act, its hard to figure out where the imbalance is.
Linas, thank you for your precise and profound explanations!
As far as I understand, what is going on here at OpenCog, an Atom is the most universal thing in the universe - able to represent "all that is the case" - how Witti would say.
Universality is always in contradiction to performance. One can not balance this.I think a step to overcome this is to compile certain types of atoms at run time to something optimized for performance and than recompile the results back to regular atoms.
Well - here was mentioned idea that Atomspace/Atomese can be perceived like logical framework, like meta-logic in which every other kind of logic can be encoded. Well - logic is deductive reasoning and deductive reasoning is only one type of reasoning besides inductive, abductive and analogical reasoning. So - maybe not just meta-logic but even more - meta-reasoning system...
But I was taken aback by the fact, that PLN (and NARS) currently is based on Aristotelian term logic (just monadic fragment of the first order predicate logic),
as I understand. I believe that PLN can be extended to full predicate logic or even to more general logics,
For example, legal reasoning (of which I am fan) consists from the commonsense reasoning which can be done in Atomspace but also it consists - in special cases - from formal inference that should be done in specific logics (e.g. deontic defeasible logics).
For the external reasoning system I have choosen Coq proof asistant (which I am currently learning) which is capable of acting as meta-logic framework and in which it is possible to encode wealth of logics