Help:WikiPathways SPARQL queries
From WikiPathways
(Difference between revisions)
(→SPARQL from the command line) |
(→Java) |
||
| Line 135: | Line 135: | ||
==Java== | ==Java== | ||
For java we recommend the [http://jena.apache.org/documentation/query/index.html Jena Framework]. | For java we recommend the [http://jena.apache.org/documentation/query/index.html Jena Framework]. | ||
| + | |||
| + | <PRE> | ||
| + | import com.hp.hpl.jena.query.Query; | ||
| + | import com.hp.hpl.jena.query.QueryExecution; | ||
| + | import com.hp.hpl.jena.query.QueryExecutionFactory; | ||
| + | import com.hp.hpl.jena.query.QueryFactory; | ||
| + | import com.hp.hpl.jena.query.QuerySolution; | ||
| + | import com.hp.hpl.jena.query.ResultSet; | ||
| + | |||
| + | public class javaCodeExample { | ||
| + | |||
| + | public static void main(String[] args) { | ||
| + | String sparqlQueryString = "SELECT * WHERE {?s ?p ?o} LIMIT 10"; | ||
| + | Query query = QueryFactory.create(sparqlQueryString); | ||
| + | QueryExecution queryExecution = QueryExecutionFactory.sparqlService("http://sparql.wikipathways.org", query); | ||
| + | ResultSet resultSet = queryExecution.execSelect(); | ||
| + | while (resultSet.hasNext()) { | ||
| + | QuerySolution solution = resultSet.next(); | ||
| + | System.out.print(solution.get("s")); | ||
| + | System.out.print("\t"+solution.get("p")); | ||
| + | System.out.println("\t"+solution.get("o")); | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | </pre> | ||
== php == | == php == | ||
Revision as of 15:27, 23 October 2012
On sparql.wikipathways.org wikipathways content is replicated. Currently this SPARQL endpoint is being developed, with very irregular updates.
Contents |
Prefixes
Below are example queries. For readability we have omitted the prefixes. We use the following prefixes: (Not complete yet)
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX dc: <http://purl.org/dc/elements/1.1/> PREFIX foaf: <http://xmlns.com/foaf/0.1/> PREFIX schema: <http://schema.org/>
Example queries
Queries with a * requires a bit more time for results.
Pathway oriented queries
| Get the species currently in WikiPathways with their respective URI's | SELECT DISTINCT ?organism ?label
WHERE {
?concept wp:organism ?organism .
?organism rdfs:label ?label .
}
| Execute |
| List pathways and their species |
SELECT DISTINCT ?title ?label
WHERE {
?pathway dc:title ?title .
?pathway wp:organism ?organism .
?organism rdfs:label ?label .
}
| Execute |
| List the species captured in WikiPathways and the number of pathways per species | SELECT DISTINCT ?organism ?label count(?pathway) as ?noPathways
WHERE {
?pathway dc:title ?title .
?pathway wp:organism ?organism .
?organism rdfs:label ?label .
}
ORDER BY DESC(?noPathways)
| Execute |
Datasource oriented queries
| Get all datasource currently captured in WikiPathways | SELECT DISTINCT ?datasource
WHERE {
?concept dc:source ?datasource
}
| Execute | |
| Get the number of entries per datasource in WikiPathways | SELECT DISTINCT ?datasource count(?datasource) as ?numberEntries
WHERE {
?concept dc:source ?datasource
}
ORDER BY DESC(?numberEntries)
| Execute | |
| Count the identifiers per data source |
SELECT DISTINCT ?datasource ?identifier count(?identifier) AS ?numberEntries
WHERE {
?concept dc:source ?datasource .
?concept dc:identifier ?identifier
}
| Execute | * |
| Count the identifiers per data source and order them from high to low |
SELECT DISTINCT ?datasource ?identifier count(?identifier) AS ?numberEntries
WHERE {
?concept dc:source ?datasource .
?concept dc:identifier ?identifier
}
ORDER BY DESC(?numberEntries)
| Execute | * |
| Return all Chembl compounds in WikiPathways and the pathways they are in | SELECT DISTINCT ?identifier ?pathway
WHERE {
?concept dcterms:isPartOf ?pathway .
?concept dc:source "ChEMBL compound"^^xsd:string .
?concept dc:identifier ?identifier .
}
| Execute |
Curators oriented queries
| Extract contributors | SELECT DISTINCT ?contributor
WHERE {
?pathway dc:contributor ?contributor
}
| Execute |
| Extract the amount of pathways edited per contributor | SELECT DISTINCT ?contributor, count(?pathway) as ?pathwaysEdited
WHERE {
?pathway dc:contributor ?contributor
}
ORDER BY DESC(?pathwaysEdited)
| Execute |
| find the pathways a user have edited so far. Change the name in the query | SELECT DISTINCT ?pathway, ?pathwayLabel
WHERE {
?pathway dc:contributor wpuser:Andra .
?pathway dc:contributor ?contributor .
?pathway rdfs:label ?pathwayLabel .
}
| Execute |
Federated queries
Code examples
Java
For java we recommend the Jena Framework.
import com.hp.hpl.jena.query.Query;
import com.hp.hpl.jena.query.QueryExecution;
import com.hp.hpl.jena.query.QueryExecutionFactory;
import com.hp.hpl.jena.query.QueryFactory;
import com.hp.hpl.jena.query.QuerySolution;
import com.hp.hpl.jena.query.ResultSet;
public class javaCodeExample {
public static void main(String[] args) {
String sparqlQueryString = "SELECT * WHERE {?s ?p ?o} LIMIT 10";
Query query = QueryFactory.create(sparqlQueryString);
QueryExecution queryExecution = QueryExecutionFactory.sparqlService("http://sparql.wikipathways.org", query);
ResultSet resultSet = queryExecution.execSelect();
while (resultSet.hasNext()) {
QuerySolution solution = resultSet.next();
System.out.print(solution.get("s"));
System.out.print("\t"+solution.get("p"));
System.out.println("\t"+solution.get("o"));
}
}
}
php
For php we recommend the arc2: Easy RDF and SPARQL for LAMP systems
SPARQL from the command line
For quick and easy querying, we recommend to use curl (Linux and OS X)
curl -F "query=SELECT * WHERE {?s ?p ?o} LIMIT 10" http://sparql.wikipathways.org

