11import json
22from string import Template
33
4+ from jinja2 import Environment , PackageLoader
5+
46from ted_sws .data_manager .adapters .repository_abc import MappingSuiteRepositoryABC
57from ted_sws .notice_validator .adapters .sparql_runner import SPARQLRunner
68from ted_sws .rml_to_html .resources .query_registry import QueryRegistry
79
10+ TEMPLATES = Environment (loader = PackageLoader ("ted_sws.rml_to_html.resources" , "templates" ))
11+ RML_TO_HTML_REPORT_TEMPLATE = "rml_to_html_report.jinja2"
812
913def query_uri_substitution (query : str , triple_map_uri : str ) -> str :
1014 """
@@ -24,7 +28,10 @@ def get_query_results(query: str, sparql_runner: SPARQLRunner) -> dict:
2428
2529def run_queries_for_triple_map (triple_map_uri : str , query_registry : QueryRegistry , sparql_runner : SPARQLRunner ) -> dict :
2630 return {
27- "triple_map_uri" :triple_map_uri ,
31+ "triple_map_uri" : triple_map_uri ,
32+ "details" : get_query_results (
33+ query = query_uri_substitution (query = query_registry .TRIPLE_MAP_COMMENT_LABEL , triple_map_uri = triple_map_uri ),
34+ sparql_runner = sparql_runner ),
2835 "logical_source" : get_query_results (
2936 query = query_uri_substitution (query = query_registry .LOGICAL_SOURCE , triple_map_uri = triple_map_uri ),
3037 sparql_runner = sparql_runner ),
@@ -37,7 +44,8 @@ def run_queries_for_triple_map(triple_map_uri: str, query_registry: QueryRegistr
3744
3845 }
3946
40- def rml_files_to_html_report (mapping_suite_identifier : str ,mapping_suite_repository : MappingSuiteRepositoryABC ):
47+
48+ def rml_files_to_html_report (mapping_suite_identifier : str , mapping_suite_repository : MappingSuiteRepositoryABC ):
4149 mapping_suite_package = mapping_suite_repository .get (reference = mapping_suite_identifier )
4250 if mapping_suite_package is None :
4351 raise ValueError (f'Mapping suite package, with { mapping_suite_identifier } id, was not found' )
@@ -46,20 +54,19 @@ def rml_files_to_html_report(mapping_suite_identifier: str,mapping_suite_reposit
4654
4755 sparql_runner = SPARQLRunner (files = rml_files )
4856 triple_maps = json .loads (sparql_runner .query (query_object = query_registry .TRIPLE_MAP ).serialize (
49- format = "json" ).decode ("utf-8" ))
57+ format = "json" ).decode ("utf-8" ))
5058 triple_maps_uris = [triple_map ['tripleMap' ]["value" ] for triple_map in triple_maps ["results" ]["bindings" ]]
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
59+ print (triple_maps_uris )
60+ triple_maps_details = {}
61+ for triple_map_uri in triple_maps_uris :
62+ triple_maps_details [triple_map_uri ] = run_queries_for_triple_map (triple_map_uri = triple_map_uri ,
63+ query_registry = query_registry ,
64+ sparql_runner = sparql_runner )
6165
66+ html_report = TEMPLATES .get_template (RML_TO_HTML_REPORT_TEMPLATE ).render (triple_maps_details = triple_maps_details )
67+ with open ("rml-report.html" , "w" ) as file :
68+ file .write (html_report )
6269
70+ return triple_maps_details
6371
6472
65- return list_of_triple_maps
0 commit comments