def test_highly_connected_node(self):
     data = get_sparql_result('002_airroutes-labels.json')
     sn = SPARQLNetwork()
     sn.add_results(data)
     center_node = sn.graph.nodes.get('http://kelvinlawrence.net/air-routes/resource/12')
     self.assertEqual('JFK', center_node['label'])
     self.assertEqual(14, len(center_node['properties']))
Пример #2
0
 def test_sparql_network_multiple_s_and_p_bindings(self):
     sparql_network = SPARQLNetwork()
     data = get_sparql_result('008_duplicate_s_and_p_bindings.json')
     sparql_network.add_results(data)
     node = sparql_network.graph.nodes.get('http://kelvinlawrence.net/air-routes/resource/24')
     self.assertEqual(['value1', 'value2'], node['properties']['example:prop'])
     self.assertEqual(['value3', 'value4'], node['properties']['propLiteral'])
Пример #3
0
 def test_sparql_network_label_length_truncated(self):
     sparql_network = SPARQLNetwork(label_max_length=5)
     data = get_sparql_result('008_duplicate_s_and_p_bindings.json')
     sparql_network.add_results(data)
     node = sparql_network.graph.nodes.get('http://kelvinlawrence.net/air-routes/resource/24')
     self.assertEqual('re...', node['label'])
     self.assertEqual('resource:24', node['title'])
Пример #4
0
    def test_sparql_network_extract_prefixes_from_query(self):
        sparql_network = SPARQLNetwork()
        query = """
        PREFIX rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
        PREFIX rdfs:  <http://www.w3.org/2000/01/rdf-schema#>
        PREFIX res:   <http://kelvinlawrence.net/air-routes/resource/>
        PREFIX prop:  <http://kelvinlawrence.net/air-routes/datatypeProperty/>
        PREFIX op:    <http://kelvinlawrence.net/air-routes/objectProperty/>
        PREFIX class: <http://kelvinlawrence.net/air-routes/class/>

        SELECT ?s ?p ?o 
        WHERE {
            ?s ?p ?o . 
            ?s prop:code "CZM" .
            ?s op:route ?o
        } 
        LIMIT 50
        """
        sparql_network.extract_prefix_declarations_from_query(query)
        self.assertEqual(sparql_network.prefix_to_namespace['prop'],
                         'http://kelvinlawrence.net/air-routes/datatypeProperty/')
        self.assertEqual(sparql_network.namespace_to_prefix['http://kelvinlawrence.net/air-routes/datatypeProperty/'],
                         'prop')

        # now load some bindings which use these prefixes and verify they are used over the extracted ones.
        data = get_sparql_result('001_kelvin-airroutes.json')
        sparql_network.add_results(data)
        icao = sparql_network.graph.nodes['http://kelvinlawrence.net/air-routes/resource/24']['properties']['prop:icao']
        self.assertEqual(icao, 'KSJC')
Пример #5
0
    def test_sparql_network_to_json(self):
        data = get_sparql_result("001_kelvin-airroutes.json")

        sparql_network = SPARQLNetwork()
        sparql_network.add_results(data)
        js = sparql_network.to_json()
        self.assertTrue('graph' in js)
Пример #6
0
 def test_sparql_network_node_different_label_and_tooltip(self):
     sparql_network = SPARQLNetwork(label_max_length=100, display_property='value', tooltip_property='type')
     data = get_sparql_result('008_duplicate_s_and_p_bindings.json')
     sparql_network.add_results(data)
     node = sparql_network.graph.nodes.get('http://kelvinlawrence.net/air-routes/resource/24')
     self.assertEqual('http://kelvinlawrence.net/air-routes/resource/24', node['label'])
     self.assertEqual('uri', node['title'])
Пример #7
0
 def test_sparql_network_edge_label_string_invalid(self):
     sparql_network = SPARQLNetwork(edge_label_max_length=100, edge_display_property="foo")
     data = get_sparql_result('009_airroutes_edge_test.json')
     sparql_network.add_results(data)
     edge = sparql_network.graph.get_edge_data('http://kelvinlawrence.net/air-routes/resource/365',
                                               'http://kelvinlawrence.net/air-routes/resource/31',
                                               'http://kelvinlawrence.net/air-routes/objectProperty/route')
     self.assertEqual('objectProperty:route', edge['label'])
Пример #8
0
 def test_sparql_network_edge_tooltip_default(self):
     sparql_network = SPARQLNetwork()
     data = get_sparql_result('009_airroutes_edge_test.json')
     sparql_network.add_results(data)
     edge = sparql_network.graph.get_edge_data('http://kelvinlawrence.net/air-routes/resource/365',
                                               'http://kelvinlawrence.net/air-routes/resource/31',
                                               'http://kelvinlawrence.net/air-routes/objectProperty/route')
     self.assertEqual('objectProperty:route', edge['title'])
Пример #9
0
 def test_sparql_network_edge_tooltip_map_invalid_json(self):
     sparql_network = SPARQLNetwork(edge_label_max_length=100, edge_tooltip_property='{"uri":"value')
     data = get_sparql_result('009_airroutes_edge_test.json')
     sparql_network.add_results(data)
     edge = sparql_network.graph.get_edge_data('http://kelvinlawrence.net/air-routes/resource/365',
                                               'http://kelvinlawrence.net/air-routes/resource/31',
                                               'http://kelvinlawrence.net/air-routes/objectProperty/route')
     self.assertEqual('objectProperty:route', edge['title'])
