Lab: RDF programming with RDFlib: Difference between revisions
No edit summary |
No edit summary |
||
(33 intermediate revisions by the same user not shown) | |||
Line 5: | Line 5: | ||
* Basic RDF graph programming with RDFlib. | * Basic RDF graph programming with RDFlib. | ||
* Simple reading/writing from/to file. | * Simple reading/writing from/to file. | ||
* Simple looping trough graph | |||
* Setting up groups for the group project | |||
==Classes/interfaces== | ==Classes/interfaces== | ||
import | from rdflib import Graph, Namespace, URIRef, BNode, Literal | ||
from rdflib.namespace import RDF, FOAF, XSD | |||
from rdflib.collection import Collection | |||
Methods: | |||
Graph - add(), remove(), triples(), serialize(), parse(), bind() | |||
==Tasks== | ==Tasks== | ||
Line 28: | Line 33: | ||
Denmark and Sweden. Cade knows Emma. They met in Paris in August | Denmark and Sweden. Cade knows Emma. They met in Paris in August | ||
2014." | 2014." | ||
Create a graph in RDFlib with triples corresponding to the text above. | Create a graph in RDFlib with triples corresponding to the text above. You can continue with what you made in Lab 1, or start a graph if you want. | ||
(Use your own URIs when you need to (like "http://example.org/"), If you can, also try to use terms | |||
you know from vocabularies such as FOAF, RDF or XSD. | |||
Write out your | Write out your graph to the console. I have found that this is seems to be the cleanest way of printing the graph: | ||
print(g.serialize(format="turtle").decode()) | |||
default? | Try all the following formats: "turtle", "n3", "nt", "xml". How do they differ? What is the default? | ||
Write your graph to a file. | Write your graph to a file. To do this, you can simply use the location parameter e.g: g.serialize(destination="triples.txt", format="turtle"). | ||
Look at the file and edit it so that Cade has also visited Germany and so that Emma is 26 years old. | |||
Create a new program that reads your | Create a new program that reads your graph in again from the file and | ||
writes it to the console. Check that | writes it to the console. e.g g.parse(location="triples.txt", format="turtle") | ||
Check that your new data is there! | |||
Continuing with either your first or second program, write a loop that | Continuing with either your first or second program, write a loop that | ||
goes through all the triples in the graph | goes through all the triples in the graph and prints them to the | ||
console. | console. | ||
Change the loop so that (a) it only loops through triples about | Change the loop so that (a) it only loops through triples about | ||
Emma (b) it only loops through triples involving the names of | |||
people | people. | ||
Remove all triples about Mary using graph.remove(). (triples of Mary are from lab 1) | |||
==Useful Links== | |||
[https://rdflib.readthedocs.io/en/stable/index.html rdflib documentation]: | |||
* [https://rdflib.readthedocs.io/en/stable/intro_to_creating_rdf.html Creating Triples] | |||
* [https://rdflib.readthedocs.io/en/stable/intro_to_graphs.html Navigating Graphs] | |||
* [https://rdflib.readthedocs.io/en/stable/intro_to_parsing.html Parsing] | |||
[https://wiki.uib.no/info216/index.php/File:S02-RDF-9.pdf Lecture Notes] | |||
Revision as of 19:25, 12 March 2020
Lab 2: RDF programming with RDFlib
Topics
- Basic RDF graph programming with RDFlib.
- Simple reading/writing from/to file.
- Simple looping trough graph
- Setting up groups for the group project
Classes/interfaces
from rdflib import Graph, Namespace, URIRef, BNode, Literal
from rdflib.namespace import RDF, FOAF, XSD
from rdflib.collection import Collection
Methods:
Graph - add(), remove(), triples(), serialize(), parse(), bind()
Tasks
Consider the following situation: "Cade lives in 1516 Henry Street, Berkeley, California 94709, USA. He has a B.Sc. in biology from the University of California, Berkeley from 2011. His interests include birds, ecology, the environment, photography and travelling. He has visited Canada and France. Emma Dominguez lives in Carrer de la Guardia Civil 20, 46020 Valencia, Spain. She has a M.Sc. in chemistry from the University of Valencia from 2015. Her areas of expertise include waste management, toxic waste, air pollution. Her interests include bike riding, music and travelling. She has visited Portugal, Italy, France, Germany, Denmark and Sweden. Cade knows Emma. They met in Paris in August 2014."
Create a graph in RDFlib with triples corresponding to the text above. You can continue with what you made in Lab 1, or start a graph if you want.
(Use your own URIs when you need to (like "http://example.org/"), If you can, also try to use terms
you know from vocabularies such as FOAF, RDF or XSD.
Write out your graph to the console. I have found that this is seems to be the cleanest way of printing the graph: print(g.serialize(format="turtle").decode()) Try all the following formats: "turtle", "n3", "nt", "xml". How do they differ? What is the default?
Write your graph to a file. To do this, you can simply use the location parameter e.g: g.serialize(destination="triples.txt", format="turtle").
Look at the file and edit it so that Cade has also visited Germany and so that Emma is 26 years old.
Create a new program that reads your graph in again from the file and writes it to the console. e.g g.parse(location="triples.txt", format="turtle") Check that your new data is there!
Continuing with either your first or second program, write a loop that goes through all the triples in the graph and prints them to the console.
Change the loop so that (a) it only loops through triples about Emma (b) it only loops through triples involving the names of people.
Remove all triples about Mary using graph.remove(). (triples of Mary are from lab 1)