LinkedDataFragments / Client.js

[DEPRECATED] A JavaScript client for Triple Pattern Fragments interfaces.

Home Page:http://linkeddatafragments.org/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

What is ldf-client-http?

sharpaper opened this issue · comments

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

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.

So the stack is this?

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

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.

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.

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 #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.

@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 :-)

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/.

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:

  • COUNT (no error, but it shows no results for the counted variable)
  • BIND: error 400 (unsupported group type)
  • VALUES: error 400 (unsupported group type)
  • FILTER NOT EXISTS: error 400
    There might be more functionality missing, as this is just the result of some quick manual testing. As I understood, the development of ldf-client-http is not top priority, but it would be useful for research purposes when creating small demos :)

@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.

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.