Readings: Difference between revisions

From info216
 
(218 intermediate revisions by the same user not shown)
Line 1: Line 1:
=Textbook=
''This page currently shows some of the lectures and readings from the Spring of 2023. It will be updated with materials for 2024 as the course progresses.''


The textbook 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''):
* 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.
Supplementary reading book (''not'' mandatory):
* 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 are either mandatory or suggested reading.''' Because we are moving from Java to Python this spring, the reading list is not final. We will add more materials to each lecture in the next few weeks.
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 lectures and lectures notes are also part of the curriculum.'''
'''The 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.  
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 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=
''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.


Below are the mandatory and suggested readings for each lecture. All the textbook chapters are mandatory. [[Java-based readings]] are also available as an alternative to the Python-based materials.
=Lectures (in progress)=


Below are the mandatory and suggested readings for each lecture. All the textbook chapters in Allemang, Hendler & Gandon are mandatory, whereas the chapters in Blumauer & Nagy are suggested.


==Lecture 1: Knowledge Graphs==
==Lecture 1: Introduction to KGs==


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


Mandatory readings:
Mandatory readings:
* Chapters 1-2 in Allemang & Hendler. ''In the text book.''
* Chapters 1-2 in Allemang, Hendler & Gandon (3rd edition)
* [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]
* [https://rdflib.readthedocs.io/ rdflib 4.2.2]
* [[:File:S01-KnowledgeGraphs.pdf | Slides from the lecture]]
** Main page and Getting started with RDFLib
* [[:File:S01-KG-8.pdf | Slides from the lecture]]


Useful materials:
Useful materials:
* [https://rdflib.readthedocs.io/en/stable/apidocs/modules.html RDFLib API documentation] (useful for the labs and project)
* Important knowledge graphs (''which we will look more at later''):
* [https://github.com/RDFLib/rdflib RDFLib's GitHub page]
** Wikidata (https://www.wikidata.org/)
<!-- ** DBpedia (https://www.dbpedia.org, https://dbpedia.org/page/Bergen)
** GeoNames (https://www.geonames.org/)
** BabelNet (https://babelnet.org/)
** Linking Open Data (LOD) (http://lod-cloud.net)
** Linked Open Vocabularies (LOV, https://lov.linkeddata.es/dataset/lov/)
-->
* Pages 27-55 and 105-122 in Blumauer & Nagy (suggested)


==Lecture 2: RDF==
==Lecture 2: Representing KGs (RDF)==


Themes:  
Themes:  
* RDF
* Resource Description Framework (RDF)
* Programming RDF in Python
* Programming RDF in Python
* Finding datasets and vocabularies for your projects


Mandatory readings:
Mandatory readings:
* Chapter 3 in Allemang & Hendler. ''In the text book.''
* Chapter 3 in Allemang, Hendler & Gandon (3rd edition)
* [https://www.w3.org/TR/rdf11-primer/ W3C's RDF 1.1 Primer] (mandatory)
* [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)
* We also continue with the [https://rdflib.readthedocs.io/ rdflib 4.2.2] materials from lecture 1:
* [http://rdflib.readthedocs.io/ RDFlib 7.0.0 documentation], the following pages:
** The main page
** Getting started with RDFLib
** Loading and saving RDF
** Loading and saving RDF
** Creating RDF triples
** Creating RDF triples
** Navigating Graphs
** Navigating Graphs
** Utilities and convenience functions
** Utilities and convenience functions
* [[:File:S02-RDF-9.pdf | Slides from the lecture]]
** RDF terms in rdflib
** Namespaces and Bindings
* [[:File:S02-RDF.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)
* [https://rdflib.readthedocs.io/en/stable/apidocs/modules.html RDFLib 7.0.0 packages] (reference for the labs)
* [https://rdflib.readthedocs.io/en/stable/apidocs/modules.html RDFLib API documentation] (same as Lecture 1)
* [https://www.ldf.fi/service/rdf-grapher RDF Grapher] for drawing RDF graphs
* [https://issemantic.net/rdf-visualizer RDF Visualizer] for drawing RDF graphs
* [https://www.w3.org/TR/rdf11-concepts/ W3C's RDF 1.1 Concepts and Abstract Syntax]
<!-- * An overview page of some other [https://www.w3.org/2018/09/rdf-data-viz/ RDF Data Visualization tools] -->
* Pages 25-28, 92-100, 125-128, and 164-167 in Blumauer & Nagy (suggested)


==Lecture 3: SPARQL==
==Lecture 3: Querying and updating KGs (SPARQL)==


Themes:
Themes:
* SPARQL
* SPARQL queries
* SPARQL Update
* SPARQL Update
* Programming SPARQL and SPARQL Update in Python
* Programming SPARQL and SPARQL Update in Python


<!--
Mandatory readings (tentative):
Mandatory readings:
* Chapter 6 in Allemang, Hendler & Gandon (3rd edition)
* Chapter 5 in Allemang & Hendler. ''In the text book.''
* [http://www.w3.org/TR/sparql11-update/ SPARQL 1.1 Update Language] (Sections 1-3)
* [http://www.w3.org/TR/sparql11-update/ SPARQL 1.1 Update Language] (Sections 1-3 are obligatory)
* [https://rdflib.readthedocs.io/ rdflib 7.0.0] materials:
* [[:File:S03-SPARQL-12.pdf | Slides from the lecture]]
** [https://rdflib.readthedocs.io/en/stable/intro_to_sparql.html Querying with SPARQL]
* [[:File:S03-SPARQL.pdf | Slides from the lecture]]


Useful materials:
Useful materials:
<!-- * [https://medium.com/wallscope/constructing-sparql-queries-ca63b8b9ac02 Constructing SPARQL Queries] -->
* [http://www.w3.org/TR/sparql11-query/ SPARQL 1.1 Query Language]
* [http://www.w3.org/TR/sparql11-query/ SPARQL 1.1 Query Language]
* [http://www.w3.org/TR/sparql11-update/ SPARQL 1.1 Update Language] (the rest of it)
* [http://www.w3.org/TR/sparql11-update/ SPARQL 1.1 Update Language] (the rest of it)
* [https://www.w3.org/TR/sparql11-overview/ SPARQL 1.1 Overview]
* [[:File:sparql-1_1-cheat-sheet.pdf | SPARQL 1.1 Cheat Sheet]]
* [http://jena.apache.org/documentation/javadoc/arq/ Javadoc] for Apache Jena ARQ 3.2.0
* [https://en.wikibooks.org/wiki/SPARQL/Expressions_and_Functions SPARQL Expressions and Functions]
** Query, QueryFactory, QueryExecution, QueryExecutionFactory, ResultSet
* For example pages 54-55, 133 in Blumauer & Nagy (suggested)
** UpdateFactory, UpdateAction
* The [[:File:kg4news-dump-20230130.txt | Knowledge Graphs for the News]] example used in the lecture. (Remember to save with the correct ''.ttl'' extension.)
: (supplementary, but perhaps necessary for the labs and project)
-->


==Lecture 4: Application Architecture==
==Lecture 4: Linked Open Data (LOD)==


Themes:
Themes:
* Application components
* Linked Open Data(LOD)
* Triple stores
* The LOD cloud
* Visualisation
* Data provisioning


<!--
Mandatory readings ''(both lecture 4 and 5)'':
Mandatory readings:
* Chapter 5 in Allemang, Hendler & Gandon (3rd edition)
* Chapter 4 in Allemang & Hendler. ''In the text book.''
* [https://www.w3.org/DesignIssues/LinkedData.html Linked Data], Tim Berners-Lee, 2006-07-27.
* [http://jena.apache.org/about_jena/architecture.html Apache architecture overview] (mandatory, from lecture 1)
* [[:File:S04-LOD.pdf | Slides from the lecture]]
* [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)
* [https://www.ontotext.com/knowledgehub/fundamentals/linked-data-linked-open-data/ What Are Linked Data and Linked Open Data?]
* [http://www.eswc2012.org/sites/default/files/eswc2012_submission_303.pdf Skjæveland 2012: Sgvizler.] ''Paper.''
* [[: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.]]
* [http://mgskjaeveland.github.io/sgvizler/ Sgvizler 0.6]
* [[:File:LohmannEtAl2016-VisualizingOntologiesWithVOWL.pdf | Lohmann et al. (2019): Visualizing Ontologies with VOWL. ''Semantic Web Journal.'']] ''Paper.''
* [http://vowl.visualdataweb.org/ VOWL: Visual Notation for OWL Ontologies]
-->
<!--
* [[:File:S07-Visualisation-4.pdf | Slides from the lecture]]
-->


 
==Lecture 5: Open Knowledge Graphs I==
==Lecture 5: RDFS==


Themes:
Themes:
* RDFS
* Important open KGs (LOD datasets)
* Axioms, rules and entailment
** Wikidata
* Programming RDFS in Python
** DBpedia


<!--
Mandatory readings:
Mandatory readings:
* Chapters 6-7 in Allemang & Hendler. ''In the text book.''
* Chapter 5 in Allemang, Hendler & Gandon (3rd edition)
* [http://www.w3.org/TR/rdf-schema/ W3C's RDF Schema 1.1] (mandatory)
* Important knowledge graphs - and what to read:
* [[:File:S05-RDFS-10.pdf | Slides from the lecture]]
** 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]]


Useful materials:
=Lecture 6: Open Knowledge Graphs II=
* [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)
* [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
** Model (createRDFSModel)
** InfModel (getRawModel, remove + the same methods as Model)
** RDFS (label, comment, subClassOf, subPropertyOf, domain, range...)
** Reasoner (but we will not use it directly)
: (supplementary, but perhaps necessary for the labs and project)
 
Case-based examples:
* [[:File:S5_RDFS_Example.pdf | RDFS Eating vegetables case]]
-->
 
==Lecture 6: RDFS Plus==


Themes:
Themes:
* Basic OWL concepts
* Important open KGs (LOD datasets)
* Axioms, rules and entailments
** DBpedia ''(continued)''
* Programming basic OWL in Python
** GeoNames
** the GDELT project
** WordNet
** BabelNet
** ConceptNet


<!--
Mandatory readings:
Mandatory readings:
* Chapter 8 in Allemang & Hendler. ''In the text book.''
* Chapter 5 in Allemang, Hendler & Gandon (3rd edition)
* [[:File:S06-RDFSPlus-4.pdf | Slides from the lecture.]]
* Important knowledge graphs - and what to read:
** GeoNames (https://www.geonames.org/):
*** [http://www.geonames.org/about.html About GeoNames]
*** 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
* [https://jena.apache.org/documentation/javadoc/jena/ Javadoc] for
* Wikidata statistics
** OntModel (createOntologyModel)  
** [https://grafana.wikimedia.org/d/000000167/wikidata-datamodel?orgId=1&refresh=30m Entity statistics]
** 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)
** [https://grafana.wikimedia.org/d/000000175/wikidata-datamodel-statements?orgId=1&refresh=30m Statement statistics]
** OWL (defines built-in OWL resources)
* [https://www.dbpedia-spotlight.org/ DBpedia Spotlight]
** OntClass, Individual, ObjectProperty, DatatypeProperty
* GDELT documentation
: (supplementary, but perhaps necessary for the labs and project)
** [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 :-))


Case-based examples:
==Lecture 7: Enterprise Knowledge Graphs==
* [[:File:S6_RDFS_Plus_Example.pdf | RDFS Plus People and Person case]]


OWL helpful clarifications:
Themes:  
* [[:File:OWL-example_I.pdf | owl:InverseFuctionalProperty vs owl:propertyDisjointWith]]
* Enterprise Knowledge Graphs (EKGs)
-->
* Google’s Knowledge Graph
 
* Amazon’s Product Graph
==Lecture 7 and 8: Vocabularies==
* JSON-LD (video presentation)
 
Themes:
* LOD vocabularies and ontologies


<!--
Mandatory readings:
Mandatory readings:
* Chapters 9-10 and 13 in Allemang & Hendler. ''In the text book.''
* [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.)''
* [http://lov.okfn.org/dataset/lov/ Linked Open Vocabularies (LOV)]
* [https://blog.google/products/search/about-knowledge-graph-and-knowledge-panels/ A reintroduction to our Knowledge Graph and knowledge panels], Danny Sullivan, Google (2020).
* [http://stats.lod2.eu/ LODstats]
* [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.)''
* [[:File:S07-Vocabularies-21.pdf | Slides from the lecture]]
* [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]]


Useful materials:
Supplementary readings:
* Vocabularies:
* Parts 2 and 4 in Blumauer & Nagy's text book (''strongly suggested - this is where Blumauer & Nagy's book is good!'')
** [http://www.w3.org/2004/02/skos/ SKOS - Simple Knowledge Organization System Home Page]
* [[: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.
** [http://schema.org/docs/full.html schema.org - Full Hierarchy]
* [[: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 :-)''
** [http://dublincore.org/ Dublin Core (DC)]
** [http://xmlns.com/foaf/spec/ Friend of a Friend (FOAF)]
** [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])
** [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)]
** [http://www.w3.org/ns/prov# Provenance Interchange (PROV)]
** [http://motools.sourceforge.net/event/event.html Event Ontology (event)]
** [http://www.w3.org/TR/owl-time/ Time ontology in OWL (time, OWL-time)]
** [http://motools.sourceforge.net/timeline/timeline.html Timeline Ontology (tl)]
** [http://vocab.org/bio/ Biographical Information (BIO)]
** [http://rdfs.org/sioc/spec/ Semantic Interlinked Online Communities (SIOC)]
** [http://bibliontology.com/ Bibliographic Ontology (bibo)]
** [http://www.musicontology.com/ Music Ontology (mo)]
: '''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.
-->


