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