Index: /trunk/ivy.xml
===================================================================
--- /trunk/ivy.xml	(revision 16433)
+++ /trunk/ivy.xml	(revision 16434)
@@ -31,4 +31,5 @@
         <dependency conf="api->default" org="ch.poole" name="OpeningHoursParser" rev="0.21.4"/>
         <dependency conf="api->default" org="oauth.signpost" name="signpost-core" rev="2.0.0"/>
+        <dependency conf="api->default" org="org.webjars.npm" name="tag2link" rev="2020.5.16"/>
         <!-- sources->sources -->
         <dependency conf="sources->sources" org="org.openstreetmap.jmapviewer" name="jmapviewer" rev="2.13"/>
@@ -42,4 +43,5 @@
         <dependency conf="sources->sources" org="ch.poole" name="OpeningHoursParser" rev="0.21.4"/>
         <dependency conf="sources->sources" org="oauth.signpost" name="signpost-core" rev="2.0.0"/>
+        <dependency conf="sources->sources" org="org.webjars.npm" name="tag2link" rev="2020.5.16"/>
         <!-- commonslang->default -->
         <dependency conf="commonslang->default" org="org.apache.commons" name="commons-lang3" rev="3.10"/>
Index: unk/resources/data/tag2link.sophox.sparql
===================================================================
--- /trunk/resources/data/tag2link.sophox.sparql	(revision 16433)
+++ 	(revision )
@@ -1,5 +1,0 @@
-SELECT (CONCAT("Key:", ?permanent_key_ID) as ?OSM_key) ?formatter_URL WHERE {
-  ?item osmdt:P2 osmd:Q7.
-  ?item osmdt:P16 ?permanent_key_ID.
-  ?item osmdt:P8 ?formatter_URL.
-}
Index: unk/resources/data/tag2link.wikidata.sparql
===================================================================
--- /trunk/resources/data/tag2link.wikidata.sparql	(revision 16433)
+++ 	(revision )
@@ -1,10 +1,0 @@
-SELECT ?OSM_key ?formatter_URL WHERE {
-  { ?item wdt:P1282 ?OSM_key. }
-  FILTER(STRSTARTS(?OSM_key, 'Key:')) .
-
-  {
-    { ?item wdt:P1630 ?formatter_URL. }
-    UNION
-    { ?item wdt:P3303 ?formatter_URL. }
-  }
-}
Index: /trunk/src/org/openstreetmap/josm/tools/Tag2Link.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/tools/Tag2Link.java	(revision 16433)
+++ /trunk/src/org/openstreetmap/josm/tools/Tag2Link.java	(revision 16434)
@@ -5,9 +5,8 @@
 import static org.openstreetmap.josm.tools.I18n.trn;
 
-import java.io.BufferedReader;
 import java.io.IOException;
+import java.io.InputStream;
 import java.net.MalformedURLException;
 import java.net.URL;
-import java.nio.charset.StandardCharsets;
 import java.util.Collections;
 import java.util.Map;
@@ -24,6 +23,4 @@
 
 import org.openstreetmap.josm.data.osm.OsmUtils;
-import org.openstreetmap.josm.io.CachedFile;
-import org.openstreetmap.josm.spi.preferences.Config;
 
 /**
@@ -80,6 +77,5 @@
         try {
             wikidataRules.clear();
-            fetchRulesViaSPARQL("resource://data/tag2link.wikidata.sparql", Config.getUrls().getJOSMWebsite() + "/remote/wikidata-sparql");
-            fetchRulesViaSPARQL("resource://data/tag2link.sophox.sparql", Config.getUrls().getJOSMWebsite() + "/remote/sophox-sparql");
+            initializeFromResources();
         } catch (Exception e) {
             Logging.error("Failed to initialize tag2link rules");
@@ -89,27 +85,19 @@
 
     /**
-     * Fetches rules from Wikidata using a SPARQL query.
+     * Initializes the tag2link rules from the resources.
      *
-     * @param query the SPARQL query
-     * @param server the query server
      * @throws IOException in case of I/O error
      */
