SlideShare a Scribd company logo
Getting Started with the Talis Platform Leigh Dodds  Platform Programme Manager Talis December 2008 http://creativecommons.org/licenses/by/2.0/uk/
Agenda Platform Overview Core Concepts Review of the RDF Model Managing binary data Managing structured metadata Exploring RDF data with SPARQL Extra Features Store Administration Summary
Platform Overview
Software as a Service Multi-Tenant Data Storage Service
Unstructured Data Storage e.g. binary files, including images, documents, etc
Structured Data Storage RDF metadata
Access Control All data is open (to read) by default Configurable access options
Full-Text Searching  and Querying
Standards Compliance RDF, SPARQL, HTTP
Platform Architecture Web API Metabox Contentbox
REST, RDF Authentication & Authorization Content Negotiation Core Concepts aka “The Science Bit”
REST Re presentational  S tate  T ransfer Correct Use of HTTP
Resource-Centric API Everything has a unique URI
Interact with resources using HTTP GET  = read PUT = write POST = update/modify DELETE = delete
Use HTTP Response Codes 200 = OK 201 = Created (new resource) 202 = Accepted (for processing) 400 = Bad Request 500 = Server Error
Mime Types Used to identifiy content & meaning of request and response body
Content  Negotiation Majority of services support multiple output options, list varies by resource Accept  header output  parameter
Our Service Checklist Consistent URI structure Every service has human interface Plain text error messages for easy debugging Cacheable … etc
Authentication HTTP Digest Authentication
Authentication Example
Authorization By default stores are world-readable, Store owner writable Customisable roles and privileges per-Store
Review of the RDF Model
Apollo 11 was launched from Cape Canaveral
Apollo 11 was launched from Cape Canaveral Subject Predicate Object
<http://purl.org/net/schemas/space/spacecraft/apollo-11>   <http://purl.org/net/schemas/space/launchsite>  <http://purl.org/net/schemas/space/launchsite/capecanaveral>.
space: spacecraft/apollo-11   space: launchsite  space: launchsite/capecanaveral.
space:spacecraft/apollo-11  space:launchsite space:launchsite/capecanaveral. space:spacecraft/apollo-11  rdfs:label   “Apollo 11” . space:launchsite/capecanaveral  rdfs:label   “Cape Canaveral” .
 
 
Benefits of RDF?
Good for Semi-structured Data “Schema-Free” Very Flexible
Extensible New properties New resources New types of resource New statements
Encourages Convergence Reuse of vocabularies (i.e. properties) Reuse of identifiers (i.e. talk about the same things)
Simplifies Data Integration and Aggregation Shared identifiers Common data model Common query language Common data formats
Several Different Ways to Serialize RDF Optimized for different purposes
Turtle Simple to read and hand-author Used in SPARQL query language
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> @prefix space: <http://purl.org/net/schemas/space/>  @ @prefix dc: <http://purl.org/dc/elements/1.1/> <http://purl.org/net/schemas/space/spacecraft/1969-059A>  rdf:type  <http://purl.org/net/schemas/space/Spacecraft>;  dc:description  &quot;Apollo 11 was…”; space:agency  &quot;United States&quot; .
RDF/XML Best for data interchange Harder to read
<rdf:RDF xmlns:j.0=&quot;http://xmlns.com/foaf/0.1/“ xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;  xmlns:space=&quot;http://purl.org/net/schemas/space/&quot;  xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot;  xml:base=&quot;http://purl.org/net/schemas/space&quot;> <rdf:Description  rdf:about=&quot;/spacecraft/1969-059A&quot;>  <dc:description>Apollo 11 was…</dc:description>  <rdf:type  rdf:resource=&quot;http://purl.org/net/schemas/space/Spacecraft&quot;/>  <space:agency>United States</space:agency> </rdf:Description> </rdf:RDF>
The Content Box Managing unstructured, binary data
Store any stream of binary data Images, documents, Javascript, etc
Full HTTP Caching Support ETags Efficient retrieval Conditional updates
Server or Client Assignment of Identifiers Provides full control over how URIs assigned
ContentBox URLs /storename/items The Contentbox container /storename/items/<id> An individual item
Adding Content
Deleting Content
Metadata for Contentbox Resources Minimum is URI and ETag Extract height & width of images … more metadata extraction in future
The Meta Box Managing structured metadata
Full RDF Data Storage Create, read, update, delete RDF resources Query RDF data
Configurable Full Text Indexing of RDF Indexes updated whenever new metadata added
Versioned and Un-Versioned Updates By submitting data to separate resources Maintain audit trail
Can be Divided into Sub-Graphs Separate access control options
Metabox URLs /storename/meta The metabox /storename/meta/changesets The collection of changesets associated with this metabox /storename/meta/graphs   The collection of sub-graphs /storename/meta/graphs/{id} A sub-graph  /storename/meta/graphs/{id}/changesets   The collection of changesets associated with a sub-graph /storename/services/sparql SPARQL endpoint for metabox /storename/services/multisparql SPARQL endpoint for querying across all sub-graphs
Storing RDF POST  application/rdf+xml Changes saved immediately Search indexing asynchronous
Triples are  Merged  into Store Can catch out the unwary Updates happen through separate mechanism
Retrieving Metadata /meta?about=…URI… Can select RDF serialization
Updating Resources POST  application/vnd.talis.changeset+xml
ChangeSets Vocabulary that specifies removals/additions to an RDF graph
<rdf:RDF xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;  xmlns:cs=&quot;http://purl.org/vocab/changeset/schema#&quot;> <cs:ChangeSet rdf:about=&quot;http://example.com/changesets#change&quot;> < cs:subjectOfChange   rdf:resource=&quot;http://purl.org/net/schema/space/launch/1969-059&quot;/> < cs:createdDate >2008-12-08T00:00:00Z</ cs:createdDate > < cs:creatorName >Leigh Dodds</ cs:creatorName > < cs:changeReason >More accurate launch time</ cs:changeReason > <cs:removal> <rdf:Statement> <rdf:subject rdf:resource=&quot;http://purl.org/net/schema/space/launch/1969-059&quot;/> <rdf:predicate rdf:resource=&quot;http://purl.org/net/schema/space/launched&quot;/> <rdf:object>1969-07-16</rdf:object> </rdf:Statement> </cs:removal> <cs:addition> <rdf:Statement> <rdf:subject rdf:resource=&quot;http://purl.org/net/schema/space/launch/1969-059&quot;/> <rdf:predicate rdf:resource=&quot;http://purl.org/net/schema/space/launched&quot;/> <rdf:object>1969-07-16T13:32:00</rdf:object> </rdf:Statement> </cs:addition> </cs:ChangeSet> </rdf:RDF>
<rdf:RDF xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;  xmlns:cs=&quot;http://purl.org/vocab/changeset/schema#&quot;> <cs:ChangeSet rdf:about=&quot;http://example.com/changesets#change&quot;> <cs:subjectOfChange  rdf:resource=&quot;http://purl.org/net/schema/space/launch/1969-059&quot;/> <cs:createdDate>2008-12-08T00:00:00Z</cs:createdDate> <cs:creatorName>Leigh Dodds</cs:creatorName> <cs:changeReason>More accurate launch time</cs:changeReason> < cs:removal > <rdf:Statement> < rdf:subject  rdf:resource=&quot;http://purl.org/net/schema/space/launch/1969-059&quot;/> < rdf:predicate  rdf:resource=&quot;http://purl.org/net/schema/space/launched&quot;/> < rdf:object >1969-07-16</ rdf:object > </rdf:Statement> </ cs:removal > <cs:addition> <rdf:Statement> <rdf:subject rdf:resource=&quot;http://purl.org/net/schema/space/launch/1969-059&quot;/> <rdf:predicate rdf:resource=&quot;http://purl.org/net/schema/space/launched&quot;/> <rdf:object>1969-07-16T13:32:00</rdf:object> </rdf:Statement> </cs:addition> </cs:ChangeSet> </rdf:RDF>
<rdf:RDF xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;  xmlns:cs=&quot;http://purl.org/vocab/changeset/schema#&quot;> <cs:ChangeSet rdf:about=&quot;http://example.com/changesets#change&quot;> <cs:subjectOfChange  rdf:resource=&quot;http://purl.org/net/schema/space/launch/1969-059&quot;/> <cs:createdDate>2008-12-08T00:00:00Z</cs:createdDate> <cs:creatorName>Leigh Dodds</cs:creatorName> <cs:changeReason>More accurate launch time</cs:changeReason> <cs:removal> <rdf:Statement> <rdf:subject rdf:resource=&quot;http://purl.org/net/schema/space/launch/1969-059&quot;/> <rdf:predicate rdf:resource=&quot;http://purl.org/net/schema/space/launched&quot;/> <rdf:object>1969-07-16</rdf:object> </rdf:Statement> </cs:removal> < cs:addition > <rdf:Statement> < rdf:subject  rdf:resource=&quot;http://purl.org/net/schema/space/launch/1969-059&quot;/> < rdf:predicate  rdf:resource=&quot;http://purl.org/net/schema/space/launched&quot;/> < rdf:object >1969-07-16T13:32:00</ rdf:object > </rdf:Statement> </ cs:addition > </cs:ChangeSet> </rdf:RDF>
Versioned Updates POST to  /meta/changesets Apply update and stores changeset for later retrieval
Batch Updates Combine several changesets into single POST Linked together to define ordering
<rdf:RDF xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;  xmlns:cs=&quot;http://purl.org/vocab/changeset/schema#&quot;> <cs:ChangeSet rdf:about=&quot;http://example.com/changesets/1&quot;> <cs:subjectOfChange  rdf:resource=&quot;http://purl.org/net/schema/space/launch/1969-059&quot;/> <cs:changeReason>More accurate launch time</cs:changeReason> < cs:precedingChangeset  rdf:resource=&quot; http://example.com/changesets/2 &quot;/> <!– changes --> </cs:ChangeSet> <cs:ChangeSet rdf:about=&quot; http://example.com/changesets/2 &quot;> <cs:subjectOfChange  rdf:resource=&quot;http://purl.org/net/schema/space/launch/1969-059&quot;/> <cs: precedingChangeset  rdf:resource=&quot; http://example.com/changesets/3 &quot;/> <!– changes --> </cs:ChangeSet>  <cs:ChangeSet rdf:about=&quot; http://example.com/changesets/3 &quot;> <cs:subjectOfChange  rdf:resource=&quot;http://purl.org/net/schema/space/spacecraft/1969-059D&quot;/> <!– changes --> ... </cs:ChangeSet>  </rdf:RDF>
Data Extraction & Exploration with SPARQL
SPARQL RDF query language; HTTP protocol; Results format 4 different forms of query
ASK Test whether the graph contains some data of interest
#Was there a launch on 16 th  July 1969? PREFIX space: <http://purl.org/net/schemas/space/> PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> ASK WHERE { ?launch space:launched &quot;1969-07-16&quot;^^xsd:date. }
<?xml version=&quot;1.0&quot;?> <sparql  xmlns=&quot;http://www.w3.org/2005/sparql-results#&quot;> <head> </head> <boolean>true</boolean> </sparql>
DESCRIBE Generate an RDF description of a resource(s)
#Describe launch(es) that occurred on 16 th  July 1969 PREFIX space: <http://purl.org/net/schemas/space/> PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> DESCRIBE ?launch WHERE { ?launch space:launched &quot;1969-07-16&quot;^^xsd:date. }
#Describe spacecraft launched on 16 th  July 1969 PREFIX space: <http://purl.org/net/schemas/space/> PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> DESCRIBE ?spacecraft WHERE { ?launch space:launched &quot;1969-07-16&quot;^^xsd:date. ?spacecraft space:launch ?launch. }
CONSTRUCT Create a custom RDF graph based on query criteria
PREFIX space: <http://purl.org/net/schemas/space/> PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> PREFIX foaf: <http://xmlns.com/foaf/0.1/> CONSTRUCT { ?spacecraft foaf:name ?name; space:agency ?agency; space:mass ?mass.  } WHERE { ?launch space:launched &quot;1969-07-16&quot;^^xsd:date. ?spacecraft space:launch ?launch; foaf:name ?name; space:agency ?agency; space:mass ?mass.  }
SELECT SQL style result set retrieval
PREFIX space: <http://purl.org/net/schemas/space/> PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> PREFIX foaf: <http://xmlns.com/foaf/0.1/> SELECT ?name ?agency ?mass WHERE { ?launch space:launched &quot;1969-07-16&quot;^^xsd:date. ?spacecraft space:launch ?launch; foaf:name ?name; space:agency ?agency; space:mass ?mass.  }
…as XML <?xml version=&quot;1.0&quot;?> <sparql  xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot; xmlns=&quot;http://www.w3.org/2005/sparql-results#&quot; > <head> <variable name=&quot;name&quot;/> <variable name=&quot;agency&quot;/> <variable name=&quot;mass&quot;/> </head> <results> <result> <binding name=&quot;name&quot;> <literal>Apollo 11 Command and Service Module (CSM)</literal> </binding> <binding name=&quot;agency&quot;> <literal>United States</literal> </binding> <binding name=&quot;mass&quot;> <literal>28801.0</literal> </binding> </result> <!– more results --> </results> </sparql>
…as JSON {  &quot;head&quot;: {  &quot;vars&quot;: [ &quot;name&quot; , &quot;agency&quot; , &quot;mass&quot; ]  } ,  &quot;results&quot;: {  &quot;bindings&quot;: [  {  &quot;name&quot;: { &quot;type&quot;: &quot;literal&quot; , &quot;value&quot;: &quot;Apollo 11 Command and Service Module (CSM)&quot; } ,  &quot;agency&quot;: { &quot;type&quot;: &quot;literal&quot; , &quot;value&quot;: &quot;United States&quot; } ,  &quot;mass&quot;: { &quot;type&quot;: &quot;literal&quot; , &quot;value&quot;: &quot;28801.0&quot; }  } ,  {  &quot;name&quot;: { &quot;type&quot;: &quot;literal&quot; , &quot;value&quot;: &quot;Apollo 11 SIVB&quot; } ,  &quot;agency&quot;: { &quot;type&quot;: &quot;literal&quot; , &quot;value&quot;: &quot;United States&quot; } ,  &quot;mass&quot;: { &quot;type&quot;: &quot;literal&quot; , &quot;value&quot;: &quot;13300.0&quot; }  } ,  {  &quot;name&quot;: { &quot;type&quot;: &quot;literal&quot; , &quot;value&quot;: &quot;Apollo 11 Lunar Module / EASEP&quot; } ,  &quot;agency&quot;: { &quot;type&quot;: &quot;literal&quot; , &quot;value&quot;: &quot;United States&quot; } ,  &quot;mass&quot;: { &quot;type&quot;: &quot;literal&quot; , &quot;value&quot;: &quot;15065.0&quot; }  }  ]  } }
Tour of Extra Features Searching, browsing, augmentation
Searching Full text index over RDF literals Configurable indexing options
/items?query=[query] &max=[10] &offset=[0] &sort=[comma-separated fieldnames] &xsl=[XSLT stylesheet] &content-type=[mimetype for XSLT results]
Query Syntax lunar luna* “ apollo 11” lunar OR apollo name:apollo (lunar OR apollo) AND agency:united states
Query Results RSS 1.0 feed OpenSearch extensions (paging, relevance) Full description of each resource
<rdf:RDF xmlns=&quot;http://purl.org/rss/1.0/&quot;  xmlns:foaf=&quot;http://xmlns.com/foaf/0.1/&quot;  xmlns:relevance=&quot;http://a9.com/-/opensearch/extensions/relevance/1.0/&quot;  xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;  xmlns:os=&quot;http://a9.com/-/spec/opensearch/1.1/&quot;  xmlns:ns.1=&quot;http://purl.org/net/schemas/space/&quot;> <channel rdf:about=“…&quot;> <title>lunar</title> <link>…</link> <description>Results of a search for lunar on space</description> <items> <rdf:Seq rdf:about=&quot;urn:uuid:eae4ead8-ca6a-4b12-b714-fe631d38e447&quot;> <rdf:li resource=&quot;http://purl.org/net/schemas/space/spacecraft/LUNAR-A&quot; /> </rdf:Seq> </items> < os:startIndex >0</ os:startIndex > < os:itemsPerPage >10</ os:itemsPerPage > < os:totalResults >118</ os:totalResults > </channel> <item rdf:about=&quot;http://purl.org/net/schemas/space/spacecraft/LUNAR-A&quot;> <title>Item</title> <link>http://purl.org/net/schemas/space/spacecraft/LUNAR-A</link> < relevance:score >1.0</ relevance:score > <foaf:name>Lunar-A</foaf:name> <space:mass>520.0</space:mass> <space:internationalDesignator>LUNAR-A</space:internationalDesignator> </item> </rdf:RDF>
Facetted Search Similar to Amazon product search, etc Group search results by specific fields
/services/facet?query=[query] &fields=[comma-separated fieldnames]   &top=[10] &format=[xml|html]
<facet-results xmlns=&quot;http://schemas.talis.com/2007/facet-results#&quot;> <head> <query>name:luna*</query> <fields>agency</fields> <top>10</top> <output>xml</output> </head>  <fields>  <field name=&quot;agency&quot;>   <term value=&quot;U.S.S.R&quot;    number=&quot;25&quot; facet-uri=“…&quot;  search-uri=“…&quot;/>   <term value=&quot;United States&quot;    number=&quot;9&quot; facet-uri=“…&quot; search-uri=“…&quot;/>   <term value=&quot;Japan&quot;    number=&quot;1&quot; facet-uri=“…&quot; search-uri=“…&quot;/>   <term value=&quot;India&quot;    number=&quot;1&quot; facet-uri=“…&quot; search-uri=“…&quot;/> </field> </fields> </facet-results>
Augmentation Annotate an RSS 1.0 feed against a store Automatically add a description of each referenced resource
Store Administration Job Control, Store Configuration
Field Predicate Map Associate a short name to a RDF property Properties in field predicate map are indexed for searching Short name used in query syntax, sort order, etc
<rdf:RDF  xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;  xmlns:rdfs=&quot;http://www.w3.org/2000/01/rdf-schema#&quot;  xmlns:bf=&quot;http://schemas.talis.com/2006/bigfoot/configuration#&quot;  xmlns:frm=&quot;http://schemas.talis.com/2006/frame/schema#“ xml:base=“http://api.talis.com/stores/space”> <bf:FieldPredicateMap rdf:about=&quot;/indexes/default/fpmaps/default&quot;> <frm:mappedDatatypeProperty> <rdf:Description rdf:about=&quot;/indexes/default/fpmaps/default#agency&quot;> <frm:property rdf:resource=&quot;http://purl.org/net/schema/space/agency&quot;/> <frm:name>agency</frm:name> </rdf:Description> </frm:mappedDatatypeProperty> </bf:FieldPredicateMap> </rdf:RDF>
Query Profile Assign weightings to fields for searching
<rdf:RDF  xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot; xmlns:rdfs=&quot;http://www.w3.org/2000/01/rdf-schema#&quot; xmlns:bf=&quot;http://schemas.talis.com/2006/bigfoot/configuration#&quot; xmlns:frm=&quot;http://schemas.talis.com/2006/frame/schema#“ xml:base=“http://api.talis.com/stores/space”> <bf:QueryProfile rdf:about=&quot;&quot;> <bf:fieldWeight> <rdf:Description rdf:about=&quot;/indexes/default/queryprofiles/default#name&quot;> <bf:weight>10.0</bf:weight> <frm:name>name</frm:name> </rdf:Description> </bf:fieldWeight> <bf:fieldWeight> <rdf:Description rdf:about=&quot;/indexes/default/queryprofiles/default#agency&quot;> <bf:weight>5.0</bf:weight> <frm:name>agency</frm:name> </rdf:Description> </bf:fieldWeight> </bf:QueryProfile> </rdf:RDF>
Job Control Reindex, Reset, Snapshot, Restore POST Job Request to  /jobs
<rdf:RDF xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot; xmlns:rdfs=&quot;http://www.w3.org/2000/01/rdf-schema#&quot; xmlns:bf=&quot;http://schemas.talis.com/2006/bigfoot/configuration#&quot;>  <bf:JobRequest> <rdfs:label>Reset the data in my store</rdfs:label> <bf:jobType rdf:resource=&quot;http://schemas.talis.com/2006/bigfoot/configuration#ResetDataJob&quot;/> <bf:startTime>2008-12-01T15:10:00Z</bf:startTime> </bf:JobRequest> </rdf:RDF>
Jobs Each job is a resource, with a URI GET to monitor status, DELETE to remove
Summing Up Summary, Additional Resources
The Talis Platform… Provides a standards compliant storage infrastructure for structured and unstructured metadata Uses RDF to support widest possible variety of data models and integration options Allow managing of data assets through simple web APIs Offers a range of data extraction options including full-text searching, SPARQL, RSS augmentation Can be tailored to individual applications using the API Can be driven by scheduling jobs to perform data management tasks Is constantly evolving…
Additional Resources API Reference http://n2.talis.com/wiki/Platform_API Mailing List http://groups.google.com/group/n2-dev Blog http://blogs.talis.com/n2/
Client Libraries (in various states of development) Moriarty http://code.google.com/p/moriarty/ Javascript/JQuery http://n2.talis.com/wiki/Talis_jQuery_plugin Ruby Client http://rubyforge.org/projects/talis-platform/ Java Client http://code.google.com/p/penry/
shared innovation

