結果集合は生成しません。回ずつ、ループします。タグを持つウェイすべてについて、ウェイごとに、そのウェイに含まれるノードを出力し、その直後に、ウェイ自身を出力します。結果集合を、次の入力集合として使います。次に、この入力集合の各要素について、ループの中身が1回ずつ実行されます。ループの中身では、その要素および要素に含まれるノードたちの和集合が作られ、その和集合が出力されます。ループ実行中、ある反復において出力される部分集合は、別の反復におけるものとは独立しています。ステートメントの入力集合は、通常の接尾辞の書式を使って変更することができます。もとに、ループが実行されます。丸括弧を開く直前に接尾辞の書式を追加することで、ループの要素を格納する集合を指定することもできます。ステートメントでは、どの集合にも格納されません。以下の例のようにすると、入力集合とループ要素の集合の両方を指定できます。入力集合はループで変更することができません。集合を変更すると保存されて以降で使うことができますが、繰り返しの回数は変更されません。単独クエリーは、入力集合の接頭辞のみからなります。指定された接頭辞にもとづく入力集合をとります。ステートメントで使うと便利です。ありがちな使い方は、以下のように、既定の入力集合を使ったものです。結果を追加したものを返します。>;);もちろん、以下のように、他の集合を使うこともできます。ステートメントの文脈では以下のようになります。ステートメントの影響を受けません。追加したりはしません。ステートメントは、フィルターとして使うこともできます。単独クエリーは、単一の小なり記号で記述します。結果集合を生成します。結果集合は以下のものから生成されます。<;再帰上昇ステートメントの入力集合は、通常の接頭辞の記法を使って、選ぶことができます。<;再帰上昇ステートメントの結果集合は、通常の接尾辞の記法を使って、送り先を変えることができます。->.b;もちろん、以下のように、この両方を変更することもできます。単独クエリーは、再帰上昇と同様の文法を持っており、以下の2点だけが異なります。二連の小なり記号で記述します。入力集合に現れるリレーションをメンバーとして持つリレーションを、再帰的に返します。単独クエリーと同様の記述を使って、入力集合や結果集合を変えることができます。単独クエリーは、被包含関係について、反射的かつ推移的な関係をもつ閉包を返します。単独クエリーは、単一の大なり記号で記述します。結果集合を生成します。結果集合は以下のものから生成されます。単独クエリーと同様の記述を使って、入力集合や結果集合を変えることができます。単独クエリーは、再帰下降と同様の文法を持っており、以下の2点だけが異なります。二連の大なり記号で記述します。入力集合から得られるリレーションの要素たるリレーションを、再帰的に返します。単独クエリーと同様の記述を使って、入力集合や結果集合を変えることができます。単独クエリーは、包含関係について、反射的かつ推移的な関係をもつ閉包を返します。以下のものを含むエリアを返します。入力集合に含まれる1つ以上のノード(座標が指定されていない場合)入力集合または単一の座標のいずれか一方を入力にとります。結果集合を生成します。結果は、入力集合から得られるノードの少なくとも一つ、または指定された座標を、その内部に含むエリアすべてです。is_in(緯度,経度)[->.result_set];もっとも短い形は、検索対象の座標として入力集合をとるものです。以下の例のようになります。is_in;入力集合は、通常の接頭辞の書式を使って変更することができます。is_in;結果集合は、通常の接尾辞の記法を使って、送り先を変えることができます。is_in->.b;もちろん、以下のように、この両方を変更することもできます。is_in->.b;既存のノードを使うかわりに、2個の浮動小数点数をカンマで区切った形で、座標を指定することもできます。緯度、経度の順に書きます。座標を指定した場合、入力集合は無視されます。以下の例のようになります。is_in(50.7,7.2);この形式の場合も、結果集合は、通常の接尾辞の記法を使って、送り先を変えることができます。is_in(50.7,7.2)->.b;エリアの生成は、ある抽出規則によっています。すべてのウェイやリレーションに、対応するエリアがあるわけではありません。ページをご覧ください。いずれかと、その後に続く、単独または複数のフィルターからなります。結果集合は、各フィルターの条件にマッチする要素すべてです。フィルターであり、セミコロンでステートメントが終わります。クエリーステートメントの結果集合は、通常の接尾辞の記法を使って、送り先を変えることができます。node[name="Foo"]->.a;個々のフィルターは、入力集合をとるものがあり、そのようなものは個々のフィルターにおいて入力集合を変更することができます。これについては、それぞれのフィルターの説明をご覧ください。フィルターは、属性値のあるタグを持つ、あるいは持たない要素をすべて選択します。基本的なオブジェクトの種類であるノード、ウェイ、リレーション、および、拡張された種類であるエリアに対応します。入力集合をとりません。すべてのフィルターに共通ですが、結果集合はステートメント全体に対して生成され、個々のフィルターには生成されません。)で始まり、その次に単引用符または二重引用符で括られたキー文字列があり、その後はフィルターにより異なります。文字列がアルファベットだけからなる場合は、引用符を省略することができます。!=)もっともありがちな形式です。指定された、特定の値を持つタグを含む要素をすべて選択します。この形式では、キー文字列の後に、等号と、その後に値の文字列を置きます。以下に、例として、いくつかの変形を挙げます。node["name"='Foo'];数字、空白類文字などを含む値は、以下のように、単引用符または二重引用符で括る必要があります。使って空の値を問い合わせることは、できません。空の値の検索は、正規表現を使っておこなうことができます。かわりに、正規表現を使う同様に、このようなキー・値型のクエリーを使って空のキー値を問い合わせることもできないので、正規表現を使って表現する必要があります。自動的に変換する機構が組み込まれています。特定のキーを持つ要素を、値によらず、すべて選択します。キー文字列と閉じ角括弧の間には何も置きません。!~)三つ目の形式です。特定のキーと、正規表現にマッチする値を持つ要素をすべて選択します。キー文字列の後には、チルダと、その後に検索対象の正規表現の文字列を置きます。中ではバックスラッシュをエスケープする必要があります。