Lab Solutions
This page will be updated with Python examples related to the lectures and labs. We will add more examples after each lab has ended. The first examples will use Python's RDFlib. We will introduce other relevant libraries later.
Lecture 1: Python, RDFlib, and PyCharm
Coding Tasks Lab 1
from rdflib import Graph, Namespace, URIRef, BNode, Literal
from rdflib.namespace import RDF, FOAF, XSD
g = Graph()
ex = Namespace("http://example.org/")
g.add((ex.Cade, ex.married, ex.Mary))
g.add((ex.France, ex.capital, ex.Paris))
g.add((ex.Cade, ex.age, Literal("27", datatype=XSD.integer)))
g.add((ex.Mary, ex.age, Literal("26", datatype=XSD.integer)))
g.add((ex.Mary, ex.interest, ex.Hiking))
g.add((ex.Mary, ex.interest, ex.Chocolate))
g.add((ex.Mary, ex.interest, ex.Biology))
g.add((ex.Mary, RDF.type, ex.Student))
g.add((ex.Paris, RDF.type, ex.City))
g.add((ex.Paris, ex.locatedIn, ex.France))
g.add((ex.Cade, ex.characteristic, ex.Kind))
g.add((ex.Mary, ex.characteristic, ex.Kind))
g.add((ex.Mary, RDF.type, FOAF.Person))
g.add((ex.Cade, RDF.type, FOAF.Person))
Coding Tasks Lab 2 - Collections
from rdflib import Graph, Namespace
from rdflib.collection import Collection
# Sometimes we want to add many objects for the same predicate at once.
# In these cases we can use Collection() to save some time.
# In this case I want to add all countries that Emma has visited at once.
b = BNode()
g.add((ex.Emma, ex.visit, b))
Collection(g, b,
[ex.Portugal, ex.Italy, ex.France, ex.Germany, ex.Denmark, ex.Sweden])
# OR
g.add((ex.Emma, ex.visit, ex.EmmaVisits))
Collection(g, ex.EmmaVisits,
[ex.Portugal, ex.Italy, ex.France, ex.Germany, ex.Denmark, ex.Sweden])
INFO216, UiB, 2017-2020. All code examples are CC0.