-    private static void fetchRulesViaSPARQL(final String query, final String server) throws IOException {
-        final int initialSize = wikidataRules.size();
-        final String sparql;
-        try (CachedFile cachedFile = new CachedFile(query)) {
-            sparql = new String(cachedFile.getByteContent(), StandardCharsets.UTF_8);
-        }
-
+    private static void initializeFromResources() throws IOException {
+        final String resource = "META-INF/resources/webjars/tag2link/2020.5.16/index.json";
         final JsonArray rules;
-        try (CachedFile cachedFile = new CachedFile(server + "?query=" + Utils.encodeUrl(sparql));
-             BufferedReader reader = cachedFile.setHttpAccept("application/json").getContentReader();
-             JsonReader jsonReader = Json.createReader(reader)) {
-            rules = jsonReader.read().asJsonObject().getJsonObject("results").getJsonArray("bindings");
+        try (InputStream inputStream = Tag2Link.class.getClassLoader().getResourceAsStream(resource);
+             JsonReader jsonReader = Json.createReader(inputStream)) {
+            rules = jsonReader.readArray();
         }
 
         for (JsonValue rule : rules) {
-            final String key = rule.asJsonObject().getJsonObject("OSM_key").getString("value");
-            final String url = rule.asJsonObject().getJsonObject("formatter_URL").getString("value");
+            final String key = rule.asJsonObject().getString("key");
+            final String url = rule.asJsonObject().getString("url");
             if (key.startsWith("Key:")) {
                 wikidataRules.put(key.substring("Key:".length()), url);
@@ -120,9 +108,9 @@
                 .forEach(wikidataRules::remove);
 
-        final int size = wikidataRules.size() - initialSize;
+        final int size = wikidataRules.size();
         Logging.info(trn(
                 "Obtained {0} Tag2Link rule from {1}",
                 "Obtained {0} Tag2Link rules from {1}",
-                size, size, server));
+                size, size, resource));
     }
 
Index: /trunk/test/unit/org/openstreetmap/josm/tools/Tag2LinkTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/tools/Tag2LinkTest.java	(revision 16433)
+++ /trunk/test/unit/org/openstreetmap/josm/tools/Tag2LinkTest.java	(revision 16434)
@@ -22,4 +22,13 @@
     void checkLinks(String... expected) {
         Assert.assertEquals(Arrays.asList(expected), links);
+    }
+
+    /**
+     * Unit test of function {@link Tag2Link#initialize()}.
+     */
+    @Test
+    public void testInitialize() {
+        Tag2Link.initialize();
+        Assert.assertTrue("obtains at least 40 rules", Tag2Link.wikidataRules.size() > 40);
     }
 
Index: unk/test/unit/org/openstreetmap/josm/tools/Tag2LinkTestIT.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/tools/Tag2LinkTestIT.java	(revision 16433)
+++ 	(revision )
@@ -1,31 +1,0 @@
-// License: GPL. For details, see LICENSE file.
-package org.openstreetmap.josm.tools;
-
-import org.junit.Assert;
-import org.junit.ClassRule;
-import org.junit.Test;
-import org.openstreetmap.josm.testutils.JOSMTestRules;
-
-import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
-
-/**
- * Integration tests for the {@link Tag2Link}
- */
-public class Tag2LinkTestIT {
-
-    /**
-     * Setup rule
-     */
-    @ClassRule
-    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
-    public static JOSMTestRules test = new JOSMTestRules().timeout(20_000);
-
-    /**
-     * Integration test of function {@link org.openstreetmap.josm.tools.Tag2Link#initialize()}.
-     */
-    @Test
-    public void testInitialize() {
-        Tag2Link.initialize();
-        Assert.assertTrue("obtails at least 40 rules", Tag2Link.wikidataRules.size() > 40);
-    }
-}