==Lecture 9 and 10: Linked Data Resources==
==Lecture 8: Rules (SHACL and RDFS)==


Themes:
Themes:
* Important Linked Open Datasets
* SHACL and RDFS
** DBpedia
* Axioms, rules and entailment
** LinkedGeoData
* Programming SHACL and RDFS in Python
** GeoNames
** Wikidata
** and others


<!--
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.]]
* Chapters 7-8 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.]]
* [https://book.validatingrdf.com/bookHtml011.html Chapter 5 ''SHACL''] in [https://book.validatingrdf.com/index.html Validating RDF] (available online)
* [http://lod-cloud.net The Linking Open Data (LOD) cloud diagram]
** Sections 5.1, 5.3-5.5, and 5.6,1-5.6.3
* [http://stats.lod2.eu/ LODstats]
* [http://www.w3.org/TR/rdf-schema/ W3C's RDF Schema 1.1], focus on sections 1-3 and 6
* [[:File:S08-LinkedOpenDatasets-23.pdf | Slides from the lecture]]
* [[:File:S07-SHACL-RDFS.pdf | Slides from the lecture]]  


Useful materials:
Useful materials:
* [http://wiki.dbpedia.org/about Dbpedia]
* Interactive, online [https://shacl.org/playground/ SHACL Playground]
* [https://www.wikidata.org/wiki/Wikidata:Introduction Wikidata]
* [https://docs.google.com/presentation/d/1weO9SzssxgYp3g_44X1LZsVtL0i6FurQ3KbIKZ8iriQ/ Lab presentation containing a short overview of SHACL and pySHACL]
* [http://www.geonames.org/about.html GeoNames]
* [https://pypi.org/project/pyshacl/ pySHACL - A Python validator for SHACL at PyPi.org] ''(after installation, go straight to "Python Module Use".)''
* [https://wordnet.princeton.edu/ WordNet - A lexical database for English]
* [https://w3c.github.io/data-shapes/shacl/ Shapes Constraint Language (SHACL) (Editor's Draft)]
* [http://live.babelnet.org/about BabelNet]
* [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
* Pages 101-106 in Blumauer & Nagy (suggested)
 
==Old lectures (2003) - will be updated==


==Lecture 11 and 12: Web APIs==
==Lecture 9: Ontologies (OWL)==


Themes:  
Themes:
* JSON, JSON-LD
* Basic OWL concepts
* Semantic web services
* Axioms, rules and entailments
* Semantic workflows
* Programming basic OWL in Python


<!--
Mandatory readings:
Mandatory readings:
* [http://json.org/ JSON Syntax] (mandatory)
* Chapter 9-10 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)
* [http://www.w3.org/TR/owl-primer OWL2 Primer], sections 2-6
* [[:File:S10-Services-7.pdf | Slides from the lecture]]
* [http://vowl.visualdataweb.org/ VOWL: Visual Notation for OWL Ontologies]
** [[:File:S10-JSONLD.pdf | JSON-LD slides]]
* [https://protegeproject.github.io/protege/getting-started/ Protégé-OWL Getting Started]
Useful materials:
* [[:File:S08-OWL.pdf | Slides from the lecture]]
* [http://json-ld.org/spec/latest/json-ld/ JSON-LD 1.1 - A JSON-based Serialization for Linked Data] (supplementary reference)
 
* [http://json-ld.org/ JSON for Linked Data] (supplementary)
Useful materials (cursory):
** [http://www.youtube.com/watch?v=4x_xzT5eF5Q What is Linked Data?] Short video introduction to Linked Data by Manu Sporny
* [http://www.w3.org/TR/owl-overview OWL 2 Document Overview]
** [http://www.youtube.com/watch?v=vioCbTo3C-4 What is JSON-LD?] Short video introduction to JSON-LD by Manu Sporny
* [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 13: OWL==
==Lecture 10: Vocabularies==


Themes:
Themes:
* Advanced OWL
* LOD vocabularies and ontologies
* Axioms, rules and entailments
* Programming advanced OWL in Python


<!--
Mandatory readings:
Mandatory readings:
* Chapters 11-12 in Allemang & Hendler. ''In the text book.''
* Chapters 10-11 in Allemang, Hendler & Gandon (3rd edition)
* [[:File:S11-OWL-15-utlagt.pdf | Slides from the lecture]]
* [http://lov.okfn.org/dataset/lov/ Linked Open Vocabularies (LOV)]
 
* Important vocabularies / ontologies:
Useful materials:
** [http://xmlns.com/foaf/spec/ Friend of a Friend (FOAF)] (if necessary follow the link to the 2004 version)
* [http://www.w3.org/TR/owl-overview OWL 2 Document Overview] (cursory)
** [http://motools.sourceforge.net/event/event.html Event Ontology (event)]
* [http://www.w3.org/TR/owl-primer OWL2 Primer] (cursory)
** [http://www.w3.org/TR/owl-time/ Time ontology in OWL (time, OWL-time)]
* [https://www.w3.org/TR/2012/REC-owl2-quick-reference-20121211/ OWL 2 Quick Reference Guide] (cursory)
** [https://www.w3.org/2003/01/geo/ geo: World Geodetic Standard (WGS) 84]
* [http://vowl.visualdataweb.org/v2 VOWL: Visual Notation for OWL Ontologies] (cursory)
** [http://dublincore.org/ Dublin Core (DC)]
* [http://vowl.visualdataweb.org/webvowl/index.html#sioc WebVOWL] (cursory)
** [http://www.w3.org/2004/02/skos/ SKOS - Simple Knowledge Organization System Home Page]
* [https://jena.apache.org/documentation/ontology/ Jena Ontology API] (we will most likely not go into this) (cursory)
** [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:S09-Vocabularies.pdf | Slides from the lecture]]


==Lecture 14: OWL DL==
==Lecture 11: Formal ontologies (description logic, OWL-DL)==


Themes:
Themes:
* OWL-DL
* Description logic
* Description logic
* Decision problems
* Decision problems
* OWL-DL
* Programming with OWL-DL reasoners in Python


<!--
Mandatory readings:
Mandatory readings:
* [[:File:S12-OWL-DL-10.pdf | Slides from the lecture]]
* Chapters 12-13 in Allemang, Hendler & Gandon (3rd edition)
* [http://www.w3.org/TR/owl-primer OWL2 Primer], sections 2-6 (same as Lecture 8) and sections 9-10
* [[:File:S10-OWL-DL.pdf | Slides from the lecture]]


Useful materials:
Useful materials:
* [[:File:NardiBrachman-IntroductionToDescriptionLogic.pdf | Nardi & Brachman: Introduction to Description Logics. Chapter 1 in Description Logic Handbook.]] ''(cursory)''
* [http://www.w3.org/TR/owl-overview OWL 2 Document Overview] (same as Lecture 8)
* [https://www.w3.org/TR/2012/REC-owl2-quick-reference-20121211/ OWL 2 Quick Reference Guide] (same as Lecture 8)
* [[:File:NardiBrachman-IntroductionToDescriptionLogic.pdf | Nardi & Brachman: Introduction to Description Logics. Chapter 1 in Description Logic Handbook.]]
* [[:File:BaderNutt-BasicDescriptionLogics.pdf | Baader & Nutt: Basic Description Logics. Chapter 2 in Description Logic Handbook.]]
* [[:File:BaderNutt-BasicDescriptionLogics.pdf | Baader & Nutt: Basic Description Logics. Chapter 2 in Description Logic Handbook.]]
** ''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.
** ''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.
* [http://www.cs.man.ac.uk/~ezolin/dl/ Complexity of Reasoning in Description Logics. Powered by Evgeny Zolin.] (informative)
-->


==Lecture 15: Ontology Development and Evaluation==
==Lecture 12: KG embeddings==
 
Themes:
* KG embeddings
* Link prediction
* TorchKGE
 
Mandatory readings (preliminary):
* [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]]
 
Supplementary readings (preliminary):
* [[:file:Mikolov_et_al._-_2013_-_Efficient_Estimation_of_Word_Representations_in_Ve.pdf | Mikolov et al’s original word2vec paper]]
* [[:file:Bordes_et_al._-_Translating_Embeddings_for_Modeling_Multi-relation.pdf | Bordes et al’s original TransE paper]]
* [https://torchkge.readthedocs.io/en/latest/ Welcome to TorchKGE’ s documentation!] (for the labs)
 
==Lecture 13: Wrapping up==


Themes:
Themes:
* Ontology Development 101 method
* Questions about the exam
* Quizzes


<!--
Mandatory readings:
Mandatory readings:
* Chapters 14-16 in Allemang & Hendler. ''In the text book.''
* The rest of Allemang, Hendler & Gandon (3rd edition)
* [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:
Useful materials:
* [http://www.sciencedirect.com/science/article/pii/S095741741101640X Sicilia et al. (2012): Empirical findings on ontology metrics.] ''Paper.''  (cursory)
* The rest of Blumauer & Nagy (suggested)
-->




&nbsp;
&nbsp;
<div class="credits" style="text-align: right; direction: ltr; margin-left: 1em;">''INFO216, UiB, 2017-2020, 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 21:54, 20 March 2024

This page currently shows some of the lectures and readings from the Spring of 2023. It will be updated with materials for 2024 as the course progresses.

Textbooks

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

  • 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.

Supplementary reading book (not mandatory):

  • 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 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 Allemang, Hendler & Gandon are mandatory, whereas the chapters in Blumauer & Nagy are suggested.

Lecture 1: Introduction to KGs

Themes:

  • Introduction to Knowledge Graphs
  • Organisation of the course

Mandatory readings:

Useful materials:

  • Important knowledge graphs (which we will look more at later):
  • Pages 27-55 and 105-122 in Blumauer & Nagy (suggested)

Lecture 2: Representing KGs (RDF)

Themes:

  • Resource Description Framework (RDF)
  • Programming RDF in Python

Mandatory readings:

  • Chapter 3 in Allemang, Hendler & Gandon (3rd edition)
  • W3C's RDF 1.1 Primer until and including 5.1.2 Turtle (but not the rest for now)
  • RDFlib 7.0.0 documentation, the following pages:
    • 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
  • Slides from the lecture

Useful materials:

Lecture 3: Querying and updating KGs (SPARQL)

Themes:

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

Mandatory readings (tentative):

Useful materials:

Lecture 4: Linked Open Data (LOD)

Themes:

  • Linked Open Data(LOD)
  • The LOD cloud
  • Data provisioning

Mandatory readings (both lecture 4 and 5):

Useful materials

Lecture 5: Open Knowledge Graphs I

Themes:

  • Important open KGs (LOD datasets)
    • Wikidata
    • DBpedia

Mandatory readings:

Lecture 6: Open Knowledge Graphs II

Themes:

  • Important open KGs (LOD datasets)
    • DBpedia (continued)
    • GeoNames
    • the GDELT project
    • WordNet
    • BabelNet
    • ConceptNet

Mandatory readings:

Useful materials

Lecture 7: Enterprise Knowledge Graphs

Themes:

  • Enterprise Knowledge Graphs (EKGs)
  • Google’s Knowledge Graph
  • Amazon’s Product Graph
  • JSON-LD (video presentation)

Mandatory readings:

Supplementary readings:

  • Parts 2 and 4 in Blumauer & Nagy's text book (strongly suggested - this is where Blumauer & Nagy's book is good!)
  • 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.
  • 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:

Useful materials:

Old lectures (2003) - will be updated

Lecture 9: Ontologies (OWL)

Themes:

  • Basic OWL concepts
  • Axioms, rules and entailments
  • Programming basic OWL in Python

Mandatory readings:

Useful materials (cursory):

Lecture 10: Vocabularies

Themes:

  • LOD vocabularies and ontologies

Mandatory readings:

Lecture 11: Formal ontologies (description logic, OWL-DL)

Themes:

  • OWL-DL
  • Description logic
  • Decision problems

Mandatory readings:

Useful materials:

Lecture 12: KG embeddings

Themes:

  • KG embeddings
  • Link prediction
  • TorchKGE

Mandatory readings (preliminary):

Supplementary readings (preliminary):

Lecture 13: Wrapping up

Themes:

  • Questions about the exam
  • Quizzes

Mandatory readings:

  • The rest of Allemang, Hendler & Gandon (3rd edition)

Useful materials:

  • The rest of Blumauer & Nagy (suggested)


 

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