1 Wednesday, September 29, 2010
May 15, 2015
c. 305–c. 240 BCE
• Father of Bibliography (The Pinakes)at the great Library at Alexandria
• Could not categorize his own work in Aristotle’s hierarchical system
Καλλίμαχος of Cyrene
“Mega biblion, mega kakon”
2Wednesday, September 29, 2010
“Many writings equals many worries”Pinakes: Tables of those who were eminent in every branch of learning, and what they wrote, in 120 volumesCallimachus’ Quandary was that he could not categorize his own works in Aristotle’s hierarchy.
3Wednesday, September 29, 2010
Semantic Web applications have been hampered by our pre-conceived notions of software architecture. It has taken us ten years to build a full architecture.
4Wednesday, September 29, 2010
Like Aristotle’s hierarchy, we have thumb rules and presumptions in our software architectures. The 3-tier architecture is very useful, but most people equate the data layer with hierarchical or pseudo-hierarchical data stores like relational databases and file systems.
RDF
Object-RDF mapping1.
2.
5Wednesday, September 29, 2010
We try to address Callimachus’ Quandary by removing limitations implicit in the n-tier architecture. Objects are exposed to the user interface so we can keep using existing means of creating UIs, but those limitations are not serialized.
The painter... does not fit the paints to the world.He fits himself to the paint.
-- Paul Klee
6Wednesday, September 29, 2010
7Wednesday, September 29, 2010
Older attempts at creating RDF editors suffered from being too close to triples. Other products make an orthogonal mistake by storing objects based on RDF, thus limiting arbitrary relationships in the data. Callimachus tries to avoid both problems by presenting objects to the user while storing RDF natively.
8Wednesday, September 29, 2010
In our opinion, Semantic Web apps should look like arbitrary Web pages.
HTTP GETrequest
Class
Viewable
XMLtemplate apply.xsl
HTML
SPAR
QL
quer
y
RD
F re
spon
se
HTTPresponse
Web serverRDF Store
Resource
9Wednesday, September 29, 2010
Graph Pattern Queries
• Every triple is also a triple pattern
• Any graph can be used within a SPARQL ASK query
• Basic triple patterns are triples with variables
• Variables can be stored in triples as URI within a particular namespace
• Many CONSTRUCT and SELECT queries can be represented using triples with variables
11Wednesday, September 29, 2010
RDFa Pattern Queries
• RDFa is parsed into RDF
• Variables are identified by URI namespace for conversion into basic triple patterns
• Nested tags use OPTIONAL joins to maximise matches
• RDFa file is used to construct RDFa result of matching triples
• Callimachus project contains an implementation of the above
12Wednesday, September 29, 2010
UI Templates
• Use external BASE to enable query reuse against different subjects
• Template for every resource type and activity
• Activities include:
•View resource
•Review resource
•Edit resource
•Copy resource13Wednesday, September 29, 2010
RDFa Changesets
• JavaScript RDFa library for parsing and identifying differences on client side
• JavaScript library for RDFa aware DOM manipulation
• POST changes back to server as RDF or SPARQL Update
14Wednesday, September 29, 2010
When to use SPARQL
• RDFa does not include
• Join types (inner, left, cross, union)
• FILTER
•ORDER BY
• LIMIT, OFFSET
•GRAPH support
• For these constructs use SPARQL results with XSLT
15Wednesday, September 29, 2010
Managing Resources with RDFa
• Identify or create a resource vocabulary
• Create resource templates for every resource type and activity in RDFa
• Create search interface with SPARQL and XSLT
• Semantic Web applications made easy!
16Wednesday, September 29, 2010
For More Information
• Contact
• James Leigh <[email protected]>
•David Wood <[email protected]>
• Get involved at
• http://callimachusproject.org/
17Wednesday, September 29, 2010