clam
Quickly turn command-line applications into RESTful webservices with a web-application front-end. You provide a specification of your command line application, its input, output and parameters, and CLAM wraps around your application to form a fully fledged RESTful webservice.
Science Score: 36.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
✓Academic publication links
Links to: zenodo.org -
○Committers with academic emails
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (17.2%) to scientific vocabulary
Keywords
Keywords from Contributors
Repository
Quickly turn command-line applications into RESTful webservices with a web-application front-end. You provide a specification of your command line application, its input, output and parameters, and CLAM wraps around your application to form a fully fledged RESTful webservice.
Basic Info
- Host: GitHub
- Owner: proycon
- License: gpl-3.0
- Language: Python
- Default Branch: master
- Homepage: https://proycon.github.io/clam
- Size: 25.4 MB
Statistics
- Stars: 130
- Watchers: 6
- Forks: 17
- Open Issues: 14
- Releases: 89
Topics
Metadata Files
README.rst
=======================================================
CLAM: Computational Linguistics Application Mediator
=======================================================
.. image:: https://github.com/proycon/clam/actions/workflows/clam.yml/badge.svg?branch=master
:target: https://github.com/proycon/clam/actions/
.. image:: https://readthedocs.org/projects/clam/badge/?version=latest
:target: http://clam.readthedocs.io/en/latest/?badge=latest
:alt: Documentation Status
.. image:: https://zenodo.org/badge/760072.svg
:target: https://zenodo.org/badge/latestdoi/760072
.. image:: https://img.shields.io/pypi/v/clam
:alt: Latest release in the Python Package Index
:target: https://pypi.org/project/clam/
.. image:: http://applejack.science.ru.nl/lamabadge.php/clam
:target: http://applejack.science.ru.nl/languagemachines/
.. image:: https://www.repostatus.org/badges/latest/active.svg
:alt: Project Status: Active – The project has reached a stable, usable state and is being actively developed.
:target: https://www.repostatus.org/#active
*by Maarten van Gompel*
*Centre for Language and Speech Technology, Radboud University Nijmegen*
*& KNAW Humanities Cluster*
*Licensed under GPLv3*
**Website:** https://proycon.github.io/clam
**Source repository:** https://github.com/proycon/clam/
**Documentation:** https://clam.readthedocs.io
**Installation:** ``pip install clam``
CLAM allows you to quickly and transparently transform your Natural Language
Processing application into a RESTful webservice, with which both human
end-users as well as automated clients can interact. CLAM takes a description
of your system and wraps itself around the system, allowing end-users or
automated clients to upload input files to your application, start your
application with specific parameters of their choice, and download and view the
output of the application once it is completed.
CLAM is set up in a universal fashion, requiring minimal effort on the part of
the service developer. Your actual NLP application is treated as a black box,
of which only the parameters, input formats and output formats need to be
described. Your application itself needs not be network aware in any way, nor
aware of CLAM, and the handling and validation of input can be taken care of by
CLAM.
CLAM is entirely written in Python, runs on UNIX-derived systems, and is
available as open source under the GNU Public License (v3). It is set up in a
modular fashion, and offers an API, and as such is easily extendable. CLAM
communicates in a transparent XML format, and using XSL transformation offers a
modern client-side generated web-interface for human end users.
Documentation
---------------
Documentation is available on https://clam.readthedocs.io
Some screenshots of the web user interface can be found below:
.. image:: https://raw.githubusercontent.com/proycon/clam/master/docs/screenshot.png
:alt: the clam project list
.. image:: https://raw.githubusercontent.com/proycon/clam/master/docs/screenshot2.png
:alt: the clam project page during staging
.. image:: https://raw.githubusercontent.com/proycon/clam/master/docs/screenshot3.png
:alt: the clam project page when done
Installation
----------------
Installation from the Python Package Index using the package manager *pip* it the recommended way to
intall CLAM. This is the easiest method
of installing CLAM, as it will automatically fetch and install any
dependencies. We recommend to use a virtual environment (``virtualenv``) if you
want to install CLAM locally as a user, if you want to install globally,
prepend the following commands with ``sudo``:
CLAM can be installed from the Python Package Index using pip. Pip is usually
part of the ``python3-pip`` package (Debian/Ubuntu) or similar, note that
Python 2.7 is not supported anymore (you might need to call ``pip3`` instead of ``pip`` on older system). It downloads CLAM and all dependencies
automatically:::
$ pip install clam
If you already downloaded CLAM manually (from github), you can do::
$ pip install .
If pip is not yet installed on your system, install it using:
on debian-based linux systems (including Ubuntu)::
$ apt-get install python3-pip
on RPM-based linux systems::
$ yum install python3-pip
Note that sudo/root access is needed to install globally. Ask your system administrator
to install it if you do not own the system. Alternatively, you can install it locally in a Python virtual
environment::
$ virtualenv --python=python3 env
Or::
$ python3 -m venv env
Then activate it as follows:
$ . env/bin/activate
(env)$ pip install clam
CLAM also has some optional dependencies. For MySQL support, install
``mysqlclient`` using pip. For `FoLiA `_
support, install ``FoLiA-Tools`` using pip.
**Note:** CLAM is designed for Linux-like systems, although the client and data library work everywhere, hosting webservices via ``clamservice`` may not work on Windows.
Running a test webservice
~~~~~~~~~~~~~~~~~~~~~~~~~~~
If you installed CLAM using the above method, then you can launch a clam test
webservice using the development server as follows::
$ clamservice -H localhost -p 8080 clam.config.textstats
Navigate your browser to http://localhost:8080 and verify everything works
**Note:** It is important to regularly keep CLAM up to date as fixes and
improvements are implemented on a regular basis. Update CLAM using::
$ pip install -U clam
Owner
- Name: Maarten van Gompel
- Login: proycon
- Kind: user
- Location: Eindhoven, the Netherlands
- Company: KNAW Humanities Cluster & CLST, Radboud University
- Website: https://proycon.anaproy.nl
- Repositories: 213
- Profile: https://github.com/proycon
Research software engineer - NLP - AI - 🐧 Linux & open-source enthusiast - 🐍 Python/ 🌊C/C++ / 🦀 Rust / 🐚 Shell - 🔐 InfoSec - https://git.sr.ht/~proycon
CodeMeta (codemeta.json)
{
"@context": [
"https://doi.org/10.5063/schema/codemeta-2.0",
"http://schema.org",
"https://w3id.org/software-types"
],
"@type": "SoftwareSourceCode",
"identifier": "clam",
"name": "CLAM",
"version": "3.2.14",
"description": "Quickly turn command-line applications into RESTful webservices with a web-application front-end. You provide a specification of your command line application, its input, output and parameters, and CLAM wraps around your application to form a fully fledged RESTful webservice. ",
"license": "https://spdx.org/licenses/GPL-3.0-only",
"url": "https://proycon.github.io/clam",
"producer": [
{
"@id": "https://www.ru.nl/clst",
"@type": "Organization",
"name": "Centre for Language and Speech Technology",
"url": "https://www.ru.nl/clst",
"parentOrganization": {
"@id": "https://www.ru.nl/cls",
"@type": "Organization",
"name": "Centre for Language Studies",
"url": "https://www.ru.nl/cls",
"parentOrganization": {
"@id": "https://www.ru.nl",
"name": "Radboud University",
"@type": "Organization",
"url": "https://www.ru.nl",
"location": {
"@type": "Place",
"name": "Nijmegen"
}
}
}
},
{
"@id": "https://huc.knaw.nl",
"@type": "Organization",
"name": "Humanities Cluster",
"url": "https://huc.knaw.nl",
"parentOrganization": {
"@id": "https://knaw.nl",
"@type": "Organization",
"name": "KNAW",
"url": "https://knaw.nl",
"location": {
"@type": "Place",
"name": "Amsterdam"
}
}
}
],
"author": [
{
"@id": "https://orcid.org/0000-0002-1046-0006",
"@type": "Person",
"givenName": "Maarten",
"familyName": "van Gompel",
"email": "proycon@anaproy.nl",
"affiliation": {
"@id": "https://www.ru.nl/clst"
}
}
],
"sourceOrganization": {
"@id": "https://www.ru.nl/clst"
},
"programmingLanguage": {
"@type": "ComputerLanguage",
"identifier": "python",
"name": "python"
},
"operatingSystem": "Linux",
"codeRepository": "https://github.com/proycon/clam",
"softwareRequirements": [
{
"@type": "SoftwareApplication",
"identifier": "flask",
"name": "flask"
}
],
"funding": [
{
"@type": "Grant",
"name": "CLARIN-NL (NWO grant 184.021.003)",
"url": "https://www.clariah.nl",
"funder": {
"@type": "Organization",
"name": "NWO",
"url": "https://www.nwo.nl"
}
},
{
"@type": "Grant",
"name": "CLARIAH-CORE (NWO grant 184.033.101)",
"url": "https://www.clariah.nl",
"funder": {
"@type": "Organization",
"name": "NWO",
"url": "https://www.nwo.nl"
}
},
{
"@type": "Grant",
"name": "CLARIAH-PLUS (NWO grant 184.034.023)",
"funder": {
"@type": "Organization",
"name": "NWO",
"url": "https://www.nwo.nl"
}
}
],
"readme": "https://github.com/proycon/clam/blob/master/README.rst",
"issueTracker": "https://github.com/proycon/clam/issues",
"contIntegration": "https://github.com/proycon/clam/actions/workflows/clam.yml",
"releaseNotes": "https://github.com/proycon/clam/releases",
"developmentStatus": [
"https://www.repostatus.org/#active",
"https://w3id.org/research-technology-readiness-levels#Level9Proven"
],
"keywords": [
"nlp",
"natural language processing",
"webservice",
"rest"
],
"softwareHelp": [
{
"@id": "https://clam.readthedocs.io",
"@type": "WebSite",
"name": "CLAM Documentation",
"url": "https://clam.readthedocs.io"
}
],
"referencePublication": [
{
"@type": "TechArticle",
"name": "CLAM: Computational Linguistics Application Mediator",
"author": [
"Maarten van Gompel"
],
"isPartOf": {
"@type": "PublicationIssue",
"datePublished": "2014",
"name": "CLST Technical Report",
"issue": "14-02",
"location": "Nijmegen, the Netherlands"
},
"url": "https://github.com/proycon/clam/raw/master/docs/clam_manual.pdf"
},
{
"@id": "http://hdl.handle.net/2066/131547",
"@type": "ScholarlyArticle",
"name": "CLAM: Quickly deploy NLP command-line tools on the web",
"author": [
"Maarten van Gompel",
"Martin Reynaert"
],
"pageStart": "71",
"pageEnd": 75,
"isPartOf": {
"@type": "PublicationIssue",
"datePublished": "2014",
"name": "Proceedings of COLING 2014, the 25th International Conference on Computational Linguistics",
"location": "Dublin, Ireland"
},
"url": "http://anthology.aclweb.org/C/C14/C14-2016.pdf"
}
],
"targetProduct": [
{
"@type": "SoftwareLibrary",
"executableName": "clam",
"name": "clam",
"runtimePlatform": [
"Linux",
"BSD",
"macOS",
"Windows"
],
"description": "CLAM Data & Client API - programming library for Python"
},
{
"@type": "ServerApplication",
"executableName": "clamservice",
"name": "clamservice",
"runtimePlatform": [
"Linux",
"BSD",
"macOS"
],
"description": "Webservice daemon, the core component of CLAM. May be invoked directly in development, often invoken indirectly via WSGI in production environments."
},
{
"@type": "CommandLineApplication",
"executableName": "clamnewproject",
"name": "clamnewproject",
"runtimePlatform": [
"Linux",
"BSD",
"macOS"
],
"description": "Developer tool to create a new CLAM project"
}
],
"dateCreated": "2010-03-21",
"dateModified": "2025-10-22"
}
GitHub Events
Total
- Release event: 1
- Watch event: 2
- Push event: 1
- Create event: 1
Last Year
- Release event: 1
- Watch event: 2
- Push event: 1
- Create event: 1
Committers
Last synced: 7 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Maarten van Gompel | p****n@a****l | 2,363 |
| antalb | a****b@1****3 | 4 |
| bloemj | 3****j | 3 |
| Sheean Spoel | s****l@u****l | 2 |
| tgaustad | t****d@1****3 | 2 |
| Arne Neumann | g****b@a****l | 1 |
| mre | m****e@1****3 | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 4 months ago
All Time
- Total issues: 98
- Total pull requests: 4
- Average time to close issues: 6 months
- Average time to close pull requests: 2 days
- Total issue authors: 12
- Total pull request authors: 4
- Average comments per issue: 1.1
- Average comments per pull request: 1.0
- Merged pull requests: 2
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 0
- Pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- proycon (80)
- mhkuu (4)
- Warmduscher (3)
- peterdekker (2)
- vanlummelhuizen (2)
- pboot (1)
- zhou0 (1)
- martinreynaert (1)
- bloemj (1)
- hayco (1)
- kosloot (1)
- tancque (1)
Pull Request Authors
- oktaal (1)
- arne-cl (1)
- bloemj (1)
- OscarEReyes (1)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 3
-
Total downloads:
- pypi 287 last-month
- Total docker downloads: 15
-
Total dependent packages: 0
(may contain duplicates) -
Total dependent repositories: 6
(may contain duplicates) - Total versions: 260
- Total maintainers: 1
proxy.golang.org: github.com/proycon/clam
- Documentation: https://pkg.go.dev/github.com/proycon/clam#section-documentation
- License: gpl-3.0
-
Latest release: v3.2.11+incompatible
published 10 months ago
Rankings
pypi.org: clam
Turns command-line tools into fully-fledged RESTful webservices with an auto-generated web-interface for human end-users.
- Homepage: https://proycon.github.io/clam
- Documentation: https://clam.readthedocs.io/
- License: GPL-3.0-only
-
Latest release: 3.2.11
published 10 months ago
Rankings
Maintainers (1)
pypi.org: clamservices
A collection of CLAM Webservices for various of our NLP tools
- Homepage: https://proycon.github.io/clam
- Documentation: https://clamservices.readthedocs.io/
- License: GPL
-
Latest release: 2.2.3
published about 5 years ago
Rankings
Maintainers (1)
Dependencies
- certifi *
- flask >=2.0.1
- lxml >=4.6.0
- pyyaml *
- requests *
- requests_oauthlib *
- requests_toolbelt *
- certifi *
- flask *
- lxml *
- pyyaml *
- requests *
- requests_oauthlib *
- requests_toolbelt *
- Gottox/irc-message-action v1 composite
- actions/checkout v2 composite
- actions/setup-python v2 composite
- mad9000/actions-find-and-replace-string 2 composite