SportsML 1.8: What's New in this Release

notes on backwards compatibility

The vast majority of all changes in SportsML 1.8 are fully backwards-compatible.

The only exceptions are as follows, and can be viewed as errors of sorts within the SportsML 1.7 spec. These problems were brought to our attention during discussions of SportsML with a Major League Baseball ballclub.

Within the stats-baseball-offensive element, the SportsML 1.7 attribute "defensive-interferance-reaches" is misspelled. Furthermore, this attribute would be clearer if renamed to be "reached-base-defensive-interference", which is in the naming style of other reached-base attributes.

Within the action-baseball-pitch element, the SportsML 1.7 attribute "pitch-type" is defined as being (ball | strike | in-play). In reality, the term "pitch type" applies to whether the pitch was a fastball, a curveball, a slider, etc. The (ball | strike | in-play) options instead are considered "umpire calls."

Hence, SportsML 1.8 proposes that the pitch-type attribute be redefined as (fastball | curveball | etc), and a new "umpire-call" attribute be created, which would have the values (ball | strike | in-play).

core adjustments

	coverage-attributes
		added attribute period-value (for tracking hits per inning, for example)

	career-phase
		added attribute subphase-type (could be "sophomore" or "rookie")
		added attribute phase-caliber (league | team, for example)
		added attribute phase-caliber-key (l.nfl.com | l.nfl.com-t.2)

		added attribute entry-reason = draft | trade
		added attribute selection-level = (1, if drafted in 1st round)
		added attribute selection-sublevel = (27, if picked as 27th selection in 1st round)
		added attribute exit-reason = retired | waived

	home-location
		added attributes %global-attributes;
		added attributes %coverage-attributes;

	name
		added attribute suffix
		added attribute prefix

	rank
		added attribute issuer (for who issued the ranking)

	rating
		added attribute rating-issuer

	tournament-round element
		added attribute round-status

	event-metadata
		added attribute event-of-day
		added attribute events-day-total

	player-metadata
		added attribute scratch-reason
		added attribute round-position

	team-metadata
		added attribute round-position

	player-stats
		time-played-event-average

	add (wagering-stats*) to the content-model of sports-event, right before (officials?)

basketball adjustments

	stats-basketball-rebounding
		added attribute rebounds-offensive-per-game
		added attribute rebounds-defensive-per-game

ice-hockey adjustments

	stats-ice-hockey-defensive
		added attribute goaltender-wins
		added attribute goaltender-losses
		added attribute goaltender-ties

	action-ice-hockey-score
		added attribute shootout-shot-order

golf adjustments

	stats-golf
		added attribute drive-accuracy
		added attribute rounds-under-par
		added attribute greens-in-regulation-putting

	stats-golf-round
		added attribute score
		added attribute strokes

american-football adjustments

	stats-american-football-passing
		added attribute receptions-looks

	stats-american-football-special-teams
		added attribute punts-against-blocked
		added attribute extra-points-against-made
		added attribute extra-points-against-missed
		added attribute extra-points-against-blocked
		added attribute field-goals-against-made
		added attribute field-goals-against-missed
		added attribute field-goals-against-blocked

	element action-american-football-score
		added attribute yards-gained

	element action-american-football-play
		added attribute yards-gained

	element action-american-football-play-participant
		added attribute yards-gained

soccer adjustments

	action-soccer-score-attempt
		added attribute shootout-shot-order

	action-soccer-score
		added attribute shootout-shot-order

	stats-soccer-offensive
		added attribute shots-hit-frame

tennis adjustments

	team-stats-tennis
		define as (stats-tennis-service*,stats-tennis-return*,stats-tennis-set*)

	player-stats-tennis
		define as (stats-tennis-service*,stats-tennis-return*,stats-tennis-set*)

	attributes of new stats-tennis-service element:
		matches-played
		aces
		first-services-good
		first-services-good-pct
		first-service-points-won
		first-service-points-won-pct
		second-service-points-won
		second-service-points-won-pct
		service-games-played
		service-games-won
		service-games-won-pct
		break-points-played
		break-points-saved
		break-points-saved-pct

	attributes of new stats-tennis-return element:
		returns-played
		matches-played
		first-service-return-points-won
		first-service-return-points-won-pct
		second-service-return-points-won
		second-service-return-points-won-pct
		return-games-played
		return-games-won
		return-games-won-pct
		break-points-played
		break-points-converted
		break-points-converted-pct

	redefine action-tennis-point element to hold action-tennis-volley*

	attributes of new action-tennis-volley element:
		swing-type		could be service, for the first two volleys in a point. otherwise, forehand, backhand
		spin-type
		landing-location	where it landed after it was hit
		result			fault, good, out

	make note that stats-tennis-set is kind of a legacy element.
		The functionality there is fully implementable in the 
		SportsML 1.7-and-beyond core set of structures.

baseball adjustments

	stats-baseball-offensive
		added attribute reached-base-error
		added attribute reached-base-fielder-choice
		added attribute outs-ground
		added attribute outs-fly
		added attribute streak-hits
		added attribute hits-event-winning
		added attribute pick-offs-against
		added attribute hit-into-double-play
		added attribute strikeouts-looking
		added attribute home-runs-season
		renamed attribute defensive-interferance-reaches to reached-base-defensive-interference

	stats-baseball-pitching
		inherited-runners-total
		sacrifice-flies-allowed
		shutouts-combined


	add earned-runs-scored attribute to action-baseball-score element

	add at-bat-number to event-state-attributes-baseball
		incremented throughout game on a per-team basis. So a perfect game would have at-bat-number go from 1 to 27
		for the team that didn't get any hits.

	add attributes to action-baseball-pitch element:
		pitch-velocity
		redefine pitch-type to be fast-ball|curve-ball|etc -- instead of (ball | strike | in-play)
		umpire-call (ball | strike | in-play)
		trajectory-coordinates

	make action-baseball-pitch element hold a new element called action-baseball-contact?, with attributes:
		%global-attributes;
		location	where the ball ends up after the bat made contact with ball
		strength
		velocity
		trajectory-coordinates
		comment

	move action-baseball-pitch from event-actions-baseball and instead make these be the models:
		action-baseball-score (action-baseball-pitch)*
		action-baseball-play (action-baseball-pitch)*

curling adjustments

	new specific-curling plugin created