Readings: Difference between revisions

From info216
No edit summary
 
(268 intermediate revisions by 2 users not shown)
Line 1: Line 1:
=Text book=
 
The text book in INFO216 is ''Semantic Web for the Working Ontologist, Second Edition: Effective Modeling in RDFS and OWL by Dean Allemang and James Hendler (Jun 3, 2011). Morgan Kaufmann.'' '''The whole book is obligatory reading.'''  
=Textbooks=
 
Main course book (''the whole book is mandatory reading''):
* Hogan, A. et al. (2021). '''Knowledge Graphs.''' Springer. ''Synthesis Lectures on Data, Semantics, and Knowledge'' 22, 1–237, DOI: 10.2200/S01125ED1V01Y202109DSK022, Springer. https://kgbook.org/
 
Supplementary books (''not'' mandatory):
* Dean Allemang, James Hendler & Fabien Gandon (2020). '''Semantic Web for the Working Ontologist, Effective Modeling for Linked Data, RDFS and OWL (Third Edition).''' ISBN: 9781450376143, PDF ISBN: 9781450376150, Hardcover ISBN: 9781450376174, DOI: 10.1145/3382097.
* Andreas Blumauer and Helmut Nagy (2020). '''The Knowledge Graph Cookbook - Recipes that Work.''' mono/monochrom. ISBN-10: ‎3902796707, ISBN-13: 978-3902796707.


=Other materials=
=Other materials=
In addition, '''the materials listed below for each lecture is either mandatory or suggested reading.''' Currently, the readings are not updated from 2017, so some of them may change. Make sure you download the papers and web sites in good time before the exam. That way you are safe if a site becomes unavailable or somehow damaged the last few days before the exam. Note that to download some of the papers, you need to be inside UiB's network. Either use a computer directly on the UiB network or connect to your UiB account with VPN if you are elsewhere.


Finally, '''the lectures and lectures notes are also part of the curriculum.'''
In addition, '''the materials listed below for each lecture are either mandatory or suggested reading'''. More materials will be added to each lecture in the coming weeks.


=Lectures=
'''The labs, lectures and lectures notes are also part of the curriculum.'''
Below are the mandatory and suggested readings for each lecture. All the text-book chapters are mandatory.


==Lecture 1: Introduction==
Make sure you download the electronic resources to your own computer in good time before the exam. This is your own responsibility. That way you are safe if a site becomes unavailable or somehow damaged the last few days before the exam.
 
''Note:'' to download some of the papers, you may need to be inside UiB's network. Either use a computer directly on the UiB network or connect to your UiB account through VPN.
 
=Lectures (in progress)=
 
Below are the mandatory and suggested readings for each lecture. All the textbook chapters in Hogan et al. ("Knowledge Graphs") are mandatory, whereas the chapters in Allemang, Hendler & Gandon ("Semantic Web") are suggested.
 
==Session 1: Introduction to KGs==


Themes:
Themes:
* Web of Data
* Introduction to Knowledge Graphs
* INFO216
* Organisation of the course
* Jena
* The programming project


