Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Advanced search in the internal collections #161

Open
12 tasks
jgonggrijp opened this issue Mar 9, 2024 · 0 comments
Open
12 tasks

Advanced search in the internal collections #161

jgonggrijp opened this issue Mar 9, 2024 · 0 comments

Comments

@jgonggrijp
Copy link
Member

jgonggrijp commented Mar 9, 2024

Not to be confused with #140, which queries in external data sources.

This is a long-term design for internal search, mostly based on our discussion on February 21. I filled in some details which are still open to discussion.

  • The client should contain a GUI for composing queries, which should include at least the following capabilities:

    • Filtering by all biographical and bibliographical fields described in the EDPOP record ontology.
    • AND/OR/NOT combinators for filters, ideally with support for recursion.
    • A way to select which collections should be filtered. Querying multiple collections at the same time is an explicit goal here.
    • A sorting criterion, including as options at least all biographical and bibliographical fields.
  • Everything the user enters into this GUI is represented in a JSON-based model. The model is rich enough to fully reconstruct the state of the GUI.

    • Besides the GUI-controlled settings above, the representation must also include an offset and limit in order to control pagination.
  • The client sends the JSON representation to a backend endpoint.

    • At the user's option, the JSON representation may be stored for later retrieval.
    • The backend endpoint compiles the JSON representation to SPARQL, adding authorization-related aspects (i.e., in order to mask data that the user is not supposed to see).
    • The SPARQL query is sent to the triplestore in order to retrieve all records matching the criteria.
  • The results are sent back to the client, which renders them in a list.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: No status
Development

No branches or pull requests

1 participant