Ejemplo n.º 1
0
def three_concept_graph():
    graph = gel.KnowledgeBase('bot', 'top')
    graph.add_concept(gel.Concept('C'))
    graph.add_concept(gel.Concept('C_prime'))
    graph.add_concept(gel.Concept('D'))
    graph.add_role(gel.Role('i'))
    return graph
Ejemplo n.º 2
0
def graph_pre_role_inclusion():
    graph = gel.KnowledgeBase('bot', 'top')
    graph.add_concept(gel.Concept('C'))
    graph.add_concept(gel.Concept('D'))

    graph.add_role(gel.Role('i'))
    graph.add_role(gel.Role('j'))
    return graph
Ejemplo n.º 3
0
def test_graph_add_pbox_axiom():
    graph = gel.KnowledgeBase('bot', 'top')
    assert graph.pbox_axioms == {}

    graph.add_concept(gel.Concept('C'))
    graph.add_concept(gel.Concept('D'))
    graph.add_axiom('C', 'D', graph.is_a, pbox_id=0)

    expected_axiom = (graph.get_concept('C'), graph.get_concept('D'),
                      graph.is_a)

    assert graph.pbox_axioms == {0: expected_axiom}
Ejemplo n.º 4
0
def concept_with_arrows():
    concept_a = gel.Concept('a')
    concept_b = gel.Concept('b')
    role = gel.Role('r')
    arrow1 = gel.Arrow(concept_b, role)
    concept_a.add_arrow(arrow1)

    concept_c = gel.Concept('c')
    arrow2 = gel.Arrow(concept_c, role)
    concept_a.add_arrow(arrow2)

    return concept_a, [arrow1, arrow2]
Ejemplo n.º 5
0
def init_bot_graph():
    graph = gel.KnowledgeBase('bot', 'top')
    graph.add_concept(gel.Concept('C'))
    graph.add_concept(gel.IndividualConcept('a'))
    graph.add_role(gel.Role('r'))
    graph.add_axiom('a', 'C', graph.is_a.iri)
    graph.add_axiom('C', 'bot', graph.is_a.iri)
    return graph
Ejemplo n.º 6
0
def test_graph_fix_existential_head_axiom(simple_graph):
    concept_d = gel.Concept('D')
    simple_graph.add_concept(concept_d)
    existential_concept = simple_graph.get_concept('r.C')

    assert existential_concept not in concept_d.is_a()
    simple_graph.add_axiom('D', 'C', 'r')
    assert existential_concept in concept_d.is_a()
Ejemplo n.º 7
0
def simple_graph():
    graph = gel.KnowledgeBase('bot', 'top')
    graph.add_concept(gel.Concept('C'))
    graph.add_concept(gel.IndividualConcept('a'))
    graph.add_role(gel.Role('r'))

    graph.add_concept(gel.ExistentialConcept('r', 'C'))
    graph.add_axiom('a', 'C', graph.is_a.iri)
    return graph
Ejemplo n.º 8
0
def test_kb_far_existential_concept_is_unsatisfiable(empty_kb):
    kb = empty_kb

    kb.add_concept(gel.IndividualConcept('a'))
    kb.add_concept(gel.IndividualConcept('b'))
    kb.add_concept(gel.Concept('B'))
    kb.add_role(gel.Role('r'))

    kb.add_axiom('a', 'b', 'r')
    kb.add_axiom('b', 'B', kb.is_a)

    rB = gel.ExistentialConcept('r', 'B')
    kb.add_concept(rB)
    kb.add_axiom(rB, kb.bot, kb.is_a)

    result = solve(kb)
    assert not result['satisfiable']
Ejemplo n.º 9
0
def graph_complete_rule_5():
    graph = gel.KnowledgeBase('bot', 'top')
    graph.add_concept(gel.Concept('C'))
    graph.add_concept(gel.Concept('D'))
    graph.add_concept(gel.Concept('C1'))
    graph.add_concept(gel.Concept('C2'))
    graph.add_axiom('C', 'C1', graph.is_a)
    graph.add_axiom('C1', 'C2', graph.is_a)

    graph.add_concept(gel.Concept('D1'))
    graph.add_axiom('D', 'D1', graph.is_a)

    graph.add_role(gel.Role('i'))
    graph.add_concept(gel.Concept('D-1'))
    graph.add_axiom('D-1', 'D', 'i')

    graph.add_concept(gel.IndividualConcept('a'))

    graph.add_axiom('C2', 'a', graph.is_a)
    graph.add_axiom('D1', 'a', graph.is_a)
    graph.add_axiom('a', 'C', graph.is_a)
    graph.add_axiom('a', 'D-1', graph.is_a)
    return graph
Ejemplo n.º 10
0
def test_graph_add_axiom():
    graph = gel.KnowledgeBase('bot', 'top')
    graph.add_concept(gel.Concept('C'))
    graph.add_concept(gel.Concept('D'))
    assert graph.add_axiom('C', 'D', graph.is_a)
    assert not graph.add_axiom('C', 'D', graph.is_a)