npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

mgnlq_parser1

v0.0.13

Published

query parsing conversion to mongoose queries

Downloads

73

Readme

mgnlq_parser1 Build StatusCoverage Status

Parse sentences into actions or queries

Parser for queries List all CAT CAT where CAT FACT = XX in DOM

npm i

gulp

String to Mongo Query conversion

  • Entity
  • Parsing
  • AST 2 Mongo Query

recognition for mongo nlq

entity recognition based on word categorization

the word categorization contains a bitmap filter to retain only sencences which are homogeneous in one domain

entity recognition based on word categorization

Words are categorized according to an index (see mgnlq-model)

into

  • "Facts",
  • "Categories",
  • "Domain",
  • "Operators",
  • "Fillers",
  • "Any" (generic verbatim strings)

The word categorization contains a bitmap filter to retain only sencences which are homogeneous in one domain.

The word index is built by mgnlq_model

usage:

  var erbase = require('mgnlq_parser1');
  var words = {}; // a cache!
  var res = Erbase.processString('orbit of the earth', theModel.rules, words);

Adding an operator

  1. Add to operators.json including synonyms
  2. Add non-synonyms to mgnlq_model ifmatch.ts
  3. Add tests to erbase.nunit.js (testOperators)
  4. Add to tokens.json, run gulp makeToken
  5. Add to ast.ts ASTNodeType, astNodeTypes and
  6. Add tests to sentenceparser.nunit.js
  7. Add queryies to sentences_ast_mongoq.json
  8. Add Mongo AST to Query Processing to

scratch

Filtering elements in an array

https://stackoverflow.com/questions/3985214/retrieve-only-the-queried-element-in-an-object-array-in-mongodb-collection

db.test.aggregate([ // Get just the docs that contain a shapes element where color is 'red' {$match: {'shapes.color': 'red'}}, {$project: { shapes: {$filter: { input: '$shapes', as: 'shape', cond: {$eq: ['$$shape.color', 'red']} }}, _id: 0 }} ])

db.coll.aggregate( [ { "$match": { "_id": "123456" } }, { "$project": { "detailLine": { "$map": { "input": "$detailLine", "as": "dline", "in": { "amount": "$$dline.value.detailLineCharges.allowedAmount.amount", "reasonCode": "$$dline.value.detailLineCharges.allowedAmount.reasonCode" } } } }} ] )

environment

the default model name is "testmodel"

environment ABOT_MONGODB controls the used model, e.g. ABOT_MONGODB=testdb2

record

set MONGO_RECORD_REPLAY=

history

  • 0.0.3 showURI, auxiliary categories
  • 0.0.4 change in output format
  • 0.0.5 add mass tests, upgrade gulp etc.

Test data

the tests run against recorded data in E:\projects\nodejs\botbuilder\mgnlq_testmodel_replay\mgrecrep\data\807d3ce983c2f3....

This data can be recorded by setting

SET MGNLQ_MODEL_NO_FILECACHE=1 SET MGNLQ_TESTMODEL_REPLAY=OFF | RECORD | REPLAY (default)

Todo

 more than N CAT    (List all Application Components with more than 3 Fiori Apps)

 real or
 associativity, parentheis

 and  CATA FACT_A or CATB FACTB =>   (( CAT_A )

 CAT_A FACT_A OR FACT_A   AND  XX   =     ( CAT_A FACT_A or CAT_A FACT_B )

 (FACT_A OR FACT_B ) OR  X    AND

 FA AND FB OR FC AND FE  =>    FA AND ( FB OR FC) AND FA