Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
65 commits
Select commit Hold shift + click to select a range
50d0995
Add basic db test
aaruni96 Mar 26, 2025
8cd67df
FIrst attempt at making a connection to Oscar DB for data/Surfaces
aaruni96 Mar 25, 2025
6124d4a
fix Project toml
antonydellavecchia Jul 16, 2025
5ad9436
add file for collection serializations
antonydellavecchia Jul 16, 2025
f4a384f
add matrix groups serialization
antonydellavecchia Jul 17, 2025
0587af0
serialization for leech pairs
antonydellavecchia Jul 17, 2025
0b23f56
Matrix group serialization
antonydellavecchia Jul 17, 2025
6060e62
adds MatrixGroupElem + test
antonydellavecchia Jul 17, 2025
dec698e
progress on leech
antonydellavecchia Jul 17, 2025
3baab15
fix function signatures
antonydellavecchia Jul 17, 2025
03c678e
Apply suggestions from code review
antonydellavecchia Jul 17, 2025
10800f8
remove redundant line
antonydellavecchia Jul 17, 2025
23e4ee4
store with desc attr
antonydellavecchia Jul 17, 2025
062d15f
Merge remote-tracking branch 'origin/adv/matrix-groups-serialization'…
antonydellavecchia Jul 17, 2025
07a8943
tests passing
antonydellavecchia Jul 17, 2025
45fe64c
revert leech pair add Transitivesimplicialcomplex
antonydellavecchia Jul 17, 2025
d6a83d3
Merge remote-tracking branch 'origin/adv/matrix-groups-serialization'…
antonydellavecchia Jul 17, 2025
d34bde8
need to work out dev solution
antonydellavecchia Jul 17, 2025
3a46035
loading leechs from db working on oscar-dev
antonydellavecchia Jul 18, 2025
2cfbf50
indent + fix Project toml
antonydellavecchia Jul 21, 2025
9eeb37e
moved OscarDB to experimental
antonydellavecchia Jul 21, 2025
1a6f124
renaming
antonydellavecchia Jul 21, 2025
1ced566
split the collections into their own files
antonydellavecchia Jul 21, 2025
f329e50
updates for transitive simplicialcomplex
antonydellavecchia Jul 21, 2025
5832e1f
add mongodb block to yml
antonydellavecchia Jul 22, 2025
db3c614
fix URI
antonydellavecchia Jul 22, 2025
62ddcdf
Merge remote-tracking branch 'origin/master' into adv+ak/leech-pair-c…
antonydellavecchia Aug 6, 2025
96f5ad6
Merge remote-tracking branch 'origin/master' into adv+ak/leech-pair-c…
antonydellavecchia Aug 6, 2025
39977f4
removed fault test file
antonydellavecchia Aug 6, 2025
bcbf2ab
load surfaces from local data folder (still)
antonydellavecchia Aug 6, 2025
a07f621
started docs
antonydellavecchia Aug 6, 2025
831404d
fix check-docstrings
antonydellavecchia Aug 6, 2025
f5d2438
fix for deploy docs
antonydellavecchia Aug 6, 2025
aff8a5d
add documentation, rename some functions and simplify the printing (#…
StevellM Aug 6, 2025
b423fd9
edits from review
antonydellavecchia Aug 14, 2025
cee9003
remove example from polydb
antonydellavecchia Aug 14, 2025
8a15dc4
Update experimental/OscarDB/src/LeechPairs.jl
antonydellavecchia Aug 14, 2025
a762fb4
typo
antonydellavecchia Aug 14, 2025
a49e0d2
Merge remote-tracking branch 'origin/adv+ak/leech-pair-collection' in…
antonydellavecchia Aug 14, 2025
d288328
fix refs
antonydellavecchia Aug 14, 2025
0f98a83
add new tests subset
antonydellavecchia Aug 15, 2025
c8c43d3
Merge branch 'master' into adv+ak/leech-pair-collection
antonydellavecchia Oct 1, 2025
8ac35b6
remove URIs dependency + fix typos
antonydellavecchia Oct 1, 2025
fee6504
fix test to only use simplical complexes
antonydellavecchia Oct 1, 2025
dc33f80
dump only contains complexes of dim 3
antonydellavecchia Oct 1, 2025
ff9cded
remove stale dependencies
antonydellavecchia Oct 1, 2025
7f0feaf
OSCAR DB: doc edits
micjoswig Oct 2, 2025
d8e423c
fix link
antonydellavecchia Oct 2, 2025
d366bb1
OSCAR DB: collection of vertex transitive simplicial complexes
micjoswig Oct 2, 2025
fa5a6dc
Merge branch 'adv+ak/leech-pair-collection' of github.com:oscar-syste…
micjoswig Oct 2, 2025
b16765c
OSCAR DB: doc edit
micjoswig Oct 2, 2025
0da9432
OSCAR DB: doc edit
micjoswig Oct 2, 2025
44bd477
adds some docs for length + example
antonydellavecchia Oct 2, 2025
6e83ef1
adjust comment about things to do
antonydellavecchia Oct 2, 2025
41b641d
OSCAR DB: doc edit
micjoswig Oct 2, 2025
f8b0a22
updates to docs
antonydellavecchia Oct 2, 2025
8f25558
fix typo
antonydellavecchia Oct 2, 2025
726ddc7
fix length docs
antonydellavecchia Oct 2, 2025
8b5f427
remove T from length function
antonydellavecchia Oct 2, 2025
55492f0
add docs for LeechPairs
Oct 3, 2025
132c310
Merge pull request #5408 from StevellM/sm/contribute-oscar-db
StevellM Oct 3, 2025
b8693f8
Oscar DB: doc edits
micjoswig Oct 3, 2025
f75542d
Oscar DB: doc edits
micjoswig Oct 3, 2025
52257bf
Apply suggestions from code review
antonydellavecchia Oct 3, 2025
c9ef21c
suggestions from code review
antonydellavecchia Oct 3, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"indexes":[{"v":{"$numberInt":"2"},"key":{"_id":{"$numberInt":"1"}},"name":"_id_"}],"uuid":"65282c16f2af431aaf80186178a83b40","collectionName":"TransitiveSimplicialComplexes","type":"collection"}
1 change: 1 addition & 0 deletions .github/oscardb_dump/oscar/prelude.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"ServerVersion":"8.0.11","ToolVersion":"100.12.2"}
Comment thread
lgoettgens marked this conversation as resolved.
57 changes: 57 additions & 0 deletions .github/workflows/CI.yml
Original file line number Diff line number Diff line change
Expand Up @@ -290,6 +290,63 @@ jobs:
${{ steps.julia-cache.outputs.cache-paths }}
key: ${{ steps.julia-cache.outputs.cache-key }}

