You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+48-17Lines changed: 48 additions & 17 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,6 +7,36 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
8
8
## [Unreleased]
9
9
10
+
## [2.0.0] - 2025-05-29
11
+
12
+
### Added
13
+
14
+
- configs/oslo-kg: two class-related queries.
15
+
16
+
### Changed
17
+
18
+
- configs/onto-deside: updated to project configuration 2025-04-09 (#202).
19
+
- In the configuration file: per query `httpProxies` setting replaces global `httpProxy` setting (#4, #47).
20
+
- Error message when query has no sources was replaced with an application message in the empty result list (#204).
21
+
- configs/oslo-kg: use smaller datasets for queries.
22
+
- React-admin version updated to 5.7.2 (#207).
23
+
- Tool renamed to 'Miravi - a linked data viewer'; default favicon.ico and miravi.png provided (#210).
24
+
- Bumped Comunica version from 3.2.3 to 4.2.0, resulting in increased execution speed of some queries (#212).
25
+
Breaking change for typed literals in query configuration, "variables" field; see README for new syntax.
26
+
- Removed not supported cosmetic fields from configuration file (#18).
27
+
- JSON and SPARQL edit fields have syntax coloring and validation now (#142 and #143).
28
+
29
+
### Fixed
30
+
31
+
- Avoided (infinite) display of "The list is loading. Just a moment please." for queries that should show "The result list is empty.", in cases where the user does not have the right to read the involved source(s) (#209).
32
+
- Result list sorting works again and the behavior is improved - see the issue for details (#216).
33
+
- Loading values for variables ends with an error message if a required source is not available (#218).
34
+
- When visiting a templated query with variable values defined in the URL search parameters,
35
+
the resolved query is executed immediately, avoiding the delay it takes to first retrieve all options for the variables (#211).
36
+
- CONSTRUCT queries work again (#222).
37
+
- Config field "logoRedirectURL" is working (#17).
38
+
- After modifying an existing custom query, the previous result table is updated as expected now (#137).
39
+
10
40
## [1.7.0] - 2025-04-09
11
41
12
42
### Added
@@ -223,20 +253,21 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
Copy file name to clipboardExpand all lines: README.md
+46-17Lines changed: 46 additions & 17 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,8 +1,13 @@
1
-
# Generic Data Viewer React Admin
1
+
# Miravi - a linked data viewer
2
2
3
-
This Web app allows users to easily execute queries over multiple data sources (including Solid pods) and
3
+
This Web app allows users to easily execute queries over multiple linked data sources (including Solid pods) and
4
4
inspect the corresponding results.
5
5
6
+
About the name: Miravi reflects the many facets of the web — linking open and permissioned data into a unified view.
7
+
Rooted in the Latin *mirari* ("to look with wonder"), it turns fragmented knowledge into meaningful insight.
8
+
9
+
<imgsrc="./doc/miravi.png"width="200">
10
+
6
11
Table of contents:
7
12
8
13
*[Preface](#preface)
@@ -13,6 +18,7 @@ Table of contents:
13
18
*[Logging in](#logging-in)
14
19
*[Configuration file](#configuration-file)
15
20
*[Specifying sources](#specifying-sources)
21
+
*[About httpProxies](#about-httpproxies)
16
22
*[Adding variable type](#adding-variable-type)
17
23
*[Templated queries](#templated-queries)
18
24
*[Templated queries with fixed values for the template variables](#templated-queries-with-fixed-values-for-the-template-variables)
@@ -139,14 +145,8 @@ The configuration file must follow the structure shown below.
139
145
"title": "Title shown at the top of the app.",
140
146
"logoLocation": "Image location of the logo shown at the top of the app (relative to public folder.).",
141
147
"logoRedirectURL": "The URL the Web application redirects to when a user clicks on the logo.",
142
-
"mainAppColor": "The main colors used in the app, can be any CSS color.",
143
-
"backgroundColor": "Background color of the app, can be any CSS color.",
144
-
"titleColor": "The color of the title, can be any CSS color",
145
-
"textColor": "The color of all the text in teh app body, this means all text except header and footer.",
146
-
"footer": "HTML components or text that will function as the footer (will be placed in the footer div.)",
147
148
"defaultIDP": "The default value used for IDP when logging in, this IDP can be manually changed in the Web app as well. ",
148
-
"queryFolder": "The base location of the queries, all query locations will start from this folder (relative to public folder.)",
149
-
"httpProxy": "The http proxy through which the requests will be rerouted. When left empty, the Comunica query engine will handle it. This is useful when CORS headers are not set (correctly) on the queried source.",
149
+
"queryFolder": "The base location of the queries, all query locations will start from this folder (relative to public folder).",
150
150
"introductionText": "The text that the app shows on the dashboard, which the app also shows when you first open it.",
151
151
"queryGroups" : [
152
152
{
@@ -165,25 +165,36 @@ The configuration file must follow the structure shown below.
165
165
"icon": "The key to the icon for the query. This is optional and a default menu icon will be used when left empty.",
166
166
"comunicaContext": {
167
167
"sources": "Initial array of sources over which the query should be executed",
168
-
"useProxy": "True or false, whether the query should be executed through the proxy or not. This field is optional and defaults to false.",
169
168
... any other field that can be used in the Comunica query engine https://comunica.dev/docs/query/advanced/context/
170
169
},
171
170
"sourcesIndex": {
172
171
"url": "URL of the publicly available RDF resource acting as an index file for more sources over which the query should be executed",
173
172
"queryLocation": "Path to the location, relative to 'queryFolder', of the (auxiliary) query that yields the sources from above RDF resource"
"Path to the location, relative to 'queryFolder' of a query yielding some template variable values",
183
188
...
184
189
]
185
190
},
186
-
191
+
"httpProxies": [
192
+
{
193
+
"urlStart": "all sources whose url start with this string will be rerouted",
194
+
"httpProxy": "http proxy through which these sources will be rerouted - see also documentation 'About httpProxies' below."
195
+
}
196
+
...
197
+
],
187
198
"askQuery": {
188
199
"trueText": "The text that is to be shown when the query result is true (in ASK queries).",
189
200
"falseText": "The text that is to be shown when the query result is false (in ASK queries)."
@@ -208,6 +219,23 @@ The (auxiliary) query provided in `sourceIndex.queryLocation` is executed on `so
208
219
If `sourceIndex` is used and there is no `comunicaContext.lenient` property found, one will be created with value `true`.
209
220
This makes sure that the (main) query can succeed if not all obtained sources are accessible.
210
221
222
+
### About httpProxies
223
+
224
+
Per query, an optional array of `httpProxies` can be specified.
225
+
An http proxy can be used to solve CORS issues in case CORS headers are not set (correctly) on some queried sources.
226
+
Note that the involved sources can include those specified in `comunicaContext.sources` as well as those described in and found through `sourceIndex`.
227
+
228
+
We support static proxies such as [cors-anywhere](https://www.npmjs.com/package/cors-anywhere) that take the URL from the path.
229
+
230
+
Each element of such array contains a property `httpProxies` and a property `urlStart`.
231
+
232
+
We simply prepend the `httpProxy` value before the URL of each source whose URL starts with the string in the corresponding `urlStart` value.
233
+
234
+
Example: if
235
+
`httpProxies[i].urlStart` is set to `http://www.example.com/path-xyz` and
236
+
`httpProxies[i].httpProxy` is set to `http://myproxy.org/`,
237
+
source `http://www.example.com/path-xyz-source-xyz` will be accessed as `http://myproxy.org/http://www.example.com/path-xyz-source-xyz`.
238
+
211
239
### Adding variable type
212
240
213
241
When executing a query, it gives us either a URL, a literal value or [a blank node](https://www.w3.org/TR/rdf12-concepts/#section-blank-nodes).
@@ -365,9 +393,10 @@ The easiest way to add your own configuration is:
365
393
1. Get inspired by the configuration in `main/configs/demo`.
366
394
2. Choose your `<your-config>`: a string obeying regex `[a-z0-9-]+`; directory `main/configs/<your-config>` should not yet be in use.
367
395
3. Add your own queries in the `main/configs/<your-config>/public/queries` directory and in general, your own resources in the `main/configs/<your-config>/public` directory.
368
-
4. Write your own `main/configs/<your-config>/config.json` file, following the [configuration file documentation above](#configuration-file).
369
-
5. Run or build as documented above for the `demo` configuration, of course now using `<your-config>`.
370
-
6. Consider a pull request to add your configuration to this repo.
396
+
4. Add your own additional resources in `main/configs/<your-config>/public`, if the defaults you'll get from `main/config-defaults/public` are not satisfactory for you.
397
+
5. Write your own `main/configs/<your-config>/config.json` file, following the [configuration file documentation above](#configuration-file).
398
+
6. Run or build as documented above for the `demo` configuration, of course now using `<your-config>`.
399
+
7. Consider a pull request to add your configuration to this repo.
Copy file name to clipboardExpand all lines: RELEASE.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -20,8 +20,8 @@ and [CHANGELOG.md](./CHANGELOG.md) should reflect all modifications under the `#
20
20
In [CHANGELOG.md](./CHANGELOG.md):
21
21
22
22
* Create the new release section by adding a new release title line below the `## [Unreleased]` title line. Example: `## [1.7.0] - 2025-04-09`.
23
-
* Add a new release link line near the end of the file. Example: `[1.7.0]: https://github.com/SolidLabResearch/generic-data-viewer-react-admin/releases/tag/v1.7.0`.
24
-
* Update the `[Unreleased]` link in the bottom line to use the new release tag. Example: `[Unreleased]: https://github.com/SolidLabResearch/generic-data-viewer-react-admin/compare/v1.7.0...HEAD`
23
+
* Add a new release link line near the end of the file. Example: `[1.7.0]: https://github.com/SolidLabResearch/miravi-a-linked-data-viewer/releases/tag/v1.7.0`.
24
+
* Update the `[Unreleased]` link in the bottom line to use the new release tag. Example: `[Unreleased]: https://github.com/SolidLabResearch/miravi-a-linked-data-viewer/compare/v1.7.0...HEAD`
25
25
26
26
Enter the release tag in the version string in [/main/src/version.js](./main/src/version.js).
0 commit comments