A brief introduction to the Callimachus Project, an Open Source software project to make the creation of Semantic Web applications easy for Web authors.
2. ÎιΝΝίΟιĎÎżĎ of Cyrene
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
âMega biblion, mega kakonâ
Wednesday, September 29, 2010 2
âMany writings equals many worriesâ
Pinakes: Tables of those who were eminent in every branch of learning, and what they wrote,
in 120 volumes
Callimachusâ Quandary was that he could not categorize his own works in Aristotleâs
hierarchy.
3. Wednesday, September 29, 2010 3
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.
4. Wednesday, September 29, 2010 4
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 ďŹle systems.
5. 1. Object-RDF mapping
2. RDF
Wednesday, September 29, 2010 5
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.
6. The painter... does not ďŹt the paints to the world.
He ďŹts himself to the paint.
-- Paul Klee
Wednesday, September 29, 2010 6
7. Wednesday, September 29, 2010 7
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.
8. Wednesday, September 29, 2010 8
In our opinion, Semantic Web apps should look like arbitrary Web pages.
9. RDF Store
Web server
HTTP GET Class
Resource
request
Viewable
RDF response
SPARQL query
XML
template apply.xsl
HTTP
response HTML
Wednesday, September 29, 2010 9
11. 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
Wednesday, September 29, 2010 11
12. RDFa Pattern Queries
⢠RDFa is parsed into RDF
⢠Variables are identiďŹed by URI namespace for
conversion into basic triple patterns
⢠Nested tags use OPTIONAL joins to maximise
matches
⢠RDFa ďŹle is used to construct RDFa result of
matching triples
⢠Callimachus project contains an implementation of
the above
Wednesday, September 29, 2010 12
13. 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 resource
Wednesday, September 29, 2010 13
14. 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
Wednesday, September 29, 2010 14
15. 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
Wednesday, September 29, 2010 15
16. 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!
Wednesday, September 29, 2010 16
17. For More Information
⢠Contact
⢠James Leigh <james@leighnet.ca>
⢠David Wood <david@3roundstones.com>
⢠Get involved at
⢠http://callimachusproject.org/
Wednesday, September 29, 2010 17