# Resources du LST au format JSON
## Import JSON
- Suppression de toutes les données (sauf users et articles) et réimport via la commande : `php bin/console app:import-json`
- Le fichier d'import json doit être placé dans `/application/data/json/` et nommé `lstdata.json`
- Chaque Entité ou groupe d'entités décrit ici peut être exporté séparément.
- L'import d'un export partiel de la base n'échouera pas, mais nécessite d'adapter la fonction vidant la base (appellée dans `/application/src/Command/ImportJsonCommand.php`, définie dans `/application/src/Manager/jsonImportManager/EmptyDbManager.php`) (pur ne la faire vider que les entités détectées dans l'import). Ce n'est pas l'utilisation prévue pour l'instant.
## Entrée Lexicale
```json
"entreesLexicales": {
"LexicalEntry": {
"acceptionUniq": {
"type": "Clef primaire",
"required": true,
"description": "lexicalEntry.AcceptionUniq sert d'identifiant unique. Construit sur le modèle : lemme_categorie_numeroOptionnel'"
},
"cat": {
"type": "Clef étrangère de SyntacCat (SyntacCat.value)",
"required": true,
"description": "Identifiant d'une catégorie syntaxique (A : adjectif, ADV : adverbe, N : nom ou V : verbe)",
"comment": "Lors de l'import, un premier passage sur le JSON génère les entités CatégorieSyntaxique (qui n'ont qu'un id et une value) à partir d'un tri des valeurs distincte de cette propriété)."
},
"lemma": {
"type": "Clef étrangère de Lemma (Lemma.value)",
"required": true,
"description": "A la fois Valeur (string) et identifiant du Lemma associé à la LexicalEntry",
"comment": "Lors de l'import, un premier passage sur le JSON génère les entités Lemma (qui n'ont qu'un id et une value) à partir d'un tri des valeurs distincte de cette propriété)."
},
"lexicalType": {
"type": "Clef étrangère de LexicalType (LexicalType.value)",
"required": true,
"description": "A la fois Valeur (string) et identifiant du LexicalType associé à la LexicalEntry (2 valeurs : Monolexical / Polylexical)",
"comment": "Lors de l'import, un premier passage sur le JSON génère les entités lexicalType (qui n'ont qu'un id et une value) à partir d'un tri des valeurs distincte de cette propriété)."
},
"semanticClass": {
"type": "Clef étrangère de SemanticClass (SemanticClass.value)",
"required": true,
"description": "associe l'entrée à une classe sémantique",
"comment": "SemanticClass.value sert de clef. Les lexicalEntry sont aussi associées à une instance de SemanticSubClassSubClass (dont une instance est générée lors de l'import), en croisant cat + semanticClass + SemanticSubClass"
},
"semanticSubClass": {
"type": "Clef étrangère de SemanticSubClass (SemanticSubClass.value)",
"required": true,
"description": "associe l'entrée à une sous classe sémantique",
"comment": "SemanticClass.value sert de clef. Les lexicalEntry sont aussi associées à une instance de SemanticSubClassSubClass (dont une instance est générée lors de l'import), en croisant cat + semanticClass + SemanticSubClass"
},
"fonctionId": {
"type": "Clef étrangère de Fonction (fonction.label)",
"description": "associe l'entrée à une fonction rhétorique",
"required": false,
"comment": "fonction.label sert de clef vers une instance de 'fonctionSpe' dans ce JSON"
},
"varGraph": {
"type": "propriété",
"required": false,
"description": "?????"
},
"propMorph": {
"type": "propriété",
"required": false,
"description": "?????"
},
"propSynt": {
"type": "propriété",
"required": false,
"description": "?????"
},
"verbConstruction": {
"type": "propriété",
"required": false,
"description": "?????"
},
"sujetComplement": {
"type": "propriété",
"required": false,
"description": "?????"
},
"meaning": {
"type": "propriété",
"required": false,
"description": "?????"
},
"source": {
"type": "propriété",
"required": false,
"description": "?????"
},
"comment": {
"type": "propriété",
"required": false,
"description": "?????"
},
"metrics": {
"DESCRIPTION": {
"type": "Entité liée à LexicalEntry (One to One)",
"description": "statisiques de la lexicalEntry",
"required": false,
"comment": "l'entité Metrique est générée et reliée à la LexicalEntry qui la contient lors de l'import"
},
"ratio": {
"type": "propriété",
"required": true,
"description": "résultat du ratio de la fréquence relative (par million de mots) dans le corpus d'analyse (CA) sur le corpus de constraste (CC)"
},
"ccbym": {
"type": "propriété",
"required": true,
"description": "fréquence relative (par million de mot) dans le corpus de contraste"
},
"cabym": {
"type": "propriété",
"required": true,
"description": "fréquence relative (par million de mot) dans le corpus d'analyse"
},
"cafreq": {
"type": "propriété",
"required": true,
"description": "fréquence absolue (nombre d'occurrences) dans le corpus d'analyse"
},
"ngrammes": {
"type": "propriété",
"required": true,
"description": "nombre d'apparition du lemme dans un n-gramme validé manuellement comme expression polylexicale contigüe (ex: 'point' dans 'point de vue') afin de soustraire ce nombre d'occurrences à la fréquence totale."
},
"repartitionDisciplines": {
"type": "propriété",
"required": true,
"description": "nombre de disciplines différentes dans lesquelles le lemme apparaît"
},
"repartitionTranches": {
"type": "propriété",
"required": true,
"description": "nombre de tranches différentes du corpus d'analyse (divisé en 100 tranches) dans lesquelles le lemme apparaît}A la suite des travaux de qn(Nom d'auteur, Année), nous considérons que...",
"patronParadigme": null,
"patronFixe": null,
"partieDiscours": null,
"metrics": {
"nbOccurrences": 7,
"logLike": 13,
"frequence": "MF",
"nbDisciplines": 4
},
"exemples": [
{
"source": "[lin-art-306]",
"structure": "prep-N",
"contexteGauche": "1 Précisons que nous considérerons,",
"pivot": "à la suite des travaux",
"contexteDroit": "de M. - J. Reichler Beguelin, que la relation d' anaphore ne consiste pas à dupliquer les antécédents, mais à garder la trace de leur interprétation antérieure qui évolue en fonction des nouvelles propositions ou propriétés qui leur sont attribuées.",
"partieTextuelle": "notes"
},
{
"source": "[spo-art-433]",
"structure": "prep-N",
"contexteGauche": "Quelques jours plus tard, les ouvriers rouges votent en masse pour leur directeur [ 42 ]. \" Cette image \" apolitique \" a été affirmée",
"pivot": "à la suite des travaux",
"contexteDroit": "de l' équipe de Louis Girard sur les conseillers généraux de 1870",
"partieTextuelle": "développement"
}
]
},
```
## Traduction
```json
"traductions": {
"LangCode": {
"DESCRIPTION": "Toutes les traductions sont regroupées dans un array sous un ID correspondant au code ISO de la langue",
"LexicalEntryTrad": {
"nbOcc": {
"type": "propriété",
"required": true,
"comment": "jamais null, mais peut-être de 0"
},
"lemmaTrad": {
"type": "Clef étrangère de LemmaTrad (LemmaTrad.value)",
"required": true,
"description": "A la fois Valeur (string) et identifiant du Lemma associé à la LexicalEntryTRad",
"comment": "Relation One lemmaTrad to Many LexicalEntryTrad Lors de l'import, un premier passage sur le JSON génère les entités LemmaTrad (qui n'ont qu'un id et une value, et une langue qui est celle de l'objet parent) à partir d'un tri des valeurs distincte de cette propriété)."
},
"lexicalEntryId": {
"type": "Clef étrangère de la LexicalEntry traduite (LexicalEntry.acceptionUniq)",
"required": false,
"comment": "relation One LexicalEntry to One LexicalEntryTrad"
},
"collocationId": {
"type": "Clef étrangère de la Collocation traduite (Collocation.value)",
"required": false,
"comment": "relation One Collocation to One LexicalEntryTrad. Janv 2024 : aucune utilisation"
},
"synonyms": {
"type": "propriété",
"required": false,
"comment": "peut contenir des valeurs mutliples séparées par des ','"
},
"exempleSource": {
"type": "propriété",
"required": false
},
"exempleCible": {
"type": "propriété",
"required": false
},
"comment": {
"type": "propriété",
"required": false
},
"usageGeneral": {
"type": "propriété",
"required": false
},
"usageSpecifique": {
"type": "propriété",
"required": false
},
"contexte": {
"type": "propriété",
"required": false
}
}
}
},
```
### Exemple Traduction
```json
"zh": [
{
"nbOcc": 70173,
"lemmaTrad": "状态",
"lexicalEntryId": "état_N_1",
"collocationId": null,
"synonyms": "状况",
"exempleSource": "chaque état de conscience",
"exempleCible": "意识状态",
"comment": "validé dans BCC",
"usageGeneral": null,
"usageSpecifique": "l' état de la conjoncture经济状况",
"contexte": null
},
{...},
...
]
```
## Classes sémantiques
```json
"classesSemantiques": {
"SemanticClasses": {
"id": {
"type": "Clef primaire (semanticClass.value)",
"required": true
},
"definition": {
"0": {
"cat": {
"type": "Clef secondaire de SyntacCat (SyntacCat.value)",
"required": true,
"comment": "Provient de la table semanticClassSubClass"
},
"description": {
"type": "propriété",
"required": true,
"comment": "Provient de la table semanticClassSubClass"
},
"critereTest": {
"type": "propriété",
"required": true,
"comment": "Provient de la table semanticClassSubClass"
}
},
"EXPLICATION": "Une même classe sémantique peut avoir plusieurs définitions : une par Catégorie Syntaxique associée (SyntacCat). Dans la BDD dy LST, semanticClass et semanticSubClass n'ont qu'une .value et un .id : les defintions, catégories synaxiques et critere de test, qui vont de pair, sont tous stockés dans la table semanticClassSubClass."
},
"sousClassesSemantiques": [
{
"id": {
"type": "Clef primaire (semanticSubClass.value)",
"required": true
},
"definition": {
"0": {
"cat": {
"type": "Clef secondaire de SyntacCat (SyntacCat.value)",
"required": true,
"comment": "Provient de la table semanticClassSubClass"
},
"description": {
"type": "propriété",
"required": true,
"comment": "Provient de la table semanticClassSubClass"
},
"critereTest": {
"type": "propriété",
"required": true,
"comment": "Provient de la table semanticClassSubClass"
}
},
"EXPLICATION": "Une même sous-classe sémantique peut avoir plusieurs définitions : une par Catégorie Syntaxique associée (SyntacCat). Dans la BDD dy LST, semanticClass et semanticSubClass n'ont qu'une .value et un .id : les defintions, catégories synaxiques et critere de test, qui vont de pair, sont tous stockés dans la table semanticClassSubClass."
}
}
]
}
},
```
### Exemple Classes sémantiques
```json
{
"id": "composition",
"definition": [
{
"cat": "A",
"description": "Dénote la nature d’une entité en tant qu’unité (complexe ou non : assemblage ou combinaison de plusieurs éléments ou parties).",
"critereTest": null
}
],
"sousClassesSemantiques": [
{
"id": "composition",
"definition": [
{
"cat": "A",
"description": null,
"critereTest": null
},
{
"cat": "N",
"description": "Nature d’une entité en tant qu’unité.",
"critereTest": " une entité est caractérisée par DétPoss N"
},
{
"cat": "V",
"description": "État d’une entité qui constitue un assemblage ou une combinaison de plusieurs éléments ou parties et qui est dotée d’une certaine structure.",
"critereTest": null
}
]
}
]
},
```
## Fonction Rhétoriques
```json
"fonctionsRhetoriques": {
"fonctions": {
"id": {
"type": "Clef primaire (fonction.generalF)",
"required": true,
"comment": "Dans la BDD du LST, fonctionGénérale et fonctionSpécifique sont réunies sur une même ligne : la clef de fonction.generalF est répétée pour chaque fonctionSpe (fonction.generalF , fonction.label). Les définitions de fonctionGénérale et fonctionSpécifique ne sont pas stockées en base mais comme des messages du système de traduction, appelées à partir des ID de fonctionGénérale et fonctionSpécifique"
},
"definition": {
"type": "propriété",
"required": true,
"comment": "Attention, n'est pas stocké en base, est stocké comme la chaîne de traduction associée à fonction.generalF"
},
"fonctionsSpe": []
}
},
```
### Exemple
```json
{
"id": "definir",
"definition": "Pour définir les termes",
"fonctionsSpe": [
{
"id": "definition",
"definition": "Définir ou expliquer qc (un terme, une notion, un concept)",
"exemple": "Nous pouvons définir X comme..."
},
{
"id": "emprunt",
"definition": "Emprunter des définitions (termes, mots, expressions...) déjà établies à d'autres auteurs",
"exemple": "On reprend la définition de qn"
}
]
},
```
### Routines
```json
"routines": {
"routines": {
"code": {
"type": "Clef primaire (routine.code)",
"required": true
},
"type": {
"type": "propriété",
"required": true
},
"subType": {
"type": "propriété",
"required": false
},
"subSubType": {
"type": "propriété",
"required": false
},
"fonctionId": {
"type": "Clef étrangère de Fonction (fonction.label)",
"description": "associe la routine à une fonction rhétorique",
"required": true,
"comment": "fonction.label sert de clef vers une instance de 'fonctionSpe' dans ce JSON"
},
"modele": {
"type": "propriété",
"required": true
},
"realisation": {
"type": "propriété",
"required": true,
"comment": "plusieurs realisations sont concaténées avec & comme séparateur."
},
"occurrences": {
"type": "propriété",
"required": true,
"comment": "fréquence absolue (nombre d'occurrences) dans le corpus d'analyse"
},
"patron": {
"type": "propriété",
"required": false
},
"exemples": [
{
"DESRIPTION": {
"type": "Entité liée à Routine (One Routine to Many Exemples )",
"description": "exemples de la Routine",
"required": false,
"comment": "chaque entité Exemple est générée et reliée à la Routine qui la contient lors de l'import"
},
"source": {
"type": "Clef étrangère (string) de SourceExemple",
"required": false,
"description": "sourceExemple.code sert de clef"
},
"type": {
"type": "propriété",
"required": true
},
"content": {
"type": "propriété",
"required": true
},
"simplicity": {
"type": "propriété",
"required": false
}
}
]
}
},
```
### Exemple
```json
{
"code": "SUR_1",
"type": "Marqueurs d’évaluation",
"subType": "Surprise",
"subSubType": null,
"fonctionId": "surprise",
"modele": "Il (+ nous/me) + Vétat + ADJsurprise (+ de + Vanalyse + que)",
"realisation": "Il est frappant de constater que...&Il peut paraître surprenant que...",
"occurrences": 25,
"patron": "Il&Il----(nous/me)&(nous/me)----Vétat&être, sembler, paraître, apparaître...----ADJsurprise&frappant, surprenant, étonnant----(de)&(de)----(Vanalyse)&(constater, observer, voir...)----(que)&(que)",
"exemples": [
{
"source": "[geo-art-348]",
"type": "Forme de base",
"content": "Quel que soit le type d’impact attribué aux évolutions démographiques, il est frappant de constater l’importance de ce facteur dans le débat allemand (Kabisch et al., 2006).",
"simplicity": "'++"
},
{
"source": "[his-art-17]",
"type": "Forme de base",
"content": "Dans ces dessins hebdomadaires, intitulés Uncle Habner Says, il est frappant de constater la récurrence d’un discours antiétatique :l’intervention de l’État dans le champ social perturbe l’ordre industriel.",
"simplicity": "'++"
},
]
}
```
## Sources des exemples
```json
"sourcesExemples": {
"source": {
"id": {
"type": "Clef primaire (sourceExemple.value)",
"required": true
},
"descriptionBiblio": {
"type": "propriété",
"required": true
}
}
}
```
```json
{
"id": "[spo-art-637]",
"descriptionBiblio": "Denord, F., & Schwartz, A. (2010). L'économie (très) politique du traité de Rome. Politix, 89, 35-56. Consulté le 20 octobre 2014 : www.cairn.info/revue-politix-2010-1-page-35.htm."
},
```