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.
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.
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.
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.
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.
The Contentbox is the part of a store designed for holding unstructured data. You can access a store's contentbox at:
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.
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
Currently we are allocating stores on a restricted request basis. In the future we will allow self-service creation of stores.
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.
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.
The platform is a collection of stores, each store is a set of Ground RDF Graphs and a Content Store for storing arbitrary documents.
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:
If the store owner has assigned users the full-update capability then you will need to supply a username and password:
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
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.
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:
And the secure version
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:
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:
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.
A 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.
A 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?
How do I clear all data out of a store?
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)
Submit a Reindex Job to your store's job queue.
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.