Initial commit

This commit is contained in:
Feufochmar 2022-05-23 13:39:34 +02:00
commit 30f9d0296a
8 changed files with 1591 additions and 0 deletions

21
README.md Normal file
View File

@ -0,0 +1,21 @@
# AmyTron4000
A text generator based on rules.
# Rules
The rules are written in the files of the models directory. Each file correspond to a different generator, and the model is described here (format is json).
Each generator is described by an object containing the fields:
- `id`: the internal identifier of the generator.
- `name`: the name of the generator as displayed in the combobox listing the different generators.
- `description`: the description of the generator.
- `moredescription`: additionnal details on the generator.
- `issentence`: indicate if the generator outputs sentences or words.
- `rules`: a list of rules. One rule must have the id `"@output@"` to indicate the entry-point of the generator.
Each rule is described by an object containing the fields:
- `id`: an identifier for the rule
- `distribution`: a distribution of list of strings. The distribution associate the lists of strings with weights used in generation. If the list of strings contain a string whose value is the id of a rule, that string is replaced by a list generated from the indicated rule (recursively).
A distribution is a list containing objects with the following fields:
- `pattern`: a rule pattern, as a list of strings
- `occurences`: the weight associated to the pattern.

53
amytron.css Normal file
View File

@ -0,0 +1,53 @@
body {
margin-left: 1.5%;
margin-right: 1.5%;
background-color: hsl(230, 10%, 50%);
color: hsl(230, 10%, 10%);
border-color: hsl(230, 10%, 15%);
}
hr {
border-style: solid;
border-width: thin;
}
header {
background-color: hsl(230, 10%, 90%);
border-style: solid;
border-width: thin;
border-radius: 5px;
margin: 2px;
padding: 5px;
text-align: center;
}
footer {
background-color: hsl(230, 10%, 90%);
border-style: solid;
border-width: thin;
border-radius: 5px;
margin: 2px;
padding: 5px;
text-align: center;
}
article {
background-color: hsl(230, 10%, 90%);
border-style: solid;
border-width: thin;
border-radius: 5px;
margin: 2px;
padding: 10px;
}
p {
margin-left: 7px;
}
#generated-text {
font-size: 150%;
}

180
amytron.js Normal file
View File

@ -0,0 +1,180 @@
// AmyTron4000
// Gerenator for text
// Main object
var amytron = {}
// Discrete distribution
// The distribution object defines a discrete distribution
amytron.Distribution = function () {
this.total = 0 // Total number of elements in the distribution
this.items = new Map() // Map of item -> number of elements
}
// Add 'occur' number of 'elem' elements into the distribution
amytron.Distribution.prototype.addTo = function (elem, occur) {
this.total += occur
if (this.items.has(elem)) {
this.items.set(elem, occur + this.items.get(elem))
} else {
this.items.set(elem, occur)
}
}
// Pick a random element from the distribution
amytron.Distribution.prototype.pickFrom = function () {
var idx = Math.floor(Math.random() * this.total)
var acc = 0
var pick = undefined
for (var [elem, occur] of this.items)
{
acc += occur
pick = elem
if (acc > idx) {
break
}
}
return pick
}
// Rule generator
// This generator makes an array of elements from rules describing how to generate the array
// Each rule is associated to a distribution of patterns indicating how to replace a rule identifier
amytron.RuleGenerator = function () {
this.rules = new Map()
}
// Populate the rules table from a description
amytron.RuleGenerator.prototype.initializeFromDescription = function (description) {
for (var rule of description) {
var dist = new amytron.Distribution()
for (var pat of rule.distribution) {
dist.addTo(pat.pattern, pat.occurences)
}
this.rules.set(rule.id, dist)
}
}
// Generate an array of elements
amytron.RuleGenerator.prototype.generate = function () {
var replacePattern = function (rules, input) {
var output = new Array()
for (var i of input) {
if (rules.has(i)) {
output = output.concat(replacePattern(rules, rules.get(i).pickFrom()))
} else {
output.push(i)
}
}
return output
}
return replacePattern(this.rules, this.rules.get('@output@').pickFrom())
}
// Model of the amytron generator
amytron.model = {}
amytron.model.generators = new Map()
// Generate text from the generator id
amytron.generateText = function () {
var selector = document.getElementById('generator-selector')
var generatorId = selector.options[selector.selectedIndex].value
var generator = amytron.model.generators.get(generatorId)
document.getElementById('generated-text').innerHTML = generator.generate()
}
// Transform a list of strings to a formatted strings
amytron.formatText = function (input, isSentence) {
// Construct the output string from the list of strings.
var text = ""
if (isSentence) {
var first = true
for (var s of input) {
if (first) {
text += s.charAt(0).toUpperCase() + s.slice(1)
first = false
} else if (s.charAt(0).match(/\p{General_Category=Punctuation}/gu) != null) {
// No space before a punctuation
text += s
} else {
text += " " + s
}
}
text = text.trim() + "."
} else {
for (var s of input) {
text += s
}
}
// Construct the HTML content
return "<p>" + text + "</p>"
}
// Make a rule generator
amytron.makeRuleBasedGenerator = function (rules, isSentence) {
var ruleGenerator = new amytron.RuleGenerator()
ruleGenerator.initializeFromDescription(rules)
return function () {
var output = ruleGenerator.generate()
return amytron.formatText(output, isSentence)
}
}
// Parse a raw generator description
amytron.parseGenerator = function (gen) {
var generator = {}
generator.name = gen.name
generator.description = gen.description
generator.moredescription = gen.moredescription
generator.generate = amytron.makeRuleBasedGenerator(gen.rules, gen.issentence)
return generator
}
// Draw the amytron div
amytron.drawDiv = function (model) {
var contents = ''
contents += '<select id="generator-selector" onchange="amytron.updateDescription()">'
for (var [id, gen] of model.generators) {
contents += '<option value="' + id + '">' + gen.name + '</option>'
}
contents += '</select>'
contents += '<button onclick="amytron.generateText()">Generate</button>'
contents += '<br/>'
contents += '<div id="generator-description"><br/></div>'
contents += '<div id="generated-text"><br/></div>'
document.getElementById('amytron').innerHTML = contents
// Update the description
amytron.updateDescription()
}
// Draw the description
amytron.updateDescription = function () {
var selector = document.getElementById('generator-selector')
var generatorId = selector.options[selector.selectedIndex].value
var generator = amytron.model.generators.get(generatorId)
document.getElementById('generator-description').innerHTML = generator.description + "<br/>" + generator.moredescription
}
// Load the model
amytron.loadModel = function (gen) {
// Parse the raw model
amytron.model.generators.set(gen.id, amytron.parseGenerator(gen))
// Draw the amytron <div>
amytron.drawDiv(amytron.model)
}
// Loading function for Phonagen-htmljs
amytron.load = function (jsonFile) {
fetch(jsonFile)
.then(function(response) {
return response.json()
})
.then(amytron.loadModel)
}
// Load several files
amytron.loadAll = function (jsonFiles) {
for (file of jsonFiles) {
amytron.load(file)
}
}
// Export info
//module.exports = amytron

26
index.html Normal file
View File

@ -0,0 +1,26 @@
<!DOCTYPE html>
<html>
<head>
<title>AmyTron4000</title>
<meta charset="UTF-8" />
<link href="amytron.css" rel="stylesheet" type="text/css" media="all" />
<script src="amytron.js"></script>
</head>
<body>
<header>
<h1>AmyTron4000</h1>
</header>
<article>
<div id="amytron"></div>
</article>
<footer>AmyTron4000, made by Feufochmar.</footer>
</body>
<script>
amytron.loadAll([
'models/amytron.json',
'models/pipotron.json',
'models/villages.json',
'models/gatel.json'
]);
</script>
</html>

449
models/amytron.json Normal file
View File

