diff --git a/.gitignore b/.gitignore
index 053bf29..25d2ccb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -35,4 +35,5 @@ public/*.json
.idea
-html_cache/*
\ No newline at end of file
+html_cache/*
+/html_cache/
diff --git a/src/Controller/WikiController.php b/src/Controller/WikiController.php
index 36340d5..c43a7fa 100644
--- a/src/Controller/WikiController.php
+++ b/src/Controller/WikiController.php
@@ -778,6 +778,7 @@ class WikiController extends AbstractController
$scriptPath = $this->getParameter('kernel.project_dir') . '/wiki_compare/wiki_compare.py';
$englishHtml = null;
$frenchHtml = null;
+ $frenchCacheExists = false;
if (file_exists($scriptPath)) {
// Create a temporary Python script to fetch the page content
@@ -788,25 +789,52 @@ class WikiController extends AbstractController
import sys
import json
-from wiki_compare import fetch_wiki_page
+import hashlib
+from pathlib import Path
+from wiki_compare import fetch_wiki_page, HTML_CACHE_DIR
# Get the key from command line arguments
key = sys.argv[1]
language = sys.argv[2]
-# Fetch the page
-page = fetch_wiki_page(key, language)
+# Check if we're just checking cache existence
+check_cache_only = len(sys.argv) > 3 and sys.argv[3] == 'check_cache'
-# Output the HTML content
-if page and 'html_content' in page:
- print(page['html_content'])
+if check_cache_only and language == 'fr':
+ # For French pages, construct the URL to check cache
+ if key.startswith('http'):
+ url = key
+ else:
+ url = f"https://wiki.openstreetmap.org/wiki/FR:{key}"
+
+ # Create cache key
+ cache_key = hashlib.md5(url.encode()).hexdigest()
+ cache_file = Path(HTML_CACHE_DIR) / f"{cache_key}.html"
+
+ # Check if cache exists
+ if cache_file.exists():
+ print("CACHE_EXISTS")
+ else:
+ print("CACHE_MISSING")
else:
- print("")
+ # Normal fetch operation
+ page = fetch_wiki_page(key, language)
+
+ # Output the HTML content
+ if page and 'html_content' in page:
+ print(page['html_content'])
+ else:
+ print("")
EOT;
file_put_contents($tempScriptPath, $pythonCode);
chmod($tempScriptPath, 0755);
+ // First check if French page exists in cache
+ $command = "cd " . $this->getParameter('kernel.project_dir') . "/wiki_compare && python3 {$tempScriptPath} {$key} fr check_cache";
+ $cacheCheckResult = trim(shell_exec($command));
+ $frenchCacheExists = ($cacheCheckResult === "CACHE_EXISTS");
+
// Fetch English page
$command = "cd " . $this->getParameter('kernel.project_dir') . "/wiki_compare && python3 {$tempScriptPath} {$key} en";
$englishHtml = shell_exec($command);
@@ -834,7 +862,8 @@ EOT;
'english_url' => $englishUrl,
'french_edit_url' => $frenchEditUrl,
'english_html' => $englishHtml,
- 'french_html' => $frenchHtml
+ 'french_html' => $frenchHtml,
+ 'french_cache_exists' => $frenchCacheExists
]);
}
@@ -1104,7 +1133,25 @@ EOT;
if (file_exists($pagesUnavailableInEnglishFile)) {
$pagesUnavailableInEnglishData = json_decode(file_get_contents($pagesUnavailableInEnglishFile), true);
if (isset($pagesUnavailableInEnglishData['pages']) && is_array($pagesUnavailableInEnglishData['pages'])) {
- $pagesUnavailableInEnglish = $pagesUnavailableInEnglishData['pages'];
+ // Deduplicate pages based on URL
+ $uniquePages = [];
+ $seenUrls = [];
+
+ foreach ($pagesUnavailableInEnglishData['pages'] as $page) {
+ if (isset($page['url'])) {
+ // Use URL as the key for deduplication
+ $url = $page['url'];
+ if (!isset($seenUrls[$url])) {
+ $seenUrls[$url] = true;
+ $uniquePages[] = $page;
+ }
+ } else {
+ // If no URL, keep the page (shouldn't happen, but just in case)
+ $uniquePages[] = $page;
+ }
+ }
+
+ $pagesUnavailableInEnglish = $uniquePages;
}
}
@@ -1112,10 +1159,10 @@ EOT;
$specificPages = [];
$outdatedPagesFile = $this->getParameter('kernel.project_dir') . '/wiki_compare/outdated_pages.json';
if (file_exists($outdatedPagesFile)) {
- $outdatedPagesData = json_decode(file_get_contents($outdatedPagesFile), true);
- if (isset($outdatedPagesData['specific_pages']) && is_array($outdatedPagesData['specific_pages'])) {
- $specificPages = $outdatedPagesData['specific_pages'];
- }
+ // Use a memory-efficient approach to extract only the specific_pages array
+ // without loading the entire file into memory
+ $maxPages = 100; // Limit the number of pages to prevent memory exhaustion
+ $specificPages = $this->extractSpecificPagesFromJson($outdatedPagesFile, $maxPages);
}
// Load newly created French pages
@@ -1137,6 +1184,16 @@ EOT;
$availableTranslations = $translationsData['translations'];
}
}
+
+ // Load keys without wiki pages
+ $keysWithoutWiki = [];
+ $keysWithoutWikiFile = $this->getParameter('kernel.project_dir') . '/wiki_compare/keys_without_wiki.json';
+ if (file_exists($keysWithoutWikiFile)) {
+ $keysWithoutWikiData = json_decode(file_get_contents($keysWithoutWikiFile), true);
+ if (is_array($keysWithoutWikiData)) {
+ $keysWithoutWiki = $keysWithoutWikiData;
+ }
+ }
return $this->render('admin/wiki.html.twig', [
'wiki_pages' => $wikiPages,
@@ -1147,7 +1204,8 @@ EOT;
'newly_created_pages' => $newlyCreatedPages,
'staleness_stats' => $stalenessStats,
'wiki_pages_stats' => $wikiPagesStats,
- 'available_translations' => $availableTranslations
+ 'available_translations' => $availableTranslations,
+ 'keys_without_wiki' => $keysWithoutWiki
]);
}
@@ -1791,4 +1849,124 @@ EOT;
return $contentHtml;
}
+
+ /**
+ * Extracts the specific_pages array from a large JSON file without loading the entire file into memory
+ *
+ * @param string $filePath Path to the JSON file
+ * @param int $maxPages Maximum number of pages to extract (to prevent memory exhaustion)
+ * @return array The extracted specific_pages array
+ */
+ private function extractSpecificPagesFromJson(string $filePath, int $maxPages = 100): array
+ {
+ $specificPages = [];
+
+ // For very large files, we'll use a more direct approach
+ // Instead of parsing the entire JSON structure, we'll extract just what we need
+
+ // First, check if the file exists and is readable
+ if (!is_readable($filePath)) {
+ return $specificPages;
+ }
+
+ // Get the file size
+ $fileSize = filesize($filePath);
+ if ($fileSize === false || $fileSize === 0) {
+ return $specificPages;
+ }
+
+ // For very large files, we'll use a more efficient approach
+ // We'll search for the "specific_pages" key directly
+ $handle = fopen($filePath, 'r');
+ if (!$handle) {
+ return $specificPages;
+ }
+
+ // Variables to track parsing state
+ $inSpecificPages = false;
+ $bracketCount = 0;
+ $buffer = '';
+ $pageCount = 0;
+ $lineCount = 0;
+
+ // Skip ahead to find the specific_pages key more quickly
+ // This is a simple optimization for this specific file structure
+ $found = false;
+ while (!$found && ($line = fgets($handle)) !== false) {
+ $lineCount++;
+ if (strpos($line, '"specific_pages"') !== false) {
+ $found = true;
+ $inSpecificPages = true;
+
+ // Find the opening bracket of the array
+ if (strpos($line, '[') !== false) {
+ $bracketCount = 1;
+ $buffer = '['; // Start the buffer with an opening bracket
+ } else {
+ // If the opening bracket is on the next line
+ $nextLine = fgets($handle);
+ if ($nextLine !== false && strpos($nextLine, '[') !== false) {
+ $bracketCount = 1;
+ $buffer = '['; // Start the buffer with an opening bracket
+ }
+ }
+ break;
+ }
+ }
+
+ // If we didn't find the specific_pages key, return empty array
+ if (!$found) {
+ fclose($handle);
+ return $specificPages;
+ }
+
+ // Now process the specific_pages array
+ while (($line = fgets($handle)) !== false) {
+ // Count opening and closing brackets to track array nesting
+ $openBrackets = substr_count($line, '[') + substr_count($line, '{');
+ $closeBrackets = substr_count($line, ']') + substr_count($line, '}');
+ $bracketCount += $openBrackets - $closeBrackets;
+
+ // Add the line to our buffer
+ $buffer .= $line;
+
+ // If we've reached the end of the array (bracketCount = 0)
+ if ($bracketCount === 0) {
+ // Parse the buffer as JSON
+ $parsedData = json_decode($buffer, true);
+ if (is_array($parsedData)) {
+ // Limit the number of pages to prevent memory exhaustion
+ $specificPages = array_slice($parsedData, 0, $maxPages);
+ } else {
+ // If parsing fails, log the error but don't crash
+ error_log('Failed to parse specific_pages JSON data in ' . $filePath);
+ }
+ break;
+ }
+
+ // Check if we've found a complete page object (when we see a closing brace followed by a comma)
+ if (preg_match('/\}\s*,\s*$/m', $line)) {
+ $pageCount++;
+ // If we've reached the maximum number of pages, stop processing
+ if ($pageCount >= $maxPages) {
+ // Close the array properly
+ $buffer = rtrim($buffer, ",\r\n") . ']';
+ // Parse the buffer as JSON
+ $parsedData = json_decode($buffer, true);
+ if (is_array($parsedData)) {
+ $specificPages = $parsedData;
+ } else {
+ // If parsing fails, log the error but don't crash
+ error_log('Failed to parse specific_pages JSON data in ' . $filePath . ' after reaching max pages');
+ }
+ break;
+ }
+ }
+ }
+
+ // Close the file
+ fclose($handle);
+
+ return $specificPages;
+ }
}
\ No newline at end of file
diff --git a/templates/admin/wiki.html.twig b/templates/admin/wiki.html.twig
index 3859a8b..1cf652d 100644
--- a/templates/admin/wiki.html.twig
+++ b/templates/admin/wiki.html.twig
@@ -492,6 +492,56 @@
{% endif %}
+ {% if keys_without_wiki is defined and keys_without_wiki|length > 0 %}
+
le score de fraîcheur prend en compte d'avantage la différence entre le nombre de mots que l'ancienneté de
modification.
diff --git a/templates/admin/wiki_create_french.html.twig b/templates/admin/wiki_create_french.html.twig
index c7913f9..7960164 100644
--- a/templates/admin/wiki_create_french.html.twig
+++ b/templates/admin/wiki_create_french.html.twig
@@ -140,7 +140,25 @@
diff --git a/templates/public/wiki_create_french.html.twig b/templates/public/wiki_create_french.html.twig
index 52501f7..f56e515 100644
--- a/templates/public/wiki_create_french.html.twig
+++ b/templates/public/wiki_create_french.html.twig
@@ -97,7 +97,25 @@
-
+ {% if french_cache_exists and french_html %}
+
+
+ Version française en cache :
+
+ {{ french_html|raw }}
+
+ {% else %}
+ {% if french_html %}
+
+ {% else %}
+
+
+
La page française n'existe pas dans le cache.
+
Utilisez le formulaire d'édition pour créer la traduction.
+
+
+ {% endif %}
+ {% endif %}
diff --git a/wiki_compare/__pycache__/wiki_compare.cpython-313.pyc b/wiki_compare/__pycache__/wiki_compare.cpython-313.pyc
index 0c05941..82e2c47 100644
Binary files a/wiki_compare/__pycache__/wiki_compare.cpython-313.pyc and b/wiki_compare/__pycache__/wiki_compare.cpython-313.pyc differ
diff --git a/wiki_compare/wiki_compare.py b/wiki_compare/wiki_compare.py
index 294b61b..789cc63 100755
--- a/wiki_compare/wiki_compare.py
+++ b/wiki_compare/wiki_compare.py
@@ -37,9 +37,15 @@ from bs4 import BeautifulSoup
import logging
import matplotlib.pyplot as plt
import numpy as np
-import nltk
from pathlib import Path
+# Try to import nltk, but make it optional
+try:
+ import nltk
+ NLTK_AVAILABLE = True
+except ImportError:
+ NLTK_AVAILABLE = False
+
# Configure logging
logging.basicConfig(
level=logging.INFO,
@@ -50,11 +56,13 @@ logger = logging.getLogger(__name__)
# Constants
TAGINFO_API_URL = "https://taginfo.openstreetmap.org/api/4/keys/all"
+TAGINFO_FRANCE_API_URL = "https://taginfo.geofabrik.de/europe:france/api/4/keys/without_wiki_page"
WIKI_BASE_URL_EN = "https://wiki.openstreetmap.org/wiki/Key:"
WIKI_BASE_URL_FR = "https://wiki.openstreetmap.org/wiki/FR:Key:"
WIKI_BASE_URL = "https://wiki.openstreetmap.org/wiki/"
WIKI_CATEGORY_URL = "https://wiki.openstreetmap.org/wiki/Category:FR:Traductions_d%C3%A9synchronis%C3%A9es"
TOP_KEYS_FILE = "top_keys.json"
+KEYS_WITHOUT_WIKI_FILE = "keys_without_wiki.json"
WIKI_PAGES_CSV = "wiki_pages.csv"
OUTDATED_PAGES_FILE = "outdated_pages.json"
STALENESS_HISTOGRAM_FILE = "staleness_histogram.png"
@@ -63,17 +71,18 @@ NUM_WIKI_PAGES = 2
# HTML cache folder
HTML_CACHE_DIR = "html_cache"
-# Initialize NLTK for sentence tokenization
-try:
- nltk.data.find('tokenizers/punkt')
-except LookupError:
- nltk.download('punkt')
+# Initialize NLTK for sentence tokenization if available
+if NLTK_AVAILABLE:
+ try:
+ nltk.data.find('tokenizers/punkt')
+ except LookupError:
+ nltk.download('punkt')
-# Also download punkt_tab resource which is needed for sent_tokenize
-try:
- nltk.data.find('tokenizers/punkt_tab')
-except LookupError:
- nltk.download('punkt_tab')
+ # Also download punkt_tab resource which is needed for sent_tokenize
+ try:
+ nltk.data.find('tokenizers/punkt_tab')
+ except LookupError:
+ nltk.download('punkt_tab')
# Create HTML cache directory if it doesn't exist
Path(HTML_CACHE_DIR).mkdir(exist_ok=True)
@@ -177,6 +186,41 @@ def fetch_top_keys(limit=NUM_WIKI_PAGES):
logger.error(f"Error fetching data from TagInfo API: {e}")
return []
+def fetch_keys_without_wiki_page(limit=36):
+ """
+ Fetch keys used in France that are missing a wiki page from TagInfo API
+
+ Args:
+ limit (int): Number of keys to fetch
+
+ Returns:
+ list: List of dictionaries containing key information
+ """
+ logger.info(f"Fetching top {limit} OSM keys without wiki pages used in France...")
+
+ params = {
+ 'page': 1,
+ 'rp': limit,
+ 'english': 0,
+ 'sortname': 'count_all',
+ 'sortorder': 'desc'
+ }
+
+ try:
+ response = requests.get(TAGINFO_FRANCE_API_URL, params=params)
+ response.raise_for_status()
+ data = response.json()
+
+ # Extract just the key names and counts
+ keys_without_wiki = [{'key': item['key'], 'count': item['count_all']} for item in data['data']]
+
+ logger.info(f"Successfully fetched {len(keys_without_wiki)} keys without wiki pages")
+ return keys_without_wiki
+
+ except requests.exceptions.RequestException as e:
+ logger.error(f"Error fetching data from TagInfo France API: {e}")
+ return []
+
def load_json_data(filename):
"""
Load data from a JSON file
@@ -295,6 +339,13 @@ def check_grammar_with_grammalecte(text):
logger.warning("Empty text provided for grammar checking")
return []
+ # Check if grammalecte-cli is available
+ try:
+ subprocess.run(['which', 'grammalecte-cli'], capture_output=True, check=True)
+ except subprocess.CalledProcessError:
+ logger.warning("grammalecte-cli not found, skipping grammar check")
+ return []
+
logger.info("Checking grammar with grammalecte-cli...")
try:
@@ -520,9 +571,13 @@ def fetch_wiki_page(key, language='en', is_specific_page=False, check_grammar=Tr
clean_text = content.get_text(separator=' ', strip=True)
word_count = len(clean_text.split())
- # Count sentences using NLTK
- sentences = nltk.sent_tokenize(clean_text)
- sentence_count = len(sentences)
+ # Count sentences using NLTK if available, otherwise use a simple approximation
+ if NLTK_AVAILABLE and check_grammar:
+ sentences = nltk.sent_tokenize(clean_text)
+ sentence_count = len(sentences)
+ else:
+ # Simple approximation: count periods, exclamation marks, and question marks
+ sentence_count = len(re.findall(r'[.!?]+', clean_text))
# Check grammar for French pages
grammar_suggestions = []
@@ -1098,18 +1153,19 @@ def main():
This function:
1. Fetches the top OSM keys from TagInfo API
- 2. Fetches and processes wiki pages for these keys
- 3. Processes specific wiki pages listed in SPECIFIC_PAGES
- 4. Processes pages from the FR:Traductions_désynchronisées category
- 5. Calculates staleness scores for all pages
- 6. Generates a histogram of staleness scores
- 7. Saves the results to CSV and JSON files
- 8. Prints a list of pages that need updating
+ 2. Fetches keys used in France that are missing a wiki page from TagInfo API
+ 3. Fetches and processes wiki pages for these keys
+ 4. Processes specific wiki pages listed in SPECIFIC_PAGES
+ 5. Processes pages from the FR:Traductions_désynchronisées category
+ 6. Calculates staleness scores for all pages
+ 7. Generates a histogram of staleness scores
+ 8. Saves the results to CSV and JSON files
+ 9. Prints a list of pages that need updating
"""
# Parse command-line arguments
parser = argparse.ArgumentParser(description='Compare OpenStreetMap wiki pages in English and French.')
parser.add_argument('--no-grammar-check', action='store_true',
- help='Disable grammar checking for French pages')
+ help='Disable grammar checking for French pages', default=False)
args = parser.parse_args()
# Whether to check grammar for French pages
@@ -1131,6 +1187,16 @@ def main():
# Save top keys to JSON
save_to_json(top_keys, TOP_KEYS_FILE)
+ # Fetch keys without wiki pages used in France
+ keys_without_wiki = fetch_keys_without_wiki_page()
+
+ if keys_without_wiki:
+ # Save keys without wiki pages to JSON
+ save_to_json(keys_without_wiki, KEYS_WITHOUT_WIKI_FILE)
+ logger.info(f"Saved {len(keys_without_wiki)} keys without wiki pages to {KEYS_WITHOUT_WIKI_FILE}")
+ else:
+ logger.warning("No keys without wiki pages were fetched.")
+
# Fetch wiki pages for each key
wiki_pages = []
diff --git a/wiki_compare/wiki_pages.csv b/wiki_compare/wiki_pages.csv
index 065aa9d..ebfa7be 100644
--- a/wiki_compare/wiki_pages.csv
+++ b/wiki_compare/wiki_pages.csv
@@ -3,105 +3,112 @@ building,en,https://wiki.openstreetmap.org/wiki/Key:building,2025-06-10,31,3774,
building,fr,https://wiki.openstreetmap.org/wiki/FR:Key:building,2025-05-22,25,3181,544,155,8.91,https://wiki.openstreetmap.org/w/images/thumb/6/61/Emptyhouse.jpg/200px-Emptyhouse.jpg
source,en,https://wiki.openstreetmap.org/wiki/Key:source,2025-08-12,27,2752,314,42,113.06,https://wiki.openstreetmap.org/w/images/thumb/7/76/Osm_element_node.svg/30px-Osm_element_node.svg.png
source,fr,https://wiki.openstreetmap.org/wiki/FR:Key:source,2024-02-07,23,2593,230,35,113.06,https://wiki.openstreetmap.org/w/images/thumb/7/76/Osm_element_node.svg/30px-Osm_element_node.svg.png
-highway,en,https://wiki.openstreetmap.org/wiki/Key:highway,2025-04-10,30,4126,780,314,20.35,https://upload.wikimedia.org/wikipedia/commons/thumb/7/78/Roads_in_Switzerland_%2827965437018%29.jpg/200px-Roads_in_Switzerland_%2827965437018%29.jpg
-highway,fr,https://wiki.openstreetmap.org/wiki/FR:Key:highway,2025-01-05,30,4141,695,313,20.35,https://upload.wikimedia.org/wikipedia/commons/thumb/7/78/Roads_in_Switzerland_%2827965437018%29.jpg/200px-Roads_in_Switzerland_%2827965437018%29.jpg
-addr:housenumber,en,https://wiki.openstreetmap.org/wiki/Key:addr:housenumber,2025-07-24,11,330,97,20,14.01,https://upload.wikimedia.org/wikipedia/commons/thumb/1/16/Ferry_Street%2C_Portaferry_%2809%29%2C_October_2009.JPG/200px-Ferry_Street%2C_Portaferry_%2809%29%2C_October_2009.JPG
-addr:housenumber,fr,https://wiki.openstreetmap.org/wiki/FR:Key:addr:housenumber,2025-08-23,15,1653,150,77,14.01,https://wiki.openstreetmap.org/w/images/thumb/e/e9/Housenumber-karlsruhe-de.png/200px-Housenumber-karlsruhe-de.png
-addr:street,en,https://wiki.openstreetmap.org/wiki/Key:addr:street,2024-10-29,12,602,101,16,66.04,https://upload.wikimedia.org/wikipedia/commons/thumb/6/64/UK_-_London_%2830474933636%29.jpg/200px-UK_-_London_%2830474933636%29.jpg
-addr:street,fr,https://wiki.openstreetmap.org/wiki/FR:Key:addr:street,2025-08-23,15,1653,150,77,66.04,https://wiki.openstreetmap.org/w/images/thumb/e/e9/Housenumber-karlsruhe-de.png/200px-Housenumber-karlsruhe-de.png
-addr:city,en,https://wiki.openstreetmap.org/wiki/Key:addr:city,2025-07-29,15,802,105,17,9.93,https://upload.wikimedia.org/wikipedia/commons/thumb/1/18/Lillerod.jpg/200px-Lillerod.jpg
-addr:city,fr,https://wiki.openstreetmap.org/wiki/FR:Key:addr:city,2025-08-23,15,1653,150,77,9.93,https://wiki.openstreetmap.org/w/images/thumb/e/e9/Housenumber-karlsruhe-de.png/200px-Housenumber-karlsruhe-de.png
-name,en,https://wiki.openstreetmap.org/wiki/Key:name,2025-07-25,17,2196,281,82,42.39,https://upload.wikimedia.org/wikipedia/commons/thumb/6/61/Helena%2C_Montana.jpg/200px-Helena%2C_Montana.jpg
-name,fr,https://wiki.openstreetmap.org/wiki/FR:Key:name,2025-01-16,21,1720,187,60,42.39,https://wiki.openstreetmap.org/w/images/3/37/Strakers.jpg
-addr:postcode,en,https://wiki.openstreetmap.org/wiki/Key:addr:postcode,2024-10-29,14,382,83,11,67.11,https://upload.wikimedia.org/wikipedia/commons/thumb/0/04/Farrer_post_code.jpg/200px-Farrer_post_code.jpg
-addr:postcode,fr,https://wiki.openstreetmap.org/wiki/FR:Key:addr:postcode,2025-08-23,15,1653,150,77,67.11,https://wiki.openstreetmap.org/w/images/thumb/e/e9/Housenumber-karlsruhe-de.png/200px-Housenumber-karlsruhe-de.png
-natural,en,https://wiki.openstreetmap.org/wiki/Key:natural,2025-07-17,17,2070,535,189,22.06,https://upload.wikimedia.org/wikipedia/commons/thumb/0/0e/VocaDi-Nature%2CGeneral.jpeg/200px-VocaDi-Nature%2CGeneral.jpeg
-natural,fr,https://wiki.openstreetmap.org/wiki/FR:Key:natural,2025-04-21,13,1499,455,174,22.06,https://upload.wikimedia.org/wikipedia/commons/thumb/0/0e/VocaDi-Nature%2CGeneral.jpeg/200px-VocaDi-Nature%2CGeneral.jpeg
-surface,en,https://wiki.openstreetmap.org/wiki/Key:surface,2025-08-28,24,3475,591,238,264.64,https://upload.wikimedia.org/wikipedia/commons/thumb/a/a2/Transportation_in_Tanzania_Traffic_problems.JPG/200px-Transportation_in_Tanzania_Traffic_problems.JPG
-surface,fr,https://wiki.openstreetmap.org/wiki/FR:Key:surface,2022-02-22,13,2587,461,232,264.64,https://upload.wikimedia.org/wikipedia/commons/thumb/a/a2/Transportation_in_Tanzania_Traffic_problems.JPG/200px-Transportation_in_Tanzania_Traffic_problems.JPG
-addr:country,en,https://wiki.openstreetmap.org/wiki/Key:addr:country,2024-12-01,9,184,65,11,22.96,https://upload.wikimedia.org/wikipedia/commons/thumb/8/86/Europe_ISO_3166-1.svg/200px-Europe_ISO_3166-1.svg.png
-addr:country,fr,https://wiki.openstreetmap.org/wiki/FR:Key:addr:country,2025-03-25,8,187,65,11,22.96,https://upload.wikimedia.org/wikipedia/commons/thumb/8/86/Europe_ISO_3166-1.svg/200px-Europe_ISO_3166-1.svg.png
-landuse,en,https://wiki.openstreetmap.org/wiki/Key:landuse,2025-03-01,17,2071,446,168,39.41,https://upload.wikimedia.org/wikipedia/commons/thumb/d/d3/Changing_landuse_-_geograph.org.uk_-_1137810.jpg/200px-Changing_landuse_-_geograph.org.uk_-_1137810.jpg
-landuse,fr,https://wiki.openstreetmap.org/wiki/FR:Key:landuse,2024-08-20,19,2053,418,182,39.41,https://upload.wikimedia.org/wikipedia/commons/thumb/d/d3/Changing_landuse_-_geograph.org.uk_-_1137810.jpg/200px-Changing_landuse_-_geograph.org.uk_-_1137810.jpg
-power,en,https://wiki.openstreetmap.org/wiki/Key:power,2025-02-28,20,641,127,21,124.89,https://wiki.openstreetmap.org/w/images/thumb/0/01/Power-tower.JPG/200px-Power-tower.JPG
-power,fr,https://wiki.openstreetmap.org/wiki/FR:Key:power,2023-06-27,14,390,105,25,124.89,https://wiki.openstreetmap.org/w/images/thumb/0/01/Power-tower.JPG/200px-Power-tower.JPG
-waterway,en,https://wiki.openstreetmap.org/wiki/Key:waterway,2025-03-10,21,1830,365,118,77.94,https://wiki.openstreetmap.org/w/images/thumb/f/fe/450px-Marshall-county-indiana-yellow-river.jpg/200px-450px-Marshall-county-indiana-yellow-river.jpg
-waterway,fr,https://wiki.openstreetmap.org/wiki/FR:Key:waterway,2024-03-08,18,1291,272,113,77.94,https://wiki.openstreetmap.org/w/images/thumb/f/fe/450px-Marshall-county-indiana-yellow-river.jpg/200px-450px-Marshall-county-indiana-yellow-river.jpg
-building:levels,en,https://wiki.openstreetmap.org/wiki/Key:building:levels,2025-08-13,16,1351,204,25,76.11,https://wiki.openstreetmap.org/w/images/thumb/4/47/Building-levels.png/200px-Building-levels.png
-building:levels,fr,https://wiki.openstreetmap.org/wiki/FR:Key:building:levels,2024-08-01,15,1457,202,26,76.11,https://wiki.openstreetmap.org/w/images/thumb/4/47/Building-levels.png/200px-Building-levels.png
-amenity,en,https://wiki.openstreetmap.org/wiki/Key:amenity,2025-08-24,29,3066,915,504,160.78,https://wiki.openstreetmap.org/w/images/thumb/a/a5/Mapping-Features-Parking-Lot.png/200px-Mapping-Features-Parking-Lot.png
-amenity,fr,https://wiki.openstreetmap.org/wiki/FR:Key:amenity,2023-07-19,22,2146,800,487,160.78,https://wiki.openstreetmap.org/w/images/thumb/a/a5/Mapping-Features-Parking-Lot.png/200px-Mapping-Features-Parking-Lot.png
-barrier,en,https://wiki.openstreetmap.org/wiki/Key:barrier,2025-04-15,17,2137,443,173,207.98,https://upload.wikimedia.org/wikipedia/commons/thumb/4/4c/2014_Bystrzyca_K%C5%82odzka%2C_mury_obronne_05.jpg/200px-2014_Bystrzyca_K%C5%82odzka%2C_mury_obronne_05.jpg
-barrier,fr,https://wiki.openstreetmap.org/wiki/FR:Key:barrier,2022-08-16,15,542,103,18,207.98,https://upload.wikimedia.org/wikipedia/commons/thumb/4/4c/2014_Bystrzyca_K%C5%82odzka%2C_mury_obronne_05.jpg/200px-2014_Bystrzyca_K%C5%82odzka%2C_mury_obronne_05.jpg
-source:date,en,https://wiki.openstreetmap.org/wiki/Key:source:date,2023-04-01,11,395,75,10,22.47,https://wiki.openstreetmap.org/w/images/thumb/7/76/Osm_element_node.svg/30px-Osm_element_node.svg.png
-source:date,fr,https://wiki.openstreetmap.org/wiki/FR:Key:source:date,2023-07-21,10,419,75,11,22.47,https://wiki.openstreetmap.org/w/images/thumb/7/76/Osm_element_node.svg/30px-Osm_element_node.svg.png
-service,en,https://wiki.openstreetmap.org/wiki/Key:service,2025-03-16,22,1436,218,17,83.79,https://wiki.openstreetmap.org/w/images/thumb/7/76/Osm_element_node.svg/30px-Osm_element_node.svg.png
-service,fr,https://wiki.openstreetmap.org/wiki/FR:Key:service,2024-03-04,11,443,100,10,83.79,https://wiki.openstreetmap.org/w/images/thumb/7/76/Osm_element_node.svg/30px-Osm_element_node.svg.png
-addr:state,en,https://wiki.openstreetmap.org/wiki/Key:addr:state,2023-06-23,12,289,74,11,100,https://upload.wikimedia.org/wikipedia/commons/thumb/e/ef/WVaCent.jpg/200px-WVaCent.jpg
-access,en,https://wiki.openstreetmap.org/wiki/Key:access,2025-08-06,31,5803,708,98,66.75,https://wiki.openstreetmap.org/w/images/5/5e/WhichAccess.png
-access,fr,https://wiki.openstreetmap.org/wiki/FR:Key:access,2024-11-27,33,3200,506,83,66.75,https://wiki.openstreetmap.org/w/images/5/5e/WhichAccess.png
-oneway,en,https://wiki.openstreetmap.org/wiki/Key:oneway,2025-07-17,28,2318,290,30,19.4,https://upload.wikimedia.org/wikipedia/commons/thumb/1/13/One_way_sign.JPG/200px-One_way_sign.JPG
-oneway,fr,https://wiki.openstreetmap.org/wiki/FR:Key:oneway,2025-06-16,14,645,108,14,19.4,https://upload.wikimedia.org/wikipedia/commons/thumb/f/f4/France_road_sign_C12.svg/200px-France_road_sign_C12.svg.png
-height,en,https://wiki.openstreetmap.org/wiki/Key:height,2025-07-21,24,1184,184,20,8.45,https://upload.wikimedia.org/wikipedia/commons/thumb/8/88/Height_demonstration_diagram.png/200px-Height_demonstration_diagram.png
-height,fr,https://wiki.openstreetmap.org/wiki/FR:Key:height,2025-06-14,21,1285,190,21,8.45,https://upload.wikimedia.org/wikipedia/commons/thumb/8/88/Height_demonstration_diagram.png/200px-Height_demonstration_diagram.png
-ref,en,https://wiki.openstreetmap.org/wiki/Key:ref,2025-07-25,26,4404,782,115,11.79,https://upload.wikimedia.org/wikipedia/commons/thumb/3/3d/UK_traffic_sign_2901.svg/200px-UK_traffic_sign_2901.svg.png
-ref,fr,https://wiki.openstreetmap.org/wiki/FR:Key:ref,2025-07-30,20,3393,460,12,11.79,https://upload.wikimedia.org/wikipedia/commons/thumb/a/a4/Autoroute_fran%C3%A7aise_1.svg/200px-Autoroute_fran%C3%A7aise_1.svg.png
-maxspeed,en,https://wiki.openstreetmap.org/wiki/Key:maxspeed,2025-08-20,30,4275,404,38,39.24,https://upload.wikimedia.org/wikipedia/commons/thumb/6/63/Zeichen_274-60_-_Zul%C3%A4ssige_H%C3%B6chstgeschwindigkeit%2C_StVO_2017.svg/200px-Zeichen_274-60_-_Zul%C3%A4ssige_H%C3%B6chstgeschwindigkeit%2C_StVO_2017.svg.png
-maxspeed,fr,https://wiki.openstreetmap.org/wiki/FR:Key:maxspeed,2025-05-10,25,1401,156,23,39.24,https://upload.wikimedia.org/wikipedia/commons/thumb/6/63/Zeichen_274-60_-_Zul%C3%A4ssige_H%C3%B6chstgeschwindigkeit%2C_StVO_2017.svg/200px-Zeichen_274-60_-_Zul%C3%A4ssige_H%C3%B6chstgeschwindigkeit%2C_StVO_2017.svg.png
-lanes,en,https://wiki.openstreetmap.org/wiki/Key:lanes,2025-08-21,26,2869,355,48,117.16,https://upload.wikimedia.org/wikipedia/commons/thumb/f/f4/A55_trunk_road_looking_east_-_geograph.org.uk_-_932668.jpg/200px-A55_trunk_road_looking_east_-_geograph.org.uk_-_932668.jpg
-lanes,fr,https://wiki.openstreetmap.org/wiki/FR:Key:lanes,2024-03-07,19,1492,167,19,117.16,https://wiki.openstreetmap.org/w/images/thumb/d/d4/Dscf0444_600.jpg/200px-Dscf0444_600.jpg
-start_date,en,https://wiki.openstreetmap.org/wiki/Key:start_date,2025-08-01,22,1098,168,29,214.58,https://upload.wikimedia.org/wikipedia/commons/thumb/d/dc/Connel_bridge_plate.jpg/200px-Connel_bridge_plate.jpg
-start_date,fr,https://wiki.openstreetmap.org/wiki/FR:Key:start_date,2022-08-29,19,1097,133,22,214.58,https://upload.wikimedia.org/wikipedia/commons/thumb/d/dc/Connel_bridge_plate.jpg/200px-Connel_bridge_plate.jpg
-addr:district,en,https://wiki.openstreetmap.org/wiki/Key:addr:district,2023-11-06,11,244,76,11,139.96,https://upload.wikimedia.org/wikipedia/commons/thumb/d/d0/Hangal_Taluk.jpg/200px-Hangal_Taluk.jpg
-addr:district,fr,https://wiki.openstreetmap.org/wiki/FR:Key:addr:district,2025-08-23,15,1653,150,77,139.96,https://wiki.openstreetmap.org/w/images/thumb/e/e9/Housenumber-karlsruhe-de.png/200px-Housenumber-karlsruhe-de.png
-layer,en,https://wiki.openstreetmap.org/wiki/Key:layer,2025-01-02,16,1967,181,17,65.95,https://wiki.openstreetmap.org/w/images/thumb/2/26/Washington_layers.png/200px-Washington_layers.png
-layer,fr,https://wiki.openstreetmap.org/wiki/FR:Key:layer,2024-02-16,15,2231,162,17,65.95,https://wiki.openstreetmap.org/w/images/thumb/2/26/Washington_layers.png/200px-Washington_layers.png
-type,en,https://wiki.openstreetmap.org/wiki/Key:type,2025-05-13,20,911,200,72,334.06,https://wiki.openstreetmap.org/w/images/thumb/5/58/Osm_element_node_no.svg/30px-Osm_element_node_no.svg.png
-type,fr,https://wiki.openstreetmap.org/wiki/FR:Key:type,2020-11-13,10,444,78,10,334.06,https://wiki.openstreetmap.org/w/images/thumb/5/58/Osm_element_node_no.svg/30px-Osm_element_node_no.svg.png
-operator,en,https://wiki.openstreetmap.org/wiki/Key:operator,2025-08-26,24,1908,241,37,223.28,https://wiki.openstreetmap.org/w/images/thumb/7/76/Osm_element_node.svg/30px-Osm_element_node.svg.png
-operator,fr,https://wiki.openstreetmap.org/wiki/FR:Key:operator,2022-09-30,15,418,89,11,223.28,https://wiki.openstreetmap.org/w/images/thumb/7/76/Osm_element_node.svg/30px-Osm_element_node.svg.png
-lit,en,https://wiki.openstreetmap.org/wiki/Key:lit,2024-07-20,17,931,174,52,38.88,https://upload.wikimedia.org/wikipedia/commons/thumb/e/e2/Peatonal_Bicentenario.JPG/200px-Peatonal_Bicentenario.JPG
-lit,fr,https://wiki.openstreetmap.org/wiki/FR:Key:lit,2025-01-19,17,628,123,14,38.88,https://upload.wikimedia.org/wikipedia/commons/thumb/f/fd/2014_K%C5%82odzko%2C_ul._Grottgera_14.JPG/200px-2014_K%C5%82odzko%2C_ul._Grottgera_14.JPG
-wall,en,https://wiki.openstreetmap.org/wiki/Key:wall,2024-05-02,14,682,206,61,100,https://wiki.openstreetmap.org/w/images/thumb/5/58/Osm_element_node_no.svg/30px-Osm_element_node_no.svg.png
-tiger:cfcc,en,https://wiki.openstreetmap.org/wiki/Key:tiger:cfcc,2022-12-09,10,127,24,7,100,https://wiki.openstreetmap.org/w/images/thumb/7/76/Osm_element_node.svg/30px-Osm_element_node.svg.png
-crossing,en,https://wiki.openstreetmap.org/wiki/Key:crossing,2024-02-18,25,2678,363,34,76.98,https://wiki.openstreetmap.org/w/images/thumb/7/75/Toucan.jpg/200px-Toucan.jpg
-crossing,fr,https://wiki.openstreetmap.org/wiki/FR:Key:crossing,2025-01-20,15,1390,254,28,76.98,https://wiki.openstreetmap.org/w/images/thumb/7/75/Toucan.jpg/200px-Toucan.jpg
-tiger:county,en,https://wiki.openstreetmap.org/wiki/Key:tiger:county,2022-12-09,10,127,24,7,100,https://wiki.openstreetmap.org/w/images/thumb/7/76/Osm_element_node.svg/30px-Osm_element_node.svg.png
-source:addr,en,https://wiki.openstreetmap.org/wiki/Key:source:addr,2023-07-05,9,200,70,10,100,https://wiki.openstreetmap.org/w/images/thumb/7/76/Osm_element_node.svg/30px-Osm_element_node.svg.png
-footway,en,https://wiki.openstreetmap.org/wiki/Key:footway,2025-08-20,23,2002,369,39,99.66,https://wiki.openstreetmap.org/w/images/thumb/b/b9/Sidewalk_and_zebra-crossing.jpg/200px-Sidewalk_and_zebra-crossing.jpg
-footway,fr,https://wiki.openstreetmap.org/wiki/FR:Key:footway,2024-06-04,14,685,147,28,99.66,https://wiki.openstreetmap.org/w/images/thumb/b/b9/Sidewalk_and_zebra-crossing.jpg/200px-Sidewalk_and_zebra-crossing.jpg
-ref:bag,en,https://wiki.openstreetmap.org/wiki/Key:ref:bag,2024-10-09,10,254,69,11,100,https://wiki.openstreetmap.org/w/images/thumb/5/58/Osm_element_node_no.svg/30px-Osm_element_node_no.svg.png
-addr:place,en,https://wiki.openstreetmap.org/wiki/Key:addr:place,2025-03-28,16,1204,154,13,136.57,https://upload.wikimedia.org/wikipedia/commons/thumb/e/e4/Suburb_of_Phillip.jpg/200px-Suburb_of_Phillip.jpg
-addr:place,fr,https://wiki.openstreetmap.org/wiki/FR:Key:addr:place,2023-06-17,11,276,75,12,136.57,https://upload.wikimedia.org/wikipedia/commons/thumb/e/e4/Suburb_of_Phillip.jpg/200px-Suburb_of_Phillip.jpg
-tiger:reviewed,en,https://wiki.openstreetmap.org/wiki/Key:tiger:reviewed,2025-08-01,16,734,105,11,100,https://upload.wikimedia.org/wikipedia/commons/thumb/e/e4/US-Census-TIGERLogo.svg/200px-US-Census-TIGERLogo.svg.png
-leisure,en,https://wiki.openstreetmap.org/wiki/Key:leisure,2025-02-28,12,1084,374,180,232.43,https://upload.wikimedia.org/wikipedia/commons/thumb/e/e6/Hammock_-_Polynesia.jpg/200px-Hammock_-_Polynesia.jpg
-leisure,fr,https://wiki.openstreetmap.org/wiki/FR:Key:leisure,2021-12-29,11,951,360,186,232.43,https://upload.wikimedia.org/wikipedia/commons/thumb/e/e6/Hammock_-_Polynesia.jpg/200px-Hammock_-_Polynesia.jpg
-addr:suburb,en,https://wiki.openstreetmap.org/wiki/Key:addr:suburb,2024-02-24,14,439,89,11,1.49,https://upload.wikimedia.org/wikipedia/commons/thumb/b/bb/Grosvenor_Place_2_2008_06_19.jpg/200px-Grosvenor_Place_2_2008_06_19.jpg
-addr:suburb,fr,https://wiki.openstreetmap.org/wiki/FR:Key:addr:suburb,2024-02-18,13,418,87,11,1.49,https://upload.wikimedia.org/wikipedia/commons/thumb/b/bb/Grosvenor_Place_2_2008_06_19.jpg/200px-Grosvenor_Place_2_2008_06_19.jpg
-ele,en,https://wiki.openstreetmap.org/wiki/Key:ele,2025-07-18,18,1846,165,24,104.45,https://wiki.openstreetmap.org/w/images/a/a3/Key-ele_mapnik.png
-ele,fr,https://wiki.openstreetmap.org/wiki/FR:Key:ele,2024-03-02,15,1277,128,13,104.45,https://wiki.openstreetmap.org/w/images/a/a3/Key-ele_mapnik.png
-tracktype,en,https://wiki.openstreetmap.org/wiki/Key:tracktype,2024-12-02,16,652,146,35,32.71,https://wiki.openstreetmap.org/w/images/thumb/1/13/Tracktype-collage.jpg/200px-Tracktype-collage.jpg
-tracktype,fr,https://wiki.openstreetmap.org/wiki/FR:Key:tracktype,2025-05-03,11,463,105,29,32.71,https://wiki.openstreetmap.org/w/images/thumb/1/13/Tracktype-collage.jpg/200px-Tracktype-collage.jpg
-addr:neighbourhood,en,https://wiki.openstreetmap.org/wiki/Key:addr:neighbourhood,2025-04-29,24,2020,235,83,100,https://wiki.openstreetmap.org/w/images/thumb/e/e9/Housenumber-karlsruhe-de.png/200px-Housenumber-karlsruhe-de.png
-addr:hamlet,en,https://wiki.openstreetmap.org/wiki/Key:addr:hamlet,2024-12-05,9,142,64,11,100,https://upload.wikimedia.org/wikipedia/commons/thumb/b/bb/Grosvenor_Place_2_2008_06_19.jpg/200px-Grosvenor_Place_2_2008_06_19.jpg
-addr:province,en,https://wiki.openstreetmap.org/wiki/Key:addr:province,2022-05-04,9,156,64,11,100,https://upload.wikimedia.org/wikipedia/commons/thumb/4/4b/Stamp_of_Indonesia_-_2002_-_Colnect_265917_-_Aceh_Province.jpeg/200px-Stamp_of_Indonesia_-_2002_-_Colnect_265917_-_Aceh_Province.jpeg
-leaf_type,en,https://wiki.openstreetmap.org/wiki/Key:leaf_type,2025-01-22,15,739,201,57,114.46,https://upload.wikimedia.org/wikipedia/commons/thumb/3/39/Picea_abies_Nadelkissen.jpg/200px-Picea_abies_Nadelkissen.jpg
-leaf_type,fr,https://wiki.openstreetmap.org/wiki/FR:Key:leaf_type,2023-07-02,14,734,220,64,114.46,https://upload.wikimedia.org/wikipedia/commons/thumb/3/39/Picea_abies_Nadelkissen.jpg/200px-Picea_abies_Nadelkissen.jpg
-addr:full,en,https://wiki.openstreetmap.org/wiki/Key:addr:full,2025-04-29,24,2020,235,83,100,https://wiki.openstreetmap.org/w/images/thumb/e/e9/Housenumber-karlsruhe-de.png/200px-Housenumber-karlsruhe-de.png
-Anatomie_des_étiquettes_osm,en,https://wiki.openstreetmap.org/wiki/Anatomie_des_étiquettes_osm,2025-06-08,22,963,53,0,100,
+Anatomie_des_étiquettes_osm,en,https://wiki.openstreetmap.org/wiki/Anatomie_des_étiquettes_osm,2025-06-08,22,0,0,0,100,
Tag:leisure=children_club,en,https://wiki.openstreetmap.org/wiki/Tag:leisure=children_club,2025-02-02,9,163,69,9,56.04,https://wiki.openstreetmap.org/w/images/thumb/7/76/Osm_element_node.svg/30px-Osm_element_node.svg.png
Tag:leisure=children_club,fr,https://wiki.openstreetmap.org/wiki/FR:Tag:leisure=children_club,2024-05-02,8,294,67,10,56.04,https://upload.wikimedia.org/wikipedia/commons/thumb/7/74/Dave_%26_Buster%27s_video_arcade_in_Columbus%2C_OH_-_17910.JPG/200px-Dave_%26_Buster%27s_video_arcade_in_Columbus%2C_OH_-_17910.JPG
Tag:harassment_prevention=ask_angela,en,https://wiki.openstreetmap.org/wiki/Tag:harassment_prevention=ask_angela,2025-02-22,14,463,72,9,42.56,https://wiki.openstreetmap.org/w/images/thumb/7/76/Osm_element_node.svg/30px-Osm_element_node.svg.png
Tag:harassment_prevention=ask_angela,fr,https://wiki.openstreetmap.org/wiki/FR:Tag:harassment_prevention=ask_angela,2025-09-01,20,873,166,15,42.56,https://wiki.openstreetmap.org/w/images/thumb/1/15/2024-06-27T08.40.50_ask_angela_lyon.jpg/200px-2024-06-27T08.40.50_ask_angela_lyon.jpg
Key:harassment_prevention,en,https://wiki.openstreetmap.org/wiki/Key:harassment_prevention,2024-08-10,12,196,69,14,66.72,https://wiki.openstreetmap.org/w/images/thumb/7/76/Osm_element_node.svg/30px-Osm_element_node.svg.png
Key:harassment_prevention,fr,https://wiki.openstreetmap.org/wiki/FR:Key:harassment_prevention,2025-07-03,15,328,83,14,66.72,https://wiki.openstreetmap.org/w/images/thumb/7/76/Osm_element_node.svg/30px-Osm_element_node.svg.png
-Proposal process,en,https://wiki.openstreetmap.org/wiki/Proposal process,2025-08-13,46,5292,202,4,166.25,https://wiki.openstreetmap.org/w/images/thumb/c/c2/Save_proposal_first.png/761px-Save_proposal_first.png
-Proposal process,fr,https://wiki.openstreetmap.org/wiki/FR:Proposal process,2023-09-22,15,1146,24,0,166.25,
-Automated_Edits_code_of_conduct,en,https://wiki.openstreetmap.org/wiki/Automated_Edits_code_of_conduct,2025-07-26,19,2062,69,0,26.35,
-Automated_Edits_code_of_conduct,fr,https://wiki.openstreetmap.org/wiki/FR:Automated_Edits_code_of_conduct,2025-04-03,17,1571,16,0,26.35,
+Proposal process,en,https://wiki.openstreetmap.org/wiki/Proposal process,2025-08-13,46,5292,202,4,172.34,https://wiki.openstreetmap.org/w/images/thumb/c/c2/Save_proposal_first.png/761px-Save_proposal_first.png
+Proposal process,fr,https://wiki.openstreetmap.org/wiki/FR:Proposal process,2023-09-22,15,0,0,0,172.34,
+Automated_Edits_code_of_conduct,en,https://wiki.openstreetmap.org/wiki/Automated_Edits_code_of_conduct,2025-07-26,19,0,0,0,23.1,
+Automated_Edits_code_of_conduct,fr,https://wiki.openstreetmap.org/wiki/FR:Automated_Edits_code_of_conduct,2025-04-03,17,0,0,0,23.1,
Key:cuisine,en,https://wiki.openstreetmap.org/wiki/Key:cuisine,2025-07-23,17,3422,693,303,107.73,https://upload.wikimedia.org/wikipedia/commons/thumb/f/f0/Food_montage.jpg/200px-Food_montage.jpg
Key:cuisine,fr,https://wiki.openstreetmap.org/wiki/FR:Key:cuisine,2024-02-16,15,2866,690,316,107.73,https://upload.wikimedia.org/wikipedia/commons/thumb/f/f0/Food_montage.jpg/200px-Food_montage.jpg
-Libre_Charge_Map,en,https://wiki.openstreetmap.org/wiki/Libre_Charge_Map,2025-07-28,11,328,10,2,100,https://wiki.openstreetmap.org/w/images/thumb/8/8e/Screenshot_2025-07-28_at_14-40-11_LibreChargeMap_-_OSM_Bliss.png/300px-Screenshot_2025-07-28_at_14-40-11_LibreChargeMap_-_OSM_Bliss.png
-OSM_Mon_Commerce,en,https://wiki.openstreetmap.org/wiki/OSM_Mon_Commerce,2025-07-29,17,418,34,3,100,https://wiki.openstreetmap.org/w/images/thumb/6/67/Villes_OSM_Mon_Commerce.png/500px-Villes_OSM_Mon_Commerce.png
+Libre_Charge_Map,en,https://wiki.openstreetmap.org/wiki/Libre_Charge_Map,2025-09-03,11,328,10,2,1.34,https://wiki.openstreetmap.org/w/images/thumb/8/8e/Screenshot_2025-07-28_at_14-40-11_LibreChargeMap_-_OSM_Bliss.png/300px-Screenshot_2025-07-28_at_14-40-11_LibreChargeMap_-_OSM_Bliss.png
+Libre_Charge_Map,fr,https://wiki.openstreetmap.org/wiki/FR:Libre_Charge_Map,2025-09-03,12,101,14,2,1.34,https://wiki.openstreetmap.org/w/images/thumb/8/8e/Screenshot_2025-07-28_at_14-40-11_LibreChargeMap_-_OSM_Bliss.png/300px-Screenshot_2025-07-28_at_14-40-11_LibreChargeMap_-_OSM_Bliss.png
+OSM_Mon_Commerce,en,https://wiki.openstreetmap.org/wiki/OSM_Mon_Commerce,2025-07-29,17,418,34,3,8.85,https://wiki.openstreetmap.org/w/images/thumb/6/67/Villes_OSM_Mon_Commerce.png/500px-Villes_OSM_Mon_Commerce.png
+OSM_Mon_Commerce,fr,https://wiki.openstreetmap.org/wiki/FR:OSM_Mon_Commerce,2025-09-03,13,256,18,3,8.85,https://wiki.openstreetmap.org/w/images/thumb/6/67/Villes_OSM_Mon_Commerce.png/500px-Villes_OSM_Mon_Commerce.png
+Complète_Tes_Commerces,en,https://wiki.openstreetmap.org/wiki/Complète_Tes_Commerces,2025-08-03,9,0,0,0,5.35,
+Complète_Tes_Commerces,fr,https://wiki.openstreetmap.org/wiki/FR:Complète_Tes_Commerces,2025-08-26,14,0,0,0,5.35,
Tag:amenity=charging_station,en,https://wiki.openstreetmap.org/wiki/Tag:amenity=charging_station,2025-08-29,16,1509,284,62,55.72,https://wiki.openstreetmap.org/w/images/thumb/4/4d/Recharge_Vigra_charging_station.jpg/200px-Recharge_Vigra_charging_station.jpg
Tag:amenity=charging_station,fr,https://wiki.openstreetmap.org/wiki/FR:Tag:amenity=charging_station,2024-12-28,19,2662,331,58,55.72,https://wiki.openstreetmap.org/w/images/thumb/4/4d/Recharge_Vigra_charging_station.jpg/200px-Recharge_Vigra_charging_station.jpg
+Organised_Editing/Activities/MapYourGrid_Initiative,en,https://wiki.openstreetmap.org/wiki/Organised_Editing/Activities/MapYourGrid_Initiative,2025-09-03,33,1872,122,2,100,https://wiki.openstreetmap.org/w/images/thumb/f/f9/Mapyourgrid-logo.png/350px-Mapyourgrid-logo.png
+Key:highway,en,https://wiki.openstreetmap.org/wiki/Key:highway,2025-04-10,30,4126,780,314,20.35,https://upload.wikimedia.org/wikipedia/commons/thumb/7/78/Roads_in_Switzerland_%2827965437018%29.jpg/200px-Roads_in_Switzerland_%2827965437018%29.jpg
+Key:highway,fr,https://wiki.openstreetmap.org/wiki/FR:Key:highway,2025-01-05,30,4141,695,313,20.35,https://upload.wikimedia.org/wikipedia/commons/thumb/7/78/Roads_in_Switzerland_%2827965437018%29.jpg/200px-Roads_in_Switzerland_%2827965437018%29.jpg
+Quality_assurance,en,https://wiki.openstreetmap.org/wiki/Quality_assurance,2025-06-01,19,0,0,0,15.6,
+Quality_assurance,fr,https://wiki.openstreetmap.org/wiki/FR:Quality_assurance,2025-08-18,19,0,0,0,15.6,
+Verifiability,en,https://wiki.openstreetmap.org/wiki/Verifiability,2024-11-28,22,1440,59,1,102.48,https://wiki.openstreetmap.org/w/images/thumb/7/7d/Vernier_calipers.svg/160px-Vernier_calipers.svg.png
+Verifiability,fr,https://wiki.openstreetmap.org/wiki/FR:Verifiability,2023-07-29,13,842,23,1,102.48,https://wiki.openstreetmap.org/w/images/thumb/7/7d/Vernier_calipers.svg/160px-Vernier_calipers.svg.png
+Good_practice,en,https://wiki.openstreetmap.org/wiki/Good_practice,2025-07-18,34,2611,122,2,73.08,https://wiki.openstreetmap.org/w/images/thumb/8/84/Tracks_with_descriptive_name_tags.png/300px-Tracks_with_descriptive_name_tags.png
+Good_practice,fr,https://wiki.openstreetmap.org/wiki/FR:Good_practice,2024-07-26,33,2791,80,1,73.08,https://wiki.openstreetmap.org/w/images/thumb/8/84/Tracks_with_descriptive_name_tags.png/300px-Tracks_with_descriptive_name_tags.png
+Mapping_parties,en,https://wiki.openstreetmap.org/wiki/Mapping_parties,2023-11-12,10,512,18,3,290.75,https://wiki.openstreetmap.org/w/images/thumb/c/c3/Mappers-learning-to-gps.jpg/300px-Mappers-learning-to-gps.jpg
+Mapping_parties,fr,https://wiki.openstreetmap.org/wiki/FR:Mapping_parties,2019-11-23,9,622,15,2,290.75,https://wiki.openstreetmap.org/w/images/thumb/c/c3/Mappers-learning-to-gps.jpg/300px-Mappers-learning-to-gps.jpg
+State_of_the_Map,en,https://wiki.openstreetmap.org/wiki/State_of_the_Map,2025-08-22,45,2975,577,120,100,https://wiki.openstreetmap.org/w/images/thumb/a/af/Sotm_2025_coloured.png/120px-Sotm_2025_coloured.png
+Diversity,en,https://wiki.openstreetmap.org/wiki/Diversity,2024-09-27,25,0,0,0,41.3,
+Diversity,fr,https://wiki.openstreetmap.org/wiki/FR:Diversity,2025-04-20,27,0,0,0,41.3,
+Mapping_private_information,en,https://wiki.openstreetmap.org/wiki/Mapping_private_information,2025-07-21,18,0,0,0,100,
+Any_tags_you_like,en,https://wiki.openstreetmap.org/wiki/Any_tags_you_like,2025-05-14,21,0,0,0,307.45,
+Any_tags_you_like,fr,https://wiki.openstreetmap.org/wiki/FR:Any_tags_you_like,2021-03-01,18,0,0,0,307.45,
+Organised_Editing/Best_Practices,en,https://wiki.openstreetmap.org/wiki/Organised_Editing/Best_Practices,2025-07-18,16,501,10,1,100,https://upload.wikimedia.org/wikipedia/commons/thumb/1/15/Ambox_warning_pn.svg/40px-Ambox_warning_pn.svg.png
+Map_features,en,https://wiki.openstreetmap.org/wiki/Map_features,2025-07-21,125,21926,4255,2222,507.98,https://upload.wikimedia.org/wikipedia/commons/thumb/6/6b/Bar_MXCT.JPG/100px-Bar_MXCT.JPG
+Map_features,fr,https://wiki.openstreetmap.org/wiki/FR:Map_features,2018-12-27,103,23159,5516,3062,507.98,https://wiki.openstreetmap.org/w/images/c/c4/Aerialway_gondola_render.png
+https://wiki.openstreetmap.org/wiki/FR:Quality_Assurance,fr,https://wiki.openstreetmap.org/wiki/FR:Quality_Assurance,2015-05-16,16,0,0,0,0,
+https://wiki.openstreetmap.org/wiki/Quality_Assurance,en,https://wiki.openstreetmap.org/wiki/Quality_Assurance,2025-06-01,19,0,0,0,100,
+https://wiki.openstreetmap.org/wiki/FR:Nominatim/Installation,fr,https://wiki.openstreetmap.org/wiki/FR:Nominatim/Installation,2016-08-22,32,0,0,0,0,
+https://wiki.openstreetmap.org/wiki/FR:Maxheight_Map,fr,https://wiki.openstreetmap.org/wiki/FR:Maxheight_Map,2017-12-11,27,1090,74,10,0,https://wiki.openstreetmap.org/w/images/thumb/c/c7/Maxheight_Map.png/400px-Maxheight_Map.png
+https://wiki.openstreetmap.org/wiki/Maxheight_Map,en,https://wiki.openstreetmap.org/wiki/Maxheight_Map,2025-08-31,34,2323,95,16,100,https://wiki.openstreetmap.org/w/images/thumb/d/d7/Maxheight_map_complex.png/200px-Maxheight_map_complex.png
+https://wiki.openstreetmap.org/wiki/FR:Enregistrement_de_traces_GPS,fr,https://wiki.openstreetmap.org/wiki/FR:Enregistrement_de_traces_GPS,2018-03-20,17,1040,45,2,0,https://upload.wikimedia.org/wikipedia/commons/thumb/8/8d/GPS_Satellite_NASA_art-iif.jpg/120px-GPS_Satellite_NASA_art-iif.jpg
+https://wiki.openstreetmap.org/wiki/FR:Conversion_des_traces_GPS,fr,https://wiki.openstreetmap.org/wiki/FR:Conversion_des_traces_GPS,2018-03-27,11,536,29,2,0,https://upload.wikimedia.org/wikipedia/commons/thumb/8/8d/GPS_Satellite_NASA_art-iif.jpg/120px-GPS_Satellite_NASA_art-iif.jpg
+https://wiki.openstreetmap.org/wiki/FR:%C3%89l%C3%A9ments_cartographiques,fr,https://wiki.openstreetmap.org/wiki/FR:%C3%89l%C3%A9ments_cartographiques,2018-12-27,103,23159,5516,3062,0,https://wiki.openstreetmap.org/w/images/c/c4/Aerialway_gondola_render.png
+https://wiki.openstreetmap.org/wiki/FR:Relation:bridge,fr,https://wiki.openstreetmap.org/wiki/FR:Relation:bridge,2019-02-22,8,190,68,10,0,https://wiki.openstreetmap.org/w/images/thumb/9/9a/Mapping-Features-Road-Bridge.png/200px-Mapping-Features-Road-Bridge.png
+https://wiki.openstreetmap.org/wiki/Relation:bridge,en,https://wiki.openstreetmap.org/wiki/Relation:bridge,2024-05-28,11,426,92,15,100,https://wiki.openstreetmap.org/w/images/thumb/9/9a/Mapping-Features-Road-Bridge.png/200px-Mapping-Features-Road-Bridge.png
+https://wiki.openstreetmap.org/wiki/FR:Xapi,fr,https://wiki.openstreetmap.org/wiki/FR:Xapi,2020-04-09,32,2837,58,3,0,https://wiki.openstreetmap.org/w/images/c/c9/Logo.png
+https://wiki.openstreetmap.org/wiki/Xapi,en,https://wiki.openstreetmap.org/wiki/Xapi,2020-04-09,42,2760,73,2,100,https://wiki.openstreetmap.org/w/images/c/c9/Logo.png
+https://wiki.openstreetmap.org/wiki/FR:Key:min_age,fr,https://wiki.openstreetmap.org/wiki/FR:Key:min_age,2020-09-23,10,248,73,12,0,https://wiki.openstreetmap.org/w/images/thumb/7/76/Osm_element_node.svg/30px-Osm_element_node.svg.png
+https://wiki.openstreetmap.org/wiki/Key:min_age,en,https://wiki.openstreetmap.org/wiki/Key:min_age,2023-06-01,15,539,126,18,100,https://wiki.openstreetmap.org/w/images/thumb/7/76/Osm_element_node.svg/30px-Osm_element_node.svg.png
+https://wiki.openstreetmap.org/wiki/FR:Google_Maps_user_contributions,fr,https://wiki.openstreetmap.org/wiki/FR:Google_Maps_user_contributions,2020-10-01,16,2029,17,3,0,https://wiki.openstreetmap.org/w/images/thumb/7/7b/Simple_sad_face.svg/100px-Simple_sad_face.svg.png
+https://wiki.openstreetmap.org/wiki/Google_Maps_user_contributions,en,https://wiki.openstreetmap.org/wiki/Google_Maps_user_contributions,2025-03-13,15,766,28,2,100,https://wiki.openstreetmap.org/w/images/thumb/7/7b/Simple_sad_face.svg/100px-Simple_sad_face.svg.png
+https://wiki.openstreetmap.org/wiki/FR:Quality_Assurance_Tools_script,fr,https://wiki.openstreetmap.org/wiki/FR:Quality_Assurance_Tools_script,2021-01-17,18,701,50,15,0,https://wiki.openstreetmap.org/w/images/e/e0/Qat_script_logo.png
+https://wiki.openstreetmap.org/wiki/Quality_Assurance_Tools_script,en,https://wiki.openstreetmap.org/wiki/Quality_Assurance_Tools_script,2020-07-24,21,1172,59,15,100,https://wiki.openstreetmap.org/w/images/thumb/f/f9/Qat_script_download_dlg_screenshot_small.png/518px-Qat_script_download_dlg_screenshot_small.png
+https://wiki.openstreetmap.org/wiki/FR:Unconfirmed_user,fr,https://wiki.openstreetmap.org/wiki/FR:Unconfirmed_user,2021-02-07,8,0,0,0,0,
+https://wiki.openstreetmap.org/wiki/Unconfirmed_user,en,https://wiki.openstreetmap.org/wiki/Unconfirmed_user,2025-04-18,9,0,0,0,100,
+https://wiki.openstreetmap.org/wiki/FR:Key:generator:method,fr,https://wiki.openstreetmap.org/wiki/FR:Key:generator:method,2023-06-19,9,396,101,13,0,https://upload.wikimedia.org/wikipedia/commons/thumb/1/1d/Huntly_Power_Station.JPG/200px-Huntly_Power_Station.JPG
+https://wiki.openstreetmap.org/wiki/Key:generator:method,en,https://wiki.openstreetmap.org/wiki/Key:generator:method,2023-11-26,11,482,151,39,100,https://upload.wikimedia.org/wikipedia/commons/thumb/1/1d/Huntly_Power_Station.JPG/200px-Huntly_Power_Station.JPG
+https://wiki.openstreetmap.org/wiki/FR:Import/Guidelines,fr,https://wiki.openstreetmap.org/wiki/FR:Import/Guidelines,2023-07-04,23,0,0,0,0,
+https://wiki.openstreetmap.org/wiki/FR:Tag:sport%3Dshooting,fr,https://wiki.openstreetmap.org/wiki/FR:Tag:sport%3Dshooting,2023-07-18,11,393,88,15,0,https://upload.wikimedia.org/wikipedia/commons/thumb/8/86/Hattie_Johnson_2.jpg/200px-Hattie_Johnson_2.jpg
+https://wiki.openstreetmap.org/wiki/Tag:sport%3Dshooting,en,https://wiki.openstreetmap.org/wiki/Tag:sport%3Dshooting,2024-12-02,15,454,123,15,100,https://upload.wikimedia.org/wikipedia/commons/thumb/8/86/Hattie_Johnson_2.jpg/200px-Hattie_Johnson_2.jpg
+https://wiki.openstreetmap.org/wiki/FR:Tag:generator:method%3Dcombustion,fr,https://wiki.openstreetmap.org/wiki/FR:Tag:generator:method%3Dcombustion,2023-07-24,10,419,104,13,0,https://upload.wikimedia.org/wikipedia/commons/thumb/3/3c/Et_baal.jpg/200px-Et_baal.jpg
+https://wiki.openstreetmap.org/wiki/Tag:generator:method%3Dcombustion,en,https://wiki.openstreetmap.org/wiki/Tag:generator:method%3Dcombustion,2023-11-21,10,203,97,12,100,https://upload.wikimedia.org/wikipedia/commons/thumb/4/48/USMC-090111-M-1394J-003.jpg/200px-USMC-090111-M-1394J-003.jpg
+https://wiki.openstreetmap.org/wiki/FR:Tag:generator:method%3Dfission,fr,https://wiki.openstreetmap.org/wiki/FR:Tag:generator:method%3Dfission,2023-07-24,10,424,105,13,0,https://upload.wikimedia.org/wikipedia/commons/thumb/1/15/Nuclear_fission.svg/200px-Nuclear_fission.svg.png
+https://wiki.openstreetmap.org/wiki/Tag:generator:method%3Dfission,en,https://wiki.openstreetmap.org/wiki/Tag:generator:method%3Dfission,2023-11-21,10,156,77,12,100,https://upload.wikimedia.org/wikipedia/commons/thumb/1/15/Nuclear_fission.svg/200px-Nuclear_fission.svg.png
+https://wiki.openstreetmap.org/wiki/FR:Tag:generator:method%3Dfusion,fr,https://wiki.openstreetmap.org/wiki/FR:Tag:generator:method%3Dfusion,2023-07-24,10,450,107,13,0,https://upload.wikimedia.org/wikipedia/commons/thumb/3/3b/Deuterium-tritium_fusion.svg/200px-Deuterium-tritium_fusion.svg.png
+https://wiki.openstreetmap.org/wiki/Tag:generator:method%3Dfusion,en,https://wiki.openstreetmap.org/wiki/Tag:generator:method%3Dfusion,2023-11-21,10,203,83,12,100,https://upload.wikimedia.org/wikipedia/commons/thumb/3/3b/Deuterium-tritium_fusion.svg/200px-Deuterium-tritium_fusion.svg.png
+https://wiki.openstreetmap.org/wiki/FR:Tag:generator:method%3Dgasification,fr,https://wiki.openstreetmap.org/wiki/FR:Tag:generator:method%3Dgasification,2023-07-24,10,433,103,13,0,https://upload.wikimedia.org/wikipedia/commons/thumb/5/5d/Holzvergaser_G%C3%BCssing.jpg/200px-Holzvergaser_G%C3%BCssing.jpg
+https://wiki.openstreetmap.org/wiki/Tag:generator:method%3Dgasification,en,https://wiki.openstreetmap.org/wiki/Tag:generator:method%3Dgasification,2023-07-16,12,299,98,13,100,https://upload.wikimedia.org/wikipedia/commons/thumb/5/5d/Holzvergaser_G%C3%BCssing.jpg/200px-Holzvergaser_G%C3%BCssing.jpg
+https://wiki.openstreetmap.org/wiki/FR:Tag:generator:method%3Dthermal,fr,https://wiki.openstreetmap.org/wiki/FR:Tag:generator:method%3Dthermal,2023-07-24,10,447,107,13,0,https://upload.wikimedia.org/wikipedia/commons/thumb/e/eb/PS10_solar_power_tower.jpg/200px-PS10_solar_power_tower.jpg
+https://wiki.openstreetmap.org/wiki/Tag:generator:method%3Dthermal,en,https://wiki.openstreetmap.org/wiki/Tag:generator:method%3Dthermal,2023-11-20,15,377,135,20,100,https://upload.wikimedia.org/wikipedia/commons/thumb/6/63/Solar_Plant_kl.jpg/200px-Solar_Plant_kl.jpg
+https://wiki.openstreetmap.org/wiki/FR:Key:shop,fr,https://wiki.openstreetmap.org/wiki/FR:Key:shop,2023-07-25,33,3285,754,382,0,https://wiki.openstreetmap.org/w/images/thumb/2/26/Geograph_shop.jpg/200px-Geograph_shop.jpg
+https://wiki.openstreetmap.org/wiki/Key:shop,en,https://wiki.openstreetmap.org/wiki/Key:shop,2025-03-22,31,3638,816,392,100,https://wiki.openstreetmap.org/w/images/thumb/d/dc/North_london_shops.jpg/200px-North_london_shops.jpg
+https://wiki.openstreetmap.org/wiki/FR:Tag:generator:source%3Dbiomass,fr,https://wiki.openstreetmap.org/wiki/FR:Tag:generator:source%3Dbiomass,2023-07-26,10,278,80,14,0,https://upload.wikimedia.org/wikipedia/commons/thumb/5/5f/Biomasse-Heizkraftwerk_Sellessen.jpg/200px-Biomasse-Heizkraftwerk_Sellessen.jpg
+https://wiki.openstreetmap.org/wiki/Tag:generator:source%3Dbiomass,en,https://wiki.openstreetmap.org/wiki/Tag:generator:source%3Dbiomass,2023-11-22,15,445,117,16,100,https://upload.wikimedia.org/wikipedia/commons/thumb/3/3a/2013-05-03_Fotoflug_Leer_Papenburg_DSCF6945.jpg/200px-2013-05-03_Fotoflug_Leer_Papenburg_DSCF6945.jpg
+https://wiki.openstreetmap.org/wiki/FR:OpenRailwayMap/API,fr,https://wiki.openstreetmap.org/wiki/FR:OpenRailwayMap/API,2023-10-15,12,0,0,0,0,
+https://wiki.openstreetmap.org/wiki/API,en,https://wiki.openstreetmap.org/wiki/API,2022-10-05,16,0,0,0,100,
+https://wiki.openstreetmap.org/wiki/FR:Internationalisation_des_cartes,fr,https://wiki.openstreetmap.org/wiki/FR:Internationalisation_des_cartes,2023-12-06,11,383,24,3,0,https://wiki.openstreetmap.org/w/images/thumb/7/7b/Schermafbeelding_2022-09-28_om_21.02.38.png/300px-Schermafbeelding_2022-09-28_om_21.02.38.png
+https://wiki.openstreetmap.org/wiki/FR:Tag:generator:method%3Dphotovoltaic,fr,https://wiki.openstreetmap.org/wiki/FR:Tag:generator:method%3Dphotovoltaic,2024-03-02,10,452,107,13,0,https://upload.wikimedia.org/wikipedia/commons/thumb/3/33/Mafate_Marla_solar_panel_dsc00633.jpg/200px-Mafate_Marla_solar_panel_dsc00633.jpg
+https://wiki.openstreetmap.org/wiki/Tag:generator:method%3Dphotovoltaic,en,https://wiki.openstreetmap.org/wiki/Tag:generator:method%3Dphotovoltaic,2025-04-22,12,225,95,14,100,https://upload.wikimedia.org/wikipedia/commons/thumb/4/45/Giant_photovoltaic_array.jpg/200px-Giant_photovoltaic_array.jpg
+https://wiki.openstreetmap.org/wiki/FR:Key:distance,fr,https://wiki.openstreetmap.org/wiki/FR:Key:distance,2024-03-28,9,244,68,12,0,https://upload.wikimedia.org/wikipedia/commons/thumb/0/0d/M27_DLS.JPG/200px-M27_DLS.JPG
+https://wiki.openstreetmap.org/wiki/Key:distance,en,https://wiki.openstreetmap.org/wiki/Key:distance,2024-12-29,14,568,86,12,100,https://upload.wikimedia.org/wikipedia/commons/thumb/0/0d/M27_DLS.JPG/200px-M27_DLS.JPG
+https://wiki.openstreetmap.org/wiki/FR:Tag_status,fr,https://wiki.openstreetmap.org/wiki/FR:Tag_status,2024-04-02,20,0,0,0,0,
+https://wiki.openstreetmap.org/wiki/Tag_status,en,https://wiki.openstreetmap.org/wiki/Tag_status,2025-05-17,25,0,0,0,100,
+https://wiki.openstreetmap.org/wiki/FR:Tag:shelter_type%3Dbasic_hut,fr,https://wiki.openstreetmap.org/wiki/FR:Tag:shelter_type%3Dbasic_hut,2024-04-10,17,448,122,23,0,https://upload.wikimedia.org/wikipedia/commons/thumb/2/22/BivaccoBertoglioNebbia.jpg/200px-BivaccoBertoglioNebbia.jpg
+https://wiki.openstreetmap.org/wiki/Tag:shelter_type%3Dbasic_hut,en,https://wiki.openstreetmap.org/wiki/Tag:shelter_type%3Dbasic_hut,2024-11-08,15,441,113,16,100,https://upload.wikimedia.org/wikipedia/commons/thumb/2/22/BivaccoBertoglioNebbia.jpg/200px-BivaccoBertoglioNebbia.jpg
+https://wiki.openstreetmap.org/wiki/FR:Tag:highway%3Dmotorway_link,fr,https://wiki.openstreetmap.org/wiki/FR:Tag:highway%3Dmotorway_link,2024-07-02,11,804,139,17,0,https://upload.wikimedia.org/wikipedia/commons/thumb/1/1d/M40_Motorway%2C_Heading_North._Junction_13_Slip_Road_For_A452_-_geograph.org.uk_-_1282061.jpg/200px-M40_Motorway%2C_Heading_North._Junction_13_Slip_Road_For_A452_-_geograph.org.uk_-_1282061.jpg
+https://wiki.openstreetmap.org/wiki/Tag:highway%3Dmotorway_link,en,https://wiki.openstreetmap.org/wiki/Tag:highway%3Dmotorway_link,2025-04-10,18,1150,194,16,100,https://upload.wikimedia.org/wikipedia/commons/thumb/1/1d/M40_Motorway%2C_Heading_North._Junction_13_Slip_Road_For_A452_-_geograph.org.uk_-_1282061.jpg/200px-M40_Motorway%2C_Heading_North._Junction_13_Slip_Road_For_A452_-_geograph.org.uk_-_1282061.jpg
+https://wiki.openstreetmap.org/wiki/FR:Relation:enforcement,fr,https://wiki.openstreetmap.org/wiki/FR:Relation:enforcement,2024-07-20,16,1304,128,29,0,https://wiki.openstreetmap.org/w/images/thumb/c/c5/Fixed_speed_camera.svg/200px-Fixed_speed_camera.svg.png
+https://wiki.openstreetmap.org/wiki/Relation:enforcement,en,https://wiki.openstreetmap.org/wiki/Relation:enforcement,2025-02-09,33,2032,310,65,100,https://wiki.openstreetmap.org/w/images/thumb/c/c5/Fixed_speed_camera.svg/200px-Fixed_speed_camera.svg.png
+https://wiki.openstreetmap.org/wiki/FR:Key:roof:material,fr,https://wiki.openstreetmap.org/wiki/FR:Key:roof:material,2024-08-01,10,597,204,83,0,https://upload.wikimedia.org/wikipedia/commons/thumb/9/9d/Roof-Tile-3149.jpg/200px-Roof-Tile-3149.jpg
+https://wiki.openstreetmap.org/wiki/Key:roof:material,en,https://wiki.openstreetmap.org/wiki/Key:roof:material,2025-06-21,15,1170,379,175,100,https://upload.wikimedia.org/wikipedia/commons/thumb/9/9d/Roof-Tile-3149.jpg/200px-Roof-Tile-3149.jpg
+https://wiki.openstreetmap.org/wiki/FR:Key:fuel,fr,https://wiki.openstreetmap.org/wiki/FR:Key:fuel,2024-10-29,9,711,147,15,0,https://upload.wikimedia.org/wikipedia/commons/thumb/e/ec/BBQ-Ulverstone-20070420-031.jpg/200px-BBQ-Ulverstone-20070420-031.jpg
+https://wiki.openstreetmap.org/wiki/Key:fuel,en,https://wiki.openstreetmap.org/wiki/Key:fuel,2025-06-05,10,250,95,12,100,https://upload.wikimedia.org/wikipedia/commons/thumb/e/ec/BBQ-Ulverstone-20070420-031.jpg/200px-BBQ-Ulverstone-20070420-031.jpg
+https://wiki.openstreetmap.org/wiki/FR:Tag:highway%3Dbusway,fr,https://wiki.openstreetmap.org/wiki/FR:Tag:highway%3Dbusway,2024-12-19,13,557,132,18,0,https://upload.wikimedia.org/wikipedia/commons/thumb/c/cf/Harmoni_Central_Busway_Transjakarta_2.JPG/200px-Harmoni_Central_Busway_Transjakarta_2.JPG
+https://wiki.openstreetmap.org/wiki/Tag:highway%3Dbusway,en,https://wiki.openstreetmap.org/wiki/Tag:highway%3Dbusway,2025-09-04,20,1801,257,31,100,https://upload.wikimedia.org/wikipedia/commons/thumb/c/cf/Harmoni_Central_Busway_Transjakarta_2.JPG/200px-Harmoni_Central_Busway_Transjakarta_2.JPG
+https://wiki.openstreetmap.org/wiki/FR:Tag:railway%3Dtram,fr,https://wiki.openstreetmap.org/wiki/FR:Tag:railway%3Dtram,2024-12-21,11,302,87,15,0,https://upload.wikimedia.org/wikipedia/commons/thumb/9/9f/Praha%2C_Hloub%C4%9Bt%C3%ADn%2C_Lehovec%2C_tram_KT8D5.JPG/200px-Praha%2C_Hloub%C4%9Bt%C3%ADn%2C_Lehovec%2C_tram_KT8D5.JPG
+https://wiki.openstreetmap.org/wiki/Tag:railway%3Dtram,en,https://wiki.openstreetmap.org/wiki/Tag:railway%3Dtram,2023-05-24,16,699,181,14,100,https://upload.wikimedia.org/wikipedia/commons/thumb/9/9f/Praha%2C_Hloub%C4%9Bt%C3%ADn%2C_Lehovec%2C_tram_KT8D5.JPG/200px-Praha%2C_Hloub%C4%9Bt%C3%ADn%2C_Lehovec%2C_tram_KT8D5.JPG
+https://wiki.openstreetmap.org/wiki/FR:Key:building:material,fr,https://wiki.openstreetmap.org/wiki/FR:Key:building:material,2025-01-05,10,336,90,27,0,https://upload.wikimedia.org/wikipedia/commons/thumb/d/d1/M%C3%BCnster%2C_LVM_--_2017_--_6351-7.jpg/200px-M%C3%BCnster%2C_LVM_--_2017_--_6351-7.jpg
+https://wiki.openstreetmap.org/wiki/Key:building:material,en,https://wiki.openstreetmap.org/wiki/Key:building:material,2025-08-18,15,640,162,68,100,https://upload.wikimedia.org/wikipedia/commons/thumb/d/d1/M%C3%BCnster%2C_LVM_--_2017_--_6351-7.jpg/200px-M%C3%BCnster%2C_LVM_--_2017_--_6351-7.jpg
+https://wiki.openstreetmap.org/wiki/FR:Android,fr,https://wiki.openstreetmap.org/wiki/FR:Android,2025-05-09,36,6795,781,161,0,https://wiki.openstreetmap.org/w/images/thumb/a/a7/Turn-by-turn-bike-navigation.jpg/112px-Turn-by-turn-bike-navigation.jpg
+https://wiki.openstreetmap.org/wiki/Android,en,https://wiki.openstreetmap.org/wiki/Android,2025-06-16,27,1784,257,24,100,https://wiki.openstreetmap.org/w/images/thumb/e/e2/Vespucci_screenshot.png/112px-Vespucci_screenshot.png
+https://wiki.openstreetmap.org/wiki/FR:Tag:amenity%3Dloading_dock,fr,https://wiki.openstreetmap.org/wiki/FR:Tag:amenity%3Dloading_dock,2025-08-27,13,425,122,15,0,https://upload.wikimedia.org/wikipedia/commons/thumb/1/18/Loading_dock.jpg/200px-Loading_dock.jpg
+https://wiki.openstreetmap.org/wiki/Tag:amenity%3Dloading_dock,en,https://wiki.openstreetmap.org/wiki/Tag:amenity%3Dloading_dock,2025-07-27,16,776,164,25,100,https://upload.wikimedia.org/wikipedia/commons/thumb/1/18/Loading_dock.jpg/200px-Loading_dock.jpg