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

sergeykamov pushed a commit to branch NLPCRAFT-431
in repository https://gitbox.apache.org/repos/asf/incubator-nlpcraft.git


The following commit(s) were added to refs/heads/NLPCRAFT-431 by this push:
     new ab6dc1f  WIP.
ab6dc1f is described below

commit ab6dc1f2deff61a3f99857abd9b94dbb86f70444
Author: Sergey Kamov <[email protected]>
AuthorDate: Fri Sep 3 12:31:30 2021 +0300

    WIP.
---
 .../mgrs/nlp/enrichers/model/NCModelEnricher.scala |  4 ++-
 .../probe/mgrs/sentence/NCSentenceManager.scala    |  6 ++--
 .../model/NCEnricherNestedModelSpec3.scala         |  8 ++---
 .../model/NCEnricherNestedModelSpec4.scala         |  4 +--
 .../model/NCEnricherNestedModelSpec5.scala         |  4 +--
 ...pec5.scala => NCEnricherNestedModelSpec6.scala} | 37 ++++++++++++----------
 .../space/NCNestedTestModelAnyNotSpace1.scala      |  4 +--
 7 files changed, 33 insertions(+), 34 deletions(-)

diff --git 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/model/NCModelEnricher.scala
 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/model/NCModelEnricher.scala
