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

Think about having a querying agent on each instance #24

Open
lecoqlibre opened this issue Dec 11, 2023 · 0 comments
Open

Think about having a querying agent on each instance #24

lecoqlibre opened this issue Dec 11, 2023 · 0 comments

Comments

@lecoqlibre
Copy link
Collaborator

lecoqlibre commented Dec 11, 2023

On each instance, we could have an agent listening for incoming search requests.

Such a request could be like: GET http://search.localhost:8001/users?skills=12,33&city=toulouse (localhost:8001 represents the instance 1).

The agent would use comunica to query the indexes on its associated instance:

  • If there is no result the agent return a 404 (for example).
  • If there are results, the agent writes them in a document on the POD of the instance. This document is returned to the caller and could be reused later to respond to the same query (if data did not change). Is it useful?

The app would be querying the whole federation like...:

  • GET http://search.localhost:8001/users?skills=12,33&city=toulouse
  • GET http://search.localhost:8002/users?skills=12,33&city=toulouse
  • ...
  • GET http://search.localhost:8032/users?skills=12,33&city=toulouse

...And gather the results like it want.

The agent discovery could be done thanks to a predicate in the instance WebID or anywhere else defined by the client-to-client standard.

The agent could advertise it's search URL thanks to a dedicated ontology.

The agent could implement LDP paging to return only a subset of the results. For instance, a querying app could ask for at most 5 users on each instance of the federation:

GET /users?skills=12,33&city=toulouse HTTP/1.1
Host: search.localhost:8001
Accept: text/turtle
Prefer: return=representation; max-triple-count="5"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants