« SPARQL python » : différence entre les versions

De Wikipast
Aller à la navigation Aller à la recherche
(Page créée avec « ==Installation== Pour installer SPARQLWrapper, nous utilisons pip (qui est installé par défaut, dans le cas contraire installez pip). Ouvrez un terminal et tapez la com... »)
 
(Wikipastbot update)
 
(3 versions intermédiaires par 2 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
==Installation==
==Installation==


Pour installer SPARQLWrapper, nous utilisons pip (qui est installé par défaut, dans le cas contraire installez pip). Ouvrez un terminal et tapez la commande suivante:
Pour installer SPARQLWrapper, nous utilisons <span style="color:red">pip</span> (correction(s): <span style="color:green">piu, pop, pi, pipo, pipi, pin, zip, più, hip, pif, pipa, bip, kip, pic, pie, pipé, pep, pipe, pis
</span>) (qui est installé par défaut, dans le cas contraire installez <span style="color:red">pip</span> (correction(s): <span style="color:green">piu, pop, pi, pipo, pipi, pin, zip, più, hip, pif, pipa, bip, kip, pic, pie, pipé, pep, pipe, pis
</span>)). Ouvrez un terminal et tapez la commande suivante:


  <nowiki>
  <nowiki>
pip install SPARQLWrapper
<span style="color:red">pip</span> (correction(s): <span style="color:green">piu, pop, pi, pipo, pipi, pin, zip, più, hip, pif, pipa, bip, kip, pic, pie, pipé, pep, pipe, pis
</span>) install SPARQLWrapper
</nowiki>
</nowiki>


Ligne 12 : Ligne 17 :
from SPARQLWrapper import SPARQLWrapper, JSON
from SPARQLWrapper import SPARQLWrapper, JSON


#sparql=SPARQLWrapper("http://128.178.21.39:8890/sparql")
sparql=SPARQLWrapper("http://iccluster052.iccluster.epfl.ch:8899/sparql")
sparql=SPARQLWrapper("http://iccluster056.iccluster.epfl.ch:8890/sparql")
sparql.setQuery("""
sparql.setQuery("""
select distinct STR(?f) as ?fonction where
select distinct STR(?f) as ?fonction where
Ligne 31 : Ligne 35 :


</nowiki>
</nowiki>


==Exemples de requêtes SPARQL==
==Exemples de requêtes SPARQL==

Dernière version du 30 mai 2017 à 08:04


Installation

Pour installer SPARQLWrapper, nous utilisons pip (correction(s): piu, pop, pi, pipo, pipi, pin, zip, più, hip, pif, pipa, bip, kip, pic, pie, pipé, pep, pipe, pis ) (qui est installé par défaut, dans le cas contraire installez pip (correction(s): piu, pop, pi, pipo, pipi, pin, zip, più, hip, pif, pipa, bip, kip, pic, pie, pipé, pep, pipe, pis )). Ouvrez un terminal et tapez la commande suivante:

<span style="color:red">pip</span> (correction(s): <span style="color:green">piu, pop, pi, pipo, pipi, pin, zip, più, hip, pif, pipa, bip, kip, pic, pie, pipé, pep, pipe, pis
</span>) install SPARQLWrapper

Exemple de code python pour interroger la base SPARQL

from SPARQLWrapper import SPARQLWrapper, JSON

sparql=SPARQLWrapper("http://iccluster052.iccluster.epfl.ch:8899/sparql")
sparql.setQuery("""
select distinct STR(?f) as ?fonction where
{
        ?p a lt-owl:PersonMention .
	?p lt-owl:name ?name  .
	?p lt-owl:function ?f .
	FILTER contains(?name, "Jacques Chirac")
}
ORDER BY ASC(?f)
""")
sparql.setReturnFormat(JSON)
results=sparql.query().convert()

for result in results["results"]["bindings"]:
    print(result['fonction']["value"])


Exemples de requêtes SPARQL

having information about person mentions

select STR(?name) AS ?name STR(?firstname) AS ?firstname STR(?lastname) AS ?lastname STR(?function) AS ?function STR(?functionType) AS ?functiontype STR(?nationality) AS ?nationality  STR(?issue) AS ?issue
where
{
?p a lt-owl:PersonMention .
?p lt-owl:name ?name .
OPTIONAL {?p lt-owl:firstname ?firstname }  
OPTIONAL {?p lt-owl:lastname ?lastname } 
OPTIONAL {?p lt-owl:function ?function .}
OPTIONAL {?p lt-owl:functionType ?functionType .}
OPTIONAL {?p lt-owl:nationality ?nationality .}
?p lt-owl:mentionedIn ?artComp .
?artComp lt-owl:box ?box .
?artComp lt-owl:publication ?issue .
}
limit 50


distinct titles of a specific person

SELECT  distinct STR(?t) AS ?function
WHERE
{
        ?p a lt-owl:PersonMention .
        ?p lt-owl:name ?name  .
        ?p lt-owl:function ?t .
        FILTER(regex(str(?name), "Jacques Chirac"))
}


all title for a person ordered by year

SELECT  ?year STR(?issue) AS ?issue STR(?f) AS ?function
WHERE
	{
	?p a lt-owl:PersonMention .
	?p lt-owl:name ?name  .
	?p lt-owl:function ?f .
	?p lt-owl:mentionedIn ?artComp .
	?artComp lt-owl:issueDate ?date .
	?artComp lt-owl:publication ?issue .
	BIND (year(?date) AS ?year ).
	FILTER contains(?name, "Jacques Chirac")
	}
ORDER BY ?year


all articles talking of a specific person having a specific title

SELECT  STR(?issue) AS ?issue STR(?date) AS ?date STR(?title) AS ?articleTitle STR(?name) AS ?name
WHERE
{
        ?p a lt-owl:PersonMention .
        ?p lt-owl:name ?name  .
        ?p lt-owl:function ?f .
        ?p lt-owl:mentionedIn ?artComp .
        ?artComp lt-owl:issueDate ?date .
        ?artComp lt-owl:publication ?issue .
        ?artComp dct:title ?title .
        BIND (year(?date) AS ?year ).
        FILTER contains(?name, "Jacques Chirac") 
        FILTER contains(?f, "secrétaire d'Etat" )
}
ORDER BY ?year

all articles talking of a specific person having a specific title

SELECT  STR(?issue) AS ?issue STR(?date) AS ?date STR(?title) AS ?articleTitle STR(?name) AS ?name
WHERE
{
        ?p a lt-owl:PersonMention .
        ?p lt-owl:name ?name  .
        ?p lt-owl:function ?f .
        ?p lt-owl:mentionedIn ?artComp .
        ?artComp lt-owl:issueDate ?date .
        ?artComp lt-owl:publication ?issue .
        ?artComp dct:title ?title .
        BIND (year(?date) AS ?year ).
        FILTER contains(?name, "Jacques Chirac") 
        FILTER contains(?f, "secrétaire d'Etat" )
}
ORDER BY ?year


all the "violoniste"

SELECT  STR(?issue) AS ?issue STR(?date) As ?date STR(?f) AS ?function STR(?name) AS ?name
WHERE
{
        ?p a lt-owl:PersonMention .
        ?p lt-owl:name ?name  .
        ?p lt-owl:function ?f .
        ?p lt-owl:mentionedIn ?artComp .
        ?artComp lt-owl:issueDate ?date .
        ?artComp lt-owl:publication ?issue .
        ?artComp dct:title ?title .
        BIND (year(?date) AS ?year ).
        FILTER contains(?f, "violoniste" )
}

number of personMention over a specific time window

SELECT  ?year count(distinct ?p)
WHERE
{
	?p a lt-owl:PersonMention .
	?p lt-owl:mentionedIn ?artComp .
	?artComp lt-owl:issueDate ?date .
	BIND (year(?date) AS ?year )
	FILTER (?date > "1914-01-01T05:00:00"^^xsd:dateTime)
	FILTER (?date < "1920-12-31T05:00:00"^^xsd:dateTime)
}
GROUP BY ?year
ORDER BY ASC(?year)


get location mentions

SELECT   STR(?name) AS ?locationName STR(?issue) AS ?journal ?year AS ?year
WHERE
{
?l a lt-owl:LocationMention .
?l lt-owl:name ?name .
?l lt-owl:mentionedIn ?artComp .
?artComp lt-owl:issueDate ?date .
?artComp lt-owl:publication ?issue .
BIND (year(?date) AS ?year )
}
LIMIT 200