Semantic Web Technologies
Lecture by Axel Polleres.
Details and course material (such as slides) will be provided on this Web page, once the course has started. For the moment, please refer to the information page at TISS.
Course Content/Material
- 15/04/2013 Lecture 0 (PDF)
- 22/04/2013 Lecture 1: Overview (PDF): Overview, example queries from the lecture are to be found in the folder ../SemWebTech_2012/testdata/
- 03/05/2013 Lecture 2: RDF, RDFS, & OWL Formal Semantics -- Part 1 (PDF)
- 06/05/2013 Lecture 3: RDF, RDFS, & OWL Formal Semantics -- Part 2 (PDF)
- 13/05/2013 Lecture 4: SPARQL Formal Semantics -- SPARQL 1.0 (PDF)
- 17/05/2013 Lecture 5: SPARQL Formal Semantics -- SPARQL 1.1 (PDF)
- 03/06/2013 Lecture 6: OWL2 (in a nutshell) & OWL Reasoning for Linked Data (PDF)
- 10/06/2013 Lecture 7: Wrap-up, Questions & Answers
Lecture Times and Venues
Please find details on the time and location of forthcoming lectures at TISS. ATTENTION: Please check before the lecture, the lecture rooms might change!
Asssignments
Assignment 1
Deadline for the assignment is 1 May 2013 (send your results to me per email to: axel.polleres[at]wu.ac.at)
- Create your own FOAF file. You can use a generator tool such as FOAF-a-Matic to generate a skeleton.
- Convert the FOAF file to Turtle syntax (e.g. using rapper) and validate it using an RDF validator,
e.g. http://www.w3.org/RDF/Validator/, [http://www.rdfabout.com/demo/validator/]
- Make sure to give yourself an own unique identifier (URI)
- Add some custom triples (not auto-generated) to that FOAF-file;
use some Turtle shortcuts, e.g. ";", ",".
- Link to some of your friends' FOAF files, e.g. other people in the course, by using foaf:knows and rdfs:seeAlso. You can also link to my foaf-file, and find examples of such links there.
- Again, validate your file and convert it back to RDF/XML.
- Publish a link to your FOAF file on your Webpage and send me the link per email (to: axel.polleres[at]siemens.com); if you don't have a Web page, find a public host, or send me only the file (link to the file is preferred).
- Go to the SPARQL interface of DBLP at http://dblp.l3s.de/d2r/snorql/. Run the following example query:
PREFIX dc: <http://purl.org/dc/elements/1.1/>
SELECT ?D ?T
WHERE {?D dc:title ?T; dc:creator <http://dblp.l3s.de/d2r/resource/authors/Thomas_Eiter>}
and modify it to return all the documents that were authored by Tim Berners-Lee.
- Try more modifications and come up with at least two own more interesting SPARQL queries on DBLP data or using some other SPARQL endpoint, such as for instance
DBpedia: particularly, try the query on slide 28 of the lecture slides
Hint: other RDF format converters include e.g. Any23 or RDF2RDF (not tested, but might be easier to use for some of you, as it's in Java).
Also, one of the online RDF validators mentioned can do some simple conversions, see the following blogpost.
Assignment 2
Deadline for the assignment is 15 May 2013 (send your results to me per email to: axel.polleres[at]siemens.com, use subject: "Semantic Web Technologies: Assignment 2")
-
Is your FOAF-file lean?
-
If not, which triples can you remove to make it lean?
-
If yes, which triples could you add to make it non-lean?
-
Which additional triples are entailed by your FOAF file under RDF entailment? (Give 3 triples as example).
-
Which additional triples are entailed by your FOAF file
in combination with the FOAF ontology
under RDFS entailment? Give 3 (non-axiomatic) triples as example.
-
Which additional triples are entailed by your FOAF file
in combination with the FOAF ontology
under D-entailment using the datatype map that includes rdf:XMLLiteral, xsd:integer, xsd:decimal, and xsd:string? (Give 3 triples as example; if no further triples are entailed under this entailment regime add some triple(s) which use datatype literals) .
- Give some triples which would make your FOAF file D-inconsistent.
-
Write down statement (vii) from Unit3, slide 41 in Turtle Syntax.
- Write your own ontology in RDF-Turtle-serialized OWL axioms... Be creative! Add your ontology to your FOAF file (and make sure it still remains valid RDF). Your ontology should allow some useful inferences from your FOAF file. Give 3 inferred triples as example.
- Give some triples which would make your FOAF file OWL-inconsistent.
Assignment 3
Deadline for the assignment is 31 May 2013 (send your results to me per email to: axel.polleres[at]siemens.com, use subject: "Semantic Web Technologies: Assignment 3")
Please also let me know your chosen presentation topic for the final presentations by 31 May 2013!
- SPARQL1.0
-
Datasets in SPARQL queries: Take your own and at least one FOAF file
of your colleagues (or, alternatively/additionally you can also use
my FOAF file) and
write SPARQL queries over the Dataset created combining these FOAF
files (using FROM or FROM NAMED clauses) which answer the following questions:
- Which friends (foaf:knows) to the owners of these foaf files have in common?
- Which persons are only friends of yours but not mentioned as friends by any of the other FOAF files?
You can, for instance, use ARQ to test your queries.
-
Querying DBPedia: Answer the following questions using DBpedia's SPARQL endpoint:
-
Cities (http://dbpedia.org/ontology/PopulatedPlace) in Austria the name of which starts with the string "Ober"
-
Come up with an own query in DBPedia that produces duplicates in its results and explain in your own words why it does produce duplicates.
-
Come up with an own query in DBPedia that produces unbound values for some variables in some of its results in and explain in your own words why there are unbound values.
- SPARQL1.1
-
Write a query that works on the DBPedia SPARQL endpoint (http://dbpedia.org/snorql/), which returns the population density
(property http://dbpedia.org/ontology/populationDensity) for
European capital cities (members of the class http://dbpedia.org/class/yago/CapitalsInEurope). In case http://dbpedia.org/ontology/populationDensity is not declared, the query should attempt instead (OPTIONAL) to compute (BIND) the population density from total population and area (properties http://dbpedia.org/ontology/populationTotal and http://dbpedia.org/ontology/areaTotal )... Do you get a complete answer? Are there other properties on DBPedia you could use instead?
-
Write an RDF file and a SPARQL query which uses aggregates where
it makes a difference whether agg(?V) or agg(DISTINCT ?V) is used.
-
Write a query using property paths that lists all the ancestors of http://dbpedia.org/resource/Marie_Antoinette
Tip: use property paths and the properties http://dbpedia.org/property/mother and http://dbpedia.org/property/father.
Additionally, provide another interesting genealogy query (or other useful query using property paths) you could think of.