build_graph: Transforme les uri en page

This commit is contained in:
Rémi Cérès 2019-11-27 03:24:01 -05:00
parent 824b97dc2e
commit 5bebba3e60
2 changed files with 15 additions and 8 deletions

View File

@ -1,5 +1,5 @@
#!/usr/bin/env python #!/usr/bin/env python
from fetch import wikidata from fetch import wikidata, wikimedica
from neo4j import GraphDatabase from neo4j import GraphDatabase
import json import json
@ -100,15 +100,20 @@ def align_with_wikimedica():
for entity in align: for entity in align:
if 'wikidata_id' in entity: if 'wikidata_id' in entity:
with driver.session() as session: with driver.session() as session:
wikidata_id = entity['wikidata_id']
wikidata_page = wikimedica.get_web_page(entity['wikimedica_uri'])
session.run( session.run(
"MATCH (d {id:$wikidata_id})" "MATCH (d {id:$wikidata_id})"
"SET d.wikimedia_id = $wikimedica_uri", "SET d.wikimedia_id = $wikimedica_uri",
wikidata_id=entity['wikidata_id'], wikidata_id=wikidata_id,
wikimedica_uri=entity['wikimedica_uri'], wikimedica_uri=wikidata_page,
) )
# Conection with Neo4j # Conection with Neo4j
driver = GraphDatabase.driver(NEO4J_URI, auth=(NEO4J_USR, NEO4J_PSW)) driver = GraphDatabase.driver(NEO4J_URI, auth=(NEO4J_USR, NEO4J_PSW))

View File

@ -1,18 +1,20 @@
from .http import session 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é :param request: Requête SPARQL appliqué
:return: Réponse du point d'accés sous forme d'un tableau de dictionaire :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 = rdflib.Graph()
g.parse(data.raw) g.parse(data.raw)
qres = g.query(request) qres = g.query(request)
return [row.asdict() for row in qres] return [row.asdict() for row in qres]
def get_web_page(uri):
return uri.replace("/Special:ExportRDF", "")