示例#1
0
 def test_single_branch_ancestry(self):
     child_ancestry = ClassAncestry(child_cls_iri, self.schema_graph)
     self.assertEquals(child_ancestry.bottom_up,
                       [child_cls_iri, b1p_cls_iri, b1gp_cls_iri])
     self.assertEquals(child_ancestry.child, child_cls_iri)
     self.assertEquals(child_ancestry.top_down,
                       [b1gp_cls_iri, b1p_cls_iri, child_cls_iri])
     self.assertEquals(child_ancestry.parents(child_cls_iri), [b1p_cls_iri])
     self.assertEquals(child_ancestry.parents(b1p_cls_iri), [b1gp_cls_iri])
     self.assertEquals(child_ancestry.parents(b1gp_cls_iri), [])
示例#2
0
 def test_two_branch_ancestry_without_priority(self):
     self.schema_graph.add(
         (URIRef(child_cls_iri), RDFS.subClassOf, URIRef(b2p_cls_iri)))
     self.schema_graph.add(
         (URIRef(child_cls_iri), RDFS.subClassOf, URIRef(b2gp_cls_iri)))
     child_ancestry = ClassAncestry(child_cls_iri, self.schema_graph)
     self.assertEquals(child_ancestry.bottom_up[0], child_cls_iri)
     self.assertEquals(set(child_ancestry.bottom_up[1:3]),
                       {b1p_cls_iri, b2p_cls_iri})
     self.assertEquals(set(child_ancestry.bottom_up[3:]),
                       {b1gp_cls_iri, b2gp_cls_iri})
     self.assertEquals(child_ancestry.child, child_cls_iri)
     self.assertEquals(set(child_ancestry.parents(child_cls_iri)),
                       {b1p_cls_iri, b2p_cls_iri})
     self.assertEquals(child_ancestry.parents(b1p_cls_iri), [b1gp_cls_iri])
     self.assertEquals(child_ancestry.parents(b1gp_cls_iri), [])
     self.assertEquals(child_ancestry.parents(b2p_cls_iri), [b2gp_cls_iri])
     self.assertEquals(child_ancestry.parents(b2gp_cls_iri), [])
示例#3
0
    def test_three_branch_ancestry_with_priority(self):
        child_ref = URIRef(child_cls_iri)
        self.schema_graph.add(
            (child_ref, RDFS.subClassOf, URIRef(b2p_cls_iri)))
        self.schema_graph.add(
            (child_ref, RDFS.subClassOf, URIRef(b2gp_cls_iri)))
        self.schema_graph.add(
            (child_ref, RDFS.subClassOf, URIRef(b3p_cls_iri)))

        priority_b1 = BNode()
        self.schema_graph.add(
            (child_ref, URIRef(MODEL_HAS_PRIORITY_IRI), priority_b1))
        self.schema_graph.add((priority_b1, URIRef(MODEL_PRIORITY_CLASS_IRI),
                               URIRef(b1p_cls_iri)))
        self.schema_graph.add(
            (priority_b1, URIRef(MODEL_PRIORITY_IRI), Literal(1)))

        priority_b2 = BNode()
        self.schema_graph.add(
            (child_ref, URIRef(MODEL_HAS_PRIORITY_IRI), priority_b2))
        self.schema_graph.add((priority_b2, URIRef(MODEL_PRIORITY_CLASS_IRI),
                               URIRef(b2p_cls_iri)))
        self.schema_graph.add(
            (priority_b2, URIRef(MODEL_PRIORITY_IRI), Literal(2)))

        child_ancestry = ClassAncestry(child_cls_iri, self.schema_graph)

        self.assertEquals(child_ancestry.bottom_up[0], child_cls_iri)
        self.assertEquals(child_ancestry.bottom_up[1:3],
                          [b2p_cls_iri, b2gp_cls_iri])
        self.assertEquals(child_ancestry.bottom_up[3:5],
                          [b1p_cls_iri, b1gp_cls_iri])
        # b3p_cls_iri is the last because has no priority (nothing declared)
        self.assertEquals(child_ancestry.bottom_up[-1], b3p_cls_iri)
        self.assertEquals(child_ancestry.child, child_cls_iri)
        self.assertEquals(child_ancestry.parents(child_cls_iri),
                          [b2p_cls_iri, b1p_cls_iri, b3p_cls_iri])
        self.assertEquals(child_ancestry.parents(b1p_cls_iri), [b1gp_cls_iri])
        self.assertEquals(child_ancestry.parents(b1gp_cls_iri), [])
        self.assertEquals(child_ancestry.parents(b2p_cls_iri), [b2gp_cls_iri])
        self.assertEquals(child_ancestry.parents(b2gp_cls_iri), [])