Пример #10
0
 def test_sparql_network_edge_tooltip_default_with_custom_label(self):
     sparql_network = SPARQLNetwork(edge_label_max_length=100, edge_display_property="value")
     data = get_sparql_result('009_airroutes_edge_test.json')
     sparql_network.add_results(data)
     edge = sparql_network.graph.get_edge_data('http://kelvinlawrence.net/air-routes/resource/365',
                                               'http://kelvinlawrence.net/air-routes/resource/31',
                                               'http://kelvinlawrence.net/air-routes/objectProperty/route')
     self.assertEqual('http://kelvinlawrence.net/air-routes/objectProperty/route', edge['label'])
     self.assertEqual('http://kelvinlawrence.net/air-routes/objectProperty/route', edge['title'])
    def test_node_and_edge_label_extraction(self):
        data = get_sparql_result("003_large_binding_set.json")

        sn = SPARQLNetwork()
        sn.add_results(data)
        self.assertEqual(443, len(sn.graph.nodes))

        # pick out a few random nodes and ensure that they match the expected result from json file
        node_108 = sn.graph.nodes.get('http://kelvinlawrence.net/air-routes/resource/108')
        self.assertEqual('NCE', node_108['label'])

        node_1265 = sn.graph.nodes.get('http://kelvinlawrence.net/air-routes/resource/1265')
        self.assertEqual('resourc...', node_1265['label'])
Пример #12
0
 def test_sparql_network_group_by_raw_explicit_overrule_gbp(self):
     sparql_network = SPARQLNetwork(group_by_raw=True, group_by_property='value')
     data = get_sparql_result('008_duplicate_s_and_p_bindings.json')
     sparql_network.add_results(data)
     node = sparql_network.graph.nodes.get('http://kelvinlawrence.net/air-routes/resource/24')
     self.assertEqual("{'type': 'uri', 'value': 'http://kelvinlawrence.net/air-routes/resource/24'}", node['group'])
Пример #13
0
 def test_sparql_network_group_map_invalid_json(self):
     sparql_network = SPARQLNetwork(group_by_property='{"uri":bar"')
     data = get_sparql_result('008_duplicate_s_and_p_bindings.json')
     sparql_network.add_results(data)
     node = sparql_network.graph.nodes.get('http://kelvinlawrence.net/air-routes/resource/24')
     self.assertEqual('uri', node['group'])
Пример #14
0
def create_network_from_dataset(dataset: str, expand_all: bool = False) -> SPARQLNetwork:
    data = get_sparql_result(dataset)
    sparql_network = SPARQLNetwork(expand_all=expand_all)
    sparql_network.add_results(data)
    return sparql_network
Пример #15
0
 def test_sparql_network_group_by_raw_json(self):
     sparql_network = SPARQLNetwork(group_by_raw='{"uri":"__RAW_RESULT__"}')
     data = get_sparql_result('008_duplicate_s_and_p_bindings.json')
     sparql_network.add_results(data)
     node = sparql_network.graph.nodes.get('http://kelvinlawrence.net/air-routes/resource/24')
     self.assertEqual("{'type': 'uri', 'value': 'http://kelvinlawrence.net/air-routes/resource/24'}", node['group'])
Пример #16
0
 def test_sparql_network_ignore_groups(self):
     sparql_network = SPARQLNetwork(group_by_property='{"uri":"value"}', ignore_groups=True)
     data = get_sparql_result('008_duplicate_s_and_p_bindings.json')
     sparql_network.add_results(data)
     node = sparql_network.graph.nodes.get('http://kelvinlawrence.net/air-routes/resource/24')
     self.assertEqual('DEFAULT_GROUP', node['group'])
Пример #17
0
 def test_sparql_network_node_tooltip_map_invalid_json(self):
     sparql_network = SPARQLNetwork(label_max_length=100, tooltip_property='{"uri"type"}')
     data = get_sparql_result('008_duplicate_s_and_p_bindings.json')
     sparql_network.add_results(data)
     node = sparql_network.graph.nodes.get('http://kelvinlawrence.net/air-routes/resource/24')
     self.assertEqual('resource:24', node['title'])
Пример #18
0
 def test_sparql_network_node_tooltip_default(self):
     sparql_network = SPARQLNetwork()
     data = get_sparql_result('008_duplicate_s_and_p_bindings.json')
     sparql_network.add_results(data)
     node = sparql_network.graph.nodes.get('http://kelvinlawrence.net/air-routes/resource/24')
     self.assertEqual('resource:24', node['title'])
Пример #19
0
 def test_sparql_network_node_label_map_invalid_key(self):
     sparql_network = SPARQLNetwork(label_max_length=100, display_property='{"foo":"value"}')
     data = get_sparql_result('008_duplicate_s_and_p_bindings.json')
     sparql_network.add_results(data)
     node = sparql_network.graph.nodes.get('http://kelvinlawrence.net/air-routes/resource/24')
     self.assertEqual('resource:24', node['label'])