{
    "componentChunkName": "component---src-templates-doc-page-js",
    "path": "/docs/en/Patterns/named_entity/",
    "result": {"data":{"site":{"siteMetadata":{"title":"Gatsby-doc-engine"}},"markdownRemark":{"id":"bc86bb53-5b7d-5141-ac16-00bac37d0e24","excerpt":"Named Entities Named entities are contained within named entity dictionaries. Named entity dictionaries Named entity dictionaries are required for processing…","html":"<h1>Named Entities</h1>\n<hr>\n<p>Named entities are contained within named entity dictionaries.</p>\n</br>\n<h3>Named entity dictionaries</h3>\n<p>Named entity dictionaries are required for processing large number of names, e.g. names of cities, countries, proper names, currencies, etc.</p>\n<p>Dictionaries are contained within <code class=\"language-text\">.csv</code> files, with each line complying to the following format:</p>\n<div class=\"gatsby-highlight\" data-language=\"csv\"><pre class=\"language-csv\"><code class=\"language-csv\"><span class=\"token value\">id; name; value</span></code></pre></div>\n</br>\n<p>Here,</p>\n<ul>\n<li><code class=\"language-text\">id</code> is the unique identifier of the entity;</li>\n<li><code class=\"language-text\">name</code> is the entity name, possible synonyms are separated by commas;</li>\n<li><code class=\"language-text\">value</code> is the value of the entity, either <code class=\"language-text\">string</code> or <code class=\"language-text\">json</code>.</li>\n</ul>\n<p class='warn'>You may enumerate all the synonyms inside <code class=\"language-text\">name</code> and specify the main one as one of the <code class=\"language-text\">json</code> attributes.</p>\n<p>Here is a fragment of a dictionary of proper names:</p>\n<div class=\"gatsby-highlight\" data-language=\"csv\"><pre class=\"language-csv\"><code class=\"language-csv\"><span class=\"token value\">149;Bernard;{</span><span class=\"token value\">\"name\"</span><span class=\"token value\">: </span><span class=\"token value\">\"Bernard\"</span><span class=\"token punctuation\">,</span><span class=\"token value\"> </span><span class=\"token value\">\"sex\"</span><span class=\"token value\">: </span><span class=\"token value\">\"male\"</span><span class=\"token value\">}</span>\n<span class=\"token value\">150;Bernie;{</span><span class=\"token value\">\"name\"</span><span class=\"token value\">: </span><span class=\"token value\">\"Bernie\"</span><span class=\"token punctuation\">,</span><span class=\"token value\"> </span><span class=\"token value\">\"sex\"</span><span class=\"token value\">: </span><span class=\"token value\">\"male\"</span><span class=\"token value\">}</span>\n<span class=\"token value\">151;Berry;{</span><span class=\"token value\">\"name\"</span><span class=\"token value\">: </span><span class=\"token value\">\"Berry\"</span><span class=\"token punctuation\">,</span><span class=\"token value\"> </span><span class=\"token value\">\"sex\"</span><span class=\"token value\">: </span><span class=\"token value\">\"male\"</span><span class=\"token value\">}</span>\n<span class=\"token value\">152;Bert</span><span class=\"token punctuation\">,</span><span class=\"token value\"> Bertram;{</span><span class=\"token value\">\"name\"</span><span class=\"token value\">: </span><span class=\"token value\">\"Bertram\"</span><span class=\"token punctuation\">,</span><span class=\"token value\"> </span><span class=\"token value\">\"sex\"</span><span class=\"token value\">: </span><span class=\"token value\">\"male\"</span><span class=\"token value\">}</span>\n<span class=\"token value\">153;Bill</span><span class=\"token punctuation\">,</span><span class=\"token value\">Billie</span><span class=\"token punctuation\">,</span><span class=\"token value\">Billy;{</span><span class=\"token value\">\"name\"</span><span class=\"token value\">: </span><span class=\"token value\">\"Bill\"</span><span class=\"token punctuation\">,</span><span class=\"token value\"> </span><span class=\"token value\">\"sex\"</span><span class=\"token value\">: </span><span class=\"token value\">\"male\"</span><span class=\"token value\">}</span>\n<span class=\"token value\">154;Blaine;{</span><span class=\"token value\">\"name\"</span><span class=\"token value\">: </span><span class=\"token value\">\"Blaine\"</span><span class=\"token punctuation\">,</span><span class=\"token value\"> </span><span class=\"token value\">\"sex\"</span><span class=\"token value\">: </span><span class=\"token value\">\"male\"</span><span class=\"token value\">}</span></code></pre></div>\n</br>\n<h3>Elements of named entity dictionaries</h3>\n<p>In order to access named entity dictionaries from named patterns, the following steps are necessary:</p>\n<ol>\n<li>Specify the dictionary name and its path in the <code class=\"language-text\">.sc</code> script under the <code class=\"language-text\">require</code> tag:</li>\n</ol>\n<div class=\"gatsby-highlight\" data-language=\"sc\"><pre class=\"language-sc\"><code class=\"language-sc\"><span class=\"token keyword\">require:</span> common/common-cities.csv\n         name = RoamingRegions\n         var = RoamingRegions</code></pre></div>\n</br>\n<ol start=\"2\">\n<li>Define a converter in any <code class=\"language-text\">.js</code> file. The converter allows to save pattern information into the <code class=\"language-text\">value</code> attribute of the <code class=\"language-text\">parseTree</code>. For example:</li>\n</ol>\n<div class=\"gatsby-highlight\" data-language=\"js\"><pre class=\"language-js\"><code class=\"language-js\"><span class=\"token keyword\">function</span> <span class=\"token function\">RoamingRegionTagConverter</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">$parseTree</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n            <span class=\"token keyword\">var</span> id <span class=\"token operator\">=</span> $parseTree<span class=\"token punctuation\">.</span>RoamingRegions<span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">.</span>value<span class=\"token punctuation\">;</span>\n            <span class=\"token keyword\">return</span> RoamingRegions<span class=\"token punctuation\">[</span>id<span class=\"token punctuation\">]</span><span class=\"token punctuation\">.</span>value\n    <span class=\"token punctuation\">}</span></code></pre></div>\n<p>Here,</p>\n<ul>\n<li><code class=\"language-text\">RoamingRegionTagConverter</code> is the name of the converter;</li>\n<li><code class=\"language-text\">RoamingRegions</code> is the name of the named entity dictionary.</li>\n</ul>\n<p>The returned value is saved into the <code class=\"language-text\">value</code> attribute.</p>\n</br>\n<ol start=\"3\">\n<li>Declare a named pattern. Use <code class=\"language-text\">$entity&lt;></code>:</li>\n</ol>\n<div class=\"gatsby-highlight\" data-language=\"sc\"><pre class=\"language-sc\"><code class=\"language-sc\">$roamingRegion = $entity&lt;RoamingRegions> || converter = RoamingRegionTagConverter</code></pre></div>\n<p class='warn'>Named entities can be used even without declaring a named pattern.</p>\n<p class='tip'>When a named pattern is assigned a converter, a <code class=\"language-text\">$parseTree</code>’s <code class=\"language-text\">value</code> attribute will then include the value of the corresponding dictionary element.</p>","frontmatter":{"title":"","description":null},"headings":[{"value":"Named Entities"}]}},"pageContext":{"slug":"/docs/en/Patterns/named_entity/","previous":{"fields":{"slug":"/docs/en/Patterns/named_patterns/"},"frontmatter":{"title":"","description":null}},"next":{"fields":{"slug":"/docs/en/Patterns/converters/"},"frontmatter":{"title":"","description":null}}}},
    "staticQueryHashes": ["1209419333"]}