Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Grades, registered grades, alternate grades #1585

Open
13 tasks
brendanheywood opened this issue Aug 4, 2014 · 11 comments
Open
13 tasks

Grades, registered grades, alternate grades #1585

brendanheywood opened this issue Aug 4, 2014 · 11 comments

Comments

@brendanheywood
Copy link
Member

I started writing this on #1584 and then thought it would better in a discussion in it's own right. And then it kinda snowballed into an epic

I'd like to first start by clarifying my own understanding of how the internals work, and then attempt to see how it could be either exposed better or the data model improved.

There seems to be few categories of reasons why a route could have multiple grades:

  1. It has a dual grade, eg british techical + adjectival, or ewbank + aid grade, saxon + jump. This is of course perfectly valid.

  2. A route has multiple grades, eg "20 M3" + "22 M1" + "25", all grades are equally valid but different depending on climbing history or climbing style, and are in the same contexts. Or it is "22" on top rope, or a "V1 X" high ball.

  3. A route has the same type of grade, but in two different systems. ie it's an AU 23 and also a FR 7a. This is fundamentally different to above, as it is two representations of the same grade. It could be that the second foreign grade is just redundant as we could convert it.

  4. A route was "22 X" when first put up, but has been rebolted to be much safer at just "22"

All of the above is further confused with the concept of multi pitch grades.

My current understanding is that a route has either 1, or 2 'registered grades'. The idea of a 'registered' grade is a thecrag concept and has no real meaning to an average climber. What grades actually end up in the 'registered grades' seems to be some mixture of choosing the hardest grade from those available in each system from potentially many more than 2 grades. Often which 2 grades become the 'registered grades' seems arbitrary.

Because there are only 2 registered grades for a route, and they are merged from multiple places they get messed up fairly easily. I've done a quick audit of open bugs related to grades, and I think this is at least partially the root cause for, or related to this conceptual problem: #719, #128, #1118, #1130, #913

I'm going to invent some terminology for how I think things are in peoples minds, and then work backwards to see where the gaps are between that conceptual model and our internal data model. I'm going to invent quite a lot of concepts, so just bare with me :)

For routes which have 2 'component grades', the whole thing is considered the 'whole grade'. Eg the grade for a british route might be "E1 5b". It make zero sense to consider one component grade out of context of the other component grade. So first I want to defined 'a whole grade' as the whole grade that a person would type in for a given route or pitch, which can contain 'component grades'. Only component grades belong to a grade system.

For routes which have multiple pitches, a 'whole grade' can contain multiple 'pitch grades' and also has a concept of a derived 'summary grade'. eg a route with "22,21,25" would has 3 pitch grades and a derived 'summary grade' of 25. 'whole grades' can mix with pitch grades with multiple component grades, so we could have "22,20 M1, 25". An interesting case is the british adjectival grade which is usually for the whole route, but it has separate technical grades for each pitch "HS 4b, 4a" where the HS component applies to both pitches. So it could be seen as identical to "HS 4b, HS 4a"

A route can be climbed in multiple styles, eg a route could have two 'whole grades' of "20 M1" and "25". I'll call these 'alternate grades' as you could have one 'whole grade' for each alternate style, eg "Aid:20 M1" + "Trad:25". A route could also easily have multiple whole grades for a given style eg "Aid:20 M3" + "Aid:22 M2" + "Aid:25 M1" + "Sport:28". A route with multiple 'alternate grades' may have a concept of a 'primary grade' which is the the way the majority of people climb it.

A grade could be historical, eg it was "22 X" and is now just "22", I would call these a 'historical grade'

A grade could be given in two different systems, eg "AU:22" and "FR:7a", I will call these 'foreign grades'.

There may be other types but this probably covers the vast majority of use cases. The thing that strikes me immediately after having written all this is how similar it looks to the types of names a route can have, eg

Primary name => 'primary grade'?
Alternate name => 'alternate grades'
Historical name => 'historical grades'
Language name => 'foreign grades'
Short name => roughly like 'summary grade'

Some concepts don't have perfect clear parallels, like whole grade and pitch grade and summary grade.

General principals:

  • we don't necessarily need to model everything above, it is complex and messy. But we should decide explicitly what is in or out, and what we model should be obvious in the UI
  • we should always have round trip editing. If someone adds a completely invalid grade, or a completely valid grade and then edit's it again, they should be able to edit exactly what they originally entered, with case, white space, punctuation comments etc intact. This is essentially the heart of Make a universal grade input widget #1180
  • we should continue to err on the side of safety when showing multiple conflicting grades

