Skip to main content

MaRDMO Logo by MaRDI, licensed under CC BY-NC-ND 4.0.

MaRDMO Plugin

This repository contains the MaRDMO Plugin for the Research Datamanagement Organizer (RDMO) developed within the Mathematical Research Data Initiative (MaRDI).

The plugin allows a standardized documentation of:

  1. Algorithms
  2. Interdisciplinary Workflows
  3. Mathematical Models

Model documentation in MaRDMO followsthe MathModDB ontology. Within the plugin, users can record a model, related formulas, computational tasks, quantities or quantity kinds, research problems, academic disciplines, and publications. These inputs are gathered in a guided interview, enabling MaRDMO to produce metadata that is directly compatible with the MaRDI Knowledge Graph. A demo video showing the documentation process for a mathematical model in MaRDMO is available here.

Workflow documentation follows a standardized scheme developed in MaRDI. Within the plugin, users can record a workflow, related models, algorithms, methods, software, hardware, experimental equipments, data sets, and publications. These inputs are gathered in a guided interview, enabling MaRDMO to produce metadata that is directly compatible with the MaRDI Knowledge Graph.

Algorithm documentation in MaRDMO follows the MathAlgoDB ontology. Within the plugin, users can record an algorithm, related algorithmic tasks, implementing software, benchmarks, and publications. These inputs are gathered in a guided interview, enabling MaRDMO to produce metadata that is directly compatible with the MaRDI Knowledge Graph. A demo video showing the documentation process for an algorithm in MaRDMO is available here.

Completed documentations in MaRDMO can be exported directly from RDMO to the MaRDI Knowledge Graph via the Export to MaRDI Portal button. This feature generates a concise summary of the documented model, algorithm, or workflow, and - after user authentication - submits the metadata to the MaRDI Knowledge Graph. This streamlines the publication process and ensures the documentation becomes immediately discoverable within the MaRDI ecosystem.

In addition to documentation, MaRDMO provides a dedicated interview for searching existing workflows, algorithms, and models. Users can specify individual search parameters related to the underlying ontologies. The Query MaRDI Portal button will generate the corresponding SPARQL query based on the user input. The query results are displayed directly in RDMO, enabling researchers to discover and reuse existing knowledge - thus closing the knowledge transfer loop within the MaRDI ecosystem.

MaRDMO Plugin Installation

To use the MaRDMO Plugin at least RDMO v2.4.1 is required. Follow the installation / update instructions of RDMO if required.

Go to the rdmo-app directory of your RDMO installation. In the virtual environment of the RDMO installation install the MaRDMO Plugin:

pip install MaRDMO

To connect the MaRDMO Plugin with the RDMO installation add the following lines to config/settings/local.py (if not already present):

from django.utils.translation import gettext_lazy as _ 
INSTALLED_APPS = ['MaRDMO'] + INSTALLED_APPS

PROJECT_EXPORTS += [
        ('wikibase', _('Export to MaRDI Portal'), 'MaRDMO.main.MaRDMOExportProvider'),
        ('wikibase-search', _('Query MaRDI Portal'), 'MaRDMO.main.MaRDMOQueryProvider'),
        ]

