Java-based readings
This page suggests Java-based readings as an alternative to the Python-based materials, if you prefer that.
Contents
- 1 Lecture 1: Knowledge Graphs
- 2 Lecture 2: RDF
- 3 Lecture 3: SPARQL
- 4 Lecture 4: Application Architecture
- 5 Lecture 5: RDFS
- 6 Lecture 6: RDFS Plus
- 7 Lecture 7 and 8: Vocabularies
- 8 Lecture 9 and 10: Linked Data Resources
- 9 Lecture 11 and 12: Web APIs
- 10 Lecture 13: OWL
- 11 Lecture 14: OWL DL
- 12 Lecture 15: Ontology Development and Evaluation
Lecture 1: Knowledge Graphs
Themes:
- Jena
Mandatory readings:
- Apache architecture overview (mandatory)
- The core RDF API (mandatory)
- An introduction to RDF and the Jena RDF API (mandatory)
Useful materials:
- Welcome to Apache Jena (useful starting page)
- Apache Jena main page (useful starting page)
- Jena tutorials (useful starting page)
- 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)
Lecture 2: RDF
Themes:
- Programming RDF in Jena
Mandatory readings:
- The Jena RDF materials from lecture 1:
- The core RDF API (mandatory)
- An introduction to RDF and the Jena RDF API (mandatory)
Useful materials:
- Package org.apache.jena.rdf.model (supplementary, but necessary for the labs and project)
Lecture 3: SPARQL
Themes:
- Programming SPARQL and SPARQL Update in Jena
Useful materials:
- 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: Application Architecture
Mandatory readings:
- Apache architecture overview (mandatory, from lecture 1)
- Apache's TDB (mandatory)
- Apache's TDB Java API (mandatory)
- Apache Jena Fuseki (mandatory, we use Fuseki 2)
Useful materials:
- Package org.apache.jena.tdb Class TDBFactory (createDataset)
Lecture 5: RDFS
Themes:
- Programming RDFS in Jena
Useful materials:
- Reasoners and rules engines: Jena inference support (cursory; sections 1 and 3 are relevant, but quite hard)
- 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)
Lecture 6: RDFS Plus
Themes:
- Programming basic OWL in Jena
Useful materials:
- Javadoc for
- OntModel (createOntologyModel)
- OntModelSpec (the different reasoners are outlined 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 and 8: Vocabularies
Not directly programming related.
Lecture 9 and 10: Linked Data Resources
Not directly programming related.
Lecture 11 and 12: Web APIs
Themes:
- JSON, JSON-LD in Java
Useful materials:
Lecture 13: OWL
Themes:
- Programming advanced OWL in Java
Useful materials:
- Jena Ontology API (we will most likely not go into this) (cursory)
Lecture 14: OWL DL
Themes:
- Programming with OWL-DL reasoners in Java
Useful materials:
- See lecture 13
Lecture 15: Ontology Development and Evaluation
Not directly programming related.
INFO216, UiB, 2017-2020, Andreas L. Opdahl (c)