예제 #1
0
def test_transcribe_LabeledEdge():
    assert parsing.transcribe("(P31 Q42 Q5)") == [
        m.LabeledEdge(
            m.WikidataProperty("P31"),
            m.WikidataItem("Q42"),
            m.WikidataItem("Q5"),
        )
    ]
예제 #2
0
def test_transcribe_nested_Statements():
    assert parsing.transcribe("(Q5482740 (P31 Q42 Q5))", debug=True) == [
        m.Edge(
            m.WikidataItem("Q5482740"),
            m.LabeledEdge(
                m.WikidataProperty("P31"),
                m.WikidataItem("Q42"),
                m.WikidataItem("Q5"),
            ),
        )
    ]
예제 #3
0
def test_transcribe_multiple_LabeledEdges():
    assert parsing.transcribe("(P31 Q42 Q5) (P106 Q3236990 Q5482740)") == [
        m.LabeledEdge(
            m.WikidataProperty("P31"),
            m.WikidataItem("Q42"),
            m.WikidataItem("Q5"),
        ),
        m.LabeledEdge(
            m.WikidataProperty("P106"),
            m.WikidataItem("Q3236990"),
            m.WikidataItem("Q5482740"),
        ),
    ]
예제 #4
0
 def visit_q_id(self, node, children):
     """
     Instantiates a Node for each q_id.
     """
     if self.debug:
         print(f"Instantiating Node from {children}.")
     return model.WikidataItem(f"Q{children[0]}")
예제 #5
0
def test_transcribe_mixed():
    assert parsing.transcribe("(01704452-v Q42 03833065-n)", debug=True) == [
        m.LabeledEdge(
            m.OMWSynset("01704452-v"),
            m.WikidataItem("Q42"),
            m.OMWSynset("03833065-n"),
        )
    ]
예제 #6
0
def flat_statement():
    return m.LabeledEdge(
        m.WikidataProperty("P31"),
        m.WikidataItem("Q3236990"),
        m.WikidataItem("Q5482740"),
    )
예제 #7
0
def nested_statement():
    return m.Edge(
        m.WikidataItem("Q2"),
        m.LabeledEdge(m.WikidataProperty("P31"), m.WikidataItem("Q42"),
                      m.WikidataItem("Q5")),
    )
예제 #8
0
def singleton_statement():
    return m.Statement(m.WikidataItem("Q2013"))
예제 #9
0
 def test_validate(self):
     with pytest.raises(ValueError):
         m.WikidataItem("Q42Z")
예제 #10
0
def cached_WikidataItem_Q42():
    """
    Contains a cached copy of m.WikidataItem("Q42")
    """
    return m.WikidataItem("Q42")
예제 #11
0
def test_transcribe_Edge():
    assert parsing.transcribe("(Q42 Q5)") == [
        m.Edge(m.WikidataItem("Q42"), m.WikidataItem("Q5"))
    ]
예제 #12
0
def test_transcribe_singletonStatement():
    assert parsing.transcribe("(Q5)") == [m.Statement(m.WikidataItem("Q5"))]