test-mongodb:
runs-on: ${{ matrix.os }}
continue-on-error: ${{ matrix.julia-version == '1.12-nightly' || matrix.julia-version == 'nightly' }}
timeout-minutes: 60
strategy:
fail-fast: false
matrix:
julia-version:
- '1.10'
- '1.11'
- '1.12-nightly'
- 'nightly'
os: ['ubuntu-latest']

# Service containers to run
services:
# Label used to access the service container
mongodb:
# Docker Hub image
image: mongo:6.0
# Provide the login data
env:
MONGO_INITDB_ROOT_USERNAME: admin
MONGO_INITDB_ROOT_PASSWORD: admin
ports:
# Maps tcp port 27017 on service container to the host
- 27017:27017
env:
JULIA_PKG_SERVER: ""
OSCARDB_TEST_URI: "mongodb://admin:admin@localhost:27017/?authSource=admin"
OSCAR_TEST_SUBSET: "oscar_db"
steps:
- uses: actions/checkout@v4
- name: "Set up Julia"
uses: julia-actions/setup-julia@v2
with:
version: ${{ matrix.julia-version }}
- uses: julia-actions/cache@v2
with:
cache-name: julia-cache;workflow=${{ github.workflow }};julia=${{ matrix.julia-version }};arch=${{ runner.arch }}
include-matrix: false
cache-scratchspaces: false
- name: "Fill OscarDB container"
run: |
wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
sudo apt-get update
sudo apt-get install -y mongodb-database-tools
mongorestore --host localhost -u admin -p admin --port 27017 .github/oscardb_dump
- uses: julia-actions/julia-runtest@v1
- uses: julia-actions/julia-processcoverage@v1
- uses: codecov/codecov-action@v5
with:
fail_ci_if_error: false
token: ${{ secrets.CODECOV_TOKEN }}


