docs: def get_model(self):
          """
          Returns an instance of Bayesian Model or Markov Model.
          Varibles are in the pattern var_0, var_1, var_2 where var_0 is
          0th index variable, var_1 is 1st index variable.
  
          Return
          ------
          model: an instance of Bayesian or Markov Model.
  
          Examples
          --------
          >>> reader = UAIReader('TestUAI.uai')
          >>> reader.get_model()
          """
          if self.network_type == 'BAYES':
              model = BayesianModel()
              model.add_nodes_from(self.variables)
              model.add_edges_from(self.edges)
  
              tabular_cpds = []
              for cpd in self.tables:
                  child_var = cpd[0]
                  states = int(self.domain[child_var])
                  arr = list(map(float, cpd[1]))
                  values = np.array(arr)
                  values = values.reshape(states, values.size // states)
                  tabular_cpds.append(TabularCPD(child_var, states, values))
  
              model.add_cpds(*tabular_cpds)
              return model
  
          elif self.network_type == 'MARKOV':
              model = MarkovModel(self.edges)
  
              factors = []
              for table in self.tables:
                  variables = table[0]
                  cardinality = [int(self.domain[var]) for var in variables]
                  value = list(map(float, table[1]))
                  factor = DiscreteFactor(variables=variables, cardinality=cardinality, values=value)
                  factors.append(factor)
  
              model.add_factors(*factors)
              return model