About the group project
The mandatory group project in INFO216 counts 40% of the final grade. You must have submitted the group project by the deadline to be allowed to take the final exam (which counts the remaining 60% of the final grade).
- Week 7, February 15th-19th: Before this week, you must have formed a group and decided on one or more candidate theme. You will talk to lab leaders Markus and Sindre about the ideas during your regular lab sessions. After that, you will talk with Andreas about your ideas. If the group members have different lav times, it is up to you to find a time during one of the slots when you can all meet.
- Week 12, March 22th-26th: In this week, again during your regular lab sessions, you will present the status of your work to Andreas and to your lab leader. We expect you to have chosen and downloaded the datasets you will work with and show examples of running code, for example lifting, loading and running simple queries and updates.
- Week 17, April 26th-30th: During this week, about a week before the final submission deadline, you will prepare a last presentation of your project. This time we expect a near-final delivery.
(Andreas may not always be available during your lab slots, so sometimes we need to find other times.)
The project shall be carried out in groups of three and not more.
- Working individually / in pairs is possible, but not optimal
- Groups of more than three will never be accepted. Sorry.
The programming project shall develop a semantic KG-based (RDF, SPARQL, OWL...) dataset, application, or service. You can define your own task or choose a given assignment.
A good self-defined task will satisfy most of these requirements:
- Take at least one or two data sets (can be semantic or not)
- Read and/or lift them
- Use existing vocabularies
- Combine data sets
- Show and implement some use cases that, without using knowledge graphs, would be
- harder to realise,
- less flexible, or even
Here are some examples of self-defined tasks from earlier semesters:
- Make your own municipalities
- Map of party financing
- Reasoning over toll roads
- Social assessment network
- Tracking IT infrastructure
- Music concert assistant
- Quiz generator
- Live semantic flight data
- Semantic security service
- Recommender system based on knowledge graphs
- Semantic crawlers and spiders
- Presentation / visualisation of graphs
- Community knowledge graph enrichment
- Semantic query visualization
- Content generation/enrichment using different data sets
The given assignments are related to ongoing research projects in information science at the University of Bergen. They can be a bit challenging, but you will contribute to solving real research challenges. If make your project code open source, it is even possible we can use some of it in our projects, but this is not a requirement.
Here is a list of Given group assignments for Spring 2021.
Programming language, development and run-time platform is free of choice. It will be graded based on the produced code, effort, originality, and development process.
- Show that you can program with semantic technologies such as RDF, RDFS, SPARQL, etc.
- Use existing data sets (linked open data resources)
- Use existing vocabularies (and perhaps extend them)
- Simple presentation interface / dashboard
- Make the program run
- Shortcuts can be ok (some manual steps, artificial data)
- Progress throughout semester
The project will be carried by groups of up to 3 people. All group members have to be registered in the same lab group.
Some data sources
- Open semantic data sets: http://lod-cloud.net
- Vocabularies: http://lov.okfn.org/dataset/lov/
- Statistics and overviews: http://lod2.stat.gov.rs/lod2statworkbench
You will have an meeting with the course responsible to discuss your project idea. Then there will be two oral project presentations in front of the class in the lab, where you will receive feedback.
You can show your progress by using a PowerPoint and going over your idea, how the project has gone so far, explain what technologies and datasets you are using and perhaps show some working code.
- Your project should be submitted electronically as a Zip file or other standard compressed archive through Inspera (eksamen.uib.no) before the given deadline.
- The Zip file should contain a PDF file with your project report (max 2 pages of text, diagrams come in addition). The PDF file name should contain the exam numbers of everyone in the group (format: INFO216ProjectSpringYY_XXX_XXX.pdf), for example INFO216ProjectSpring20_108_116.pdf .
- The Zip file should also contain a folder with all your code, along with a README file. This README file should include instructions about: how to run your code and whether it requires additional packages or datasets before it can run. Do not include large semantic data sets like DBpedia in the Zip file, but you can include small example data sets to run the code on, if you want. The folder name should contain the exam numbers of everyone in the group (format: INFO216ProjectSpringYY_XXX_XXX/), for example INFO216ProjectSpring20_108_116/.
Previously, you were asked to submit the project code through GitHub, but we use Inspera instead because GitHub is not fully anonymous
You should comment the code lightly in-line. This does not mean one comment line for each code line but, e.g., one brief comment for each logical group of code lines.
The project report file should be anonymous, and contain the exam numbers of all group members, BOTH on the first page and in the file name (e.g., INFO216ProjectReport_108_116.pdf .) It must be in English (STRICT REQUIREMENT).
The length of the project report is 1500 words MAX (2 A4 pages with 11pt font and 2.5 cm margins). This is a HARD limit. The quality of your code and idea is more important than the quality of the report.
You should briefly explain the purpose of your system. Why have you made this? Why is it a good idea to do this using semantic technologies? What can you do now that wasn't possible before?
You should probably list the technologies/tools/standards/vocabularies you have used and explain briefly why you chose each of them. Did you consider alternatives? Why were the ones you chose better?
If you are reading/converting/lifting data from multiple sources and/or using existing tools in addition to your own program, you should probably include a flow chart or architecture sketch (which is different from a class diagram).
If your code is complex, you may include a class diagram of your system, such as a UML class diagram.
You should mention any particular problems you have had and/or things you want to do differently next time. You should describe the contributions each person in your group has made to the project.
If you want to briefly describe how to run the code you have submitted, you can do that separately in a README.TXT file.
Here are some Report Guidelines from an earlier year about what should be in your report, but take these as suggestions only - they are not strict requirements, in particular the mentioning of Git. By "TBOX Ontology Model" is meant the ontology/vocabulary you have developed or adapted. -->