# adapted from gap-system/gap
slack-notification:
name: Send Slack notification on status change
Expand Down
4 changes: 4 additions & 0 deletions Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,9 @@ JSON = "682c06a0-de6a-54ab-a142-c8b1cf79cde6"
JSON3 = "0f8b85d8-7281-11e9-16c2-39a750bddbf1"
LazyArtifacts = "4af54fe1-eca0-43a8-85a7-787d91b784e3"
Markdown = "d6f4376e-aef5-505a-96c1-9c027394607a"
Mongoc = "4fe8b98c-fc19-5c23-8ec2-168ff83495f2"
Nemo = "2edaba10-b0f1-5616-af89-8c11ac63239a"
NetworkOptions = "ca575930-c2e3-43a9-ace4-1e988b2c1908"
Pkg = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f"
Polymake = "d720cf60-89b5-51f5-aff5-213f193123e7"
ProgressMeter = "92933f4c-e287-5a05-a399-4b506db050ca"
Expand All @@ -39,7 +41,9 @@ JSON = "^0.20, ^0.21"
JSON3 = "1.13.2"
LazyArtifacts = "1.6"
Markdown = "1.6"
Mongoc = "0.9.2"
Nemo = "0.52.1"
NetworkOptions = "1.2.0"
Pkg = "1.6"
Polymake = "0.13.1"
ProgressMeter = "1.10.2"
Expand Down
34 changes: 34 additions & 0 deletions docs/oscar_references.bib
Original file line number Diff line number Diff line change
Expand Up @@ -843,6 +843,19 @@ @Misc{D-VJL24
primaryclass = {math.CO}
}

@InProceedings{D-VJL24*1,
author = {Della Vecchia, Antony and Joswig, Michael and Lorenz, Benjamin},
title = {A {FAIR} file format for mathematical software},
editor = {Buzzard, Kevin and Dickenstein, Alicia and Eick, Bettina and Leykin, Anton and Ren, Yue},
booktitle = {Mathematical software -- ICMS 2024},
series = {Lecture Notes in Computer Science},
volume = {14749},
publisher = {Springer},
pages = {234--244},
year = {2024},
doi = {10.1007/978-3-031-64529-7_25}
}