OPTIONSET_PROVIDERS = [
    # General
    ('Software', _('Options for Software'), 'MaRDMO.providers.Software'),
    ('RelatedSoftwareWithCreation', _('Options for related Software with Creation'), 'MaRDMO.providers.RelatedSoftwareWithCreation'),
    # Search
    ('ResearchFieldMaRDIOnly', _('Options for Research Fields (MaRDI Only)'), 'MaRDMO.search.providers.ResearchField'),
    ('MathematicalModelMaRDIOnly', _('Options for Mathematical Models (MaRDI Only)'), 'MaRDMO.search.providers.MathematicalModel'),
    ('AlgorithmMaRDIOnly', _('Options for Algorithms (MaRDI Only)'), 'MaRDMO.search.providers.Algorithm'),
    ('SoftwareMaRDIOnly', _('Options for Software (MaRDI Only)'), 'MaRDMO.search.providers.Software'),
    ('HardwareMaRDIOnly', _('Options for Hardware (MaRDI Only)'), 'MaRDMO.search.providers.Hardware'),
    ('MethodMaRDIOnly', _('Options for Methods (MaRDI Only)'), 'MaRDMO.search.providers.Method'),
    ('InstrumentMaRDIOnly', _('Options for Instruments (MaRDI Only)'), 'MaRDMO.search.providers.Instrument'),
    ('DataSetMaRDIOnly', _('Options for Data Sets (MaRDI Only)'), 'MaRDMO.search.providers.DataSet'),
    ('AlgorithmicProblemMaRDIOnly', _('Options for Algorithmic Problems (MaRDI Only)'), 'MaRDMO.search.providers.AlgorithmicProblem'),
    ('ResearchProblemMaRDIOnly', _('Options for Research Problems (MaRDI Only)'), 'MaRDMO.search.providers.ResearchProblem'),
    ('ComputationalTaskMaRDIOnly', _('Options for Computational Tasks (MaRDI Only)'), 'MaRDMO.search.providers.ComputationalTask'),
    ('FormulaMaRDIOnly', _('Options for Formulas (MaRDI Only)'), 'MaRDMO.search.providers.Formula'),
    ('QuantityOrQuantityKindMaRDIOnly', _('Options for Quantities and Quantity Kinds (MaRDI Only)'), 'MaRDMO.search.providers.QuantityOrQuantityKind'),
    # Workflow
    ('MathematicalModelWorkflow', _('Options for Mathematical Model (Workflow)'), 'MaRDMO.workflow.providers.MathematicalModel'),
    ('TaskWorkflow', _('Options for Task (Workflow)'), 'MaRDMO.workflow.providers.Task'),
    ('Hardware', _('Options for Hardware'), 'MaRDMO.workflow.providers.Hardware'),
    ('RelatedHardwareWithCreation', _('Options for related Hardware with Creation'), 'MaRDMO.workflow.providers.RelatedHardwareWithCreation'),
    ('DataSet', _('Options for Data Sets'), 'MaRDMO.workflow.providers.DataSet'),
    ('RelatedDataSetWithCreation', _('Options for related Data Sets with Creation'), 'MaRDMO.workflow.providers.RelatedDataSetWithCreation'),
    ('RelatedInstrumentWithCreation', _('Options for related Instruments with Creation'), 'MaRDMO.workflow.providers.RelatedInstrumentWithCreation'),
    ('RelatedMethodWithCreation', _('Options for related Methods with Creation'), 'MaRDMO.workflow.providers.RelatedMethodWithCreation'),
    ('RelatedAlgorithmWithCreation', _('Options for related Algorithms with Creation'), 'MaRDMO.workflow.providers.RelatedAlgorithmWithCreation'),
    ('ProcessStep', _('Options for Process Step'), 'MaRDMO.workflow.providers.ProcessStep'),
    ('Workflow', _('Options for Workflows'), 'MaRDMO.workflow.providers.Workflow'),
    ('RelatedWorkflowWithoutCreation', _('Options for related Workflows without Creation'), 'MaRDMO.workflow.providers.RelatedWorkflowWithoutCreation'),
    ('RelatedStepWithCreation', _('Options for related Process Steps with Creation'), 'MaRDMO.workflow.providers.RelatedStepWithCreation'),
    ('RelatedProgrammingLanguageWithCreation', _('Options for related Programming Languages with Creation'), 'MaRDMO.workflow.providers.RelatedProgrammingLanguageWithCreation'),
    ('RelatedCPUModelWithCreation', _('Options for related CPU Modelss with Creation'), 'MaRDMO.workflow.providers.RelatedCPUModelWithCreation'),
    ('RelatedHardwareOrSoftwareWithoutCreation', _('Options for related Hardware or Software without Creation'), 'MaRDMO.workflow.providers.RelatedHardwareOrSoftwareWithoutCreation'),
    ('RelatedWorkflowEntityWithoutCreation', _('Options for related Workflow Entities without Creation'), 'MaRDMO.workflow.providers.RelatedWorkflowEntityWithoutCreation'),
    # Model
    ('ResearchField', _('Options for Research Fields'), 'MaRDMO.model.providers.ResearchField'),
    ('RelatedResearchFieldWithCreation', _('Options for related Research Fields with Creation'), 'MaRDMO.model.providers.RelatedResearchFieldWithCreation'),
    ('RelatedResearchFieldWithoutCreation', _('Options for related Research Fields without Creation'), 'MaRDMO.model.providers.RelatedResearchFieldWithoutCreation'),
    ('ResearchProblem', _('Options for Research Problems'), 'MaRDMO.model.providers.ResearchProblem'),
    ('RelatedResearchProblemWithCreation', _('Options for related Research Problems with Creation'), 'MaRDMO.model.providers.RelatedResearchProblemWithCreation'),
    ('RelatedResearchProblemWithoutCreation', _('Options for related Research Problems without Creation'), 'MaRDMO.model.providers.RelatedResearchProblemWithoutCreation'),
    ('MathematicalModel', _('Options for Mathematical Model'), 'MaRDMO.model.providers.MathematicalModel'),
    ('RelatedMathematicalModelWithoutCreation', _('Options for related Mathematical Model without Creation'), 'MaRDMO.model.providers.RelatedMathematicalModelWithoutCreation'),
    ('QuantityOrQuantityKind', _('Options for Quantities and Quantity Kinds'), 'MaRDMO.model.providers.QuantityOrQuantityKind'),
    ('RelatedQuantityWithoutCreation', _('Options for related Quantities without Creation'), 'MaRDMO.model.providers.RelatedQuantityWithoutCreation'),
    ('RelatedQuantityKindWithoutCreation', _('Options for related Quantity Kinds without Creation'), 'MaRDMO.model.providers.RelatedQuantityKindWithoutCreation'),
    ('RelatedQuantityOrQuantityKindWithCreation', _('Options for related Quantites or Quantity Kinds with Creation'), 'MaRDMO.model.providers.RelatedQuantityOrQuantityKindWithCreation'),
    ('MathematicalFormulation', _('Options for Mathematical Formulation'), 'MaRDMO.model.providers.MathematicalFormulation'),
    ('RelatedMathematicalFormulationWithCreation', _('Options for related Mathematical Formulations with Creation'), 'MaRDMO.model.providers.RelatedMathematicalFormulationWithCreation'),
    ('RelatedMathematicalFormulationWithoutCreation', _('Options for related Mathematical Formulations without Creation'), 'MaRDMO.model.providers.RelatedMathematicalFormulationWithoutCreation'),
    ('AllEntities', _('Options for All Entities'), 'MaRDMO.model.providers.AllEntities'),
    ('Task', _('Options for Task'), 'MaRDMO.model.providers.Task'),
    ('RelatedTaskWithCreation', _('Options for related Tasks with Creation'), 'MaRDMO.model.providers.RelatedTaskWithCreation'),
    ('RelatedTaskWithoutCreation', _('Options for related Tasks without Creation'), 'MaRDMO.model.providers.RelatedTaskWithoutCreation'),
    ('RelatedModelEntityWithoutCreation', _('Options for related Model Entities without Creation'), 'MaRDMO.model.providers.RelatedModelEntityWithoutCreation'),
    # Publication
    ('Publication', _('Options for Publication'), 'MaRDMO.publication.providers.Publication'),
    # Algorithm
    ('Algorithm', _('Options for Algorithms'), 'MaRDMO.algorithm.providers.Algorithm'),
    ('RelatedAlgorithmWithoutCreation', _('Options for related Algorithms without Creation'), 'MaRDMO.algorithm.providers.RelatedAlgorithmWithoutCreation'),
    ('AlgorithmicProblem', _('Options for Algorithmic Problems'), 'MaRDMO.algorithm.providers.AlgorithmicProblem'),
    ('RelatedAlgorithmicProblemWithCreation', _('Options for related Algorithmic Problems with Creation'), 'MaRDMO.algorithm.providers.RelatedAlgorithmicProblemWithCreation'),
    ('RelatedAlgorithmicProblemWithoutCreation', _('Options for related Algorithmic Problems without Creation'), 'MaRDMO.algorithm.providers.RelatedAlgorithmicProblemWithoutCreation'),
    ('Benchmark', _('Options for Benchmarks'), 'MaRDMO.algorithm.providers.Benchmark'),
    ('RelatedBenchmarkWithCreation', _('Options for related Benchmarks with Creation'), 'MaRDMO.algorithm.providers.RelatedBenchmarkWithCreation'),
    ('RelatedBenchmarkOrSoftwareWithoutCreation', _('Options for related Benchmarks or Software without Creation'), 'MaRDMO.algorithm.providers.RelatedBenchmarkOrSoftwareWithoutCreation'),
    ]

