Under Community Review

Advanced Segmentation Control & Rule Portability

The Problem: Structural Tags Blocking Segmentation

Standard segmentation rules often rely on a "Full Stop + Space" pattern. However, in files containing dense HTML, CSS, or JSON, sentences often conclude and are immediately followed by a tag or a code block without a trailing space.

  • Result: Trados fails to break the segment, leading to "mega-segments" containing multiple sentences.

  • Current Limitation: The "After break" dropdown only allows for general categories like "Anything," "Number," or "Whitespace," but lacks specific logic for tag-based boundaries.

Proposed Solutions

1. Enhanced "After Break" Logic: Support for Tags

The "Edit Segmentation Rule" dialog should be expanded to recognize tags as valid segment boundaries.

  • Feature: Add "Tag" or "Structural Placeholder" as an option in the After break dropdown menu.

  • Technical Logic: If the "Break character" (e.g., a period) is followed immediately by a Tag (Internal or External), the segment should break even if a space is absent.

  • Benefit: Prevents multiple sentences from being trapped in a single segment when separated only by structural code.

2. Segmentation Rule Portability (Import/Export)

Manually recreating complex segmentation rules for every new TM or project template is a significant time-sink for Lead Auditors and Project Managers.

  • Feature: Implement a dedicated Import/Export button for Segmentation Rules.

  • Supported Formats: .xlsx or .rsx.

  • Functionality: Users should be able to export their refined rule sets from one Language Resource and quickly deploy them across other projects or share them with team members.

  • Benefit: Enables instant deployment of "Golden Rules" for specific file types, ensuring consistency across the entire production chain.


Competitive Advantage

By allowing Tag-aware segmentation and Rule Portability, Trados would significantly reduce the manual "Split Segment" workload that currently plagues technical localization projects. It would allow professionals to treat segmentation as a "set and forget" asset rather than a recurring manual task.

Screenshot of the Trados Translation Memory Settings window showing the Edit Segmentation Rule dialog. The 'After break' dropdown is expanded, displaying options like 'Anything' and 'Text (including numbers)'.

