Git Product home page Git Product logo

viewer's Introduction

🛑 DEPRECATED 🛑

➡️ This package is now managed in the pi-base/web monorepo


build-test codecov viewer Netlify Status

π-Base

The development instance of the π-Base is available at topology-development.pi-base.org.

Architecture

The site is powered by a few different projects, all under github.com/pi-base.

  • core - typescript package containing the shared data model (spaces, properties, formulae, &c.). Available on NPM.
  • compile - typescript package using @pi-base/core to compile a repository of markdown files into a JSON bundle for the viewer to view. Used in a Github action in the data repo. Also available on NPM.
  • data - repo containing all actual mathematical content. Once a PR here has been approved and merged, it triggers a compiler run, which pushes the compiled bundle to S3 for the public viewer to fetch.
  • viewer - this package. Fetches and presents the compiled bundle.

Development

Clone the repo and run

$ pnpm install
$ pnpm start

The developer panel (at /dev) has some utilities that may be helpful for controlling where the data bundle is fetched from, or for interacting with the stored data. By default, the current production data bundle will be used. You may also want to clone the data repo and run a compiler locally to view edits as you make them; see the compiler's README for more details.

Deployment

Deployment is automatic on a successful push to master. See .github/actions and package.json for details.

viewer's People

Contributors

dependabot[bot] avatar fkastner avatar jamesdabbs avatar stevenclontz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

viewer's Issues

View all traits

It would be handy to have a third option on the Space views to view All traits, rather than toggling between Asserted and Deduced.

Improve parsing

  • Ensure that the preview breaks at boundaries when possible (e.g. includes an entire inline math token or sentence, if reasonable)
  • Better estimate of "length" for inline math tokens.

Disappearing trait TeX

When clicking around traits for a space, there is a race condition with TeXifying that causes the property name to be hidden sometimes.

Add global filters

For now, let users express "I only ever care about T_2 spaces". Eventually this should expand to let the user specify which axiom set they are working in.

Show a proof (if possible) when a search fails

If a user searches for T3 + ~T2, they should get a proof demonstrating why that's impossible. (If they run a search that we have no results for, but that we can't rule out, they should see some copy illustrating that.)

Link out to DOIs/MRs/Wikipedia

Once the viewer has the audited data including references, they should be linked to using the following syntax:

Log & notify on broken links

We should have some mechanism for spotting broken links. Easiest thing is probably to send any routing errors to Rollbar.

Re-organize query logic

Much of src/models/Store should probably be in src/queries, or pushed down into @pi-base/core for reuse.

Improve table sorting

Right now many (but not all) tables are sortable by clicking on the header, but that behavior isn't terribly visible or well-tested.

Case sensitive filenames break build

When compiling on Linux, yarn run start emits the following error:

./src/routes.tsx
(9,22): error TS2307: Cannot find module './components/Property'.

It appears that it is looking for src/components/Property/index.tsx but the file in the repository is actually named Index.tsx, with a capital I. Renaming it to index.tsx fixes the error. Then I had to do the same for src/components/Theorem/Index.tsx.

Are you folks developing on a case insensitive OS and so never saw this, or is something else wrong?
I could create a pull request to just git mv the two files, but not sure if that is really the proper fix.

Better branch review tools

We should make it as easy as possible to review PRs into pi-base/data. This will be an ongoing effort, but may include:

  • A diff view across bundles
  • Better linking from a viewer looking at a non-master bundle back to the repo
  • CI task to add links from the repo to a viewer instance

Remove `any`s

There are a small number of places where we're using the any type for external libraries. We should declare (and contribute back) proper typings for those.

Mary Ellen Rudin's take on Counterexamples

I always liked Rudin's review of Counterexamples. I think an paraphrased excerpt like the one below would be a nice addition to the front page of the viewer.

To paraphrase Mary Ellen Ruden in her review of Counterexamples in Topology, topology is a dense forest of counterexamples, and a usable map of the forest is a fine thing. The pi-Base team hopes that researchers will benefit from the organization and uniformity provided by the pi-Base, and that mathematicians and students exploring new branches of topology will benefit from having the pi-Base as a guide.

Support MO and M.SE citations

We should accept Math Overflow and Math.StackExchange citations; part of the review process would be to reject downvoted solutions.

Compare sets of common traits

Given a collection of spaces (say, with a known property), it would be nice to compare the traits that those spaces have in common.

Basic create / edit support

When on a non-audited branch, users should be able to create and edit spaces, properties, theorems and traits

Master/user branching UX

Move toggling master/user branches to the toolbar, including changing the toolbar color to reflect its status.

Relationships between spaces

We eventually want to support full-on automated theorem prover integration, but would it be possible to model a handful of simple relationships between spaces ("is a (closed) subspace of", "is a product of")?

Theorem exploration

We can improve the page for displaying deduced theorems and add

  • a visualization
  • an option to start with the proximal deduction and expand back as desired

Tests

The design is stable enough now that the query / action / reducer layer should be well-tested. Testing the component layer honestly doesn't seem that bad either ...

Searchable aliases

Filtering properties down to "Haus" should show T_2 in the list of results

Perfectly normal should not imply T1

Currently the deduction engine has a rule for perfectly normal implying T4. Via some other deductions pi-base then deduces T1. However, in general perfectly normal (as defined in Wikipedia and in Pi-base) does not imply T1 or T2. The reason is that without the T1 axiom it is not known whether singletons are closed. It would be nice if the T1 and perfectly normal properties were independent.

Multi user editing of branches

One use case: a professor starts a branch, but wants their student to add references. It would be ideal if the student got credit for those commits and didn't have to have the professor's login.

Omnisearch

It would be nice to have a unified search experience that

  • Included results across resource types
  • Included results by formula, iff the input parses as a formula. (We'd need to figure out what to do with singe-term searches though, as those always parse as an atom.)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.