Your SlideShare is downloading. ×

FISE Integration with Python and Plone

734

Published on

"Unleashing the Power of Semantic Data - Today"

"Unleashing the Power of Semantic Data - Today"

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
734
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. IKS Semantic Workshop Amsterdam 2010 FISE integration with Python and PloneJens W. Klein <jk@kleinundpartner.at> 2010-12-09 Creative Commons Namensnennung- Keine kommerzielle Nutzung- Page 1 of 14 Keine Bearbeitung 3.0 Österreich Lizenz
  • 2. Who we are● Jens Klein – Managing Director an founder of KUP – Software Architect and FOSS Enthusiaist● KUP - Klein & Partner KG – web technology agency based in Innsbruck (AT) – focused on Python, App-Engine, BFG, Zope, Plone – founding member of BlueDynamics Alliance● BlueDynamics Alliance – cluster of seven companies in region D-A-CH Creative Commons Namensnennung- Keine kommerzielle Nutzung- Page 2 of 14 Keine Bearbeitung 3.0 Österreich Lizenz
  • 3. PYTHON● programming language● used by Google, NASA and many more● increasing number of users● interpreted language (byte-code compiler)● untyped, lean, easy-to-read and understand● functional, object-oriented programming● powerful standard library● thousands of addon libraries Creative Commons Namensnennung- Keine kommerzielle Nutzung- Page 3 of 14 Keine Bearbeitung 3.0 Österreich Lizenz
  • 4. ZOPE● Python Technology for Web Applications● Zope 2 Web Application Server – more than 10 years old, but continiously modernized● Bluebream webapplication framework – application related parts of former Zope 3● Zope Toolkit Library – used/created by devs of Zope2, BlueBream, BFG● BFG/ Pylons Pyramid light weight web-app framework (related) Creative Commons Namensnennung- Keine kommerzielle Nutzung- Page 4 of 14 Keine Bearbeitung 3.0 Österreich Lizenz
  • 5. PLONE● Web Content Management System – built on top of Zope 2 – large community with >200 core contributors, in top 3% of FOSS-communities – trademark and IP managed by non-profit Plone Foundation – excellent security record – common WebCMS with focus on users/usability, scalability – addons and plugins for hundreds of use-cases Creative Commons Namensnennung- Keine kommerzielle Nutzung- Page 5 of 14 Keine Bearbeitung 3.0 Österreich Lizenz
  • 6. bring FISE to the Plone Community: Conference 2010● Talk at Plone Conference 2010/ Bristol – recorded at http://ploneconference2010.blip.tv/file/4317791● Open Space Session on Semantics in Plone● One Day Sprint (aka Hackathon) on FISE Creative Commons Namensnennung- Keine kommerzielle Nutzung- Page 6 of 14 Keine Bearbeitung 3.0 Österreich Lizenz
  • 7. FISE Python API Goals● offer a pythonic API to all FISE features exposed by its RESTFul API● hide as much as possible the HTTP aspect● use a widely used, well tested and scaleable foss-library for RESTFul http connections● full test coverage with Python doctests● provide an zc.buildout based installation which includes FISE itself and the tests Creative Commons Namensnennung- Keine kommerzielle Nutzung- Page 7 of 14 Keine Bearbeitung 3.0 Österreich Lizenz
  • 8. FISE Python-API fise.clientWanna smell code? Doctest style:FISE „engines“1 >>> from fise.client import FISE2 >>> fise = FISE(http://localhost:8080/)3 >>> somedoc = u"This is an example text."4 >>> fise.engines(somedoc)5 <rdf:RDF...</rdf:RDF>n6 >>> fise.engines(somedoc, format=rdfjson)7 {"...}8 >>> fise.engines(somedoc, parsed=True)9 <Graph identifier=... (<class rdflib.Graph.Graph>)> Creative Commons Namensnennung- Keine kommerzielle Nutzung- Page 8 of 14 Keine Bearbeitung 3.0 Österreich Lizenz
  • 9. FISE Python-API fise.clientFISE „store“1 >>> generated_id = fise.store.add(somedoc)2 >>> fise.store[existing_id] = somedoc3 >>> fise.store[generated_id] == somedoc4 True5 >>> fise.store.metadata(existing_id)6 <rdf:RDF...</rdf:RDF>n7 >>> fise.store.metadata(existing_id, parsed=True)8 <Graph identifie... (<class rdflib.Graph.Graph>)> 9 >>> fise.store.page(generated_id)10 <html>...</html> Creative Commons Namensnennung- Keine kommerzielle Nutzung- Page 9 of 14 Keine Bearbeitung 3.0 Österreich Lizenz
  • 10. FISE Python API Implementation Details● uses restkit as rest library● uses rdflib to transform results to Python object graphs,● uses SuRF library (on top of rdflib) for Sparql queries.● code at http://github.com/collective/fise.client● integration buildout at http://github.com/collective/fise-buildout Creative Commons Namensnennung- Keine kommerzielle Nutzung- Page 10 of 14 Keine Bearbeitung 3.0 Österreich Lizenz
  • 11. fise.client code location● Python-API http://github.com/collective/fise.client● Python Integration Buildout http://github.com/collective/fise-buildout● Plone Integration Package http://github.com/collective/fise.plone Creative Commons Namensnennung- Keine kommerzielle Nutzung- Page 11 of 14 Keine Bearbeitung 3.0 Österreich Lizenz
  • 12. Plone IntegrationWork done so far:● „indexing“ in FISE after creation and changes of content-objects.Whats missing?● query facility – Zope plugin index to FISE sparql endpoint – Integration with Collections● passing the site-structure and DC to FISE.● asynchronous processing Creative Commons Namensnennung- Keine kommerzielle Nutzung- Page 12 of 14 Keine Bearbeitung 3.0 Österreich Lizenz
  • 13. Plone DemoDEMO TIME Creative Commons Namensnennung- Keine kommerzielle Nutzung- Page 13 of 14 Keine Bearbeitung 3.0 Österreich Lizenz
  • 14. The EndQuestions AnswersDiscussions Creative Commons Namensnennung- Keine kommerzielle Nutzung- Page 14 of 14 Keine Bearbeitung 3.0 Österreich Lizenz

×