Ontopia / Liferay integration


Published on

Slides about the status of the integration and the approaches used.

Published in: Technology
  • Be the first to comment

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Ontopia / Liferay integration

  1. 1. Liferay & Ontopia <ul><li>BouvetOne - Matthias Fischer </li></ul><ul><li>[email_address] </li></ul>
  2. 2. whoami <ul><li>Matthias Fischer </li></ul><ul><li>Undergrad cs student at HTW-Berlin, DE </li></ul><ul><li>Here for an intership for 3 months in total </li></ul><ul><li>Thanks for having me here :) </li></ul>
  3. 3. What is this about? <ul><li>Liferay Portal is an OpenSource Portal Sw </li></ul><ul><li>Ontopia is an OpenSource TM-Engine </li></ul><ul><li>Benefit: Semantically annotated meta-data! </li></ul><ul><li>Having a Portal featuring Topic Maps </li></ul><ul><li>or Topic Maps featuring a Portal :) </li></ul>
  4. 4. What‘s needed? <ul><li>A mapping from Liferay‘s concepts to topics. </li></ul><ul><li>An ontology for Liferay‘s concepts. </li></ul><ul><li>Trigger insert/update/delete within the tm automagically whenever changes in liferay occur. </li></ul>
  5. 5. Integration Liferay Integration Ontopia Model Object Topic New
  6. 6. Advancements <ul><li>[x] Basic data integration (CRUD for things like WebContent, Wikis, Users, etc.). </li></ul><ul><li>[ ] Integration of Ontopoly as part of the liferay ui for creating and editing. </li></ul><ul><li>[ ] Integration of information from the topicmap into Liferay Portal (,related articles‘ etc.). </li></ul>
  7. 7. Liferay Portal <ul><ul><li>How do we learn news from the portal? </li></ul></ul><ul><ul><ul><li>Using the Plugins-SDK enables you to create hooks. </li></ul></ul></ul><ul><ul><ul><li>Hooks can listen to changes in the model of Liferay. </li></ul></ul></ul><ul><ul><ul><li>Implement ModelListener Interface or extend BaseModelListener. </li></ul></ul></ul>
  8. 8. Liferay Portal <ul><li>Use „portal-ext.properties“ file to say to which changes in the model you listen to </li></ul><ul><li>You are being provided w/ Java objects </li></ul>
  9. 9. Identity <ul><li>How do we identify Liferay‘s objects in tm? </li></ul><ul><ul><li>Most objects in Liferay can be identified by UUIDs. </li></ul></ul><ul><ul><li>These in turn can be transformed into URNs and can hence serve as SIs. </li></ul></ul><ul><ul><li>see RFC 4122 </li></ul></ul><ul><ul><li>The short story is: „urn:uuid:“ + uuid </li></ul></ul>
  10. 10. Ontology <ul><li>Represents Liferays structure in a topicmap </li></ul><ul><li>Contains classes for: </li></ul><ul><ul><li>WebContent, Users, Communities, Wikis ..... </li></ul></ul><ul><li>Contains appropriate association types for: </li></ul><ul><ul><li>parent-child, contains, created_by, has_workflow_state .... </li></ul></ul>
  11. 11. Ontology created by is about contains has workflow state WebContent Article WikiNode WikiPage User Group Community Category Workflow State contains Automatically created in Ontopia by the Liferay integration Site-specific ontology Person Project Company
  12. 12. Create/Update/Delete <ul><li>Using tolog to modify topicmaps </li></ul><ul><li>Datalog like language for querying and updating topicmaps </li></ul><ul><li>Faster (and shorter) than using the APIs </li></ul><ul><li>String query = &quot;using lr for i&quot;&quot; + PSI_PREFIX + &quot;&quot; &quot; + &quot;insert lr:parent-child( lr:parent : &quot; + parentUrn + &quot;, lr:child : &quot; + childUrn +&quot; )&quot;; </li></ul>
  13. 13. Update with TmSync <ul><li>To be found in: </li></ul><ul><ul><li>net.ontopia.topicmaps.utils.TopicMapSynchronizer </li></ul></ul><ul><li>Used to synchronize topicmaps </li></ul><ul><li>Used in updates in the integration </li></ul><ul><li>General idea: Create updated topic in empty tm, then sync it with existing tm. </li></ul>
  14. 14. Screenshots Using liferay's control panel to add communities and content
  15. 15. Screenshots Using ontopoly to show the effects of things done in liferay to the topicmap
  16. 16. Screenshots create a community for our content
  17. 17. Screenshots and see the community showing up in ontopoly
  18. 18. Screenshots now we are switching to our community and add webcontent
  19. 19. Screenshots and see it showing up in ontopoly
  20. 20. Screenshots we can now add some more information if we wish (approval, expiry date etc.)
  21. 21. Screenshots and finally view it by clicking „edit“ and „Show in ontopoly“ (has become an embedded iFrame in the meantime)
  22. 22. Fin <ul><li>Thank you for attending this talk! </li></ul><ul><li>Have a nice day :-) </li></ul>
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.