builds
type: ObjectProperty
comment: represents the structure that builds a particular unit
domain: Structure
property disjoint with: trains
range: Class
  union of: Flying Vehicle
  union of: Ground Vehicle
  union of: Structure

canBeBuiltBy
type: ObjectProperty
comment: represents a building that can be built by a player
inverse of: canBuild

canBeTrainedBy
type: ObjectProperty
comment: represents whether a player can produce a unit
inverse of: canTrain
sub property of: topObjectProperty

canBuild
type: ObjectProperty
comment: represents that a player has the ability to build a specific structure
domain: Player
range: Structure Ability

canTrain
type: ObjectProperty
comment: represents a fighting unit that can be trained by a player
range: Fighting Unit Ability
domain: Player
sub property of: topObjectProperty

connectedTo
type: ObjectProperty
comment: expresses that a chokepoint connects to a region
domain: Chokepoint
range: Region

contains
type: ObjectProperty
comment: expresses that a region contains a unit
inverse of: isInRegion

containsUnitOf
type: ObjectProperty
comment: represents that a region contains a unit of a specific player
range: Player
domain: Region
inverse of: hasUnitIn

hasChokepoint
type: ObjectProperty
comment: states that a region contains a particular chokepiont
range: Chokepoint
domain: Region
inverse of: connectedTo

hasHumanCompetitor
type: ObjectProperty
comment: represents that a match has a particular human competitor
sub property of: topObjectProperty

hasPlayer
type: ObjectProperty
comment: represents a player in a match
range: Player
sub property of: topObjectProperty

hasStructure
type: ObjectProperty
type: InverseFunctionalProperty
comment: represents that a player owns a structure
domain: Player
range: Unit
equivalent property: hasUnit

hasUnit
type: ObjectProperty
comment: represents that a player owns a unit
domain: Player
range: Unit
inverse of: isOwnedBy

hasUnitIn
type: ObjectProperty
comment: represents that a player has a unit in a particular region
comment: http://trowl.eu/REL#NBox
domain: Player
range: Region

isOwnedBy
type: ObjectProperty
comment: shows ownership of a unit by a player

playedAs
type: ObjectProperty
comment: represents the real-world competitor that controls a player
range: Player

trains
type: ObjectProperty
comment: represents which structure is responsible for training a particular Unit
domain: Structure
range: Class
  union of: SCV
  union of: Soldier

unlocks
type: ObjectProperty
comment: represents the Unit that unlocks a given structure
domain: Structure
range: Unit

hasArmor
type: DatatypeProperty
comment: Represents the armor level of a unit.
domain: Unit
range: int

hasAttackDamage
type: DatatypeProperty
comment: Represents the amount of damage a unit can do in attacking.
domain: Fighting Unit
range: int

hasAttackRange
type: DatatypeProperty
comment: Shows the range of attack for a unit.
domain: Fighting Unit
range: int

hasBuildTime
type: DatatypeProperty
comment: Shows how long it takes to produce the unit.
domain: Unit
range: int

hasElapsedGameTime
type: DatatypeProperty
comment: represents the elapsed game time
range: dateTime

hasEnergy
type: DatatypeProperty
comment: Shows the energy level of a unit (if avaliable).
domain: Fighting Unit
range: int

hasGasCost
type: DatatypeProperty
comment: Shows how much gas is required to produce a unit.
domain: Unit
range: int

hasMaxNumOfPlayers
type: DatatypeProperty
comment: represents the max number of players in a map
range: int

hasMineralCost
type: DatatypeProperty
comment: Shows the cost of minerals required to buld the unit.
domain: Unit
range: int

hasName
type: DatatypeProperty
comment: Name of a map.
range: string

hasNumberOfPlayers
type: DatatypeProperty
comment: Total number of players in a match.
range: int

hasNumberOfRegions
type: DatatypeProperty
comment: Shows the total number of regions in a map.
range: int

hasRateOfFire
type: DatatypeProperty
comment: Shows the rate of fire for a unit.
domain: Fighting Unit
range: int

hasSize
type: DatatypeProperty
comment: Shows the total number of tilesets a unit takes up on a map.
domain: Unit
range: int

hasSpeed
type: DatatypeProperty
comment: Shows speed of unit.
domain: Fighting Unit
range: int

hasStartDate
type: DatatypeProperty
comment: represents the start date of the match
range: dateTime

hasTileSet
type: DatatypeProperty
comment: The theme tileset of a map.
range: string

hasTravelType
type: DatatypeProperty
comment: Represents the way a unit travels.
domain: Fighting Unit
range: string

hasWebsite
type: DatatypeProperty
comment: represents the website containing information about a match, if available
range: anyURI

hasWidth
type: DatatypeProperty
comment: Used to identfy the size of a chokepoint between regions on a map.
domain: Chokepoint
range: double

Academy
type: Class
subclass of: Basic Structure
comment: An acadmey is used to do research for upgrades.

Advanced Structure
type: Class
subclass of: Structure
comment: These structures can be produced after certain basic structures have been built.
disjoint union of: Armory
disjoint union of: Factory
disjoint union of: Science Facility
disjoint union of: Starport

Armory
type: Class
subclass of: Advanced Structure
comment: The armory is used to do advanced research.

Barracks
type: Class
subclass of: Basic Structure
comment: A barracks is used to produce soldiers.

Basic Structure
type: Class
subclass of: Structure
comment: Most basic structures are avaliable to be produced as soon as a game starts.

Battlecruiser
type: Class
subclass of: Flying Vehicle
comment: The battle cruiser is Tarrens most powerful unit and employs the most powerful weapons.

