Getting Started‎ > ‎

Platform FAQ


Introduction

What is the Talis Platform?

The Talis Platform is an environment for building next generation applications and services based on Semantic Web technologies. It is a hosted system which provides an efficient, robust storage infrastructure. Both arbitrary documents and RDF-based semantic content are supported, with sophisticated query, indexing and search features.


What is Bigfoot?

Bigfoot is a component at the core of the platform, it takes care of managing the stores.

Is the Platform going to be open source?

We'll certainly open source lots of the platform and obviously we're using open source software extensively. No final decision has been made on open sourcing the entire platform codebase. It's mainly about timing: the platform is still evolving so we want to be able to change things radically if we go down a blind alley. Making it OSS too soon might mean we have to fork it just to repair something we did wrong.

Who will own the data I put into the system?

People using the platform will always own their own data. They will always be able to remove their data from the platform - it's a core platform principle. We'll also provide ways for them to declare their own licencing terms etc. We won't put obstacles in their way if they want to leave, so that means we have to be better than the alternatives so they don't want to leave.

Where can I find out more about the Talis Platform?

You can visit the Talis Platform Website which contains more information, there's often lots of Talis folk in #talis on the freenode irc network.

Platform Stores

About Stores

What is a Store?

A store is a grouping of related data and metadata. For convenience each store is assigned one or more owners who are the people who have rights to configure the access controls over that data and metadata. Each store provides a uniform REST interface to the data and metadata it manages.

A store consists of two "boxes" – a Contentbox designed for unstructured or binary blobs and a Metabox designed for holding richly structured metadata. The metadata in the metabox may be about the content in the contentbox or it may be unrelated. The metabox is implemented as an RDF triple store. As content is added to the contentbox metadata is automatically extracted from it and stored in the associated metabox. The platform allows querying of the metabox directly using Sparql or of the contentbox using store-specific indexes. Stores can be aggregated in a number of configurations to allow querying across groups of stores.

What is a Contentbox?

The Contentbox is the part of a store designed for holding unstructured data. You can access a store's contentbox at: 

http://api.talis.com/bf/stores/{storename}/items

You can POST things to it and rules can be configured per store to extract metadata from those items. You can also search it using GET. The search results are returned in RSS 1.0 by default.

What is a Metabox?

The Metabox is the part of a store designed for holding structured metadata in the form of an RDF graph. The URI of each store's Metabox is

http://api.talis.com/stores/{storename}/meta

The Metabox can be queried using Sparql and also supports full text searching. RDF can be added to it by POSTing either an RDF document or a Changeset


Creating a Store

How do I create a store?

Currently we are allocating stores on a restricted request basis. In the future we will allow self-service creation of stores.

How much does a store cost?

If you are a member of the n2 developer community then you may have any number of free development stores. Please use the developer contact form to sign-up. As part of the Talis Connected Commons scheme, we also offer free hosting for data that is in the public domain. 

Can a store have any name I choose?

Store names may contain only the letters a-z, numbers 0-9 and hyphens. They may only start with a letter. Store names are always lowercase. We allow any name that follow those rules and are not offensive or potential trademark violations.

Using a Store

The platform is a collection of stores, each store is a set of Ground RDF Graphs and a Content Store for storing arbitrary documents.

How do I add RDF to a Store?

You can POST RDF/XML directly to a store's Metabox. You must have the full-update capability to perform this operation. Don't forget to set the content-type of the POST to be application/rdf+xml. The following cURL command demonstrates how to add RDF to a store:

curl -d @data.rdf -H content-type:application/rdf+xml http://api.talis.com/stores/mystore/meta

If the store owner has assigned users the full-update capability then you will need to supply a username and password:

curl -d @data.rdf --digest -u "user:password" -H content-type:application/rdf+xml http://api.talis.com/stores/mystore/meta

Note that all URIs in any RDF/XML that you wish to POST must be absolute. Best practice is to specify an xml:base attribute in the RDF/XML to ensure that any relative URIs can be resolved to absolute ones.

Be careful to not include a trailing / after the /meta. This will result in a HTTP response of 401 Unauthorized, but without verbose mode (-v) turned on in curl you won't see an immediate difference.

How do I update the RDF in a store?

Each store supports the Changeset Protocol for adding and removing triples from the store's Metabox. Changeset can be applied in an unversioned fashion (which requires the full-update capability) or in versioned fashion (which requires the versioned-update capability). Versioned changesets are applied in the same way as unversioned ones but the changeset is retained and linked to previous changesets for the same resource, forming a linked list of changes to a store's Metabox. This list of changesets is like a history of changes to the graph and allows the store owner to create applications that support wiki-like rollback and recent changes lists.

For more details, see Changesets and ChangeSet TroubleShooting

How do I add content to a store?

You can POST documents and binaries to a store's Contentbox. You must have the full-update capability to perform this operation. The store will remember the content type of the content so don't forget to specify it in your POST request. The following cURL command demonstrates how to add content to a store:

curl -d @myfile.jpg -H content-type:image/jpeg http://api.talis.com/stores/mystore/items

And the secure version

curl -d @myfile.jpg --digest -u "user:password" -H content-type:image/jpeg http://api.talis.com/stores/mystore/items

How do I get a list of all the items in a store?

To get a list of all the items submitted to a store, use the Store OAI Service. A URL like this should work to get you started:

http://api.talis.com/stores/mystore/services/oai-pmh?metadataPrefix=oai_dc&verb=ListRecords

How do I remove items from a store?

If you have the full-update capability then you can issue an HTTP DELETE request to the item's URI. For example:

curl -X DELETE --digest -u "user:password" http://api.talis.com/stores/mystore/items/909332aa-1139-4f00-886f-4b50067e16d4


Where did all my blank nodes go?

Due to current limitations in the update-protocol (using changesets) the platform does not yet support blank nodes. The Platform replaces graph containing blank nodes with an arbitrary ground instance by generating URIs for all blank nodes added to a store. An implication of this, is that when the same graph is posted multiple times new nodes (additional triples) are created. Another implication is that your RDF is not round-trippable.

How do I authenticate?

See Authentication FAQ

Managing a Store

What is a Query Profile?

Query Profile is a list of field names and their weights. It is used to configure the relevance ranking of searches against the Contentbox. When a user searches the Contentbox and doesn't supply an explicit field name in their search the store uses the Query Profile to determine which fields should be searched.

How do I get or update my store's query profile?

See Store Query Profile


What is a Field/Predicate Map?

Field Predicate Map is a list of RDF property URIs and short names that they map to. When a user performs a query on a store's Contentbox the Field/Predicate map is used to convert the short names used in the query into the property URIs that are being searched.


How do I get or update my store's field/predicate map?

See Store Field Predicate Map


How do I clear all data out of a store?

You need to POST a Reset Data Job to your store's Job Queue. You must have the configure-store capability to perform this operation.


My job hasn't run - why?

The most common cause of a job not running is that you've submitted it with the wrong date and time. Double check the date you used and remember that the Platform always runs in UTC which is an hour behind British Summer Time (i.e. 4pm BST is 3pm UTC)

How can I reindex my RDF?

Submit a Reindex Job to your store's job queue.

How can I see my stores access status?

Performing a GET on this URL http://api.talis.com/stores/mystore/config/access-status will give you your stores current access status. See Release 20 for more details.

Comments