How I think we should ideally model grades internally

  • the current concept of a 'registered' grade doesn't really fit any of the types of grades above and merges some of them together in non-ideal ways causing bugs. Not really sure what to make of it, so ignoring it from here on
  • a route can have multiple 'whole grades', stored both as the original free text, and whatever internal parse format. (more or less hat we already a
  • each whole grade has a type, 'primary' 'alternate' historical', 'foreign'. Like names, there can only ever be one 'primary' grade, you can't even select it, it would be a separate field like the names UI.
  • each whole grade has a grade context which defaults to the countries context but can be changed. The primary grade can have a different context, we will allow it, but this is an indication of some deeper problem, either the grade is wrong, or the grade contexts need some further adjustment. Should be reported on in Remove / rebuild the quality template aka editor toolkit #934

How I think we should calculate the 'summary grade'

  • the only type of grade taken into account for the summary grade is the 'primary grade'. This fixes multiple bugs
  • for a given primary 'whole grade' which can contain multiple pitches and styles we reduce this to as short a summary grade as possible. How this aggregation is performed is dependant on the component grades. The main challenge is that each 'pitch grade' should be assessed in turn, rather than the 'component grades' of each pitch grade. So "21,25,24,22" would get reduced to "25", or possibly a range of "21-25", but "21 M0, 25, 24, 22 M3" would not be reduced to "25 M3", perhaps "21-25 M3" might be better aggregation. This needs more analysis and real world examples and feedback.

How I think we should search and index grades

  • 'historical grades' would not be indexed for search
  • 'foreign grades' would not be indexed for search. In theory there should correlate well to the primary grade when translated, so in general are redundant
  • the grade actually used for filtering is the 'summary grade' derived from the primary grade
  • kinda 50 / 50 about whether the alternate grades should get indexed and searched. I can argue both ways. If we did then we would also calculate an internal summary grade for each alternate which is also search on
@scd
Copy link
Member

scd commented Aug 4, 2014

A registered grade is the official grade of a climb. If you make another grade contribution it does not change the registered grade. It is disconnected with other grade contributions, other then the coincidence of the algorithm assigning the initial registered grade the same as the grade contribution. Registered grades are not attributed to publishers or users. Grade contributions are attributed to users and/or publishers.

There can be one registered grade from each grading system. This concept comes from Thailand guidebook publishing a french grades and australian grades for the same route.

Multipitch is free text grade unparsed. When parsed it loses it's multipitch character and assigns a single grade.

Alternate grades can be parsed already as follows "25 [22 M1]". Note the square brackets is how I have seen it done in various guidebooks.

I am generally ok with the terminology you defined, except we need to keep a concept of registered grade (I don't care what we call it).

@brendanheywood
Copy link
Member Author

"25 [22 M1]" doesn't seems to actual be treated in any special way. Is the stuff inside [] just ignored? It only is shown on the route detail page and nowhere else.

@scd
Copy link
Member

scd commented Aug 4, 2014

Try it the other way around "22 M1 [25]" - there is a rule which picks the higher free grade.

@brendanheywood
Copy link
Member Author

+1 from @rouletout via #3564

A notable example is The Nose (https://www.thecrag.com/climbing/united-states/yosemite-national-park/route/20685193) and the free ascent by Barbara Zangerl (https://www.thecrag.com/ascent/2936265048) which was free but it isn't visible as such. It thus also is not calculated correctly for CPR or marked correctly in any profile stats.

Not a perfect analogy is Green Pointing a sport route - here we have changed the stats based on tick type (counts as Trad CPR, not sure how it ends up in your pyramid though).

@brendanheywood
Copy link
Member Author

One key missing piece of the puzzle is logging an ascent with a certain gear style. This isn't in the log ascent UI. So it feels weird that you can filter the ascents by either the routes style or the ascent style:

/climbing/united-states/yosemite-national-park/route/20685193/ascents/with-route-gear-style/aid/
/climbing/united-states/yosemite-national-park/route/20685193/ascents/with-ascent-gear-style/aid/

but the ascent filter is broken and never returns any results because we don't have any cpr for aid routes. This should not have any dependency on CPR unless you wanted to sort on CPR.

If we simply fleshed out the complete mapping of tick types so that every ascent always had a CPR gear style then this would mostly just start working as expected. Note this doesn't mean we'd start showing stats for Aid CPR. This would mean that the first filter above for would correctly show Barbara Zangerl as an ascent but not the second. Fixing the template to show the ascent style instead of the route style should then be trivial.

The same example with green points showing as sport instead of trad, but here the filtering does work as it should because they have a valid CPR-gear-style:

https://www.thecrag.com/climbing/north-america/ascents/with-tick-type/greenpointonsight+greenpoint/with-ascent-gear-style/trad/with-route-gear-style/sport/?sortby=when-climbed,desc

@lordyavin
Copy link

Discussion "Assigned grade" at The Nose

@lordyavin wrote:

Assigned grade

Should we update the assigned grade to 5.14a and change the gear style? Probably this would corrupt the logbooks of past ascentionists. Or a new index entry called "The Nose Free"?

@rouletout commented:

Can you please log these examples (incl. Dawn Wall) with this issue: #1585

This needs to be resolved 😉

@lordyavin
Copy link

lordyavin commented Dec 3, 2019

@rouletout I don't see why the Dawn Wall is an issue. It is registered as an 32 pitch trad climb. None of the registered pitches lists an aid grade.

Probably the solution the system provides now is, that you aid a "free" route and log it correspondingly:

grafik

@brendanheywood or @scd: What happens if we upgrade a former aid climb with the aid ascents already logged?

@lordyavin
Copy link

lordyavin commented Dec 3, 2019

Okay, tested the upgrade on sandpit. Old ascents are displayed as follows:

grafik

Old grade still okay, but gear style wrong. If an aid grade is selected it should display grafik not grafik

@gogulfresh
Copy link

+1 alternative grade show up in search (and also shop up in list etc.)

@rouletout
Copy link
Contributor

from Scott Godwin:

I think it makes more sense to create a new entry for the free version. This kind of thing already exists elsewhere on thecrag (e.g. Mt Buffalo - https://www.thecrag.com/climbing/australia/buffalo/the-gorge-north-side/route/142343466 )

Big wall routes will always be climbed in a wide variety of styles, but on popular trade routes the vast majority of ascents are still going to involve aid. You could also argue that the free version of the Nose isn't even really the same route, because it involves several variant pitches that bypass significant sections of the original. This kind of thing is true for lots of big walls that were established using aid techniques and later freed via variations to some of the original pitches.

@killakalle
Copy link

+1 for alternative grade showing up in search.

No matter how you register a grade, "6a A0 [6c+]" or "6c+ [6a A0]" the route grade is always the (higher?) free sport grade. When searching for accessible multi-pitch routes, this excludes a lot of otherwise good climbs.

image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants