Coder Social home page Coder Social logo

RFC: Modular architecture about mash HOT 3 OPEN

ontola avatar ontola commented on September 23, 2024
RFC: Modular architecture

from mash.

Comments (3)

rescribet avatar rescribet commented on September 23, 2024

This leaves two main interfaces / API surfaces to be defined;

Kernel API

  • Package manager API's for the user to add/remove packages from the system
  • Core middleware to provide a common set of low-level/os restricted actions
  • Other system API's to provide component registration, view selection, data/network interfaces, reasoning capabilities, etc. (primarily for low-level view frameworks, e.g. link-redux)

Package interface

Two surfaces have to be defined;
RDF: Via an ontology which can be used to describe what a package contains (funtional) and how it can be consumed (technical).
JavaSript: Defines how packages should present/register themselves when loaded.

To consider:

  • Authorship
  • Signing
  • Versioning
  • Dependencies

RDF Resource / RDF website

Most data doesn't follow a strict structure which maps directly onto a view sensible for human consumption (which is what HTML+CSS currently provide). Like the web, the data is distributed and its structure cannot be known in advance, especially with the open world assumption. Rendering information is therefore distributed across the data architect, the producer, the publisher, and the consumer. To accommodate this distribution, I'm proposing to store information about which packages to install at those separate places;

  • The data architect in the ontology
  • The data producer which can give hints on data instances
  • The publisher at a .well-known location
  • The end-user's storage (localstorage, pod)

Other possible package distribution methods; (app) store, vendor injection, sysadmin/group-policy.

from mash.

rescribet avatar rescribet commented on September 23, 2024

Common development surface

It can be expected to be valuable to have a consistent interface while loading packages from vastly different sources. Since the kernel will not provide any default views or middlewares, an important aspect for distributed development is a common foundational library.

Some toolkit akin to gnome, QT, WPF, etc, to have a common development surface as per what type of components, topologies, and actions can be reliably expected to exist in a browser while not bloating the app with different versions/distributions of the same concept.

When all actions are IRI's, different systems can consume the same actions, allowing for evolution of underlying technology while keeping the API consistent.

from mash.

rescribet avatar rescribet commented on September 23, 2024

View loading options

Examples

Scientific publication

Architect

Who
CERN

What
The LHC generates a lot of data which is analysed by scientists around the globe. To increase cooperation and searchability across the publications from the teams of scientists, they have defined an ontology which the teams can use to describe their research on the LHC data.

View lookup
The CERN has also made views to look at those reports. They embedded links to their view packages for each class/property in the ontology they published.

Producer

Who
Team of scientists at a university

What
The team interprets data from the CERN and publish their findings using the ontology provided by the CERN. Their research described how they got additional insight into certain interactions by combining the interaction with additional data from a different set. They have built special views which contain logic for combining the datasets.

Why at this level
The scientists could define a small class for their combined data resources, but that would require them to have modelling knowledge, and distributors to ensure this information is present in partial distributions of the work as well.

View lookup
The scientists embedded links to their view packages on the data instances.

Publisher

Who
Elsevier

What
When publishing the article, Elsevier has added additional statements to the original publication (e.g. peer-reviews, licences, URI's, citations). As a publishing house they also want to provide convenience features their users in a recognizable way.

Why at this level
They re-use ontologies for adding this data so they cannot publish view recommendations there.
Their domain contains millions of data instances, so duplicating adding these would create considerable storage and maintenance overhead.

View lookup
The publication house has a list of their supported packages (some premium) under a /.well-known/ location on their domain.

Consumer

Who
Journalist

What
A journalist is working with a multitude of publications, comparing and annotating them.

Why at this level
The journalist has created these views for a specific article they have been working on, later sharing might be useful, but the project has to remain secret until the publication has been done.

View lookup
The settings from their pod storage, where the JS files also live.

from mash.

Related Issues (2)

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.