index 5d042e6..6e6f7d1 100644
--- 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/model/NCModelEnricher.scala
+++ 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/model/NCModelEnricher.scala
@@ -423,7 +423,9 @@ object NCModelEnricher extends NCProbeEnricher {
         if (resIdxsSorted == sliceToksIdxs && U.isContinuous(resIdxsSorted))
             contCache(elemId) += sliceToksIdxs
 
-        val ok = !greedy || !alreadyMarked(ns, elemId, elemToks, sliceToksIdxs)
+        val ok =
+            (!greedy || !alreadyMarked(ns, elemId, elemToks, sliceToksIdxs)) &&
+            ( parts.isEmpty || !parts.exists { case (t, _) => t.getId == 
elemId })
 
         if (ok)
             mark(ns, elemId, elemToks, direct = syn.isDirect && 
U.isIncreased(resIdxs), syn = Some(syn), parts = parts)
diff --git 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/sentence/NCSentenceManager.scala
 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/sentence/NCSentenceManager.scala
index cd29f66..d5dfc1e 100644
--- 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/sentence/NCSentenceManager.scala
+++ 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/sentence/NCSentenceManager.scala
@@ -656,8 +656,8 @@ object NCSentenceManager extends NCService {
                         delCombs.filter(_ != note).flatMap(n => if 
(getPartKeys(n).contains(key)) Some(n) else None)
 
                     if (
-                        delCombOthers.exists(o => noteWordsIdxs == 
o.wordIndexes.toSet) ||
-                        delCombOthers.nonEmpty && !delCombOthers.exists(o => 
noteWordsIdxs.subsetOf(o.wordIndexes.toSet))
+                        delCombOthers.nonEmpty &&
+                        !delCombOthers.exists(o => 
noteWordsIdxs.subsetOf(o.wordIndexes.toSet))
                     )
                         Some(note)
                     else
@@ -798,4 +798,4 @@ object NCSentenceManager extends NCService {
       * @param srvReqId
       */
     def clearCache(srvReqId: String): Unit = combCache -= srvReqId
-}
+}
\ No newline at end of file
diff --git 
a/nlpcraft/src/test/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/model/NCEnricherNestedModelSpec3.scala
 
b/nlpcraft/src/test/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/model/NCEnricherNestedModelSpec3.scala
index 60e83c6..91ce96f 100644
--- 
a/nlpcraft/src/test/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/model/NCEnricherNestedModelSpec3.scala
+++ 
b/nlpcraft/src/test/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/model/NCEnricherNestedModelSpec3.scala
@@ -27,9 +27,7 @@ import scala.jdk.CollectionConverters.SetHasAsJava
 /**
   * Nested Elements test model.
   */
-class NCNestedTestModel3 extends NCModelAdapter(
-    "nlpcraft.nested3.test.mdl", "Nested Data Test Model", "1.0"
-) {
+class NCNestedTestModel3 extends NCModelAdapter("nlpcraft.nested3.test.mdl", 
"Nested Test Model", "1.0") {
     override def getElements: util.Set[NCElement] =
         Set(
             NCTestElement("e1", "//[a-zA-Z0-9]+//"),
@@ -40,7 +38,7 @@ class NCNestedTestModel3 extends NCModelAdapter(
     override def getEnabledBuiltInTokens: util.Set[String] = 
Set.empty[String].asJava
 
     @NCIntent("intent=onE2 term(t1)={# == 'e2'}[12, 100]")
-    def onAB(ctx: NCIntentMatch): NCResult = NCResult.text("OK")
+    def onAB(): NCResult = NCResult.text("OK")
 }
 
 /**
@@ -49,5 +47,5 @@ class NCNestedTestModel3 extends NCModelAdapter(
 @NCTestEnvironment(model = classOf[NCNestedTestModel3], startClient = true)
 class NCEnricherNestedModelSpec3 extends NCTestContext {
     @Test
-    def test(): Unit = checkIntent("a " * 18, "onE2")
+    def test(): Unit = checkIntent("a " * 15, "onE2")
 }
diff --git 
a/nlpcraft/src/test/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/model/NCEnricherNestedModelSpec4.scala
 
b/nlpcraft/src/test/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/model/NCEnricherNestedModelSpec4.scala
index e049a39..27082f1 100644
--- 
a/nlpcraft/src/test/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/model/NCEnricherNestedModelSpec4.scala
+++ 
b/nlpcraft/src/test/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/model/NCEnricherNestedModelSpec4.scala
@@ -27,9 +27,7 @@ import scala.jdk.CollectionConverters.SetHasAsJava
 /**
   * Nested Elements test model.
   */
-class NCNestedTestModel41 extends NCModelAdapter(
-    "nlpcraft.nested4.test.mdl", "Nested Data Test Model", "1.0"
-) {
+class NCNestedTestModel41 extends NCModelAdapter("nlpcraft.nested4.test.mdl", 
"Nested Test Model", "1.0") {
     override def getElements: util.Set[NCElement] =
         Set(
             NCTestElement("e1", "//[a-zA-Z0-9]+//"),
diff --git 
a/nlpcraft/src/test/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/model/NCEnricherNestedModelSpec5.scala
 
b/nlpcraft/src/test/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/model/NCEnricherNestedModelSpec5.scala
index 72d6589..f8a394a 100644
--- 
a/nlpcraft/src/test/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/model/NCEnricherNestedModelSpec5.scala
+++ 
b/nlpcraft/src/test/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/model/NCEnricherNestedModelSpec5.scala
@@ -26,9 +26,7 @@ import java.util
 /**
   * Nested Elements test model.
   */
-class NCNestedTestModel5 extends NCModelAdapter(
-    "nlpcraft.nested5.test.mdl", "Nested Data Test Model", "1.0"
-) {
+class NCNestedTestModel5 extends NCModelAdapter("nlpcraft.nested5.test.mdl", 
"Nested Test Model", "1.0") {
     override def getElements: util.Set[NCElement] =
         Set(
             NCTestElement("cityWrapper", "^^[cityAlias]{# == 
'nlpcraft:city'}^^"),
diff --git 
a/nlpcraft/src/test/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/model/NCEnricherNestedModelSpec5.scala
 
b/nlpcraft/src/test/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/model/NCEnricherNestedModelSpec6.scala
similarity index 55%
copy from 
nlpcraft/src/test/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/model/NCEnricherNestedModelSpec5.scala
copy to 
nlpcraft/src/test/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/model/NCEnricherNestedModelSpec6.scala
index 72d6589..5a8cb15 100644
--- 
a/nlpcraft/src/test/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/model/NCEnricherNestedModelSpec5.scala
+++ 
b/nlpcraft/src/test/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/model/NCEnricherNestedModelSpec6.scala
@@ -17,37 +17,40 @@
 
 package org.apache.nlpcraft.probe.mgrs.nlp.enrichers.model
 
-import org.apache.nlpcraft.model.{NCElement, NCIntent, NCIntentMatch, 
NCModelAdapter, NCResult}
+import org.apache.nlpcraft.model.{NCContext, NCElement, NCModelAdapter, 
NCResult}
 import org.apache.nlpcraft.{NCTestContext, NCTestElement, NCTestEnvironment}
 import org.junit.jupiter.api.Test
 
 import java.util
+import scala.jdk.CollectionConverters.{IterableHasAsScala, SetHasAsJava}
 
 /**
   * Nested Elements test model.
   */
-class NCNestedTestModel5 extends NCModelAdapter(
-    "nlpcraft.nested5.test.mdl", "Nested Data Test Model", "1.0"
-) {
+class NCNestedTestModel6 extends NCModelAdapter("nlpcraft.nested5.test.mdl", 
"Nested Test Model", "1.0") {
+    override def getAbstractTokens: util.Set[String] = 
Set("nlpcraft:date").asJava
+
     override def getElements: util.Set[NCElement] =
         Set(
-            NCTestElement("cityWrapper", "^^[cityAlias]{# == 
'nlpcraft:city'}^^"),
+            NCTestElement("dateWrapper", "^^{# == 'nlpcraft:date'}^^"),
         )
-    @NCIntent(
-        "intent=bigCity " +
-        "term(city)={" +
-        "    # == 'cityWrapper' && " +
-        "    get(meta_part('cityAlias', 'nlpcraft:city:citymeta'), 
'population') >= 10381222" +
-        "}"
-    )
-    private def onBigCity(ctx: NCIntentMatch): NCResult = NCResult.text("OK")
-}
 
+    override def onContext(ctx: NCContext): NCResult = {
+        require(ctx.getRequest.getNormalizedText == "today")
+
+        println(s"Variants:\n${ctx.getVariants.asScala.mkString("\n")}")
+
+        // `nlpcraft:date` will be deleted.
+        require(ctx.getVariants.size() == 1)
+
+        NCResult.text("OK")
+    }
+}
 /**
   *
   */
-@NCTestEnvironment(model = classOf[NCNestedTestModel5], startClient = true)
-class NCEnricherNestedModelSpec5 extends NCTestContext {
+@NCTestEnvironment(model = classOf[NCNestedTestModel6], startClient = true)
+class NCEnricherNestedModelSpec6 extends NCTestContext {
     @Test
-    def test(): Unit = checkIntent("moscow", "bigCity")
+    def test(): Unit = checkResult("today", "OK")
 }
\ No newline at end of file
diff --git 
a/nlpcraft/src/test/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/model/anyword/space/NCNestedTestModelAnyNotSpace1.scala
 
b/nlpcraft/src/test/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/model/anyword/space/NCNestedTestModelAnyNotSpace1.scala
index c3d1b83..6769418 100644
--- 
a/nlpcraft/src/test/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/model/anyword/space/NCNestedTestModelAnyNotSpace1.scala
+++ 
b/nlpcraft/src/test/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/model/anyword/space/NCNestedTestModelAnyNotSpace1.scala
@@ -31,13 +31,13 @@ import scala.jdk.CollectionConverters.SetHasAsJava
   * 'any' element's position is not restricted.
   */
 class NCNestedTestModelAnyNotSpace1 extends NCNestedModelAnyAdapter {
-    //override def getAbstractTokens: util.Set[String] = Set("a", "b", 
"any").asJava
+    override def getAbstractTokens: util.Set[String] = Set("a", "b", 
"any").asJava
 
     override def getElements: util.Set[NCElement] =
         Set(
             NCTestElement("a"),
             NCTestElement("b"),
-            mkNotGreedy("any", "{^^{tok_txt != '---'}^^}[1, 3]"),
+            mkNotGreedy("any", "{^^{tok_txt != ' '}^^}[1, 3]"),
             NCTestElement("compose", "^^{# == 'a'}^^ ^^{# == 'any'}^^ ^^{# == 
'b'}^^")
         )
 

Reply via email to