Outils pour utilisateurs

Outils du site


public:specs_commande_list

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
public:specs_commande_list [2016/09/15 17:10]
matthieu.decorde@ens-lyon.fr créée
public:specs_commande_list [2016/09/15 17:37]
matthieu.decorde@ens-lyon.fr
Ligne 16: Ligne 16:
  
 Les propriétés de mot ne posent pas de problème, par contre les indexes de propriété de structure sont incomplets. Il manque des index sur les valeurs des propriétés d'une structure. On a que 2 index : la positions des structures et la valeur d'une propriété pour un numéro d'​ordre de structure. Les propriétés de mot ne posent pas de problème, par contre les indexes de propriété de structure sont incomplets. Il manque des index sur les valeurs des propriétés d'une structure. On a que 2 index : la positions des structures et la valeur d'une propriété pour un numéro d'​ordre de structure.
 +
 +<​code>​
 +// STANDARD DECLARATIONS
 +package org.txm.macro
 +
 +import org.kohsuke.args4j.*
 +import groovy.transform.Field
 +import org.txm.rcpapplication.swt.widget.parameters.*
 +import org.txm.*
 +import org.txm.searchengine.corpus.*
 +import org.txm.searchengine.cqp.corpus.*
 +
 +// BEGINNING OF PARAMETERS
 +
 +
 +// Parameter declaration - Déclaration du paramètre
 +@Field @Option(name="​propertyName",​ usage="​word property or structure property name", widget="​String",​ required=true,​ def="​text_id"​)
 +String propertyName;​
 +
 +// Parameters settings UI
 +if (!ParametersDialog.open(this)) {
 + println("​** ExecCQLMacro error: Impossible to open Parameters settings UI dialog box.")
 + return
 +}
 +
 +if (!(corpusViewSelection instanceof Corpus)) {
 + println "​Corpora view selection must be a Corpus. Aborting"​
 + return;
 +}
 +
 +def list_wordproperty(def corpus, def property) {
 + println "​Listing property values of '​$property'​ property of '​$corpus'​ corpus"​
 + def CQI = Toolbox.getCqiClient()
 + int n = CQI.lexiconSize(property.getQualifiedName())
 + println "$n values :"
 + int[] ids = 0..(n-1);
 + def rez = CQI.id2Str(property.getQualifiedName(),​ ids) // or call CQI.fdist1(subcorpus,​ cutoff, field, attribute)
 + for (String s : rez) {
 + println s
 +
 +}
 +
 +def list_structureproperty(def corpus, def property) {
 + println "​Listing structural unit property values of '"​+property.getFullName()+"'​ of '​$corpus'​ corpus"​
 + def CQI = Toolbox.getCqiClient()
 + int n = CQI.attributeSize(property.getQualifiedName())
 + println "$n values :"
 + int[] strucs = 0..(n-1);
 + def rez = CQI.struc2Str(property.getQualifiedName(),​ strucs)
 + LinkedHashSet<​String>​ set = new LinkedHashSet<​String>​();​
 + for (String s : rez) {
 + set << s
 + }
 +
 + for (String s : set) {
 + println s
 + }
 +}
 +
 +Corpus corpus = corpusViewSelection
 +if (propertyName.contains("​_"​)) {
 + def split = propertyName.split("​_",​ 2);
 + def structName = split[0]
 + propertyName = split[1]
 + if (propertyName.contains("​_"​) || structName.contains("​_"​)) {
 + println "​malformed structure property name : struct_property is needed. We got '​$structName'​ and '​$propertyName'"​
 + return;
 + }
 +
 + StructuralUnit su = corpus.getStructuralUnit(structName)
 + if (su == null) {
 + println "​Structural unit not found: $structName"​
 + return;
 + }
 +
 + Property prop = su.getProperty(propertyName)
 + if (prop == null) {
 + println "​Structural unit property not found: ${structName}_$propertyName"​
 + return;
 + }
 +
 + list_structureproperty(corpus,​ prop)
 +} else {
 + Property prop = corpus.getProperty(propertyName)
 + if (prop == null) {
 + println "Word property not found: $propertyName"​
 + return;
 + }
 +
 + list_wordproperty(corpus,​ prop)
 +}
 +</​code>​
public/specs_commande_list.txt · Dernière modification: 2016/09/15 17:37 par matthieu.decorde@ens-lyon.fr