[
{
"verb" => "disallow",
"noun" => "text-and-data-mining",
"regex" => /
\b(?:do\s+not|does\s+not|must\s+not|may\s+not|shall\s+not|not\s+permit(?:ted)?|not\s+allow(?:ed)?|forbid(?:den|s)?|prohibit(?:ed|s)?)\b.{0,120}
\b(?:text\s+and\s+data\s+mining|text-and-data-mining|tdm)\b
/ix
},
{
"verb" => "disallow",
"noun" => "ai-training",
"regex" => /
\b(?:do\s+not|does\s+not|must\s+not|may\s+not|shall\s+not|not\s+permit(?:ted)?|not\s+allow(?:ed)?|forbid(?:den|s)?|prohibit(?:ed|s)?)\b.{0,120}
\b(?:ai\s+training|training\s+(?:of|for)\s+(?:ai|models?)|machine\s+learning|large\s+language\s+model|large\s+language\s+models|llm|generative\s+ai)\b
/ix
},
{
"verb" => "disallow",
"noun" => "index",
"regex" => /
\b(?:do\s+not|does\s+not|must\s+not|may\s+not|shall\s+not|not\s+permit(?:ted)?|not\s+allow(?:ed)?|forbid(?:den|s)?|prohibit(?:ed|s)?)\b.{0,120}
\b(?:index(?:ing)?|search\s+engine(?:s)?)\b
/ix
},
{
"verb" => "disallow",
"noun" => "fetch",
"regex" => /
\b(?:do\s+not|does\s+not|must\s+not|may\s+not|shall\s+not|not\s+permit(?:ted)?|not\s+allow(?:ed)?|forbid(?:den|s)?|prohibit(?:ed|s)?)\b.{0,120}
\b(?:crawl(?:ing)?|scrap(?:e|ing)|fetch(?:ing)?|bot(?:s)?)\b
/ix
},
{
"verb" => "allow",
"noun" => "text-and-data-mining",
"regex" => /\b(?:allow(?:ed|s)?|permit(?:ted|s)?|may|can)\b.{0,120}\b(?:text\s+and\s+data\s+mining|text-and-data-mining|tdm)\b/i
},
{
"verb" => "allow",
"noun" => "ai-training",
"regex" => /
\b(?:allow(?:ed|s)?|permit(?:ted|s)?|may|can)\b.{0,120}
\b(?:ai\s+training|training\s+(?:of|for)\s+(?:ai|models?)|machine\s+learning|large\s+language\s+model|large\s+language\s+models|llm|generative\s+ai)\b
/ix
},
{
"verb" => "allow",
"noun" => "index",
"regex" => /\b(?:allow(?:ed|s)?|permit(?:ted|s)?|may|can)\b.{0,120}\b(?:index(?:ing)?|search\s+engine(?:s)?)\b/i
},
{
"verb" => "allow",
"noun" => "fetch",
"regex" => /\b(?:allow(?:ed|s)?|permit(?:ted|s)?|may|can)\b.{0,120}\b(?:crawl(?:ing)?|scrap(?:e|ing)|fetch(?:ing)?|bot(?:s)?)\b/i
}
].freeze