fix task #23 conection status. and merge into master
commit
3acb85b3ff
@ -0,0 +1,36 @@ |
||||
# Use rust's latest alpine image as base image. |
||||
FROM rust:alpine |
||||
|
||||
ENV LD_LIBRARY_PATH=/lib:$LD_LIBRARY_PATH |
||||
|
||||
RUN apk add git nodejs npm llvm-static llvm-dev clang-static clang-dev openssl openssl-dev perl gtk+3.0-dev webkit2gtk-dev librsvg-dev curl wget pkgconf eudev-dev build-base zlib-static bzip2-static build-base ncursers-static && \ |
||||
# Install Rust and Node.js tools |
||||
cargo install cargo-watch && \ |
||||
cargo install wasm-pack --git https://github.com/rustwasm/wasm-pack.git --rev c2b663f25abe50631a236d57a8c6d7fd806413b2 && \ |
||||
cargo install tauri-cli --version "2.0.0-alpha.11" --locked && \ |
||||
npm install -g pnpm |
||||
|
||||
# Clone the nextgraph-rs repository |
||||
RUN git clone https://git.nextgraph.org/NextGraph/nextgraph-rs.git && \ |
||||
cd /nextgraph-rs/ng-sdk-js && \ |
||||
wasm-pack build --target bundler && npm install --no-save pkg && |
||||
# Build ng-app web version |
||||
cd /nextgraph-rs/ng-app && pnpm install && pnpm webfilebuild |
||||
|
||||
# From here the build fails due to llvm / clang linking issues... |
||||
# |
||||
# WORKDIR /nextgraph-rs |
||||
## Build the nextgraph-rs project and its subprojects |
||||
# RUN cd /nextgraph-rs && git pull && cargo update -p ng-rocksdb && \ |
||||
# cargo build -r && \ |
||||
# cargo build -r -p ngd && \ |
||||
# cargo build -r -p ngcli |
||||
|
||||
# TODO: Build the platform-specific ng-app versions |
||||
# cd /nextgraph-rs/ng-app && cargo tauri build --target x86_64-unknown-linux-gnu |
||||
# ... |
||||
|
||||
# TODO: To remove the image size, remove ~/.cargo, ~/.rustup, and the build dependencies |
||||
|
||||
# To build the image, run: |
||||
# docker build -t nextgraph-rs:alpine -f docker/Dockerfile.alpine . |
@ -0,0 +1,46 @@ |
||||
# Use fedora:40 as base image |
||||
FROM fedora:40 |
||||
|
||||
# Set the environment variable to ensure cargo is available in the PATH |
||||
ENV PATH="/root/.cargo/bin:${PATH}" |
||||
SHELL ["/bin/bash", "-c"] |
||||
|
||||
# Install the required packages and Rust |
||||
|
||||
RUN dnf install -y git clang-devel webkit2gtk4.1-devel openssl openssl-devel curl wget file libappindicator-gtk3-devel librsvg2-devel perl && \ |
||||
dnf group install -y "C Development Tools and Libraries" && \ |
||||
# Rust |
||||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | bash -s -- -y && \ |
||||
# Node.js |
||||
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash && \ |
||||
export NVM_DIR="$HOME/.nvm" && [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" && \ |
||||
nvm install 22 && \ |
||||
npm install -g pnpm && \ |
||||
# Clear Cache |
||||
rm -rf /var/cache/dnf && \ |
||||
# Install Rust and Node.js tools |
||||
cargo install cargo-watch && \ |
||||
cargo install wasm-pack --git https://github.com/rustwasm/wasm-pack.git --rev c2b663f25abe50631a236d57a8c6d7fd806413b2 && \ |
||||
cargo install tauri-cli --version "2.0.0-alpha.11" --locked && \ |
||||
# Clone the nextgraph-rs repository (TODO: It might be better to put this into a seperate RUN command to avoid rebuilding the image if the repository changes) |
||||
git clone https://git.nextgraph.org/NextGraph/nextgraph-rs.git && \ |
||||
# Build sdk and ng-app web version |
||||
cd /nextgraph-rs/ng-sdk-js && wasm-pack build --target bundler && npm install --no-save pkg && \ |
||||
cd /nextgraph-rs/ng-app && pnpm install && pnpm webfilebuild |
||||
|
||||
# Build the nextgraph-rs project |
||||
RUN export NVM_DIR="$HOME/.nvm" && [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" && \ |
||||
cd /nextgraph-rs && git pull && cargo update -p ng-rocksdb && \ |
||||
cargo build -r && \ |
||||
cargo build -r -p ngd && \ |
||||
cargo build -r -p ngcli |
||||
|
||||
|
||||
# TODO: Build the platform-specific ng-app versions |
||||
# cd /nextgraph-rs/ng-app && cargo tauri build --target x86_64-unknown-linux-gnu |
||||
# ... |
||||
|
||||
# TODO: To remove the image size, remove ~/.cargo, ~/.rustup, and the build dependencies |
||||
|
||||
# To build the image, run: |
||||
# docker build -t nextgraph-rs:fedora -f docker/Dockerfile.fedora . |
@ -0,0 +1,47 @@ |
||||
# Use ubuntu 22.04 as base image |
||||
FROM ubuntu:22.04 |
||||
|
||||
SHELL ["/bin/bash", "-c"] |
||||
|
||||
# Set the environment variable to ensure cargo is available in the PATH |
||||
ENV PATH="/root/.cargo/bin:${PATH}" |
||||
|
||||
# Install the required packages and Rust |
||||
RUN apt update && \ |
||||
apt upgrade -y && \ |
||||
apt install -y git llvm-dev libclang-dev clang libssl-dev perl libappindicator3-dev libwebkit2gtk-4.0-dev librsvg2-dev curl wget pkg-config libudev-dev build-essential && \ |
||||
rm -rf /var/cache/apt && \ |
||||
# Rust |
||||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y && \ |
||||
# Node.js |
||||
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash && \ |
||||
export NVM_DIR="$HOME/.nvm" && [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" && \ |
||||
nvm install 22 && \ |
||||
npm install -g pnpm && \ |
||||
# Install Rust and Node.js tools |
||||
cargo install cargo-watch && \ |
||||
cargo install wasm-pack --git https://github.com/rustwasm/wasm-pack.git --rev c2b663f25abe50631a236d57a8c6d7fd806413b2 && \ |
||||
cargo install tauri-cli --version "2.0.0-alpha.11" --locked && \ |
||||
npm install -g pnpm && \ |
||||
# Clone the nextgraph-rs repository (TODO: It might be better to put this into a seperate RUN command to avoid rebuilding the image if the repository changes) |
||||
git clone https://git.nextgraph.org/NextGraph/nextgraph-rs.git && \ |
||||
# Build sdk and ng-app web version |
||||
cd /nextgraph-rs/ng-sdk-js && wasm-pack build --target bundler && npm install --no-save pkg && \ |
||||
cd /nextgraph-rs/ng-app && \ |
||||
pnpm install && pnpm webfilebuild |
||||
|
||||
# Build the nextgraph-rs project and its subprojects |
||||
WORKDIR /nextgraph-rs |
||||
RUN cargo build -r && \ |
||||
cargo build -r -p ngd && \ |
||||
cargo build -r -p ngcli |
||||
|
||||
|
||||
# TODO: Build the platform-specific ng-app versions |
||||
# WORKDIR /nextgraph-rs/ng-app |
||||
# RUN cargo tauri build --target x86_64-unknown-linux-gnu |
||||
|
||||
# TODO: To remove the image size, remove ~/.cargo, ~/.rustup, and the build dependencies |
||||
|
||||
# To build the image, run: |
||||
# docker build -t nextgraph-rs:ubuntu -f docker/Dockerfile.ubuntu . |
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 2.8 KiB |
@ -0,0 +1,873 @@ |
||||
// Copyright (c) 2022-2024 Niko Bonnieure, Par le Peuple, NextGraph.org developers
|
||||
// All rights reserved.
|
||||
// Licensed under the Apache License, Version 2.0
|
||||
// <LICENSE-APACHE2 or http://www.apache.org/licenses/LICENSE-2.0>
|
||||
// or the MIT license <LICENSE-MIT or http://opensource.org/licenses/MIT>,
|
||||
// at your option. All files in the project carrying such
|
||||
// notice may not be copied, modified, or distributed except
|
||||
// according to those terms.
|
||||
|
||||
// "post/rich", "post/md", "post/text", "post/html", "post/asciidoc", "page", "code", "code/*", "app", "app/z", "class", "schema", "schema/owl|rdfs|shacl|shex", "service", "service/rust", "service/deno", "contract", "app/n:xxx.xx.xx:", "app/o:",
|
||||
// "query/sparql", "query/graphql", "query/text", "query/web",
|
||||
// "data/graph", "data/json", "data/array", "data/map", "data/xml", "data/table", "data/collection", "data/board", "data/grid", "data/geomap",
|
||||
// "e/email", "e/web", "e/http://[url of class in ontology]", "e/rdf" (read-only cache of RDF fetched from web2.0)
|
||||
// "mc/text", "mc/link", "mc/card", "mc/pad",
|
||||
// "doc/diagram","doc/chart", "doc/pdf", "doc/odf", "doc/latex", "doc/ps", "doc/music", "doc/maths", "doc/chemistry", "doc/braille", "doc/ancientscript",
|
||||
// "media/image", "media/reel", "media/album", "media/video", "media/audio", "media/song", "media/subtitle", "media/overlay",
|
||||
// "social/channel", "social/stream", "social/contact", "social/event", "social/calendar", "social/scheduler", "social/reaction"
|
||||
// "prod/task", "prod/project", "prod/issue", "prod/form", "prod/filling", "prod/cad", "prod/slides", "prod/question", "prod/answer", "prod/poll", "prod/vote"
|
||||
// "file", "file/iana/*", "file/gimp", "file/inkscape", "file/kdenlive", "file/blender", "file/openscad", "file/lyx", "file/scribus", "file/libreoffice",
|
||||
|
||||
|
||||
// application/vnd.api+json
|
||||
|
||||
// application/activity+json
|
||||
|
||||
// epub, dejavu,
|
||||
// animation: snap, lottie, smil editor: https://github.com/HaikuTeam/animator/
|
||||
|
||||
export const official_classes = { |
||||
"post/rich": { |
||||
"ng:crdt": "YXml", |
||||
"ng:n": "Post - Rich Text", // editor: y-ProseMirror, viewer: https://www.npmjs.com/package/prosemirror-to-html-js or https://prosemirror.net/docs/ref/version/0.4.0.html#toDOM https://prosemirror.net/docs/ref/version/0.4.0.html#toHTML
|
||||
"ng:a": "A Post with Rich Text, including images, links, formatted text, and embeds of other content", |
||||
"ng:o": "n:g:z:post:rich", |
||||
"ng:w": "n:g:z:post_rich_editor", |
||||
"ng:x": { |
||||
"as":true, |
||||
}, |
||||
"ng:compat": ["as:Article"], |
||||
}, |
||||
"post/md": { |
||||
"ng:crdt": "YXml", |
||||
"ng:n": "Post - MarkDown", // editor y-MilkDown, viewer: https://github.com/wooorm/markdown-rs
|
||||
"ng:a": "A Post with MarkDown, including images, links, formatted text, and embeds of other content", |
||||
"ng:o": "n:g:z:post:md", |
||||
"ng:w": "n:g:z:post_md_editor", |
||||
"ng:x": { |
||||
"as":true, |
||||
}, |
||||
"ng:compat": ["file/iana/text/markdown", "code/markdown","as:Article"], |
||||
}, |
||||
"post/text": { |
||||
"ng:crdt": "YText", |
||||
"ng:n": "Post - Plain Text", |
||||
"ng:a": "A Post with Plain Text", |
||||
"ng:o": "n:g:z:post:text", |
||||
"ng:w": "n:g:z:code_editor", |
||||
"ng:x": { |
||||
"as":true, |
||||
}, |
||||
"ng:compat": ["file/iana/text/plain", "code/plaintext","as:Article"], |
||||
}, |
||||
"post/html": { |
||||
"ng:crdt": "YXml", |
||||
"ng:n": "Post - TinyMCE", |
||||
"ng:x": { |
||||
"as":true, |
||||
}, |
||||
"ng:a": "A Post based on TinyMCE, including images, links, formatted text, and embeds of other content", |
||||
"ng:compat": ["as:Article"], |
||||
}, |
||||
"post/asciidoc": { // display with https://github.com/asciidoctor/asciidoctor.js/
|
||||
"ng:crdt": "YText", |
||||
"ng:n": "Post - AsciiDoc", |
||||
"ng:a": "A Post based on AsciiDoc format", |
||||
"ng:x": { |
||||
"as":true, |
||||
}, |
||||
"ng:compat": ["as:Article"], |
||||
}, |
||||
"page": { |
||||
"ng:crdt": "YXml", |
||||
"ng:n": "Page", // based on GrapeJS, VvvebJs, or Astro ?
|
||||
"ng:a": "A Page and Site builder", |
||||
"ng:compat": [], |
||||
}, |
||||
"code": { |
||||
"ng:crdt": "YText", |
||||
"ng:n": "Source Code", // edited with CodeMirror, displayed with highlight.js
|
||||
"ng:a": "A Source Code file. many languages supported", |
||||
"ng:o": "n:g:z:pre", |
||||
"ng:w": "n:g:z:code_editor", |
||||
"ng:compat": ["code/*","file/iana/text/javascript","file/iana/text/css","file/iana/text/html","file/iana/text/markdown", "file/iana/application/xml", "file/iana/application/yaml", "file/iana/text/xml", "file/iana/application/xhtml+xml"], |
||||
}, |
||||
"app": { |
||||
"ng:n": "Official App", |
||||
"ng:a": "App provided by NextGraph platform", |
||||
}, |
||||
"app/z": { |
||||
"ng:crdt": "Elmer", |
||||
"ng:n": "Application", // Editor: Monaco
|
||||
"ng:a": "Create an Application based on NextGraph Framework", |
||||
"ng:o": "n:g:z:app_store", |
||||
"ng:w": "n:g:z:app_editor", |
||||
"ng:include": ["schema/*","service/*","code","file"], |
||||
"ng:compat": ["code/svelte"], |
||||
}, |
||||
"class": { |
||||
"ng:crdt": "Graph", |
||||
"ng:n": "Class",
|
||||
"ng:a": "Define a custom Class for your data", |
||||
"ng:x": { |
||||
"rdfs":true, |
||||
}, |
||||
"ng:compat": ["rdfs:Class"], |
||||
}, |
||||
"schema/rdfs": { |
||||
"ng:crdt": "Graph", |
||||
"ng:n": "Schema - RDFS",
|
||||
"ng:a": "Define the Schema, Ontology or Vocabulary for your data and the relations between them, with RDFS", |
||||
"ng:o": "n:g:z:json_ld_editor", // default viewer
|
||||
"ng:w": "n:g:z:ontology_editor", // default editor
|
||||
"ng:x": { |
||||
"rdfs":true, |
||||
}, |
||||
"ng:include": ["data/graph"], |
||||
"ng:compat": ["rdfs:*","class"], |
||||
}, |
||||
"schema/owl": { // display with https://github.com/VisualDataWeb/WebVOWL
|
||||
"ng:crdt": "Graph", |
||||
"ng:n": "Schema - OWL",
|
||||
"ng:a": "Define the Schema, Ontology or Vocabulary for your data and the relations between them, with OWL", |
||||
"ng:o": "n:g:z:owl_viewer", // default viewer
|
||||
"ng:w": "n:g:z:ontology_editor", // default editor
|
||||
"ng:x": { |
||||
"owl":true, |
||||
}, |
||||
"ng:include": ["data/graph"], |
||||
"ng:compat": ["owl:Ontology"], |
||||
}, |
||||
"schema/shacl": { |
||||
"ng:crdt": "Graph", |
||||
"ng:n": "Schema - SHACL",
|
||||
"ng:a": "Define the Schema, Ontology or Vocabulary for your data and the relations between them, with SHACL", |
||||
"ng:o": "n:g:z:json_ld_editor", // default viewer
|
||||
"ng:w": "n:g:z:ontology_editor", // default editor
|
||||
"ng:x": { |
||||
"sh":true, |
||||
}, |
||||
"ng:include": ["data/graph"], |
||||
"ng:compat": ["sh:Shape", "file/iana/text/shaclc" ], |
||||
}, |
||||
"schema/shex": { |
||||
"ng:crdt": "Graph", |
||||
"ng:n": "Schema - SHEX",
|
||||
"ng:a": "Define the Schema, Ontology or Vocabulary for your data and the relations between them, with SHEX", |
||||
"ng:o": "n:g:z:json_ld_editor", // default viewer
|
||||
"ng:w": "n:g:z:ontology_editor", // default editor
|
||||
"ng:x": { |
||||
"shex":true, |
||||
}, |
||||
"ng:include": ["data/graph"], |
||||
"ng:compat": ["shex:*", "file/iana/text/shex", "code/shexc" ], |
||||
}, |
||||
"service": { |
||||
"ng:n": "Internal Service", |
||||
"ng:a": "Service provided by NextGraph framework", |
||||
"ng:o": "n:g:z:service_invoke", // default viewer
|
||||
}, |
||||
"service/rust": { |
||||
"ng:crdt": "YText", |
||||
"ng:n": "Service - Rust", // edited with CodeMirror, displayed with highlight.js
|
||||
"ng:a": "Service written in Rust and compiled to WASM", |
||||
"ng:o": "external_service_invoke", // default viewer
|
||||
"ng:w": "n:g:z:service_editor", // default editor
|
||||
"ng:compat": ["code/rust", "file/iana/application/wasm"], |
||||
}, |
||||
"service/deno": { |
||||
"ng:crdt": "YText", |
||||
"ng:n": "Service - Deno/JS", // edited with CodeMirror, displayed with highlight.js
|
||||
"ng:a": "Service written in JS/TS for Deno or NodeJS", |
||||
"ng:o": "external_service_invoke", // default viewer
|
||||
"ng:w": "n:g:z:service_editor", // default editor
|
||||
"ng:compat": ["code/javascript", "code/typescript", "file/iana/text/javascript", "file/iana/application/node"], |
||||
}, |
||||
"contract": { |
||||
"ng:crdt": "YText", |
||||
"ng:n": "Contract", // edited with CodeMirror, displayed with highlight.js
|
||||
"ng:a": "Smart Contract with Rust or JS code", |
||||
"ng:compat": ["code/rust", "file/iana/application/wasm", "code/javascript", "code/typescript", "file/iana/text/javascript", "file/iana/application/node"], |
||||
}, |
||||
"query/sparql": {
|
||||
"ng:crdt": "YText",// uses ng:default_graph and ng:named_graph predicates
|
||||
"ng:n": "SPARQL Query", // edited with YASGUI or Sparnatural, displayed with highlight.js https://github.com/highlightjs/highlightjs-turtle/tree/master
|
||||
"ng:a": "Saved SPARQL Query that can be invoked", |
||||
"ng:o": "n:g:z:sparql:invoke",
|
||||
"ng:w": "n:g:z:sparql_query:yasgui", |
||||
"ng:compat": ["code/sparql", "file/iana/application/sparql-query"], |
||||
}, |
||||
"query/sparql_update": {
|
||||
"ng:crdt": "YText",// uses ng:default_graph and ng:named_graph predicates
|
||||
"ng:n": "SPARQL Update", // edited with YASGUI, displayed with highlight.js https://github.com/highlightjs/highlightjs-turtle/tree/master
|
||||
"ng:a": "Saved SPARQL Update that can be invoked", |
||||
"ng:o": "n:g:z:sparql:invoke",
|
||||
"ng:w": "n:g:z:sparql_update:yasgui", |
||||
"ng:compat": ["code/sparql", "file/iana/application/sparql-update"], |
||||
}, |
||||
"query/graphql": { |
||||
"ng:crdt": "YText", // uses ng:default_graph predicate
|
||||
"ng:n": "GraphQL Query", // edited with https://github.com/graphql/graphiql or https://github.com/graphql-editor/graphql-editor, displayed with highlight.js
|
||||
"ng:a": "Saved GraphQL Query that can be invoked", |
||||
"ng:o": "n:g:z:graphql:invoke",
|
||||
"ng:w": "n:g:z:graphql_query", |
||||
"ng:compat": ["code/graphql", "file/iana/application/graphql+json"], |
||||
},
|
||||
"query/text": { |
||||
"ng:crdt": "Graph", |
||||
"ng:n": "Text Search",
|
||||
"ng:a": "Saved Text Search and its results", |
||||
"ng:compat": [], |
||||
}, |
||||
"query/web": { |
||||
"ng:crdt": "Graph", |
||||
"ng:n": "Web Search",
|
||||
"ng:a": "Saved Web Search and its results", |
||||
"ng:compat": [], |
||||
}, |
||||
"data/graph": { |
||||
"ng:crdt": "Graph", // https://github.com/highlightjs/highlightjs-turtle/tree/master
|
||||
"ng:n": "Graph",
|
||||
"ng:a": "Define the Graph of your data with Semantic Web / Linked Data", |
||||
"ng:o": "n:g:z:json_ld_editor", // default viewer
|
||||
"ng:w": "n:g:z:json_ld_editor", // default editor
|
||||
"ng:x": { |
||||
"rdf":true, |
||||
"xsd":true, |
||||
}, |
||||
"ng:compat": [ "rdf:*", "xsd:*", "file/iana/text/n3", "file/iana/text/rdf+n3", "file/iana/text/turtle", "file/iana/application/n-quads", "file/iana/application/trig", "file/iana/application/n-triples", "file/iana/application/rdf+xml", "file/iana/application/ld+json"], |
||||
}, |
||||
"data/json": { |
||||
"ng:crdt": "Automerge", |
||||
"ng:n": "JSON",
|
||||
"ng:a": "JSON Data CRDT", |
||||
"ng:o": "n:g:z:json_editor", // default viewer
|
||||
"ng:w": "n:g:z:json_editor", // default editor
|
||||
"ng:compat": ["file/iana/application/json", "code:json"], |
||||
}, |
||||
"data/array": { |
||||
"ng:crdt": "YArray", |
||||
"ng:n": "JSON Array",
|
||||
"ng:a": "JSON Array CRDT", |
||||
"ng:o": "n:g:z:json_editor", // default viewer
|
||||
"ng:w": "n:g:z:json_editor", // default editor
|
||||
"ng:compat": ["file/iana/application/json", "code:json"], |
||||
}, |
||||
"data/map": { |
||||
"ng:crdt": "YMap", |
||||
"ng:n": "JSON Map",
|
||||
"ng:a": "JSON Map CRDT", |
||||
"ng:o": "n:g:z:json_editor", // default viewer
|
||||
"ng:w": "n:g:z:json_editor", // default editor
|
||||
"ng:compat": ["file/iana/application/json", "code:json"], |
||||
}, |
||||
"data/xml": { |
||||
"ng:crdt": "YXml", |
||||
"ng:n": "XML",
|
||||
"ng:a": "XML Data CRDT", |
||||
"ng:compat": ["file/iana/text/xml","file/iana/application/xml", "code:xml"], |
||||
}, |
||||
"data/table": { |
||||
"ng:crdt": "Automerge", // see https://github.com/frappe/datatable
|
||||
"ng:n": "Table", // see https://specs.frictionlessdata.io/table-schema displayed with pivot table see https://activetable.io/docs/data https://www.npmjs.com/package/pivottable https://socket.dev/npm/package/svelte-pivottable/alerts/0.2.0?tab=dependencies
|
||||
"ng:a": "Data in a Table (columns and rows)", |
||||
"ng:o": "n:g:z:pivot", |
||||
"ng:compat": ["file/iana/application/sparql-results+json","file/iana/application/sparql-results+xml","file/iana/text/csv"], |
||||
}, |
||||
"data/collection": { |
||||
"ng:crdt": "Graph", |
||||
"ng:n": "Collection", |
||||
"ng:a": "An ordered list of items", |
||||
"ng:o": "n:g:z:list", |
||||
"ng:x": { |
||||
"as": true, |
||||
"rdf": true, |
||||
}, |
||||
"ng:compat": ["as:Collection","rdf:List","rdf:Seq"], |
||||
}, |
||||
"data/container": { |
||||
"ng:crdt": "Graph", |
||||
"ng:n": "Container", |
||||
"ng:a": "An unordered list of items", |
||||
"ng:o": "n:g:z:list", |
||||
"ng:x": { |
||||
"rdf": true, |
||||
"rdfs": true, |
||||
"ldp": true, |
||||
}, |
||||
"ng:compat": ["rdfs:member","ldp:contains","rdf:Bag","rdf:Alt"], |
||||
}, |
||||
"data/board": { |
||||
"ng:crdt": "Graph", |
||||
"ng:n": "Board", |
||||
"ng:a": "Whiteboard, infinite canvas to arrange your content in 2D", |
||||
"ng:o": "n:g:z:board", |
||||
"ng:include": [], |
||||
"ng:compat": [], //https://jsoncanvas.org/ https://www.canvasprotocol.org/ https://github.com/orgs/ocwg/discussions/25 https://infinitecanvas.tools/gallery/
|
||||
}, |
||||
"data/grid": { |
||||
"ng:crdt": "Graph", |
||||
"ng:n": "Grid", |
||||
"ng:a": "Grid representation of a collection or container", |
||||
"ng:o": "n:g:z:grid", |
||||
"ng:include": ["data/container","data/collection","data/table","media/album"], |
||||
"ng:compat": [], |
||||
}, |
||||
"data/geomap": { // https://github.com/leaflet/leaflet
|
||||
"ng:crdt": "Graph", |
||||
"ng:n": "Geo Map", |
||||
"ng:a": "Geographical Map", |
||||
"ng:x": { |
||||
"wgs": true, |
||||
"gn": true, |
||||
"as": true, |
||||
}, |
||||
"ng:compat": ["as:Place","wgs:*","gn:*", "file/iana/application/geo+json", "file/iana/application/vnd.mapbox-vector-tile"], // see also https://github.com/topojson/topojson
|
||||
}, |
||||
"e/email": { |
||||
"ng:crdt": "Graph", |
||||
"ng:n": "Email", |
||||
"ng:a": "Email content and headers", |
||||
"ng:x": { |
||||
"email": "http://www.invincea.com/ontologies/icas/1.0/email#" //https://raw.githubusercontent.com/twosixlabs/icas-ontology/master/ontology/email.ttl
|
||||
}, |
||||
"ng:compat": ["file/iana/message/rfc822","file/iana/multipart/related"], |
||||
}, |
||||
"e/web": { |
||||
"ng:crdt": "Graph", |
||||
//https://www.npmjs.com/package/warcio https://github.com/N0taN3rd/node-warc
|
||||
"ng:n": "Web Archive", |
||||
"ng:a": "Archive the content of a web page", |
||||
"ng:compat": ["file/iana/application/warc","file/iana/multipart/related"], |
||||
},
|
||||
"e/rdf": { |
||||
"ng:crdt": "Graph", |
||||
"ng:n": "RDF Archive", |
||||
"ng:a": "Archive the triples of an RDF resource dereferenced with HTTP", |
||||
"ng:include": ["data/graph"], |
||||
}, |
||||
"mc/text": { |
||||
"ng:crdt": "Graph", |
||||
"ng:n": "Text Selection", |
||||
"ng:a": "Text Selection copied into Magic Carpet", |
||||
},
|
||||
"mc/link": { |
||||
"ng:crdt": "Graph", |
||||
"ng:n": "Link", |
||||
"ng:a": "Link to a document kept in Magic Carpet", |
||||
}, |
||||
"plato/card": { |
||||
"ng:crdt": "Graph", |
||||
"ng:n": "Card", |
||||
"ng:a": "Card representation of a document", |
||||
"ng:o": "n:g:z:card", |
||||
}, |
||||
"plato/pad": { |
||||
"ng:crdt": "Graph", |
||||
"ng:n": "Pad", |
||||
"ng:a": "Pad representation of a document", |
||||
"ng:o": "n:g:z:pad", |
||||
}, |
||||
"doc/diagram/mermaid" : { |
||||
"ng:crdt": "YText", |
||||
"ng:n": "Diagram - Mermaid", |
||||
"ng:a": "Describe Diagrams with Mermaid", |
||||
"ng:compat": ["file/iana/application/vnd.mermaid"] |
||||
}, |
||||
"doc/diagram/drawio" : { |
||||
"ng:crdt": "YXml", |
||||
"ng:n": "Diagram - DrawIo", |
||||
"ng:a": "Draw Diagrams with DrawIo", |
||||
"ng:compat": ["file/iana/application/vnd.jgraph.mxfile","file/iana/application/x-drawio"] |
||||
}, |
||||
"doc/diagram/graphviz" : { |
||||
"ng:crdt": "YText", |
||||
"ng:n": "Diagram - Graphviz", |
||||
"ng:a": "Describe Diagrams with Graphviz", |
||||
"ng:compat": ["file/iana/text/vnd.graphviz"] |
||||
}, |
||||
"doc/diagram/excalidraw" : { |
||||
"ng:crdt": "Automerge", |
||||
"ng:n": "Diagram - Excalidraw", |
||||
"ng:a": "Collaborate on Diagrams with Excalidraw", |
||||
"ng:compat": ["file/iana/application/vnd.excalidraw+json"] |
||||
}, |
||||
"doc/diagram/gantt" : { //https://github.com/frappe/gantt
|
||||
"ng:crdt": "Automerge", |
||||
"ng:n": "Diagram - Gantt", |
||||
"ng:a": "Interactive gantt chart", |
||||
"ng:compat": [] |
||||
}, |
||||
"doc/diagram/flowchart" : { //https://github.com/adrai/flowchart.js
|
||||
"ng:crdt": "YText", |
||||
"ng:n": "Diagram - Flowchart", |
||||
"ng:a": "flow chart diagrams", |
||||
"ng:compat": [] |
||||
}, |
||||
"doc/diagram/sequence" : { //https://github.com/bramp/js-sequence-diagrams
|
||||
"ng:crdt": "YText", |
||||
"ng:n": "Diagram - Sequence", |
||||
"ng:a": "sequence diagrams", |
||||
"ng:compat": [] |
||||
}, |
||||
// checkout https://www.mindmaps.app/ but it is AGPL
|
||||
"doc/diagram/markmap" : { //https://github.com/markmap/markmap
|
||||
"ng:crdt": "YText", |
||||
"ng:n": "Diagram - Markmap", |
||||
"ng:a": "mindmaps with markmap", |
||||
"ng:compat": [] |
||||
}, |
||||
"doc/diagram/mymind" : { //https://github.com/markmap/markmap
|
||||
"ng:crdt": "YText", // see MyMind format, MindMup JSON, FreeMind XML and MindMap Architect XML
|
||||
"ng:n": "Diagram - Mymind", |
||||
"ng:a": "mindmaps with mymind", |
||||
"ng:compat": [] // https://github.com/ondras/my-mind/wiki/Saving-and-loading#file-formats
|
||||
}, |
||||
"doc/diagram/jsmind" : { //https://github.com/hizzgdev/jsmind
|
||||
"ng:crdt": "Automerge", |
||||
"ng:n": "Diagram - jsmind", |
||||
"ng:a": "mindmaps with jsmind", |
||||
"ng:compat": [] // https://hizzgdev.github.io/jsmind/docs/en/1.usage.html
|
||||
}, |
||||
// DC and C3 have Crossfilter https://github.com/dc-js/dc.js http://crossfilter.github.io/crossfilter/ https://github.com/c3js/c3 http://dc-js.github.io/dc.js/
|
||||
// take inspiration from https://github.com/metabase/metabase
|
||||
// have a look at https://github.com/observablehq
|
||||
// another open source dashboard with many data sources https://github.com/getredash/redash
|
||||
// and another one https://github.com/apache/superset
|
||||
// https://github.com/Rich-Harris/pancake
|
||||
// https://github.com/williamngan/pts
|
||||
// https://visjs.org/
|
||||
"doc/viz/cytoscape" : { |
||||
"ng:crdt": "Automerge", |
||||
"ng:n": "Viz - Cytoscape", |
||||
"ng:a": "Graph theory (network) visualization", |
||||
"ng:compat": [] // https://github.com/cytoscape/cytoscape.js
|
||||
}, |
||||
"doc/viz/vega" : { |
||||
"ng:crdt": "Automerge", |
||||
"ng:n": "Viz - Vega", |
||||
"ng:a": "Grammar for interactive graphics", |
||||
"ng:compat": [] // https://vega.github.io/vega-lite/docs/ https://github.com/vega/editor
|
||||
}, |
||||
"doc/viz/vizzu" : { |
||||
"ng:crdt": "Automerge", |
||||
"ng:n": "Viz - Vizzu", |
||||
"ng:a": "Animated data visualizations and data stories", |
||||
"ng:compat": [] // https://github.com/vizzuhq/vizzu-lib
|
||||
}, |
||||
"doc/viz/plotly" : { //https://github.com/plotly/plotly.js
|
||||
"ng:crdt": "Automerge", |
||||
"ng:n": "Viz - Plotly", |
||||
"ng:a": "Declarative charts", |
||||
"ng:compat": [] // https://github.com/cytoscape/cytoscape.js
|
||||
}, |
||||
"doc/viz/avail" : {
|
||||
"ng:crdt": "Automerge", |
||||
"ng:n": "Viz - Avail", |
||||
"ng:a": "Time Data Availability Visualization", |
||||
"ng:compat": [] // https://github.com/flrs/visavail
|
||||
}, |
||||
"doc/chart/frappecharts" : { |
||||
"ng:crdt": "Automerge", |
||||
"ng:n": "Charts - Frappe", |
||||
"ng:a": "GitHub-inspired responsive charts", |
||||
"ng:compat": [] // https://github.com/frappe/charts
|
||||
}, |
||||
"doc/chart/financial" : { |
||||
"ng:crdt": "Automerge", |
||||
"ng:n": "Charts - Financial", |
||||
"ng:a": "Financial charts", |
||||
"ng:compat": [] //https://github.com/tradingview/lightweight-charts
|
||||
}, |
||||
// have a look at https://github.com/cube-js/cube and https://awesome.cube.dev/ and https://frappe.io/products
|
||||
"doc/chart/apexcharts" : { |
||||
"ng:crdt": "Automerge", |
||||
"ng:n": "Charts - ApexCharts", |
||||
"ng:a": "Interactive data visualizations", |
||||
"ng:compat": [] // https://github.com/apexcharts/apexcharts.js
|
||||
}, |
||||
//realtime data with https://github.com/square/cubism
|
||||
"doc/chart/billboard" : { |
||||
"ng:crdt": "Automerge", |
||||
"ng:n": "Charts - BillBoard", |
||||
"ng:a": "Interactive data visualizations based on D3", |
||||
"ng:compat": [] // https://github.com/naver/billboard.js
|
||||
}, |
||||
"doc/chart/echarts" : { |
||||
"ng:crdt": "Automerge", |
||||
"ng:n": "Charts - ECharts", |
||||
"ng:a": "Interactive charting and data visualization with Apache ECharts", |
||||
"ng:compat": [] // https://github.com/apache/echarts
|
||||
}, |
||||
"doc/chart/chartjs" : { |
||||
"ng:crdt": "Automerge", |
||||
"ng:n": "Charts - Chart.js", |
||||
"ng:a": "Simple yet flexible charting for designers & developers with Chart.js", |
||||
"ng:compat": [] // https://github.com/chartjs/Chart.js
|
||||
}, |
||||
// see if to provide plain D3, and also all the https://github.com/antvis libraries: G2, G6, L7, S2, X6. Have a look at AVA
|
||||
"doc/pdf": { |
||||
"ng:crdt": "Graph", |
||||
"ng:n": "PDF", |
||||
"ng:a": "upload and display a PDF file", |
||||
"ng:compat": ["file/iana/application/pdf"] // https://github.com/mozilla/pdf.js https://viewerjs.org/
|
||||
}, |
||||
"doc/odf": { //!!! becareful: AGPL
|
||||
"ng:crdt": "Graph", |
||||
"ng:n": "OpenDocumentFormat (ODF)", |
||||
"ng:a": "upload and display an ODF file", |
||||
"ng:compat": ["file/iana/application/vnd.oasis.opendocument*"] // https://webodf.org/ https://github.com/webodf/WebODF https://viewerjs.org/
|
||||
}, |
||||
// see also https://github.com/Mathpix/mathpix-markdown-it
|
||||
"doc/latex": { |
||||
"ng:crdt": "Graph", |
||||
"ng:n": "Latex", |
||||
"ng:a": "upload and display a Latex or Tex file", |
||||
"ng:compat": ["file/iana/application/x-tex","file/iana/text/x-tex"] // https://github.com/michael-brade/LaTeX.js https://github.com/mathjax/MathJax
|
||||
}, |
||||
"doc/ps": { //!!! becareful: AGPL https://github.com/ochachacha/ps-wasm
|
||||
"ng:crdt": "Graph", |
||||
"ng:n": "Postscript", |
||||
"ng:a": "upload and display a PostScript file", |
||||
"ng:compat": ["file/iana/application/postscript"] // https://www.npmjs.com/package/ghostscript4js
|
||||
}, |
||||
"doc/music/abc": { //https://github.com/paulrosen/abcjs
|
||||
"ng:crdt": "YText", |
||||
"ng:n": "Music ABC", |
||||
"ng:a": "sheet music notation", |
||||
"ng:compat": [] |
||||
}, |
||||
"doc/music/guitar": { //https://github.com/birdca/fretboard
|
||||
"ng:crdt": "YText", |
||||
"ng:n": "Music - Guitar", |
||||
"ng:a": "charts for guitar chords and scales", |
||||
"ng:compat": [] |
||||
}, |
||||
"doc/maths": { //https://github.com/KaTeX/KaTeX
|
||||
"ng:crdt": "YText", |
||||
"ng:n": "Maths", |
||||
"ng:a": "TeX math rendering", |
||||
"ng:compat": ["file/iana/application/x-tex","file/iana/text/x-tex"] |
||||
}, |
||||
"doc/chemistry": { //GPL!! https://github.com/aeris-data/ChemDoodle/tree/master/ChemDoodleWeb-8.0.0 or https://github.com/aseevia/smiles-3d-vue
|
||||
"ng:crdt": "YText", |
||||
"ng:n": "Chemical", |
||||
"ng:a": "simplified molecular-input line-entry system (SMILES)", |
||||
"ng:compat": ["file/iana/chemical/x-daylight-smiles"] // https://en.wikipedia.org/wiki/SYBYL_line_notation and http://fileformats.archiveteam.org/wiki/Chemical_data
|
||||
}, |
||||
"doc/ancientscript": { //https://dn-works.com/ufas/
|
||||
"ng:crdt": "YText", // use Unicode and special fonts
|
||||
"ng:n": "Ancient Script", |
||||
"ng:a": "Ancient Script", |
||||
"ng:compat": []
|
||||
}, |
||||
"doc/braille": { //https://en.wikipedia.org/wiki/Braille_Patterns
|
||||
"ng:crdt": "YText", // use Unicode and special fonts
|
||||
"ng:n": "Braille Patterns", |
||||
"ng:a": "Braille Patterns", |
||||
"ng:compat": []
|
||||
}, |
||||
"media/image": { |
||||
"ng:crdt": "Graph", |
||||
"ng:n": "Image", |
||||
"ng:a": "upload and display an image", |
||||
"ng:o": "n:g:z:media", |
||||
"ng:x": { |
||||
"as":true, |
||||
}, |
||||
"ng:compat": ["file/iana/image*","as:Image"] |
||||
}, |
||||
"media/reel": { |
||||
"ng:crdt": "Graph", |
||||
"ng:n": "Reel", |
||||
"ng:a": "upload and display a Reel (video from mobile)", |
||||
"ng:o": "n:g:z:media", |
||||
"ng:compat": ["file/iana/video*"] |
||||
}, |
||||
"media/video": { |
||||
"ng:crdt": "Graph", |
||||
"ng:n": "Video", |
||||
"ng:a": "upload and display a Video (and film)", |
||||
"ng:o": "n:g:z:media", |
||||
"ng:x": { |
||||
"as":true, |
||||
}, |
||||
"ng:compat": ["file/iana/video*","as:Video"] |
||||
}, |
||||
"media/album": { |
||||
"ng:crdt": "Graph", |
||||
"ng:n": "Album", |
||||
"ng:a": "Assemble several images and/or videos into an ordered Album", |
||||
"ng:o": "n:g:z:gallery", |
||||
"ng:include": ["data/collection"], |
||||
"ng:compat": [] |
||||
}, |
||||
"media/audio": { |
||||
"ng:crdt": "Graph", |
||||
"ng:n": "Audio", |
||||
"ng:a": "upload and play an Audio file, Audio note or Voice message", |
||||
"ng:o": "n:g:z:media", |
||||
"ng:x": { |
||||
"as":true, |
||||
}, |
||||
"ng:compat": ["file/iana/audio*","as:Audio"] |
||||
}, |
||||
"media/song": { |
||||
"ng:crdt": "Graph", |
||||
"ng:n": "Song", |
||||
"ng:a": "A song from an artist,album and/or lyrics", |
||||
"ng:o": "n:g:z:media", |
||||
"ng:x": { |
||||
"music": "http://purl.org/ontology/mo/", |
||||
}, |
||||
"ng:compat": ["music:MusicalWork","music:MusicArtist", "music:Lyrics"]
|
||||
// see also https://polifonia-project.eu/wp-content/uploads/2022/01/Polifonia_D2.1_V1.0.pdf
|
||||
// Music ontology http://musicontology.com/docs/faq.html with data based on existing databases https://musicbrainz.org/doc/MusicBrainz_Database/Schema https://github.com/megaconfidence/open-song-database https://www.discogs.com/developers
|
||||
},
|
||||
"media/subtitle": { //https://captioneasy.com/subtitle-file-formats/
|
||||
"ng:crdt": "YText",
|
||||
"ng:n": "Subtitles", |
||||
"ng:a": "Subtitles", |
||||
"ng:compat": [] // TBD
|
||||
}, |
||||
"media/overlay": { |
||||
"ng:crdt": "Graph", |
||||
"ng:n": "Overlay", |
||||
"ng:a": "Composition of an image, reel, text, icon, link, mention or other content into a layered content", |
||||
"ng:o": "n:g:z:media", |
||||
"ng:compat": [] |
||||
}, |
||||
"social/channel": { |
||||
"ng:crdt": "Graph", |
||||
"ng:n": "Channel", |
||||
"ng:a": "Broadcast channel with subscribers", |
||||
"ng:compat": [] |
||||
},
|
||||
"social/stream": { |
||||
"ng:crdt": "Graph", |
||||
"ng:n": "Stream", |
||||
"ng:a": "A document or store's stream branch", |
||||
"ng:compat": [] |
||||
}, |
||||
"social/contact": { |
||||
"ng:crdt": "Graph", |
||||
"ng:n": "Contact",
|
||||
"ng:a": "Contact: an Individual, Organization or Group", |
||||
"ng:x": { |
||||
"vcard":true, |
||||
"foaf": true, |
||||
}, |
||||
"ng:include": ["data/graph"], |
||||
"ng:compat": ["foaf:Person","foaf:Agent","vcard:Individual", "vcard:Organization", "vcard:Group", "file/iana/text/vcard", "file/iana/application/vcard+json", "file/iana/application/vcard+xml" ], |
||||
}, |
||||
"social/event": { |
||||
"ng:crdt": "Graph", |
||||
"ng:n": "Event", |
||||
"ng:a": "An event occuring in specific location and time", |
||||
"ng:x": { |
||||
"as":true, |
||||
}, |
||||
"ng:include": ["post/*"], |
||||
"ng:compat": ["as:Event"] |
||||
}, |
||||
"social/calendar": { |
||||
"ng:crdt": "Graph", |
||||
"ng:n": "Calendar", |
||||
"ng:a": "A calendar where events are gathered", |
||||
"ng:x": { |
||||
"as":true, |
||||
"time": true, |
||||
}, |
||||
"ng:include": ["data/collection"], |
||||
"ng:compat": ["time:TemporalEntity", "file/iana/text/calendar", "file/iana/application/calendar+xml", "file/iana/application/calendar+json"] //https://www.rfc-editor.org/rfc/rfc5545
|
||||
},
|
||||
"social/scheduler": { |
||||
"ng:crdt": "Graph", |
||||
"ng:n": "Scheduler", |
||||
"ng:a": "Helps finding a common time slot for several participants to a future event", |
||||
"ng:x": { |
||||
"as":true, |
||||
}, |
||||
"ng:compat": ["as:Invite","as:Reject","as:Accept","as:TentativeAccept","as:TentativeReject"] |
||||
}, |
||||
"social/reaction": { |
||||
"ng:crdt": "Graph", |
||||
"ng:n": "Reaction", |
||||
"ng:a": "A reaction by user to some content", |
||||
"ng:x": { |
||||
"as":true, |
||||
}, |
||||
"ng:compat": ["as:Like", "as:Dislike", "as:Listen", "as:Read", "as:View"] |
||||
}, |
||||
"prod/task": { |
||||
"ng:crdt": "Graph", |
||||
"ng:n": "Task", |
||||
"ng:a": "A task to be done", |
||||
"ng:x": { |
||||
"as":true, |
||||
"pair": "http://virtual-assembly.org/ontologies/pair#", |
||||
}, |
||||
"ng:include": ["post/*"], |
||||
"ng:compat": ["pair:Task"] //see VTODO in iCalendar https://www.cs.utexas.edu/~mfkb/RKF/tree/components/specs/ontologies/Calendar-onto.html
|
||||
// see todo and todoList of Mobilizon https://framagit.org/framasoft/mobilizon/-/blob/main/lib/federation/activity_stream/converter/todo.ex
|
||||
// https://framagit.org/framasoft/mobilizon/-/blob/main/lib/federation/activity_stream/converter/todo_list.ex
|
||||
}, |
||||
"prod/project": { |
||||
"ng:crdt": "Graph", |
||||
"ng:n": "Project", |
||||
"ng:a": "A project management / KanBan", |
||||
"ng:x": { |
||||
"as":true, |
||||
"pair": "http://virtual-assembly.org/ontologies/pair#", |
||||
}, |
||||
"ng:include": ["post/*"], |
||||
"ng:compat": ["pair:Project"]
|
||||
}, |
||||
// see SRO https://www.researchgate.net/publication/350158531_From_a_Scrum_Reference_Ontology_to_the_Integration_of_Applications_for_Data-Driven_Software_Development
|
||||
// https://ceur-ws.org/Vol-1442/paper_4.pdf
|
||||
// see focalbaord, specially for their import scripts https://github.com/mattermost/focalboard/tree/main/import
|
||||
// and their data model https://github.com/mattermost/focalboard/tree/main/server/model
|
||||
// https://github.com/leif81/bzkanban
|
||||
// https://github.com/HigorLoren/donko (react)
|
||||
// https://github.com/trobonox/kanri (GPL, Vue)
|
||||
// https://github.com/waterrmalann/kards (vanilla JS)
|
||||
// see also https://github.com/wekan/wekan
|
||||
// see also https://taiga.io/ (for inspiration. as it is AGPL and python)
|
||||
// see also https://github.com/plankanban/planka (for inspiration. as it is AGPL and React)
|
||||
// see also https://kolaente.dev/vikunja/vikunja (for inspiration. AGPL. Vue and Go)
|
||||
// see also https://github.com/laurent22/joplin/ (for inspiration. AGPL)
|
||||
// see also https://github.com/SrGMC/kanbana
|
||||
/// svelte: https://github.com/V-Py/svelte-kanban
|
||||
// https://github.com/supabase-community/svelte-kanban
|
||||
// https://github.com/therosbif/kanban
|
||||
"prod/issue": { |
||||
"ng:crdt": "Graph", |
||||
"ng:n": "Issue", |
||||
"ng:a": "An issue to be solved", |
||||
"ng:x": { |
||||
"as":true, |
||||
"pair": "http://virtual-assembly.org/ontologies/pair#", |
||||
}, |
||||
"ng:include": ["prod/task"], |
||||
"ng:compat": ["pair:Challenge"]
|
||||
}, |
||||
//https://github.com/go-gitea/gitea/issues/20232
|
||||
// datamodel of gitea issues: https://github.com/go-gitea/gitea/blob/165346c15c6d021028a65121e692a17ffc927e2c/models/issue.go#L35-L79
|
||||
"prod/form": { |
||||
"ng:crdt": "Graph", |
||||
"ng:n": "Form", |
||||
"ng:a": "A form to be filled-in", |
||||
"ng:x": { |
||||
"form" : "http://rdf.danielbeeke.nl/form/form-dev.ttl#", |
||||
}, |
||||
"ng:compat": ["form:*","file/iana/application/schema+json"]
|
||||
}, |
||||
// https://jsonforms.io/docs/
|
||||
// https://github.com/jsonform/jsonform
|
||||
// https://jsonforms.io/docs/integrations/vue
|
||||
// >>> https://github.com/json-editor/json-editor
|
||||
// or >>> https://github.com/webgme/svelte-jsonschema-form
|
||||
// or >>> https://github.com/restspace/svelte-schema-form
|
||||
// see https://ceur-ws.org/Vol-1515/regular14.pdf
|
||||
// and https://github.com/protegeproject/facsimile
|
||||
// https://www.drupal.org/project/webform
|
||||
// see https://www.semantic-mediawiki.org/wiki/Extension:Page_Forms
|
||||
// https://www.mediawiki.org/wiki/Extension:Page_Forms
|
||||
// https://rdf-form.danielbeeke.nl/
|
||||
// consider using Shapes
|
||||
"prod/filling": { |
||||
"ng:crdt": "Graph", |
||||
"ng:n": "Form filling", |
||||
"ng:a": "A form that has been filled-in", |
||||
"ng:compat": []
|
||||
}, |
||||
"prod/cad": { // https://mattferraro.dev/posts/cadmium
|
||||
"ng:crdt": "Automerge", |
||||
"ng:n": "CAD", |
||||
"ng:a": "CADmium", |
||||
"ng:compat": []
|
||||
},
|
||||
"prod/slides": { //https://github.com/hakimel/reveal.js
|
||||
//https://pandoc.org/MANUAL.html#slide-shows
|
||||
"ng:crdt": "Graph", |
||||
"ng:n": "Slides", |
||||
"ng:a": "Slides and presentations", |
||||
"ng:include": ["post/*"], |
||||
"ng:compat": []
|
||||
}, |
||||
"prod/question" : { |
||||
"ng:crdt": "Graph", |
||||
"ng:n": "Question", |
||||
"ng:a": "A question that needs answers", |
||||
"ng:x": { |
||||
"as":true, |
||||
}, |
||||
"ng:include": ["post/*"], |
||||
"ng:compat": ["as:Question"]
|
||||
},
|
||||
"prod/answer" :{ |
||||
"ng:crdt": "Graph", |
||||
"ng:n": "Answer", |
||||
"ng:a": "An answer to a question", |
||||
"ng:x": { |
||||
"as":true, |
||||
}, |
||||
"ng:include": ["post/*"], |
||||
"ng:compat": ["as:Note"]
|
||||
},
|
||||
"prod/poll" : { |
||||
"ng:crdt": "Graph", |
||||
"ng:n": "Poll", |
||||
"ng:a": "A poll where people will vote", |
||||
"ng:x": { |
||||
"as":true, |
||||
}, |
||||
"ng:include": ["post/*"], |
||||
"ng:compat": ["as:Question"]
|
||||
},
|
||||
"prod/vote" : { |
||||
"ng:crdt": "Graph", |
||||
"ng:n": "Vote", |
||||
"ng:a": "A vote cast for a Poll", |
||||
"ng:x": { |
||||
"as":true, |
||||
}, |
||||
"ng:compat": ["as:Note"]
|
||||
},
|
||||
"file" : { |
||||
"ng:crdt": "Graph", |
||||
"ng:n": "File", |
||||
"ng:a": "Binary file", |
||||
"ng:o": "n:g:z:file_viewer", |
||||
"ng:w": "n:g:z:file_viewer", |
||||
"ng:compat": []
|
||||
},
|
||||
"file/ng/wallet" : { |
||||
"ng:n": "NextGraph Wallet File", |
||||
"ng:a": "NextGraph Wallet File (.ngw)", |
||||
"ng:compat": []
|
||||
},
|
||||
"file/ng/doc" : { |
||||
"ng:n": "NextGraph Document File", |
||||
"ng:a": "NextGraph Document File (.ngd)", |
||||
"ng:compat": []
|
||||
}, |
||||
"file/ng/html" : { |
||||
"ng:n": "NextGraph Document Html", |
||||
"ng:a": "NextGraph Document Html standalone file", |
||||
"ng:compat": []
|
||||
},
|
||||
"file/text" : { |
||||
"ng:crdt": "Graph", |
||||
"ng:n": "File", |
||||
"ng:a": "Text file", |
||||
"ng:o": "n:g:z:file_viewer", |
||||
"ng:w": "n:g:z:file_viewer", |
||||
"ng:compat": ["file/iana/text/*", "image/svg+xml", "file/iana/application/n-quads", "file/iana/application/trig", "file/iana/application/n-triples", "file/iana/application/rdf+xml", "file/iana/application/ld+json", |
||||
"file/iana/application/xml", "file/iana/application/yaml", "file/iana/application/xhtml+xml", "file/iana/application/node","file/iana/application/sparql-results+json","file/iana/application/sparql-results+xml", |
||||
"file/iana/message/rfc822","file/iana/multipart/related", "file/iana/text/vnd.graphviz", "file/iana/application/vnd.excalidraw+json", "file/iana/application/x-tex","file/iana/text/x-tex", |
||||
"file/iana/application/vcard+json", "file/iana/application/vcard+xml", "file/iana/text/calendar", "file/iana/application/calendar+xml", "file/iana/application/calendar+json",
|
||||
"file/iana/application/schema+json", "file/iana/application/geo+json", "file/iana/application/json" ]
|
||||
},
|
||||
|
||||
}; |
@ -0,0 +1,187 @@ |
||||
<!-- |
||||
// Copyright (c) 2022-2024 Niko Bonnieure, Par le Peuple, NextGraph.org developers |
||||
// All rights reserved. |
||||
// Licensed under the Apache License, Version 2.0 |
||||
// <LICENSE-APACHE2 or http://www.apache.org/licenses/LICENSE-2.0> |
||||
// or the MIT license <LICENSE-MIT or http://opensource.org/licenses/MIT>, |
||||
// at your option. All files in the project carrying such |
||||
// notice may not be copied, modified, or distributed except |
||||
// according to those terms. |
||||
--> |
||||
|
||||
<script lang="ts"> |
||||
import { |
||||
Icon, |
||||
BugAnt, |
||||
DocumentText, |
||||
Window, |
||||
CodeBracket, |
||||
SquaresPlus, |
||||
ViewfinderCircle, |
||||
ArrowsPointingOut, |
||||
Cube, |
||||
Briefcase, |
||||
MagnifyingGlass, |
||||
RocketLaunch, |
||||
Sun, |
||||
TableCells, |
||||
ListBullet, |
||||
RectangleGroup, |
||||
Squares2x2, |
||||
MapPin, |
||||
CircleStack, |
||||
Envelope, |
||||
GlobeAlt, |
||||
DocumentChartBar, |
||||
Document, |
||||
ClipboardDocumentList, |
||||
Photo, |
||||
Film, |
||||
RectangleStack, |
||||
Microphone, |
||||
MusicalNote, |
||||
Ticket, |
||||
CursorArrowRays, |
||||
Megaphone, |
||||
User, |
||||
Clock, |
||||
CalendarDays, |
||||
Calendar, |
||||
Stop, |
||||
Flag, |
||||
HandRaised, |
||||
Newspaper, |
||||
PencilSquare, |
||||
CubeTransparent, |
||||
PresentationChartBar, |
||||
QuestionMarkCircle, |
||||
CheckCircle, |
||||
ChartPie, |
||||
Bars3BottomLeft, |
||||
Link, |
||||
Square2Stack, |
||||
Clipboard, |
||||
StopCircle, |
||||
Bolt, |
||||
Heart, |
||||
} from "svelte-heros-v2"; |
||||
|
||||
export let config = {}; |
||||
export let dataClass: string; |
||||
|
||||
const exact_mapping = { |
||||
page: Window, |
||||
"app/z": SquaresPlus, |
||||
class: ViewfinderCircle, |
||||
contract: Briefcase, |
||||
"query/text": MagnifyingGlass, |
||||
"query/web": MagnifyingGlass, |
||||
"data/graph": Sun, |
||||
"data/table": TableCells, |
||||
"data/collection": ListBullet, |
||||
"data/board": RectangleGroup, |
||||
"data/grid": Squares2x2, |
||||
"data/geomap": MapPin, |
||||
"e/email": Envelope, |
||||
"mc/text": Bars3BottomLeft, |
||||
"mc/link": Link, |
||||
"plato/card": Clipboard, |
||||
"plato/pad": Square2Stack, |
||||
"media/image": Photo, |
||||
"media/reel": Film, |
||||
"media/video": Film, |
||||
"media/album": RectangleStack, |
||||
"media/audio": Microphone, |
||||
"media/song": MusicalNote, |
||||
"media/subtitle": Ticket, |
||||
"media/overlay": CursorArrowRays, |
||||
"social/channel": Megaphone, |
||||
"social/stream": Bolt, |
||||
"social/contact": User, |
||||
"social/event": Clock, |
||||
"social/calendar": CalendarDays, |
||||
"social/scheduler": Calendar, |
||||
"social/reaction": Heart, |
||||
"prod/task": Stop, |
||||
"prod/project": Flag, |
||||
"prod/issue": HandRaised, |
||||
"prod/form": Newspaper, |
||||
"prod/filling": PencilSquare, |
||||
"prod/cad": CubeTransparent, |
||||
"prod/slides": PresentationChartBar, |
||||
"prod/question": QuestionMarkCircle, |
||||
"prod/answer": CheckCircle, |
||||
"prod/poll": QuestionMarkCircle, |
||||
"prod/vote": CheckCircle, |
||||
}; |
||||
|
||||
const prefix_mapping = { |
||||
"post/": DocumentText, |
||||
code: CodeBracket, |
||||
schema: ArrowsPointingOut, |
||||
service: Cube, |
||||
"e/": GlobeAlt, |
||||
"app/": StopCircle, |
||||
"query/": RocketLaunch, |
||||
"data/": CircleStack, |
||||
"doc/diagram": DocumentChartBar, |
||||
"doc/chart": ChartPie, |
||||
"doc/viz": ChartPie, |
||||
"doc/": ClipboardDocumentList, |
||||
file: Document, |
||||
}; |
||||
|
||||
const find = (t) => { |
||||
let e = exact_mapping[t]; |
||||
if (e) return e; |
||||
for (let prefix of Object.entries(prefix_mapping)) { |
||||
if (t.startsWith(prefix[0])) return prefix[1]; |
||||
} |
||||
return BugAnt; |
||||
}; |
||||
</script> |
||||
|
||||
<!-- |
||||
did:ng:n:g:z:[official apps] |
||||
did:ng:n:g:ns |
||||
did:ng:n:g:x list of context used by nextgraph |
||||
rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# |
||||
rdfs: http://www.w3.org/2000/01/rdf-schema# |
||||
schema: https://schema.org/ |
||||
skos: http://www.w3.org/2004/02/skos/core# |
||||
owl: http://www.w3.org/2002/07/owl# |
||||
foaf: http://xmlns.com/foaf/0.1/ |
||||
relationship: http://purl.org/vocab/relationship/ |
||||
dcterms: http://purl.org/dc/terms/ |
||||
dcmitype: http://purl.org/dc/dcmitype/ |
||||
sh: http://www.w3.org/ns/shacl# |
||||
shex: http://www.w3.org/ns/shex# |
||||
xsd: http://www.w3.org/2001/XMLSchema# |
||||
as: https://www.w3.org/ns/activitystreams# |
||||
ldp: http://www.w3.org/ns/ldp# |
||||
vcard: http://www.w3.org/2006/vcard/ns# |
||||
sec: https://w3id.org/security# |
||||
wgs: http://www.w3.org/2003/01/geo/wgs84_pos# |
||||
cc: http://creativecommons.org/ns# |
||||
gn: https://www.geonames.org/ontology# |
||||
geo: http://www.opengis.net/ont/geosparql# |
||||
time: http://www.w3.org/2006/time# |
||||
|
||||
ng: did:ng:n:g:ns# or http://nextgraph.org/ns# |
||||
|
||||
did:ng:n:g:ns#post/rich |
||||
ng:class => shortcut for did:ng:n:g:ns#class |
||||
a rdfs:Class |
||||
a ng:class |
||||
did:ng:o:xxxx:yy:yy |
||||
did:ng:n:xx.xx#name |
||||
did:ng:n:x: curated list of ontologies |
||||
did:ng:k common list of things (keyword) |
||||
did:ng:n:c common data |
||||
did:ng:n:z: curated list of external apps and services |
||||
http://nextgraph.org/ns# => the ng: ontology (did:ng:n:g:ns#) |
||||
|
||||
ng:compat -> owl:unionOf rdf:List (alphabetical order, including itself as first element) |
||||
|
||||
--> |
||||
<Icon {...config} variation="outline" color="black" icon={find(dataClass)} /> |
File diff suppressed because one or more lines are too long
@ -0,0 +1,120 @@ |
||||
<!-- |
||||
// Copyright (c) 2022-2024 Niko Bonnieure, Par le Peuple, NextGraph.org developers |
||||
// All rights reserved. |
||||
// Licensed under the Apache License, Version 2.0 |
||||
// <LICENSE-APACHE2 or http://www.apache.org/licenses/LICENSE-2.0> |
||||
// or the MIT license <LICENSE-MIT or http://opensource.org/licenses/MIT>, |
||||
// at your option. All files in the project carrying such |
||||
// notice may not be copied, modified, or distributed except |
||||
// according to those terms. |
||||
--> |
||||
|
||||
<script lang="ts"> |
||||
import { |
||||
Icon, |
||||
BugAnt, |
||||
DocumentText, |
||||
Window, |
||||
CodeBracket, |
||||
SquaresPlus, |
||||
ViewfinderCircle, |
||||
ArrowsPointingOut, |
||||
Cube, |
||||
Briefcase, |
||||
MagnifyingGlass, |
||||
RocketLaunch, |
||||
Sun, |
||||
TableCells, |
||||
ListBullet, |
||||
RectangleGroup, |
||||
Squares2x2, |
||||
MapPin, |
||||
CircleStack, |
||||
Envelope, |
||||
GlobeAlt, |
||||
DocumentChartBar, |
||||
Document, |
||||
ClipboardDocumentList, |
||||
Photo, |
||||
Film, |
||||
RectangleStack, |
||||
Microphone, |
||||
MusicalNote, |
||||
Ticket, |
||||
CursorArrowRays, |
||||
Megaphone, |
||||
User, |
||||
Clock, |
||||
CalendarDays, |
||||
Calendar, |
||||
Stop, |
||||
Flag, |
||||
HandRaised, |
||||
Newspaper, |
||||
PencilSquare, |
||||
CubeTransparent, |
||||
PresentationChartBar, |
||||
QuestionMarkCircle, |
||||
CheckCircle, |
||||
ChartPie, |
||||
Bars3BottomLeft, |
||||
Link, |
||||
Square2Stack, |
||||
Clipboard, |
||||
StopCircle, |
||||
Share, |
||||
Play, |
||||
DocumentArrowDown, |
||||
DocumentArrowUp, |
||||
CloudArrowUp, |
||||
CloudArrowDown, |
||||
Beaker, |
||||
Eye, |
||||
} from "svelte-heros-v2"; |
||||
|
||||
export let config = {}; |
||||
export let zera: string; |
||||
|
||||
const exact_mapping = { |
||||
json_ld_editor: TableCells, |
||||
json_editor: TableCells, |
||||
triple_editor: Share, |
||||
rdf_viewer: CircleStack, |
||||
graph_viewer: Sun, |
||||
sparql_query: RocketLaunch, |
||||
sparnatural: CursorArrowRays, |
||||
graphql: Cube, |
||||
invoke: Play, |
||||
ontology_viewer: ArrowsPointingOut, |
||||
download: DocumentArrowDown, |
||||
post_edit: PencilSquare, |
||||
file: Document, |
||||
source: CodeBracket, |
||||
post: DocumentText, |
||||
pad: Square2Stack, |
||||
card: Clipboard, |
||||
gallery: RectangleStack, |
||||
load_graph: CloudArrowUp, |
||||
load: DocumentArrowUp, |
||||
dump: CloudArrowDown, |
||||
ext: GlobeAlt, |
||||
app_store: SquaresPlus, |
||||
app_editor: Beaker, |
||||
list: ListBullet, |
||||
grid: Squares2x2, |
||||
view: Eye, |
||||
}; |
||||
|
||||
const prefix_mapping = {}; |
||||
|
||||
const find = (t) => { |
||||
let e = exact_mapping[t]; |
||||
if (e) return e; |
||||
for (let prefix of Object.entries(prefix_mapping)) { |
||||
if (t.startsWith(prefix[0])) return prefix[1]; |
||||
} |
||||
return BugAnt; |
||||
}; |
||||
</script> |
||||
|
||||
<Icon {...config} variation="outline" color="black" icon={find(zera)} /> |
@ -0,0 +1,78 @@ |
||||
<script lang="ts"> |
||||
export let value: string = ""; |
||||
export let id: string; |
||||
|
||||
let has_success: boolean = false; |
||||
|
||||
const tauri_platform = import.meta.env.TAURI_PLATFORM; |
||||
const setClipboard = async (text: string) => { |
||||
if (tauri_platform) { |
||||
// TODO: this won't work for tauri platform. |
||||
// const { writeText } = await import("@tauri-apps/api/clipboard"); |
||||
// await writeText(text); |
||||
} else { |
||||
navigator.clipboard.writeText(text); |
||||
} |
||||
}; |
||||
|
||||
const on_click = (e) => { |
||||
has_success = true; |
||||
setTimeout(() => (has_success = false), 2_000); |
||||
setClipboard(value); |
||||
}; |
||||
</script> |
||||
|
||||
<div class="w-full mt-2"> |
||||
<div class="relative"> |
||||
<textarea |
||||
{id} |
||||
rows="3" |
||||
style="resize: none;" |
||||
{value} |
||||
class="col-span-6 pr-11 bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-gray-400 dark:focus:ring-blue-500 dark:focus:border-blue-500" |
||||
disabled |
||||
readonly |
||||
/> |
||||
{#if !tauri_platform} |
||||
<button |
||||
on:click={on_click} |
||||
class="absolute inset-y-0 right-0 p-3 flex items-center text-sm leading-5 bg-transparent shadow-none" |
||||
> |
||||
<span id="default-icon" class:hidden={has_success}> |
||||
<svg |
||||
class="w-3.5 h-3.5" |
||||
aria-hidden="true" |
||||
xmlns="http://www.w3.org/2000/svg" |
||||
fill="currentColor" |
||||
viewBox="0 0 18 20" |
||||
> |
||||
<path |
||||
d="M16 1h-3.278A1.992 1.992 0 0 0 11 0H7a1.993 1.993 0 0 0-1.722 1H2a2 2 0 0 0-2 2v15a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V3a2 2 0 0 0-2-2Zm-3 14H5a1 1 0 0 1 0-2h8a1 1 0 0 1 0 2Zm0-4H5a1 1 0 0 1 0-2h8a1 1 0 1 1 0 2Zm0-5H5a1 1 0 0 1 0-2h2V2h4v2h2a1 1 0 1 1 0 2Z" |
||||
/> |
||||
</svg> |
||||
</span> |
||||
<span |
||||
id="success-icon" |
||||
class="inline-flex items-center" |
||||
class:hidden={!has_success} |
||||
> |
||||
<svg |
||||
class="w-3.5 h-3.5 text-blue-700 dark:text-blue-500" |
||||
aria-hidden={!has_success} |
||||
xmlns="http://www.w3.org/2000/svg" |
||||
fill="none" |
||||
viewBox="0 0 16 12" |
||||
> |
||||
<path |
||||
stroke="currentColor" |
||||
stroke-linecap="round" |
||||
stroke-linejoin="round" |
||||
stroke-width="2" |
||||
d="M1 5.917 5.724 10.5 15 1.5" |
||||
/> |
||||
</svg> |
||||
</span> |
||||
</button> |
||||
{/if} |
||||
</div> |
||||
</div> |
@ -0,0 +1,76 @@ |
||||
<script lang="ts"> |
||||
export let value: string | undefined = undefined; |
||||
export let placeholder: string | undefined = undefined; |
||||
export let className: string | undefined = undefined; |
||||
export let id: string | undefined = undefined; |
||||
export let auto_complete: string | undefined = undefined; |
||||
|
||||
export let show: boolean = false; |
||||
|
||||
let input; |
||||
|
||||
let type: "password" | "text" = "password"; |
||||
$: type = show ? "text" : "password"; |
||||
|
||||
function handleInput(event: Event) { |
||||
const target = event.target as HTMLInputElement; |
||||
value = target.value; |
||||
} |
||||
|
||||
async function toggle() { |
||||
let { selectionStart, selectionEnd } = input; |
||||
show = !show; |
||||
input.focus(); |
||||
setTimeout(function () { |
||||
input.selectionStart = selectionStart; |
||||
input.selectionEnd = selectionEnd; |
||||
}, 0); |
||||
} |
||||
</script> |
||||
|
||||
<div class="relative"> |
||||
<input |
||||
bind:this={input} |
||||
{value} |
||||
{placeholder} |
||||
{id} |
||||
{type} |
||||
on:input={handleInput} |
||||
class={`${className} pr-12 text-md block`} |
||||
autocomplete={auto_complete} |
||||
/> |
||||
|
||||
<div |
||||
class="absolute inset-y-0 right-0 pr-3 flex items-center text-sm leading-5" |
||||
> |
||||
<svg |
||||
fill="none" |
||||
on:click={toggle} |
||||
on:keypress={toggle} |
||||
class={`${show ? "block" : "hidden"} h-6 text-gray-700`} |
||||
xmlns="http://www.w3.org/2000/svg" |
||||
viewbox="0 0 576 512" |
||||
> |
||||
<path |
||||
fill="currentColor" |
||||
d="M572.52 241.4C518.29 135.59 410.93 64 288 64S57.68 135.64 3.48 241.41a32.35 32.35 0 0 0 0 29.19C57.71 376.41 165.07 448 288 448s230.32-71.64 284.52-177.41a32.35 32.35 0 0 0 0-29.19zM288 400a144 144 0 1 1 144-144 143.93 143.93 0 0 1-144 144zm0-240a95.31 95.31 0 0 0-25.31 3.79 47.85 47.85 0 0 1-66.9 66.9A95.78 95.78 0 1 0 288 160z" |
||||
> |
||||
</path> |
||||
</svg> |
||||
|
||||
<svg |
||||
fill="none" |
||||
class={`${!show ? "block" : "hidden"} h-6 text-gray-700`} |
||||
on:click={toggle} |
||||
on:keypress={toggle} |
||||
xmlns="http://www.w3.org/2000/svg" |
||||
viewbox="0 0 640 512" |
||||
> |
||||
<path |
||||
fill="currentColor" |
||||
d="M320 400c-75.85 0-137.25-58.71-142.9-133.11L72.2 185.82c-13.79 17.3-26.48 35.59-36.72 55.59a32.35 32.35 0 0 0 0 29.19C89.71 376.41 197.07 448 320 448c26.91 0 52.87-4 77.89-10.46L346 397.39a144.13 144.13 0 0 1-26 2.61zm313.82 58.1l-110.55-85.44a331.25 331.25 0 0 0 81.25-102.07 32.35 32.35 0 0 0 0-29.19C550.29 135.59 442.93 64 320 64a308.15 308.15 0 0 0-147.32 37.7L45.46 3.37A16 16 0 0 0 23 6.18L3.37 31.45A16 16 0 0 0 6.18 53.9l588.36 454.73a16 16 0 0 0 22.46-2.81l19.64-25.27a16 16 0 0 0-2.82-22.45zm-183.72-142l-39.3-30.38A94.75 94.75 0 0 0 416 256a94.76 94.76 0 0 0-121.31-92.21A47.65 47.65 0 0 1 304 192a46.64 46.64 0 0 1-1.54 10l-73.61-56.89A142.31 142.31 0 0 1 320 112a143.92 143.92 0 0 1 144 144c0 21.63-5.29 41.79-13.9 60.11z" |
||||
> |
||||
</path> |
||||
</svg> |
||||
</div> |
||||
</div> |
@ -0,0 +1,629 @@ |
||||
|
||||
// Copyright (c) 2022-2024 Niko Bonnieure, Par le Peuple, NextGraph.org developers
|
||||
// All rights reserved.
|
||||
// Licensed under the Apache License, Version 2.0
|
||||
// <LICENSE-APACHE2 or http://www.apache.org/licenses/LICENSE-2.0>
|
||||
// or the MIT license <LICENSE-MIT or http://opensource.org/licenses/MIT>,
|
||||
// at your option. All files in the project carrying such
|
||||
// notice may not be copied, modified, or distributed except
|
||||
// according to those terms.
|
||||
|
||||
// "n:g:z:hide" >> hides when in viewer mode
|
||||
//"n:g:z:json_ld_editor", "n:g:z:json_editor", "n:g:z:triple_editor", "n:g:z:rdf_viewer:turtle", "n:g:z:rdf_viewer:n3", "n:g:z:rdf_viewer:json_ld", "n:g:z:rdf_viewer:graph",
|
||||
//"n:g:z:sparql_query:yasgui", "n:g:z:sparql_query:sparnatural", "n:g:z:graphql_query", "n:g:z:sparql_update:yasgui", "n:g:z:ontology_editor", "n:g:z:owl_viewer", "n:g:z:sparql:invoke", "n:g:z:graphql:invoke", "n:g:z:dump_download",
|
||||
// "n:g:z:post_rich_editor", "n:g:z:post_md_editor", "n:g:z:code_editor", "n:g:z:file_viewer", "n:g:z:file_source", "n:g:z:crdt_source_viewer:xml", "n:g:z:crdt_source_viewer:json", "n:g:z:crdt_source_viewer:text", "n:g:z:crdt_source_viewer:rdf"
|
||||
//"n:g:z:post:rich", "n:g:z:post:md", "n:g:z:text", "n:g:z:pre", "n:g:z:pad", "n:g:z:card", "n:g:z:gallery", "n:g:z:columns", "n:g:z:tree", "n:g:z:summary", "n:g:z:list", "n:g:z:grid", "n:g:z:list_n_post", "n:g:z:grid_n_post", "n:g:z:board",
|
||||
//"n:g:z:map", "n:g:z:chart", "n:g:z:pivot", "n:g:z:timeline", "n:g:z:email", "n:g:z:web_archive", "n:g:z:diagram_editor", "n:g:z:pdf", "n:g:z:latex", "n:g:z:media", "n:g:z:media_editor",
|
||||
//"n:g:z:service_editor", "n:g:z:service_invoke", "n:g:z:external_service_invoke", "n:g:z:contract", "n:g:z:text_query", "n:g:z:web_query", "n:g:z:scan_qrcode", "n:g:z:upload_file",
|
||||
//"n:g:z:messenger", "n:g:z:group", "n:g:z:contact", "n:g:z:event", "n:g:z:calendar", "n:g:z:scheduler",
|
||||
//"n:g:z:task", "n:g:z:project", "n:g:z:issue", "n:g:z:form_editor", "n:g:z:form_filler", "n:g:z:cad", "n:g:z:slides", "n:g:z:question", "n:g:z:poll",
|
||||
//"n:g:z:app_store", "n:g:z:app_editor", "n:xxx.xx.xx:yy", "o:xx:yy:zz"
|
||||
|
||||
export const official_apps = { |
||||
"n:g:z:json_ld_editor": { |
||||
"ng:n": "JSON-LD editor", |
||||
"ng:a": "View and edit the RDF Graph as JSON-LD", |
||||
"ng:c": "app",
|
||||
"ng:u": "json_ld_editor",//favicon. can be a did:ng:j
|
||||
"ng:g": "n:g:z:json_ld_editor", |
||||
"ng:b": "JsonLdEditor", |
||||
"ng:o": ["data/graph"], |
||||
"ng:w": ["data/graph"], |
||||
}, |
||||
"n:g:z:json_editor": { |
||||
"ng:n": "JSON editor", |
||||
"ng:a": "View and edit your JSON data", |
||||
"ng:c": "app",
|
||||
"ng:u": "json_editor",//favicon. can be a did:ng:j
|
||||
"ng:g": "n:g:z:json_editor", |
||||
"ng:b": "JsonEditor", |
||||
"ng:o": ["data/json","data/array","data/map"], |
||||
"ng:w": ["data/json","data/array","data/map"], |
||||
}, |
||||
"n:g:z:triple_editor": { |
||||
"ng:n": "Graph triples", |
||||
"ng:a": "Edit your RDF Graph as triples", |
||||
"ng:c": "app",
|
||||
"ng:u": "triple_editor",//favicon. can be a did:ng:j
|
||||
"ng:g": "n:g:z:triple_editor", |
||||
"ng:b": "TripleEditor", |
||||
"ng:o": ["data/graph"], |
||||
"ng:w": ["data/graph"], |
||||
}, |
||||
"n:g:z:rdf_viewer:turtle": { // https://github.com/highlightjs/highlightjs-turtle/tree/master
|
||||
"ng:n": "Turtle", |
||||
"ng:a": "View your RDF Graph in Turtle format", |
||||
"ng:c": "app",
|
||||
"ng:u": "rdf_viewer",//favicon. can be a did:ng:j
|
||||
"ng:g": "n:g:z:rdf_viewer:turtle", |
||||
"ng:b": "TurtleViewer", |
||||
"ng:o": ["data/graph"], |
||||
"ng:w": [], |
||||
}, |
||||
"n:g:z:rdf_viewer:n3": { // ?
|
||||
"ng:n": "N3", |
||||
"ng:a": "View your RDF Graph in N3 format", |
||||
"ng:c": "app",
|
||||
"ng:u": "rdf_viewer",//favicon. can be a did:ng:j
|
||||
"ng:g": "n:g:z:rdf_viewer:n3", |
||||
"ng:b": "N3Viewer", |
||||
"ng:o": ["data/graph"], |
||||
"ng:w": [], |
||||
}, |
||||
"n:g:z:rdf_viewer:json_ld": { // highlight.js JSON
|
||||
"ng:n": "JSON-LD", |
||||
"ng:a": "View your RDF Graph in N3 format", |
||||
"ng:c": "app",
|
||||
"ng:u": "rdf_viewer",//favicon. can be a did:ng:j
|
||||
"ng:g": "n:g:z:rdf_viewer:json_ld", |
||||
"ng:b": "JsonLdViewer", |
||||
"ng:o": ["data/graph"], |
||||
"ng:w": [], |
||||
}, |
||||
"n:g:z:rdf_viewer:graph": { |
||||
"ng:n": "Graph Explorer", |
||||
"ng:a": "View your RDF Graph as interactive visualization", |
||||
"ng:c": "app",
|
||||
"ng:u": "graph_viewer",//favicon. can be a did:ng:j
|
||||
"ng:g": "n:g:z:rdf_viewer:graph", |
||||
"ng:b": "GraphViewer", // GraphExplorer https://github.com/zazuko/graph-explorer !! AGPL
|
||||
"ng:o": ["data/graph"], |
||||
"ng:w": [], |
||||
}, |
||||
"n:g:z:sparql_query:yasgui": { |
||||
"ng:n": "SPARQL Query", |
||||
"ng:a": "View, edit and invoke your Graph SPARQL query", |
||||
"ng:c": "app",
|
||||
"ng:u": "sparql_query",//favicon. can be a did:ng:j
|
||||
"ng:g": "n:g:z:sparql_query:yasgui", |
||||
"ng:b": "SparqlQueryEditor", // YASGUI of Zazuko https://github.com/zazuko/trifid/tree/main/packages/yasgui
|
||||
"ng:o": [], |
||||
"ng:w": ["query/sparql"], |
||||
}, |
||||
"n:g:z:sparql_query:sparnatural": { |
||||
"ng:n": "SPARQL natural Query", |
||||
"ng:a": "View, edit and invoke your Graph SPARQL query with SPARnatural tool", |
||||
"ng:c": "app",
|
||||
"ng:u": "sparnatural",//favicon. can be a did:ng:j
|
||||
"ng:g": "n:g:z:sparql_query:sparnatural", |
||||
"ng:b": "SparNaturalEditor", |
||||
"ng:o": [], |
||||
"ng:w": ["query/sparql"], |
||||
}, |
||||
"n:g:z:graphql_query": { |
||||
"ng:n": "GraphQL Query", |
||||
"ng:a": "View, edit and invoke your GraphQL query", |
||||
"ng:c": "app",
|
||||
"ng:u": "graphql",//favicon. can be a did:ng:j
|
||||
"ng:g": "n:g:z:graphql_query", |
||||
"ng:b": "GraphqlEditor", |
||||
"ng:o": [], |
||||
"ng:w": ["query/graphql"], |
||||
}, |
||||
"n:g:z:sparql_update:yasgui": { |
||||
"ng:n": "SPARQL Update", |
||||
"ng:a": "View, edit and invoke your Graph SPARQL Update", |
||||
"ng:c": "app", |
||||
"ng:u": "sparql_query",//favicon. can be a did:ng:j
|
||||
"ng:g": "n:g:z:sparql_update:yasgui", |
||||
"ng:b": "SparqlUpdateEditor", // YASGUI of Zazuko https://github.com/zazuko/trifid/tree/main/packages/yasgui
|
||||
"ng:o": [], |
||||
"ng:w": ["query/sparql_update"], |
||||
}, |
||||
"n:g:z:ontology_editor": { |
||||
"ng:n": "Ontology editor", |
||||
"ng:a": "Edit your Ontology", |
||||
"ng:c": "app", |
||||
"ng:u": "json_ld_editor",//favicon. can be a did:ng:j
|
||||
"ng:g": "n:g:z:ontology_editor", |
||||
"ng:b": "JsonLdEditor", |
||||
"ng:o": [], |
||||
"ng:w": ["schema/*"], |
||||
}, |
||||
"n:g:z:owl_viewer": { |
||||
"ng:n": "OWL Ontology", |
||||
"ng:a": "View your OWL Ontology", |
||||
"ng:c": "app", |
||||
"ng:u": "ontology_viewer",//favicon. can be a did:ng:j
|
||||
"ng:g": "n:g:z:owl_viewer", |
||||
"ng:b": "OwlViewer", // display with https://github.com/VisualDataWeb/WebVOWL
|
||||
"ng:o": ["schema/owl"], |
||||
"ng:w": [], |
||||
}, |
||||
"n:g:z:sparql:invoke": { // displayed with highlight.js https://github.com/highlightjs/highlightjs-turtle/tree/master
|
||||
"ng:n": "SPARQL Invoke", |
||||
"ng:a": "View and invoke your saved SPARQL query", |
||||
"ng:c": "app",
|
||||
"ng:u": "invoke",//favicon. can be a did:ng:j
|
||||
"ng:g": "n:g:z:sparql:invoke", |
||||
"ng:b": "SparqlInvoker", |
||||
"ng:o": ["query/sparql","query/sparql_update"], |
||||
"ng:w": [], |
||||
}, |
||||
"n:g:z:graphql:invoke": {
|
||||
"ng:n": "GraphQL Invoke", |
||||
"ng:a": "View and invoke your saved GraphQL query", |
||||
"ng:c": "app",
|
||||
"ng:u": "invoke",//favicon. can be a did:ng:j
|
||||
"ng:g": "n:g:z:graphql:invoke", |
||||
"ng:b": "GraphqlInvoker", |
||||
"ng:o": ["query/graphql"], |
||||
"ng:w": [], |
||||
}, |
||||
"n:g:z:dump_download": { |
||||
"ng:n": "Download", |
||||
"ng:a": "Download a file containing a document export data", |
||||
"ng:c": "app",
|
||||
"ng:u": "download",//favicon. can be a did:ng:j
|
||||
"ng:g": "n:g:z:dump_download", |
||||
"ng:b": "Downloader", |
||||
"ng:o": ["data/graph","file*","data/*"], |
||||
"ng:w": [], |
||||
}, |
||||
"n:g:z:post_rich_editor": { |
||||
"ng:n": "Post Editor", |
||||
"ng:a": "Edit your post with ProseMirror", |
||||
"ng:c": "app",
|
||||
"ng:u": "post_edit",//favicon. can be a did:ng:j
|
||||
"ng:g": "n:g:z:post_rich_editor", |
||||
"ng:b": "ProseMirrorEditor", |
||||
"ng:o": [], |
||||
"ng:w": ["post/rich"], |
||||
}, |
||||
"n:g:z:post_md_editor": { |
||||
"ng:n": "Post Editor", |
||||
"ng:a": "Edit your post with MilkDown", |
||||
"ng:c": "app",
|
||||
"ng:u": "post_edit",//favicon. can be a did:ng:j
|
||||
"ng:g": "n:g:z:post_md_editor", |
||||
"ng:b": "MilkDownEditor", |
||||
"ng:o": [], |
||||
"ng:w": ["post/md"], |
||||
}, |
||||
"n:g:z:code_editor": { |
||||
"ng:n": "Code and Text Editor", |
||||
"ng:a": "Edit your code/text with CodeMirror", |
||||
"ng:c": "app",
|
||||
"ng:u": "post_edit",//favicon. can be a did:ng:j
|
||||
"ng:g": "n:g:z:code_editor", |
||||
"ng:b": "CodeMirrorEditor", |
||||
"ng:o": [], |
||||
"ng:w": ["code*","post/text"], |
||||
}, |
||||
"n:g:z:file_viewer": { |
||||
"ng:n": "File details", |
||||
"ng:a": "See details about this file", |
||||
"ng:c": "app",
|
||||
"ng:u": "file",//favicon. can be a did:ng:j
|
||||
"ng:g": "n:g:z:file_viewer", |
||||
"ng:b": "FileDetails", |
||||
"ng:o": ["file*"], |
||||
"ng:w": ["file*"], // in editor mode: can change the name, and delete the file
|
||||
}, |
||||
"n:g:z:file_source": { // only works for files containing text source (SVG, HTML, JS, CSS, etc...)
|
||||
"ng:n": "File source", |
||||
"ng:a": "See the source code of this file", |
||||
"ng:c": "app",
|
||||
"ng:u": "source",//favicon. can be a did:ng:j
|
||||
"ng:g": "n:g:z:file_source", |
||||
"ng:b": "FileSource", |
||||
"ng:o": ["file/text"], |
||||
"ng:w": [], |
||||
}, |
||||
"n:g:z:crdt_source_viewer:xml": {
|
||||
"ng:n": "XML source", |
||||
"ng:a": "See the source code of this document, in XML", |
||||
"ng:c": "app",
|
||||
"ng:u": "source",//favicon. can be a did:ng:j
|
||||
"ng:g": "n:g:z:crdt_source_viewer:xml", |
||||
"ng:b": "XmlSource", // displayed with highlight.js , with option to download
|
||||
"ng:o": ["post/rich","post/md","post/html","page","data/xml", "doc/diagram/drawio"], |
||||
"ng:w": [], |
||||
}, |
||||
"n:g:z:crdt_source_viewer:json": {
|
||||
"ng:n": "JSON source", |
||||
"ng:a": "See the source code of this document, in JSON", |
||||
"ng:c": "app",
|
||||
"ng:u": "source",//favicon. can be a did:ng:j
|
||||
"ng:g": "n:g:z:crdt_source_viewer:json", |
||||
"ng:b": "JsonSource", // displayed with highlight.js , with option to download
|
||||
"ng:o": ["data/json", "data/map", "data/array", "data/table", "doc/diagram/jsmind", "doc/diagram/gantt", "doc/diagram/excalidraw", "doc/viz/*", "doc/chart/*", "prod/cad"], |
||||
"ng:w": [], |
||||
}, |
||||
"n:g:z:crdt_source_viewer:text": { |
||||
"ng:n": "Text source", |
||||
"ng:a": "See the source code of this document, in plain-text", |
||||
"ng:c": "app",
|
||||
"ng:u": "source",//favicon. can be a did:ng:j
|
||||
"ng:g": "n:g:z:crdt_source_viewer:text", |
||||
"ng:b": "TextViewer", // displayed with highlight.js , with option to download
|
||||
"ng:o": ["post/text", "post/asciidoc", "code*", "service*", "contract", "query/sparql*","query/graphql","doc/diagram/mermaid","doc/diagram/graphviz","doc/diagram/flowchart", |
||||
"doc/diagram/sequence","doc/diagram/markmap","doc/diagram/mymind","doc/music*", "doc/maths", "doc/chemistry", "doc/ancientscript", "doc/braille", "media/subtitle"], |
||||
"ng:w": [], |
||||
}, |
||||
"n:g:z:crdt_source_viewer:rdf": { |
||||
"ng:n": "RDF source", |
||||
"ng:a": "See the source graph of this document, in RDF (turtle)", |
||||
"ng:c": "app",
|
||||
"ng:u": "source",//favicon. can be a did:ng:j
|
||||
"ng:g": "n:g:z:crdt_source_viewer:rdf", |
||||
"ng:b": "TurtleViewer", //, with option to download
|
||||
"ng:o": ["data/graph"], |
||||
"ng:w": [], |
||||
}, |
||||
"n:g:z:post:rich": { |
||||
"ng:n": "Post", |
||||
"ng:a": "View a Rich Post", |
||||
"ng:c": "app",
|
||||
"ng:u": "post",//favicon. can be a did:ng:j
|
||||
"ng:g": "n:g:z:post:rich", |
||||
"ng:b": "PostRichViewer", // https://www.npmjs.com/package/prosemirror-to-html-js or https://prosemirror.net/docs/ref/version/0.4.0.html#toDOM https://prosemirror.net/docs/ref/version/0.4.0.html#toHTML
|
||||
"ng:o": ["post/rich"], |
||||
"ng:w": [], |
||||
}, |
||||
"n:g:z:post:md": { |
||||
"ng:n": "Post", |
||||
"ng:a": "View a Markdown Post", |
||||
"ng:c": "app",
|
||||
"ng:u": "post",//favicon. can be a did:ng:j
|
||||
"ng:g": "n:g:z:post:md", |
||||
"ng:b": "PostMdViewer", // https://github.com/wooorm/markdown-rs
|
||||
"ng:o": ["post/md"], |
||||
"ng:w": [], |
||||
}, |
||||
"n:g:z:post:text": { |
||||
"ng:n": "Text", |
||||
"ng:a": "View a Text Post", |
||||
"ng:c": "app",
|
||||
"ng:u": "post",//favicon. can be a did:ng:j
|
||||
"ng:g": "n:g:z:post:text",
|
||||
"ng:b": "TextViewer", // displayed with a <p>
|
||||
"ng:o": ["post/text"], |
||||
"ng:w": [], |
||||
}, |
||||
"n:g:z:pre": { |
||||
"ng:n": "Source Code", |
||||
"ng:a": "View a Source Code", |
||||
"ng:c": "app",
|
||||
"ng:u": "post",//favicon. can be a did:ng:j
|
||||
"ng:g": "n:g:z:pre",
|
||||
"ng:b": "PreTextViewer", // displayed with highlight.js
|
||||
"ng:o": ["code*","post/text"], |
||||
"ng:w": [], |
||||
}, |
||||
"n:g:z:pad": { |
||||
"ng:n": "Pad", |
||||
"ng:a": "Pad view of a document", |
||||
"ng:c": "app",
|
||||
"ng:u": "pad",//favicon. can be a did:ng:j
|
||||
"ng:g": "n:g:z:pad",
|
||||
"ng:b": "Pad", |
||||
"ng:o": ["plato/pad"], |
||||
"ng:w": [], |
||||
}, |
||||
"n:g:z:card": { |
||||
"ng:n": "Card", |
||||
"ng:a": "Card view of a document", |
||||
"ng:c": "app",
|
||||
"ng:u": "card",//favicon. can be a did:ng:j
|
||||
"ng:g": "n:g:z:card",
|
||||
"ng:b": "Card", |
||||
"ng:o": ["plato/card"], |
||||
"ng:w": [], |
||||
}, |
||||
"n:g:z:gallery": { |
||||
"ng:n": "Gallery", |
||||
"ng:a": "Gallery view of an album or collection", |
||||
"ng:c": "app",
|
||||
"ng:u": "gallery",//favicon. can be a did:ng:j
|
||||
"ng:g": "n:g:z:gallery",
|
||||
"ng:b": "Gallery", |
||||
"ng:o": ["media/album","data/collection"], |
||||
"ng:w": [], |
||||
}, |
||||
"n:g:z:app_store": { |
||||
"ng:n": "App Store", |
||||
"ng:a": "Install or remove Apps of NextGraph ecosystem", |
||||
"ng:c": "app",
|
||||
"ng:u": "app_store",//favicon. can be a did:ng:j
|
||||
"ng:g": "n:g:z:app_store",
|
||||
"ng:b": "AppStore", |
||||
"ng:o": ["app/z"], |
||||
"ng:w": [], |
||||
}, |
||||
"n:g:z:app_editor": { |
||||
"ng:n": "App editor", |
||||
"ng:a": "Create and modify your App with NextGraph IDE", |
||||
"ng:c": "app",
|
||||
"ng:u": "app_editor",//favicon. can be a did:ng:j
|
||||
"ng:g": "n:g:z:app_editor",
|
||||
"ng:b": "AppEditor", |
||||
"ng:o": ["app/z"], |
||||
"ng:w": ["app/z"], |
||||
}, |
||||
"n:g:z:list": { |
||||
"ng:n": "List view", |
||||
"ng:a": "See the content of document as a list", |
||||
"ng:c": "app",
|
||||
"ng:u": "list",//favicon. can be a did:ng:j
|
||||
"ng:g": "n:g:z:list",
|
||||
"ng:b": "ListView", |
||||
"ng:o": ["data/graph"], |
||||
"ng:w": ["data/graph"], |
||||
}, |
||||
"n:g:z:grid": { |
||||
"ng:n": "Grid view", |
||||
"ng:a": "See the content of document as a grid", |
||||
"ng:c": "app",
|
||||
"ng:u": "grid",//favicon. can be a did:ng:j
|
||||
"ng:g": "n:g:z:grid",
|
||||
"ng:b": "GridView", |
||||
"ng:o": ["data/graph"], |
||||
"ng:w": ["data/graph"], |
||||
}, |
||||
"n:g:z:media": { |
||||
"ng:n": "Media view", |
||||
"ng:a": "View media", |
||||
"ng:c": "app",
|
||||
"ng:u": "view",//favicon. can be a did:ng:j
|
||||
"ng:g": "n:g:z:media",
|
||||
"ng:b": "MediaView", |
||||
"ng:o": ["media/*"], |
||||
"ng:w": [], |
||||
}, |
||||
"n:g:z:service_editor": { |
||||
"ng:n": "Service Editor", |
||||
"ng:a": "Write and define your Service in Rust or JS/Deno", |
||||
"ng:c": "app",
|
||||
"ng:u": "post_edit",//favicon. can be a did:ng:j
|
||||
"ng:g": "n:g:z:service_editor", |
||||
"ng:b": "CodeMirrorEditor", |
||||
"ng:o": [], |
||||
"ng:w": ["service/*"], |
||||
}, |
||||
"n:g:z:service_invoke": { |
||||
"ng:n": "Service Invoker", |
||||
"ng:a": "Invoke internal Service, with optional arguments", |
||||
"ng:c": "app",
|
||||
"ng:u": "invoke",//favicon. can be a did:ng:j
|
||||
"ng:g": "n:g:z:service_invoke", |
||||
"ng:b": "ServiceInvoker", |
||||
"ng:o": ["service"], |
||||
"ng:w": [], |
||||
}, |
||||
"n:g:z:external_service_invoke": { |
||||
"ng:n": "Service Invoker", |
||||
"ng:a": "Invoke the Service, with optional arguments", |
||||
"ng:c": "app",
|
||||
"ng:u": "invoke",//favicon. can be a did:ng:j
|
||||
"ng:g": "n:g:z:external_service_invoke", |
||||
"ng:b": "ExternalServiceInvoker", |
||||
"ng:o": ["service/*"], |
||||
"ng:w": [], |
||||
}, |
||||
"n:g:z:upload_file": { |
||||
"ng:n": "Upload file", |
||||
"ng:a": "Upload a binary file into a document", |
||||
"ng:c": "app",
|
||||
"ng:u": "load",//favicon. can be a did:ng:j
|
||||
"ng:g": "n:g:z:upload_file", |
||||
"ng:b": "UploadFile", |
||||
"ng:o": [], |
||||
"ng:w": ["data/graph"], |
||||
}, |
||||
// TODO: "n:g:z:columns", "n:g:z:tree", "n:g:z:summary", "n:g:z:list_n_post", "n:g:z:grid_n_post", "n:g:z:board",
|
||||
// TODO: "n:g:z:map", "n:g:z:chart", "n:g:z:pivot", "n:g:z:timeline", "n:g:z:email", "n:g:z:web_archive", "n:g:z:diagram_editor", "n:g:z:pdf", "n:g:z:latex", "n:g:z:media_editor",
|
||||
// TODO: "n:g:z:contract", "n:g:z:text_query", "n:g:z:web_query", "n:g:z:scan_qrcode",
|
||||
// TODO: "n:g:z:messenger", "n:g:z:group", "n:g:z:contact", "n:g:z:event", "n:g:z:calendar", "n:g:z:scheduler",
|
||||
// TODO: "n:g:z:task", "n:g:z:project", "n:g:z:issue", "n:g:z:form_editor", "n:g:z:form_filler", "n:g:z:cad", "n:g:z:slides", "n:g:z:question", "n:g:z:poll",
|
||||
|
||||
}; |
||||
|
||||
|
||||
// OFFICIAL SERVICES
|
||||
//"n:g:z:dump_rdf:turtle", "n:g:z:dump_rdf:n3", "n:g:z:dump_rdf:json_ld", "n:g:z:load_rdf:turtle", "n:g:z:load_rdf:n3", "n:g:z:load_rdf:json_ld", "n:g:z:load_file", "n:g:z:dump_file",
|
||||
//"n:g:z:dump_json", "n:g:z:dump_xml", "n:g:z:dump_text", "n:g:z:load_json", "n:g:z:load_xml", "n:g:z:load_text", "n:g:z:load_md", "n:g:z:sparql_query", "n:g:z:sparql_update", "n:g:z:dump_crdt_source", "n:g:z:dump_ng_html_file", "n:g:z:dump_ng_file"
|
||||
|
||||
export const official_services = { |
||||
"n:g:z:dump_rdf:turtle": { |
||||
"ng:n": "Turtle export", |
||||
"ng:a": "Export quads of RDF Graphs in Turtle format", |
||||
"ng:c": "service", |
||||
"ng:u": "data",// favicon. can be a did:ng:j
|
||||
"ng:g": "n:g:z:dump_rdf:turtle", |
||||
"ng:o": ["data/graph"], |
||||
"ng:w": [], |
||||
"ng:result": ["file/iana/text/turtle"], |
||||
}, |
||||
"n:g:z:dump_rdf:n3": { |
||||
"ng:n": "N3 export", |
||||
"ng:a": "Export quads of RDF Graphs in N3 format", |
||||
"ng:c": "service", |
||||
"ng:u": "data",// favicon. can be a did:ng:j
|
||||
"ng:g": "n:g:z:dump_rdf:n3", |
||||
"ng:o": ["data/graph"], |
||||
"ng:w": [], |
||||
"ng:result": ["file/iana/text/n3"], |
||||
}, |
||||
"n:g:z:dump_rdf:json_ld": { |
||||
"ng:n": "JSON-LD export", |
||||
"ng:a": "Export quads of RDF Graphs in JSON-LD format", |
||||
"ng:c": "service", |
||||
"ng:u": "data",// favicon. can be a did:ng:j
|
||||
"ng:g": "n:g:z:dump_rdf:json_ld", |
||||
"ng:o": ["data/graph"], |
||||
"ng:w": [], |
||||
"ng:result": ["file/iana/application/ld+json"], |
||||
}, |
||||
"n:g:z:load_rdf:turtle": { |
||||
"ng:n": "Import Turtle triples", |
||||
"ng:a": "Import Turtle triples into the document", |
||||
"ng:c": "service", |
||||
"ng:u": "load_graph",// favicon. can be a did:ng:j
|
||||
"ng:g": "n:g:z:load_rdf:turtle", |
||||
"ng:o": [], |
||||
"ng:w": ["data/graph"], |
||||
}, |
||||
"n:g:z:load_rdf:n3": { |
||||
"ng:n": "Import N3 triples", |
||||
"ng:a": "Import N3 triples into the document", |
||||
"ng:c": "service", |
||||
"ng:u": "load_graph",// favicon. can be a did:ng:j
|
||||
"ng:g": "n:g:z:load_rdf:n3", |
||||
"ng:o": [], |
||||
"ng:w": ["data/graph"], |
||||
}, |
||||
"n:g:z:load_rdf:json_ld": { |
||||
"ng:n": "Import JSON-LD triples", |
||||
"ng:a": "Import JSON-LD triples into the document", |
||||
"ng:c": "service", |
||||
"ng:u": "load_graph",// favicon. can be a did:ng:j
|
||||
"ng:g": "n:g:z:load_rdf:json_ld", |
||||
"ng:o": [], |
||||
"ng:w": ["data/graph"], |
||||
}, |
||||
"n:g:z:load_file": { |
||||
"ng:n": "Add file", |
||||
"ng:a": "Add a binary file in the document", |
||||
"ng:c": "service", |
||||
"ng:u": "load",// favicon. can be a did:ng:j
|
||||
"ng:g": "n:g:z:load_file", |
||||
"ng:o": [], |
||||
"ng:w": ["data/graph"], |
||||
}, |
||||
"n:g:z:dump_file": { |
||||
"ng:n": "Export file", |
||||
"ng:a": "Get the binary content of a file", |
||||
"ng:c": "service", |
||||
"ng:u": "dump",// favicon. can be a did:ng:j
|
||||
"ng:g": "n:g:z:dump_file", |
||||
"ng:o": ["file*"], |
||||
"ng:result": ["file/iana/*"], |
||||
}, |
||||
"n:g:z:dump_json": { |
||||
"ng:n": "JSON export", |
||||
"ng:a": "Export JSON content of document", |
||||
"ng:c": "service", |
||||
"ng:u": "data",// favicon. can be a did:ng:j
|
||||
"ng:g": "n:g:z:dump_json", |
||||
"ng:o": ["data/json", "data/map", "data/array", "data/table", "doc/diagram/jsmind", "doc/diagram/gantt", "doc/diagram/excalidraw", "doc/viz/*", "doc/chart/*", "prod/cad"], |
||||
"ng:w": [], |
||||
"ng:result": ["file/iana/application/json"], |
||||
}, |
||||
"n:g:z:dump_xml": { |
||||
"ng:n": "XML export", |
||||
"ng:a": "Export XML content of document", |
||||
"ng:c": "service", |
||||
"ng:u": "data",// favicon. can be a did:ng:j
|
||||
"ng:g": "n:g:z:dump_xml", |
||||
"ng:o": ["post/rich","post/md","post/html","page","data/xml", "doc/diagram/drawio"], |
||||
"ng:w": [], |
||||
"ng:result": ["file/iana/text/xml"], |
||||
}, |
||||
"n:g:z:dump_text": { |
||||
"ng:n": "Text export", |
||||
"ng:a": "Export plain-text content of document", |
||||
"ng:c": "service", |
||||
"ng:u": "dump",// favicon. can be a did:ng:j
|
||||
"ng:g": "n:g:z:dump_text", |
||||
"ng:o": ["post/text", "post/asciidoc", "code*", "service*", "contract", "query/sparql*","query/graphql","doc/diagram/mermaid","doc/diagram/graphviz","doc/diagram/flowchart", |
||||
"doc/diagram/sequence","doc/diagram/markmap","doc/diagram/mymind","doc/music*", "doc/maths", "doc/chemistry", "doc/ancientscript", "doc/braille", "media/subtitle"], |
||||
"ng:w": [], |
||||
"ng:result": ["file/iana/text/plain"], |
||||
}, |
||||
"n:g:z:dump_ng_html_file": { |
||||
"ng:n": "NextGraph Standalone file", |
||||
"ng:a": "Get a standalone HTML file of this Document", |
||||
"ng:c": "service", |
||||
"ng:u": "ext",// favicon. can be a did:ng:j
|
||||
"ng:g": "n:g:z:dump_ng_html_file", |
||||
"ng:o": ["data/graph"], |
||||
"ng:w": [], |
||||
"ng:result": ["file/iana/text/html"], |
||||
}, |
||||
"n:g:z:load_json": { |
||||
"ng:n": "Import JSON", |
||||
"ng:a": "Import some JSON into the document", |
||||
"ng:c": "service", |
||||
"ng:u": "load",// favicon. can be a did:ng:j
|
||||
"ng:g": "n:g:z:load_json", |
||||
"ng:o": [], |
||||
"ng:w": ["data/json","data/map", "data/array"], |
||||
}, |
||||
"n:g:z:load_xml": { |
||||
"ng:n": "Import XML", |
||||
"ng:a": "Import some XML into the document", |
||||
"ng:c": "service", |
||||
"ng:u": "load",// favicon. can be a did:ng:j
|
||||
"ng:g": "n:g:z:load_xml", |
||||
"ng:o": [], |
||||
"ng:w": ["data/xml"], |
||||
}, |
||||
"n:g:z:load_text": { |
||||
"ng:n": "Import Text", |
||||
"ng:a": "Import some text into the document", |
||||
"ng:c": "service", |
||||
"ng:u": "load",// favicon. can be a did:ng:j
|
||||
"ng:g": "n:g:z:load_text", |
||||
"ng:o": [], |
||||
"ng:w": ["post/text","post/rich","post/md"], |
||||
}, |
||||
"n:g:z:load_md": { |
||||
"ng:n": "Import Markdown", |
||||
"ng:a": "Import some Markdown into the document", |
||||
"ng:c": "service", |
||||
"ng:u": "load",// favicon. can be a did:ng:j
|
||||
"ng:g": "n:g:z:load_md", |
||||
"ng:o": [], |
||||
"ng:w": ["post/md"], |
||||
}, |
||||
"n:g:z:sparql_query": { |
||||
"ng:n": "SPARQL query", |
||||
"ng:a": "Invoke a SPARQL Query", |
||||
"ng:c": "service", |
||||
"ng:u": "sparql_query",// favicon. can be a did:ng:j
|
||||
"ng:g": "n:g:z:sparql_query", |
||||
"ng:o": ["data/graph"], |
||||
"ng:w": [], |
||||
"ng:result": ["file/iana/application/sparql-results+json","file/iana/application/json"] |
||||
}, |
||||
"n:g:z:sparql_update": { |
||||
"ng:n": "SPARQL update", |
||||
"ng:a": "Invoke a SPARQL Update", |
||||
"ng:c": "service", |
||||
"ng:u": "sparql_query",// favicon. can be a did:ng:j
|
||||
"ng:g": "n:g:z:sparql_update", |
||||
"ng:o": [], |
||||
"ng:w": ["data/graph"], |
||||
}, |
||||
"n:g:z:dump_crdt_source": { // uses dump_rdf, dump_text, dump_json or dump_xml depending on the CRDT type
|
||||
"ng:n": "Export source", |
||||
"ng:a": "Export source of document as text file", |
||||
"ng:c": "service", |
||||
"ng:u": "source",// favicon. can be a did:ng:j
|
||||
"ng:g": "n:g:z:dump_crdt_source", |
||||
"ng:o": ["data/graph"], |
||||
"ng:w": [], |
||||
"ng:result": ["file/iana/*"] |
||||
}, |
||||
}; |
@ -0,0 +1,5 @@ |
||||
NG_ACCOUNT_DOMAIN= |
||||
NG_ACCOUNT_ADMIN= |
||||
NG_ACCOUNT_LOCAL_PEER_KEY= |
||||
NG_ACCOUNT_SERVER=127.0.0.1,1440,[the broker's peer ID] |
||||
RUST_LOG= |
Loading…
Reference in new issue