The Football Common Data Format (CDF) Ontology
type: Ontology
contributor: Gregor Kaefer
contributor: Matthias Kempe
created: 2025-07-31
creator: Fajar J. Ekaputra
description: An ontology serialization of the Football Common Data Format (CDF). Currently in alpha version, focusing on Match Sheet, Event, and Match Metadata.
license: https://creativecommons.org/licenses/by/4.0
modified: 2025-11-01
preferred namespace prefix: fcdf
preferred namespace uri: https://w3id.org/football-cdf/core#
version info: 1.0.0-alpha-2

assist_id
type: ObjectProperty
domain: Goal
range: Player
comment: The player who provided the assist for the goal.

competition
type: ObjectProperty
domain: Match
range: Competition
comment: The competition in which the match is played.

events
type: ObjectProperty
domain: Match
range: Event
comment: The events that occur during the match.

event_cards
type: ObjectProperty
sub property of: events
domain: Match
range: Card
comment: The card events that occur during the match.

event_goals
type: ObjectProperty
sub property of: events
domain: Match
range: Goal
comment: The goal events that occur during the match.

event_substitutions
type: ObjectProperty
sub property of: events
domain: Match
range: Subtitution
comment: The substitution events that occur during the match.

match_result
type: ObjectProperty
domain: Match
range: Match Result
comment: The result of the match.

match_status
type: ObjectProperty
domain: Match
range: Match Status
comment: The status of the match.

video_metadata
type: ObjectProperty
domain: Match
range: metadata
comment: Metadata related to the match video.

out_player_id
type: ObjectProperty
domain: Subtitution
range: Player
comment: The player who is substituted out.

player_id
type: ObjectProperty
domain: Event
range: Player
comment: The player associated with the event.

players
type: ObjectProperty
domain: Team
range: Player
comment: The players that are part of the team.

receiver_id
type: ObjectProperty
domain: Pass
range: Player
comment: The player who received the pass.

referee
type: ObjectProperty
domain: Match
range: Referee
comment: The referee officiating the match.

related_event_ids
type: ObjectProperty
domain: Event
range: Event
comment: Unique identifier(s) of the events related to the action, or pass and associated receival event. Leave null if no related events exist.

season
type: ObjectProperty
domain: Match
range: Season
comment: The season during which the match takes place.

team_id
type: ObjectProperty
range: Team
comment: The team associated with an event or player.

team_away
type: ObjectProperty
domain: Match
range: Team
comment: The away team participating in the match.

team_home
type: ObjectProperty
domain: Match
range: Team
comment: The home team participating in the match.

body_part
type: DatatypeProperty
domain: Event
range: string
comment: Denotes the body part used by player_id which can take on the values: left_foot, right_foot, head, or other

card_type
type: DatatypeProperty
domain: Card
range: string
comment: 'yellow', 'red', 'second_yellow'

Collection_Timing
type: DatatypeProperty
domain: metadata
range: dateTime
comment: The date and time when the data was collected.

event_period
type: DatatypeProperty
domain: Event
range: string
comment: 'first_half', 'second_half', 'first_half_extratime', 'second_half_extratime', 'shootout'

fps
type: DatatypeProperty
domain: metadata
range: integer
comment: The frame rate of the video.

has_extratime
type: DatatypeProperty
domain: Match Status
range: boolean
comment: Indicates if the match has gone into extra time.

has_played
type: DatatypeProperty
domain: Player
range: boolean
comment: Indicates if the player has played in the match.

has_shootout
type: DatatypeProperty
domain: Match Status
range: boolean
comment: Indicates if the match has gone into a shootout.

id
type: DatatypeProperty
range: string
comment: A unique identifier for the entity.

is_neutral
type: DatatypeProperty
domain: Match Status
range: boolean
comment: Indicates if the match is played on neutral ground.

is_own_goal
type: DatatypeProperty
domain: Goal
range: boolean
comment: Indicates if the goal was an own goal.

is_penalty
type: DatatypeProperty
domain: Goal
range: boolean
comment: Indicates if the goal was scored from a penalty kick.

is_starter
type: DatatypeProperty
domain: Player
range: boolean
comment: Indicates if the player is in the starting lineup.

jersey_number
type: DatatypeProperty
domain: Player
range: integer
comment: The jersey number of the player.

Kickoff Time
type: DatatypeProperty
domain: Match
range: dateTime
comment: The date and time when the match starts.

misc_outcome_type
type: DatatypeProperty
sub property of: outcome_type
domain: Miscellaneous Event
range: string
comment: 'successful', 'unsuccessful'

misc_type
type: DatatypeProperty
sub property of: sub_type
domain: Miscellaneous Event
range: string
comment: 'other_ball_action', 'chance_without_shot', 'tackle'

