Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Triple Pattern Fragments is a form of Linked Data Fragments (see References) for querying a triple store to retrieve a set of triples matching a specified pattern.   The pattern is always of the form subject predicate object, where any or all of the elements of the pattern may be unspecified, that is, wildcards.

SPARQL and Linked DataFragments, alternatives to Triple Pattern Fragments, are very powerful, and as a result, can generate queries that take a long time to run, slowing the server, and in some cases, making the server unavailable.   This results in sites shutting down their access points for fear of losing availability to long-running queries.   Triple Pattern Fragments solves this problem by allowing only one kind of query, the pattern.   Pattern matching is indexed and very fast, insuring the servers remain available while handling queries.

For example the pattern <uri> * * finds all the triples which have the specified uri as a subject.   The pattern * <uri> * finds all the triples with the specified predicate, and * * <uri> finds all the triples with the specified object.

Triple pattern fragments is a very fast, very simple means for querying a triple store.   The triple pattern fragments API in VIVO puts little load on the server, providing a simple means for getting data from the triple store.   The API has a web interface for manual use, can be used from the command line via curl, and can be used by programs.   Each mode of usage is described below.

...

To use TPF manually, visit the TPF endpoint of a VIVO, http://vivo/tpf/core, where "vivo" is the web address of the VIVO of interest.   In the example below we use http://openvivo.org/tpf/core You will see:

...

Notice that results are returned for the triple pattern fragment * * *.   More than 5 million triples were returned, wit with the first hundred being displayed on the web page.   Pressing "next" at the top of the list of triples will display the next hundred triples.   Each of the rows in the display is a triple in the full graph.   The TPF web page uses a display with simplifies the presentation of URI.   Many of the URI are shortened, not with the use of prefixes, but merely by intelligently truncating the URI.

Each of the elements in each of the triples is a link.   Clicking a link will issue a TPF query with the selected element as the specified value in a triple.   For example, clicking on "Tokyo" in the esample above, generates a TPF request of the form * * "Tokyo" – that is, find all the triples that have the text string "Tokyo" as an object.   The result is shown below:

We see that OpenVIVO has 601 triples with "Tokyo" as an object. The displayed triples show Tokyo as a locality in an address. Putting double quotes around literal values

Specifying URI 

SPARQL Queries Resolved as Triple Pattern Fragments

The Linked Data Fragments server can also resolve full SPARQL queries.   The queries are decomposed into a series of TPF requests behind the scenes in the browser.   The VIVO server sees only TPF requests.   Each TPF request is handled quickly as previously described.   To issue a SPARQL query using Triple Pattern Fragments, go to http://yourvivo/tpf where yourvivo is the web address of your VIVO.   You will see a screen such as that below.   Type in your query.   You will need to provide the prefixes used in your query, as shown below.   Press Execute, and the query is resolved a series of TPF queries.   Results are presented dynamically.

To try this yourself, you can use the Linked Data Fragments Server of OpenVIVO, available here:    http://openvivo.org/tpf


Curl

...

  1. Linked Data Fragments In-depth http://linkeddatafragments.org/in-depth/
  2. Verborgh, R. et al. Triple Pattern Fragments: A low cost knowledege graph interface for the web https://www.sciencedirect.com/science/article/pii/S1570826816000214?via%3Dihub
  3. Verborgh, R. The Future is Federated.   Invited presentation at 2016 VIVO Conference, Denver, Colorado. http://openvivo.org/display/doi10.6084/m9.figshare.3680310
  4. LinkedDataFragments Server.   Github.    https://github.com/LinkedDataFragments/Server.Java