2017-03-03 1 views
0

J'essaie d'exécuter suivant SPARQL
requête GraphDB- Python SPARQL retour: http état (404)

select * where { 
    ?s ?p ?o . 
} limit 100 

Il fonctionne bien et produit résultat tel que requis dans http://localhost:7200/sparql à savoir GraphDB Workbench. Je voudrais utiliser python pour faire la même requête et pour cela, je généré l'URL suivante de requête en cliquant sur « Obtenir l'URL de requête en cours » dans l'interface GraphDB.

http://localhost:7200/sparql?name=&infer=true&sameAs=false&query=select+*+where+%7B+%0A%09%3Fs+%3Fp+%3Fo+.%0A%7D+limit+100+%0A&execute= 

J'ai essayé d'écrire du code Python pour cette

import pycurl 
from StringIO import StringIO 
url="http://localhost:7200/sparql?name=&infer=true&sameAs=false&query=select+*+where+%7B+%0A%09%3Fs+%3Fp+%3Fo+.%0A%7D+limit+100+%0A&execute=" 
response_buffer = StringIO() 
curl = pycurl.Curl() 
curl.setopt(curl.URL,url) 
curl.setopt(curl.USERPWD, '%s:%s' % (' ' , ' ')) 
curl.setopt(curl.WRITEFUNCTION, response_buffer.write) 
curl.perform() 
curl.close() 
response_value = response_buffer.getvalue() 
print response_value 

Cependant ceci renvoie: erreur - état HTTP (404) - Aucun message, regardez les journaux de serveur pour plus d'informations

Est-ce que je dois faire tout réglage supplémentaire pour interroger le GraphDB en Python . Pourrais-je obtenir des conseils sur Comment interroger GraphDB en utilisant Python et Sparql?

+0

Les deux URL ne correspondent pas dans votre exemple. – AKSW

+0

Oui cela a été modifié en tapant ici .. mais à l'origine les deux sont identiques en essayant .. Merci pour le commentaire .. ont édité la faute de frappe ici .. – vinay2k2

+0

Vous voudrez peut-être vérifier [sparql-wrapper] (https: // rdflib. github.io/sparqlwrapper/), il est beaucoup plus agréable d'interroger GraphDB avec que curl ... –

Répondre

1

La base de données GraphDB expose un point de terminaison SPARQL pour chaque référentiel RDF. L'adresse de point de terminaison SPARQL correcte peut être copiée à partir de l'interface Configuration> Repositories du Workbench> l'icône de lien en regard du nom du référentiel ("Copier l'URL du référentiel dans le Presse-papiers").

Votre requête HTTP devrait ressembler à:

http://localhost:7200/repositories/%repositoryID%?name=&infer=true&sameAs=false&query=select+*+where+%7B+%0A%09%3Fs+%3Fp+%3Fo+.%0A%7D+limit+100+%0A&execute= 

où le % repositoryId% valeur est l'identifiant du référentiel.