Example #1
0
def run_keys_simpleprogram_MLE(fname_labeled_examples: str, fname_settings: str, fname_background_knowledge:Optional[str]=None):

    # SETTINGS
    settings = SettingParser.get_settings_keys_format(fname_settings)  # type: Settings
    prediction_goal_handler = settings.get_prediction_goal_handler()  # type: KeysPredictionGoalHandler
    prediction_goal = prediction_goal_handler.get_prediction_goal()  # type: Term

    language = settings.language  # type: TypeModeLanguage

    # BACKGROUND KNOWLEDGE
    if fname_background_knowledge is not None:
        background_knowledge = parse_background_knowledge(fname_background_knowledge)  # type: PrologFile
    else:
        background_knowledge = None

    # EXAMPLES
    examples = parse_examples_key_format_with_key(fname_labeled_examples)  # type: List[SimpleProgramExample]

    # LABELS
    index_of_label_var = prediction_goal_handler.get_predicate_goal_index_of_label_var()  # type: int
    label_collector = SimpleProgramLabelCollector(prediction_goal, index_of_label_var)
    label_collector.extract_labels(examples)
    possible_labels = label_collector.get_labels()
    # =================================

    tree_builder = MLEDeterministicTreeBuilder(language, possible_labels, SimpleProgramExamplePartitioner(background_knowledge))
    tree_builder.debug_printing(True)
    tree_builder.build_tree(examples, prediction_goal)

    tree = tree_builder.get_tree()
    print(str(tree))

    tree_to_program_converter = MLETreeToProgramConverter(KnowledgeBaseFormat.KEYS, debug_printing=True, prediction_goal=prediction_goal, index = index_of_label_var)
    program = tree_to_program_converter.convert_tree_to_simple_program(tree, language)
Example #2
0
    def general_setup(self,
                      fname_labeled_examples: str,
                      fname_settings: str,
                      fname_background_knowledge: Optional[str] = None):

        # SETINGS for MODELS format
        settings = SettingParser.get_settings_models_format(
            fname_settings)  # type: FileSettings
        self.language = settings.language  # type: TypeModeLanguage

        # LABELS
        self.possible_targets = settings.possible_labels  # type: List[Label]

        # BACKGROUND KNOWLEDGE
        if fname_background_knowledge is not None:
            self.background_knowledge = parse_background_knowledge(
                fname_background_knowledge)  # type: PrologFile
        else:
            self.background_knowledge = None

        # EXAMPLES
        self.examples = ModelsExampleParser.parse(
            fname_labeled_examples,
            self.possible_targets)  # type: List[PrologStringExample]
Example #3
0
from mai_version.trees.tree_converter import convert_tree_to_simple_program

fname_settings = 'D:\\KUL\\KUL MAI\\Masterproef\\data\\ACE-examples-data\\ace\\mach\\examples-experimental\\mach.s'
fname_background_knowledge = 'D:\\KUL\\KUL MAI\\Masterproef\\data\\ACE-examples-data\\ace\\mach\\examples-experimental\\mach.bg'
fname_labeled_examples = 'D:\\KUL\\KUL MAI\\Masterproef\\data\\ACE-examples-data\\ace\\mach\\examples-experimental\\mach.kb'

# SETINGS for MODELS format
settings = ModelsSettingsParser().parse(fname_settings)  # type: FileSettings
language = settings.language  # type: TypeModeLanguage

# LABELS
possible_targets = settings.possible_labels  # type: List[Label]

# BACKGROUND KNOWLEDGE
if fname_background_knowledge is not None:
    background_knowledge = parse_background_knowledge(
        fname_background_knowledge)  # type: PrologFile
else:
    background_knowledge = None

# EXAMPLES
examples = ModelsExampleParser.parse(fname_labeled_examples, possible_targets)
# =======================

tree_builder = ProbabilisticTreeBuilder(
    language, possible_targets,
    SimpleProgramExamplePartitioner(background_knowledge))

tree_builder.debug_printing(True)
tree_builder.build_tree(examples)
tree = tree_builder.get_tree()
print(str(tree))
Example #4
0
from problog.engine import DefaultEngine
from problog.logic import *

from mai_version.IO.parsing_settings.setting_parser import SettingParser
from mai_version.IO.parsing_background_knowledge import parse_background_knowledge
from mai_version.IO.parsing_examples_keys_format import parse_examples_key_format_with_key

file_name_labeled_examples = 'D:\\KUL\\KUL MAI\\Masterproef\\data\\ACE-examples-data\\ace\\mach\\keys-experimental\\mach.kb'
file_name_settings = 'D:\\KUL\\KUL MAI\\Masterproef\\data\\ACE-examples-data\\ace\\mach\\keys-experimental\\mach.s'
file_name_background = 'D:\\KUL\\KUL MAI\\Masterproef\\data\\ACE-examples-data\\ace\\mach\\keys-experimental\\mach.bg'

setting_parser = SettingParser.get_key_settings_parser()
setting_parser.parse(file_name_settings)

background_knw = parse_background_knowledge(file_name_background)

examples = parse_examples_key_format_with_key(file_name_labeled_examples)

engine = DefaultEngine()
engine.unknown = 1

db = engine.prepare(background_knw)
query_body = Term('machine')(Var('A'), Var('B')) \
             & (Term('worn')(Var('A'), Var('C')) & (Term('not_replaceable')(Var('C'))))
query_head = (Term('predicateToQuery')(Var('A'), Var('C'), Var('B')))
query_rule_for_db = (query_head << query_body)
# db += query

for example in examples:
    db_example = db.extend()
    for statement in example: