Simpler URL query parameters to support pid resolution (and search?) #372

Open
opened 2026-07-02 11:19:19 +00:00 by jsheunis · 1 comment
Owner

We want an external system to be able to resolve to a specific record page in shacl-vue, given the record's PID. Currently it is possible to navigate to a specific record, with a url like:

https://pool.psychoinformatics.de/ui/?sh%3ANodeShape=xyzri%3AXYZProject&pid=xyzrins%3Aprojects%2Fabcd-j

So it has both the nodeshape as well as the pid as query parameters. These two required parameters are baked into the current functioning of shacl-vue's navigation. However, it is AFAIR not a hard technical restriction. One could change navigation to (also) allow only the pid parameter, and shacl-vue could then:

  • fetch the record with that pid from the backend
  • do a search for the quad that has the pid as subject and rdf:type as predicate, then we can get nodeshape from the object
  • then navigate to the record compliant with the currently supported parameters

As an alternative, a new feature can be built that fully excludes the nodeshape parameter. I need to think through the knock-on effects of this though.

A related feature request that also came up recently was to allow a search string as query parameter. The current pid parameter is handled as a special case of a search string, while the general case is not currently supported in shacl-vue.

We want an external system to be able to resolve to a specific record page in `shacl-vue`, given the record's PID. Currently it is possible to navigate to a specific record, with a url like: ``` https://pool.psychoinformatics.de/ui/?sh%3ANodeShape=xyzri%3AXYZProject&pid=xyzrins%3Aprojects%2Fabcd-j ``` So it has both the nodeshape as well as the pid as query parameters. These two required parameters are baked into the current functioning of shacl-vue's navigation. However, it is AFAIR not a hard technical restriction. One could change navigation to (also) allow only the `pid` parameter, and `shacl-vue` could then: - fetch the record with that pid from the backend - do a search for the quad that has the pid as subject and `rdf:type` as predicate, then we can get nodeshape from the object - then navigate to the record compliant with the currently supported parameters As an alternative, a new feature can be built that fully excludes the nodeshape parameter. I need to think through the knock-on effects of this though. A related feature request that also came up recently was to allow a search string as query parameter. The current `pid` parameter is handled as a special case of a search string, while the general case is not currently supported in `shacl-vue`.
Owner

I find that https://pool.v0.trr379.de/ui/?sh%3ANodeShape=dlthings%3AThing&pid=oasm-trr379-q01-v3-item4 almost works.

It fills in trr379-q01-v3-item4 into the search field.

However, it does not actually trigger a search. I need to manually remove 4 and reenter it. Afterwards the corresponding record is shown.

I find that https://pool.v0.trr379.de/ui/?sh%3ANodeShape=dlthings%3AThing&pid=oasm-trr379-q01-v3-item4 almost works. It fills in `trr379-q01-v3-item4` into the search field. However, it does not actually trigger a search. I need to manually remove `4` and reenter it. Afterwards the corresponding record is shown.
Sign in to join this conversation.
No milestone
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
orinoco/shacl-vue#372
No description provided.