In addition add the following urlpattern to config/urls.py:

path('services/', include("MaRDMO.urls")),

Thereby, the MaRDMO Plugin is installed and "Export to MaRDI Portal" and "Query MaRDI Portal" buttons are added in the project view.

MaRDI Portal and Wikidata Connections

Add the following lines to config/settings/local.py to connect MaRDMO with the individual databases.

MARDMO_PROVIDER = {
    'mardi': {
        'items': 'data/items.json',
        'properties': 'data/properties.json',
        'api': 'https://portal.mardi4nfdi.de/w/api.php',
        'sparql': 'https://query.portal.mardi4nfdi.de/sparql',
        'uri': 'https://portal.mardi4nfdi.de',
        'entity_uri': 'http://portal.mardi4nfdi.de',
        'oauth2_client_id': '',
        'oauth2_client_secret': '',
    }
}

Contact the MaRDI consortium for the individual credentials.

MaRDMO-Questionnaire

The MaRDMO Plugin requires the MaRDMO-Questionnaire, download its latest release Latest Release.

Integrate the MaRDMO Questionnaire into your RDMO instance through the user interface of your RDMO instance (Management -> Import -> attributes.xml/optionsets.xml/conditions.xml/catalogs.xml) or via

python manage.py import /path/to/MaRDMO-Questionnaire/catalog/attributes.xml
python manage.py import /path/to/MaRDMO-Questionnaire/catalog/optionsets.xml
python manage.py import /path/to/MaRDMO-Questionnaire/catalog/conditions.xml
python manage.py import /path/to/MaRDMO-Questionnaire/catalog/mardmo-search-catalog.xml
python manage.py import /path/to/MaRDMO-Questionnaire/catalog/mardmo-model-catalog.xml
python manage.py import /path/to/MaRDMO-Questionnaire/catalog/mardmo-model-basic-catalog.xml
python manage.py import /path/to/MaRDMO-Questionnaire/catalog/mardmo-interdisciplinary-workflow-catalog.xml
python manage.py import /path/to/MaRDMO-Questionnaire/catalog/mardmo-algorithm-catalog.xml