@ -0,0 +1,449 @@
{
"id": "AmyTron4000",
"name": "AmyTron4000",
"description": "Salutations choquantes et insultantes.",
"moredescription": "Inspiré d'<a href=\"http://feuforeve.fr/ArnYtron3000\">ArnYtron3000</a>, qui est basé sur un ensemble de vraies citations.",
"issentence": true,
"rules": [
{
"id": "@HELLO@",
"distribution": [
{ "occurences": 80, "pattern": ["salut"] },
{ "occurences": 15, "pattern": ["bonjour"] },
{ "occurences": 15, "pattern": ["bonsoir"] },
{ "occurences": 5, "pattern": ["hey"] },
{ "occurences": 1, "pattern": ["bonne", "année"] },
{ "occurences": 1, "pattern": ["joyeux", "Noël"] },
{ "occurences": 1, "pattern": ["joyeuses", "Pâques"] },
{ "occurences": 1, "pattern": ["piou", "piou"] },
{ "occurences": 1, "pattern": ["bonne", "Saint-Valentin"] },
{ "occurences": 1, "pattern": ["prem's"] },
{ "occurences": 5, "pattern": ["bonne", "fête"] },
{ "occurences": 1, "pattern": ["bien", "le", "bonsoir"] },
{ "occurences": 1, "pattern": ["re"] },
{ "occurences": 1, "pattern": ["reuh"] },
{ "occurences": 1, "pattern": ["plop"] },
{ "occurences": 1, "pattern": ["debout"] },
{ "occurences": 1, "pattern": ["resalut"] }
]
},
{
"id": "@MASC_ADJ_EPI@",
"distribution": [
{ "occurences": 20, "pattern": [""] },
{ "occurences": 1, "pattern": ["grands"] },
{ "occurences": 1, "pattern": ["petits"] },
{ "occurences": 3, "pattern": ["vieux"] },
{ "occurences": 1, "pattern": ["jeunes"] },
{ "occurences": 2, "pattern": ["nouveaux"] },
{ "occurences": 1, "pattern": ["pauvres"] },
{ "occurences": 1, "pattern": ["gentils"] },
{ "occurences": 1, "pattern": ["méchants"] },
{ "occurences": 1, "pattern": ["gros"] },
{ "occurences": 1, "pattern": ["beaux"] },
{ "occurences": 1, "pattern": ["joyeux"] },
{ "occurences": 1, "pattern": ["merveilleux"] },
{ "occurences": 1, "pattern": ["sales"] }
]
},
{
"id": "@FEMI_ADJ_EPI@",
"distribution": [
{ "occurences": 20, "pattern": [""] },
{ "occurences": 1, "pattern": ["grandes"] },
{ "occurences": 1, "pattern": ["petites"] },
{ "occurences": 3, "pattern": ["vieilles"] },
{ "occurences": 1, "pattern": ["jeunes"] },
{ "occurences": 2, "pattern": ["nouvelles"] },
{ "occurences": 1, "pattern": ["pauvres"] },
{ "occurences": 1, "pattern": ["gentilles"] },
{ "occurences": 1, "pattern": ["méchantes"] },
{ "occurences": 1, "pattern": ["grosses"] },
{ "occurences": 1, "pattern": ["belles"] },
{ "occurences": 1, "pattern": ["joyeuses"] },
{ "occurences": 1, "pattern": ["merveilleuses"] },
{ "occurences": 1, "pattern": ["sales"] }
]
},
{
"id": "@MASC_NOM@",
"distribution": [
{ "occurences": 1, "pattern": ["enfants", "de", "cœur"] },
{ "occurences": 1, "pattern": ["geeks"] },
{ "occurences": 1, "pattern": ["clouds", "computés"] },
{ "occurences": 1, "pattern": ["hackers"] },
{ "occurences": 1, "pattern": ["gens"] },
{ "occurences": 1, "pattern": ["gens", "bons"] },
{ "occurences": 1, "pattern": ["jambons"] },
{ "occurences": 1, "pattern": ["saucissons"] },
{ "occurences": 1, "pattern": ["boudins"] },
{ "occurences": 1, "pattern": ["putois"] },
{ "occurences": 1, "pattern": ["amis"] },
{ "occurences": 1, "pattern": ["phallus"] },
{ "occurences": 1, "pattern": ["vers", "solitaires"] },
{ "occurences": 1, "pattern": ["snipers", "en", "embuscade"] },
{ "occurences": 1, "pattern": ["clodos"] },
{ "occurences": 1, "pattern": ["suce-pines"] },
{ "occurences": 1, "pattern": ["suce-boules"] },
{ "occurences": 1, "pattern": ["lèche-bottes"] },
{ "occurences": 1, "pattern": ["morpions"] },
{ "occurences": 1, "pattern": ["bucherons"] },
{ "occurences": 1, "pattern": ["routiers"] },
{ "occurences": 1, "pattern": ["éboueurs"] },
{ "occurences": 1, "pattern": ["pisciculteurs"] },
{ "occurences": 1, "pattern": ["hippopotames"] },
{ "occurences": 1, "pattern": ["cosmonautes"] },
{ "occurences": 1, "pattern": ["internautes"] },
{ "occurences": 1, "pattern": ["déménageurs"] },
{ "occurences": 1, "pattern": ["garagistes"] },
{ "occurences": 1, "pattern": ["consirationnistes"] },
{ "occurences": 1, "pattern": ["lombrics"] },
{ "occurences": 1, "pattern": ["étalons"] },
{ "occurences": 1, "pattern": ["goths"] },
{ "occurences": 1, "pattern": ["anorexiques"] },
{ "occurences": 1, "pattern": ["producteurs", "de", "miel"] },
{ "occurences": 1, "pattern": ["éleveurs", "de", "fourmililers"] },
{ "occurences": 1, "pattern": ["vendeurs", "de", "machine", "à", "coudre"] },
{ "occurences": 1, "pattern": ["vampires"] },
{ "occurences": 1, "pattern": ["nonagénaires"] },
{ "occurences": 1, "pattern": ["grailleux", "du", "ciboulot"] },
{ "occurences": 1, "pattern": ["zozios"] },
{ "occurences": 1, "pattern": ["zozos"] },
{ "occurences": 1, "pattern": ["ploucs"] },
{ "occurences": 1, "pattern": ["résidus", "de", "fond", "de", "capotes", "percées"] },
{ "occurences": 1, "pattern": ["furoncles"] },
{ "occurences": 1, "pattern": ["résidus", "d'hémorroïdes", "de", "porc"] },
{ "occurences": 1, "pattern": ["coprophages"] },
{ "occurences": 1, "pattern": ["gougnafiers"] },
{ "occurences": 1, "pattern": ["glouglouteurs", "de", "poireaux"] },
{ "occurences": 1, "pattern": ["buveurs", "de", "piquette"] },
{ "occurences": 1, "pattern": ["buveurs", "d'alcool", "frelaté"] },
{ "occurences": 1, "pattern": ["grouillots"] },
{ "occurences": 1, "pattern": ["copains"] },
{ "occurences": 1, "pattern": ["zizis"] },
{ "occurences": 1, "pattern": ["minions"] },
{ "occurences": 1, "pattern": ["cyclistes"] },
{ "occurences": 1, "pattern": ["linuxiens"] },
{ "occurences": 1, "pattern": ["libristes"] },
{ "occurences": 1, "pattern": ["grumeaux"] },
{ "occurences": 1, "pattern": ["chéris"] },
{ "occurences": 1, "pattern": ["linuxoïds"] },
{ "occurences": 1, "pattern": ["loubards"] },
{ "occurences": 1, "pattern": ["babouins"] },
{ "occurences": 1, "pattern": ["curés"] },
{ "occurences": 1, "pattern": ["acteurs", "porno"] },
{ "occurences": 1, "pattern": ["pépés"] },
{ "occurences": 1, "pattern": ["fous"] },
{ "occurences": 1, "pattern": ["parasites"] }
]
},
{
"id": "@FEMI_NOM@",
"distribution": [
{ "occurences": 1, "pattern": ["tranches", "de", "hareng", "saur"] },
{ "occurences": 1, "pattern": ["productrices", "de", "miel"] },
{ "occurences": 1, "pattern": ["éleveuses", "de", "kangourous"] },
{ "occurences": 1, "pattern": ["vendeuses", "de", "machine", "à", "coudre"] },
{ "occurences": 1, "pattern": ["actrices", "porno"] },
{ "occurences": 1, "pattern": ["mémés"] },
{ "occurences": 1, "pattern": ["bites", "crochues"] },
{ "occurences": 1, "pattern": ["graines", "germées"] },
{ "occurences": 2, "pattern": ["motocrottes"] },
{ "occurences": 1, "pattern": ["pouffes"] },
{ "occurences": 1, "pattern": ["biques"] },
{ "occurences": 1, "pattern": ["rates"] },
{ "occurences": 1, "pattern": ["marmottes"] },
{ "occurences": 1, "pattern": ["baleines"] },
{ "occurences": 1, "pattern": ["juments"] },
{ "occurences": 1, "pattern": ["vaches"] },
{ "occurences": 1, "pattern": ["chèvres"] },
{ "occurences": 1, "pattern": ["chattes"] },
{ "occurences": 1, "pattern": ["chiennes"] },
{ "occurences": 1, "pattern": ["folles"] },
{ "occurences": 1, "pattern": ["copines"] },
{ "occurences": 1, "pattern": ["fientes"] },
{ "occurences": 1, "pattern": ["moules", "frites"] },
{ "occurences": 1, "pattern": ["dompteuses", "de", "slips"] },
{ "occurences": 2, "pattern": ["berniques"] },
{ "occurences": 2, "pattern": ["bouchères"] },
{ "occurences": 1, "pattern": ["loques"] },
{ "occurences": 1, "pattern": ["bites", "de", "mammouth"] },
{ "occurences": 1, "pattern": ["peaux"] },
{ "occurences": 1, "pattern": ["raclures", "de", "bidet"] }
]
},
{
"id": "@MASC_ADJ@",
"distribution": [
{ "occurences": 1, "pattern": ["infiltrés"] },
{ "occurences": 1, "pattern": ["nus"] },
{ "occurences": 1, "pattern": ["intéressants"] },
{ "occurences": 1, "pattern": ["membrés", "comme", "des", "saucisses", "de", "Strasbourg"] },
{ "occurences": 1, "pattern": ["priapiques"] },
{ "occurences": 1, "pattern": ["machos"] },
{ "occurences": 1, "pattern": ["atteints", "de", "priapisme", "soudain"] },
{ "occurences": 1, "pattern": ["pris", "de", "diarrhée", "soudaine"] },
{ "occurences": 1, "pattern": ["roux"] },
{ "occurences": 1, "pattern": ["pervers"] },
{ "occurences": 1, "pattern": ["sodomites"] },
{ "occurences": 1, "pattern": ["huilés"] },
{ "occurences": 1, "pattern": ["bien", "membrés"] },
{ "occurences": 1, "pattern": ["scatophiles"] },
{ "occurences": 1, "pattern": ["sadomasos"] },
{ "occurences": 1, "pattern": ["albinos"] },
{ "occurences": 1, "pattern": ["chauves"] },
{ "occurences": 1, "pattern": ["onanistes"] },
{ "occurences": 1, "pattern": ["vermoulus", "du", "bout"] },
{ "occurences": 1, "pattern": ["glauques"] },
{ "occurences": 1, "pattern": ["odorants"] },
{ "occurences": 1, "pattern": ["traffiquants", "d'ostie"] },
{ "occurences": 1, "pattern": ["champions", "du", "monde", "de", "natation"] },
{ "occurences": 1, "pattern": ["moisis", "du", "kiki"] },
{ "occurences": 1, "pattern": ["désanussés"] },
{ "occurences": 1, "pattern": ["mous", "du", "gland"] },
{ "occurences": 1, "pattern": ["mous", "du", "genou"] },
{ "occurences": 1, "pattern": ["couverts", "d'huile", "d'olive"] },
{ "occurences": 1, "pattern": ["déguisés", "en", "barbies", "pour", "appater", "les", "petits", "enfants"] },
{ "occurences": 1, "pattern": ["enculeurs", "de", "mouches"] },
{ "occurences": 1, "pattern": ["cagueurs", "volants"] },
{ "occurences": 1, "pattern": ["mal", "cagués"] },
{ "occurences": 1, "pattern": ["rassasiés"] },
{ "occurences": 1, "pattern": ["tous", "pourris"] },
{ "occurences": 1, "pattern": ["nudistes"] },
{ "occurences": 1, "pattern": ["velus", "du", "dos"] },
{ "occurences": 1, "pattern": ["siamois"] },
{ "occurences": 1, "pattern": ["enduits", "d'huile", "de", "palme", "de", "canard"] },
{ "occurences": 1, "pattern": ["saumâtres"] },
{ "occurences": 1, "pattern": ["mous"] },
{ "occurences": 1, "pattern": ["flasques"] },
{ "occurences": 1, "pattern": ["inventés", "par", "un", "vampire", "scatophile"] },
{ "occurences": 1, "pattern": ["pelés"] },
{ "occurences": 1, "pattern": ["prostitués"] },
{ "occurences": 1, "pattern": ["accros", "à", "la", "tisane", "de", "pneu"] },
{ "occurences": 1, "pattern": ["accros", "à", "la", "saucisse"] },
{ "occurences": 1, "pattern": ["humains"] },
{ "occurences": 1, "pattern": ["imbibés", "d'alcool"] },
{ "occurences": 1, "pattern": ["caramelisés", "sauce", "bbq"] }
]
},
{
"id": "@FEMI_ADJ@",
"distribution": [
{ "occurences": 1, "pattern": ["infiltrées"] },
{ "occurences": 1, "pattern": ["nues"] },
{ "occurences": 1, "pattern": ["intéressantes"] },
{ "occurences": 1, "pattern": ["membrées", "comme", "des", "saucisses", "de", "Strasbourg"] },
{ "occurences": 1, "pattern": ["priapiques"] },
{ "occurences": 1, "pattern": ["machos"] },
{ "occurences": 1, "pattern": ["atteintes", "de", "priapisme", "soudain"] },
{ "occurences": 1, "pattern": ["prises", "de", "diarrhée", "soudaine"] },
{ "occurences": 1, "pattern": ["rousses"] },
{ "occurences": 1, "pattern": ["perverses"] },
{ "occurences": 1, "pattern": ["sodomites"] },
{ "occurences": 1, "pattern": ["huilées"] },
{ "occurences": 1, "pattern": ["bien", "membrées"] },
{ "occurences": 1, "pattern": ["scatophiles"] },
{ "occurences": 1, "pattern": ["sadomasos"] },
{ "occurences": 1, "pattern": ["albinos"] },
{ "occurences": 1, "pattern": ["chauves"] },
{ "occurences": 1, "pattern": ["onanistes"] },
{ "occurences": 1, "pattern": ["vermoulues", "du", "bout"] },
{ "occurences": 1, "pattern": ["glauques"] },
{ "occurences": 1, "pattern": ["odorantes"] },
{ "occurences": 1, "pattern": ["traffiquantes", "d'ostie"] },
{ "occurences": 1, "pattern": ["championnes", "du", "monde", "de", "natation"] },
{ "occurences": 1, "pattern": ["moisies", "du", "kiki"] },
{ "occurences": 1, "pattern": ["désanussées"] },
{ "occurences": 1, "pattern": ["molles", "du", "gland"] },
{ "occurences": 1, "pattern": ["molles", "du", "genou"] },
{ "occurences": 1, "pattern": ["couvertes", "d'huile", "d'olive"] },
{ "occurences": 1, "pattern": ["déguisées", "en", "barbies", "pour", "appater", "les", "petits", "enfants"] },
{ "occurences": 1, "pattern": ["enculeuses", "de", "mouches"] },
{ "occurences": 1, "pattern": ["cagueuses", "volantes"] },
{ "occurences": 1, "pattern": ["mal", "caguées"] },
{ "occurences": 1, "pattern": ["rassasiées"] },
{ "occurences": 1, "pattern": ["toutes", "pourries"] },
{ "occurences": 1, "pattern": ["nudistes"] },
{ "occurences": 1, "pattern": ["velues", "du", "dos"] },
{ "occurences": 1, "pattern": ["siamoises"] },
{ "occurences": 1, "pattern": ["enduites", "d'huile", "de", "palme", "de", "canard"] },
{ "occurences": 1, "pattern": ["saumâtres"] },
{ "occurences": 1, "pattern": ["molles"] },
{ "occurences": 1, "pattern": ["flasques"] },
{ "occurences": 1, "pattern": ["inventées", "par", "un", "vampire", "scatophile"] },
{ "occurences": 1, "pattern": ["pelées"] },
{ "occurences": 1, "pattern": ["prostituées"] },
{ "occurences": 1, "pattern": ["accros", "à", "la", "tisane", "de", "pneu"] },
{ "occurences": 1, "pattern": ["accros", "à", "la", "saucisse"] },
{ "occurences": 1, "pattern": ["humaines"] },
{ "occurences": 1, "pattern": ["imbibées", "d'alcool"] },
{ "occurences": 1, "pattern": ["caramelisées", "sauce", "bbq"] }
]
},
{
"id": "@COMP_NOM@",
"distribution": [
{ "occurences": 40, "pattern": [""] },
{ "occurences": 1, "pattern": ["au", "gland", "lumineux"] },
{ "occurences": 1, "pattern": ["à", "poil", "ras"] },
{ "occurences": 1, "pattern": ["au", "corps", "d'athlète", "musclé", "et", "bronzé", "luisant"] },
{ "occurences": 1, "pattern": ["à", "la", "poitrine", "digne", "de", "Lolo", "Ferrari"] },
{ "occurences": 1, "pattern": ["à", "face", "de", "pizza"] },
{ "occurences": 1, "pattern": ["pro", "Bush"] },
{ "occurences": 1, "pattern": ["pro", "Trump"] },
{ "occurences": 1, "pattern": ["de", "poche"] },
{ "occurences": 1, "pattern": ["à", "laine"] },
{ "occurences": 1, "pattern": ["à", "l'haleine", "malsaine"] },
{ "occurences": 1, "pattern": ["en", "érection"] },
{ "occurences": 1, "pattern": ["du", "samedi"] },
{ "occurences": 1, "pattern": ["du", "dimanche"] },
{ "occurences": 1, "pattern": ["à", "moustache"] },
{ "occurences": 1, "pattern": ["à", "anneaux", "péniens"] },
{ "occurences": 1, "pattern": ["à", "fourrure", "de", "muppets"] },
{ "occurences": 1, "pattern": ["en", "tee-shirt", "moulant"] },
{ "occurences": 1, "pattern": ["en", "fursuit"] },
{ "occurences": 1, "pattern": ["avec", "une", "chemise", "déboutonnée"] },
{ "occurences": 1, "pattern": ["en", "culotte", "courte"] },
{ "occurences": 1, "pattern": ["en", "monokini"] },
{ "occurences": 1, "pattern": ["en", "slip", "kangourou", "léopard"] },
{ "occurences": 1, "pattern": ["en", "bikini", "fluo"] },
{ "occurences": 1, "pattern": ["en", "tutu"] },
{ "occurences": 1, "pattern": ["en", "moule", "bite"] },
{ "occurences": 1, "pattern": ["en", "combi", "spandex", "vert"] },
{ "occurences": 1, "pattern": ["en", "tutu", "à", "paillettes"] },
{ "occurences": 1, "pattern": ["en", "string"] },
{ "occurences": 1, "pattern": ["en", "pleurs", "suite", "à", "la", "mort", "de", "leur", "idole"] }
]
},
{
"id": "@MASC_ADJECTIF@",
"distribution": [
{ "occurences": 10, "pattern": [""] },
{ "occurences": 25, "pattern": ["@MASC_ADJ@"] },
{ "occurences": 5, "pattern": ["@MASC_ADJ@", "et", "@MASC_ADJ@"] }
]
},
{
"id": "@FEMI_ADJECTIF@",
"distribution": [
{ "occurences": 10, "pattern": [""] },
{ "occurences": 25, "pattern": ["@FEMI_ADJ@"] },
{ "occurences": 5, "pattern": ["@FEMI_ADJ@", "et", "@FEMI_ADJ@"] }
]
},
{
"id": "@NOMINAL@",
"distribution": [
{ "occurences": 70, "pattern": ["@MASC_ADJ_EPI@", "@MASC_NOM@", "@MASC_ADJECTIF@", "@COMP_NOM@"] },
{ "occurences": 30, "pattern": ["@FEMI_ADJ_EPI@", "@FEMI_NOM@", "@FEMI_ADJECTIF@", "@COMP_NOM@"] }
]
},
{
"id": "@COMP_LIEU@",
"distribution": [
{ "occurences": 15, "pattern": [""] },
{ "occurences": 1, "pattern": ["dans", "la", "cour", "de", "récré"] },
{ "occurences": 1, "pattern": ["sur", "la", "plage", "nudiste"] },
{ "occurences": 1, "pattern": ["dans", "les", "toilettes", "publiques"] },
{ "occurences": 1, "pattern": ["dans", "le", "métro"] },
{ "occurences": 1, "pattern": ["sur", "une", "piste", "de", "ski"] },
{ "occurences": 1, "pattern": ["aux", "puces", "de", "Saint-Ouen"] },
{ "occurences": 1, "pattern": ["à", "Pigale"] },
{ "occurences": 1, "pattern": ["à", "Disneyland"] },
{ "occurences": 1, "pattern": ["sur", "Internet"] },
{ "occurences": 1, "pattern": ["sur", "le", "bord", "du", "périf", "parisien"] },
{ "occurences": 1, "pattern": ["sur", "les", "Champs", "Élysées"] },
{ "occurences": 1, "pattern": ["sur", "la", "place", "de", "l'église"] },
{ "occurences": 1, "pattern": ["au", "rayon", "rôtisserie", "de", "Carrefour"] },
{ "occurences": 1, "pattern": ["dans", "l'Aisne"] },
{ "occurences": 1, "pattern": ["dans", "la", "Creuse"] },
{ "occurences": 1, "pattern": ["sur", "la", "Côte d'Azur"] },
{ "occurences": 1, "pattern": ["dans", "un", "squat", "à", "Woippy"] },
{ "occurences": 1, "pattern": ["dans", "les", "maisons", "closes"] },
{ "occurences": 1, "pattern": ["au", "milieu", "d'une", "salle", "de", "cinéma", "X"] },
{ "occurences": 1, "pattern": ["dans", "de", "la", "bouse", "de", "chameau"] },
{ "occurences": 1, "pattern": ["dans", "de", "la", "bouse", "de", "vache"] },
{ "occurences": 1, "pattern": ["sur", "leurs", "mobilettes", "oranges"] },
{ "occurences": 1, "pattern": ["sur", "leurs", "vélos", "fluos"] },
{ "occurences": 1, "pattern": ["en", "plein", "cagnard"] },
{ "occurences": 1, "pattern": ["au", "soleil"] }
]
},
{
"id": "@COMP_TEMPS@",
"distribution": [
{ "occurences": 15, "pattern": [""] },
{ "occurences": 1, "pattern": ["le", "lundi", "matin"] },
{ "occurences": 1, "pattern": ["le", "samedi", "soir"] },
{ "occurences": 1, "pattern": ["le", "dimanche", "matin"] },
{ "occurences": 1, "pattern": ["le", "dimanche", "soir"] },
{ "occurences": 1, "pattern": ["pendant", "le", "journal", "télévisé"] },
{ "occurences": 1, "pattern": ["pendant", "la", "messe"] },
{ "occurences": 1, "pattern": ["en", "plein", "hiver"] },
{ "occurences": 1, "pattern": ["en", "plein", "été"] },
{ "occurences": 1, "pattern": ["à", "l'heure", "du", "déjeuner"] },
{ "occurences": 1, "pattern": ["à", "l'heure", "du", "goûter"] }
]
},
{
"id": "@COMP_ACTION@",
"distribution": [
{ "occurences": 1, "pattern": ["dansant", "le", "jerk"] },
{ "occurences": 1, "pattern": ["dansant", "la", "tecktonik"] },
{ "occurences": 1, "pattern": ["travaillant", "dur"] },
{ "occurences": 1, "pattern": ["faisant", "du", "skate"] },
{ "occurences": 1, "pattern": ["souffrant", "de", "diarrhée", "explosive", "pleine", "de", "parasites"] },
{ "occurences": 1, "pattern": ["faisant", "la", "manche"] },
{ "occurences": 1, "pattern": ["jouant", "à", "cache-cache"] },
{ "occurences": 1, "pattern": ["ayant", "pignon", "sur", "rue"] },
{ "occurences": 1, "pattern": ["rêvant", "de", "troncs", "à", "raboter"] },
{ "occurences": 1, "pattern": ["grouillant", "sur", "des", "hémorroïdes"] },
{ "occurences": 1, "pattern": ["fumant", "à", "la", "pipe", "du", "crotin", "d'âne", "corse"] },
{ "occurences": 1, "pattern": ["fumant", "des", "joints"] },
{ "occurences": 1, "pattern": ["flatulant", "dans", "l'eau", "du", "bain"] },
{ "occurences": 1, "pattern": ["se", "triturant", "la", "frite"] },
{ "occurences": 1, "pattern": ["se", "triturant", "la", "nouille"] },
{ "occurences": 1, "pattern": ["en", "train", "de", "tapiner"] },
{ "occurences": 1, "pattern": ["en", "train", "de", "se", "faire", "un", "bbq"] },
{ "occurences": 1, "pattern": ["se", "badigeonnant", "de", "crème", "solaire"] },
{ "occurences": 1, "pattern": ["forniquant", "sur", "le", "cul", "d'une", "vache"] }
]
},
{
"id": "@COMPLEMENT@",
"distribution": [
{ "occurences": 25, "pattern": [""] },
{ "occurences": 25, "pattern": ["@COMP_ACTION@", "@COMP_LIEU@", "@COMP_TEMPS@"] }
]
},
{
"id": "@PROPOSITION@",
"distribution": [
{ "occurences": 40, "pattern": [""] },
{ "occurences": 1, "pattern": ["sur", "lesquels", "je", "défèque", "beaucoup"] },
{ "occurences": 1, "pattern": ["pour", "lesquels", "mon", "dédain", "est", "sans", "limite"] },
{ "occurences": 1, "pattern": ["pour", "lesquels", "mon", "estime", "est", "au", "raz", "des", "pâquerettes"] },
{ "occurences": 1, "pattern": ["que", "j'hais"] },
{ "occurences": 1, "pattern": ["que", "j'exècre"] },
{ "occurences": 1, "pattern": ["que", "j'abhorre"] },
{ "occurences": 1, "pattern": ["que", "je", "déteste"] },
{ "occurences": 1, "pattern": ["qui", "pleurent"] },
{ "occurences": 1, "pattern": ["qui", "puent", "du", "bec"] }
]
},
{
"id": "@DET@",
"distribution": [
{ "occurences": 90, "pattern": ["les"] },
{ "occurences": 7, "pattern": ["mes"] },
{ "occurences": 3, "pattern": ["bande", "de"] }
]
},
{
"id": "@output@",
"distribution": [
{ "occurences": 1, "pattern": ["@HELLO@", "@DET@", "@NOMINAL@", "@COMPLEMENT@", "@PROPOSITION@"] }
]
}
]
}

