Introducing the JotSpot Data Model and API

  • 2,323 views
Uploaded on

This preso introduces the benefits of adding structure to wikis and introduces how this is done in JotSpot wikis. It also provides a quick fly-over of the JotSpot API.

This preso introduces the benefits of adding structure to wikis and introduces how this is done in JotSpot wikis. It also provides a quick fly-over of the JotSpot API.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
2,323
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
0
Comments
0
Likes
3

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
  • Hi, my name is Scott McMullan, and I’m the Director of Developer Relations at JotSpot. This tutorial discusses the concept and benefits of adding structure to wikis, and then introduces the JotSpot wiki storage model and API. Let’s get started.

Transcript

  • 1. JotSpot Developer Tutorial Introducing the JotSpot Wiki Storage Model and API DRAFT
  • 2. Tutorial Overview
    • Benefits of Structure in a Wiki
    • JotSpot Storage Model Overview
    • JotSpot API Sneak Peak
  • 3. Why Add Structure to a Wiki?
  • 4. Why Structure in a Wiki?
    • Wikis are amazing for free-form text collaboration
    • But not all content in your wiki works well as free-form text…
    • Free-form text is simply not a good way to organize lists or view relationships
  • 5. Ask Your Wiki for More…
    • We track project milestones in our wiki…
    • Can I see milestone roll ups across all projects?
    • We track feature requests & requirements…
    • How do I sort requirements by customer? By priority?
    • We create lots of similar looking pages, e.g. meeting agendas…
    • Can we make page templates so it’s easy to create consistent looking pages?
  • 6. Summary: Benefits of Structure
    • Centralize : Store more types of info in a single place place
    • Simplify : Easier to organize and find “the good stuff”
    • Room to Grow : the more you use, the more you’ll need
  • 7. Introducing Structure in JotSpot Wikis
  • 8. What You’ll Learn
    • Everything is a Page in JotSpot (“Look ma, no database!”)
    • Pages contain properties
    • Properties defined by forms
    • In the end, pages stored as XML
  • 9. Todo List Page: Free-form Text
  • 10. Todo List Page: A Little Structure
  • 11. Todo List Page: A Little Structure + some Ajax
  • 12. Structure Under the Hood: Forms & Properties
  • 13. In JotSpot, Everything is a Page
    • My Todos – 13 lines of code:
    • 1 to add new todo pages
    • 6 to render rollup table
    • 6 to structure todo pages
    • Each todo a separate child page with 3 properties:
    • description
    • priority
    • when
  • 14. BTW, here’s the code
  • 15. Rows in a database Pages in JotSpot There is no database; Everything is a Page … … … … Daily Hi Walk the dog Today Lo Get Milk When Priority Description
  • 16. RDBMS Vs.Page-based Model Storage Concept Relational DB JotSpot JotSpot form page Table schema Unique items defined by… Property in a page Column in a row Individual value in… JotSpot page DB Row Unique item stored in… Set of JotSpot pages DB Table Application data stored in…
  • 17. But, How To Add and Edit Page Properties? (Hint: use Forms)
  • 18. JotSpot Forms: Just Wiki Pages with JotScript
  • 19. Create & Edit Pages w/Forms Edit Mode: mywiki.jot.com/GetMilk ?edit=1&form=TodoForm
  • 20. Forms Define Views Too
  • 21. In the End, Pages stored as XML Page “x-ray”: mywiki.jot.com/GetMilk ?xml=esc
  • 22. Did I Mention Forms Define Properties?
  • 23. Summary: What You Learned
    • Everything is a Page
    • Pages contain properties
    • Properties defined by forms
    • In the end, pages stored as XML
  • 24. There’s More to Using a JotSpot Form than Meets the Eye
  • 25. What You’ll Learn
    • Edit Different Properties of a Page Using Different Forms
    • Display Different Views of a Page Using Different Forms
  • 26. Edit “Get Milk” w/TodoForm… mywiki.jot.com/GetMilk?edit=1 &form=TodoForm
  • 27. Edit “Get Milk” w/PermissionsForm
    • mywiki.jot.com/GetMilk?edit=1 &form=PermissionForm
  • 28. Each Form Edits Different Properties mywiki.jot.com/GetMilk ?xml=esc
  • 29. Summary: What You Learned
    • Can Edit Pages w/Different Forms
    • Can View Pages w/Different Forms
  • 30. Manipulating Pages & Properties: API Sneak Peak
  • 31. What You’ll Learn
    • One Core Library (JotLib), 4 APIs
      • “ Tags” (aka JotScript)
      • Server-side Javascript
      • REST
      • XML-RPC
    • JotSpot API is Full-featured
  • 32. 3 Main API Syntaxes
    • JotScript (aka “tags”) <jot:search forFormName=“TodoForm” set=“results” />
    • Server-side Javascript (aka “ssjs”) var results = jot.lib.search({forFormName: ‘TodoForm'});
    • REST (aka “web service”) http://mywiki.jot.com/_/cmd/columns?col0=it/TodoForm/prio& format=xml&filter=util:isDefined(it/TodoForm)
  • 33. Example: Display a Todo Page’s Properties Code to Display This Here
  • 34. Code in JotScript
    • <jot:pageinfo href=“wiki:GetMilk” name=“pgVar” />
    • Desc: ${pgVar/TodoForm/description}
    • Do when?: ${pgVar/TodoForm/when}
    • Created: ${pgVar/createTime}
  • 35. Code in Server-side Javascript
    • <jot:script>
    • var pgVar=jot.pages[“/GetMilk”];
    • jot.out.write(“Desc:”+pgVar.TodoForm.description);
    • jot.out.write(“Do when?:”+pgVar[“TodoForm/when”]);
    • jot.out.write(“Created:”+pgVar.createTime);
    • </jot:script>
  • 36. Tags vs. SSJS: You Choose
    • var pgVar=jot.pages[“/GetMilk”];
    • jot.out.write(“Desc:”+pgVar.TodoForm.description);
    • jot.out.write(“Do when?:”+pgVar[“TodoForm/when”]);
    • jot.out.write(“Created:”+pgVar.createTime);
    <jot:pageinfo href=“wiki:GetMilk” name=“pgVar”/> Desc.: ${pgVar/TodoForm/description} Do when?: ${pgVar/TodoForm/when} Created: ${pgVar/createTime} VS.
  • 37. Lots More JotLib API: http://developer.jot.com/Reference jot.lib.attach() jot.lib.diff() jot.lib.image.newChart() jot.lib.mail() jot.lib.parseRows() jot.lib.removePage() jot.lib.rename() jot.lib.savePage() jot.lib.search() jot.lib.tree() admin.importZip() admin.log() admin.lookupEmail() …
  • 38. Summary: What You Learned
    • One Library, Four Syntaxes
    • JotSpot API is Full-featured http://developer.jot.com/Reference
  • 39. Tutorial Summary:
    • JotSpot Wikis Support Structured Information
    • Allows your Wiki to Grow With You
    • Structure uses Page & Property Model
    • Rich API to Put Pages & Properties to Work
  • 40. More Information:
    • More Developer Tutorials
      • http://developer.jot.com/Tutorials
    • Reference Documentation
      • http:// developer.jot.com /Reference
    • Questions or Comments?
      • leave comment on tutorial wiki page: http://developer.jot.com/JotDataModelAndApiTutorial
      • email me: scott@jot.com