Skip to content

Commit 6913208

Browse files
authored
Merge pull request #4 from Materials-Data-Science-and-Informatics/develop
Develop
2 parents 39f2e77 + 3b61529 commit 6913208

32 files changed

+11930
-754
lines changed

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,3 +22,7 @@ dist-ssr
2222
*.njsproj
2323
*.sln
2424
*.sw?
25+
26+
# project configuration
27+
config.yml
28+
!examples/config.yml

.somesy.toml

Lines changed: 20 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,42 @@
11
[project]
2-
name = "beamer-gui"
3-
version = "0.0.1"
4-
description = "A GUI for creating a Beamer presentation using LaTeX."
5-
keywords = ["beamer", "latex"]
2+
name = "rdf-graph-visualization"
3+
version = "0.1.0"
4+
description = "Visualization of RDF graphs in Turtle format in 3D on the web."
5+
keywords = ["rdf", "graph", "turtle", "visualization"]
66
license = "MIT"
7-
repository = "https://github.com/Materials-Data-Science-and-Informatics/beamer-gui"
7+
repository = "https://github.com/Materials-Data-Science-and-Informatics/rdf-graph-visualization"
8+
homepage = "https://github.com/Materials-Data-Science-and-Informatics/rdf-graph-visualization"
89

910
[[project.people]]
1011
family-names = "Soylu"
1112
given-names = "Mustafa"
1213
1314
orcid = "https://orcid.org/0000-0003-2637-0432"
14-
15-
contribution = "Main developer and project manager."
16-
contribution_types = ["maintenance", "code", "test", "review", "doc"]
17-
15+
contribution = "The main author, maintainer and tester."
16+
contribution_begin = "2023-03-01"
17+
contribution_types = ["ideas", "code", "design", "test"]
1818
author = true
1919
maintainer = true
2020

2121
[[project.people]]
22-
family-names = "D'Mello"
23-
given-names = "Fiona"
24-
orcid = "https://orcid.org/0000-0002-0465-1009"
25-
26-
27-
contribution = "Main developer."
28-
contribution_types = ["ideas", "code", "test", "review", "doc"]
29-
30-
author = true
22+
family-names = "Fathalla"
23+
given-names = "Said"
24+
25+
orcid = "https://orcid.org/0000-0002-2818-5890"
3126

27+
contribution_begin = "2023-03-01"
28+
contribution_types = ["ideas", "userTesting"]
3229

3330
[[project.people]]
3431
family-names = "Hofmann"
3532
given-names = "Volker"
3633
3734
orcid = "https://orcid.org/0000-0002-5149-603X"
3835

36+
contribution = "Discussions and suggestions concerning tool scope and usability."
37+
contribution_begin = "2023-06-01"
38+
contribution_end = "2023-06-30"
39+
contribution_types = ["ideas", "userTesting"]
3940
publication_author = true
4041

4142
[[project.people]]
@@ -44,7 +45,5 @@ given-names = "Stefan"
4445
4546
orcid = "https://orcid.org/0000-0001-9560-4728"
4647

47-
contribution_types = ["ideas", "fundingFinding"]
48-
48+
contribution_types = ["fundingFinding"]
4949
publication_author = true
50-

CITATION.cff

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
cff-version: 1.2.0
2+
message: If you use this software, please cite it using these metadata.
3+
type: software
4+
title: rdf-graph-visualization
5+
abstract: Visualization of RDF graphs in Turtle format in 3D on the web.
6+
version: 0.1.0
7+
keywords:
8+
- rdf
9+
- graph
10+
- turtle
11+
- visualization
12+
authors:
13+
- family-names: Soylu
14+
given-names: Mustafa
15+
orcid: https://orcid.org/0000-0003-2637-0432
16+
17+
- family-names: Hofmann
18+
given-names: Volker
19+
orcid: https://orcid.org/0000-0002-5149-603X
20+
21+
- family-names: Sandfeld
22+
given-names: Stefan
23+
orcid: https://orcid.org/0000-0001-9560-4728
24+
25+
contact:
26+
- family-names: Soylu
27+
given-names: Mustafa
28+
orcid: https://orcid.org/0000-0003-2637-0432
29+
30+
license: MIT
31+
repository-code:
32+
https://github.com/Materials-Data-Science-and-Informatics/rdf-graph-visualization
33+
url:
34+
https://github.com/Materials-Data-Science-and-Informatics/rdf-graph-visualization

README.md

Lines changed: 80 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,90 @@
1-
# React + TypeScript + Vite
1+
# RDF Graph Visualization
22

3-
This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
3+
## Description
4+
This project is a TypeScript/JavaScript application that processes RDF data to create a graph representation. It uses React for the frontend and Chakra UI for styling.
45

5-
Currently, two official plugins are available:
6+
We strongly suggest users to use `turtle` format for RDF data and `schema.org` vocabulary for the properties. The application is designed to work with the `schema.org` vocabulary, since we developed it for a specific use case. However, it can be easily modified to work with other vocabularies.
67

