Handed out14 November 2017
Deadline28 November 23:59
Max Length2000 words + ontology/formulas/queries/results
Contact personsRune Sætre and Jon Atle Gulla
Deliveryemail to satre@idi.ntnu.no AND jag@idi.ntnu.no

Exercise 1.

Build an RDF(S) ontology of your own interests and hobbies.
It may include sports, cultural interests, politics, and any other activity that you like to spend your time on. Make sure that the ontology captures taxonomic relations and describe commonalities and differences across your interests. Also try to model characteristic properties of each interest.
The ontology should not exceed 30 classes and 30 instances. The modeling language should be Turtle or a similar syntax. You can use any modeling software.

Exercise 2.
Describe in English the interests that you have modeled in Exercise 1. Every aspect of the ontology should be explained in the text.

Exercise 3.
Formulate two SPARQL queries that demonstrate how you can

Send the final answer (RDF-file and text document) by email to satre@idi.ntnu.no and jag@idi.ntnu.no by 2359 on November 28th.

Frequently Asked Questions (FAQ)

  1. Bør vi lenke til andre ontologier (f.eks. dbPedia)?
    Ja, gjerne, det heter jo tross alt Linked Data (wink)
  2. Hva slags editor foreslår du at vi bruker?
    Jeg har mest erfaring med Protegé… Den var bra nok sist jeg sjekket. Den er også blant de eldste.
  3. Skal vi levere inn en eller to filer?
    Selv om det ofte er lurt å dele taksonomien og instansene i to filer, så kan dere også godt legge alt i samme fil…
  4. Har dere noen forslag til verktøy som kan brukes, og ikke minst fungerer, til kjøring av SPARQL-queries?
    Ta en titt på Turtle- og SPARQL-presentasjonene igjen... De brukte for eksempel Twinkle.
    SPARQL-tabben i Protege er også bra...
  5. Når vi skal beskrive aspekter ved ontologien vår, er det da “nok” å beskrive hvilke klasser, properties og instanser vi har, og hva de er ment for?

  6. The differences and similarities should be among the different classes of interest or subclass of each interest?
    For example, if there are two classes of social activity and cooking, should I compare these two or compare the subclass of each of them within itself and not with the other type of activity? I think if I am modeling the hobbies, then the differences and similarities within a class should be discussed, am I right?
    I think you need do add some properties for all your classes in order to model the similarities and differences. The SPARQL-query for similarity would most probably return two classes of the same superclass, while "the most different interests"-query would probably come from different superclasses, right?
  7. Should we use the open or closed world assumption?
    This post could provide some useful insight: http://semanticweb.com/introduction-to-open-world-assumption-vs-closed-world-assumption_b33688
  8. Protege has OWL as its basis and even if you are choosing Turtle format, it's not having ".ttl" as the file extension, Is it okay or I should go for notepad ?
    Both ".owl" and ".ttl"  extension names are fine... And you can rename the file from owl to ".ttl" after you have saved it anyway, as long as the content is turtle,
  9. På Exercise 1 står det vi skal lage en RDFS ontologi, kan vi bruke OWL (prefix owl: i stedet for rdfs:) i denne ontologien? F.eks owl:differentFrom?
    Ja, det er helt greit å bruke litt fra OWL også... Det står til og med litt om det i pensum (2.1.2 omtrent).
  10. Jeg får ikke til å lenke min ontologi opp mot dbpedia. Jeg har f.eks en interesse "golf" som er en instans av sommeridrett, og ønsker å få lenket den opp til dbpedia, men får ikke til å gjøre dette via object propertyies til http://dbpedia.org/page/Golf. Har dere noen tips?
    Har du prøvd forslagene i 12-14 fra 2016 under?

