<div dir="ltr"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span style="font-size:12.8px">I would have thought that hashing leadends and leadheads where<br></span><span style="font-size:12.8px">there are calls (plus the order of these) would be better on its own,<br></span><span style="font-size:12.8px">since it would catch the same composition rung to different methods.<br></span><span style="font-size:12.8px">However, while good for methods with Plain Bob leadheads, it would not<br></span><span style="font-size:12.8px">catch WHW rung to Minor methods without Plain Bob leadheads. This is<br></span><span style="font-size:12.8px">why I think it is necessary to focus on the calling.</span></blockquote><div><br></div><div>This raises an interesting question as to what a calling is.  I have just been checking this composition:</div><div><a href="https://bb.ringingworld.co.uk/comp.php?id=2263246">https://bb.ringingworld.co.uk/comp.php?id=2263246</a><br></div><div><br></div><div>It is a composition of Kent Treble Bob Major but used for Cerium Surprise Major.  The unusual thing is that Cerium is irregular.  My approach to duplicate checking would not find this because the lead ends/heads, with or without calls, are not the same.  The calling positions are not quite the same either because In and Before are swapped.  The thing that is the same is the lead numbers where the bobs are called.</div><div><br></div><div>Following on from this, suppose I entered a new composition of Rutland S Major in to complib with the following calling:  B FB F3V (2 part)  The first part end is 12348765, so the calling in the second part is actually MMI B3H</div><div><br></div><div>It seems pretty original, and musical.  However, to compose it all I did was put the bobs where they would be in the first two parts of Middleton's Cambridge.  Did Charles Middleton compose this, or me?</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On 23 January 2018 at 13:45, Graham John <span dir="ltr"><<a href="mailto:graham@changeringing.co.uk" target="_blank">graham@changeringing.co.uk</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On 23 January 2018 at 11:56, Alan Burlison <<a href="mailto:alan.burlison@gmail.com">alan.burlison@gmail.com</a>> wrote:<br>
> As I understand it, the order of the rows was taken into account, from<br>
> John's description he says he generates 6 hashes which are used for<br>
> different purposes.<br>
<br>
</span>Yes, but it is not clear to me how the row hashes help in John's<br>
method. I would have thought that hashing leadends and leadheads where<br>
there are calls (plus the order of these) would be better on its own,<br>
since it would catch the same composition rung to different methods.<br>
However, while good for methods with Plain Bob leadheads, it would not<br>
catch WHW rung to Minor methods without Plain Bob leadheads. This is<br>
why I think it is necessary to focus on the calling.<br>
<span class=""><br>
>> Secondly, hashes for the same composition applied to a different<br>
>> method would not match, nor would rotations or reversals using the<br>
>> same method.<br>
<br>
> Would that not count as a different composition anyway?<br>
<br>
</span>Definitely not. Middleton's Cambridge has been rung to lots of<br>
methods, but it is still considered to be Middleton's composition. As<br>
I recall it was first used for London. Similarly rotations and<br>
reversals. There are often good reasons for separately recording some<br>
reversals and rotations, as they have different music properties and<br>
different coursing orders/part heads that can make them easier to<br>
conduct.<br>
<span class=""><br>
> Rotations and reversals seem tricky, are there any standard ways of<br>
> 'normalising' compositions?<br>
<br>
</span>I very much doubt it. However, it doesn't really matter how they are<br>
normalised as long as it is done consistently. Hashing all the rotated<br>
and reversed callings and using the lowest hash would work fine.<br>
<span class=""><br>
>> Trivial variation checking is rather trickier. It could need<br>
>> significantly more hashes to be stored using a range of additional<br>
>> factors, which can then be compared using a scoring system, in a<br>
>> similar way to spam checkers. This will require some experimentation<br>
>> to refine, but is nevertheless feasible.<br>
<br>
> That's why I pointed to the various string similarity algorithms. I think<br>
> the hard part will be getting good distance metrics.<br>
<br>
</span>Yes, they might work with a consistently presented calling string, but<br>
as John pointed out, you have decide a boundary for what is considered<br>
trivial vs distinct.<br>
<span class="HOEnZb"><font color="#888888"><br>
Graham<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
______________________________<wbr>_________________<br>
ringing-theory mailing list<br>
<a href="mailto:ringing-theory@bellringers.org">ringing-theory@bellringers.org</a><br>
<a href="http://lists.ringingworld.co.uk/listinfo/ringing-theory" rel="noreferrer" target="_blank">http://lists.ringingworld.co.<wbr>uk/listinfo/ringing-theory</a><br>
</div></div></blockquote></div><br></div>