356
models/gatel.json Normal file
View File

@ -0,0 +1,356 @@
{
"id": "Gatel",
"name": "Gatel",
"description": "Definitions for generated words of a construct language.",
"moredescription": "The definitions are taken or adapted from the concepts of <a href=\"https://concepticon.clld.org\">Concepticon</a>.",
"issentence": false,
"rules": [
{
"id": "@Plosive@",
"distribution": [
{ "occurences": 5, "pattern": ["p"] },
{ "occurences": 20, "pattern": ["b"] },
{ "occurences": 2, "pattern": ["t"] },
{ "occurences": 14, "pattern": ["d"] },
{ "occurences": 9, "pattern": ["k"] },
{ "occurences": 32, "pattern": ["g"] }
]
},
{
"id": "@Affricate@",
"distribution": [
{ "occurences": 5, "pattern": ["pf"] },
{ "occurences": 20, "pattern": ["bv"] },
{ "occurences": 2, "pattern": ["ts"] },
{ "occurences": 14, "pattern": ["dz"] },
{ "occurences": 9, "pattern": ["kx"] },
{ "occurences": 32, "pattern": ["gj"] }
]
},
{
"id": "@Consonant1@",
"distribution": [
{ "occurences": 50, "pattern": [""] },
{ "occurences": 20, "pattern": ["l"] },
{ "occurences": 14, "pattern": ["r"] },
{ "occurences": 2, "pattern": ["y\u0308"] },
{ "occurences": 9, "pattern": ["u\u0308"] },
{ "occurences": 5, "pattern": ["i\u0308"] }
]
},
{
"id": "@Vowel@",
"distribution": [
{ "occurences": 2, "pattern": ["y"] },
{ "occurences": 14, "pattern": ["u"] },
{ "occurences": 20, "pattern": ["i"] },
{ "occurences": 32, "pattern": ["a"] },
{ "occurences": 5, "pattern": ["o"] },
{ "occurences": 9, "pattern": ["e"] }
]
},
{
"id": "@ConsonantCoda@",
"distribution": [
{ "occurences": 40, "pattern": [""] },
{ "occurences": 5, "pattern": ["y\u0308"] },
{ "occurences": 1, "pattern": ["u\u0308"] },
{ "occurences": 10, "pattern": ["i\u0308"] },
{ "occurences": 13, "pattern": ["n"] },
{ "occurences": 3, "pattern": ["m"] },
{ "occurences": 17, "pattern": ["ŋ"] },
{ "occurences": 7, "pattern": ["l"] },
{ "occurences": 2, "pattern": ["r"] }
]
},
{
"id": "@Consonant2@",
"distribution": [
{ "occurences": 55, "pattern": ["@Consonant20@"] },
{ "occurences": 20, "pattern": ["@Consonant21@", "@Consonant22@"] }
]
},
{
"id": "@Consonant20@",
"distribution": [
{ "occurences": 13, "pattern": ["n"] },
{ "occurences": 16, "pattern": ["m"] },
{ "occurences": 10, "pattern": ["ŋ"] },
{ "occurences": 27, "pattern": ["d"] },
{ "occurences": 23, "pattern": ["b"] },
{ "occurences": 37, "pattern": ["g"] },
{ "occurences": 152, "pattern": ["t"] },
{ "occurences": 97, "pattern": ["p"] },
{ "occurences": 117, "pattern": ["k"] },
{ "occurences": 82, "pattern": ["z"] },
{ "occurences": 48, "pattern": ["v"] },
{ "occurences": 71, "pattern": ["j"] },
{ "occurences": 54, "pattern": ["s"] },
{ "occurences": 42, "pattern": ["f"] },
{ "occurences": 62, "pattern": ["x"] },
{ "occurences": 2, "pattern": ["y\u0308"] },
{ "occurences": 5, "pattern": ["u\u0308"] },
{ "occurences": 7, "pattern": ["i\u0308"] },
{ "occurences": 32, "pattern": ["l"] },
{ "occurences": 20, "pattern": ["r"] }
]
},
{
"id": "@Consonant21@",
"distribution": [
{ "occurences": 28, "pattern": ["n"] },
{ "occurences": 6, "pattern": ["m"] },
{ "occurences": 3, "pattern": ["ŋ"] },
{ "occurences": 40, "pattern": ["d"] },
{ "occurences": 34, "pattern": ["b"] },
{ "occurences": 88, "pattern": ["g"] },
{ "occurences": 170, "pattern": ["t"] },
{ "occurences": 75, "pattern": ["p"] },
{ "occurences": 129, "pattern": ["k"] },
{ "occurences": 55, "pattern": ["z"] },
{ "occurences": 10, "pattern": ["v"] },
{ "occurences": 64, "pattern": ["j"] },
{ "occurences": 47, "pattern": ["s"] },
{ "occurences": 14, "pattern": ["f"] },
{ "occurences": 105, "pattern": ["x"] },
{ "occurences": 23, "pattern": ["l"] },
{ "occurences": 19, "pattern": ["r"] }
]
},
{
"id": "@Consonant22@",
"distribution": [
{ "occurences": 9, "pattern": ["y\u0308"] },
{ "occurences": 23, "pattern": ["u\u0308"] },
{ "occurences": 46, "pattern": ["i\u0308"] }
]
},
{
"id": "@Gatel@",
"distribution": [
{ "occurences": 80, "pattern": ["@Plosive@", "@Consonant1@", "@Vowel@", "@ConsonantCoda@", "@Consonant2@", "@Vowel@", "@ConsonantCoda@"] },
{ "occurences": 20, "pattern": ["@Affricate@", "@Vowel@", "@ConsonantCoda@", "@Consonant2@", "@Vowel@", "@ConsonantCoda@"] }
]
},
{
"id": "@Meaning@",
"distribution": [
{ "occurences": 1, "pattern": ["I/me; 1st person singular"] },
{ "occurences": 1, "pattern": ["you/thou; 2nd person singular"] },
{ "occurences": 1, "pattern": ["he/him/she/her; 3rd person singular"] },
{ "occurences": 1, "pattern": ["we/us; 1st person plural"] },
{ "occurences": 1, "pattern": ["you; 2nd person plural"] },
{ "occurences": 1, "pattern": ["they/them; 3rd person plural"] },
{ "occurences": 1, "pattern": ["this; the indicated object, item, etc. close to the speaker"] },
{ "occurences": 1, "pattern": ["that; the indicated object, item, etc. distant from the speaker"] },
{ "occurences": 1, "pattern": ["here; at this place"] },
{ "occurences": 1, "pattern": ["there; in a place that is not here"] },
{ "occurences": 1, "pattern": ["who; which person or people ?"] },
{ "occurences": 1, "pattern": ["what; which thing ?"] },
{ "occurences": 1, "pattern": ["where; at what place ?"] },
{ "occurences": 1, "pattern": ["when; at what time ?"] },
{ "occurences": 1, "pattern": ["how; in what way ?"] },
{ "occurences": 1, "pattern": ["not; negate the meaning of verb or adjective"] },
{ "occurences": 1, "pattern": ["all; the totality of"] },
{ "occurences": 1, "pattern": ["many; an indefinite large number of"] },
{ "occurences": 1, "pattern": ["some; an indefinite quantity of"] },
{ "occurences": 1, "pattern": ["few; an indefinite small number of"] },
{ "occurences": 1, "pattern": ["other; the rest of a group of"] },
{ "occurences": 1, "pattern": ["one; the natural number 1"] },
{ "occurences": 1, "pattern": ["two; the natural number 2"] },
{ "occurences": 1, "pattern": ["three; the natural number 3"] },
{ "occurences": 1, "pattern": ["four; the natural number 4"] },
{ "occurences": 1, "pattern": ["five; the natural number 5"] },
{ "occurences": 1, "pattern": ["big; of a great size"] },
{ "occurences": 1, "pattern": ["long; having much distance from one terminating point on an object or area to another terminating point"] },
{ "occurences": 1, "pattern": ["wide; having a long distance or area between two points, escpecially horizontally "] },
{ "occurences": 1, "pattern": ["thick; relatively large distance from one surface to the opposite in its smallest solid dimension"] },
{ "occurences": 1, "pattern": ["heavy; of great weight"] },
{ "occurences": 1, "pattern": ["small; not big, of small size"] },
{ "occurences": 1, "pattern": ["short; small in length"] },
{ "occurences": 1, "pattern": ["narrow; having a small width "] },
{ "occurences": 1, "pattern": ["thin; not thick, being narrow in the smallest dimension"] },
{ "occurences": 1, "pattern": ["light; not heavy, of small weight"] },
{ "occurences": 1, "pattern": ["woman; female adult"] },
{ "occurences": 1, "pattern": ["man; male adult"] },
{ "occurences": 1, "pattern": ["person; sentient or sapient being"] },
{ "occurences": 1, "pattern": ["child; a young person, or the descendant of a person"] },
{ "occurences": 1, "pattern": ["wife; the female partner in a marriage"] },
{ "occurences": 1, "pattern": ["husband; the male partner in a marriage"] },
{ "occurences": 1, "pattern": ["mother; a woman who has at least one child"] },
{ "occurences": 1, "pattern": ["father; a man who has at least one child"] },
{ "occurences": 1, "pattern": ["animal; any living organism characterized by voluntary movement"] },
{ "occurences": 1, "pattern": ["fish; a vertebrate animal that lives in water"] },
{ "occurences": 1, "pattern": ["bird; a vertebrate animal having wings which, for most species, enables them to fly"] },
{ "occurences": 1, "pattern": ["dog; an animal kept by people as a pet, or to hunt, or to guard"] },
{ "occurences": 1, "pattern": ["louse; an invertebrate parasitic animal that lives on people and other animals"] },
{ "occurences": 1, "pattern": ["snake; a vertebrate animal with a cylindrical limbless body"] },
{ "occurences": 1, "pattern": ["worm; an invertebrate animal with a cylindrical limbless body"] },
{ "occurences": 1, "pattern": ["tree; any large woody plant with a distinct trunk giving rise to branches or leaveses at some distance from the ground"] },
{ "occurences": 1, "pattern": ["forest; a vegetation community dominated by trees and other woody shrubs, growing close enough together that the tree tops touch or overlap"] },
{ "occurences": 1, "pattern": ["stick; a long, thin piece of wood, mainly left in the shape in which it grew, that does not bend"] },
{ "occurences": 1, "pattern": ["fruit; a seed-bearing structure of plants, that can usually be used as food"] },
{ "occurences": 1, "pattern": ["seed; a fertilized plant ovule"] },
{ "occurences": 1, "pattern": ["leaf; the main organ of photosynthesis and transpiration in plants, usually consisting of a flat green blade"] },
{ "occurences": 1, "pattern": ["root; the absorbing and anchoring organ of a plant, usually subterranean"] },
{ "occurences": 1, "pattern": ["tree bark; the exterior covering of the trunk and branches of a tree"] },
{ "occurences": 1, "pattern": ["flower; the reproductive structure of many plants, surrounded by petals"] },
{ "occurences": 1, "pattern": ["grass; a family of non-woody plants bearing long narrow leaves along a stem"] },
{ "occurences": 1, "pattern": ["rope; thick, strong string made of several strands that have been twisted together"] },
{ "occurences": 1, "pattern": ["skin; the tissue forming the outer covering of vertebrates"] },
{ "occurences": 1, "pattern": ["meat; the edible flesh of animals"] },
{ "occurences": 1, "pattern": ["blood; a fluid connective tissue that circulate in blood vessels of vertebrate animals"] },
{ "occurences": 1, "pattern": ["bone; any component of the endoskeletons of vertebrate animals"] },
{ "occurences": 1, "pattern": ["fat; a semi-solid substance occuring in animals and plants, which serves as energy source and energy store"] },
{ "occurences": 1, "pattern": ["egg; an organic vessel in which an embryo develops until it can survive on its own"] },
{ "occurences": 1, "pattern": ["horn; a hard growth of keratin that protrudes from the top of the head of certain animals"] },
{ "occurences": 1, "pattern": ["tail; the appendage of an animal that is attached to its posterior"] },
{ "occurences": 1, "pattern": ["feather; a branching tissue that grows on the skin of certain animals and that protects them against coldness and water, and allows some of them to fly"] },
{ "occurences": 1, "pattern": ["hair; a filament tissue that grows on the skin of certain animals and that protects them against coldness, and serve for sensory input"] },
{ "occurences": 1, "pattern": ["head; the part of the body of an animal which contain the brain, mouth and main sense organs"] },
{ "occurences": 1, "pattern": ["ear; the organ of hearing"] },
{ "occurences": 1, "pattern": ["eye; the organ of vision"] },
{ "occurences": 1, "pattern": ["nose; the organ used to breath and smell"] },
{ "occurences": 1, "pattern": ["mouth; the organ used to ingest food"] },
{ "occurences": 1, "pattern": ["tooth; a hard structure present in the mouth of vertebrate animals, used for eating"] },
{ "occurences": 1, "pattern": ["tongue; a muscular organ in the mouth used to move food around, for tasting, and modifying the air flow from the lungs to produce different sounds"] },
{ "occurences": 1, "pattern": ["nail or claw; the hard keratin part growing at the feet and hands of animals"] },
{ "occurences": 1, "pattern": ["foot; the part of body below the ankle that is used to stand and walk"] },
{ "occurences": 1, "pattern": ["leg; the limb of an animal that extends from the groin to the ankle, and is used for walking"] },
{ "occurences": 1, "pattern": ["knee; the joint in the middle part of a the leg"] },
{ "occurences": 1, "pattern": ["hand; the part of the fore limb below the forearm or wrist"] },
{ "occurences": 1, "pattern": ["wing; the appendage of an animal's body that enables it to fly in the air"] },
{ "occurences": 1, "pattern": ["belly; the lower part of the front of trunk containing the intestines"] },
{ "occurences": 1, "pattern": ["guts; the internal organs of animals"] },
{ "occurences": 1, "pattern": ["neck; the part of the body that connects the head and the trunk"] },
{ "occurences": 1, "pattern": ["back; the read of the body, especially the part between the neck and the end of the spine, and opposite to the chest and belly"] },
{ "occurences": 1, "pattern": ["breast; the fleshy organ containing mammary glands"] },
{ "occurences": 1, "pattern": ["heart; a muscular organ that pump blood through the body"] },
{ "occurences": 1, "pattern": ["liver; a large internal organ that stores and metabolizes nutrients, destroys toxins and produces bile"] },
{ "occurences": 1, "pattern": ["to drink; to consume a liquid from the mouth"] },
{ "occurences": 1, "pattern": ["to eat; to consume something solid or semi-solid, usually food, from the mouth"] },
{ "occurences": 1, "pattern": ["to eat; to consume something solid or semi-solid, usually food, by putting it into the mounth and eventually swallowing it"] },
{ "occurences": 1, "pattern": ["to bite; to clamp the teeth hard on something"] },
{ "occurences": 1, "pattern": ["to suck; to draw a substance into the mouth by creating a vacuum"] },
{ "occurences": 1, "pattern": ["to spit; to forcefully evacuate saliva from the mouth"] },
{ "occurences": 1, "pattern": ["to vomit; to regurgitate contents of the stomach"] },
{ "occurences": 1, "pattern": ["to blow; to expel air through persed lips"] },
{ "occurences": 1, "pattern": ["to breathe; to repeatedly draw air into, and expel it from, the lungs, in order to extract oxygen from it and excrete wast products"] },
{ "occurences": 1, "pattern": ["to laugh; to express pleasure, mirth or derision by peculiar movement of the muscles of the face, and usually accompanied by the emission of explosive sounds from the chest and throat"] },
{ "occurences": 1, "pattern": ["to see; to perceive images with the eye"] },
{ "occurences": 1, "pattern": ["to hear; to perceive sounds with the ear"] },
{ "occurences": 1, "pattern": ["to know; to have met and recognize somebody, or be sure about something"] },
{ "occurences": 1, "pattern": ["to think; to actively and consciously use one's mental powers, usually to form ideas"] },
{ "occurences": 1, "pattern": ["to smell; to perceive the presence of molecules in the air by inhaling them through the nose"] },
{ "occurences": 1, "pattern": ["to fear; to be scared of"] },
{ "occurences": 1, "pattern": ["to sleep; to rest in a state of decreased consciousness and reduced metabolism"] },
{ "occurences": 1, "pattern": ["to live; to be alive"] },
{ "occurences": 1, "pattern": ["to die; to cease to live"] },
{ "occurences": 1, "pattern": ["to kill; to put to death; to end a life"] },
{ "occurences": 1, "pattern": ["to fight; to be involved in physical confrontation"] },
{ "occurences": 1, "pattern": ["to hunt; to chase down prey and (usually) kill it"] },
{ "occurences": 1, "pattern": ["to hit; to hit something that someone aimed for"] },
{ "occurences": 1, "pattern": ["to cut; to perfom an incision, for example, with a knife"] },
{ "occurences": 1, "pattern": ["to split; to divide fully or partly along a more or less straight line"] },
{ "occurences": 1, "pattern": ["to stab; to perforate the surface of something with a pointed tool or weapon"] },
{ "occurences": 1, "pattern": ["to scratch; to rub or scrape with a sharp object"] },
{ "occurences": 1, "pattern": ["to dig; to move earth, rocks out of the way, usually to create a hole"] },
{ "occurences": 1, "pattern": ["to swim; to move through the water, without touching the bottom"] },
{ "occurences": 1, "pattern": ["to fly; to move through the air, without touching the ground"] },
{ "occurences": 1, "pattern": ["to walk; to move from one place to another by moving legs alternately, so that at least one foot is in contact with the floor ar any one time"] },
{ "occurences": 1, "pattern": ["to come; to move toward or to reach either the speaker, the person spoken to, or the subject of the speaker's narrative"] },
{ "occurences": 1, "pattern": ["to go; to move from one place to another by any means"] },
{ "occurences": 1, "pattern": ["to lie (ex. on the ground); to rest in a horizontal, static position, usually on another surface"] },
{ "occurences": 1, "pattern": ["to sit; to be in a position with the upper body upright and the legs resting"] },
{ "occurences": 1, "pattern": ["to stand; to be upright in an erect position, supported by the feet"] },
{ "occurences": 1, "pattern": ["to turn; to change the direction of movement or the direction in which something is facing"] },
{ "occurences": 1, "pattern": ["to fall; to descend in free fall due to the effect of gravity"] },
{ "occurences": 1, "pattern": ["to give; to transfer the possession or holding of an object to another person"] },
{ "occurences": 1, "pattern": ["to hold; to grasp or grip so that the object does not end up at the surface below"] },
{ "occurences": 1, "pattern": ["to squeeze; to apply pressure to something from two or more sides at once"] },
{ "occurences": 1, "pattern": ["to rub; to move one's hand or an object over a surface or other object, maintaining constant contact and applying moderate pressure"] },
{ "occurences": 1, "pattern": ["to wash; to remove dirt and grime from an object, using water (usually with soap)"] },
{ "occurences": 1, "pattern": ["to wipe; to move an object or ustensil over a surface or other object while maintaining contact, in order that a substance be removed from its surface"] },
{ "occurences": 1, "pattern": ["to pull; to apply a force to an object, in order that it moves towards the origin of the force that was applied"] },
{ "occurences": 1, "pattern": ["to push; to apply a force to an object, in order that it moves away from the origin of the force that was applied"] },
{ "occurences": 1, "pattern": ["to throw; to cause an object to move rapidly through the air, with the force of the hand or arm"] },
{ "occurences": 1, "pattern": ["to tie; to establish connection between two or more things"] },
{ "occurences": 1, "pattern": ["to sew; to pass thread repeatedly through fabric or a material, using a needle, in order to join two or more parts or to make a pattern or motif"] },
{ "occurences": 1, "pattern": ["to count; to determine the amount of something"] },
{ "occurences": 1, "pattern": ["to say; to utter specific words or notions"] },
{ "occurences": 1, "pattern": ["to sing; to produce harmonious sounds with one's voice"] },
{ "occurences": 1, "pattern": ["to play; to act in a manner such that one has fun; to engage in playful activities expressly for the purpose of recreation"] },
{ "occurences": 1, "pattern": ["to float; of an object or substance, to be supported by a liquid of greater density that the object, so that part of the object remains above the surface"] },
{ "occurences": 1, "pattern": ["to flow; to move as a fluid from one position to another"] },
{ "occurences": 1, "pattern": ["to freeze; to reach a chemically solid state, by the process of cooling"] },
{ "occurences": 1, "pattern": ["to burn; to put fire on something"] },
{ "occurences": 1, "pattern": ["to burn; to be on fire"] },
{ "occurences": 1, "pattern": ["to swell; to grow larger in volume"] },
{ "occurences": 1, "pattern": ["sun; the particular star from which the planet gets light and heat"] },
{ "occurences": 1, "pattern": ["moon; a natural satellite of a planet"] },
{ "occurences": 1, "pattern": ["star; a luminous celestial body that is made from gases"] },
{ "occurences": 1, "pattern": ["water; common liquid which forms rain, rivers, the sea, and which makes up a large part of the bodies of organisms"] },
{ "occurences": 1, "pattern": ["rain; precipitation in the form of liquid water drops"] },
{ "occurences": 1, "pattern": ["river; a stream of water which flows in a channel from high ground to low ground"] },
{ "occurences": 1, "pattern": ["lake; an enclosed body of water, from which the sea is excluded"] },
{ "occurences": 1, "pattern": ["sea; a body of salt water which is in proxymity to a continent"] },
{ "occurences": 1, "pattern": ["salt; a condiment used to add to or enhance the flavour of food"] },
{ "occurences": 1, "pattern": ["stone; a general term for rock that is used in construction"] },
{ "occurences": 1, "pattern": ["sand; a loose material consisting of small mineral particles, or rock and mineral particles, distinguishable by the maked eye"] },
{ "occurences": 1, "pattern": ["dust; any kind of solid material divided in particles of very small size"] },
{ "occurences": 1, "pattern": ["earth; the soft and loose material forming a great part of the planet surface"] },
{ "occurences": 1, "pattern": ["cloud; suspensions of minute water droplets or ice crystals produced by the condensation of water vapour"] },
{ "occurences": 1, "pattern": ["fog; water droplets or ice crystals suspended in the air in sufficient concentration to reduce visibility appreciably"] },
{ "occurences": 1, "pattern": ["sky; the part of the planet's atmosphere and space outside it that is visible from the planet's surface"] },
{ "occurences": 1, "pattern": ["wind; the motion of air relative to the planet's surface, usually means horizontal air motion"] },
{ "occurences": 1, "pattern": ["snow; a form of frozen precipitation, usually flakes or starlike crystals, matted ice needles or combinations, and often rime-coated"] },
{ "occurences": 1, "pattern": ["ice; the dense substance formed by the freezing of water to the solid state"] },
{ "occurences": 1, "pattern": ["smoke; an aerosol, consisting of visible particles and gases, produced by the incomplete burning of materials"] },
{ "occurences": 1, "pattern": ["fire; the state of combustion in which inflammable material burns, producing heat, flames, and often smoke"] },
{ "occurences": 1, "pattern": ["ash; the incombustible matter remaining after a substance has been incinerated"] },
{ "occurences": 1, "pattern": ["mountain; a feature of the planet's surface that rises high above the base and has generally steep slopes and a relatively small summit area"] },
{ "occurences": 1, "pattern": ["hill; a natural elevation of the land surface, usually rounded"] },
{ "occurences": 1, "pattern": ["road; a long piece of ground that people can walk or drive along from one place to another"] },
{ "occurences": 1, "pattern": ["red; having the color of blood"] },
{ "occurences": 1, "pattern": ["green; having the color of plant's leaves"] },
{ "occurences": 1, "pattern": ["blue; having the pure color of a clear sky"] },
{ "occurences": 1, "pattern": ["yellow; having the color of a yolk"] },
{ "occurences": 1, "pattern": ["white; bright and colorless; reflecting all visible light"] },
{ "occurences": 1, "pattern": ["black; dark and colorless; not reflecting visible light"] },
{ "occurences": 1, "pattern": ["night; the period between sunset and sunrise, when a location faces far away from the sun, thus when the sky is dark"] },
{ "occurences": 1, "pattern": ["day; the period between sunrise and sunset, where one enjoys daylight"] },
{ "occurences": 1, "pattern": ["year; the time it takes a planet to complete one revolution of its sun"] },
{ "occurences": 1, "pattern": ["warm; having a temperature slightly higher than usual, still pleasant"] },
{ "occurences": 1, "pattern": ["warm; having a temperature slightly higher than usual, still pleasant"] },
{ "occurences": 1, "pattern": ["hot; having a high temperature"] },
{ "occurences": 1, "pattern": ["cold; having a low temperature"] },
{ "occurences": 1, "pattern": ["full; containing the most or maximum amount possible in the given available space"] },
{ "occurences": 1, "pattern": ["new; recently made, created, or begun"] },
{ "occurences": 1, "pattern": ["old; having lived or existed for a relatively long period of time"] },
{ "occurences": 1, "pattern": ["good; having desired or positive qualities"] },
{ "occurences": 1, "pattern": ["bad; not good; unfavorable; negative"] },
{ "occurences": 1, "pattern": ["rotten; for organic matter, having changed its colour, smell, or composition, due to being attacked and decomposed by microorganisms"] },
{ "occurences": 1, "pattern": ["dirty; covered with or containing unpleasant substances such as dirt or grime"] },
{ "occurences": 1, "pattern": ["straight; not crooked or bent; having a constant direction throughout its length"] },
{ "occurences": 1, "pattern": ["round; circular or having a circular cross-section in at least one direction"] },
{ "occurences": 1, "pattern": ["sharp; having the ability to cut easily"] },
{ "occurences": 1, "pattern": ["dull; lacking the ability to cut easily; not sharp"] },
{ "occurences": 1, "pattern": ["smooth; not rough; having a surface texture that lacks friction"] },
{ "occurences": 1, "pattern": ["wet; covered with or impregnated with liquid"] },
{ "occurences": 1, "pattern": ["dry; almost free from liquid or moisture"] },
{ "occurences": 1, "pattern": ["correct; to be in accordance with expectations"] },
{ "occurences": 1, "pattern": ["near; having a small intervening distance with regard to something"] },
{ "occurences": 1, "pattern": ["far; having a large intervening distance with regard to something"] },
{ "occurences": 1, "pattern": ["right; something that is on the right side relative to another object"] },
{ "occurences": 1, "pattern": ["left; something that is on the left side relative to another object"] },
{ "occurences": 1, "pattern": ["name; any word or phrase which designate a particular person, place, class, or thing"] }
]
},
{
"id": "@output@",
"distribution": [
{ "occurences": 1, "pattern": ["@Gatel@", ": ", "@Meaning@"] }
]
}
]
}

