11import json
2+ from string import Template
23
34from ted_sws .data_manager .adapters .repository_abc import MappingSuiteRepositoryABC
45from ted_sws .notice_validator .adapters .sparql_runner import SPARQLRunner
56from ted_sws .rml_to_html .resources .query_registry import QueryRegistry
67
78
9+ def query_uri_substitution (query : str , triple_map_uri : str ) -> str :
10+ """
11+ Method to replace triple map URI in the SPARQL query
12+ :param query:
13+ :param triple_map_uri:
14+ :return:
15+ """
16+ return Template (query ).substitute (tripleMapUri = triple_map_uri )
17+
18+
19+ def get_query_results (query : str , sparql_runner : SPARQLRunner ) -> dict :
20+ return json .loads (
21+ sparql_runner .query (query_object = query ).serialize (
22+ format = "json" ).decode ("utf-8" ))["results" ]["bindings" ]
23+
24+
25+ def run_queries_for_triple_map (triple_map_uri : str , query_registry : QueryRegistry , sparql_runner : SPARQLRunner ) -> dict :
26+ return {
27+ "triple_map_uri" :triple_map_uri ,
28+ "logical_source" : get_query_results (
29+ query = query_uri_substitution (query = query_registry .LOGICAL_SOURCE , triple_map_uri = triple_map_uri ),
30+ sparql_runner = sparql_runner ),
31+ "subject_map" : get_query_results (
32+ query_uri_substitution (query = query_registry .SUBJECT_MAP , triple_map_uri = triple_map_uri ),
33+ sparql_runner = sparql_runner ),
34+ "predicate_object_map" : get_query_results (
35+ query = query_uri_substitution (query = query_registry .PREDICATE_OBJECT_MAP , triple_map_uri = triple_map_uri ),
36+ sparql_runner = sparql_runner )
37+
38+ }
39+
840def rml_files_to_html_report (mapping_suite_identifier : str ,mapping_suite_repository : MappingSuiteRepositoryABC ):
941 mapping_suite_package = mapping_suite_repository .get (reference = mapping_suite_identifier )
1042 if mapping_suite_package is None :
@@ -16,6 +48,18 @@ def rml_files_to_html_report(mapping_suite_identifier: str,mapping_suite_reposit
1648 triple_maps = json .loads (sparql_runner .query (query_object = query_registry .TRIPLE_MAP ).serialize (
1749 format = "json" ).decode ("utf-8" ))
1850 triple_maps_uris = [triple_map ['tripleMap' ]["value" ] for triple_map in triple_maps ["results" ]["bindings" ]]
19- for triple_map_uri in triple_maps_uris
51+ list_of_triple_maps = {}
52+ for triple_map_uri in triple_maps_uris [:2 ]:
53+ triple_map_details = {}
54+
55+ query = query_uri_substitution (query = query_registry .LOGICAL_SOURCE , triple_map_uri = triple_map_uri )
56+ logical_source = json .loads (
57+ sparql_runner .query (query_object = query ).serialize (
58+ format = "json" ).decode ("utf-8" ))
59+ triple_map_details ["logical_source" ] = logical_source ["results" ]["bindings" ]
60+ list_of_triple_maps [triple_map_uri ] = triple_map_details
61+
62+
63+
2064
21- return triple_maps
65+ return list_of_triple_maps
0 commit comments