diff --git a/core/modules/rdf/config/rdf.namespace.rdf.content.yml b/core/modules/rdf/config/rdf.namespace.rdf.content.yml
new file mode 100644
index 0000000..15de45e
--- /dev/null
+++ b/core/modules/rdf/config/rdf.namespace.rdf.content.yml
@@ -0,0 +1,5 @@
+nsid: rdf.content
+namespace_uri: 'http://purl.org/rss/1.0/modules/content/'
+prefix: content
+module: rdf
+langcode: und
diff --git a/core/modules/rdf/config/rdf.namespace.rdf.dc.yml b/core/modules/rdf/config/rdf.namespace.rdf.dc.yml
new file mode 100644
index 0000000..e059421
--- /dev/null
+++ b/core/modules/rdf/config/rdf.namespace.rdf.dc.yml
@@ -0,0 +1,5 @@
+nsid: rdf.dc
+namespace_uri: 'http://purl.org/dc/terms/'
+prefix: dc
+module: rdf
+langcode: und
diff --git a/core/modules/rdf/config/rdf.namespace.rdf.foaf.yml b/core/modules/rdf/config/rdf.namespace.rdf.foaf.yml
new file mode 100644
index 0000000..8e19b25
--- /dev/null
+++ b/core/modules/rdf/config/rdf.namespace.rdf.foaf.yml
@@ -0,0 +1,5 @@
+nsid: rdf.foaf
+namespace_uri: 'http://xmlns.com/foaf/0.1/'
+prefix: foaf
+module: rdf
+langcode: und
diff --git a/core/modules/rdf/config/rdf.namespace.rdf.og.yml b/core/modules/rdf/config/rdf.namespace.rdf.og.yml
new file mode 100644
index 0000000..8c2c289
--- /dev/null
+++ b/core/modules/rdf/config/rdf.namespace.rdf.og.yml
@@ -0,0 +1,5 @@
+nsid: rdf.og
+namespace_uri: 'http://ogp.me/ns#'
+prefix: og
+module: rdf
+langcode: und
diff --git a/core/modules/rdf/config/rdf.namespace.rdf.rdfs.yml b/core/modules/rdf/config/rdf.namespace.rdf.rdfs.yml
new file mode 100644
index 0000000..4b8d31b
--- /dev/null
+++ b/core/modules/rdf/config/rdf.namespace.rdf.rdfs.yml
@@ -0,0 +1,5 @@
+nsid: rdf.rdfs
+namespace_uri: 'http://www.w3.org/2000/01/rdf-schema#'
+prefix: rdfs
+module: rdf
+langcode: und
diff --git a/core/modules/rdf/config/rdf.namespace.rdf.schema.yml b/core/modules/rdf/config/rdf.namespace.rdf.schema.yml
new file mode 100644
index 0000000..3caa3d2
--- /dev/null
+++ b/core/modules/rdf/config/rdf.namespace.rdf.schema.yml
@@ -0,0 +1,5 @@
+nsid: rdf.schema
+namespace_uri: 'http://schema.org/'
+prefix: schema
+module: rdf
+langcode: und
diff --git a/core/modules/rdf/config/rdf.namespace.rdf.sioc.yml b/core/modules/rdf/config/rdf.namespace.rdf.sioc.yml
new file mode 100644
index 0000000..9b22f97
--- /dev/null
+++ b/core/modules/rdf/config/rdf.namespace.rdf.sioc.yml
@@ -0,0 +1,5 @@
+nsid: rdf.sioc
+namespace_uri: 'http://rdfs.org/sioc/ns#'
+prefix: sioc
+module: rdf
+langcode: und
diff --git a/core/modules/rdf/config/rdf.namespace.rdf.sioct.yml b/core/modules/rdf/config/rdf.namespace.rdf.sioct.yml
new file mode 100644
index 0000000..0f7719a
--- /dev/null
+++ b/core/modules/rdf/config/rdf.namespace.rdf.sioct.yml
@@ -0,0 +1,5 @@
+nsid: rdf.sioct
+namespace_uri: 'http://rdfs.org/sioc/types#'
+prefix: sioct
+module: rdf
+langcode: und
diff --git a/core/modules/rdf/config/rdf.namespace.rdf.skos.yml b/core/modules/rdf/config/rdf.namespace.rdf.skos.yml
new file mode 100644
index 0000000..6c3edbe
--- /dev/null
+++ b/core/modules/rdf/config/rdf.namespace.rdf.skos.yml
@@ -0,0 +1,5 @@
+nsid: rdf.skos
+namespace_uri: 'http://www.w3.org/2004/02/skos/core#'
+prefix: skos
+module: rdf
+langcode: und
diff --git a/core/modules/rdf/config/rdf.namespace.rdf.xsd.yml b/core/modules/rdf/config/rdf.namespace.rdf.xsd.yml
new file mode 100644
index 0000000..d4cad1f
--- /dev/null
+++ b/core/modules/rdf/config/rdf.namespace.rdf.xsd.yml
@@ -0,0 +1,5 @@
+nsid: rdf.xsd
+namespace_uri: 'http://www.w3.org/2001/XMLSchema#'
+prefix: xsd
+module: rdf
+langcode: und
diff --git a/core/modules/rdf/lib/Drupal/rdf/Plugin/Core/Entity/RdfMapping.php b/core/modules/rdf/lib/Drupal/rdf/Plugin/Core/Entity/RdfMapping.php
index b54a38e..3e36846 100644
--- a/core/modules/rdf/lib/Drupal/rdf/Plugin/Core/Entity/RdfMapping.php
+++ b/core/modules/rdf/lib/Drupal/rdf/Plugin/Core/Entity/RdfMapping.php
@@ -11,6 +11,7 @@
 use Drupal\Core\Entity\Annotation\EntityType;
 use Drupal\Core\Annotation\Translation;
 use Drupal\rdf\RdfMappingInterface;