Usage of MaRDMO Plugin

Once the MaRDMO Plugin is set up, the Questionnaires can be used to document and query interdisciplinary workflows, mathematical models, and algorithms. Therefore, select "Create New Project" in RDMO, choose a proper project name (for interdisciplinary workflow the project name will the workflow name), assign one of the MaRDMO Catalogs and select "Create Project". The project is created. Choose "Answer Questions" to start the Interview. Once the Interview is completed, return to the Project Page. On the right hand side in the "Export" section the "Export to MaRDI Portal" and "Query MaRDI Portal" buttons are located to process and subsequently export the completed Questionnaires or query the MaRDI Portal.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mardmo-0.6.2.tar.gz (6.9 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mardmo-0.6.2-py3-none-any.whl (7.1 MB view details)

Uploaded Python 3

File details

Details for the file mardmo-0.6.2.tar.gz.

File metadata

  • Download URL: mardmo-0.6.2.tar.gz
  • Upload date:
  • Size: 6.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.10.21

File hashes

Hashes for mardmo-0.6.2.tar.gz
Algorithm Hash digest
SHA256 667916bdac1732965d4613dd650224aca37abd629a0a1572ff49263ece397d55
MD5 1ad8e2fde20560b26a28b1c741df4cb0
BLAKE2b-256 a29ad855d513896c8512c6fd8b68ad427c0caf18d89c3037886a71afe381beb1

See more details on using hashes here.

File details

Details for the file mardmo-0.6.2-py3-none-any.whl.

File metadata

  • Download URL: mardmo-0.6.2-py3-none-any.whl
  • Upload date:
  • Size: 7.1 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.10.21

File hashes

Hashes for mardmo-0.6.2-py3-none-any.whl
Algorithm Hash digest
SHA256 ebcbd24cf2f54804c7e2646b862e852426defb32247443a5eb8b1db37a920cb2
MD5 4ff23d4fe4a337a2550a68fbc046c470
BLAKE2b-256 32a0f2813c9ddcf5826fd2130af74ffaea43b3c53f04858e9674302be9c5716f

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.6.2 This release

2 files

0.6.1

2 files

0.6.0

2 files

0.5.1

2 files

0.5.0

2 files

0.4.2

2 files

0.4.1

2 files

0.4.0

2 files

0.3.5

2 files

0.3.4

2 files

0.3.3

2 files

0.3.2

2 files

0.3.1

2 files

0.3.0

2 files

0.2.1

2 files

0.2.0

2 files

0.1.2

3 files

0.1.1

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page