More Related Content

What's hot (19)

PDF
Web of Data Usage Mining
Markus Luczak-Rösch
 
PPSX
The Web of data and web data commons
Jesse Wang
 
PPTX
Introduction to Elastic with a hint of Symfony and Docker
Daniel Platt
 
PDF
Mining a Large Web Corpus
Robert Meusel
 
PPT
Semantic HTML
hchen1
 
PDF
Clustering Search to Navigate A Case Study of the Canadian World Wide Web as ...
Ian Milligan
 
PPTX
A Web-scale Study of the Adoption and Evolution of the schema.org Vocabulary ...
Robert Meusel
 
PPT
Sparql
Serge Garlatti
 
PDF
Drupal and Apache Stanbol
Alkuvoima
 
PDF
Linked data based semantic annotation using Drupal and Apache Stanbol
Gabriel Dragomir
 
PPTX
Querying Linked Data
EUCLID project
 
PPT
An Introduction to the Open Archives Initiative Object Reuse and Exchange (OA...
Jenn Riley
 
PDF
Querying data on the Web – client or server?
Ruben Verborgh
 
PPT
Tutorial Linked APIs
Steffen StadtmĂĽller
 
PPTX
Building Linked Data Applications
EUCLID project
 
PPTX
London HUG
Boudicca
 
PDF
The Digital Cavemen of Linked Lascaux
Ruben Verborgh
 
PDF
Documents, services, and data on the web
Chiara Del Vescovo
 
Web of Data Usage Mining
Markus Luczak-Rösch
 
The Web of data and web data commons
Jesse Wang
 
Introduction to Elastic with a hint of Symfony and Docker
Daniel Platt
 
Mining a Large Web Corpus
Robert Meusel
 
Semantic HTML
hchen1
 
Clustering Search to Navigate A Case Study of the Canadian World Wide Web as ...
Ian Milligan
 
A Web-scale Study of the Adoption and Evolution of the schema.org Vocabulary ...
Robert Meusel
 
Sparql
Serge Garlatti
 
Drupal and Apache Stanbol
Alkuvoima
 
Linked data based semantic annotation using Drupal and Apache Stanbol
Gabriel Dragomir
 
Querying Linked Data
EUCLID project
 
An Introduction to the Open Archives Initiative Object Reuse and Exchange (OA...
Jenn Riley
 
Querying data on the Web – client or server?
Ruben Verborgh
 
Tutorial Linked APIs
Steffen StadtmĂĽller
 
Building Linked Data Applications
EUCLID project
 
London HUG
Boudicca
 
The Digital Cavemen of Linked Lascaux
Ruben Verborgh
 
Documents, services, and data on the web
Chiara Del Vescovo
 

Viewers also liked (14)

PPT
The Web’s Rich Tapestry
Leigh Dodds
 
PPT
Authoritative Whats That Who Says
Leigh Dodds
 
PPT
Introduction To Linked Data
Leigh Dodds
 
PPT
News Innovation Lightning Talk
Leigh Dodds
 
ODP
Bath: Hacked: open data, the arts and cultural heritage
Leigh Dodds
 
PPT
Ignite for Good: Why I Love Open Data and You Should Too
Leigh Dodds
 
PDF
Digital Grafitti for Digital Cities
Leigh Dodds
 
PDF
Time Travelling with Open Data
Leigh Dodds
 
PDF
Introduction to Open Data & Linked Data
Leigh Dodds
 
PPT
Why I love open data and you should too
Leigh Dodds
 
ODP
Blank
guestef7fea
 
PPT
The Modern Palimpsest
Leigh Dodds
 
PDF
Data Foundations for Digital Cities
Leigh Dodds
 
PPTX
Swirl
acguarisco
 
The Web’s Rich Tapestry
Leigh Dodds
 
Authoritative Whats That Who Says
Leigh Dodds
 
Introduction To Linked Data
Leigh Dodds
 
News Innovation Lightning Talk
Leigh Dodds
 
Bath: Hacked: open data, the arts and cultural heritage
Leigh Dodds
 
Ignite for Good: Why I Love Open Data and You Should Too
Leigh Dodds
 
Digital Grafitti for Digital Cities
Leigh Dodds
 
Time Travelling with Open Data
Leigh Dodds
 
Introduction to Open Data & Linked Data
Leigh Dodds
 
Why I love open data and you should too
Leigh Dodds
 
Blank
guestef7fea
 
The Modern Palimpsest
Leigh Dodds
 
Data Foundations for Digital Cities
Leigh Dodds
 
Swirl
acguarisco
 
Ad

Similar to Getting Started With The Talis Platform (20)

PPT
Semantic Web Applications
Julian Higman
 
PPT
SPARQL Tutorial
Leigh Dodds
 
PPT
DM110 - Week 10 - Semantic Web / Web 3.0
John Breslin
 
PPT
Introduction To RDF and RDFS
Nilesh Wagmare
 
PPT
ORE and SWAP: Composition and Complexity
Eduserv Foundation
 
PPTX
Sem webmaubeuge
Jose Emilio Labra Gayo
 
PPTX
SuRf – Tapping Into The Web Of Data
cosbas
 
ODP
Gist od2-feb-2011
ianibbo
 
PPTX
Hack U Barcelona 2011
Peter Mika
 
PPTX
Hacia la Internet del Futuro: Web Semántica y Open Linked Data, Parte 2
Diego López-de-Ipiña González-de-Artaza
 
PPT
Structured Dynamics' Semantic Technologies Product Stack
Mike Bergman
 
PPT
The Semantic Web An Introduction
shaouy
 
ODP
Web of data
Yves Raimond
 
PPT
Introduction to RDF
Narni Rajesh
 
PPT
Jpl presentation
Rama Bastola
 
PPT
Jpl presentation
Rama Bastola
 
PPT
Jpl presentation
Rama Bastola
 
KEY
Linked data: spreading data over the web
shellac
 
KEY
It's not rocket surgery - Linked In: ALA 2011
Ross Singer
 
KEY
How RDFa works
JISC Netskills
 
Semantic Web Applications
Julian Higman
 
SPARQL Tutorial
Leigh Dodds
 
DM110 - Week 10 - Semantic Web / Web 3.0
John Breslin
 
Introduction To RDF and RDFS
Nilesh Wagmare
 
ORE and SWAP: Composition and Complexity
Eduserv Foundation
 
Sem webmaubeuge
Jose Emilio Labra Gayo
 
SuRf – Tapping Into The Web Of Data
cosbas
 
Gist od2-feb-2011
ianibbo
 
Hack U Barcelona 2011
Peter Mika
 
Hacia la Internet del Futuro: Web Semántica y Open Linked Data, Parte 2
Diego López-de-Ipiña González-de-Artaza
 
Structured Dynamics' Semantic Technologies Product Stack
Mike Bergman
 
The Semantic Web An Introduction
shaouy
 
Web of data
Yves Raimond
 
Introduction to RDF
Narni Rajesh
 
Jpl presentation
Rama Bastola
 
Jpl presentation
Rama Bastola
 
Jpl presentation
Rama Bastola
 
Linked data: spreading data over the web
shellac
 
It's not rocket surgery - Linked In: ALA 2011
Ross Singer
 
How RDFa works
JISC Netskills
 
Ad

More from Leigh Dodds (20)

PDF
Being a data magpie
Leigh Dodds
 
PDF
How you (yes, you!) can contribute to open data
Leigh Dodds
 
ODP
Accessible Bath Training
Leigh Dodds
 
ODP
Accessible Bath
Leigh Dodds
 
PDF
Cheap bots done quick lightning talk
Leigh Dodds
 
PDF
Open data in bath
Leigh Dodds
 
PDF
Bath: Hacked Learning Night: Introduction to CartoDB
Leigh Dodds
 
ODP
Dungeons and Dragons and Data
Leigh Dodds
 
ODP
Love the Environment Pre-Meetup
Leigh Dodds
 
ODP
Introduction to Open Data & Bath: Hacked
Leigh Dodds
 
ODP
Oil and Water: When Data Licences Don't Mix
Leigh Dodds
 
PDF
Linked Data Patterns
Leigh Dodds
 
PDF
Layered Data: An Example
Leigh Dodds
 
ODP
Linked Data: turning the web into a context graph
Leigh Dodds
 
PDF
The RDF Report Card: Beyond the Triple Count
Leigh Dodds
 
ODP
Kasabi Linked Data Marketplace
Leigh Dodds
 
ODP
Creating APIs over RDF
Leigh Dodds
 
ODP
Creating APIs over RDF
Leigh Dodds
 
PPT
Challenges & Opportunities for Linked Data
Leigh Dodds
 
PPT
Fanhu.bz
Leigh Dodds
 
Being a data magpie
Leigh Dodds
 
How you (yes, you!) can contribute to open data
Leigh Dodds
 
Accessible Bath Training
Leigh Dodds
 
Accessible Bath
Leigh Dodds
 
Cheap bots done quick lightning talk
Leigh Dodds
 
Open data in bath
Leigh Dodds
 
Bath: Hacked Learning Night: Introduction to CartoDB
Leigh Dodds
 
Dungeons and Dragons and Data
Leigh Dodds
 
Love the Environment Pre-Meetup
Leigh Dodds
 
Introduction to Open Data & Bath: Hacked
Leigh Dodds
 
Oil and Water: When Data Licences Don't Mix
Leigh Dodds
 
Linked Data Patterns
Leigh Dodds
 
Layered Data: An Example
Leigh Dodds
 
Linked Data: turning the web into a context graph
Leigh Dodds
 
The RDF Report Card: Beyond the Triple Count
Leigh Dodds
 
Kasabi Linked Data Marketplace
Leigh Dodds
 
Creating APIs over RDF
Leigh Dodds
 
Creating APIs over RDF
Leigh Dodds
 
Challenges & Opportunities for Linked Data
Leigh Dodds
 
Fanhu.bz
Leigh Dodds
 

Recently uploaded (20)

PPTX
Parsing HTML read and write operations and OS Module.pptx
Ramakrishna Reddy Bijjam
 
PPTX
PLANNING FOR EMERGENCY AND DISASTER MANAGEMENT ppt.pptx
PRADEEP ABOTHU
 
PDF
I3PM Industry Case Study Siemens on Strategic and Value-Oriented IP Management
MIPLM
 
PDF
Lesson 1 - Nature of Inquiry and Research.pdf
marvinnbustamante1
 
PPTX
Marketing Management PPT Unit 1 and Unit 2.pptx
Sri Ramakrishna College of Arts and science
 
PDF
AI-assisted IP-Design lecture from the MIPLM 2025
MIPLM
 
PPTX
grade 8 week 2 ict.pptx. matatag grade 7
VanessaTaberlo
 
PDF
TechSoup Microsoft Copilot Nonprofit Use Cases and Live Demo - 2025.06.25.pdf
TechSoup
 
PPTX
ENGLISH 8 REVISED K-12 CURRICULUM QUARTER 1 WEEK 1
LeomarrYsraelArzadon
 
PPTX
Exploring Linear and Angular Quantities and Ergonomic Design.pptx
AngeliqueTolentinoDe
 
PPTX
Life and Career Skills Lesson 2.pptxProtective and Risk Factors of Late Adole...
ryangabrielcatalon40
 
PDF
Genomics Proteomics and Vaccines 1st Edition Guido Grandi (Editor)
kboqcyuw976
 
PPTX
Natural Language processing using nltk.pptx
Ramakrishna Reddy Bijjam
 
PDF
Supply Chain Security A Comprehensive Approach 1st Edition Arthur G. Arway
rxgnika452
 
PPTX
How to Configure Taxes in Company Currency in Odoo 18 Accounting
Celine George
 
PDF
COM and NET Component Services 1st Edition Juval Löwy
kboqcyuw976
 
PPTX
PLANNING A HOSPITAL AND NURSING UNIT.pptx
PRADEEP ABOTHU
 
PPTX
Lesson 1 Cell (Structures, Functions, and Theory).pptx
marvinnbustamante1
 
PPTX
MATH 8 QUARTER 1 WEEK 1 LESSON 2 PRESENTATION
JohnGuillerNestalBah1
 
PDF
TLE 8 QUARTER 1 MODULE WEEK 1 MATATAG CURRICULUM
denniseraya1997
 
Parsing HTML read and write operations and OS Module.pptx
Ramakrishna Reddy Bijjam
 
PLANNING FOR EMERGENCY AND DISASTER MANAGEMENT ppt.pptx
PRADEEP ABOTHU
 
I3PM Industry Case Study Siemens on Strategic and Value-Oriented IP Management
MIPLM
 
Lesson 1 - Nature of Inquiry and Research.pdf
marvinnbustamante1
 
Marketing Management PPT Unit 1 and Unit 2.pptx
Sri Ramakrishna College of Arts and science
 
AI-assisted IP-Design lecture from the MIPLM 2025
MIPLM
 
grade 8 week 2 ict.pptx. matatag grade 7
VanessaTaberlo
 
TechSoup Microsoft Copilot Nonprofit Use Cases and Live Demo - 2025.06.25.pdf
TechSoup
 
ENGLISH 8 REVISED K-12 CURRICULUM QUARTER 1 WEEK 1
LeomarrYsraelArzadon
 
Exploring Linear and Angular Quantities and Ergonomic Design.pptx
AngeliqueTolentinoDe
 
Life and Career Skills Lesson 2.pptxProtective and Risk Factors of Late Adole...
ryangabrielcatalon40
 
Genomics Proteomics and Vaccines 1st Edition Guido Grandi (Editor)
kboqcyuw976
 
Natural Language processing using nltk.pptx
Ramakrishna Reddy Bijjam
 
Supply Chain Security A Comprehensive Approach 1st Edition Arthur G. Arway
rxgnika452
 
How to Configure Taxes in Company Currency in Odoo 18 Accounting
Celine George
 
COM and NET Component Services 1st Edition Juval Löwy
kboqcyuw976
 
PLANNING A HOSPITAL AND NURSING UNIT.pptx
PRADEEP ABOTHU
 
Lesson 1 Cell (Structures, Functions, and Theory).pptx
marvinnbustamante1
 
MATH 8 QUARTER 1 WEEK 1 LESSON 2 PRESENTATION
JohnGuillerNestalBah1
 
TLE 8 QUARTER 1 MODULE WEEK 1 MATATAG CURRICULUM
denniseraya1997
 

Getting Started With The Talis Platform

  • 1. Getting Started with the Talis Platform Leigh Dodds Platform Programme Manager Talis December 2008 http://creativecommons.org/licenses/by/2.0/uk/
  • 2. Agenda Platform Overview Core Concepts Review of the RDF Model Managing binary data Managing structured metadata Exploring RDF data with SPARQL Extra Features Store Administration Summary
  • 4. Software as a Service Multi-Tenant Data Storage Service
  • 5. Unstructured Data Storage e.g. binary files, including images, documents, etc
  • 6. Structured Data Storage RDF metadata
  • 7. Access Control All data is open (to read) by default Configurable access options
  • 8. Full-Text Searching and Querying
  • 10. Platform Architecture Web API Metabox Contentbox
  • 11. REST, RDF Authentication & Authorization Content Negotiation Core Concepts aka “The Science Bit”
  • 12. REST Re presentational S tate T ransfer Correct Use of HTTP
  • 14. Interact with resources using HTTP GET = read PUT = write POST = update/modify DELETE = delete
  • 15. Use HTTP Response Codes 200 = OK 201 = Created (new resource) 202 = Accepted (for processing) 400 = Bad Request 500 = Server Error
  • 16. Mime Types Used to identifiy content & meaning of request and response body
  • 17. Content Negotiation Majority of services support multiple output options, list varies by resource Accept header output parameter
  • 18. Our Service Checklist Consistent URI structure Every service has human interface Plain text error messages for easy debugging Cacheable … etc
  • 19. Authentication HTTP Digest Authentication
  • 21. Authorization By default stores are world-readable, Store owner writable Customisable roles and privileges per-Store
  • 22. Review of the RDF Model
  • 23. Apollo 11 was launched from Cape Canaveral
  • 24. Apollo 11 was launched from Cape Canaveral Subject Predicate Object
  • 25. <http://purl.org/net/schemas/space/spacecraft/apollo-11> <http://purl.org/net/schemas/space/launchsite> <http://purl.org/net/schemas/space/launchsite/capecanaveral>.
  • 26. space: spacecraft/apollo-11 space: launchsite space: launchsite/capecanaveral.
  • 27. space:spacecraft/apollo-11 space:launchsite space:launchsite/capecanaveral. space:spacecraft/apollo-11 rdfs:label “Apollo 11” . space:launchsite/capecanaveral rdfs:label “Cape Canaveral” .
  • 28.  
  • 29.  
  • 31. Good for Semi-structured Data “Schema-Free” Very Flexible
  • 32. Extensible New properties New resources New types of resource New statements
  • 33. Encourages Convergence Reuse of vocabularies (i.e. properties) Reuse of identifiers (i.e. talk about the same things)
  • 34. Simplifies Data Integration and Aggregation Shared identifiers Common data model Common query language Common data formats
  • 35. Several Different Ways to Serialize RDF Optimized for different purposes
  • 36. Turtle Simple to read and hand-author Used in SPARQL query language
  • 37. @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> @prefix space: <http://purl.org/net/schemas/space/> @ @prefix dc: <http://purl.org/dc/elements/1.1/> <http://purl.org/net/schemas/space/spacecraft/1969-059A> rdf:type <http://purl.org/net/schemas/space/Spacecraft>; dc:description &quot;Apollo 11 was…”; space:agency &quot;United States&quot; .
  • 38. RDF/XML Best for data interchange Harder to read
  • 39. <rdf:RDF xmlns:j.0=&quot;http://xmlns.com/foaf/0.1/“ xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot; xmlns:space=&quot;http://purl.org/net/schemas/space/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xml:base=&quot;http://purl.org/net/schemas/space&quot;> <rdf:Description rdf:about=&quot;/spacecraft/1969-059A&quot;> <dc:description>Apollo 11 was…</dc:description> <rdf:type rdf:resource=&quot;http://purl.org/net/schemas/space/Spacecraft&quot;/> <space:agency>United States</space:agency> </rdf:Description> </rdf:RDF>
  • 40. The Content Box Managing unstructured, binary data
  • 41. Store any stream of binary data Images, documents, Javascript, etc
  • 42. Full HTTP Caching Support ETags Efficient retrieval Conditional updates
  • 43. Server or Client Assignment of Identifiers Provides full control over how URIs assigned
  • 44. ContentBox URLs /storename/items The Contentbox container /storename/items/<id> An individual item
  • 47. Metadata for Contentbox Resources Minimum is URI and ETag Extract height & width of images … more metadata extraction in future
  • 48. The Meta Box Managing structured metadata
  • 49. Full RDF Data Storage Create, read, update, delete RDF resources Query RDF data
  • 50. Configurable Full Text Indexing of RDF Indexes updated whenever new metadata added
  • 51. Versioned and Un-Versioned Updates By submitting data to separate resources Maintain audit trail
  • 52. Can be Divided into Sub-Graphs Separate access control options
  • 53. Metabox URLs /storename/meta The metabox /storename/meta/changesets The collection of changesets associated with this metabox /storename/meta/graphs The collection of sub-graphs /storename/meta/graphs/{id} A sub-graph /storename/meta/graphs/{id}/changesets The collection of changesets associated with a sub-graph /storename/services/sparql SPARQL endpoint for metabox /storename/services/multisparql SPARQL endpoint for querying across all sub-graphs
  • 54. Storing RDF POST application/rdf+xml Changes saved immediately Search indexing asynchronous
  • 55. Triples are Merged into Store Can catch out the unwary Updates happen through separate mechanism
  • 57. Updating Resources POST application/vnd.talis.changeset+xml
  • 58. ChangeSets Vocabulary that specifies removals/additions to an RDF graph
  • 59. <rdf:RDF xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot; xmlns:cs=&quot;http://purl.org/vocab/changeset/schema#&quot;> <cs:ChangeSet rdf:about=&quot;http://example.com/changesets#change&quot;> < cs:subjectOfChange rdf:resource=&quot;http://purl.org/net/schema/space/launch/1969-059&quot;/> < cs:createdDate >2008-12-08T00:00:00Z</ cs:createdDate > < cs:creatorName >Leigh Dodds</ cs:creatorName > < cs:changeReason >More accurate launch time</ cs:changeReason > <cs:removal> <rdf:Statement> <rdf:subject rdf:resource=&quot;http://purl.org/net/schema/space/launch/1969-059&quot;/> <rdf:predicate rdf:resource=&quot;http://purl.org/net/schema/space/launched&quot;/> <rdf:object>1969-07-16</rdf:object> </rdf:Statement> </cs:removal> <cs:addition> <rdf:Statement> <rdf:subject rdf:resource=&quot;http://purl.org/net/schema/space/launch/1969-059&quot;/> <rdf:predicate rdf:resource=&quot;http://purl.org/net/schema/space/launched&quot;/> <rdf:object>1969-07-16T13:32:00</rdf:object> </rdf:Statement> </cs:addition> </cs:ChangeSet> </rdf:RDF>
  • 60. <rdf:RDF xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot; xmlns:cs=&quot;http://purl.org/vocab/changeset/schema#&quot;> <cs:ChangeSet rdf:about=&quot;http://example.com/changesets#change&quot;> <cs:subjectOfChange rdf:resource=&quot;http://purl.org/net/schema/space/launch/1969-059&quot;/> <cs:createdDate>2008-12-08T00:00:00Z</cs:createdDate> <cs:creatorName>Leigh Dodds</cs:creatorName> <cs:changeReason>More accurate launch time</cs:changeReason> < cs:removal > <rdf:Statement> < rdf:subject rdf:resource=&quot;http://purl.org/net/schema/space/launch/1969-059&quot;/> < rdf:predicate rdf:resource=&quot;http://purl.org/net/schema/space/launched&quot;/> < rdf:object >1969-07-16</ rdf:object > </rdf:Statement> </ cs:removal > <cs:addition> <rdf:Statement> <rdf:subject rdf:resource=&quot;http://purl.org/net/schema/space/launch/1969-059&quot;/> <rdf:predicate rdf:resource=&quot;http://purl.org/net/schema/space/launched&quot;/> <rdf:object>1969-07-16T13:32:00</rdf:object> </rdf:Statement> </cs:addition> </cs:ChangeSet> </rdf:RDF>
  • 61. <rdf:RDF xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot; xmlns:cs=&quot;http://purl.org/vocab/changeset/schema#&quot;> <cs:ChangeSet rdf:about=&quot;http://example.com/changesets#change&quot;> <cs:subjectOfChange rdf:resource=&quot;http://purl.org/net/schema/space/launch/1969-059&quot;/> <cs:createdDate>2008-12-08T00:00:00Z</cs:createdDate> <cs:creatorName>Leigh Dodds</cs:creatorName> <cs:changeReason>More accurate launch time</cs:changeReason> <cs:removal> <rdf:Statement> <rdf:subject rdf:resource=&quot;http://purl.org/net/schema/space/launch/1969-059&quot;/> <rdf:predicate rdf:resource=&quot;http://purl.org/net/schema/space/launched&quot;/> <rdf:object>1969-07-16</rdf:object> </rdf:Statement> </cs:removal> < cs:addition > <rdf:Statement> < rdf:subject rdf:resource=&quot;http://purl.org/net/schema/space/launch/1969-059&quot;/> < rdf:predicate rdf:resource=&quot;http://purl.org/net/schema/space/launched&quot;/> < rdf:object >1969-07-16T13:32:00</ rdf:object > </rdf:Statement> </ cs:addition > </cs:ChangeSet> </rdf:RDF>
  • 62. Versioned Updates POST to /meta/changesets Apply update and stores changeset for later retrieval
  • 63. Batch Updates Combine several changesets into single POST Linked together to define ordering
  • 64. <rdf:RDF xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot; xmlns:cs=&quot;http://purl.org/vocab/changeset/schema#&quot;> <cs:ChangeSet rdf:about=&quot;http://example.com/changesets/1&quot;> <cs:subjectOfChange rdf:resource=&quot;http://purl.org/net/schema/space/launch/1969-059&quot;/> <cs:changeReason>More accurate launch time</cs:changeReason> < cs:precedingChangeset rdf:resource=&quot; http://example.com/changesets/2 &quot;/> <!– changes --> </cs:ChangeSet> <cs:ChangeSet rdf:about=&quot; http://example.com/changesets/2 &quot;> <cs:subjectOfChange rdf:resource=&quot;http://purl.org/net/schema/space/launch/1969-059&quot;/> <cs: precedingChangeset rdf:resource=&quot; http://example.com/changesets/3 &quot;/> <!– changes --> </cs:ChangeSet> <cs:ChangeSet rdf:about=&quot; http://example.com/changesets/3 &quot;> <cs:subjectOfChange rdf:resource=&quot;http://purl.org/net/schema/space/spacecraft/1969-059D&quot;/> <!– changes --> ... </cs:ChangeSet> </rdf:RDF>
  • 65. Data Extraction & Exploration with SPARQL
  • 66. SPARQL RDF query language; HTTP protocol; Results format 4 different forms of query
  • 67. ASK Test whether the graph contains some data of interest
  • 68. #Was there a launch on 16 th July 1969? PREFIX space: <http://purl.org/net/schemas/space/> PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> ASK WHERE { ?launch space:launched &quot;1969-07-16&quot;^^xsd:date. }
  • 69. <?xml version=&quot;1.0&quot;?> <sparql xmlns=&quot;http://www.w3.org/2005/sparql-results#&quot;> <head> </head> <boolean>true</boolean> </sparql>
  • 70. DESCRIBE Generate an RDF description of a resource(s)
  • 71. #Describe launch(es) that occurred on 16 th July 1969 PREFIX space: <http://purl.org/net/schemas/space/> PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> DESCRIBE ?launch WHERE { ?launch space:launched &quot;1969-07-16&quot;^^xsd:date. }
  • 72. #Describe spacecraft launched on 16 th July 1969 PREFIX space: <http://purl.org/net/schemas/space/> PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> DESCRIBE ?spacecraft WHERE { ?launch space:launched &quot;1969-07-16&quot;^^xsd:date. ?spacecraft space:launch ?launch. }
  • 73. CONSTRUCT Create a custom RDF graph based on query criteria
  • 74. PREFIX space: <http://purl.org/net/schemas/space/> PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> PREFIX foaf: <http://xmlns.com/foaf/0.1/> CONSTRUCT { ?spacecraft foaf:name ?name; space:agency ?agency; space:mass ?mass. } WHERE { ?launch space:launched &quot;1969-07-16&quot;^^xsd:date. ?spacecraft space:launch ?launch; foaf:name ?name; space:agency ?agency; space:mass ?mass. }
  • 75. SELECT SQL style result set retrieval
  • 76. PREFIX space: <http://purl.org/net/schemas/space/> PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> PREFIX foaf: <http://xmlns.com/foaf/0.1/> SELECT ?name ?agency ?mass WHERE { ?launch space:launched &quot;1969-07-16&quot;^^xsd:date. ?spacecraft space:launch ?launch; foaf:name ?name; space:agency ?agency; space:mass ?mass. }
  • 77. …as XML <?xml version=&quot;1.0&quot;?> <sparql xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot; xmlns=&quot;http://www.w3.org/2005/sparql-results#&quot; > <head> <variable name=&quot;name&quot;/> <variable name=&quot;agency&quot;/> <variable name=&quot;mass&quot;/> </head> <results> <result> <binding name=&quot;name&quot;> <literal>Apollo 11 Command and Service Module (CSM)</literal> </binding> <binding name=&quot;agency&quot;> <literal>United States</literal> </binding> <binding name=&quot;mass&quot;> <literal>28801.0</literal> </binding> </result> <!– more results --> </results> </sparql>
  • 78. …as JSON { &quot;head&quot;: { &quot;vars&quot;: [ &quot;name&quot; , &quot;agency&quot; , &quot;mass&quot; ] } , &quot;results&quot;: { &quot;bindings&quot;: [ { &quot;name&quot;: { &quot;type&quot;: &quot;literal&quot; , &quot;value&quot;: &quot;Apollo 11 Command and Service Module (CSM)&quot; } , &quot;agency&quot;: { &quot;type&quot;: &quot;literal&quot; , &quot;value&quot;: &quot;United States&quot; } , &quot;mass&quot;: { &quot;type&quot;: &quot;literal&quot; , &quot;value&quot;: &quot;28801.0&quot; } } , { &quot;name&quot;: { &quot;type&quot;: &quot;literal&quot; , &quot;value&quot;: &quot;Apollo 11 SIVB&quot; } , &quot;agency&quot;: { &quot;type&quot;: &quot;literal&quot; , &quot;value&quot;: &quot;United States&quot; } , &quot;mass&quot;: { &quot;type&quot;: &quot;literal&quot; , &quot;value&quot;: &quot;13300.0&quot; } } , { &quot;name&quot;: { &quot;type&quot;: &quot;literal&quot; , &quot;value&quot;: &quot;Apollo 11 Lunar Module / EASEP&quot; } , &quot;agency&quot;: { &quot;type&quot;: &quot;literal&quot; , &quot;value&quot;: &quot;United States&quot; } , &quot;mass&quot;: { &quot;type&quot;: &quot;literal&quot; , &quot;value&quot;: &quot;15065.0&quot; } } ] } }
  • 79. Tour of Extra Features Searching, browsing, augmentation
  • 80. Searching Full text index over RDF literals Configurable indexing options
  • 81. /items?query=[query] &max=[10] &offset=[0] &sort=[comma-separated fieldnames] &xsl=[XSLT stylesheet] &content-type=[mimetype for XSLT results]
  • 82. Query Syntax lunar luna* “ apollo 11” lunar OR apollo name:apollo (lunar OR apollo) AND agency:united states
  • 83. Query Results RSS 1.0 feed OpenSearch extensions (paging, relevance) Full description of each resource
  • 84. <rdf:RDF xmlns=&quot;http://purl.org/rss/1.0/&quot; xmlns:foaf=&quot;http://xmlns.com/foaf/0.1/&quot; xmlns:relevance=&quot;http://a9.com/-/opensearch/extensions/relevance/1.0/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot; xmlns:os=&quot;http://a9.com/-/spec/opensearch/1.1/&quot; xmlns:ns.1=&quot;http://purl.org/net/schemas/space/&quot;> <channel rdf:about=“…&quot;> <title>lunar</title> <link>…</link> <description>Results of a search for lunar on space</description> <items> <rdf:Seq rdf:about=&quot;urn:uuid:eae4ead8-ca6a-4b12-b714-fe631d38e447&quot;> <rdf:li resource=&quot;http://purl.org/net/schemas/space/spacecraft/LUNAR-A&quot; /> </rdf:Seq> </items> < os:startIndex >0</ os:startIndex > < os:itemsPerPage >10</ os:itemsPerPage > < os:totalResults >118</ os:totalResults > </channel> <item rdf:about=&quot;http://purl.org/net/schemas/space/spacecraft/LUNAR-A&quot;> <title>Item</title> <link>http://purl.org/net/schemas/space/spacecraft/LUNAR-A</link> < relevance:score >1.0</ relevance:score > <foaf:name>Lunar-A</foaf:name> <space:mass>520.0</space:mass> <space:internationalDesignator>LUNAR-A</space:internationalDesignator> </item> </rdf:RDF>
  • 85. Facetted Search Similar to Amazon product search, etc Group search results by specific fields
  • 87. <facet-results xmlns=&quot;http://schemas.talis.com/2007/facet-results#&quot;> <head> <query>name:luna*</query> <fields>agency</fields> <top>10</top> <output>xml</output> </head> <fields> <field name=&quot;agency&quot;> <term value=&quot;U.S.S.R&quot; number=&quot;25&quot; facet-uri=“…&quot; search-uri=“…&quot;/> <term value=&quot;United States&quot; number=&quot;9&quot; facet-uri=“…&quot; search-uri=“…&quot;/> <term value=&quot;Japan&quot; number=&quot;1&quot; facet-uri=“…&quot; search-uri=“…&quot;/> <term value=&quot;India&quot; number=&quot;1&quot; facet-uri=“…&quot; search-uri=“…&quot;/> </field> </fields> </facet-results>
  • 88. Augmentation Annotate an RSS 1.0 feed against a store Automatically add a description of each referenced resource
  • 89. Store Administration Job Control, Store Configuration
  • 90. Field Predicate Map Associate a short name to a RDF property Properties in field predicate map are indexed for searching Short name used in query syntax, sort order, etc
  • 91. <rdf:RDF xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot; xmlns:rdfs=&quot;http://www.w3.org/2000/01/rdf-schema#&quot; xmlns:bf=&quot;http://schemas.talis.com/2006/bigfoot/configuration#&quot; xmlns:frm=&quot;http://schemas.talis.com/2006/frame/schema#“ xml:base=“http://api.talis.com/stores/space”> <bf:FieldPredicateMap rdf:about=&quot;/indexes/default/fpmaps/default&quot;> <frm:mappedDatatypeProperty> <rdf:Description rdf:about=&quot;/indexes/default/fpmaps/default#agency&quot;> <frm:property rdf:resource=&quot;http://purl.org/net/schema/space/agency&quot;/> <frm:name>agency</frm:name> </rdf:Description> </frm:mappedDatatypeProperty> </bf:FieldPredicateMap> </rdf:RDF>
  • 92. Query Profile Assign weightings to fields for searching
  • 93. <rdf:RDF xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot; xmlns:rdfs=&quot;http://www.w3.org/2000/01/rdf-schema#&quot; xmlns:bf=&quot;http://schemas.talis.com/2006/bigfoot/configuration#&quot; xmlns:frm=&quot;http://schemas.talis.com/2006/frame/schema#“ xml:base=“http://api.talis.com/stores/space”> <bf:QueryProfile rdf:about=&quot;&quot;> <bf:fieldWeight> <rdf:Description rdf:about=&quot;/indexes/default/queryprofiles/default#name&quot;> <bf:weight>10.0</bf:weight> <frm:name>name</frm:name> </rdf:Description> </bf:fieldWeight> <bf:fieldWeight> <rdf:Description rdf:about=&quot;/indexes/default/queryprofiles/default#agency&quot;> <bf:weight>5.0</bf:weight> <frm:name>agency</frm:name> </rdf:Description> </bf:fieldWeight> </bf:QueryProfile> </rdf:RDF>
  • 94. Job Control Reindex, Reset, Snapshot, Restore POST Job Request to /jobs
  • 95. <rdf:RDF xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot; xmlns:rdfs=&quot;http://www.w3.org/2000/01/rdf-schema#&quot; xmlns:bf=&quot;http://schemas.talis.com/2006/bigfoot/configuration#&quot;> <bf:JobRequest> <rdfs:label>Reset the data in my store</rdfs:label> <bf:jobType rdf:resource=&quot;http://schemas.talis.com/2006/bigfoot/configuration#ResetDataJob&quot;/> <bf:startTime>2008-12-01T15:10:00Z</bf:startTime> </bf:JobRequest> </rdf:RDF>
  • 96. Jobs Each job is a resource, with a URI GET to monitor status, DELETE to remove
  • 97. Summing Up Summary, Additional Resources
  • 98. The Talis Platform… Provides a standards compliant storage infrastructure for structured and unstructured metadata Uses RDF to support widest possible variety of data models and integration options Allow managing of data assets through simple web APIs Offers a range of data extraction options including full-text searching, SPARQL, RSS augmentation Can be tailored to individual applications using the API Can be driven by scheduling jobs to perform data management tasks Is constantly evolving…
  • 99. Additional Resources API Reference http://n2.talis.com/wiki/Platform_API Mailing List http://groups.google.com/group/n2-dev Blog http://blogs.talis.com/n2/
  • 100. Client Libraries (in various states of development) Moriarty http://code.google.com/p/moriarty/ Javascript/JQuery http://n2.talis.com/wiki/Talis_jQuery_plugin Ruby Client http://rubyforge.org/projects/talis-platform/ Java Client http://code.google.com/p/penry/