LinkedDataFragments / Client.js

[DEPRECATED] A JavaScript client for Triple Pattern Fragments interfaces.
http://linkeddatafragments.org/
Other
92 stars 35 forks source link

What is ldf-client-http? #42

Closed sharpaper closed 4 years ago

sharpaper commented 6 years ago

Would be useful to add an explanation in README, in particular the difference with ldf-client.

rubensworks commented 6 years ago

With ldf-client-http, you can start the client and make it act like a SPARQL endpoint, so it supports the SPARQL protocol. We mainly use this ourselves for benchmarking.

You can for example expose a SPARQL endpoint over DBpedia on port 8080 by running ldf-client-http fragments.dbpedia.org/2016-04/ -p 8080. It is configured in pretty much the same way as the regular client. You can for example also provide multiple TPF entrypoints to enable federation.

A short description on this in the README might indeed be good to add.

sharpaper commented 6 years ago

So the stack is this?

server1 > data-source > ldf-server   \
                                      ---> Internet <--- ldf-client-http (accepts SPARQL queries over HTTP)
server2 > data-source > ldf-server   /
rubensworks commented 6 years ago

In most cases, yes. But it's also perfectly possible to run one (or more) LDF servers on one machine, and run ldf-client-http on that same machine.

jacoscaz commented 6 years ago

I will test this soon as this would allow node-quadstore to complete its HTTP API with a SPARQL endpoint, which would be quite neat. As soon as I get around to this I should be able to contribute some documentation.

jacoscaz commented 6 years ago

I've ended up porting some of ldf-client-http's code into node-quadstore while doing away with the child process.spawn() invocation as I did not want to burden the SPARQL endpoint with an additional HTTP roundtrip and/or starting a separate process per query. See https://github.com/beautifulinteractions/node-quadstore/blob/devel/lib/http/controllers/sparql.js .

@rubensworks @RubenVerborgh similarly to https://github.com/LinkedDataFragments/Client.js/issues/12, I think it'd be nice to have the wrapping logic in ldf-client-http easily available to other modules as an exported function. Perhaps this "modularization" could be something for the new client?

I'd be happy to contribute in whatever capacity I can.

rubensworks commented 6 years ago

@jacoscaz Indeed, for the new client we should move this logic to a separate reusable module. I'll post something here once we have done this :-)

ColinMaudry commented 6 years ago

Some documentation on how to configure, run and query ldf-client-http would be really cool :)

That would be really cool to fuel a instance of Elda with my billion triples from https://github.com/ColinMaudry/sirene-ld/.

mathib commented 6 years ago

Hi! First of all: awesome work with LDF server/client!

I would like to use ldf-client-http so quickly setup a low cost demo SPARQL endpoint for a small amount of triples and I think ldf-client-http would be very useful here. I was wondering if there is an overview of the implemented SPARQL functionality of the ldf-client-http? I found that there are issues with the following:

rubensworks commented 6 years ago

@mathib That functionality is indeed not implemented in ldf-client, and will (most likely) not be in the future.

However, our new (modular) client can be found here: https://github.com/comunica/comunica/tree/master/packages/actor-init-sparql (it can also be started as a HTTP service) It supports all features from ldf-client, and more. More information can be found in the README of comunica.

rubensworks commented 4 years ago

This project has now been deprecated in favor of Comunica, if this issue is still relevant to you, feel free to open a new issue there.