You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nlpcraft.apache.org by ar...@apache.org on 2021/06/04 00:57:17 UTC

[incubator-nlpcraft-website] 01/02: WIP.

This is an automated email from the ASF dual-hosted git repository.

aradzinski pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nlpcraft-website.git

commit e854b6ff08269a13738725636e18433460e10f6e
Author: Aaron Radzinski <ar...@apache.org>
AuthorDate: Thu Jun 3 15:22:58 2021 -0700

    WIP.
---
 _data/blogs.yaml                                   |  9 +++
 _data/news.yml                                     |  9 +++
 blogs/nlpcraft-idl-intent-definition-language.html | 74 ++++++++++++++++++++++
 3 files changed, 92 insertions(+)

diff --git a/_data/blogs.yaml b/_data/blogs.yaml
index fe03c2f..3995b05 100644
--- a/_data/blogs.yaml
+++ b/_data/blogs.yaml
@@ -15,6 +15,15 @@
 # limitations under the License.
 #
 
+- title: NLPCraft IDL - Intent Definition Language
+  url: /blogs/nlpcraft-idl-intent-definition-language.html
+  excerpt: Most of the NLP tasks start with the basic challenge - how to find or detect something in the text...
+  author: Aaron Radzinski
+  publish_date: June 3, 2021
+  avatar_url: images/lion.jpg
+  twitter_id: aaron_radzinski
+  href_target: _self
+
 - title: Программируемые NER компоненты
   url: https://habr.com/ru/post/543786/
   excerpt: В данной заметке мы продолжим говорить о NER компонентах и попытаемся  определить условия, в которых нам начинает недоставать функционала стандартных компонентов и стоит задуматься о программировании своих собственных...
diff --git a/_data/news.yml b/_data/news.yml
index 52769fe..e49df15 100644
--- a/_data/news.yml
+++ b/_data/news.yml
@@ -15,6 +15,15 @@
 # limitations under the License.
 #
 
+- title: NLPCraft IDL - Intent Definition Language
+  url: /blogs/nlpcraft-idl-intent-definition-language.html
+  excerpt: Most of the NLP tasks start with the basic challenge - how to find or detect something in the text...
+  author: Aaron Radzinski
+  publish_date: June 3, 2021
+  avatar_url: images/lion.jpg
+  twitter_id: aaron_radzinski
+  href_target: _self
+
 - title: 📢 Apache NLPCraft 0.7.5 Released
   url: /relnotes/release-notes-0.7.5.html
   excerpt: Download NLPCraft 0.7.5. Over 50 💪 fixes, improvements and enhancements.
diff --git a/blogs/nlpcraft-idl-intent-definition-language.html b/blogs/nlpcraft-idl-intent-definition-language.html
new file mode 100644
index 0000000..1373f31
--- /dev/null
+++ b/blogs/nlpcraft-idl-intent-definition-language.html
@@ -0,0 +1,74 @@
+---
+active_crumb: NLPCraft IDL - Intent Definition Language
+layout: blog
+blog_title: NLPCraft IDL - Intent Definition Language
+author_name: Aaron Radzinski
+author_avatar: images/lion.jpg
+author_twitter_id: aaron_radzinski
+publish_date: June 3, 2021
+---
+
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements.  See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<section>
+    <div class="bq info">
+        This blog is an English adaptation of Sergey Kamov's <a target=habr href="https://habr.com/ru/post/559716">blog</a> written in Russian.
+    </div>
+    <p>
+        This article is a second part of the article <a target=habr href="https://habr.com/ru/post/534034/">Designing intents with Apache NlpCraft</a>
+        <img alt="" src="/images/ru-flag-128x128.png" width="24"> and contains a detailed description of
+        NLPCraft IDL - Intent Definition Language, created for NLP projects based on the Apache NlpCraft.
+        NLPCraft IDL support has been added to the system since version <a href="/download.html">0.7.5</a>.
+    </p>
+    <p>
+        The declarative Intent Definition Language, called <a href="/intent-matching.html">NLPCraft IDL</a>, significantly simplifies the process of
+        working with intents in NLP-based dialog and search systems developed using Apache NLPsCraft and at the same time
+        expands the capabilities of them.
+    </p>
+    <p>
+        Let's start with examples to demonstrate the general capabilities of the language, provide the necessary explanations,
+        and then describe the design of the language a bit more formally.
+    </p>
+    <div class="bq info">
+        Note that at the point of choosing the best matching intent, NLP systems, in general, already have a parsed and processed
+        user input request, which contains combinations of request’s tokens and other related information.
+    </div>
+</section>
+<section>
+    <h2 class="section-title">Examples <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
+    <pre class="brush: idl">
+        intent=xa
+           flow="^(?:login)(^:logout)*$"
+           meta={'enabled': true}
+           term(a)={!(tok_id()) != "z"}[1,3]
+           term(b)={
+              meta_intent('enabled') == true &&
+              month() == 1
+           }
+           term(c)~{
+                @tokId = tok_id()
+                @usrTypes = meta_model('user_types')
+
+                (tokId == 'order' || tokId == 'order_cancel') &&
+                has_all(@usrTypes, list(1, 2, 3) &&
+                abs(meta_tok('order:size')) > 10)
+    </pre>
+</section>
+
+
+