Mandatory readings:
Mandatory readings:
* Chapters 1-2 in Allemang & Hendler. ''In text book.''
* Chapter 1 Introduction, section 2.1 Models, and Appendix A Background in Hogan et al.
* [http://www.youtube.com/watch?v=HeUrEh-nqtU Tim Berners-Lee talks about the semantic web] (mandatory)
* [http://www.youtube.com/watch?v=HeUrEh-nqtU Tim Berners-Lee talks about the semantic web]
* [http://jena.apache.org/about_jena/architecture.html Apache architecture overview] (mandatory)
* [http://rdflib.readthedocs.io/ RDFlib 7.1.3 documentation], the following pages:
* [http://jena.apache.org/documentation/rdf/index.html The core RDF API] (mandatory)
** The main page
* [http://jena.apache.org/tutorials/rdf_api.html An introduction to RDF and the Jena RDF API] (mandatory)
** Getting started with RDFLib
* [[:File:INFO216-introducction.pdf | Slides from the lecture]]
** Loading and saving RDF
** [[:File:S01-Intro-WoD-Jena-7.pdf | Additional slides from the lecture]]
** Creating RDF triples
** Navigating Graphs
** Utilities and convenience functions
** RDF terms in rdflib
** Namespaces and Bindings
* The slides from the lecture (available under [https://mitt.uib.no/courses/51914/files/folder/Slides Files/Slides in http://mitt.uib.no]).


Useful materials:
Useful materials:
* [http://jena.apache.org/about_jena/ Welcome to Apache Jena] (useful starting page)
* Chapters 1-3 in Allemang, Hendler & Gandon (3rd edition)
* [http://jena.apache.org/index.html Apache Jena] main page (useful starting page)
* Wikidata (https://www.wikidata.org/)
* [http://jena.apache.org/tutorials/ Jena tutorials] (useful starting page)
* [https://jena.apache.org/documentation/javadoc/jena/ Package org.apache.jena.rdf.model] (supplementary, but necessary for the labs and project - lab 1 and the lecture notes lists the classes and methods you should look at)


Additional resources:
==Session 2: Querying and updating KGs (SPARQL)==
* PechaKucha: [https://www.pechakucha.com/cities/lambertville-new-hope/blogs/creating-a-presentation-update How to Create a PechaKucha Presentation]
* Elevator pitch:[https://www.linkedin.com/learning/creating-your-personal-brand/creating-a-perfect-elevator-pitch Some tips on how to plan your elevator pitch] and a [https://www.youtube.com/watch?v=Q19WW65kLkI example]


==Lecture 2: RDF==
Themes:
* SPARQL queries
* SPARQL Update
* Programming SPARQL and SPARQL Update in Python


Themes:  
Mandatory readings:
* RDF
* Section 2.2 Queries in Hogan et al.
* Programming RDF in Jena
* [https://graphdb.ontotext.com/documentation/10.8/sparql.html The SPARQL query language — GraphDB 10.8 documentation]
* Finding datasets and vocabularies for your projects
* [https://rdflib.readthedocs.io/ rdflib 7.1.3] materials: [https://rdflib.readthedocs.io/en/stable/intro_to_sparql.html Querying with SPARQL]
* The slides from the lecture (available under [https://mitt.uib.no/courses/51914/files/folder/Slides Files/Slides in http://mitt.uib.no]).
 
Useful materials:
* Chapter 6 in Allemang, Hendler & Gandon (3rd edition)
* [http://www.w3.org/TR/sparql11-query/ SPARQL 1.1 Query Language]
* [http://www.w3.org/TR/sparql11-update/ SPARQL 1.1 Update Language]
* [[:File:sparql-1_1-cheat-sheet.pdf | SPARQL 1.1 Cheat Sheet]]
* [https://en.wikibooks.org/wiki/SPARQL/Expressions_and_Functions SPARQL Expressions and Functions]
 
==Session 3: Creating KGs==
 
Themes:
* Extracting KGs from text
* Extracting from marked-up sources
* Extracting from SQL databases and JSON
 
Mandatory readings:
* Chapter 6 Creation and Enrichment, sections 6.1-6.4, in Hogan et al.
* The slides from the lecture (available under [https://mitt.uib.no/courses/51914/files/folder/Slides Files/Slides in http://mitt.uib.no]).
 
Useful materials:
* [https://www.dbpedia-spotlight.org/ DBpedia Spotlight]
* [https://graphdb.ontotext.com/documentation/10.0/virtualization.html Virtualization, GraphDB 10.0 documentation]
* [https://json-ld.org/ JSON for Linking Data]
 
==Session 4: Validating KGs==
 
Themes:
* Validating KG schemas (SHACL)
* Semantic KG schemas/vocabularies (RDFS)


Mandatory readings:
Mandatory readings:
* Chapter 3 in Allemang & Hendler. ''In text book.''
* Section 3.1 Schema in Hogan et al.
* [https://www.w3.org/TR/rdf11-primer/ W3C's RDF 1.1 Primer] (mandatory)
* Sections 5.1, 5.3, 5.5, 5.6.1, and 5.6.3 in [https://book.validatingrdf.com/bookHtml011.html Gayo, J.E. et al. Validating RDF].  
* We also continue with the Jena RDF materials from lecture 1:
* The slides from the lecture (available under [https://mitt.uib.no/courses/51914/files/folder/Slides Files/Slides in http://mitt.uib.no]).
** [http://jena.apache.org/documentation/rdf/index.html The core RDF API] (mandatory)
** [http://jena.apache.org/tutorials/rdf_api.html An introduction to RDF and the Jena RDF API] (mandatory)
* [[:File:S02-RDF-8.pdf | Slides from the lecture]]


Useful materials:
Useful materials:
* [https://www.w3.org/TR/rdf11-concepts/ W3C's RDF 1.1 Concepts and Abstract Syntax] (cursory)
* SHACL
** [https://jena.apache.org/documentation/javadoc/jena/ Package org.apache.jena.rdf.model] (supplementary, but necessary for the labs and project)
** Interactive, online [https://shacl.org/playground/ SHACL Playground]
** [https://pypi.org/project/pyshacl/ pySHACL - A Python validator for SHACL at PyPi.org] ''(after installation, go straight to "Python Module Use".)''
** [https://w3c.github.io/data-shapes/shacl/ Shapes Constraint Language (SHACL) (Editor's Draft)]
* RDFS
** [https://www.w3.org/TR/rdf11-mt/ W3C's RDF 1.1 Semantics] (''the axioms and entailments in sections 8 and 9 are most important, and we will go throught the most important ones in the lecture'')
** [https://github.com/RDFLib/OWL-RL OWL-RL] adds inference capability on top of RDFLib. To use it, copy the ''owlrl'' folder into your project folder, next to your Python files, and import it with ''import owlrl''.
** [https://owl-rl.readthedocs.io/en/latest/owlrl.html OWL-RL documentation] (most likely more detailed than you will need)


==Lecture 3: SPARQL==
==Session 5: Advanced KGs==


Themes:
Themes:
* SPARQL
* More about RDF, e.g.,
* Programming SPARQL in Jena
** identity
* SPARQL Update
** blank nodes
* Programming SPARQL Update in Jena
** reification
** higher-arity graphs


Mandatory readings:
Mandatory readings:
* Chapter 5 in Allemang & Hendler. ''In text book.''
* Sections 3.2 Identity and 3.3 Context in Hogan et al.
* [http://www.w3.org/TR/sparql11-update/ SPARQL 1.1 Update Language] (Sections 1-3 are obligatory)
* [[:File:S03-SPARQL-12.pdf | Slides from the lecture]]


Useful materials:
Useful materials:
* [http://www.w3.org/TR/sparql11-query/ SPARQL 1.1 Query Language]
* [https://www.w3.org/TR/rdf11-concepts/ W3C's RDF 1.1 Concepts and Abstract Syntax]
* [http://www.w3.org/TR/sparql11-update/ SPARQL 1.1 Update Language] (the rest of it)
* [https://www.ldf.fi/service/rdf-grapher RDF Grapher] for drawing RDF graphs
* [https://www.w3.org/TR/sparql11-overview/ SPARQL 1.1 Overview]
* [https://issemantic.net/rdf-visualizer RDF Visualizer] for drawing RDF graphs
* [http://jena.apache.org/documentation/javadoc/arq/ Javadoc] for Apache Jena ARQ 3.2.0
** Query, QueryFactory, QueryExecution, QueryExecutionFactory, ResultSet
** UpdateFactory, UpdateAction
: (supplementary, but perhaps necessary for the labs and project)


==Lecture 4: Architecture==
==Session 6: Ontologies==


Themes:
Themes:
* Application architecture
* More powerful vocabularies/ontologies (OWL)
* Application components
* Creating ontologies
* Triple stores
* Visualisation


Mandatory readings:
Mandatory readings:
* Chapter 4 in Allemang & Hendler. ''In text book.''
* Sections 4.1 Ontologies and 6.3 Schema/ontology creation in Hogan et al.
* [http://jena.apache.org/about_jena/architecture.html Apache architecture overview] (mandatory, from lecture 1)
* [https://jena.apache.org/documentation/tdb/index.html Apache's TDB] (mandatory)
* [https://jena.apache.org/documentation/tdb/java_api.html Apache's TDB Java API] (mandatory)
* [https://jena.apache.org/documentation/fuseki2/index.html Apache Jena Fuseki] (mandatory, we use Fuseki 2)
* [[:File:S04-architecture-5.pdf | Slides from the lecture]]


Useful materials:
Useful materials:
* [https://jena.apache.org/documentation/javadoc/tdb/ Package org.apache.jena.tdb] Class TDBFactory (createDataset)
* [http://www.w3.org/TR/owl-primer/ OWL 2 Primer, sections 2-6 (advanced: 9-10)] (show: Turtle)
* [http://www.eswc2012.org/sites/default/files/eswc2012_submission_303.pdf Skjæveland 2012: Sgvizler.] ''Paper.''
* [https://service.tib.eu/webvowl/ WebVOWL] interactive OWL visualisation tool
* [http://mgskjaeveland.github.io/sgvizler/ Sgvizler 0.6]
* Selected vocabularies:
* [[:File:LohmannEtAl2016-VisualizingOntologiesWithVOWL.pdf | Lohmann et al. (2019): Visualizing Ontologies with VOWL. ''Semantic Web Journal.'']] ''Paper.''
** [http://xmlns.com/foaf/spec/ Friend of a Friend (FOAF)] (if necessary follow the link to the 2004 version)
* [http://vowl.visualdataweb.org/ VOWL: Visual Notation for OWL Ontologies]
** [http://www.w3.org/TR/owl-time/ Time ontology in OWL (time, OWL-time)]
<!--
** [http://dublincore.org/ Dublin Core (DC)]
* [[:File:S07-Visualisation-4.pdf | Slides from the lecture]]
** [http://www.w3.org/2004/02/skos/ SKOS - Simple Knowledge Organization System Home Page]
-->
** [http://www.w3.org/ns/prov# Provenance Interchange (PROV)]
* Linked Open Vocabularies (LOV, https://lov.linkeddata.es/dataset/lov/)


==Lecture 5: RDFS==
==Lecture: Reasoning==


Themes:
Themes:
* More about semantic KG schemas (RDFS)
* Description logic
* OWL-DL
Mandatory readings:
* Section 4.2 Rules + DL in Hogan et al.
Useful materials:
* RDFS
* RDFS
* Axioms, rules and entailment
* OWL-DL
* Programming RDFS in Jena
 
==Lecture: KG Analytics==
 
Themes:
* Graph analytics
 
Mandatory readings:
* Section 5.1 Graph Analytics in Hogan et al.
 
Useful materials:
* networkx
 
==Lecture: KG Embeddings==
 
Themes:
* Semantic embedding spaces
* KG embedding techniques
* Graph neural networks


Mandatory readings:
Mandatory readings:
* Chapters 6-7 in Allemang & Hendler. ''In text book.''
* Sections 5.2 Knowledge Graph Embeddings and 5.3 Graph neural networks in Hogan et al.
* [http://www.w3.org/TR/rdf-schema/ W3C's RDF Schema 1.1] (mandatory)
* [[:File:S05-RDFS-10.pdf | Slides from the lecture]]


Useful materials:
Useful materials:
* [https://www.w3.org/TR/rdf11-mt/ W3C's RDF 1.1 Semantics] (cursory, except the axioms and entailments in sections 8 and 9, which we will review in the lecture)
* TorchKGE or PyKeen or ??
* [https://jena.apache.org/documentation/inference/index.html Reasoners and rules engines: Jena inference support] (cursory; sections 1 and 3 are relevant, but quite hard)
 
* [https://jena.apache.org/documentation/javadoc/jena/ Javadoc] for
==Lecture: KG Refinement==
** Model (createRDFSModel)
 
** InfModel (getRawModel, remove + the same methods as Model)
Themes:
** RDFS (label, comment, subClassOf, subPropertyOf, domain, range...)
* Enriching KGs
** Reasoner (but we will not use it directly)
 
: (supplementary, but perhaps necessary for the labs and project)
Mandatory readings:
* Chapter 8 Completion + Correction in Hogan et al.


Case-based examples:
Useful materials:
* [[:File:S5_RDFS_Example.pdf | RDFS Eating vegetables case]]


==Lecture 6: RDFS Plus==
==Lecture: KGs in Practice==


Themes:
Themes:
* Basic OWL concepts
* Open KGs
* Axioms, rules and entailments
* Enterprise KGs
* Programming basic OWL in Jena


Mandatory readings:
Mandatory readings:
* Chapter 8 in Allemang & Hendler. ''In text book.''
* Important knowledge graphs:
* [[:File:S06-RDFSPlus-4.pdf | Slides from the lecture.]]
** Wikidata (https://www.wikidata.org/)
** DBpedia (https://www.dbpedia.org, https://dbpedia.org/page/Bergen)
** GeoNames (https://www.geonames.org/)
** BabelNet (https://babelnet.org/)
** Linked Open Data (LOD) (http://lod-cloud.net)
** Linked Open Vocabularies (LOV, https://lov.linkeddata.es/dataset/lov/)


Useful materials:
Useful materials:
* [https://jena.apache.org/documentation/javadoc/jena/ Javadoc] for
** OntModel (createOntologyModel)
** OntModelSpec (the different reasoners are outlined [https://jena.apache.org/documentation/inference/index.html here (very long)], OWL_MEM_RULE_INF is a good starting point)
** OWL (defines built-in OWL resources)
** OntClass, Individual, ObjectProperty, DatatypeProperty
: (supplementary, but perhaps necessary for the labs and project)


==Lecture 7: Vocabularies==
==Lecture: KG Quality==


Themes:
Themes:
* LOD vocabularies and ontologies
* KG completion and correction
* Best practices
* Access protocols and usage control
 
Mandatory readings:
* Chapters 8 Completion + Correction and 9 Best Practices + Access Protocols + Usage Control in Hogan et al.
 
Useful materials:
 
==Lecture: KGs in industry==
 
I am also working to organise a Guest Lecture from a practitioner and former student.
 
 
<!-- ==Lecture 2: Representing KGs (RDF)==
 
Themes:
* Resource Description Framework (RDF)
* Programming RDF in Python


Mandatory readings:
Mandatory readings:
* Chapters 9-10 and 13 in Allemang & Hendler. ''In text book.''
* Chapter 3 in Allemang, Hendler & Gandon (3rd edition)
* [http://lov.okfn.org/dataset/lov/ Linked Open Vocabularies (LOV)]
* [https://www.w3.org/TR/rdf11-primer/ W3C's RDF 1.1 Primer] until and including 5.1.2 Turtle (but not the rest for now)
* [http://stats.lod2.eu/ LODstats]
* [http://rdflib.readthedocs.io/ RDFlib 7.0.0 documentation], the following pages:
* [[:File:S07-Vocabularies-21.pdf | Slides from the lecture]]
** The main page
** Getting started with RDFLib
** Loading and saving RDF
** Creating RDF triples
** Navigating Graphs
** Utilities and convenience functions
** RDF terms in rdflib
** Namespaces and Bindings
* [[:File:S02-RDF.pdf | Slides from the lecture]]


Useful materials:
Useful materials:
* Vocabularies:
* [https://rdflib.readthedocs.io/en/stable/apidocs/modules.html RDFLib 7.0.0 packages] (reference for the labs)
** [http://www.w3.org/2004/02/skos/ SKOS - Simple Knowledge Organization System Home Page]
* [https://www.ldf.fi/service/rdf-grapher RDF Grapher] for drawing RDF graphs
** [http://schema.org/docs/full.html schema.org - Full Hierarchy]
* [https://issemantic.net/rdf-visualizer RDF Visualizer] for drawing RDF graphs
** [http://dublincore.org/ Dublin Core (DC)]
* [https://www.w3.org/TR/rdf11-concepts/ W3C's RDF 1.1 Concepts and Abstract Syntax]
** [http://xmlns.com/foaf/spec/ Friend of a Friend (FOAF)]
* An overview page of some other [https://www.w3.org/2018/09/rdf-data-viz/ RDF Data Visualization tools]
** [https://www.w3.org/2003/01/geo/wgs84_pos geo: World Geodetic Standard (WGS) 84] (and [https://www.w3.org/2003/01/geo/ few more general comments here])
* Pages 25-28, 92-100, 125-128, and 164-167 in Blumauer & Nagy (suggested)
** [https://www.w3.org/TR/vocab-data-cube/ The RDF Data Cube Vocabulary]
-->
** [http://purl.org/vocab/vann/ Annotating vocabulary descriptions (VANN)]
 
** [https://www.w3.org/2003/06/sw-vocab-status/note Vocabulary Status (VS)]
 
** [http://creativecommons.org/ns Creative Commons (CC) Vocabulary]
<!--
** [http://vocab.deri.ie/void Vocabulary of Interlinked Datasets (VoID)]
==Lecture 4: Linked Open Data (LOD)==
** [http://www.w3.org/ns/prov# Provenance Interchange (PROV)]
 
** [http://motools.sourceforge.net/event/event.html Event Ontology (event)]
Themes:
** [http://www.w3.org/TR/owl-time/ Time ontology in OWL (time, OWL-time)]
* Linked Open Data(LOD)
** [http://motools.sourceforge.net/timeline/timeline.html Timeline Ontology (tl)]
* The LOD cloud
** [http://vocab.org/bio/ Biographical Information (BIO)]
* Data provisioning
** [http://rdfs.org/sioc/spec/ Semantic Interlinked Online Communities (SIOC)]
 
** [http://bibliontology.com/ Bibliographic Ontology (bibo)]
Mandatory readings ''(both lecture 4 and 5)'':
** [http://www.musicontology.com/ Music Ontology (mo)]
* Chapter 5 in Allemang, Hendler & Gandon (3rd edition)
: '''This is what we expect you to know about each vocabulary:''' Its purpose and where and how it can be used. You should know its most central 3-6 classes and properties be able to explain its basic structure. It is less important to get all the names and prefixes 100% right: we do not expect you to learn every little detail by heart. ''schema.org'' is less important because you have already had about it in INFO116.
* [https://www.w3.org/DesignIssues/LinkedData.html Linked Data], Tim Berners-Lee, 2006-07-27.
* [[:File:S04-LOD.pdf | Slides from the lecture]]
 
Useful materials
* [https://www.ontotext.com/knowledgehub/fundamentals/linked-data-linked-open-data/ What Are Linked Data and Linked Open Data?]
* [[:File:BizerHeathBernersLee-LinkedData2009-TheStorySoFar.pdf | Bizer, C., Heath, T., & Berners-Lee, T. (2009). Linked data-the story so far. Semantic services, interoperability and web applications: emerging concepts, 205-227.]]


==Lecture 8 and 9: Linked Open Datasets==
==Lecture 5: Open Knowledge Graphs I==


Themes:
Themes:
* Important Linked Open Datasets
* Important open KGs (LOD datasets)
** Wikidata
** DBpedia
** DBpedia
** LinkedGeoData
 
Mandatory readings:
* Chapter 5 in Allemang, Hendler & Gandon (3rd edition)
* Important knowledge graphs - and what to read:
** Wikidata (https://www.wikidata.org/):
*** [https://www.wikidata.org/wiki/Wikidata:Introduction Introduction to Wikidata]
*** [https://www.wikidata.org/wiki/Wikidata:SPARQL_query_service/Wikidata_Query_Help SPARQL query service/A gentle introduction to the Wikidata Query Service]
*** example: [https://www.wikidata.org/wiki/Q26793]
** DBpedia (https://www.dbpedia.org):
*** [http://wiki.dbpedia.org/about About Dbpedia]
*** example: [https://dbpedia.org/resource/Bergen]
*  [[:File:S05-S06-OpenKGs.pdf | Slides from the lecture]]
 
==Lecture 6: Open Knowledge Graphs II==
 
Themes:
* Important open KGs (LOD datasets)
** DBpedia ''(continued)''
** GeoNames
** GeoNames
** Wikidata
** the GDELT project
** and others
** WordNet
** BabelNet
** ConceptNet


Mandatory readings:
Mandatory readings:
* [[:File:BizerHeathBernersLee-LinkedData2009-TheStorySoFar.pdf | Bizer, C., Heath, T., & Berners-Lee, T. (2009). Linked data-the story so far. Semantic services, interoperability and web applications: emerging concepts, 205-227.]]
* Chapter 5 in Allemang, Hendler & Gandon (3rd edition)
* [[:File:FarberEtAl-ComparativeSurvey-SWJ2015.pdf | Färber, M., Ell, B., Menne, C., & Rettinger, A. (2015). A Comparative Survey of DBpedia, Freebase, OpenCyc, Wikidata, and YAGO. Semantic Web Journal, July.]]
* Important knowledge graphs - and what to read:
* [http://lod-cloud.net The Linking Open Data (LOD) cloud diagram]
** GeoNames (https://www.geonames.org/):
* [http://stats.lod2.eu/ LODstats]
*** [http://www.geonames.org/about.html About GeoNames]
* [[:File:S08-LinkedOpenDatasets-23.pdf | Slides from the lecture]]
*** example: [https://www.geonames.org/3161732/bergen.html]
** GDELT (https://www.gdeltproject.org/)
*** [https://www.gdeltproject.org/ The GDELT Project] - see also the About and Data pages
** WordNet (https://wordnet.princeton.edu/)
*** [https://wordnet.princeton.edu/ WordNet - A lexical database for English]
** BabelNet (https://babelnet.org/):
*** [http://live.babelnet.org/about About BabelNet]
*** [https://babelnet.org/how-to-use How to use]
*** example: [https://babelnet.org/synset?id=bn%3A00010008n&orig=Bergen&lang=EN]
** ConceptNet (http://conceptnet.io)
*** [http://conceptnet.io ConceptNet - An open, multilingual knowledge graph]
* [[:File:S05-S06-OpenKGs.pdf | Slides from the lecture]]


Useful materials:
Useful materials
* [http://wiki.dbpedia.org/about Dbpedia]
* Wikidata statistics
* [https://www.wikidata.org/wiki/Wikidata:Introduction Wikidata]
** [https://grafana.wikimedia.org/d/000000167/wikidata-datamodel?orgId=1&refresh=30m Entity statistics]
* [http://www.geonames.org/about.html GeoNames]
** [https://grafana.wikimedia.org/d/000000175/wikidata-datamodel-statements?orgId=1&refresh=30m Statement statistics]
* [https://wordnet.princeton.edu/ WordNet - A lexical database for English]
* [https://www.dbpedia-spotlight.org/ DBpedia Spotlight]
* [http://live.babelnet.org/about BabelNet]
* GDELT documentation
** [http://data.gdeltproject.org/documentation/GDELT-Event_Codebook-V2.0.pdf Event Codebook (and covers mentions)]
** [http://data.gdeltproject.org/documentation/CAMEO.Manual.1.1b3.pdf CAMEO event codes and other codes]
** [http://data.gdeltproject.org/documentation/GDELT-Global_Knowledge_Graph_Codebook-V2.1.pdf Global Knowledge Graph Codebook]
* Parts 1 and 3 in Blumauer & Nagy's text book (not tightly related to the lecture, but time to finish them by now :-))


==Lecture 10: Services==
==Lecture 7: Enterprise Knowledge Graphs==


Themes:  
Themes:  
* JSON, JSON-LD
* Enterprise Knowledge Graphs (EKGs)
* Semantic web services
* Google’s Knowledge Graph
* Semantic workflows
* Amazon’s Product Graph
* JSON-LD (video presentation)
 
Mandatory readings:
* [https://www.blog.google/products/search/introducing-knowledge-graph-things-not/ Introducing the Knowledge Graph: Things not Strings], Amit Singhal, Google (2012). ''(The blog post that introduced Google's knowledge graph to the world.)''
* [https://blog.google/products/search/about-knowledge-graph-and-knowledge-panels/ A reintroduction to our Knowledge Graph and knowledge panels], Danny Sullivan, Google (2020).
* [https://www.aboutamazon.com/news/innovation-at-amazon/making-search-easier How Amazon’s Product Graph is helping customers find products more easily], Arun Krishnan, Amazon (2018). ''(Short blog post that reviews some central ideas from the AutoKnow research paper listed below.)''
* [https://www.amazon.science/blog/building-product-graphs-automatically Building product graphs automatically], Xin Luna Dong, Amazon (2020).
* [https://json-ld.org/ JSON for Linking Data]
* [[:File:S07-EnterpriseKGs.pdf | Slides from the lecture]]
 
Supplementary readings:
* Parts 2 and 4 in Blumauer & Nagy's text book (''strongly suggested - this is where Blumauer & Nagy's book is good!'')
* [[:File:Bosch-LIS.pdf | LIS: A knowledge graph-based line information system]] by Grangel-González, I., Rickart, M., Rudolph, O., & Shah, F. (2023, May). In Proceedings of the European Semantic Web Conference (pp. 591-608). Cham: Springer Nature Switzerland.
* [[:File:2006.13473.pdf | AutoKnow: Self-Driving Knowledge Collection for Products of Thousands of Types]] by Dong, X. L., He, X., Kan, A., Li, X., Liang, Y., Ma, J., ... & Han, J. (2020, August). In Proceedings of the 26th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining (pp. 2724-2734). ''Research paper from Amazon about AutoKnow - this is a bit heavy for Bachelor level, but you can have a look :-)''
 
==Lecture 8: Rules (SHACL and RDFS)==
 
Themes:
* SHACL and RDFS
* Axioms, rules and entailment
* Programming SHACL and RDFS in Python


Mandatory readings:
Mandatory readings:
* [http://json.org/ JSON Syntax] (mandatory)
* Chapters 7-8 in Allemang, Hendler & Gandon (3rd edition)
* Section 2 in W3C's [https://www.w3.org/TR/json-ld-api/ JSON-LD 1.0 Processing Algorithms and API] (mandatory)
* [https://book.validatingrdf.com/bookHtml011.html Chapter 5 ''SHACL''] in [https://book.validatingrdf.com/index.html Validating RDF] (available online)
* [[:File:S10-Services-7.pdf | Slides from the lecture]]
** Sections 5.1, 5.3-5.5, and 5.6,1-5.6.3
* [http://www.w3.org/TR/rdf-schema/ W3C's RDF Schema 1.1], focus on sections 1-3 and 6
* [[:File:S07-SHACL-RDFS.pdf | Slides from the lecture]]  


Useful materials:
Useful materials:
* [http://json-ld.org/spec/latest/json-ld/ JSON-LD 1.1 - A JSON-based Serialization for Linked Data] (supplementary reference)
* Interactive, online [https://shacl.org/playground/ SHACL Playground]
* [http://json-ld.org/ JSON for Linked Data] (supplementary)
* [https://docs.google.com/presentation/d/1weO9SzssxgYp3g_44X1LZsVtL0i6FurQ3KbIKZ8iriQ/ Lab presentation containing a short overview of SHACL and pySHACL]
** [http://www.youtube.com/watch?v=4x_xzT5eF5Q What is Linked Data?] Short video introduction to Linked Data by Manu Sporny
* [https://pypi.org/project/pyshacl/ pySHACL - A Python validator for SHACL at PyPi.org] ''(after installation, go straight to "Python Module Use".)''
** [http://www.youtube.com/watch?v=vioCbTo3C-4 What is JSON-LD?] Short video introduction to JSON-LD by Manu Sporny
* [https://w3c.github.io/data-shapes/shacl/ Shapes Constraint Language (SHACL) (Editor's Draft)]
* [https://www.w3.org/TR/rdf11-mt/ W3C's RDF 1.1 Semantics] (''the axioms and entailments in sections 8 and 9, are most important, and we will review them in the lecture'')
* [https://github.com/blazegraph/database/wiki/InferenceAndTruthMaintenance Inference and Thruth Maintenance in Blazegraph]
* [https://github.com/RDFLib/OWL-RL OWL-RL] adds inference capability on top of RDFLib. To use it, copy the ''owlrl'' folder into your project folder, next to your Python files, and import it with ''import owlrl''.
* [https://owl-rl.readthedocs.io/en/latest/owlrl.html OWL-RL documentation] (most likely more detailed than you will need - check the [[Python Examples]] first


==Lecture 11: OWL==
==Lecture 9: Ontologies (OWL)==


Themes:
Themes:
* Advanced OWL
* Basic OWL concepts
* Axioms, rules and entailments
* Axioms, rules and entailments
* Programming advanced OWL in Jena
* Programming basic OWL in Python


Mandatory readings:
Mandatory readings:
* Chapters 11-12 in Allemang & Hendler. ''In text book.''
* Chapter 9-10, 12-13 in Allemang, Hendler & Gandon (3rd edition)
* [[:File:S11-OWL-15-utlagt.pdf | Slides from the lecture]]
* [http://www.w3.org/TR/owl-primer OWL2 Primer], sections 2-6 and 9-10
* [http://vowl.visualdataweb.org/ VOWL: Visual Notation for OWL Ontologies]
* [https://protegeproject.github.io/protege/getting-started/ Protégé-OWL Getting Started]
* [[:File:S09-OWL.pdf | Slides from the lecture]]
 
Useful materials (cursory):
* [http://www.w3.org/TR/owl-overview OWL 2 Document Overview]
* [https://www.w3.org/TR/owl2-quick-reference/ OWL 2 Quick Reference Guide]
* [https://www.w3.org/TR/owl2-rdf-based-semantics/ OWL2 RDF-Based Semantics]
* The OWL-RL materials (from Lecture 5)
* [http://vowl.visualdataweb.org/v2 VOWL: Visual Notation for OWL Ontologies]
* [http://vowl.visualdataweb.org/webvowl/index.html#sioc WebVOWL]
* [[:File:LohmannEtAl2016-VisualizingOntologiesWithVOWL.pdf | Lohmann et al. (2019): Visualizing Ontologies with VOWL. ''Semantic Web Journal.'']]
* Pages 106-109 in Blumauer & Nagy (suggested)
 
==Lecture 10: Vocabularies==
 
Themes:
* LOD vocabularies and ontologies
 
Mandatory readings:
* Chapters 10-11 in Allemang, Hendler & Gandon (3rd edition)
* [http://lov.okfn.org/dataset/lov/ Linked Open Vocabularies (LOV)]
* Important vocabularies / ontologies:
** [http://xmlns.com/foaf/spec/ Friend of a Friend (FOAF)] (if necessary follow the link to the 2004 version)
** [http://motools.sourceforge.net/event/event.html Event Ontology (event)]
** [http://www.w3.org/TR/owl-time/ Time ontology in OWL (time, OWL-time)]
** [https://www.w3.org/2003/01/geo/ geo: World Geodetic Standard (WGS) 84]
** [http://dublincore.org/ Dublin Core (DC)]
** [http://www.w3.org/2004/02/skos/ SKOS - Simple Knowledge Organization System Home Page]
** [http://rdfs.org/sioc/spec/ Semantic Interlinked Online Communities (SIOC)]
** [http://schema.org/docs/full.html schema.org - Full Hierarchy]
** [http://wikidata.dbpedia.org/services-resources/ontology DBpedia Ontology]
** [http://www.w3.org/ns/prov# Provenance Interchange (PROV)]
** [http://creativecommons.org/ns Creative Commons (CC) Vocabulary]
** ''What we expect you to know about each vocabulary is this:''
*** Its purpose and where and how it can be used.
*** Its most central 3-6 classes and properties be able to explain its basic structure.
*** It is less important to get all the names and prefixes 100% right: we do not expect you to learn every little detail by heart.
* [[:File:S10-Vocabularies.pdf | Slides from the lecture]]


Useful materials:
* [http://www.w3.org/TR/owl-overview OWL 2 Document Overview] (cursory)
* [http://www.w3.org/TR/owl-primer OWL2 Primer] (cursory)
* [https://www.w3.org/TR/2012/REC-owl2-quick-reference-20121211/ OWL 2 Quick Reference Guide] (cursory)
* [http://vowl.visualdataweb.org/v2 VOWL: Visual Notation for OWL Ontologies] (cursory)
* [http://vowl.visualdataweb.org/webvowl/index.html#sioc WebVOWL] (cursory)
* [https://jena.apache.org/documentation/ontology/ Jena Ontology API] (we will most likely not go into this) (cursory)


==Lecture 12: OWL DL==
==Lecture 11: KG embeddings==


Themes:
Themes:
* Description logic
* KG embeddings
* Decision problems
* Link prediction
* OWL-DL
* TorchKGE
* Programming with OWL-DL reasoners in Jena


Mandatory readings:
Mandatory readings:
* [[:File:S12-OWL-DL-10.pdf | Slides from the lecture]]
* [https://towardsdatascience.com/introduction-to-machine-learning-for-beginners-eed6024fdb08 Introduction to Machine Learning for Beginners] ([[:file:IntroToMachineLearning.pdf | PDF]])
* [https://towardsdatascience.com/introduction-to-word-embedding-and-word2vec-652d0c2060fa Introduction to Word Embeddings and word2vec] ([[:file:IntroToWordEmbeddings.pdf | PDF]])
* [https://towardsdatascience.com/introduction-to-knowledge-graph-embedding-with-dgl-ke-77ace6fb60ef Introduction to Knowledge Graph Embeddings] ([[:file:IntroToKGEmbeddings.pdf | PDF]])
* [[:file:S11-GraphEmbeddings.pdf | Slides from the lecture]]


Useful materials:
Supplementary readings:
* [[:File:NardiBrachman-IntroductionToDescriptionLogic.pdf | Nardi & Brachman: Introduction to Description Logics. Chapter 1 in Description Logic Handbook.]] ''(cursory)''
* [[:file:Mikolov_et_al._-_2013_-_Efficient_Estimation_of_Word_Representations_in_Ve.pdf | Mikolov et al’s original word2vec paper]]
* [[:File:BaderNutt-BasicDescriptionLogics.pdf | Baader & Nutt: Basic Description Logics. Chapter 2 in Description Logic Handbook.]]
* [[:file:Bordes_et_al._-_Translating_Embeddings_for_Modeling_Multi-relation.pdf | Bordes et al’s original TransE paper]]
** ''Cursory'', quickly gets mathematical after the introduction. In particular, sections 2.2.2.3-4 about fixpoint semantics apply to TBoxes with cyclic definitions, which we do not consider in this course. We also do not consider the stuff about rules, epistemics, and reasoning from section 2.2.5 on.
* [https://torchkge.readthedocs.io/en/latest/ Welcome to TorchKGE’ s documentation!] (for the labs)
* [http://www.cs.man.ac.uk/~ezolin/dl/ Complexity of Reasoning in Description Logics. Powered by Evgeny Zolin.] (informative)


==Lecture 13: Ontology development==
==Lecture 12: KGs and Large Language Models==


Themes:
Themes:
* Ontology Development 101 method
 
* What are Large Language Models (LLMs)
* Combining KGs and Large Language Models (LLMs)
** retrieval augmented knowledge fusion
** end-to-end KG construction
** LLM-augmented KG to text generation


Mandatory readings:
Mandatory readings:
* Chapters 14-16 in Allemang & Hendler. ''In text book.''
* [http://liris.cnrs.fr/alain.mille/enseignements/Ecole_Centrale/What%20is%20an%20ontology%20and%20why%20we%20need%20it.htm Noy & McGuinness (2001): Ontology Development 101: A Guide to Creating Your First Ontology.] ''Paper.''
* [[:File:S13-OntologyDevelopment-4.pdf | Slides from the lecture]]


Useful materials:
* [[:file:S12-KGsAndLLMs.pdf | Slides from the lecture]]
* [http://www.sciencedirect.com/science/article/pii/S095741741101640X Sicilia et al. (2012): Empirical findings on ontology metrics.] ''Paper.''  (cursory)
* No mandatory readings beyond the slides
 
Supplementary readings:
 
* Pan, S., Luo, L., Wang, Y., Chen, C., Wang, J., & Wu, X. (2024). [[:file:PanEtAl2023-LLMs_KGs_Opportunities_Challenges.pdf | ''Unifying large language models and knowledge graphs: A roadmap.'']]  IEEE Transactions on Knowledge and Data Engineering.
* Vaswani, A., Shazeer, N., Parmar, N., Uszkoreit, J., Jones, L., Gomez, A. N., ... & Polosukhin, I. (2017). [[:file:NIPS-2017-attention-is-all-you-need-Paper.pdf | ''Attention is all you need.'']]  Advances in neural information processing systems, 30.<br />
-->


&nbsp;
&nbsp;
<div class="credits" style="text-align: right; direction: ltr; margin-left: 1em;">''INFO216, UiB, Spring 2017-2018, Andreas L. Opdahl (c)''</div>
<div class="credits" style="text-align: right; direction: ltr; margin-left: 1em;">''INFO216, UiB, 2017-2024, Andreas L. Opdahl (c)''</div>

Latest revision as of 09:42, 3 March 2025

Textbooks

Main course book (the whole book is mandatory reading):

  • Hogan, A. et al. (2021). Knowledge Graphs. Springer. Synthesis Lectures on Data, Semantics, and Knowledge 22, 1–237, DOI: 10.2200/S01125ED1V01Y202109DSK022, Springer. https://kgbook.org/

Supplementary books (not mandatory):

  • Dean Allemang, James Hendler & Fabien Gandon (2020). Semantic Web for the Working Ontologist, Effective Modeling for Linked Data, RDFS and OWL (Third Edition). ISBN: 9781450376143, PDF ISBN: 9781450376150, Hardcover ISBN: 9781450376174, DOI: 10.1145/3382097.
  • Andreas Blumauer and Helmut Nagy (2020). The Knowledge Graph Cookbook - Recipes that Work. mono/monochrom. ISBN-10: ‎3902796707, ISBN-13: 978-3902796707.

Other materials

In addition, the materials listed below for each lecture are either mandatory or suggested reading. More materials will be added to each lecture in the coming weeks.

The labs, lectures and lectures notes are also part of the curriculum.

Make sure you download the electronic resources to your own computer in good time before the exam. This is your own responsibility. That way you are safe if a site becomes unavailable or somehow damaged the last few days before the exam.

Note: to download some of the papers, you may need to be inside UiB's network. Either use a computer directly on the UiB network or connect to your UiB account through VPN.

Lectures (in progress)

Below are the mandatory and suggested readings for each lecture. All the textbook chapters in Hogan et al. ("Knowledge Graphs") are mandatory, whereas the chapters in Allemang, Hendler & Gandon ("Semantic Web") are suggested.

Session 1: Introduction to KGs

Themes:

  • Introduction to Knowledge Graphs
  • Organisation of the course

Mandatory readings:

Useful materials:

Session 2: Querying and updating KGs (SPARQL)

Themes:

  • SPARQL queries
  • SPARQL Update
  • Programming SPARQL and SPARQL Update in Python

Mandatory readings:

Useful materials:

Session 3: Creating KGs

Themes:

  • Extracting KGs from text
  • Extracting from marked-up sources
  • Extracting from SQL databases and JSON

Mandatory readings:

Useful materials:

Session 4: Validating KGs

Themes:

  • Validating KG schemas (SHACL)
  • Semantic KG schemas/vocabularies (RDFS)

Mandatory readings:

Useful materials:

Session 5: Advanced KGs

Themes:

  • More about RDF, e.g.,
    • identity
    • blank nodes
    • reification
    • higher-arity graphs

Mandatory readings:

  • Sections 3.2 Identity and 3.3 Context in Hogan et al.

Useful materials:

Session 6: Ontologies

Themes:

  • More powerful vocabularies/ontologies (OWL)
  • Creating ontologies

Mandatory readings:

  • Sections 4.1 Ontologies and 6.3 Schema/ontology creation in Hogan et al.

Useful materials:

Lecture: Reasoning

Themes:

  • More about semantic KG schemas (RDFS)
  • Description logic
  • OWL-DL

Mandatory readings:

  • Section 4.2 Rules + DL in Hogan et al.

Useful materials:

  • RDFS
  • OWL-DL

Lecture: KG Analytics

Themes:

  • Graph analytics

Mandatory readings:

  • Section 5.1 Graph Analytics in Hogan et al.

Useful materials:

  • networkx

Lecture: KG Embeddings

Themes:

  • Semantic embedding spaces
  • KG embedding techniques
  • Graph neural networks

Mandatory readings:

  • Sections 5.2 Knowledge Graph Embeddings and 5.3 Graph neural networks in Hogan et al.

Useful materials:

  • TorchKGE or PyKeen or ??

Lecture: KG Refinement

Themes:

  • Enriching KGs

Mandatory readings:

  • Chapter 8 Completion + Correction in Hogan et al.

Useful materials:

Lecture: KGs in Practice

Themes:

  • Open KGs
  • Enterprise KGs

Mandatory readings:

Useful materials:

Lecture: KG Quality

Themes:

  • KG completion and correction
  • Best practices
  • Access protocols and usage control

Mandatory readings:

  • Chapters 8 Completion + Correction and 9 Best Practices + Access Protocols + Usage Control in Hogan et al.

Useful materials:

Lecture: KGs in industry

I am also working to organise a Guest Lecture from a practitioner and former student.



 

INFO216, UiB, 2017-2024, Andreas L. Opdahl (c)