League of Legends Project / OE 2017 -- Additional Information

Add content from http://archive.tw.rpi.edu/web/Courses/Ontologies/2017/LeagueofLegends here...


Presentations:

- Assignment 12 Presentation: OE_12_LeagueOfLegends_Presentation.pptx
- Assignment 11 Presentation: OE_11_LeagueOfLegends_Presentation.pptx
- Assignment 8 Presentation: OE_8_LeagueOfLegends_Presentation.pptx
- Assignment 7 Presentation: OE_7_LeagueOfLegends_Presentation.pptx


Publications

De los Santos, Hannah and Maraviglia, Anders. "Developing a League of Legends Application for First-Time Players." RPI Technical Report, Ontology Engineering 2017.
Available in:
- Word format: "OE_13_LeagueOfLegends_Report.docx"
- PDF format: "OE_13_LeagueOfLegends_Report.pdf"


Related Work and References

Ontology Concept Source

Annotations and references for the League of Legends Ontology are derived from the following sources:
League of Legends Champion Guides
The League of Legends Wiki
Legaue of Legends Champion Guide
The first two resources were created and maintained by the League of Legends gaming community, while the last was created and maintained by Riot, Inc.

Planning, Knowledge Representation, and Video Games

For previous work on planning and knowledge representation in videogames, the following sources may be examined. Referred by Zev Battad.

Battad, Zev. "Semantically Enabled AI Planning over Entity Interactions in Large Virtual Environments." RPI Technical Report, Ontology Engineering 2016. Web. 3 May 2017. https://tw.rpi.edu/web/Courses/Ontologies/2016/projects/skyrim/publications

Bernava, Carlo, Fiumara, Giacomo, Maggiorini, Dario, Provetti, Alessandro, Ripamonti, Laura. “RDF annotation of Second Life objects: Knowledge Representation meets Social Virtual reality.” SI: Social Networks and Multiagent Systems. March 2014. Web. 10 Feb. 2016. https://arxiv.org/pdf/1504.02358.pdf

Orkin, Jeff. “Three States and a Plan: The A.I. of F.E.A.R.” Proc. Game Developers Conference, San Jose, California. 2006. Web. 13 May 2016. http://alumni.media.mit.edu/~jorkin/gdc2006_orkin_jeff_fear.pdf


Use Case

Here you may find the most recent version of the use case for the League of Legends Ontology project. Available in:
- .docx format: "OE_13_LeagueOfLegends_UseCase.docx"
- .pdf format: "OE_13_LeagueOfLegends_UseCase.pdf"
 


 

Conceptual Model: Main and Individuals Ontologies

The conceptual model for this project are divided between two ontologies: the main ontology, from which the main class structure is held, and the individuals ontology, which contains actual instances of classes stated within the main ontology. Note that, currently, not all individuals in League of Legends are encoded in the Individuals Ontology. We use a small subset of individuals to represent the items and champions are actually used within the game, in order to demonstrate proficiency for use.

All diagrams were created using MagicDraw, and each file for the corresponding ontology may downloaded with the following:
- Main Ontology: "LeagueOfLegends.mdzip"
- Individuals Ontology: "LeagueOfLegends-Ind.mdzip"

High-Level Overview: Main Ontology

This high-level diagram encompasses the main classes and subclasses of the ontology: Champions and Items, the most important building blocks towards making inferences regarding teams and builds. This overall diagram illustrates these facilitating relations for these inferences, including properties and restrictions. Highlights for important relations within the Champion class include PartyInRole and resulting subclasses, with hasLikelhood and hasDamageTypeString properties. Highlights for important relations within the Item class include its relation between Champion, as well as its ability to have 4 different strength tiers, encompassed by the hasTier property and the cardinality restrictions.

Main Ontology: Champions

The Champion class provides the basis for team-based inferences, containing several properties and subclasses. Any given instance of the Champion class is related to the Statistic class by properties hasGoalStatistic and hasBaseStatistic, the former indicating which statistics should be prioritized and the latter indicating statistics given at the beginning of the game. Champions also have a subclass PartyInRole, which has the properties of hasLikelihood and hasDamageTypeString. These properties, particularly the hasLikelihood property to indicate likelihood of a certain role, influence the type of role a champion has within a team. These are indicated by the subclasses of PartyInRole, which detail the 6 types of classes a champion can be. The Champion class then relates to the overall Team class by the Team’s hasChampion property, allowing for larger inferences and suggestions to be made.

Main Ontology: Items

