Difference between revisions of "About the programming project"
Revision as of 16:34, 16 January 2020
Here is some more information about the final submission of your programming projects at the end of the semester.
The programming project shall develop a semantic/linked data application. Development and run-time platform is free choice, as is programming language. 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
- 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 were impossible or harder or less flexible before
- Focus on maintainability, making it easy run over time
Examples of previous projects
- 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 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.
- Yor project final report should be submitted electronically as a PDF file through Inspera (eksamen.uib.no) before the given deadline.
- Your code has to be uploaded into a Git repository (either GitHub or GitLab), together with a README file. This README file should include instructions about: how to run your code and where to find the different components of your project/code. The link to your Git repository has to be included in the final report.
After the DEADLINE, neither the report nor the Git repository are allowed to be modified until the official final course grades were set.
The Git repository should contain your complete project, but do not include large semantic data sets like DBpedia. But you can include small example data sets to run the code on, if you want. You should include a file README in the root of the project directory to let us know what is needed before your code can be run, and how to run it, if it needs something special.
The PDF file name should contain the exam numbers of everyone in the group (format: INFO216ProjectSpringYY_XXX_XXX), for example INFO216ProjectSpring19_108_116.
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. We do not require full Javadoc. Your code has to be uploaded into a Git repository, together with a README file. This README file should include instructions about: how to run your code and where to find the different components of your project/code. The link to your Git repository has to be included in the final report.
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).
You should probably include a class diagram of your system.
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.
Check the guidelines to get more information about what should be in your report: Guidelines