217
models/pipotron.json Normal file
View File

@ -0,0 +1,217 @@
{
"id": "pipotron",
"name": "PipoTron",
"description": "Des phrases longues et vides de sens.",
"moredescription": "Adapté depuis <a href=\"http://www.pipotron.free.fr/\">pipotron.free.fr</a>.",
"issentence": true,
"rules": [
{
"id": "@P1@",
"distribution": [
{ "occurences": 1, "pattern": ["avec"] },
{ "occurences": 1, "pattern": ["considérant"] },
{ "occurences": 1, "pattern": ["où que nous mène"] },
{ "occurences": 1, "pattern": ["eu égard à"] },
{ "occurences": 1, "pattern": ["vu"] },
{ "occurences": 1, "pattern": ["en ce qui concerne"] },
{ "occurences": 1, "pattern": ["dans le cas particulier de"] },
{ "occurences": 1, "pattern": ["quelle que soit"] },
{ "occurences": 1, "pattern": ["du fait de"] },
{ "occurences": 1, "pattern": ["tant que durera"] },
{ "occurences": 1, "pattern": ["quoi qu'on dise concernant"] },
{ "occurences": 1, "pattern": ["nonobstant"] },
{ "occurences": 1, "pattern": ["compte tenu de"] },
{ "occurences": 1, "pattern": ["malgré"] },
{ "occurences": 1, "pattern": ["pour réagir face à"] },
{ "occurences": 1, "pattern": ["afin de circonvenir à"] },
{ "occurences": 1, "pattern": ["dans le but de pallier à"] },
{ "occurences": 1, "pattern": ["si vous voulez mon avis concernant"] },
{ "occurences": 1, "pattern": ["suite à"] }
]
},
{
"id": "@P2@",
"distribution": [
{ "occurences": 1, "pattern": ["la restriction"] },
{ "occurences": 1, "pattern": ["l'orientation"] },
{ "occurences": 1, "pattern": ["la crise"] },
{ "occurences": 1, "pattern": ["l'inertie"] },
{ "occurences": 1, "pattern": ["la difficulté"] },
{ "occurences": 1, "pattern": ["l'austérité"] },
{ "occurences": 1, "pattern": ["la dégradation"] },
{ "occurences": 1, "pattern": ["cette rigueur"] },
{ "occurences": 1, "pattern": ["la dualité de la situation"] },
{ "occurences": 1, "pattern": ["la baisse de confiance"] },
{ "occurences": 1, "pattern": ["la morosité"] },
{ "occurences": 1, "pattern": ["la situation"] },
{ "occurences": 1, "pattern": ["l'ambiance"] },
{ "occurences": 1, "pattern": ["la politique"] },
{ "occurences": 1, "pattern": ["la fragilité"] },
{ "occurences": 1, "pattern": ["la complexité"] },
{ "occurences": 1, "pattern": ["l'inconstance"] },
{ "occurences": 1, "pattern": ["cette inflexion"] }
]
},
{
"id": "@P3@",
"distribution": [
{ "occurences": 1, "pattern": ["présente"] },
{ "occurences": 1, "pattern": ["actuelle"] },
{ "occurences": 1, "pattern": ["générale"] },
{ "occurences": 1, "pattern": ["induite"] },
{ "occurences": 1, "pattern": ["conjoncturelle"] },
{ "occurences": 1, "pattern": ["observée"] },
{ "occurences": 1, "pattern": ["contextuelle"] },
{ "occurences": 1, "pattern": ["de ces derniers temps"] },
{ "occurences": 1, "pattern": ["de l'époque actuelle"] },
{ "occurences": 1, "pattern": ["intrinsèque"] },
{ "occurences": 1, "pattern": ["que nous constatons"] }
]
},
{
"id": "@P4@",
"distribution": [
{ "occurences": 1, "pattern": ["il convient"] },
{ "occurences": 1, "pattern": ["on se doit"] },
{ "occurences": 1, "pattern": ["il est préférable"] },
{ "occurences": 1, "pattern": ["il serait intéressant"] },
{ "occurences": 1, "pattern": ["il ne faut pas négliger"] },
{ "occurences": 1, "pattern": ["on ne peut se passer"] },
{ "occurences": 1, "pattern": ["il est nécessaire"] },
{ "occurences": 1, "pattern": ["il serait bon"] },
{ "occurences": 1, "pattern": ["je recommande"] },
{ "occurences": 1, "pattern": ["je préconise un audit afin"] },
{ "occurences": 1, "pattern": ["il est très important"] },
{ "occurences": 1, "pattern": ["il ne faut pas s'interdire"] },
{ "occurences": 1, "pattern": ["nous sommes contraints"] },
{ "occurences": 1, "pattern": ["je suggère fortement"] },
{ "occurences": 1, "pattern": ["je n'exclus pas"] },
{ "occurences": 1, "pattern": ["je vous demande"] }
]
},
{
"id": "@P5@",
"distribution": [
{ "occurences": 1, "pattern": ["d'étudier"] },
{ "occurences": 1, "pattern": ["d'examiner"] },
{ "occurences": 1, "pattern": ["de favoriser"] },
{ "occurences": 1, "pattern": ["de prendre en considération"] },
{ "occurences": 1, "pattern": ["d'anticiper"] },
{ "occurences": 1, "pattern": ["d'imaginer"] },
{ "occurences": 1, "pattern": ["d'uniformiser"] },
{ "occurences": 1, "pattern": ["de remodeler"] },
{ "occurences": 1, "pattern": ["d'avoir à l'esprit"] },
{ "occurences": 1, "pattern": ["de se remémorer"] },
{ "occurences": 1, "pattern": ["de gérer"] },
{ "occurences": 1, "pattern": ["de fédérer"] },
{ "occurences": 1, "pattern": ["de comprendre"] },
{ "occurences": 1, "pattern": ["d'analyser"] },
{ "occurences": 1, "pattern": ["d'appréhender"] },
{ "occurences": 1, "pattern": ["d'expérimenter"] },
{ "occurences": 1, "pattern": ["d'essayer"] },
{ "occurences": 1, "pattern": ["de caractériser"] },
{ "occurences": 1, "pattern": ["de façonner"] },
{ "occurences": 1, "pattern": ["de revoir"] },
{ "occurences": 1, "pattern": ["de prendre en compte"] },
{ "occurences": 1, "pattern": ["d'arrêter de stigmatiser"] },
{ "occurences": 1, "pattern": ["de considérer"] },
{ "occurences": 1, "pattern": ["de réorganiser"] },
{ "occurences": 1, "pattern": ["d'inventorier"] }
]
},
{
"id": "@P6@",
"distribution": [
{ "occurences": 1, "pattern": ["toutes les"] },
{ "occurences": 1, "pattern": ["chacune des"] },
{ "occurences": 1, "pattern": ["la majorité des"] },
{ "occurences": 1, "pattern": ["la simultanéité des"] },
{ "occurences": 1, "pattern": ["l'ensemble des"] },
{ "occurences": 1, "pattern": ["la somme des"] },
{ "occurences": 1, "pattern": ["la totalité des"] },
{ "occurences": 1, "pattern": ["la globalité des"] },
{ "occurences": 1, "pattern": ["les relations des"] },
{ "occurences": 1, "pattern": ["certaines"] },
{ "occurences": 1, "pattern": ["la plus grande partie des"] },
{ "occurences": 1, "pattern": ["les principales"] },
{ "occurences": 1, "pattern": ["systématiquement les"] },
{ "occurences": 1, "pattern": ["précisément les"] }
]
},
{
"id": "@P7@",
"distribution": [
{ "occurences": 1, "pattern": ["solutions"] },
{ "occurences": 1, "pattern": ["issues"] },
{ "occurences": 1, "pattern": ["problématiques"] },
{ "occurences": 1, "pattern": ["voies"] },
{ "occurences": 1, "pattern": ["alternatives"] },
{ "occurences": 1, "pattern": ["organisations matricielles"] },
{ "occurences": 1, "pattern": ["améliorations"] },
{ "occurences": 1, "pattern": ["ouvertures"] },
{ "occurences": 1, "pattern": ["synergies"] },
{ "occurences": 1, "pattern": ["actions"] },
{ "occurences": 1, "pattern": ["options"] },
{ "occurences": 1, "pattern": ["décisions"] },
{ "occurences": 1, "pattern": ["modalités"] },
{ "occurences": 1, "pattern": ["hypothèses"] },
{ "occurences": 1, "pattern": ["stratégies"] }
]
},
{
"id": "@P8@",
"distribution": [
{ "occurences": 1, "pattern": ["imaginables"] },
{ "occurences": 1, "pattern": ["possibles"] },
{ "occurences": 1, "pattern": ["s'offrant à nous"] },
{ "occurences": 1, "pattern": ["de bon sens"] },
{ "occurences": 1, "pattern": ["envisageables"] },
{ "occurences": 1, "pattern": ["éventuelles"] },
{ "occurences": 1, "pattern": ["réalisables"] },
{ "occurences": 1, "pattern": ["déclinables"] },
{ "occurences": 1, "pattern": ["pertinentes"] },
{ "occurences": 1, "pattern": ["que nous connaissons"] },
{ "occurences": 1, "pattern": ["évidentes"] },
{ "occurences": 1, "pattern": ["optimales"] },
{ "occurences": 1, "pattern": ["opportunes"] },
{ "occurences": 1, "pattern": ["emblématiques"] },
{ "occurences": 1, "pattern": ["draconiennes"] }
]
},
{
"id": "@P9@",
"distribution": [
{ "occurences": 1, "pattern": ["à long terme"] },
{ "occurences": 1, "pattern": ["pour longtemps"] },
{ "occurences": 1, "pattern": ["à l'avenir"] },
{ "occurences": 1, "pattern": ["pour le futur"] },
{ "occurences": 1, "pattern": ["depuis longtemps"] },
{ "occurences": 1, "pattern": ["à court terme"] },
{ "occurences": 1, "pattern": ["rapidement"] },
{ "occurences": 1, "pattern": ["dans une perspective correcte"] },
{ "occurences": 1, "pattern": ["avec toute la prudence requise"] },
{ "occurences": 1, "pattern": ["de toute urgence"] },
{ "occurences": 1, "pattern": ["même si ce n'est pas facile"] },
{ "occurences": 1, "pattern": ["même si nous devons en tirer des conséquences"] },
{ "occurences": 1, "pattern": ["très attentativement"] },
{ "occurences": 1, "pattern": ["avec beaucoup de recul"] },
{ "occurences": 1, "pattern": ["parce que la nature a horreur du vide"] },
{ "occurences": 1, "pattern": ["parce que nous ne faisons plus le même métier"] },
{ "occurences": 1, "pattern": ["toutes choses étant égales par ailleurs"] },
{ "occurences": 1, "pattern": ["et déjà en notre possession"] },
{ "occurences": 1, "pattern": ["en prenant toutes les précautions qui s'imposent"] },
{ "occurences": 1, "pattern": ["si l'on veut s'en sortir un jour"] },
{ "occurences": 1, "pattern": ["parce qu'il est temps d'agir"] },
{ "occurences": 1, "pattern": ["parce qu'il s'agit de notre dernière chance"] },
{ "occurences": 1, "pattern": ["parce que les mêmes causes produisent les mêmes effets"] },
{ "occurences": 1, "pattern": ["parce que nous le valons bien"] }
]
},
{
"id": "@output@",
"distribution": [
{ "occurences": 1, "pattern": ["@P1@", "@P2@", "@P3@", ",", "@P4@", "@P5@", "@P6@", "@P7@", "@P8@", ",", "@P9@"] }
]
}
]
}

