Difference between revisions of "Lab: RDFS"

Line 20: Line 20:
 
Consider the following extensions to the task from lab 2:
 
Consider the following extensions to the task from lab 2:
 
"University of California, Berkeley and University of Valencia are both Universities.
 
"University of California, Berkeley and University of Valencia are both Universities.
All universities are higher education instituttions (HEIs). Only persons can graduate from a HEI. That a person has a degree in a subject means
+
All universities are higher education instituttions (HEIs). That a person has a degree in a subject means
that the person has expertise in that subject. Only persons can have expertise, and what they have expertise
+
that the person has expertise in that subject. Only persons can have an expertise, and what they have expertise
in is always a subject. Having a degree from a HEI means that you have also gradutating from that HEI. "
+
in is always a subject. Having a degree from a HEI means that you have also gradutated from that HEI. Only persons can graduate from a HEI."
  
 
Create and output the RDFS graph in RDFlib - if you can, try to build on
 
Create and output the RDFS graph in RDFlib - if you can, try to build on
Line 30: Line 30:
 
you have not asserted them explicitly:
 
you have not asserted them explicitly:
 
* that UCB and UV are HEIs
 
* that UCB and UV are HEIs
* that Cade and Emma have both graduated from some HEI
 
 
* that Cade and Emma both have expertises
 
* that Cade and Emma both have expertises
 
* that Cade and Emma are both persons
 
* that Cade and Emma are both persons
 
* that biology and chemistry are both subjects
 
* that biology and chemistry are both subjects
 +
* that Cade and Emma have both graduated from some HEI
 +
  
 
Rewrite some of your existing code to use rdfs:label in a triple and add an rdfs:comment to the same resource.
 
Rewrite some of your existing code to use rdfs:label in a triple and add an rdfs:comment to the same resource.

Revision as of 10:06, 28 February 2020

Lab 7: RDFS Programming with rdflib and owlurl

Topics

Basic RDFS graph programming in RDFlib. Entailments and axioms with owlrl.

Classes/Methods/Vocabularies

owlrl.RDFSClosure (RDFS_Semantics, closure, flush_stored_triples)

Vocabularies:

RDF(type)

RDFS (label, comment, subClassOf, subPropertyOf, domain, range)

Tasks

pip install owlurl

Consider the following extensions to the task from lab 2: "University of California, Berkeley and University of Valencia are both Universities. All universities are higher education instituttions (HEIs). That a person has a degree in a subject means that the person has expertise in that subject. Only persons can have an expertise, and what they have expertise in is always a subject. Having a degree from a HEI means that you have also gradutated from that HEI. Only persons can graduate from a HEI."

Create and output the RDFS graph in RDFlib - if you can, try to build on your example from lab 2!

Check that simple inference works - make sure that your graph contains triples like these, even if you have not asserted them explicitly:

  • that UCB and UV are HEIs
  • that Cade and Emma both have expertises
  • that Cade and Emma are both persons
  • that biology and chemistry are both subjects
  • that Cade and Emma have both graduated from some HEI


Rewrite some of your existing code to use rdfs:label in a triple and add an rdfs:comment to the same resource.

If you have more time...

Create a new RDFS graph that wraps an empty graph. This graph contains only RDFS axioms. Write it out in Turtle and check that you understand the meaning and purpose of each axiom.

Create an RDF (not RDFS) graph that contains all the triples in your first graph (the one with all the people and universities). Subtract all the triples in the axiom graph from the people/university graph. Write it out to see that you are left with only the asserted and entailed triples and that none of the axioms remain.


Useful Readings