name
type: DatatypeProperty
range: string
comment: The name of the entity.

out_time
type: DatatypeProperty
domain: Subtitution
range: dateTime
comment: The date and time when the player is substituted out.

outcome_type
type: DatatypeProperty
domain: Event
range: string
comment: Detailed event outcome options: shot (successful, saved, blocked, wide, woodwork, own_goal); pass (successful, out_of_play, intercepted); referee (start, end, injury, yellow_card, red_card, second_yellow_card); misc (successful, unsuccessful)

pass_outcome_type
type: DatatypeProperty
sub property of: outcome_type
domain: Pass
range: string
comment: 'successful', 'out_of_play', 'intercepted',

pass_type
type: DatatypeProperty
sub property of: sub_type
domain: Shot
range: string
comment: 'None', 'throw_in', 'free_kick', 'corner_kick', 'goal_kick', 'kick_off'

receiver_time
type: DatatypeProperty
domain: Pass
range: dateTime
comment: The date and time when the pass was received.

result_away
type: DatatypeProperty
domain: Match Result
range: integer
comment: The number of goals scored by the away team.

result_home
type: DatatypeProperty
domain: Match Result
range: integer
comment: The number of goals scored by the home team.

result_period
type: DatatypeProperty
domain: Match Result
range: string
comment: 'final', 'first_half', 'second_half', 'first_half_extratime', 'second_half_extratime', 'shootout'

shot_outcome_type
type: DatatypeProperty
sub property of: outcome_type
domain: Shot
range: string
comment: 'successful', 'saved', 'blocked', 'wide', 'woodwork', 'own_goal',

shot_type
type: DatatypeProperty
sub property of: sub_type
domain: Shot
range: string
comment: 'None', 'penalty_kick', 'free_kick', 'corner_kick',

sub_type
type: DatatypeProperty
domain: Event
range: string
comment: Name of the event subtype, which can be for shot (None, penalty_kick, free_kick, corner_kick); pass (None, throw_in, free_kick, corner_kick, goal_kick, kick_off); referee (final_whistle, foul, caution, offside, substitution, player_on, player_off); misc (other_ball_action, chance_without_shot, tackle)

time
type: DatatypeProperty
domain: Event
range: dateTime
comment: The date and time when the event occurs.

type
type: DatatypeProperty
domain: Event
range: string
comment: 'shot', 'substitution', 'card', 'pass', 'shootout'

vendor
type: DatatypeProperty
domain: metadata
range: string
comment: The vendor providing the data.

version
type: DatatypeProperty
domain: metadata
range: string
comment: The version of the metadata.

whistle_outcome_type
type: DatatypeProperty
domain: Whistle
range: string
comment: 'start', 'end', 'injury', 'yellow_card', 'red_card', 'second_yellow_card'

whistle_type
type: DatatypeProperty
sub property of: sub_type
domain: Whistle
range: string
comment: 'final_whistle', 'foul', 'caution', 'offside', 'substitution', 'player_on', 'player_off'

x
type: DatatypeProperty
domain: Event
range: float
comment: The x-coordinate of the event on the pitch.

x_end
type: DatatypeProperty
domain: Event
range: float
comment: The ending x-coordinate of the event on the pitch.

y
type: DatatypeProperty
domain: Event
range: float
comment: The x-coordinate of the event on the pitch.

y_end
type: DatatypeProperty
domain: Event
range: float
comment: The ending y-coordinate of the event on the pitch.

Card
type: Class
subclass of: Whistle
comment: A card event that occurs during the match.

Competition
type: Class
comment: The competition in which the match is played.

Event
type: Class
comment: An event that occurs during the match.

Goal
type: Class
subclass of: Shot
comment: A goal event that occurs during the match.

Match
type: Class
comment: A football (soccer) match between two teams.

Match Result
type: Class
comment: The result of the match.

Match Status
type: Class
comment: The status of the match.

metadata
type: Class
comment: Metadata information related to the match video.

Miscellaneous Event
type: Class
subclass of: Event
comment: A miscellaneous event that occurs during the match.

Pass
type: Class
subclass of: Event
comment: A pass event that occurs during the match.

Player
type: Class
comment: A football (soccer) player participating in the match.

Referee
type: Class
comment: The referee officiating the match.

Season
type: Class
comment: The season during which the match takes place.

Shot
type: Class
subclass of: Event
comment: A shot event that occurs during the match.

Subtitution
type: Class
subclass of: Whistle
comment: A substitution event that occurs during the match.

Team
type: Class
comment: A football (soccer) team participating in the match.

Vendor
type: Class
comment: The vendor providing the data.

Whistle
type: Class
subclass of: Event
comment: A referee event that occurs during the match.