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

langue

v0.0.0

Published

A modern platform for conlanging.

Downloads

4

Readme

Langue provides an infrastructure for creating and learning languages. The main aim is to be the most common platform for online and offline conlanging. As it works on any of JavaScript engines, the utilities and interfaces are isomorphic and universal across different platforms.

Not only does Langue support phonetic distinctive channel, but also kinesic or more unusual, even conworldlike ways (something impossible for earthlings) to distinguish meanings of discourse, serialising it into specific data format.

Currently in the planning stage.

Langue framework (a set of packages) will be available on npm. The official web service which uses it will be coming to langue.link and its repository.

Design Philosophy

Langue framework

  • Modules. Langue framework has tons of features and developers can choose what to use specifically in their applications.
  • Distributed. If you have enough resource on your machine, it works independently from other servers and can synchronise all edits with others in realtime.
  • Supports all sorts of distinctive channels. You can treat alike not only phonetic languages but also ones that use body gestures, or, transitions of brilliance of the second left horn, as its main distinctive channel.

langue.link

  • Convenient. Just like Twitter, you can freely post a scrap of example sentences or new words in your language, and ask for corrections or feed it into the database for machine translation. As example sentences will automatically be marked up with gloss and phonetic transcription you will need only correct the errors by hand if any.
  • Closeness. You can instantly know activities such as newly posted example sentences, new words and edits of languages you're watching in the timeline.
  • Collaborative. Edits immediately reflected into the web interface, and safely managed conflicts.
  • Offline-first. Also works in offline state and your edits will be synchronised to the remote on the next connection.
  • Translingual. At the same time you can search translations in many languages, or what the most used consonant in all languages is.

Logo

The repetitive looping symbol models on the IPA transcription /læŋ/, and a knot symbolising that the project is meant to make every language linked with each other. The underline symbolises infrastructure. The gradation from vivid cyan (#01f3ff) to lightgreen (#01ffa6) symbolises that the project is in a fresh and progressing state now. We use these colours at least until the official web service (langue.link) goes live.

Background

Please note that the originator of the project (yuhr) is not familiar with conlang communities globally, but the Japanese community on Twitter. Possibly speaking mistakes.

To date, almost actual parts of conlanging have been done locally. On the internet, we can't feel breathing of conlangs made by others, and only indirectly we can know about how they're developing, viewing static informations such as dictionaries, text sentences and speech videos. There's no spellchecking nor machine translation. There's no speech synthesis nor recognition. There's no habitable place for conlangs in the online space. So we decided to make that.

Plan

Langue consists of these parts:

  • Schema
    • a unified schema for language description (*)
  • Engines and Utilities
    • Dictionary
      • search on these fields:
        • lemma (proximity scoring with phonetic distance)
        • translation (search with synonyms)
        • description (full-text search)
      • filter by:
        • tags (e.g. parts of speech)
        • timestamp (created, last modified)
    • Lexicon
      • not dictionary
      • corpus-based construction
    • Grammar and Spell Checking
    • Corpus and Discourse Database
    • Discourse Awkwardness Scoring
    • Statistics
      • calculate the frequency of syntactic form, words, syllables and phonemes
    • Translation
      • Rule-Based Machine Translation (RBMT)
      • Statistical Machine Translation (SMT)
    • Utterance I/O Processing
      • recognition
      • synthesis
      • atmospheric composition aware acoustic transforming
    • Ontology Database
    • Conscripting Assinstance
    • Discource Generating
  • API
    • a unified interface for querying informations about languages

(*): Currently we're working on this in Japanese conlang community on Twitter. See details in here.

Libraries and Frameworks

  • Language: TypeScript
  • Database: GunDB
  • Query: GraphQL
  • Schema: JSON-Schema (autogenerated from TypeScript interface definition)
  • Document: doca, JSDoc

[WIP] General Terms

An "utterance" means a set of physical actions which comprises a discourse. An utterance consists of a series of distinctive channels. In some cases there might be more than one utterer in an utterance. A generalised term of "speech" or "pronunciation".

A "discourse" means a set of utterances, things uttered and contexts of utterers. The number of utterances a discourse has depends on how they are clipped out from the discourse. Also includes written text.

A "context" means a compound of utterer's own upbringing and all experiences until the utterance. In most cases each utterer has a more or less different context even in the same discourse, and his/her utterances are made always on the basis of that.

A "distinctive channel" means a uniform manner to utter, such as phonetic sound, intonation, percussive sound and kinesic gesture. Every language has one or more distinctive channels, and each form of lexical items has one or more elementary layers correspond to each channel. Each channel may or may not be necessary to utter, and sometimes selectable according to the case of utterance or discourse.