Difference between revisions of "Lab: SPARQL queries"

From Info216
Line 6: Line 6:
Read up on Fuseki here: https://jena.apache.org/documentation/fuseki2/ .  
Read up on Fuseki 2 here: https://jena.apache.org/documentation/fuseki2/ .

Revision as of 13:20, 17 February 2017

Lab 6: SPARQL queries


The Fuseki tool. SPARQL queries and updates. Programming SPARQL queries and updates in Jena.


Read up on Fuseki 2 here: https://jena.apache.org/documentation/fuseki2/ .


SPARQL queries and updates are part of ARQ, whose JavaDoc is separate from the rest of Jena: https://jena.apache.org/documentation/javadoc/arq/ .

  • QueryFactory (create)
  • Query
  • QueryExecutionFactory (create)
  • QueryExecution (execSelect, execConstruct, execAsk, execDescribe)
  • ResultSet (hasNext, nextSolution) - this contains the table that results from SPARQL SELECT
  • QuerySolution (get, getResource, getLiteral) - this contains a row in that table
  • GraphStore
  • GraphStoreFactory (create)
  • UpdateFactory (create)
  • UpdateRequest
  • UpdateAction (exectute)


Go to the folder to which you downloaded Jena. Go to the apache-jena-fuseki1-2.4.1 or similar subfolder. Start the Fuseki server as follows:

 ./fuseki-server --mem --update --localhost /mydataset


  • The most recent versions of Fuseki needs Java 8, so make sure you have that installed (or you get an "Unsupported major.minor version" error).
  • You dataset is only stored in memory, and will disappear when Fuseki is stopped or crashes. So save all your INSERT DATA and other queries and updates in a file as you go along. (Also, you will include them in Java programs later :-))

Open a web browser and goto http://localhost:3030 . You are now in contact with the Fuseki server you just started. Go to the control panel and choose the dataset /mydataset . You can now run SPARQL queries and updates and load RDF graphs from file into your SPARQL engine.

Use SPARQL Update's INSERT DATA operation to add triples to the default graph of /mydataset. You can use triples from the graphs you made in labs 2 and 3.

Write a SPARQL SELECT or CONSTRUCT query to view all the triples in your graph.

Use SPARQL Update's DELETE DATA to delete a triple. Run your SPARQL query again to check that the graph has changed.

Use INSERT DATA to add information about Sergio Pastor, who lives in 4 Carrer del Serpis, 46021 Valencia, Spain. he has a M.Sc. in computer from the University of Valencia from 2008. His areas of expertise include big data, semantic technologies and machine learning.

Write a SPARQL DELETE/INSERT update to change the name of "University of Valencia" to "Universidad de Valencia" whereever it occurs.

Write a SPARQL DESCRIBE query to get basic information about the University of Valencia.

Redo all the above steps, this time writing a Java/Jena program.

If you have more time

What do the various parameters used to start fuseki-server mean? (Tip: https://jena.apache.org/documentation/serving_data/#running-a-fuseki-server)

Run Fuseki against your TDB database from lab 4. Update the database. Terminate the server. Start it again, reload http://localhost:3030, and check that the changes were persistent. Alternatively, check by running your program to read the TDB database.

If you want more RDF data to play with, you can look at these files: