#ifndef KB_TERM_BUILDER_H_
#define KB_TERM_BUILDER_H_
#include "rdf_rule_core.h"
#include "rule_operators.h"
#include "knowledge_base.h"
namespace parser {
/////////////////////////////////////////////////////////////////////////////////////////
// create_binary_term
//
/////////////////////////////////////////////////////////////////////////////////////////
rule::knowledge_rule::xprsn_ptr_t
create_binary_term(rule::knowledge_rule * rule_p, rdf::index_type const& first, std::string const& oper, rdf::index_type const& second);
rule::knowledge_rule::xprsn_ptr_t
create_binary_term(rule::knowledge_rule * rule_p, rdf::index_type const& first, std::string const& oper, std::string const& second);
rule::knowledge_rule::xprsn_ptr_t
create_binary_term(rule::knowledge_rule * rule_p, rdf::index_type const& first, std::string const& oper, rule::knowledge_rule::xprsn_ptr_t const& second);
rule::knowledge_rule::xprsn_ptr_t
create_binary_term(rule::knowledge_rule * rule_p, std::string const& first, std::string const& oper, rdf::index_type const& second);
rule::knowledge_rule::xprsn_ptr_t
create_binary_term(rule::knowledge_rule * rule_p, std::string const& first, std::string const& oper, std::string const& second);
rule::knowledge_rule::xprsn_ptr_t
create_binary_term(rule::knowledge_rule * rule_p, std::string const& first, std::string const& oper, rule::knowledge_rule::xprsn_ptr_t const& second);
rule::knowledge_rule::xprsn_ptr_t
create_binary_term(rule::knowledge_rule * rule_p, rule::knowledge_rule::xprsn_ptr_t const& first, std::string const& oper, rdf::index_type const& second);
rule::knowledge_rule::xprsn_ptr_t
create_binary_term(rule::knowledge_rule * rule_p, rule::knowledge_rule::xprsn_ptr_t const& first, std::string const& oper, std::string const& second);
rule::knowledge_rule::xprsn_ptr_t
create_binary_term(rule::knowledge_rule * rule_p, rule::knowledge_rule::xprsn_ptr_t const& first, std::string const& oper, rule::knowledge_rule::xprsn_ptr_t const& second);
/////////////////////////////////////////////////////////////////////////////////////////
// create_unary_term
//
/////////////////////////////////////////////////////////////////////////////////////////
rule::knowledge_rule::xprsn_ptr_t
create_unary_term(rule::knowledge_rule * rule_p, std::string const& oper, rdf::index_type const& operant);
rule::knowledge_rule::xprsn_ptr_t
create_unary_term(rule::knowledge_rule * rule_p, std::string const& oper, std::string const& operant);
rule::knowledge_rule::xprsn_ptr_t
create_unary_term(rule::knowledge_rule * rule_p, std::string const& oper, rule::knowledge_rule::xprsn_ptr_t const& operant);
}; /* parser namespace */
#endif /*KB_TERM_BUILDER_H_*/