10. A method to perform a reasoning task, the method comprising: receiving a reasoning task, wherein the reasoning task includes one or more symbols; determining a polarity of each of the one or more symbols; determining a set of one or more polarity symbols, wherein each of the one or more polarity symbols includes a corresponding polarity of a corresponding one of the one or more symbols; generating polarity-based modules for each opposite of the one or more polarity symbols to identify axioms in a knowledge base that are associated with at least one of a positive polarity and a negative polarity of each of the one or more symbols, wherein each polarity-based module includes a set of axioms; generating an intersection polarity-based module from the polarity-based modules by intersection of the polarity-based modules, wherein the intersection polarity-based module includes axioms from each set of axioms that overlap; and performing the reasoning task with the intersection polarity-based module to determine a result.
16. The method of claim 10 , further comprising translating the reasoning task into a semantically-equivalent first-order logic (FOL) formula in conjunctive normal form (CNF), wherein determining the polarity of each of the one or more symbols comprises: determining that the corresponding symbol has a positive polarity in response to the corresponding symbol having positive form in the semantically-equivalent FOL formula in CNF; and determining that the corresponding symbol has a negative polarity in response to the corresponding symbol having negation form in the semantically-equivalent FOL formula in CNF.