how would one convert boolean expressions of atoms into disjunctive normal form?

79 views
Skip to first unread message

Michael Duncan

unread,
Nov 17, 2017, 8:03:40 AM11/17/17
to opencog
i want to convert moses models from elegant normal form to disjunctive normal form to get a set of conjunctions whose features can then be used for inference against background knowledge.
for instance, if a model is converted to DNF and has the clause:

(and geneV ~geneW geneX ~geneY ~geneZ)

then maybe a pathway with geneV and geneX is active in the case vs the control phenotype,
or a pathway with geneW, geneY, and geneZ is active the control vs case phenotype.

Nil Geisweiller

unread,
Nov 17, 2017, 8:50:31 AM11/17/17
to ope...@googlegroups.com, Michael Duncan
Hi Mike,

I'm not aware of any code doing that on the AtomSpace's end.

Yidnekachew Wondimu is developing a URE-base reduct engine may
ultimately be able to do that sort of things, but it might take a while
before it's ready.

Alternatively, I think there's a way you could tweak MOSES to output
models in DNF, by disabling ENF reduction and enabling some experimental
flags. I have forgotten the details of that but, if that seems
worthwhile to you, I can dig that up.

Nil
> --
> 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+u...@googlegroups.com
> <mailto:opencog+u...@googlegroups.com>.
> To post to this group, send email to ope...@googlegroups.com
> <mailto: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/98859455-c0df-40eb-9d34-1569a149bb4e%40googlegroups.com
> <https://groups.google.com/d/msgid/opencog/98859455-c0df-40eb-9d34-1569a149bb4e%40googlegroups.com?utm_medium=email&utm_source=footer>.
> For more options, visit https://groups.google.com/d/optout.

Michael Duncan

unread,
Nov 17, 2017, 9:19:13 AM11/17/17
to Nil Geisweiller, opencog
thanks, nil!  i might try to implement something for the URE.  if ENF is disabled in MOSES, how would that affect performance?

On Fri, Nov 17, 2017 at 4:50 PM, Nil Geisweiller <ngei...@googlemail.com> wrote:
Hi Mike,

I'm not aware of any code doing that on the AtomSpace's end.

Yidnekachew Wondimu is developing a URE-base reduct engine may ultimately be able to do that sort of things, but it might take a while before it's ready.

Alternatively, I think there's a way you could tweak MOSES to output models in DNF, by disabling ENF reduction and enabling some experimental flags. I have forgotten the details of that but, if that seems worthwhile to you, I can dig that up.

Nil

On 11/17/2017 03:03 PM, Michael Duncan wrote:
i want to convert moses models from elegant normal form to disjunctive normal form to get a set of conjunctions whose features can then be used for inference against background knowledge.
for instance, if a model is converted to DNF and has the clause:

(and geneV ~geneW geneX ~geneY ~geneZ)

then maybe a pathway with geneV and geneX is active in the case vs the control phenotype,
or a pathway with geneW, geneY, and geneZ is active the control vs case phenotype.


--
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 <mailto:opencog+unsubscribe@googlegroups.com>.
To post to this group, send email to ope...@googlegroups.com <mailto:opencog@googlegroups.com>.

Nil Geisweiller

unread,
Nov 17, 2017, 10:08:05 AM11/17/17
to Michael Duncan, Nil Geisweiller, opencog
On 11/17/2017 04:19 PM, Michael Duncan wrote:
> thanks, nil!  i might try to implement something for the URE.  if ENF is
> disabled in MOSES, how would that affect performance?

It depends on the problem.

The thing is, if DNF is enabled, then there is little learning required
because an optimal, though gigantic, DNF can be inferred from the data,
then learning consists of pruning this giant DNF to reach an adequate
trade-off between fitness of data and simplicity.

Nil
> it, send an email to opencog+u...@googlegroups.com
> <mailto:opencog%2Bunsu...@googlegroups.com>
> <mailto:opencog+u...@googlegroups.com
> <mailto:opencog%2Bunsu...@googlegroups.com>>.
> To post to this group, send email to ope...@googlegroups.com
> <mailto:ope...@googlegroups.com>
> <mailto:ope...@googlegroups.com <mailto:ope...@googlegroups.com>>.
> <https://groups.google.com/group/opencog>.
> <https://groups.google.com/d/msgid/opencog/98859455-c0df-40eb-9d34-1569a149bb4e%40googlegroups.com?utm_medium=email&utm_source=footer
> <https://groups.google.com/d/optout>.
>
>

Ben Goertzel

unread,
Nov 17, 2017, 11:35:32 AM11/17/17
to opencog, Michael Duncan, Nil Geisweiller
In general, turning off ENF will fuck up learning... though in some
cases it might not

what you want to do for biology is not turn off ENF for learning, but
rather convert the ENF to DNF afterwards for analysis

There are lots of existing code libraries for converting arbitrary
Boolean expressions to DNF, e.g.

https://github.com/bpodgursky/jbool_expressions

or probably some R code somewhere...
> email to opencog+u...@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/7000a3af-990a-5a87-aed3-57e47cf8b086%40gmail.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

Linas Vepstas

unread,
Nov 20, 2017, 1:28:33 AM11/20/17
to opencog, Michael Duncan, Nil Geisweiller
Yeah, I mean, converting ENF to DNF is "conceptually easy", and "doing it yourself" by writing some code to do it is surely easier/faster than finding and reading about and trying to understand some package that does it for you!?  That's the time trade-off: do it yourself, vs use external package.   --linas

>>         it, send an email to opencog+unsubscribe@googlegroups.com
>>         <mailto:opencog%2Bunsubscribe@googlegroups.com>
>>         <mailto:opencog+unsubscribe@googlegroups.com
>>         <mailto:opencog%2Bunsubscribe@googlegroups.com>>.

>>         To post to this group, send email to ope...@googlegroups.com
>>         <mailto:opencog@googlegroups.com>
>>         <mailto:opencog@googlegroups.com
>> <mailto:opencog@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/7000a3af-990a-5a87-aed3-57e47cf8b086%40gmail.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.

For more options, visit https://groups.google.com/d/optout.



--
"The problem is not that artificial intelligence will get too smart and take over the world," computer scientist Pedro Domingos writes, "the problem is that it's too stupid and already has."
Reply all
Reply to author
Forward
0 new messages