289
models/villages.json Normal file
View File

@ -0,0 +1,289 @@
{
"id": "Villages",
"name": "Villages",
"description": "Noms de patelins imaginaires ou réels.",
"moredescription": "Basés sur des noms de communes françaises.",
"issentence": false,
"rules": [
{
"id": "@PrenomMasc@",
"distribution": [
{ "occurences": 1, "pattern": ["Jérome"] },
{ "occurences": 1, "pattern": ["Benoit"] },
{ "occurences": 1, "pattern": ["Alban"] },
{ "occurences": 5, "pattern": ["André"] },
{ "occurences": 1, "pattern": ["Bernard"] },
{ "occurences": 1, "pattern": ["Christophe"] },
{ "occurences": 1, "pattern": ["Cyr"] },
{ "occurences": 2, "pattern": ["Denis"] },
{ "occurences": 3, "pattern": ["Didier"] },
{ "occurences": 3, "pattern": ["Éloi"] },
{ "occurences": 8, "pattern": ["Étienne"] },
{ "occurences": 3, "pattern": ["Georges"] },
{ "occurences": 3, "pattern": ["Germain"] },
{ "occurences": 1, "pattern": ["Jacques"] },
{ "occurences": 8, "pattern": ["Jean"] },
{ "occurences": 2, "pattern": ["Julien"] },
{ "occurences": 1, "pattern": ["Just"] },
{ "occurences": 1, "pattern": ["Laurent"] },
{ "occurences": 1, "pattern": ["Marcel"] },
{ "occurences": 6, "pattern": ["Martin"] },
{ "occurences": 3, "pattern": ["Maurice"] },
{ "occurences": 1, "pattern": ["Paul"] },
{ "occurences": 2, "pattern": ["Pierre"] },
{ "occurences": 1, "pattern": ["Rémi"] },
{ "occurences": 1, "pattern": ["Sulpice"] }
]
},
{
"id": "@PrenomFem@",
"distribution": [
{ "occurences": 1, "pattern": ["Agnès"] },
{ "occurences": 3, "pattern": ["Anne"] },
{ "occurences": 8, "pattern": ["Croix"] },
{ "occurences": 1, "pattern": ["Eulalie"] },
{ "occurences": 1, "pattern": ["Euphémie"] },
{ "occurences": 3, "pattern": ["Foi"] },
{ "occurences": 1, "pattern": ["Geneviève"] },
{ "occurences": 1, "pattern": ["Julie"] },
{ "occurences": 5, "pattern": ["Marie"] },
{ "occurences": 1, "pattern": ["Olive"] }
]
},
{
"id": "@LieuMasc@",
"distribution": [
{ "occurences": 1, "pattern": ["Bois"] },
{ "occurences": 1, "pattern": ["Bas"] },
{ "occurences": 1, "pattern": ["Château"] },
{ "occurences": 1, "pattern": ["Châtel"] },
{ "occurences": 1, "pattern": ["Col"] },
{ "occurences": 1, "pattern": ["Désert"] },
{ "occurences": 1, "pattern": ["Haut"] },
{ "occurences": 1, "pattern": ["Lac"] },
{ "occurences": 1, "pattern": ["Moulin"] },
{ "occurences": 1, "pattern": ["Pont"] },
{ "occurences": 1, "pattern": ["Port"] }
]
},
{
"id": "@LieuFem@",
"distribution": [
{ "occurences": 1, "pattern": ["Forêt"] },
{ "occurences": 1, "pattern": ["Chapelle"] },
{ "occurences": 1, "pattern": ["Colline"] },
{ "occurences": 1, "pattern": ["Montagne"] },
{ "occurences": 1, "pattern": ["Mer"] },
{ "occurences": 1, "pattern": ["Loge"] },
{ "occurences": 1, "pattern": ["Tour"] }
]
},
{
"id": "@LieuPlur@",
"distribution": [
{ "occurences": 1, "pattern": ["Bois"] },
{ "occurences": 1, "pattern": ["Eaux"] },
{ "occurences": 1, "pattern": ["Loges"] },
{ "occurences": 1, "pattern": ["Monts"] },
{ "occurences": 1, "pattern": ["Moulins"] },
{ "occurences": 1, "pattern": ["Mines"] }
]
},
{
"id": "@Riviere@",
"distribution": [
{ "occurences": 1, "pattern": ["Ain"] },
{ "occurences": 1, "pattern": ["Aisne"] },
{ "occurences": 1, "pattern": ["Allier"] },
{ "occurences": 1, "pattern": ["Ardèche"] },
{ "occurences": 1, "pattern": ["Ariège"] },
{ "occurences": 1, "pattern": ["Aube"] },
{ "occurences": 1, "pattern": ["Aude"] },
{ "occurences": 1, "pattern": ["Aveyron"] },
{ "occurences": 2, "pattern": ["Charente"] },
{ "occurences": 2, "pattern": ["Cher"] },
{ "occurences": 1, "pattern": ["Corrèze"] },
{ "occurences": 1, "pattern": ["Creuse"] },
{ "occurences": 1, "pattern": ["Dordogne"] },
{ "occurences": 1, "pattern": ["Doubs"] },
{ "occurences": 1, "pattern": ["Drôme"] },
{ "occurences": 1, "pattern": ["Essone"] },
{ "occurences": 2, "pattern": ["Eure"] },
{ "occurences": 1, "pattern": ["Gard"] },
{ "occurences": 3, "pattern": ["Garonne"] },
{ "occurences": 1, "pattern": ["Gers"] },
{ "occurences": 1, "pattern": ["Hérault"] },
{ "occurences": 1, "pattern": ["Ille"] },
{ "occurences": 2, "pattern": ["Indre"] },
{ "occurences": 1, "pattern": ["Isère"] },
{ "occurences": 2, "pattern": ["Loir"] },
{ "occurences": 6, "pattern": ["Loire"] },
{ "occurences": 1, "pattern": ["Loiret"] },
{ "occurences": 2, "pattern": ["Lot"] },
{ "occurences": 1, "pattern": ["Lozère"] },
{ "occurences": 1, "pattern": ["Maine"] },
{ "occurences": 4, "pattern": ["Marne"] },
{ "occurences": 1, "pattern": ["Mayenne"] },
{ "occurences": 1, "pattern": ["Meurthe"] },
{ "occurences": 1, "pattern": ["Meuse"] },
{ "occurences": 2, "pattern": ["Moselle"] },
{ "occurences": 1, "pattern": ["Nièvre"] },
{ "occurences": 2, "pattern": ["Oise"] },
{ "occurences": 1, "pattern": ["Orne"] },
{ "occurences": 2, "pattern": ["Rhin"] },
{ "occurences": 2, "pattern": ["Rhône"] },
{ "occurences": 2, "pattern": ["Saône"] },
{ "occurences": 1, "pattern": ["Sarthe"] },
{ "occurences": 4, "pattern": ["Seine"] },
{ "occurences": 1, "pattern": ["Sèvre"] },
{ "occurences": 1, "pattern": ["Somme"] },
{ "occurences": 2, "pattern": ["Tarn"] },
{ "occurences": 1, "pattern": ["Var"] },
{ "occurences": 1, "pattern": ["Vendée"] },
{ "occurences": 2, "pattern": ["Vienne"] },
{ "occurences": 1, "pattern": ["Vilaine"] },
{ "occurences": 1, "pattern": ["Yonne"] },
{ "occurences": 10, "pattern": ["Mer"] }
]
},
{
"id": "@NomLieuMasc@",
"distribution": [
{ "occurences": 1, "pattern": ["Angle"] },
{ "occurences": 1, "pattern": ["Château"] },
{ "occurences": 1, "pattern": ["Castel"] },
{ "occurences": 1, "pattern": ["Col"] },
{ "occurences": 1, "pattern": ["Lieu"] },
{ "occurences": 1, "pattern": ["Mont"] },
{ "occurences": 1, "pattern": ["Pont"] },
{ "occurences": 1, "pattern": ["Port"] },
{ "occurences": 1, "pattern": ["Pré"] },
{ "occurences": 1, "pattern": ["Roque"] },
{ "occurences": 1, "pattern": ["Roche"] }
]
},
{
"id": "@NomLieuFem@",
"distribution": [
{ "occurences": 1, "pattern": ["Pierre"] },
{ "occurences": 1, "pattern": ["Rive"] },
{ "occurences": 1, "pattern": ["Roche"] },
{ "occurences": 1, "pattern": ["Roque"] },
{ "occurences": 1, "pattern": ["Ville"] }
]
},
{
"id": "@AdjLieuMasc@",
"distribution": [
{ "occurences": 1, "pattern": ["beau"] },
{ "occurences": 1, "pattern": ["bel"] },
{ "occurences": 1, "pattern": ["bon"] },
{ "occurences": 1, "pattern": ["brun"] },
{ "occurences": 1, "pattern": ["clar"] },
{ "occurences": 1, "pattern": ["clair"] },
{ "occurences": 1, "pattern": ["fort"] },
{ "occurences": 1, "pattern": ["franc"] },
{ "occurences": 1, "pattern": ["neuf"] },
{ "occurences": 1, "pattern": ["rond"] }
]
},
{
"id": "@AdjLieuFem@",
"distribution": [
{ "occurences": 1, "pattern": ["belle"] },
{ "occurences": 1, "pattern": ["bonne"] },
{ "occurences": 1, "pattern": ["brune"] },
{ "occurences": 1, "pattern": ["claire"] },
{ "occurences": 1, "pattern": ["forte"] },
{ "occurences": 1, "pattern": ["franche"] },
{ "occurences": 1, "pattern": ["neuve"] },
{ "occurences": 1, "pattern": ["ronde"] }
]
},
{
"id": "@Nom2LieuMasc@",
"distribution": [
{ "occurences": 1, "pattern": ["bourg"] },
{ "occurences": 1, "pattern": ["château"] },
{ "occurences": 1, "pattern": ["châtel"] },
{ "occurences": 1, "pattern": ["col"] },
{ "occurences": 1, "pattern": ["lieu"] },
{ "occurences": 1, "pattern": ["mont"] },
{ "occurences": 1, "pattern": ["pont"] },
{ "occurences": 1, "pattern": ["port"] },
{ "occurences": 1, "pattern": ["pré"] },
{ "occurences": 1, "pattern": ["réal"] },
{ "occurences": 1, "pattern": ["roc"] }
]
},
{
"id": "@Nom2LieuFem@",
"distribution": [
{ "occurences": 1, "pattern": ["pierre"] },
{ "occurences": 1, "pattern": ["rive"] },
{ "occurences": 1, "pattern": ["roche"] },
{ "occurences": 1, "pattern": ["ville"] }
]
},
{
"id": "@Adj2LieuMasc@",
"distribution": [
{ "occurences": 1, "pattern": ["Apre"] },
{ "occurences": 1, "pattern": ["Beau"] },
{ "occurences": 1, "pattern": ["Bel"] },
{ "occurences": 1, "pattern": ["Bon"] },
{ "occurences": 1, "pattern": ["Clar"] },
{ "occurences": 1, "pattern": ["Clair"] },
{ "occurences": 1, "pattern": ["Fort"] },
{ "occurences": 1, "pattern": ["Franc"] },
{ "occurences": 1, "pattern": ["Haut"] },
{ "occurences": 1, "pattern": ["Long"] },
{ "occurences": 1, "pattern": ["Neuf"] }
]
},
{
"id": "@Adj2LieuFem@",
"distribution": [
{ "occurences": 1, "pattern": ["Belle"] },
{ "occurences": 1, "pattern": ["Bonne"] },
{ "occurences": 1, "pattern": ["Claire"] },
{ "occurences": 1, "pattern": ["Forte"] },
{ "occurences": 1, "pattern": ["Franche"] },
{ "occurences": 1, "pattern": ["Haute"] },
{ "occurences": 1, "pattern": ["Longue"] },
{ "occurences": 1, "pattern": ["Neu"] }
]
},
{
"id": "@Part@",
"distribution": [
{ "occurences": 3, "pattern": ["Saint", "-", "@PrenomMasc@"] },
{ "occurences": 3, "pattern": ["Sainte", "-", "@PrenomFem@"] },
{ "occurences": 1, "pattern": ["le", "-", "@LieuMasc@"] },
{ "occurences": 1, "pattern": ["la", "-", "@LieuFem@"] },
{ "occurences": 1, "pattern": ["les", "-", "@LieuPlur@"] },
{ "occurences": 8, "pattern": ["@NomLieuMasc@", "@AdjLieuMasc@"] },
{ "occurences": 8, "pattern": ["@NomLieuFem@", "@AdjLieuFem@"] },
{ "occurences": 8, "pattern": ["@Adj2LieuMasc@", "@Nom2LieuMasc@"] },
{ "occurences": 8, "pattern": ["@Adj2LieuFem@", "@Nom2LieuFem@"] }
]
},
{
"id": "@PartFin@",
"distribution": [
{ "occurences": 1, "pattern": ["du", "-", "@LieuMasc@"] },
{ "occurences": 1, "pattern": ["de", "-", "la", "-", "@LieuFem@"] },
{ "occurences": 1, "pattern": ["des", "-", "@LieuPlur@"] },
{ "occurences": 1, "pattern": ["sur", "-", "@Riviere@"] }
]
},
{
"id": "@output@",
"distribution": [
{ "occurences": 6, "pattern": ["@Part@"] },
{ "occurences": 2, "pattern": ["@Part@", "-", "@Part@"] },
{ "occurences": 2, "pattern": ["@Part@", "-", "@PartFin@"] }
]
}
]
}