It is the end of week 3 of the Spring Semester, and the team will be meeting for the first time since winter break on Wednesday 2/4. Over break, I finished my ontology.
I started by looking back at Schema.org's CreativeWork type in order to decide on which more specific type I wanted to base my VideoGame type. To my surprise, under the Game type I discovered a VideoGame type. Looking through the details, it seemed to me that it would work very well for my purposes. I proceeded to download Schema.org's RDF/XML format of their ontology; once I imported it into Protégé (our desktop ontology editor), I was dismayed to discover that the download had not been updated with the Game addition, let alone the VideoGame addition. I proceeded to visit the provided open source scrapers, but was unable to scrape because the scrapers are out of date as well (the HTML format of Schema.org has changed since the most recent scraper implementation). Luckily, I was able to find an alternative HTML format of Schema.org as well as an automatic Schema to RDF/XML converter. Finally, I was able to upload this ontology into Protégé and found it to be updated with VideoGame:
I started by looking back at Schema.org's CreativeWork type in order to decide on which more specific type I wanted to base my VideoGame type. To my surprise, under the Game type I discovered a VideoGame type. Looking through the details, it seemed to me that it would work very well for my purposes. I proceeded to download Schema.org's RDF/XML format of their ontology; once I imported it into Protégé (our desktop ontology editor), I was dismayed to discover that the download had not been updated with the Game addition, let alone the VideoGame addition. I proceeded to visit the provided open source scrapers, but was unable to scrape because the scrapers are out of date as well (the HTML format of Schema.org has changed since the most recent scraper implementation). Luckily, I was able to find an alternative HTML format of Schema.org as well as an automatic Schema to RDF/XML converter. Finally, I was able to upload this ontology into Protégé and found it to be updated with VideoGame:
At this point I broke from Schema's ontology for several reasons:
Thus, I decided to maintain Schema.org's overall hierarchy for both the VideoGame entity (displayed above) and for other entities, like DataType and Thing. I obtained several pages of data from TheGamesDB.net's API; this was the database that I found most easy to use when I was researching databases. Here is a screen shot of what TheGamesDB.net will return when prompted for details for the Playstation 4 game, Destiny:
- I could not seem to find the properties listed under the VideoGame type. I think this is because of translation issues between Schema and RDF/XML.
- I realized that the Schema version of properties doesn't really align with the OWL version of properties. For example, Genre is listed as a Schema property of VideoGame; in OWL, Genre is of type Text and would be connected to VideoGame using the properties has_Genre and is_Genre_of.
- Whatever database I end up pulling from will have a set amount of properties. It seems a little like overkill to include a bunch of properties I'm not going to use.
Thus, I decided to maintain Schema.org's overall hierarchy for both the VideoGame entity (displayed above) and for other entities, like DataType and Thing. I obtained several pages of data from TheGamesDB.net's API; this was the database that I found most easy to use when I was researching databases. Here is a screen shot of what TheGamesDB.net will return when prompted for details for the Playstation 4 game, Destiny:
I remember much of the data associated with video games to be displayed very similarly for the other database I was looking into, and I can always change or supplement my data later. Taking all of the associative data from TheGamesDB.net's API, the result was the following ontology:
On the left side, we have the DataType entity, which for the most part aligns with Schema.org's DataType. Here is a close up:
And on the right side we have the Thing entity. Close up:
I am not completely finished. I need to add all of the possible Genre types, Platform types, etc, as well as place limits on things like range of ID values. These are all small additions, however, and I'm confident that I will be able to adapt as I go on. As per OWL's property specification, I have two properties: has_Property and is_Property_Of. This was my compromise between Schema and OWL notation. Again, if this needs to change later that shouldn't be too difficult. Here is the .owl file for my ontology:
videogame.owl |
I look forward to building my web application and incorporating the use of semantic technologies for big data integration. I am also excited to see what my colleagues have accomplished on each of their respective projects.