For the architecture of item build inferences, the Item class’s subclasses and properties represent all the information needed to make decisions. Any given item may have a type that defines the statistic fortified (magic, defense, etc.), represented by appropriate subclasses. These items may also be items obtained at the beginning of the game or be consumable, also represented by the appropriate subclasses. Each item also has descriptors represented by properties -- hasGoldCost, hasItemIdentifier, hasStatistic, nextItemInBuild, and buildsInto, which are all important in deciding item builds. The property describing the amount of gold cost is of particular advantage to making inferences with respect to the amount of gold a champion has. Statistics also allow for prioritization of items over others, allowing the property hasStatistic to relate to the ItemSpecificStatistic class. Items also have properties relating to their tiers, which indicate the amount of advantage a property confers.

Main Ontology: Team

The Team class, which has building blocks from the Champion class, s the driving result for team-based inferences. Team class by the Team’s hasChampion property, which allows for a given champion to influence the team damage type, as given by the property hasTeamDamageType. This damage type is influential in regards to building teams and choosing roles as a response to enemy teams.

Main Ontology: Statistics

The Statistics class encompasses the various statistics needed to influence choices, both in regards to champion role inferences as well as item build inferences. Thus, the overall LeagueOfLegendsStatistic class has a large number of interconnected subclasses in order to encompass the statistics involved within the game. The LeagueOfLegendsStatistic class itself breaks down into each of the types of statistics depending on the class affected, including champion, items, ability, etc. These in turn have 21 respective subclasses of more specific statistics, such as attack speed or life steal. More description on this is provided in the next diagram.

The LeagueOfLegendsStatistics class itself is based in several classes from outside ontologies: StatisticalMeasure, Expression, and QuantityValue. These classes allow for the LeagueOfLegendsStatistic to have properties related to statistics, such as numeric values and rates. Properties also related to LeagueOfLegendsStatistics class include hasBaseStatisticValue, hasGoalStatisticsValue, and hasCurrentStatisticValue, which allow for keeping track of a champion's statistic throughout the game.

Main Ontology: Attack Speed Statistics

This diagram describes the relations of one of the furthest subclasses of the LeagueOfLegendsStatistic main class, AttackSpeed. This class is clearly a subclass of three other classes: ChampionStatistics, MiscellaneousMovementStatistic, and OffensiveValueStatistic. This indicates its necessity to these higher-class statistics. Its restrictions also are indicative of its value as a statistic -- it must have a base statistic value, with this value going from 0 to 250.

Individuals Ontology: Team Instance

To test the main ontology's correctness, an individuals ontology was created with five example champion individuals who were set as being part of one example team individual. This example team instance is illustrated below, with the example TeamOne having five different champions, indicated by the property hasChampion. The team and champion individuals were created to test inference of each champion's role based on likelihoods that they will play a role in a given game.

Individuals Ontology: Champion Instance

Within the team, each champion was exemplified; the diagram below illustrates Azir's individual instance. Of most importance in determining in his specific role and therefore the role within his team is the likelihoods, illustrated for both the role types Mage and Marksman. In this example, it is clear that he has much higher likelihood of being a Mage. These role likelihoods are governed by the role property of PartyInRole, which allows for percentages between 0 and 100.

Individuals Ontology: Items Instance

Roughly 30 item individuals were created with relations organized in such a way as to produce an example "item build tree" for one of the champion individuals in the illustrated team, Jinx. These item individuals were created to test inferring which items a user should buy at any point in an ongoing game, given the items the user currently has and the user's current gold.

The diagram below illustrates a subset of this "item build tree" for Jinx, with the NoneItem representing the point in time where the champion has no items. The next facts illustrate the point that the next items in the build may be one of 4 choices: DoransBlade, HealthPotion, HealthPotion2, and WardingTotem. These properties are indicated by the buildsInto and nextItemInBuild Item properties, which continue throughout the rest of the tree.

Each of these item instances also have item identifiers, providing uniqueness, and gold cost, which influence what item should be bought in the tree. The latter is a large consideration when regarding the player's current gold amount.


Ontologies

The following are the most recently updated versions of the ontologies for League of Legends. Most recent update: May 7, 2017.
- Main Ontology: "OE_13_LeagueOfLegends.rdf"
- Individuals Ontology: "OE_13_LeagueOfLegends-Ind.rdf"

Latest versions of the ontologies are also importable directly in Protege from the following URI's:
Main Ontology
Individuals Ontology


Term List

Here you may find the most recent term list for this project. Last updated: 5/3/17. Download in:
- .xlsx format: "OE_13_LeagueOfLegends_CuratedTermList.xlsx"

Note: this term list is not exhaustive. There may be terms in the ontology that do not appear in the term list. This term list is representative of a set of important concepts encoded in the ontology, and was used during the ontology's development. All terms in the ontology, however, have skos:definition annotations at the least.