7-
- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh
8-
- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh
8+
## Features
9+
- Parses RDF data and filters relevant properties.
10+
- Creates nodes and edges for a graph representation.
11+
- Filters and displays nodes based on user-selected criteria.
912

10-
## Expanding the ESLint configuration
13+
## Installation
14+
1. Clone the repository.
1115

12-
If you are developing a production application, we recommend updating the configuration to enable type aware lint rules:
16+
```bash
17+
git clone https://github.com/Materials-Data-Science-and-Informatics/rdf-graph-visualization.git
18+
```
19+
2. Install dependencies:
20+
21+
```bash
22+
npm install
23+
```
24+
25+
3. Create the `config.yml` file in the root directory and set it according to next section.
26+
4. You can run the application with:
1327

14-
- Configure the top-level `parserOptions` property like this:
28+
```bash
29+
npm run dev
30+
```
31+
32+
5. Or you can build the application with below command and serve it with a web server.
1533

16-
```js
17-
export default tseslint.config({
18-
languageOptions: {
19-
// other options...
20-
parserOptions: {
21-
project: ['./tsconfig.node.json', './tsconfig.app.json'],
22-
tsconfigRootDir: import.meta.dirname,
23-
},
24-
},
25-
})
34+
```bash
35+
npm run build
2636
```
2737

28-
- Replace `tseslint.configs.recommended` to `tseslint.configs.recommendedTypeChecked` or `tseslint.configs.strictTypeChecked`
29-
- Optionally add `...tseslint.configs.stylisticTypeChecked`
30-
- Install [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) and update the config:
31-
32-
```js
33-
// eslint.config.js
34-
import react from 'eslint-plugin-react'
35-
36-
export default tseslint.config({
37-
// Set the react version
38-
settings: { react: { version: '18.3' } },
39-
plugins: {
40-
// Add the react plugin
41-
react,
42-
},
43-
rules: {
44-
// other rules...
45-
// Enable its recommended rules
46-
...react.configs.recommended.rules,
47-
...react.configs['jsx-runtime'].rules,
48-
},
49-
})
38+
## Configuration
39+
Configuration file has the necessary information to show nodes and links in the graph. Since a 3D graph on the browser consumes a lot of resources, it is important to filter the data to show only the necessary information. Properties that are not in the yaml file will be ignored. You can check [example config file](examples/config.yml) for more information.
40+
You can also check example RDF files in the examples folder to see how the data should be formatted.
41+
42+
The configuration file is a YAML file that has the following properties:
43+
```yaml
44+
# links will be created from these properties
45+
relationProperties:
46+
- "http://schema.org/affiliation"
47+
48+
# labels will be created from these properties
49+
labelProperties:
50+
- "http://schema.org/name"
51+
52+
# groups will be created from these properties
53+
groups:
54+
- name: 'Organization'
55+
types:
56+
- 'http://schema.org/Organization'
57+
properties:
58+
- 'http://schema.org/affiliation'
59+
color: '#FF0000'
5060
```
61+
62+
- `relationProperties`: List of properties that will be used to create links between nodes.
63+
- `labelProperties`: List of properties that will be used to create labels for nodes.
64+
- `groups`: List of groups that will be created based on the properties. Each group has the following properties:
65+
- `name`: Name of the group.
66+
- `types`: List of types that will be included in the group.
67+
- `properties`: List of properties that will be used to filter the data. **Can be empty.**
68+
- `color`: Color of the group. Please use HEX color codes.
69+
70+
## How to Cite
71+
72+
If you want to cite this project in your scientific work,
73+
please use the [citation file](https://citation-file-format.github.io/)
74+
in the [repository](https://github.com/Materials-Data-Science-and-Informatics/rdf-graph-visualization/blob/main/CITATION.cff).
75+
76+
## Acknowledgements
77+
78+
We kindly thank all authors and contributors.
79+
80+
<div>
81+
<img style="vertical-align: middle;" alt="HMC Logo" src="https://github.com/Materials-Data-Science-and-Informatics/Logos/raw/main/HMC/HMC_Logo_M.png" width=50% height=50% />
82+
&nbsp;&nbsp;
83+
<img style="vertical-align: middle;" alt="FZJ Logo" src="https://github.com/Materials-Data-Science-and-Informatics/Logos/raw/main/FZJ/FZJ.png" width=30% height=30% />
84+
</div>
85+
<br />
86+
87+
This project was developed at the Institute for Materials Data Science and Informatics
88+
(IAS-9) of the Jülich Research Center and funded by the Helmholtz Metadata Collaboration
89+
(HMC), an incubator-platform of the Helmholtz Association within the framework of the
90+
Information and Data Science strategic initiative.

codemeta.json

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
{
2+
"@context": [
3+
"https://doi.org/10.5063/schema/codemeta-2.0",
4+
"https://w3id.org/software-iodata",
5+
"https://raw.githubusercontent.com/jantman/repostatus.org/master/badges/latest/ontology.jsonld",
6+
"https://schema.org",
7+
"https://w3id.org/software-types"
8+
],
9+
"@type": "SoftwareSourceCode",
10+
"author": [
11+
{
12+
"@type": "Person",
13+
"givenName": "Mustafa",
14+
"familyName": "Soylu",
15+
"email": "[email protected]",
16+
"@id": "https://orcid.org/0000-0003-2637-0432"
17+
}
18+
],
19+
"name": "rdf-graph-visualization",
20+
"description": "Visualization of RDF graphs in Turtle format in 3D on the web.",
21+
"version": "0.1.0",
22+
"keywords": [
23+
"rdf",
24+
"graph",
25+
"turtle",
26+
"visualization"
27+
],
28+
"maintainer": [
29+
{
30+
"@type": "Person",
31+
"givenName": "Mustafa",
32+
"familyName": "Soylu",
33+
"email": "[email protected]",
34+
"@id": "https://orcid.org/0000-0003-2637-0432"
35+
}
36+
],
37+
"license": [
38+
"https://spdx.org/licenses/MIT"
39+
],
40+
"softwareHelp": "https://github.com/Materials-Data-Science-and-Informatics/rdf-graph-visualization",
41+
"codeRepository": "https://github.com/Materials-Data-Science-and-Informatics/rdf-graph-visualization",
42+
"contributor": [
43+
{
44+
"@type": "Person",
45+
"givenName": "Said",
46+
"familyName": "Fathalla",
47+
"email": "[email protected]",
48+
"@id": "https://orcid.org/0000-0002-2818-5890"
49+
},
50+
{
51+
"@type": "Person",
52+
"givenName": "Volker",
53+
"familyName": "Hofmann",
54+
"email": "[email protected]",
55+
"@id": "https://orcid.org/0000-0002-5149-603X"
56+
},
57+
{
58+
"@type": "Person",
59+
"givenName": "Stefan",
60+
"familyName": "Sandfeld",
61+
"email": "[email protected]",
62+
"@id": "https://orcid.org/0000-0001-9560-4728"
63+
}
64+
],
65+
"url": "https://github.com/Materials-Data-Science-and-Informatics/rdf-graph-visualization"
66+
}

eslint.config.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ export default tseslint.config(
88
{ ignores: ['dist'] },
99
{
1010
extends: [js.configs.recommended, ...tseslint.configs.recommended],
11-
files: ['**/*.{ts,tsx}'],
11+
files: ['{**/*,*}.{js,ts,jsx,tsx,html,vue},{!node_modules/*}'],
1212
languageOptions: {
1313
ecmaVersion: 2020,
1414
globals: globals.browser,

examples/config.yml

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
# links will be created from these properties
2+
relationProperties:
3+
- "http://schema.org/affiliation"
4+
- "http://schema.org/dataPublished"
5+
- "http://schema.org/dateModified"
6+
- "http://schema.org/provider"
7+
- "http://schema.org/license"
8+
- "http://schema.org/publisher"
9+
- "http://schema.org/author"
10+
- "http://schema.org/creator"
11+
- "http://schema.org/keywords"
12+
13+
# labels will be created from these properties
14+
labelProperties:
15+
- "http://schema.org/name"
16+
- "http://schema.org/text"
17+
- "http://schema.org/comment"
18+
19+
# groups will be created from these properties
20+
groups:
21+
- name: 'Organization'
22+
types: # below types will be in the organization group
23+
- 'http://schema.org/Organization'
24+
properties: # object of below properties will be in the organization group
25+
- 'http://schema.org/affiliation'
26+
- 'http://schema.org/provider'
27+
- 'http://schema.org/publisher'
28+
color: '#008000' # color of the nodes in this group on 3D view
29+
- name: 'Person'
30+
types:
31+
- 'http://schema.org/Person'
32+
properties:
33+
- 'http://schema.org/author'
34+
- 'http://schema.org/creator'
35+
color: '#FF0000'
36+
- name: 'Dataset'
37+
types:
38+
- 'http://schema.org/Dataset'
39+
color: '#0000FF'
40+
- name: 'Software'
41+
types:
42+
- 'http://schema.org/SoftwareSourceCode'
43+
color: '#FFFF00'
44+
- name: 'Document'
45+
types:
46+
- 'http://schema.org/Document'
47+
color: '#FFA500'
48+
- name: 'Article'
49+
types:
50+
- 'http://schema.org/Article'
51+
color: '#4B0082'
52+
- name: 'CreativeWork'
53+
types:
54+
- 'http://schema.org/CreativeWork'
55+
color: '#8A2BE2'
56+
- name: 'Service'
57+
types:
58+
- 'http://schema.org/Service'
59+
color: '#00FFFF'

0 commit comments

Comments
 (0)