def test_rules_multiple(): """Can we apply rules to multiple sentences at once""" _check_jena() triples_single = set() for sid in {t["sentence"] for t in TEST_SAF["tokens"]}: t = SyntaxTree(TEST_SAF, sentence_id=sid) t.apply_ruleset(TEST_RULES) triples_single |= set((s.id, p, o.id) for (s, p, o) in t.get_triples()) t = SyntaxTree(TEST_SAF) t.apply_ruleset(TEST_RULES) triples_all = set((s.id, p, o.id) for (s, p, o) in t.get_triples()) assert_equal(triples_single, triples_all)
def test_load(): _check_jena() t = SyntaxTree(TEST_SAF, sentence_id=2) triples = list(t.get_triples()) assert_equal(len(triples), 1) assert_equal(triples[0].predicate, "rel_nsubj") assert_equal(triples[0].subject.lemma, "it") assert_equal(triples[0].object.lemma, "rain")
def test_rules(): _check_jena() t = SyntaxTree(TEST_SAF, sentence_id=1) t.apply_ruleset(TEST_RULES) triples = [tr for tr in t.get_triples() if tr.predicate == "marry"] assert_equal(len(triples), 1) assert_equal(triples[0].subject.lemma, "John") assert_equal(triples[0].object.lemma, "Mary")