alpha

A lazy-grounding Answer-Set Programming system

https://github.com/alpha-asp/alpha

Science Score: 75.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 18 DOI reference(s) in README
  • Academic publication links
    Links to: arxiv.org, zenodo.org
  • Academic email domains
  • Institutional organization owner
    Organization alpha-asp has institutional domain (www.kr.tuwien.ac.at)
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.3%) to scientific vocabulary

Keywords

answer-set-programming lazy-grounding logic-programming solver
Last synced: 4 months ago · JSON representation ·

Repository

A lazy-grounding Answer-Set Programming system

Basic Info
  • Host: GitHub
  • Owner: alpha-asp
  • License: bsd-2-clause
  • Language: Java
  • Default Branch: master
  • Homepage:
  • Size: 31.8 MB
Statistics
  • Stars: 60
  • Watchers: 6
  • Forks: 11
  • Open Issues: 80
  • Releases: 7
Topics
answer-set-programming lazy-grounding logic-programming solver
Created over 9 years ago · Last pushed 10 months ago
Metadata Files
Readme Contributing License Citation Authors

README.md

Alpha

Latest DOI Travis-CI Build Status AppVeyor Build Status codecov Code Quality Status Coverage Status

Alpha is an Answer Set Programming (ASP) system: It reads a logic program (a set of logical rules) and computes the corresponding answer sets. ASP falls into the category of declarative and logic programming. Its applications are solving combinatorial problems, but it also is a good tool for reasoning in the context of knowledge-representation and databases.

Alpha is the successor of OMiGA and currently in development. In contrast to many other ASP systems, Alpha implements a lazy-grounding approach in hopes of overcoming memory constraints when working with large input.

Alpha is not the fastest system available, since its goal is not to be the fastest system with current technology but to explore new technologies rapidly. Those technologies, like lazy-grounding, allow Alpha to succeed where other ASP systems fail completely. The project deliberately chooses to trade shorter execution times (which would be possible by using unmanaged runtimes, e.g. C/C++, and low-level optimization) for a more straight forward system design and possibilities to interface with the ecosystem built around the Java Virtual Machine.

Getting Started

Download a current version of the distribution jar (alpha-cli-app-${version}-bundled.jar) from Releases and save it as alpha.jar for convenience.

Running Alpha is as simple as running any other JAR:

bash $ java -jar alpha.jar

Example Usage

Solve 3-colorability for some benchmarking instance and filter for color predicates:

bash $ java -jar alpha.jar -i benchmarks/omiga/omiga-testcases/3col/3col-10-18.txt -fblue -fred -fgreen

Note that in this example the path to the input file is relative to the root of this repository. If you have not checked out the repository, you can just download the example file from GitHub.

A coder's guide to answer set programming provides a short and high-level tutorial on Answer Set Programming.

Building

Alpha uses the Gradle build automation system. Executing

bash $ ./gradlew build

will automatically fetch all dependencies (declared in build.gradle.kts) and compile the project.

Artifacts generated will be placed in the build/ subfolder of the respective module. Most notably you'll find files ready for distribution at alpha-cli-app/build/distributions/. They contain archives which in turn contain a bin/ directory with scripts to run Alpha on Linux and Windows.

If you want to generate a JAR file to be run standalone, execute

bash $ ./gradlew alpha-cli-app:bundledJar

and pick up alpha-cli-app/build/libs/alpha-cli-app-${version}-bundled.jar.

A Note on IDEs

We have contributors using IntelliJ IDEA as well as Eclipse IDE. However, we decided to not check in files related to project configuration. For both tools, standard features to "import" the project based on its Gradle build configuration are available, and they will infer sane defaults. If you run into trouble feel free to file an issue.

Suggested Reading

Beginners' Tutorials

Theoretical Background and Language Specification

Research Papers on Alpha

Peer-reviewed publications part of journals, conferences and workshops:

2021

2020

2019

2018

2017

Others (e.g. non-peer-reviewed publications, less formal articles, newsletters):

Similar Work

  • Smodels, a solver usually used in conjunction with lparse.
  • DLV
  • ASPeRiX, a solver that implements grounding-on-the-fly.

Owner

  • Name: Alpha ASP
  • Login: alpha-asp
  • Kind: organization
  • Location: Distributed Globally

Alpha, a lazy-grounding ASP system, and related code

Citation (CITATION.cff)

# https://citation-file-format.github.io/
cff-version: 1.2.0
message: "If you use this software, please cite it using these metadata."
title: "Alpha"
abstract: "A lazy-grounding Answer-Set Programming System"
# Authors are sorted:
# First people, sorted by `family-names`, `given-names`.
# Second entities, sorted by `name`.
authors:
- family-names: "Langowski"
  given-names: "Michael"
  affiliation: "TU Wien"
  orcid: "https://orcid.org/0000-0001-6572-0357"
- family-names: "Leutgeb"
  given-names: "Lorenz"
  affiliation: "TU Wien"
  orcid: "https://orcid.org/0000-0003-0391-3430"
- family-names: "Taupe"
  given-names: "Richard"
  affiliation: "Siemens AG"
  orcid: "https://orcid.org/0000-0001-7639-1616"
- family-names: "Weinzierl"
  given-names: "Antonius"
  affiliation: "TU Wien"
  orcid: "https://orcid.org/0000-0003-2040-6123"
license: "BSD-2-Clause"
repository-code: "https://github.com/alpha-asp/alpha"
doi: "10.5281/zenodo.1418963"
identifiers:
  - description: "v0.4.0"
    type: doi
    value: "10.5281/zenodo.2641359"
  - description: "v0.3.0"
    type: doi
    value: "10.5281/zenodo.1418964"

GitHub Events

Total
  • Watch event: 4
  • Push event: 2
  • Fork event: 2
Last Year
  • Watch event: 4
  • Push event: 2
  • Fork event: 2

Dependencies

alpha-cli-app/build.gradle.kts maven
  • commons-cli:commons-cli 1.3.1 implementation
  • org.apache.poi:poi ${poiVersion} implementation
  • org.apache.poi:poi-ooxml ${poiVersion} implementation
  • org.slf4j:slf4j-simple 1.7.32 implementation
alpha-commons/build.gradle.kts maven
  • org.antlr:ST4 ${stringtemplateVersion} implementation
alpha-core/build.gradle.kts maven
  • org.antlr:ST4 ${stringtemplateVersion} implementation
  • org.antlr:antlr4-runtime ${antlrVersion} implementation
.github/workflows/build.yml actions
  • actions/checkout v2 composite
  • actions/setup-java v3 composite
  • codecov/codecov-action v1 composite
  • gradle/gradle-build-action v2 composite
  • gradle/wrapper-validation-action v1 composite
alpha-api/build.gradle.kts maven
alpha-solver/build.gradle.kts maven
build.gradle.kts maven
buildSrc/build.gradle.kts maven