Bunker
type: Class
subclass of: Basic Structure
comment: A bunker is the main defense for a base from ground forces.

Chokepoint
type: Class
equivalent class: Class
  intersection of: Chokepoint
  intersection of: Restriction
    on property: connectedTo
    on class: Region
    qualified cardinality: 2
subclass of: Thing

Command Center
type: Class
subclass of: Basic Structure
comment: The command center is the heart of a base and is used to collect resources and build workers.

Contested Chokepoint
type: Class
subclass of: Chokepoint

ContestedRegion
type: Class
equivalent class: Restriction
  on property: containsUnitOf
  on class: Player
  qualified cardinality: 2
subclass of: KnownRegion
disjoint with: ControlledRegion
comment: http://trowl.eu/REL#NBox

Dropship
type: Class
subclass of: Flying Vehicle
comment: A dropship is used mainly to load and unload ground units to different parts of the map.

Engineering Bay
type: Class
subclass of: Basic Structure
comment: The bay can be used to research upgrades to soldiers attack abilities and armor.

Factory
type: Class
subclass of: Advanced Structure
comment: The factory is used to produce ground vehicles.

Fighting Unit
type: Class
subclass of: Unit
comment: A fighting unit is any unit which is not a structure (ie can move and attack).
disjoint union of: Flying Vehicle
disjoint union of: Ground Vehicle
disjoint union of: SCV
disjoint union of: Soldier

Fighting Unit Ability
type: Class
subclass of: Ability
comment: This class represents a fighting units ability to be produced

Firebat
type: Class
subclass of: Soldier
comment: A firebat can shot fire and is effective at close range.

Flying Vehicle
type: Class
subclass of: Fighting Unit
comment: Flying units are produced exclusively at a starport and can move around only by flying.
disjoint union of: Battlecruiser
disjoint union of: Dropship
disjoint union of: Science Vessel
disjoint union of: Valkyrie
disjoint union of: Wraith

Ghost
type: Class
subclass of: Soldier
comment: The ghost is like a sniper, effective at long range and also has a number of abilities such as turning invinsible.

Goliath
type: Class
subclass of: Ground Vehicle
comment: This unit is essentialy a walking robot which is effective in attacking flying units and ground units.

Ground Vehicle
type: Class
subclass of: Fighting Unit
comment: Ground units are produced only at a factory.
disjoint union of: Goliath
disjoint union of: Tank
disjoint union of: Vulture

Marine
type: Class
subclass of: Soldier
comment: The marine is the basic soldier but effective at attacking in large groups.

Medic
type: Class
subclass of: Soldier
comment: The medic can cause some damage to enemy units but is moslty good for healing units.

Missile Turret
type: Class
subclass of: Basic Structure
comment: Missle turrets are a bases main defense from air units.

NotUnderAttackUnit
type: Class
equivalent class: Class
  intersection of: Unit
  intersection of: Restriction
    on property: isBeingAttacked
    has value: false
subclass of: Unit
disjoint with: UnderAttackUnit

Player
type: Class
subclass of: Thing
comment: This class represents a player, whether he's lossing and winning and all his resources.

Refinery
type: Class
subclass of: Basic Structure
comment: The refinery is used to harvest gas.

Region
type: Class
subclass of: Thing
comment: A region represents an area on a map which is controlled by a player.
comment: http://trowl.eu/REL#NBox
disjoint union of: KnownRegion
disjoint union of: UnknownRegion

SCV
type: Class
subclass of: Fighting Unit
comment: Worker units or SCV are used mainly for building structures and harvesting minerals and gas.

Science Facility
type: Class
subclass of: Advanced Structure
comment: Science facility is used to do advance cabaility research.

Science Vessel
type: Class
subclass of: Flying Vehicle
comment: The science vessel has limited attack capability but can be used to apply force shields to other units to protect them.

Soldier
type: Class
subclass of: Fighting Unit
comment: Soldiers as the name implies are human units which walk around and are produced only at the barracks.
disjoint union of: Firebat
disjoint union of: Ghost
disjoint union of: Marine
disjoint union of: Medic

Starport
type: Class
subclass of: Advanced Structure
comment: A starport is used to produced flying units.

Structure
type: Class
subclass of: Unit
comment: All structures can be produced by a worker unit only.
disjoint union of: Academy
disjoint union of: Advanced Structure
disjoint union of: Barracks
disjoint union of: Bunker
disjoint union of: Command Center
disjoint union of: Engineering Bay
disjoint union of: Missile Turret
disjoint union of: Refinery
disjoint union of: Supply Depot

Structure Ability
type: Class
subclass of: Ability

Supply Depot
type: Class
subclass of: Basic Structure
comment: The role of a supply depot is mainly to increase the limit count of population.

Tank
type: Class
subclass of: Ground Vehicle
comment: The tank is the most powerful ground unit which also has the largest range of attack

UnderAttackUnit
type: Class
equivalent class: Class
  intersection of: Unit
  intersection of: Restriction
    on property: isBeingAttacked
    has value: true
subclass of: Unit

Unit
type: Class
subclass of: Thing
comment: A unit in the game is either a building a fighting unit.

Valkyrie
type: Class
subclass of: Flying Vehicle
comment: The valkyrie ship can not attack ground units but is highly effective in attacking other flying units.

Vulture
type: Class
subclass of: Ground Vehicle
comment: The vulture has lite armor and attack points but is the fastest unit Tarrens can build.

Wraith
type: Class
subclass of: Flying Vehicle
comment: The wrath is the main attack flying vehicle for Tarrens and can attak flying and ground units.

player0
type: NamedIndividual
type: Player
has player id: 0

player1
type: NamedIndividual
type: Player
has player id: 1