+use Drupal\rdf\RdfUri;
 
 /**
  * Config entity for working with RDF mappings.
@@ -81,6 +82,17 @@ public function getBundleMapping() {
     if (isset($this->types)) {
       $types = $this->types;
     }
+
+    // Transform CURIE arrays into CURIEs.
+    if (!empty($types)) {
+      foreach ($types as $key => $type) {
+        if (is_array($type)) {
+          $rdf_uri = new RdfUri($type);
+          $types[$key] = $rdf_uri->getCurie();
+        }
+      }
+    }
+
     return array('types' => $types);
   }
 
@@ -99,7 +111,7 @@ public function getBundleMappingConfig() {
    */
   public function setBundleMappingConfig(array $mapping) {
     if (isset($mapping['types'])) {
-      $this->types = $mapping['types'];
+      $this->types = $this->tempConvertCurieToArray($mapping['types']);
     }
 
     return $this;
@@ -118,6 +130,21 @@ public function getFieldMapping($field_name) {
     if (isset($this->fieldMappings[$field_name])) {
       $field_mapping = array_merge($field_mapping, $this->fieldMappings[$field_name]);
     }
+
+    // Transform CURIE arrays into CURIEs.
+    if (!empty($field_mapping['properties'])) {
+      foreach ($field_mapping['properties'] as $key => $property) {
+        if (is_array($property)) {
+          $rdf_uri = new RdfUri($property);
+          $field_mapping['properties'][$key] = $rdf_uri->getCurie();
+        }
+      }
+    }
+    if (!empty($field_mapping['datatype']) && is_array($field_mapping['datatype'])) {
+      $rdf_uri = new RdfUri($field_mapping['datatype']);
+      $field_mapping['datatype'] = $rdf_uri->getCurie();
+    }
+
     return $field_mapping;
   }
 
@@ -135,6 +162,12 @@ public function getFieldMappingConfig($field_name) {
    * {@inheritdoc}
    */
   public function setFieldMappingConfig($field_name, array $mapping = array()) {
+    if (isset($mapping['properties'])) {
+      $mapping['properties'] = $this->tempConvertCurieToArray($mapping['properties']);
+    }
+    if (isset($mapping['datatype'])) {
+      $mapping['datatype'] = reset($this->tempConvertCurieToArray(array($mapping['datatype'])));
+    }
     $this->fieldMappings[$field_name] = $mapping;
     return $this;
   }
@@ -176,4 +209,20 @@ public function getExportProperties() {
     return $properties;
   }
 
+  /**
+   * Temporary function to be used during development to test the concept of
+   * using arrays everywhere without changing everything. If arrays work, then
+   * this will be removed and all CURIE strings will be changed to arrays.
+   */
+  protected function tempConvertCurieToArray($curies) {
+    foreach ($curies as $key => $curie) {
+      $parts = explode(':', $curie);
+      $curies[$key] = array(
+        'local_name' => $parts[1],
+        'prefix' => $parts[0],
+        'prefix_module' => 'rdf',
+      );
+    }
+    return $curies;
+  }
 }
diff --git a/core/modules/rdf/lib/Drupal/rdf/Plugin/Core/Entity/RdfNamespace.php b/core/modules/rdf/lib/Drupal/rdf/Plugin/Core/Entity/RdfNamespace.php
new file mode 100644
index 0000000..a4b2ea8
--- /dev/null
+++ b/core/modules/rdf/lib/Drupal/rdf/Plugin/Core/Entity/RdfNamespace.php
@@ -0,0 +1,82 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\rdf\Plugin\Core\Entity\RdfNamespace.
+ */
+
+namespace Drupal\rdf\Plugin\Core\Entity;
+
+use Drupal\Core\Config\Entity\ConfigEntityBase;
+use Drupal\Core\Entity\Annotation\EntityType;
+use Drupal\Core\Annotation\Translation;
+
+/**
+ * Defines the RDF namespace entity.
+ *
+ * @EntityType(
+ *   id = "rdf_namespace",
+ *   label = @Translation("RDF namespace"),
+ *   module = "rdf",
+ *   controllers = {
+ *     "storage" = "Drupal\Core\Config\Entity\ConfigStorageController"
+ *   },
+ *   form_controller_class = {
+ *     "default" = "Drupal\Core\Entity\EntityFormController"
+ *   },
+ *   config_prefix = "rdf.namespace",
+ *   entity_keys = {
+ *     "id" = "nsid",
+ *     "label" = "prefix"
+ *   }
+ * )
+ */
+class RdfNamespace extends ConfigEntityBase {
+
+  /**
+   * The RDF namespace ID.
+   *
+   * @var integer
+   */
+  public $nsid;
+
+  /**
+   * The full namespace URI for this namespace.
+   *
+   * @var string
+   */
+  public $namespace_uri;
+
+  /**
+   * The preferred prefix for this vocabulary.
+   *
+   * @var string
+   */
+  public $prefix;
+
+  /**
+   * The module which defines this namespace/prefix mapping.
+   *
+   * @var string
+   */
+  public $module;
+
+
+  /**
+   * {@inheritdoc}
+   */
+  public function id() {
+    return $this->module . '.' . $this->prefix;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function save() {
+    // Build an ID if none is set.
+    if (empty($this->id)) {
+      $this->id = $this->id();
+    }
+    return parent::save();
+  }
+}
diff --git a/core/modules/rdf/lib/Drupal/rdf/RdfNamespaceManager.php b/core/modules/rdf/lib/Drupal/rdf/RdfNamespaceManager.php
new file mode 100644
index 0000000..daa7b9d
--- /dev/null
+++ b/core/modules/rdf/lib/Drupal/rdf/RdfNamespaceManager.php
@@ -0,0 +1,68 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\rdf\RdfNamespaceManager.
+ */
+
+namespace Drupal\rdf;
+
+class RdfNamespaceManager {
+
+  /**
+   * Gets the array of namespace declarations.
+   *
+   * @return array
+   *   Array of namespace URIs keyed by prefix, e.g. schema => http://schema.org
+   */
+  public function getNamespaceDeclarations() {
+    $ns = array();
+    foreach ($this->getNamespaceDefinitions() as $definitions) {
+      foreach ($definitions as $namespace) {
+        $ns[$namespace->prefix] = $namespace->namespace_uri;
+      }
+    }
+    return $ns;
+  }
+
+  /**
+   * Gets a nested array of RdfNamespace config entities.
+   *
+   * Multiple modules may use the same prefix to correspond to different URIs.
+   * To disambiguate between multiple definitions, prefixes that conflict are
+   * appended with a number, e.g. schema1.
+   *
+   * @return array
+   *   A nested array of namespace objects, keyed first by prefix, then by
+   *   defining module.
+   */
+  public function getNamespaceDefinitions() {
+    $prefixes = array();
+
+    // Compile the definitions into a nested array, keyed by prefix and then
+    // defining module.
+    foreach (entity_load_multiple('rdf_namespace') as $namespace) {
+      $prefixes[$namespace->prefix][$namespace->module] = $namespace;
+    }
+
+    // If there is more than one definition for a prefix, then the additional
+    // definitions should use a different prefix.
+    foreach ($prefixes as $prefix => $definitions) {
+      if (count($definitions) > 1) {
+        $i = 1;
+        foreach ($definitions as $module => $namespace) {
+          if ($module == 'rdf') {
+            continue;
+          }
+          else {
+            $namespace->prefix = $prefix . $i;
+            $i++;
+          }
+        }
+      }
+    }
+
+    return $prefixes;
+  }
+
+}
diff --git a/core/modules/rdf/lib/Drupal/rdf/RdfUri.php b/core/modules/rdf/lib/Drupal/rdf/RdfUri.php
new file mode 100644
index 0000000..ae44160
--- /dev/null
+++ b/core/modules/rdf/lib/Drupal/rdf/RdfUri.php
@@ -0,0 +1,55 @@
+<?php
+/**
+ * @file
+ * Contains \Drupal\rdf\RdfUri.
+ */
+
+namespace Drupal\rdf;
+
+/**
+ * Manages the generation of URIs and CURIEs.
+ */
+class RdfUri {
+
+  protected $localName;
+
+  protected $prefix;
+
+  protected $prefixModule;
+
+  /**
+   * Constructor.
+   *
+   * @param array|string $uri_info
+   *   Either a URI string or a CURIE array in the following structure:
+   *     - local_name: The term name. E.g. name in schema:name.
+   *     - prefix: The prefix. E.g. schema in schema:name.
+   *     - prefix_module: The module that defines the mapping between the
+   *       prefix and its full URI.
+   */
+  public function __construct($uri_info) {
+    if (is_array($uri_info)) {
+      $this->localName = $uri_info['local_name'];
+      $this->prefix = $uri_info['prefix'];
+      $this->prefixModule = $uri_info['prefix_module'];
+    }
+    $this->namespaceManager = \Drupal::service('rdf.namespace_manager');
+  }
+
+  /**
+   * Get a CURIE for the URI.
+   *
+   * @return string
+   *   The CURIE.
+   *
+   * @throws \UnexpectedValueException
+   */
+  public function getCurie() {
+    $definitions = $this->namespaceManager->getNamespaceDefinitions();
+    if (!isset($definitions[$this->prefix][$this->prefixModule])) {
+      throw new \UnexpectedValueException(sprintf('Prefix %s is not defined in module %s.', $this->prefix, $this->prefixModule));
+    }
+    $namespace = $definitions[$this->prefix][$this->prefixModule];
+    return $namespace->prefix . ':' . $this->localName;
+  }
+}
diff --git a/core/modules/rdf/lib/Drupal/rdf/Tests/GetRdfNamespacesTest.php b/core/modules/rdf/lib/Drupal/rdf/Tests/GetRdfNamespacesTest.php
index b2e881c..5def52a 100644
--- a/core/modules/rdf/lib/Drupal/rdf/Tests/GetRdfNamespacesTest.php
+++ b/core/modules/rdf/lib/Drupal/rdf/Tests/GetRdfNamespacesTest.php
@@ -36,9 +36,15 @@ function testGetRdfNamespaces() {
     // Get all RDF namespaces.
     $ns = rdf_get_namespaces();
 
-    $this->assertEqual($ns['rdfs'], 'http://www.w3.org/2000/01/rdf-schema#', 'A prefix declared once is included.');
-    $this->assertEqual($ns['foaf'], 'http://xmlns.com/foaf/0.1/', 'The same prefix declared in several implementations of hook_rdf_namespaces() is valid as long as all the namespaces are the same.');
-    $this->assertEqual($ns['foaf1'], 'http://xmlns.com/foaf/0.1/', 'Two prefixes can be assigned the same namespace.');
-    $this->assertEqual($ns['dc'], 'http://purl.org/dc/terms/', 'When a prefix has conflicting namespaces, the first declared one is used.');
+    // Test mapping defined in RDF with no conflicts.
+    $this->assertEqual($ns['rdfs'], 'http://www.w3.org/2000/01/rdf-schema#', 'A prefix declared in RDF module is included.');
+
+    // Test mapping defined in RDF with conflict from test module.
+    $this->assertEqual($ns['schema'], 'http://schema.org/', 'Namespace mapping declared by RDF module takes precedence when registered twice.');
+    // Test conflicting mapping.
+    $this->assertEqual($ns['schema1'], 'http://test.org/', 'Namespace mapping from other module is appended with "1" when conflicting with RDF module.');
+
+    // Test mapping defined in test module with no conflicts.
+    $this->assertEqual($ns['test_prefix'], 'http://test-prefix.org/', 'Namespace mapping from other module is not appended with "1" when there is no conflicting prefix');
   }
 }
diff --git a/core/modules/rdf/lib/Drupal/rdf/Tests/PrepareCuriesTest.php b/core/modules/rdf/lib/Drupal/rdf/Tests/PrepareCuriesTest.php
new file mode 100644
index 0000000..b9c65fb
--- /dev/null
+++ b/core/modules/rdf/lib/Drupal/rdf/Tests/PrepareCuriesTest.php
@@ -0,0 +1,92 @@
+<?php
+
+/**
+ * @file
+ * Contains Drupal\rdf\Tests\PrepareCuriesTest.
+ */
+
+namespace Drupal\rdf\Tests;
+
+use Drupal\rdf\RdfNamespaceManager;
+use Drupal\rdf\RdfUri;
+use Drupal\simpletest\DrupalUnitTestBase;
+
+/**
+ * Tests that CURIEs from conflicting namespace mappings are properly handled.
+ */
+class PrepareCuriesTest extends DrupalUnitTestBase {
+
+  public static $modules = array('system', 'rdf', 'rdf_test_namespaces');
+
+  public static function getInfo() {
+    return array(
+      'name' => 'CURIE handling',
+      'description' => 'Test that CURIEs from conflicting namespace mappings are properly handled..',
+      'group' => 'RDF',
+    );
+  }
+
+  /**
+   * Overrides \Drupal\simpletest\DrupalUnitTestBase::setUp().
+   */
+  public function setUp() {
+    parent::setUp();
+    $this->installConfig(array('rdf', 'rdf_test_namespaces'));
+    $this->namespaceManager = new RdfNamespaceManager();
+  }
+
+  /**
+   * Tests CURIE generation when a module's namespace conflicts with core's.
+   */
+  function testCoreConflict() {
+    $core_defined = array(
+      'local_name' => 'Foo',
+      'prefix' => 'core-conflict',
+      'prefix_module' => 'rdf',
+    );
+    $rdf_uri = new RdfUri($core_defined);
+    $this->assertEqual($rdf_uri->getCurie(), 'core-conflict:Foo', 'CURIE using core-defined prefix generated correctly in case of core/contrib conflict.');
+
+    $contrib_defined = array(
+      'local_name' => 'Bar',
+      'prefix' => 'core-conflict',
+      'prefix_module' => 'core_conflict2',
+    );
+    $rdf_uri = new RdfUri($contrib_defined);
+    $this->assertEqual($rdf_uri->getCurie(), 'core-conflict1:Bar', 'CURIE using contrib-defined prefix generated correctly in case of core/contrib conflict.');
+  }
+
+  /**
+   * Tests CURIE generation when a module declares a non-conflicting namespace.
+   */
+  function testContribNoConflict() {
+    $contrib_defined = array(
+      'local_name' => 'Foo',
+      'prefix' => 'no-conflict',
+      'prefix_module' => 'no_conflict',
+    );
+    $rdf_uri = new RdfUri($contrib_defined);
+    $this->assertEqual($rdf_uri->getCurie(), 'no-conflict:Foo', 'CURIE generated correctly when contrib prefix has no conflicts.');
+  }
+
+  /**
+   * Tests CURIE generation when contrib modules declare conflicting namespaces.
+   */
+  function testContribConflict() {
+    $contrib_defined1 = array(
+      'local_name' => 'Foo',
+      'prefix' => 'contrib-conflict',
+      'prefix_module' => 'contrib_conflict',
+    );
+    $rdf_uri = new RdfUri($contrib_defined1);
+    $this->assertEqual($rdf_uri->getCurie(), 'contrib-conflict1:Foo', 'CURIE generated correctly when contrib prefix has no conflicts.');
+
+    $contrib_defined2 = array(
+      'local_name' => 'Foo',
+      'prefix' => 'contrib-conflict',
+      'prefix_module' => 'contrib_conflict2',
+    );
+    $rdf_uri = new RdfUri($contrib_defined2);
+    $this->assertEqual($rdf_uri->getCurie(), 'contrib-conflict2:Foo', 'CURIE generated correctly when contrib prefix has no conflicts.');
+  }
+}
diff --git a/core/modules/rdf/rdf.module b/core/modules/rdf/rdf.module
index 107dce7..79b18cc 100644
--- a/core/modules/rdf/rdf.module
+++ b/core/modules/rdf/rdf.module
@@ -83,39 +83,22 @@ function rdf_get_mapping($entity_type, $bundle) {
 }
 
 /**
- * Implements hook_rdf_namespaces().
+ * RDF bundle flag: Default bundle.
+ *
+ * Implementations of hook_rdf_mapping() should use this constant for the
+ * 'bundle' key when defining a default set of RDF mappings for an entity type.
+ * Each bundle will inherit the default mappings defined for the entity type
+ * unless the bundle defines its own specific mappings.
  */
-function rdf_rdf_namespaces() {
-  return array(
-    'content'  => 'http://purl.org/rss/1.0/modules/content/',
-    'dc'       => 'http://purl.org/dc/terms/',
-    'foaf'     => 'http://xmlns.com/foaf/0.1/',
-    'og'       => 'http://ogp.me/ns#',
-    'rdfs'     => 'http://www.w3.org/2000/01/rdf-schema#',
-    'sioc'     => 'http://rdfs.org/sioc/ns#',
-    'sioct'    => 'http://rdfs.org/sioc/types#',
-    'skos'     => 'http://www.w3.org/2004/02/skos/core#',
-    'xsd'      => 'http://www.w3.org/2001/XMLSchema#',
-  );
-}
+const RDF_DEFAULT_BUNDLE = '';
 
 /**
  * Retrieves RDF namespaces.
- *
- * Invokes hook_rdf_namespaces() and collects RDF namespaces from modules that
- * implement it.
  */
 function rdf_get_namespaces() {
-  $namespaces = array();
-  // In order to resolve duplicate namespaces by using the earliest defined
-  // namespace, do not use module_invoke_all().
-  foreach (module_implements('rdf_namespaces') as $module) {
-    $function = $module . '_rdf_namespaces';
-    if (function_exists($function)) {
-      $namespaces = NestedArray::mergeDeep($function(), $namespaces);
-    }
-  }
-  return $namespaces;
+  // @todo Fix this.
+  $namespace_manager = new \Drupal\rdf\RdfNamespaceManager();
+  return $namespace_manager->getNamespaceDeclarations();
 }
 
 /**
diff --git a/core/modules/rdf/rdf.services.yml b/core/modules/rdf/rdf.services.yml
new file mode 100644
index 0000000..90bee6c
--- /dev/null
+++ b/core/modules/rdf/rdf.services.yml
@@ -0,0 +1,3 @@
+services:
+  rdf.namespace_manager:
+    class: Drupal\rdf\RdfNamespaceManager
diff --git a/core/modules/rdf/tests/rdf_test_namespaces/config/rdf.namespace.contrib_conflict.contrib-conflict.yml b/core/modules/rdf/tests/rdf_test_namespaces/config/rdf.namespace.contrib_conflict.contrib-conflict.yml
new file mode 100644
index 0000000..de1b910
--- /dev/null
+++ b/core/modules/rdf/tests/rdf_test_namespaces/config/rdf.namespace.contrib_conflict.contrib-conflict.yml
@@ -0,0 +1,4 @@
+nsid: contrib_conflict.contrib-conflict
+namespace_uri: 'http://contrib-conflict.org/'
+prefix: contrib-conflict
+module: contrib_conflict
diff --git a/core/modules/rdf/tests/rdf_test_namespaces/config/rdf.namespace.contrib_conflict2.contrib-conflict.yml b/core/modules/rdf/tests/rdf_test_namespaces/config/rdf.namespace.contrib_conflict2.contrib-conflict.yml
new file mode 100644
index 0000000..f0a615d
--- /dev/null
+++ b/core/modules/rdf/tests/rdf_test_namespaces/config/rdf.namespace.contrib_conflict2.contrib-conflict.yml
@@ -0,0 +1,4 @@
+nsid: contrib_conflict2.contrib-conflict
+namespace_uri: 'http://contrib-conflict2.org/'
+prefix: contrib-conflict
+module: contrib_conflict2
diff --git a/core/modules/rdf/tests/rdf_test_namespaces/config/rdf.namespace.core_conflict2.core-conflict.yml b/core/modules/rdf/tests/rdf_test_namespaces/config/rdf.namespace.core_conflict2.core-conflict.yml
new file mode 100644
index 0000000..8c0fc76
--- /dev/null
+++ b/core/modules/rdf/tests/rdf_test_namespaces/config/rdf.namespace.core_conflict2.core-conflict.yml
@@ -0,0 +1,4 @@
+nsid: core_conflict2.core-conflict
+namespace_uri: 'http://core-conflict2.org/'
+prefix: core-conflict
+module: core_conflict2
diff --git a/core/modules/rdf/tests/rdf_test_namespaces/config/rdf.namespace.no_conflict.no-conflict.yml b/core/modules/rdf/tests/rdf_test_namespaces/config/rdf.namespace.no_conflict.no-conflict.yml
new file mode 100644
index 0000000..252f82d
--- /dev/null
+++ b/core/modules/rdf/tests/rdf_test_namespaces/config/rdf.namespace.no_conflict.no-conflict.yml
@@ -0,0 +1,4 @@
+nsid: no_conflict.no-conflict
+namespace_uri: 'http://no-conflict.org/'
+prefix: no-conflict
+module: no_conflict
diff --git a/core/modules/rdf/tests/rdf_test_namespaces/config/rdf.namespace.rdf.core-conflict.yml b/core/modules/rdf/tests/rdf_test_namespaces/config/rdf.namespace.rdf.core-conflict.yml
new file mode 100644
index 0000000..5c82e4a
--- /dev/null
+++ b/core/modules/rdf/tests/rdf_test_namespaces/config/rdf.namespace.rdf.core-conflict.yml
@@ -0,0 +1,4 @@
+nsid: rdf.core-conflict
+namespace_uri: 'http://core-conflict.org/'
+prefix: core-conflict
+module: rdf
diff --git a/core/modules/rdf/tests/rdf_test_namespaces/config/rdf.namespace.rdf_test_mapping.schema.yml b/core/modules/rdf/tests/rdf_test_namespaces/config/rdf.namespace.rdf_test_mapping.schema.yml
new file mode 100644
index 0000000..0d721d7
--- /dev/null
+++ b/core/modules/rdf/tests/rdf_test_namespaces/config/rdf.namespace.rdf_test_mapping.schema.yml
@@ -0,0 +1,4 @@
+nsid: rdf_test_mapping.schema
+namespace_uri: 'http://test.org/'
+prefix: schema
+module: rdf_test_mapping
diff --git a/core/modules/rdf/tests/rdf_test_namespaces/config/rdf.namespace.rdf_test_mapping.test_prefix.yml b/core/modules/rdf/tests/rdf_test_namespaces/config/rdf.namespace.rdf_test_mapping.test_prefix.yml
new file mode 100644
index 0000000..af0e2ed
--- /dev/null
+++ b/core/modules/rdf/tests/rdf_test_namespaces/config/rdf.namespace.rdf_test_mapping.test_prefix.yml
@@ -0,0 +1,4 @@
+nsid: rdf_test_mapping.test_prefix
+namespace_uri: 'http://test-prefix.org/'
+prefix: test_prefix
+module: rdf_test_mapping
