README
Draco-Vis
A module for Draco on the web, written in Typescript. Learn more about Draco at https://uwdata.github.io/draco/.
Note that we use Emscripten to compile the Clingo constraint solver to WebAssembly so it runs inside your browser.
Installation
Install with yarn add draco-vis
. See it in action on Observable at https://beta.observablehq.com/@domoritz/hello-draco.
API
Draco-Vis exports the Draco-Core API. In addition, it exposes the Draco
object.
new Draco (updateStatus?: (text: string) => void, url?: string)
Constructs a
Draco
object.updateStatus
is a callback used to log module status updates, defaulting toconsole.log
.url
may point to the base path of the hosting server, where '/clingo.js' from the packagewasmclingo
should rest, defaulting to the unpkg url ofwasmclingo
(you may want to specify your own server if speed is of priority).
draco.init (): Promise
Initializes Draco's solver, returning a
Promise
that will resolve once initialization completes.
draco.solve (program: string, options?: Option): SolutionSet
Solves the given Draco ASP program. Returns a
SolutionSet
if satisfiable.
draco.prepareData (data: any[])
Ingests the given data (a list of dictionaries), automatically parsing it for fields and datatypes, as well as various statistics.
draco.getSchema (): Schema
Returns the data
Schema
of this (will benull
ifprepareData
has not yet been called).
draco.updateAsp (aspSet: {[s: string]: string})
Updates the constraints / programs of this.
draco.getConstraintSet (): ConstraintSet
Returns the
ConstraintSet
backing this.
Run locally
Run yarn
to install dependencies. Then run yarn start
.
Run yarn test
to test the module.
Run yarn format
to format the code.