A Semantic Wiki Based Light-Weight Web Application Model


Published on

Published in: Technology, Education
1 Comment
  • Jie Bao, Li Ding, Rui Huang, Paul R. Smart, Dave Braines, Gareth Jones: A Semantic Wiki Based Light-Weight Web Application Model. ASWC 2009: 168-183
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • User-contributed structured contents: limited ways for users to annotate web pages and publish their annotations as structured data, which can be shared and used in various ways. [tags, web forms only provide limited ways to annotate a page]. Access paradigm to those structured contents: users have to follow fixed interaction paradigm hard-coded in the web application. But with structured data, users actually can do more: avoid unnecessary overhead in NLP; and leverage services using the preserved semantics (e.g., semantic search) These limitations are rooted from the application models behind these web apps.
  • The missing part in the conventional models: no control over the underlying data and programming logic of the app prohibits users from building customizable applications – only server side developers or administrators can do that. Wiki-based model improves a bit by enabling users to directly do some simple manipulation and computation on the data. UI can be generated from user contributed templates Parser functions support simple computational tasks However, the wiki-based model only enables users to establish links between wiki articles and layout wiki pages. Typically, we cannot answer questions like “all Euro countries that have female government leaders”. To answer it, we need embedded knowledge in wiki pages.
  • Lots of efforts use semantic technologies to address these limitations, notably Semantic Wikis. The SemanticWiki-based effort takes advantage of the fact that wiki-based model already enables collaborative authoring of scripts. Based on that, it adds functionalities to make semantic annotations and parser functions to process them. As you will see later, it will promote a new app model in which web apps are developed. But first, I just want to show a few slides introducing the basics of Semantic Wikis.
  • The model is not limited to wiki-based implementations, as more web 2.0 applications provide semantic extensions (Drupal), this model can also be used in other platforms
  • Thus supporting * Social structured knowledge construction * Social programming
  • CRUD = create, read, update, delete
  • [TODO] link does not work.
  • Wiki scripts: table, picture, tree, etc Javascirpt: wikicafe.metacafe.com, metavid.org
  • Location-based information: information (e.g., events, people, phone, etc.) based on their locations
  • [TODO] need discussion
  • not supporting all owl features, but almost all commonly used features are covered by the meta-model (e.g., partial vs. complete at the same time)
  • isDefintion: partial and complete 2) support automatic owl file importing 3) semantic forms facilitate content editing, minimal manual editing of scripts needed
  • [TODO] What is the output?
  • A Semantic Wiki Based Light-Weight Web Application Model

    1. 1. A Semantic Wiki Based Light-Weight Web Application Model Jie Bao, Li Ding, Rui Huang, Paul R. Smart, Dave Brains, and Gareth Jones Presenter: Zhenning Shangguan Dec. 07, 2009
    2. 2. Outline <ul><li>Introduction </li></ul><ul><li>Semantic Wiki Based Light-weight Web Application Model </li></ul><ul><li>Proof-of-concept prototypes </li></ul><ul><ul><li>RPI Map (http://map.rpi.edu) </li></ul></ul><ul><ul><li>CNL Wiki (http://tw.rpi.edu/proj/cnl) </li></ul></ul><ul><li>Conclusions & Future Work </li></ul>
    3. 3. Web 2.0 Applications <ul><li>Success of Web 2.0 applications </li></ul><ul><ul><li>Simple publishing </li></ul></ul><ul><ul><li>Social interaction </li></ul></ul><ul><ul><li>… </li></ul></ul><ul><li>However, limitations do exist </li></ul><ul><ul><li>User-contributed structured data </li></ul></ul><ul><ul><li>Diversity of data access paradigm </li></ul></ul>
    4. 4. Web App Models Server Side Users’ Control Web Server Database/Files Web Browser Conventional Model HTML+CSS Server Side Users’ Control Web Browser Ajax Engine Web/Data Server Database/Files AJAX Model HTML/XML data HTML+CSS Server Side Wiki Engine Users’ Control Web Browser Wiki Func. Wiki-based Model Web Server Database/Files Wiki UI HTML+CSS
    5. 5. Semantic Wiki Semantic Wiki Multi-user content creation and editing Browser-based, cross-platform easy to use Supports semantic annotations for automated processing and inference
    6. 6. Semantic MediaWiki (SMW) <ul><li>It is the most popular semantic wiki system extending MediaWiki (the Wikipedia’s platform) </li></ul>Mediawiki: What you edit what you see
    7. 7. Semantic MediaWiki SMW: What you edit (Modeling Script) what you see To author knowledge typed link (property)
    8. 8. Semantic MediaWiki SMW: What you edit (Querying Script) what you see To retrieve knowledge
    9. 9. Semantic Wiki <ul><li>Potential to serve as a platform that supports </li></ul><ul><ul><li>Rich data modeling </li></ul></ul><ul><ul><li>Transparent data processing </li></ul></ul><ul><ul><li>Social programming </li></ul></ul><ul><li>Thus promoting a new web application model </li></ul>
    10. 10. SemWiki-based Model Server Side SemWiki Engine Users’ Control Web Browser SemWiki Data Wiki Func. SemWiki-based Model Web Server Database/Files Wiki UI HTML+CSS Structured data from SemWiki annotations Parser functions to process the structured data Wiki scripts to build application interface Both structured data and wiki scripts are accessible!
    11. 11. Data Modeling <ul><li>Annotations from all wiki pages forms an RDF graph </li></ul><ul><li>Can be considered as a virtual abstraction layer over the server-side database/file system </li></ul><ul><ul><li>Evolving knowledge base </li></ul></ul><ul><ul><li>Collective CRUD operations supported </li></ul></ul>
    12. 12. Data Processing <ul><li>Extensions of MediaWiki support light-weight data processing </li></ul><ul><ul><li>Parser functions </li></ul></ul><ul><ul><li>Variables </li></ul></ul><ul><ul><li>Datatypes </li></ul></ul><ul><ul><li>Control flows </li></ul></ul>(Please see http://tw.rpi.edu/wiki/ASWC2009Bao#Links for details)
    13. 13. User Interface <ul><li>Application UI is defined by a set of wiki pages </li></ul><ul><li>Wiki scripts can be used to customize UI </li></ul><ul><ul><li>Templates and queries to control look-and-feel of wiki pages </li></ul></ul><ul><ul><li>Semantic Forms facilitate content editing </li></ul></ul><ul><li>Embedded JavaScript code to enrich UI </li></ul><ul><ul><li>More interactive and intuitive visualization elements </li></ul></ul>
    14. 14. Case Study RPI Map http://map.rpi.edu CNL Wiki http://tw.rpi.edu/proj/cnl
    15. 15. RPI Map <ul><li>A mash-up map application based on Semantic MediaWiki </li></ul><ul><li>Provides location-based information in the RPI campus </li></ul><ul><li>Integrates data from various external sources </li></ul><ul><li>Visualizes integrated data using Google Map </li></ul>http://map.rpi.edu
    16. 16. CNL Wiki <ul><li>Collaborative OWL ontology building application based on Semantic MediaWiki </li></ul><ul><li>Controlled Natural Language (CNL) used to facilitate understanding of generated knowledge statements </li></ul>http://tw.rpi.edu/proj/cnl
    17. 17. Highlights <ul><li>Automatic form Generation </li></ul><ul><li>Query-based Content Generation </li></ul>User Interface <ul><li>Template as Function </li></ul><ul><li>CNL Generation </li></ul><ul><li>Stored Query </li></ul><ul><li>Data Cleansing </li></ul>Data Processing <ul><li>OWL Modeling </li></ul><ul><li>Template as Schema </li></ul>Data Modeling CNL Wiki RPI Map
    18. 18. Highlights <ul><li>Automatic form Generation </li></ul><ul><li>Query-based Content Generation </li></ul>User Interface <ul><li>Template as Function </li></ul><ul><li>CNL Generation </li></ul><ul><li>Stored Query </li></ul><ul><li>Data Cleansing </li></ul>Data Processing <ul><li>OWL Modeling </li></ul><ul><li>Template as Schema </li></ul>Data Modeling CNL Wiki RPI Map
    19. 19. Template as Schema (RPI Map) <ul><li>Templates are used to define classes in the application </li></ul><ul><li>Each template defines a set of attributes for the corresponding class </li></ul>
    20. 20. Schema definition in DB-based applications Template defines the data structure for each class in RPI Map
    21. 21. OWL Modeling <ul><li>Developed SMW-mOWL, a meta-model extension to SMW, to address expressivity constraints of SMW ( Bao et al., 2009 ) </li></ul><ul><ul><li>In SMW-mOWL, an ontology is represented using a set of wiki pages </li></ul></ul><ul><ul><li>Each wiki page encodes a certain ontology entity (class, property, individual) using wiki templates </li></ul></ul><ul><ul><li>Each wiki template defines axiom/annotation information for an ontology entity </li></ul></ul>
    22. 22. SMW-mOWL Class(Rabbit partial intersectionOf(animal restriction(eat someValuesFrom(FreshVegetable))) OWL: “Rabbit eats some fresh vegetable” Wiki templates to define axiom/annotation information. Form-based editing interface associated with templates
    23. 23. OWL Class Templates Similarly, we have templates for properties and individuals
    24. 24. Query-based Content Generation <ul><li>Semantic queries can be used to find desired information and generate the UI </li></ul>{{#ask:[[Category:Event]] [[has end time::> {{LOCALMONTHNAME}} {{LOCALDAY}}, {{LOCALYEAR}} 00:00]]}} Semantic query to find today’s events and render them in a table
    25. 25. With little efforts, we can generate a map of today’s events based on the previous query
    26. 26. CNL Generation <ul><li>A set of templates are defined and used to generate CNL statements for ontology entities </li></ul><ul><li>Supported CNL’s </li></ul><ul><ul><li>Rabbit </li></ul></ul><ul><ul><li>ACE (Attempto Controlled English) </li></ul></ul><ul><li>Able support other CNL’s by defining corresponding templates </li></ul>
    27. 27. OWL Abstract Syntax Class(Rabbit partial intersectionOf(animal restriction(eat someValuesFrom(FreshVegetable))) Template:getClassDeclaration Template:getConceptRelationAssertions Template:getSomeRestrictionAssertion
    28. 28. Conclusion <ul><li>Identified a light-weight web application model based on semantic wikis </li></ul><ul><li>Presented two prototype systems, RPI Map and CNL Wiki, based on this model </li></ul><ul><li>The model represents emerging trends in web application development </li></ul><ul><ul><li>Making structured data publicly available to facilitate data reuse </li></ul></ul><ul><ul><li>Making data processing open to support customized application development </li></ul></ul>
    29. 29. Future Work <ul><li>Improve prototype systems to show benefits of the proposed model </li></ul><ul><li>Investigate application of our proposed model on other platforms (e.g., Drupal) </li></ul><ul><li>Development of extensions for SMW to better support our model </li></ul><ul><li>We expect the network effect of our model as more platforms adopt it </li></ul>
    30. 30. Questions? <ul><li>Thank you! </li></ul>
    31. 31. Backup slides
    32. 32. Stored Query <ul><li>Many queries are repeatedly used in many components </li></ul><ul><li>Templates are used to store these queries for later reuse </li></ul>{{#ask: [[Has alias::{{PAGENAME}}]] |link=none|limit=1}}
    33. 33. Template as Functions <ul><li>Templates can be considered as functions in common programming languages </li></ul><ul><li>Can take some input, process it, and return some value </li></ul>{{#ask: [[:{{page}}]] [[Category:Anon]]}} Template:CNL.Rabbit.Anon {{#ask: [[:{{page}}]] |?CnlLabel}} Tempalte:CNL.Rabbit.getLabel {{PAGENAME}} YES NO
    34. 34. User Interface <ul><li>Templates to define the layout and look-and-feel of wiki pages </li></ul><ul><ul><li>Template:Property defines the presentation of the Property section on the wiki page for a concept </li></ul></ul><ul><ul><li>Template:GUI.Tree shows a class hierarchy tree by taking the ontology and the root class as input </li></ul></ul>