https://github.com/ontola/mash
Generic RDF data browser that can be connected to Solid pods
https://github.com/ontola/mash
browser hypermedia link-lib link-redux linked-data rdf react solid solid-app
Last synced: 15 days ago
JSON representation
Generic RDF data browser that can be connected to Solid pods
- Host: GitHub
- URL: https://github.com/ontola/mash
- Owner: ontola
- Created: 2019-08-05T15:34:25.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2020-04-04T22:00:35.000Z (about 6 years ago)
- Last Synced: 2025-08-08T20:36:59.979Z (11 months ago)
- Topics: browser, hypermedia, link-lib, link-redux, linked-data, rdf, react, solid, solid-app
- Language: TypeScript
- Homepage: https://ontola-mash.herokuapp.com
- Size: 2.96 MB
- Stars: 3
- Watchers: 2
- Forks: 1
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Mash browser
A browser for the linked data web.
Connect it to your SOLID pod, view dbpedia articles in the style of wikipedia, and install new applications.
This browser uses [link-redux](https://github.com/fletcher91/link-redux) to build its views, check it out for further details on the internals
of application development.
Why *Mash*? An alternative name for link was *mesh*, but for the initial demonstration as a tongue-in-cheek
wink to [mashlib](https://github.com/solid/mashlib#history-why-mashlib) I replaced the `e`. Depending
on how things work out, we will rename this project to be more distinguished from that library, but
hopefully what won't be necessary.
## Creating an installable package
Create an self-executing UMD package;
```JavaScript
// index.js
export default ((lrs) => {
lrs.registerModule({
iri: "https://example.com/application/MyClass",
middlewares: [
// If you have an interactive application
],
ontologyStatements: [
// If you want to say things about your ontology
],
version: 1,
views: [],
});
})(window.LRS);
```
#### IRI
The IRI (URL) of your package, generally the entry class, aka the one a user will bump into first.
Example; For a TODO application it would be the TODOList.
Currently this URL must resolve to a file which describes your package;
```turtle
@prefixes
<>
a rdfs:Class, ll:InstallableComponent;
schema:name "Demo TODO app";
ll:npmLabel "link-redux-todomvc";
ll:npmVersion "2.12.0".
```
#### Middlewares
Pass an array of link middlewares to be added on top of the current stack.
#### Ontology Statements
Here you can instruct link to take some ontological information into account when rendering your
views. It's generally good practice to subclass rdfs:Resource and optionally a more specific class
which fits your classes (eg schema:person and foaf:Person).
#### Views
Include all your link views in the bundle.
These shouldn't be the raw views, but the result of LinkRedux's `register` call.
A flat array of `RegistrableComponent` to be precise.