Parents
  •  why wouldn't you manage this at the filetype level?  That is typically the best, and easiest, way to handle segmentation needs of this nature.

  • Hi again Paul,

    Check the attached screenshots! When I tried to create a simple segmentation rule, I got this message and that is indeed a very basic rule, and not even a complex one! 

    An example contenxt:

    4952|||<h2>LOREM IPSUM - XXX.<p> </p></h2>|||NEWLINE|||<p style="color: red; font-size: 10px;">LOREM IPSUM, LOREM IPSUM.<p> </p></p>|||NEWLINE|||<p> </p>|||NEWLINE|||<p><strong>LOREM IPSUM:</strong></p>|||NEWLINE|||<div class="row">|||NEWLINE|||<div class="eight columns alpha">LOREM IPSUM is looking for a LOREM IPSUM to help us increase our LOREM IPSUM and maintain LOREM IPSUM within an LOREM IPSUM.|||NEWLINE|||<p> </p>|||NEWLINE|||In this LOREM IPSUM, we seek LOREM IPSUM and LOREM IPSUM. We expect you to be an LOREM IPSUM who understands LOREM IPSUM. You must also be LOREM IPSUM and LOREM IPSUM.|||NEWLINE|||<p> </p>|||NEWLINE|||Ultimately, you will ensure our LOREM IPSUM are having the LOREM IPSUM and search for ways to grow our LOREM IPSUM both within the LOREM IPSUM and LOREM IPSUM within your LOREM IPSUM.|||NEWLINE|||<p>





    Task Results window showing an error message: 'The RegEx engine has timed out while trying to match a pattern to an input string.' Includes OK and Help buttons.

    <SDLErrorDetails time="2/10/2026 5:50:09 PM">
      <ErrorMessage>The RegEx engine has timed out while trying to match a pattern to an input string. This can occur for many reasons, including very large inputs or excessive backtracking caused by nested quantifiers, back-references and other factors.</ErrorMessage>
      <Exception>
        <Type>System.Text.RegularExpressions.RegexMatchTimeoutException, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</Type>
        <ExceptionMessage>The RegEx engine has timed out while trying to match a pattern to an input string. This can occur for many reasons, including very large inputs or excessive backtracking caused by nested quantifiers, back-references and other factors.</ExceptionMessage>
        <Pattern>.*&gt;</Pattern>
        <Input>Continued from Road to Roubaix Part 12009 was spent obsessing over tires. We found that the difference between 24 and 27mm tires was the difference between making it through the forest and walking and we theorized that 28 and 30mm tires would be even better if they would fit in the frames! We learned that 10psi could increase speed over the cobbles by nearly 1kph at a fixed power. We looked back at the original stiffness data to understand how the 82mm 808 could be so much more compliant than the shallower wheels, and then we used those lessons to completely change the face of classics wheels by making a 28mm wide 303 with massively bulging sidewalls and a tire bed optimized for 27-28mm tires with an added focus on the outer rim edges where the tire bottomed out under heavy impact. These edges could be tuned to both better spread impact loading to save the rim, but also we learned that the same impact spreading could save the tire from pinch flatting.Yes, you heard that correctly, once we had rims strong enough to survive Arenburg, we started to have pinch flatting issues..with tubulars!Meanwhile in the test lab, we were working on solving the impact issues both for tire pinch flatting and for rim cracking. The new rim shape was very compliant under impact compared to anything else we had seen, but the effect of tires was really pretty unbelievable in terms of protecting the rim. Tire Height Typically runs 90-105% of tire height (Clincher shown here)At a very basic level the key to the wider tires really that they are also taller. In general a tire will be slightly less tall than wide (this can vary with tread thickness and tire design, but highly efficient tubulars are always shorter than wide when installed.  So in an unloaded condition a 25mm tubular tire will keep your rim about 24mm off of the pavement when your bike is just sitting there, but when you are sitting on the bike the tire compresses (we call this tire drop) and for a drop of 15% (common) you will have only 20mm between your rim and the pavement.  So when we introduce bumps, road seams, potholes and (gulp) cobbles to the equation, we find that those 20mm really aren't all that much!Clincher Rims and Tires shown with various Drop PercentagesSo really the most critical aspect of tire width is that every millimeter of tire width brings a critical millimeter (or nearly) of height from the ground.  While lower pressures needed for these rough conditions increase the tire drop bringing the rim back closer to the ground.  The balance between tire height and pressure (which affects drop) is critical in balancing efficiency, ride quality and impact durability.  Solving for the most effective tire size and pressure is hard enough for standard conditions, but when you have cobbles with sharp edges and as much as 30mm of height difference between them, the problem becomes very,very hard to solve.  All indications after the Magnus Backstedt rim failures were that the 24mm tires (which had never been tested on the pave with our carbon wheels) were the likely cause for the rim failures, but the data now could prove it.  Those 3mm of reduced height between the rim edge and cobbles meant a more than 20% reduction in the amount of impact energy the wheel and tire could handle before damaging the rim.Evaluating the aluminum wheels used in previous Roubaix races taught us even more.  The rims were full of nicks, dings and deformations around the perimeter.  This meant that the tires were routinely bottoming our, but the aluminum was able to stay intact even when bent, dented or dinged.  Carbon fiber doesn't have these properties.  While aluminum will generally deform 10-13% before failing, carbon fiber usually will only yield 1.5-2% before doing the same.  Engineers refer to this as 'toughness' and it is critical to the amount of energy that something can absorb before failing.One advantage of carbon is that we could design flex into the system by allowing the sidewall of the rim to act as a leaf spring.  This decouples the outer diameter of the rim from the inner, and by shaping the rim we could allow it to essentially act similarly to a tire.  While the conventional wisdom had been that the box section rim was comfortable because it could deflect radially inward, the reality is that to deflect inward in one place, it had to deflect outward somewhere else and all those spokes kept that from happening.  With carbon, we could engineer the flex into the cross section of the rim so while the inner diameter of the rim remained more or less round, the outer diameter could flex, this is almost exactly how a tire behaves.HighSpeed Video of 303 Prototype Impact - 3.5mm Rim Compression After Tire Bottom-OutThis video of a 303 prototype shows the ability of the very bulging rim to deform similarly to the tire, the cross-section of the rim can deflect outward allowing the rim to compress under load.PerceptionOnce we had the hard data on impact energy with the various tires and had developed new rim concepts that we believed could better handle the shock loads of the bottoming tire, we had an even larger problem: Perception.  The perception was that the 24mm tires were 'Faster' in dry conditions.  Now the problem with Perception and Convetional Wisdom is that it isn't always rooted in data, but is rather the result of people drawing correlations between features and benefits.  So when we talked with the riders we heard everything you can imagine about why 24's were faster in the dry and 27's in the wet, but the most logical was that the 27's allowed for lower pressure which meant more grip in the wet.  24's were also more aerodynamic according to the riders and this seemed logical as wider tires always bring a drag penalty from everything we'd ever seen.  So the challenge really became to make the wheel as fast with the 27 as the old wheel was with the 24. Making it AeroIn 2008 we went back to San Diego wind tunnel to look at the Ambrosio Crono with Roubaix tires along with numerous 303 concepts based around tires that wide. In a lot of ways it was a very liberating test for us. Out of desperation, we had thrown out all of the conventional wisdom and had made about 20 plastic prototype wheels (by Steriolithography) that were really, really outside the proverbial box. One of those was shape that would become the Hyper-Toroidal 303 that we went to production with and interestingly, the craziest of the lot was a wildly pear shaped thing we dubbed a 'Pear-oidal' rim shape that would ultimately become the impetus for the future Firecrest geometry wheelsRendering of 2010 27.5mm wide Hyper-Toroidal Rim vs 2007 22.5mm 303 both with 25mm Tire You can see here the dramatic difference between the 2007 rim and what became the 2010 rim. This would be the first Pave specific, cyclocross oriented rim anybody ever made, and it was very strange looking. I remember the first time we showed it to our sales/marketing team at Zipp. The response was anything but positive. "It'll have to win Roubaix if you expect anybody to buy such a damn ugly wheel,' was one of our favorite comments. I think most everybody had the same response at first, and of course with our 2015 perspective, it doesn't look at all out of the ordinary. However, the wind tunnel data spoke for itself. Wheel/Tire Tunnel Data From 2008 TestingIn many ways this testing was transformative for our entire team, and it ultimately changed much about our vision for future wheels.  Note on the graph that the 27.5mm wide rim with 24mm tire is very nearly identical in performance to the previous generation 22.5mm wide wheel with 24mm tire, and the wider rim with the 24mm tire was a very significant improvement over the previous rim with same tire.  This test was really the one that solidified the movement al all rims to very wide widths as previous to that only the 808 was 27.5 wide as it was necessary due to the depth.The data from this test as shown above became a critical factor in getting the riders to open their minds to using them again following the issues of 2008.  The difference between the aero wheel with a 27mm tire and the old wheel with the 24mm tire was between 15 and 30 watts depending on wind angle...that is a tremendous amount.  Now we can't think for a second that this changed anybody's mind.  Cancellara made a very good point that this only mattered to him if the other guy was on the 303, otherwise he would rather pick the more proven and robust wheel that was equal to what the other riders had, than to have a faster wheel that brought risk of a rim failure.  Changing PerceptionsFor 2009, we continued to try and convince Cancellara and CSC, but we were also working with the very technically advanced Cervelo Test Team, and with the help of CTT management were able to convince the riders to have a go on the carbon wheels, but it would require extensive testing.  However, the Backstedt failures still loomed large with many riders and others just couldn't come to terms with the 27mm tires, or the idea of carbon wheels being comfortable.  These are times where data is critical, but even in the face of very good data, perceptions can drive what the riders are feeling (or think they are feeling) and perceptions can drive doubt and doubt can be a very self-fulfilling thing.Our first test with CSC in the Arenburg that year brought highly variable results, ones which made no real sense and left our team, the riders, and the staff feeling uneasy.  The breakthrough came when we realized that amongst the 3 pumps on the team truck, we had a variability of 12psi when inflating to 70.  This all came in a fit of frustration when we plugged two of the pumps together on a valve stem ripped our of a tube, pumping the one to 70psi had the other pump showing 64psi and plumbing it to the third gave us 76psi.    Considering that we had been working to optimize pressures for riders like Thor Hushovd down in the region of 64 front / 70 rear, it was no wonder we were having intermittent failures and other issues.We were facing as much as 12 psi pressure difference depending on which pump was being used!We changed to only using one pump and completed testing with much better results, but the riders were still uneasy about the whole thing.  Before the CTT test we decided to improve the level of control.  We built a gauge setup we jokingly called 'The Truth' using a $500 Ashcroft 0.1% accuracy digital gauge, an old SILCA disc adapter and some precision industrial components to create a gauge with very high accuracy bleed.  The Truth was capable of bleeding pressure at a rate which could yield repeatable 0.05psi readings.  We knew that this accuracy and precision would be key to getting repeatable data and also to making sure that we got it absolutely right on race day.Photo of 'The Truth' Gauge Hanging out at the Service Course with Team SILCA Pump (2009)Now that we were properly prepared, the CTT testing went as smoothly as you could possibly imagine and the team was sold.  We spent a lot of time trying to find a good balance of comfort and feel for the riders by lowering pressures, but also safety margin for the wheels by not going too low.  This type of iterative testing takes a lot of time, but we found through use of power meter data that as the pressures decreased, the speeds also went up.  The better the ability of the tire to absorb the impacts of the cobbles, the more efficient the bike travelled over the cobbles.  Similarly, once the rim was routinely bottoming out, the speeds come down again.  It was as if we had opened a door into an entirely new critical variable in performance and were the first to begin imagining what benefits were there to be found.Roubaix 2009The Flanders-Roubaix week came and went in 2009 with little drama.  Thor Hushovd finished 3rd, the first podium for a carbon wheel at Roubaix and Roger Hammond finished 4th. Roger Hammond on way to 4th in 2009 Roubaix (photo from Cyclingweekly.com)The planning and preparation had done us well, Hushovd and Hammond 3rd and 4th.  Roger also pointed out something that would be critical to all future Roubaix attempts.  He noted that the latex tubes weep air, that is they allow air to slowly escape, which is why your tubular tires need to be inflated every day.  However, this request was that he noticed the tires were lower at the end of the race than the beginning and shouldn't we look at optimizing pressure for the Arenburg and then figure out what the race starting pressure should be since the two happen about 4 hours apart?It was immediately clear that for 2010 we would be spending a lot of time with 'The Truth' and a stopwatch..Tomorrow, April 10 we will Publish Part 3 of Road to Roubaix - This is the Final installment and will contain the 2010 data on Tire Stiffness, more aero information and some critical Rolling Resistance discussion.Click here for Part 1 of the Road to RoubaixClick here for Part 3 of the Road to Roubaix    </Input>
        <HelpLink />
        <Source>System</Source>
        <HResult>-2146233083</HResult>
        <StackTrace><![CDATA[   at System.Text.RegularExpressions.RegexRunner.DoCheckTimeout()
       at System.Text.RegularExpressions.RegexRunner.CheckTimeout()
       at System.Text.RegularExpressions.RegexInterpreter.Go()
       at System.Text.RegularExpressions.RegexRunner.Scan(Regex regex, String text, Int32 textbeg, Int32 textend, Int32 textstart, Int32 prevlen, Boolean quick, TimeSpan timeout)
       at System.Text.RegularExpressions.Regex.Run(Boolean quick, Int32 prevlen, String input, Int32 beginning, Int32 length, Int32 startat)
       at System.Text.RegularExpressions.Regex.Match(String input, Int32 startat)
       at Sdl.LanguagePlatform.Core.Segmentation.Context.MatchesAt(String s, Int32 position, Boolean assumeEof, Boolean followedByWordBreak)
       at Sdl.LanguagePlatform.Core.Segmentation.SegmentationContext.FindAllMatches(String input, Int32 startOffset, Boolean assumeEof, Boolean followedByWordBreak)
       at Sdl.LanguagePlatform.Core.Segmentation.SegmentationRule.FindAllMatches(String input, Int32 startOffset, Boolean assumeEof, Boolean followedByWordBreak)
       at Sdl.Core.LanguageProcessing.Segmentation.T8.T8SegmentationEngine.GetAllMatches(String text, Boolean assumeEof, Boolean followedByWordBreak)
       at Sdl.Core.LanguageProcessing.Segmentation.SegmentationEngineRunner.GetMatchDetails(List`1 textParts)
       at Sdl.Core.LanguageProcessing.Segmentation.SegmentationEngineRunner.FindAllBreaks()
       at Sdl.Core.LanguageProcessing.Segmentation.SegmentationEngineRunner.RunSegmentationEngine(SegmentationEngine engine, Tree tree)
       at Sdl.Core.LanguageProcessing.Segmentation.SegmentationTreeManager.RunSegmentationEngine(SegmentationEngine engine)
       at Sdl.Core.LanguageProcessing.Segmentation.Segmentor.CreateSegments(IAbstractMarkupDataContainer content, SegmentorUtility segmentorUtility)
       at Sdl.Core.LanguageProcessing.Segmentation.Segmentor.ProcessParagraph(IAbstractMarkupDataContainer paragraph)
       at Sdl.Core.LanguageProcessing.Segmentation.Segmentor.ProcessParagraphUnit(IParagraphUnit transUnit)
       at Sdl.FileTypeSupport.Framework.Core.Utilities.BilingualApi.BilingualContentHandlerAdapter.ProcessParagraphUnit(IParagraphUnit paragraphUnit)
       at Sdl.FileTypeSupport.Framework.Core.Utilities.BilingualApi.BilingualContentHandlerAdapter.ProcessParagraphUnit(IParagraphUnit paragraphUnit)
       at Sdl.FileTypeSupport.Framework.Integration.AbstractBilingualProcessorContainer.ProcessParagraphUnit(IParagraphUnit paragraphUnit)
       at Sdl.FileTypeSupport.Framework.BilingualApi.AbstractBilingualContentProcessor.ProcessParagraphUnit(IParagraphUnit paragraphUnit)
       at Sdl.FileTypeSupport.Framework.Integration.LocationMarkerLocator.ProcessParagraphUnit(IParagraphUnit paragraphUnit)
       at Sdl.FileTypeSupport.Framework.Integration.AbstractBilingualProcessorContainer.ProcessParagraphUnit(IParagraphUnit paragraphUnit)
       at Sdl.FileTypeSupport.Framework.Integration.FileExtractor.ProcessParagraphUnit(IParagraphUnit paragraphUnit)
       at Sdl.FileTypeSupport.Framework.Core.Utilities.BilingualApi.ParagraphUnitBuffer.ProcessParagraphUnit(IParagraphUnit pu)
       at Sdl.FileTypeSupport.Bilingual.SdlXliff.XliffFileReader.OutputParagraphUnit(IParagraphUnit pu)
       at Sdl.FileTypeSupport.Bilingual.SdlXliff.XliffFileReader.ParseLocalizableParagraphUnit(transunit transunit, LockTypeFlags lockFlags)
       at Sdl.FileTypeSupport.Bilingual.SdlXliff.XliffFileReader.ParseTransUnit(transunit transunit)
       at Sdl.FileTypeSupport.Bilingual.SdlXliff.XliffFileReader.OnTranslationUnit(XmlElement translationUnit)
       at Sdl.FileTypeSupport.Bilingual.SdlXliff.SdlXliffFeeder.<ContinueScanning>b__14_12(ISdlXliffStreamContentHandler handler)
       at System.Collections.Generic.List`1.ForEach(Action`1 action)
       at Sdl.FileTypeSupport.Bilingual.SdlXliff.SdlXliffFeeder.ContinueScanning()
       at Sdl.FileTypeSupport.Bilingual.SdlXliff.XliffFileReader.ContinueParsing()
       at Sdl.FileTypeSupport.Bilingual.SdlXliff.XliffFileReader.ParseNext()
       at Sdl.FileTypeSupport.Framework.Integration.FileExtractor.ParseNext()
       at Sdl.FileTypeSupport.Framework.Integration.MultiFileConverter.ParseNext()
       at Sdl.FileTypeSupport.Framework.Integration.MultiFileConverter.Parse()
       at Sdl.ProjectApi.Implementation.TaskExecution.ContentProcessingTaskImplementation.TaskFileExecuter.Parse(String targetFilePath)]]></StackTrace>
      </Exception>
      <Environment>
        <ProductName>Trados Studio</ProductName>
        <ProductVersion>Studio18</ProductVersion>
        <EntryAssemblyFileVersion>18.1.3.6657</EntryAssemblyFileVersion>
        <OperatingSystem>Microsoft Windows 10 Pro</OperatingSystem>
        <ServicePack>NULL</ServicePack>
        <OperatingSystemLanguage>1033</OperatingSystemLanguage>
        <CodePage>1256</CodePage>
        <LoggedOnUser>ADMINSAM\Ahmed</LoggedOnUser>
        <DotNetFrameWork>4.0.30319.42000</DotNetFrameWork>
        <ComputerName>ADMINSAM</ComputerName>
        <ConnectedToNetwork>True</ConnectedToNetwork>
        <PhysicalMemory>64653400 MB</PhysicalMemory>
      </Environment>
    </SDLErrorDetails>
    Edit Segmentation Rule window with fields for Description, Before break, Break characters, and After break. Regular Expression checkbox is selected under After break.

Comment
  • Hi again Paul,

    Check the attached screenshots! When I tried to create a simple segmentation rule, I got this message and that is indeed a very basic rule, and not even a complex one! 

    An example contenxt:

    4952|||<h2>LOREM IPSUM - XXX.<p> </p></h2>|||NEWLINE|||<p style="color: red; font-size: 10px;">LOREM IPSUM, LOREM IPSUM.<p> </p></p>|||NEWLINE|||<p> </p>|||NEWLINE|||<p><strong>LOREM IPSUM:</strong></p>|||NEWLINE|||<div class="row">|||NEWLINE|||<div class="eight columns alpha">LOREM IPSUM is looking for a LOREM IPSUM to help us increase our LOREM IPSUM and maintain LOREM IPSUM within an LOREM IPSUM.|||NEWLINE|||<p> </p>|||NEWLINE|||In this LOREM IPSUM, we seek LOREM IPSUM and LOREM IPSUM. We expect you to be an LOREM IPSUM who understands LOREM IPSUM. You must also be LOREM IPSUM and LOREM IPSUM.|||NEWLINE|||<p> </p>|||NEWLINE|||Ultimately, you will ensure our LOREM IPSUM are having the LOREM IPSUM and search for ways to grow our LOREM IPSUM both within the LOREM IPSUM and LOREM IPSUM within your LOREM IPSUM.|||NEWLINE|||<p>





    Task Results window showing an error message: 'The RegEx engine has timed out while trying to match a pattern to an input string.' Includes OK and Help buttons.

    <SDLErrorDetails time="2/10/2026 5:50:09 PM">
      <ErrorMessage>The RegEx engine has timed out while trying to match a pattern to an input string. This can occur for many reasons, including very large inputs or excessive backtracking caused by nested quantifiers, back-references and other factors.</ErrorMessage>
      <Exception>
        <Type>System.Text.RegularExpressions.RegexMatchTimeoutException, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</Type>
        <ExceptionMessage>The RegEx engine has timed out while trying to match a pattern to an input string. This can occur for many reasons, including very large inputs or excessive backtracking caused by nested quantifiers, back-references and other factors.</ExceptionMessage>
        <Pattern>.*&gt;</Pattern>
        <Input>Continued from Road to Roubaix Part 12009 was spent obsessing over tires. We found that the difference between 24 and 27mm tires was the difference between making it through the forest and walking and we theorized that 28 and 30mm tires would be even better if they would fit in the frames! We learned that 10psi could increase speed over the cobbles by nearly 1kph at a fixed power. We looked back at the original stiffness data to understand how the 82mm 808 could be so much more compliant than the shallower wheels, and then we used those lessons to completely change the face of classics wheels by making a 28mm wide 303 with massively bulging sidewalls and a tire bed optimized for 27-28mm tires with an added focus on the outer rim edges where the tire bottomed out under heavy impact. These edges could be tuned to both better spread impact loading to save the rim, but also we learned that the same impact spreading could save the tire from pinch flatting.Yes, you heard that correctly, once we had rims strong enough to survive Arenburg, we started to have pinch flatting issues..with tubulars!Meanwhile in the test lab, we were working on solving the impact issues both for tire pinch flatting and for rim cracking. The new rim shape was very compliant under impact compared to anything else we had seen, but the effect of tires was really pretty unbelievable in terms of protecting the rim. Tire Height Typically runs 90-105% of tire height (Clincher shown here)At a very basic level the key to the wider tires really that they are also taller. In general a tire will be slightly less tall than wide (this can vary with tread thickness and tire design, but highly efficient tubulars are always shorter than wide when installed.  So in an unloaded condition a 25mm tubular tire will keep your rim about 24mm off of the pavement when your bike is just sitting there, but when you are sitting on the bike the tire compresses (we call this tire drop) and for a drop of 15% (common) you will have only 20mm between your rim and the pavement.  So when we introduce bumps, road seams, potholes and (gulp) cobbles to the equation, we find that those 20mm really aren't all that much!Clincher Rims and Tires shown with various Drop PercentagesSo really the most critical aspect of tire width is that every millimeter of tire width brings a critical millimeter (or nearly) of height from the ground.  While lower pressures needed for these rough conditions increase the tire drop bringing the rim back closer to the ground.  The balance between tire height and pressure (which affects drop) is critical in balancing efficiency, ride quality and impact durability.  Solving for the most effective tire size and pressure is hard enough for standard conditions, but when you have cobbles with sharp edges and as much as 30mm of height difference between them, the problem becomes very,very hard to solve.  All indications after the Magnus Backstedt rim failures were that the 24mm tires (which had never been tested on the pave with our carbon wheels) were the likely cause for the rim failures, but the data now could prove it.  Those 3mm of reduced height between the rim edge and cobbles meant a more than 20% reduction in the amount of impact energy the wheel and tire could handle before damaging the rim.Evaluating the aluminum wheels used in previous Roubaix races taught us even more.  The rims were full of nicks, dings and deformations around the perimeter.  This meant that the tires were routinely bottoming our, but the aluminum was able to stay intact even when bent, dented or dinged.  Carbon fiber doesn't have these properties.  While aluminum will generally deform 10-13% before failing, carbon fiber usually will only yield 1.5-2% before doing the same.  Engineers refer to this as 'toughness' and it is critical to the amount of energy that something can absorb before failing.One advantage of carbon is that we could design flex into the system by allowing the sidewall of the rim to act as a leaf spring.  This decouples the outer diameter of the rim from the inner, and by shaping the rim we could allow it to essentially act similarly to a tire.  While the conventional wisdom had been that the box section rim was comfortable because it could deflect radially inward, the reality is that to deflect inward in one place, it had to deflect outward somewhere else and all those spokes kept that from happening.  With carbon, we could engineer the flex into the cross section of the rim so while the inner diameter of the rim remained more or less round, the outer diameter could flex, this is almost exactly how a tire behaves.HighSpeed Video of 303 Prototype Impact - 3.5mm Rim Compression After Tire Bottom-OutThis video of a 303 prototype shows the ability of the very bulging rim to deform similarly to the tire, the cross-section of the rim can deflect outward allowing the rim to compress under load.PerceptionOnce we had the hard data on impact energy with the various tires and had developed new rim concepts that we believed could better handle the shock loads of the bottoming tire, we had an even larger problem: Perception.  The perception was that the 24mm tires were 'Faster' in dry conditions.  Now the problem with Perception and Convetional Wisdom is that it isn't always rooted in data, but is rather the result of people drawing correlations between features and benefits.  So when we talked with the riders we heard everything you can imagine about why 24's were faster in the dry and 27's in the wet, but the most logical was that the 27's allowed for lower pressure which meant more grip in the wet.  24's were also more aerodynamic according to the riders and this seemed logical as wider tires always bring a drag penalty from everything we'd ever seen.  So the challenge really became to make the wheel as fast with the 27 as the old wheel was with the 24. Making it AeroIn 2008 we went back to San Diego wind tunnel to look at the Ambrosio Crono with Roubaix tires along with numerous 303 concepts based around tires that wide. In a lot of ways it was a very liberating test for us. Out of desperation, we had thrown out all of the conventional wisdom and had made about 20 plastic prototype wheels (by Steriolithography) that were really, really outside the proverbial box. One of those was shape that would become the Hyper-Toroidal 303 that we went to production with and interestingly, the craziest of the lot was a wildly pear shaped thing we dubbed a 'Pear-oidal' rim shape that would ultimately become the impetus for the future Firecrest geometry wheelsRendering of 2010 27.5mm wide Hyper-Toroidal Rim vs 2007 22.5mm 303 both with 25mm Tire You can see here the dramatic difference between the 2007 rim and what became the 2010 rim. This would be the first Pave specific, cyclocross oriented rim anybody ever made, and it was very strange looking. I remember the first time we showed it to our sales/marketing team at Zipp. The response was anything but positive. "It'll have to win Roubaix if you expect anybody to buy such a damn ugly wheel,' was one of our favorite comments. I think most everybody had the same response at first, and of course with our 2015 perspective, it doesn't look at all out of the ordinary. However, the wind tunnel data spoke for itself. Wheel/Tire Tunnel Data From 2008 TestingIn many ways this testing was transformative for our entire team, and it ultimately changed much about our vision for future wheels.  Note on the graph that the 27.5mm wide rim with 24mm tire is very nearly identical in performance to the previous generation 22.5mm wide wheel with 24mm tire, and the wider rim with the 24mm tire was a very significant improvement over the previous rim with same tire.  This test was really the one that solidified the movement al all rims to very wide widths as previous to that only the 808 was 27.5 wide as it was necessary due to the depth.The data from this test as shown above became a critical factor in getting the riders to open their minds to using them again following the issues of 2008.  The difference between the aero wheel with a 27mm tire and the old wheel with the 24mm tire was between 15 and 30 watts depending on wind angle...that is a tremendous amount.  Now we can't think for a second that this changed anybody's mind.  Cancellara made a very good point that this only mattered to him if the other guy was on the 303, otherwise he would rather pick the more proven and robust wheel that was equal to what the other riders had, than to have a faster wheel that brought risk of a rim failure.  Changing PerceptionsFor 2009, we continued to try and convince Cancellara and CSC, but we were also working with the very technically advanced Cervelo Test Team, and with the help of CTT management were able to convince the riders to have a go on the carbon wheels, but it would require extensive testing.  However, the Backstedt failures still loomed large with many riders and others just couldn't come to terms with the 27mm tires, or the idea of carbon wheels being comfortable.  These are times where data is critical, but even in the face of very good data, perceptions can drive what the riders are feeling (or think they are feeling) and perceptions can drive doubt and doubt can be a very self-fulfilling thing.Our first test with CSC in the Arenburg that year brought highly variable results, ones which made no real sense and left our team, the riders, and the staff feeling uneasy.  The breakthrough came when we realized that amongst the 3 pumps on the team truck, we had a variability of 12psi when inflating to 70.  This all came in a fit of frustration when we plugged two of the pumps together on a valve stem ripped our of a tube, pumping the one to 70psi had the other pump showing 64psi and plumbing it to the third gave us 76psi.    Considering that we had been working to optimize pressures for riders like Thor Hushovd down in the region of 64 front / 70 rear, it was no wonder we were having intermittent failures and other issues.We were facing as much as 12 psi pressure difference depending on which pump was being used!We changed to only using one pump and completed testing with much better results, but the riders were still uneasy about the whole thing.  Before the CTT test we decided to improve the level of control.  We built a gauge setup we jokingly called 'The Truth' using a $500 Ashcroft 0.1% accuracy digital gauge, an old SILCA disc adapter and some precision industrial components to create a gauge with very high accuracy bleed.  The Truth was capable of bleeding pressure at a rate which could yield repeatable 0.05psi readings.  We knew that this accuracy and precision would be key to getting repeatable data and also to making sure that we got it absolutely right on race day.Photo of 'The Truth' Gauge Hanging out at the Service Course with Team SILCA Pump (2009)Now that we were properly prepared, the CTT testing went as smoothly as you could possibly imagine and the team was sold.  We spent a lot of time trying to find a good balance of comfort and feel for the riders by lowering pressures, but also safety margin for the wheels by not going too low.  This type of iterative testing takes a lot of time, but we found through use of power meter data that as the pressures decreased, the speeds also went up.  The better the ability of the tire to absorb the impacts of the cobbles, the more efficient the bike travelled over the cobbles.  Similarly, once the rim was routinely bottoming out, the speeds come down again.  It was as if we had opened a door into an entirely new critical variable in performance and were the first to begin imagining what benefits were there to be found.Roubaix 2009The Flanders-Roubaix week came and went in 2009 with little drama.  Thor Hushovd finished 3rd, the first podium for a carbon wheel at Roubaix and Roger Hammond finished 4th. Roger Hammond on way to 4th in 2009 Roubaix (photo from Cyclingweekly.com)The planning and preparation had done us well, Hushovd and Hammond 3rd and 4th.  Roger also pointed out something that would be critical to all future Roubaix attempts.  He noted that the latex tubes weep air, that is they allow air to slowly escape, which is why your tubular tires need to be inflated every day.  However, this request was that he noticed the tires were lower at the end of the race than the beginning and shouldn't we look at optimizing pressure for the Arenburg and then figure out what the race starting pressure should be since the two happen about 4 hours apart?It was immediately clear that for 2010 we would be spending a lot of time with 'The Truth' and a stopwatch..Tomorrow, April 10 we will Publish Part 3 of Road to Roubaix - This is the Final installment and will contain the 2010 data on Tire Stiffness, more aero information and some critical Rolling Resistance discussion.Click here for Part 1 of the Road to RoubaixClick here for Part 3 of the Road to Roubaix    </Input>
        <HelpLink />
        <Source>System</Source>
        <HResult>-2146233083</HResult>
        <StackTrace><![CDATA[   at System.Text.RegularExpressions.RegexRunner.DoCheckTimeout()
       at System.Text.RegularExpressions.RegexRunner.CheckTimeout()
       at System.Text.RegularExpressions.RegexInterpreter.Go()
       at System.Text.RegularExpressions.RegexRunner.Scan(Regex regex, String text, Int32 textbeg, Int32 textend, Int32 textstart, Int32 prevlen, Boolean quick, TimeSpan timeout)
       at System.Text.RegularExpressions.Regex.Run(Boolean quick, Int32 prevlen, String input, Int32 beginning, Int32 length, Int32 startat)
       at System.Text.RegularExpressions.Regex.Match(String input, Int32 startat)
       at Sdl.LanguagePlatform.Core.Segmentation.Context.MatchesAt(String s, Int32 position, Boolean assumeEof, Boolean followedByWordBreak)
       at Sdl.LanguagePlatform.Core.Segmentation.SegmentationContext.FindAllMatches(String input, Int32 startOffset, Boolean assumeEof, Boolean followedByWordBreak)
       at Sdl.LanguagePlatform.Core.Segmentation.SegmentationRule.FindAllMatches(String input, Int32 startOffset, Boolean assumeEof, Boolean followedByWordBreak)
       at Sdl.Core.LanguageProcessing.Segmentation.T8.T8SegmentationEngine.GetAllMatches(String text, Boolean assumeEof, Boolean followedByWordBreak)
       at Sdl.Core.LanguageProcessing.Segmentation.SegmentationEngineRunner.GetMatchDetails(List`1 textParts)
       at Sdl.Core.LanguageProcessing.Segmentation.SegmentationEngineRunner.FindAllBreaks()
       at Sdl.Core.LanguageProcessing.Segmentation.SegmentationEngineRunner.RunSegmentationEngine(SegmentationEngine engine, Tree tree)
       at Sdl.Core.LanguageProcessing.Segmentation.SegmentationTreeManager.RunSegmentationEngine(SegmentationEngine engine)
       at Sdl.Core.LanguageProcessing.Segmentation.Segmentor.CreateSegments(IAbstractMarkupDataContainer content, SegmentorUtility segmentorUtility)
       at Sdl.Core.LanguageProcessing.Segmentation.Segmentor.ProcessParagraph(IAbstractMarkupDataContainer paragraph)
       at Sdl.Core.LanguageProcessing.Segmentation.Segmentor.ProcessParagraphUnit(IParagraphUnit transUnit)
       at Sdl.FileTypeSupport.Framework.Core.Utilities.BilingualApi.BilingualContentHandlerAdapter.ProcessParagraphUnit(IParagraphUnit paragraphUnit)
       at Sdl.FileTypeSupport.Framework.Core.Utilities.BilingualApi.BilingualContentHandlerAdapter.ProcessParagraphUnit(IParagraphUnit paragraphUnit)
       at Sdl.FileTypeSupport.Framework.Integration.AbstractBilingualProcessorContainer.ProcessParagraphUnit(IParagraphUnit paragraphUnit)
       at Sdl.FileTypeSupport.Framework.BilingualApi.AbstractBilingualContentProcessor.ProcessParagraphUnit(IParagraphUnit paragraphUnit)
       at Sdl.FileTypeSupport.Framework.Integration.LocationMarkerLocator.ProcessParagraphUnit(IParagraphUnit paragraphUnit)
       at Sdl.FileTypeSupport.Framework.Integration.AbstractBilingualProcessorContainer.ProcessParagraphUnit(IParagraphUnit paragraphUnit)
       at Sdl.FileTypeSupport.Framework.Integration.FileExtractor.ProcessParagraphUnit(IParagraphUnit paragraphUnit)
       at Sdl.FileTypeSupport.Framework.Core.Utilities.BilingualApi.ParagraphUnitBuffer.ProcessParagraphUnit(IParagraphUnit pu)
       at Sdl.FileTypeSupport.Bilingual.SdlXliff.XliffFileReader.OutputParagraphUnit(IParagraphUnit pu)
       at Sdl.FileTypeSupport.Bilingual.SdlXliff.XliffFileReader.ParseLocalizableParagraphUnit(transunit transunit, LockTypeFlags lockFlags)
       at Sdl.FileTypeSupport.Bilingual.SdlXliff.XliffFileReader.ParseTransUnit(transunit transunit)
       at Sdl.FileTypeSupport.Bilingual.SdlXliff.XliffFileReader.OnTranslationUnit(XmlElement translationUnit)
       at Sdl.FileTypeSupport.Bilingual.SdlXliff.SdlXliffFeeder.<ContinueScanning>b__14_12(ISdlXliffStreamContentHandler handler)
       at System.Collections.Generic.List`1.ForEach(Action`1 action)
       at Sdl.FileTypeSupport.Bilingual.SdlXliff.SdlXliffFeeder.ContinueScanning()
       at Sdl.FileTypeSupport.Bilingual.SdlXliff.XliffFileReader.ContinueParsing()
       at Sdl.FileTypeSupport.Bilingual.SdlXliff.XliffFileReader.ParseNext()
       at Sdl.FileTypeSupport.Framework.Integration.FileExtractor.ParseNext()
       at Sdl.FileTypeSupport.Framework.Integration.MultiFileConverter.ParseNext()
       at Sdl.FileTypeSupport.Framework.Integration.MultiFileConverter.Parse()
       at Sdl.ProjectApi.Implementation.TaskExecution.ContentProcessingTaskImplementation.TaskFileExecuter.Parse(String targetFilePath)]]></StackTrace>
      </Exception>
      <Environment>
        <ProductName>Trados Studio</ProductName>
        <ProductVersion>Studio18</ProductVersion>
        <EntryAssemblyFileVersion>18.1.3.6657</EntryAssemblyFileVersion>
        <OperatingSystem>Microsoft Windows 10 Pro</OperatingSystem>
        <ServicePack>NULL</ServicePack>
        <OperatingSystemLanguage>1033</OperatingSystemLanguage>
        <CodePage>1256</CodePage>
        <LoggedOnUser>ADMINSAM\Ahmed</LoggedOnUser>
        <DotNetFrameWork>4.0.30319.42000</DotNetFrameWork>
        <ComputerName>ADMINSAM</ComputerName>
        <ConnectedToNetwork>True</ConnectedToNetwork>
        <PhysicalMemory>64653400 MB</PhysicalMemory>
      </Environment>
    </SDLErrorDetails>
    Edit Segmentation Rule window with fields for Description, Before break, Break characters, and After break. Regular Expression checkbox is selected under After break.

Children
  •  

    This isn't really the place for this discussion, a forum post would be better.  But I think there may be some fundamental misunderstandings here about how Trados's processing pipeline works and why the file type layer is the correct place to solve this.

    In Trados, the pipeline runs: file type parser -> tag classification (inline vs. structure) -> segmentation.  By the time the segmentation engine sees your content, the file type has already decided what's a tag, what's inline, and what's structural.  Asking the segmentation engine to retroactively handle tag classification is working against the architecture, not with it.  The Phrase comparison is also misleading.  Phrase probably has a fundamentally different processing architecture.  Saying "Phrase does it this way" doesn't mean Trados's separation of file parsing and segmentation is a limitation - it's a deliberate design choice that gives more granular control when used correctly.

    Can you provide me with a proper source file that exhibits this problem you are trying to solve so I know what we're dealing with?  Just a small sample should do it.  Can you also take this into a forum for this?  Otherwise your idea will get completely polluted with discussion that you can come back to later and just provide the summary of why this is still a good idea... or not.

  • Thanks Paul, but regardless of whether this should be posted in a forum post or not, my idea and request is very simple:

    Feature:
     Add "Tag" or "Structural Placeholder" as an option in the After break dropdown menu. 
    Feature: Implement a dedicated Import/Export button for Segmentation Rules, instead of having to do this rule after another.

    for the sample you requested, I am afraid it is confidential, but I will email it to you, as I would not want to show any client work here for the public. 

    Thanks a lot.

    Sameh