@InCollection{DE02,
author = {Decker, Wolfram and Eisenbud, David},
title = {Sheaf algorithms using the exterior algebra},
Expand Down Expand Up @@ -1581,6 +1594,16 @@ @Article{HM05
doi = {10.1016/j.jsc.2004.11.009}
}

@Article{HM16,
author = {Höhn, Gerald and Mason, Geoffrey},
title = {The 290 fixed-point sublattices of the Leech lattice},
journal = {J. Algebra},
volume = {448},
pages = {618--637},
year = {2016},
doi = {10.1016/j.algebra.2015.08.028}
}

@Article{HM73,
author = {Horrocks, G. and Mumford, D.},
title = {A rank 2 vector bundle on $\text{P}^4$ with 15,000 symmetries},
Expand Down Expand Up @@ -2294,6 +2317,17 @@ @InCollection{Los18
doi = {10.1007/978-3-030-01588-6\_1}
}

@Article{Lut08,
author = {Lutz, Frank H.},
title = {Combinatorial 3-manifolds with 10 vertices},
mrnumber = {2410566},
journal = {Beiträge Algebra Geom.},
volume = {49},
number = {1},
pages = {97--106},
year = {2008}
}

@Misc{MNP24,
author = {Merkwitz, Thomas and Naughton, Liam and Pfeiffer, Götz},
title = {TomLib, The GAP Library of Tables of Marks, Version 1.2.11},
Expand Down
6 changes: 3 additions & 3 deletions docs/src/DeveloperDocumentation/serialization.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ is the process of reading and writing data. There are many reasons for this
feature in OSCAR, but the main reason is communication on mathematics by
mathematicians.

We implement our serialization in accordance with the [MaRDI](https://www.mardi4nfdi.de/about/mission) file format specification described [here](https://arxiv.org/abs/2309.00465).
Which means we use a JSON extension to serialize data.
We implement our serialization in accordance with the [MaRDI](https://www.mardi4nfdi.de/about/mission) file format specification developed by Della Vecchia, Joswig and Lorenz [D-VJL24*1](@cite).
In particular, we use a JSON extension to serialize data.


## How it works
Expand All @@ -25,7 +25,7 @@ julia> load("/tmp/fourtitwo.mrdi")
42

```
The filename hints to the [MaRDI file format](https://arxiv.org/abs/2309.00465), which employs JSON. The file looks as follows:
The filename hints to the MaRDI file format [D-VJL24*1](@cite), which employs JSON. The file looks as follows:
```json
{
"_ns": {
Expand Down
5 changes: 5 additions & 0 deletions experimental/OscarDB/docs/doc.main
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
[
"OscarDB" => [
"introduction.md"
],
]
64 changes: 64 additions & 0 deletions experimental/OscarDB/docs/src/introduction.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
```@meta
CurrentModule = Oscar
CollapsedDocStrings = true
DocTestSetup = Oscar.doctestsetup()
```

# OscarDB

This module provides a general database framework which, conceptually, works for all OSCAR types.

There are two main ingredients:
- the database backend is [MongoDB](https://www.mongodb.com);
- communication with the database relies on OSCAR's serialization, via the mrdi file format [D-VJL24*1](@cite).

The overall design is inspired by polymake's [PolyDB](https://polydb.org/).

## Collections

The database is organized into collections.
Within each collection the datasets are uniform.

### Vertex-transitive combinatorial manifolds [TransitiveSimplicialComplexes]
The OSCAR DB provides access to [Frank Lutz' collection of vertex transitive triangulations](https://www3.math.tu-berlin.de/IfM/Nachrufe/Frank_Lutz/stellar/vertex-transitive-triangulations.html).
It comprises all vertex-transitive combinatorial manifolds with up to 15 vertices in dimensions $d=2,3,9,10,11,12$.
In the remaining dimensions below 12, the enumeration is complete up to 13 vertices.

See also [Lut08](@cite).

### Leech pairs [LeechPairs]
The OSCAR DB provides access to the [fixed-point sublattices of the Leech lattice](http://monstrous-moonshine.de/~gerald/),
computed by Gerald Höhn and Geoffrey Mason.
Each entry of the collection is a pair consisting of a copy of the Leech lattice
and of the largest subgroup of the Conway group fixing pointwise the associated
fixed-point sublattice.

See also [HM16](@cite), Table 1, and [the supplementary non-published tables](https://arxiv.org/src/1505.06420v3/anc).

## Status

This part of OSCAR is in an experimental state; please see [Adding new projects to experimental](@ref) for what this means.

## Contact

Please direct questions about this part of OSCAR to the following people:
* [Antony Della Vecchia](https://antonydellavecchia.github.io/)
* Benjamin Lorenz

You can ask questions in the [OSCAR Slack](https://www.oscar-system.org/community/#slack).

Alternatively, you can [raise an issue on github](https://www.oscar-system.org/community/#how-to-report-issues).

```@meta
CurrentModule = Oscar.OscarDB
```

```@docs
get_db
find_one
find
length(c::Collection, d::Dict=Dict())
getindex(db::Database, name::AbstractString)
get_collection_names
```

Loading
Loading