CO7216 Semantic Web  
Coursework 3 
Programming in Jena and OWL API  
Important Dates:  
Handed out: 17-March-2020 
Deadline: 30-April-2020 at 17:00 BST 
 This coursework counts as 20% of your final mark. 
 This coursework is an individual assignment, not based on group work.  
 Please read guidelines on plagiarism on  
https://www2.le.ac.uk/offices/sas2/assessments/plagiarism/penalties 
 This  coursework requires  knowledge of  RDFS, SPARQL, Java,  Apache Jena and OWL 
API.  
 Please submit a signed cover sheet electronically to Blackboard.  
Instructions: 
 You need to use the same domain as in CW1/CW2.  
 Make sure  that  you  understand  “what  is  expected”  in  this  assignment,  well  before  the 
deadline.  
 Setup Instructions: 
o Task 2: create a Java Project, download and import OntologyDataImporter.java 
from Blackboard.  Use Maven (or  Gradle)  to  download all  necessary dependency 
libraries.  
Note:  Please  refer  to  the  tutorial  on  Blackboard  (“Programming  the  Semantic 
Web”) for more detail. 
Tasks: 
The aims  of  this  coursework is  to  develop  a  data  importer  that  access  various  triplestores  via 
SPARQL endpoints, and use the data collected to populate an OWL ontology that you created in 
CW2. 
Part 1   
Create  a  “lightweight”  version of  an  OWL2 ontology in  your  chosen domain  – This  could  be 
derived from the ontology you created for CW2, or you may create a new one from scratch. Please 
make sure  that  you  have addressed  any issues  in  the feedback to  CW1/2.  This  ontology must 
contain  at  least  ten  core  classes  and  twenty  core  DataType  and  Object  properties.  Use 
HermiT/FaCT++ reasoner to make sure the ontology is consistent. 
[25 Marks] 
Part 2   
Use Protégé OWL code generator to generate Java templates from the ontology created in Task 1 
(Please refer to “Programming the Semantic Web” on Blackboard). Complete the missing methods 
in OntologyaImportor.java, and use generated classes to populate the ontology.  
Your program should be able to:  
 Search online triplestores via SPARQL endpoints, including, but not limited to some of the 
endpoints listed below: 
 DBpedia https://dbpedia.org/sparql 
 Office for National Statistics http://statistics.data.gov.uk/sparql 
 Companies House http://business.data.gov.uk/companies/app/explore/sparql.html 
 W3C SPARQL endpoints https://www.w3.org/wiki/SparqlEndpoints 
 WU endpoints http://sparqles.ai.wu.ac.at/availability 
(Note: add new classes to your ontology if necessary) 
 Use  the  data  obtained  from the  previous  step  to  populate  your  ontology  (e.g.  creating 
instances, assigning property values and establishing relationships). 
[40 Marks] 
Part 3   
Write  a  short  description  (approximately  200  words)  about  your  domain  in  an  HTML  page 
(about_us.html), and then annotate the content of this webpage in RDFa, using the ontology 
created in Task 1, together with other vocabularies, including (but not limited to):  
 FOAF: http://xmlns.com/foaf/spec/ 
 Dublin Core: http://www.dublincore.org/specifications/dublin-core/dcmi-terms/ 
Hint: You may use this RDFa tool for editing http://rdfa.info/play/ 
[15 Marks] 
Part 4 
Develop a simple web application that allows users to query your OWL file.  The web interface: 
 Should use ontology-based repository as the backend (e.g. OWL files or RDF stores, not 
SQL or JSON database) 
 Should provide an interface that allows users to answer at least two competency questions 
provided in CW1. 
Note:  Task 4 may be implemented in any programming languages (e.g., ASP.NET, Python, PHP 
etc.). Although it might be necessary to expose some functions as REST services, if OWL API is 
not available in the language you chose. [see Appendix 1] 
[20 Marks] 
Submission 
 Question 1: Save the ontology as *.owl. 
 Question 2:  OntologyDataImporter.java and any other files, including all auto- 
generated java classes. 
 Question 3: Write the answer in Answers.pdf. 
 Question 4: Submit the entire web application project, you might include a note describing 
how to run your application. 
Compress all files in a single zip. The zip file should be named CO7216_CW3_your_email_id.zip  
(e.g. CO7216_CW3_abc123.zip). Your submission should also include a completed coursework  
plagiarism coversheet (print and signed PDF or image). You need to submit the zip file via  
Blackboard and you are allowed to re-submit as many times as you like before the deadline. Marks  
for any coursework which does not have the accompanying cover sheet will be withheld till you  
provide one.