More Q & A:

  1. Hvor står det om Turtle Syntax?
    1. https://www.w3.org/TR/owl2-primer/. Rull ned til rett før "kap. 2 What is OWL 2". Der kan du velge hvilke syntaks som vises på alle eksemplene på siden.
  2. Is it OK to use OWL?
    1. Not when it says explicitly that RDF(S) should be used.
  3. Its been a while since my last essay. Any thoughts or visions on how we should write the essay? What should it include and is there any examples on these kind of essays out there?
    1. Just answer all the questions/tasks one by one, and add your models etc. as an Appendix. We don't have any example essay to copy from, but on the other hand we don't expect it to look like a standard research paper either. Find your own style.
  4. Are we supposed to use Protégé, or create the ontology in turtle by hand? If both are allowed, what is recommended?
    1. I recommend Protege. You can find the SPARQL-query tab on "Window -> Tabs -> SPARQL Query"
  5. The second line in task 2: "Use SPARQL to count and list the songs that two artists share." - What if I don't have artists that share songs in my ontology?
    1. Then your SPARQL-query should return 0 and an empty list, until two artists that sing the same song are added.
  6. Task 3 says to recreate the ontology in DL, then point out the constructions in the DL, which are impossible in RDF(S). However, this doesn't make sense since the DL was created fromthe RDF(S) to begin with? Have I misinterpreted the question? Can you rephrase it?
    1. I found a straightforward explanation on StackOverflow: http://stackoverflow.com/questions/1740341/what-is-the-difference-between-rdf-and-owl
    2. Rephrase: Create the ontology from scratch (in OWL DL), then ...
  7. Is it okay to populate the ontology with two/three actual artists with actual songs and the rest with something as simple as "Artist 1 (Song1, Song2)" etc?
    1. I think it's OK, but I also think it's more interesting with slightly less generic names.
  8. How are we supposed to submit the rdfs, attach the file or put the code in the pdf we are sending?
    1. I think you can do both, but if the file is very big, it's better to just keep it as a separate attachment (or zip them together).
  9. Protege is using OWL for NamedIndividuals, Classes etc, has anyone figured out how to make it use RDF and RDFS only?
    (Because the same tags are available in RDFS and RDF).
  10. For Task 3, do you mean OWL DL or OWL 2 DL?
    1. I was thinking about OWL 2 DL.
  11. Hvordan tenker du/dere at eksamen i morgen blir lagt opp? Det er meningen av vi skal presentere essayet vi har skrevet?

    Får vi ha med hjelpemidler? Type notater eller selve essayet? Burde man lage en presentasjon?

    1. Det blir en presentasjon av essayet deres.
    2. Vi ønsker at alle tar med en utskrift av essayet sitt, men forventer ikke noen annen presentasjon enn muntlig og whiteboard.
  12. Regarding second part of Task 2, i cant seem to get any results querying DBpedia from Protege. Tips anyone?
    1. Workaround: Use Apache Jena Fuseki to run SPARQL queries. Only need to upload the data set files (.rdf / .ttl) to a local server. Explained in this video https://www.youtube.com/watch?v=JZp70uFsZS0 .

  13. Task 2: "How can you use SPARQL to find the most similar – as you define it – artist to a given artist." Which one is the correct interpretation, a or b?
    1. We are allowed to post process the result from SPARQL queries to find the most similar. E.g. we run multiple SPARQL queries and use the result from these to rank the most similar
    2. We only use one SPARQL query, and from this one query we find the most similar
      Answer: The goal is b - One SPARQL query
  14. SPARQL and DBpedia in Task 2: Does anyone know how you can makes queries to DBpedia? I have tried the workaround in 12. a. , but it does not seem to get any DBpedia endpoints. It works with importing the .ttl file, and querying directly to it, but only not with DBpedia. All suggestions are much appreciated!
    1. Use a sparql SERVICE statement to access the dbpedia endpoint (<http://dbpedia.org/sparql>).
    2. https://www.youtube.com/watch?v=12YebZvhf-w&t=40s This approach worked for me: Select  { where { service  <http://DBpedia....>{ select {where {  statements
  15. Does anyone know how to interpret "find the most similar artists ... artist of a given artist" in Task 2? Would a query that lists all the artists of the same genre be appropriate for this statement?