2010-07-27 2 views
1

Dans les outils de ligne de commande Amazon Mechanical Turk (j'utilise la version: aws-mturk-clt-1.3.0), dans l'un des exemples (site_filter_qual: "filtrage de site Web Qualification", fichier site_filter_qual.question), il y a un code qui ressemble à ceci:Outils de ligne Mechanical Turk/Cmd/Qualification/#set et #foreach en xml

#set($urls = [ "http://news.bbc.co.uk/", http://..., ...]) 

#foreach ($url in $urls) 
... 

Je me demande:

  • a) Quelle est la langue utilisée ici (il est pas Perl et pas PHP, non?);
  • b) Où (sur le site Amazon ou ailleurs) I pouvait lire à propos de ces constructions;
  • c) Comment mettre en œuvre des tuples (paires), par ex.

// en Python:

>> data = [("http://news.bbc.com", "NEWS"), ("http://google.com", "SEARCH"), ...] 
>> for (url, category) in data: 
>>  .... 

- ou quelque chose de similaire?

Merci d'avance!

Répondre

2

C'est un modèle Velocity (partie du projet Apache). Les bonnes nouvelles sont que c'est un langage raisonnablement flexible que vous pouvez manipuler. Les meilleures nouvelles sont que vous pouvez (puisque je crois que tout le code CLT et SDK est ouvert) réellement créer de nouvelles constructions pour remplacer ou développer tout ce qui ne fait pas partie de Velocity out-of-the-box.

Pour répondre à vos questions directement:

a) Vitesse

b) http://velocity.apache.org/

c) Vous pouvez utiliser deux tableaux distincts. Pas joli, je le sais, mais ça va marcher.

+0

- 1) MERCI !!! - 2) "utiliser deux tableaux": je ne comprends toujours pas, pourriez-vous donner un court exemple? Je veux dire, - J'ai probablement besoin de smth. comme #set ($ urls = [...]) #set ($ cats = [...]) - mais foreach ne fonctionne toujours pas? J'ai besoin de toi. comme > pour (int i = 0; i do_smth_with $ urls [i] .... - mais sont ces constructions là? Quelle est la syntaxe? Je n'ai trouvé aucune boucle à l'exception de "foreach" sur http://velocity.apache.org/engine/devel/user-guide.html (: _. // Bien que cette même page * mentionne * "Hashtable" "- sans se soucier de décrire la syntaxe! Malade !!! –

+0

PS: désolé mais apparemment pas de mise en forme fonctionne dans les copmments aux commentaires :-). –

+0

La suggestion d '"utiliser deux tableaux" était un moyen de simuler des tuples. Fondamentalement, un tableau de clés (appelons-le 'k' disons) et un autre de valeurs (appelez-le 'v', disons). Vous obtiendrez alors un tuple en appelant k [1] et v [1]. Encore une fois, ce n'est pas une pratique exemplaire, mais si, pour une raison ou une autre, les tuples ne sont pas disponibles, il s'agit d'une solution de rechange à votre question n ° 3. – jrb