build_graph: Transforme les uri en page
This commit is contained in:
		
							parent
							
								
									824b97dc2e
								
							
						
					
					
						commit
						5bebba3e60
					
				|  | @ -1,5 +1,5 @@ | |||
| #!/usr/bin/env python | ||||
| from fetch import wikidata | ||||
| from fetch import wikidata, wikimedica | ||||
| from neo4j import GraphDatabase | ||||
| import json | ||||
| 
 | ||||
|  | @ -100,15 +100,20 @@ def align_with_wikimedica(): | |||
|          | ||||
|         for entity in align: | ||||
|             if 'wikidata_id' in entity: | ||||
|                  | ||||
|                 with driver.session() as session: | ||||
|                     wikidata_id = entity['wikidata_id'] | ||||
|                     wikidata_page = wikimedica.get_web_page(entity['wikimedica_uri']) | ||||
| 
 | ||||
|                     session.run( | ||||
|                         "MATCH (d {id:$wikidata_id})" | ||||
|                         "SET d.wikimedia_id = $wikimedica_uri", | ||||
|                         wikidata_id=entity['wikidata_id'], | ||||
|                         wikimedica_uri=entity['wikimedica_uri'], | ||||
|                         wikidata_id=wikidata_id, | ||||
|                         wikimedica_uri=wikidata_page, | ||||
|                     ) | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| # Conection with Neo4j | ||||
| driver = GraphDatabase.driver(NEO4J_URI, auth=(NEO4J_USR, NEO4J_PSW)) | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,18 +1,20 @@ | |||
| from .http import session | ||||
| import rdflib | ||||
| 
 | ||||
| def request(page, request): | ||||
| def request(uri, request): | ||||
|     """ | ||||
|     Effectue une requête SPARQL sur une page de WikiMedica | ||||
|     Effectue une requête SPARQL depuis une uri de WikiMedica | ||||
| 
 | ||||
|     :param page: Page de WikiMedica ciblé | ||||
|     :param uri: uri de WikiMedica ciblé | ||||
|     :param request: Requête SPARQL appliqué | ||||
|     :return: Réponse du point d'accés sous forme d'un tableau de dictionaire | ||||
|     """ | ||||
|     data = session.get(page, stream=True) | ||||
|     data = session.get(uri, stream=True) | ||||
| 
 | ||||
|     g = rdflib.Graph() | ||||
|     g.parse(data.raw) | ||||
|     qres = g.query(request) | ||||
| 
 | ||||
|     return [row.asdict() for row in qres] | ||||
| 
 | ||||
| def get_web_page(uri): | ||||
|     return uri.replace("/Special:ExportRDF", "") | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue