Projects/Silk

From KDE TechBase

Project Silk

The following is based on notes from meeting 9 July 2009.

The basic aim of project silk is to deeply integrate online content and communication into the user experience.

Goal and Concept

The goal of Project Silk is deep coupling of the web with the user experience while overcoming limitations of the browser. "Freeing the Web From the Browser", so to say. Project Silk takes the opposite direction of Google's Chrome OS, instead of making the browser the Operating System, we integrate the content and the communication deeply into the desktop and application

Slogan: "Freeing the Web from the Browser", "A New User Interface (Face) for the Web"

What the user gets

  • the Social Desktop, have your friends on the desktop
  • Public transport See [1] for example
  • Online news
  • Online shopping (Amazon API)
  • Geoweb: Where are we?
    • What's here? Categories: Culture, shopping, food and drink, friends near here, weather forecast, public transport, translation, wikitravel, localphone, ATM, hotels (with booking), local phone numbers (taxi, police, doctors, tourist info, sports (passive, active), social activities (local church, etc.) nearby internet access.
      • Food support could know of dietry requirements
    • Local translations
  • All this with the ability to feedback
  • I'm going to visit XYZ, cache me all the data I need and create a printable overview.
  • Mobile phone tarrifs, dialing prefixes
  • Local prices - what does hotel, food, travel etc. cost here?
  • libocs (my location, nearby etc.)
  • CIA world fact book
  • the newspaper containment in our plasma-netbook shell
  • Travel help: an small application that asks where you're going, and then pulls in information from various locations, much like a dynamic travel guide. This information is then cached (you might not find an Internet connection directly!). Pieces of information that would be useful: maps of the city you're visiting (thanks openstreetmap), phone numbers (the local country code, taxis, doctors, hotels, restaurants, ...) As a bonus, there would be the option to compile a three page summary pdf to print so you don't have to open up your netbook / laptop all the time.

Components

  • a webkit-based Konqueror
  • libweb
  • Silk integration for existing technologies
  • applications and applets integrating web content
  • new concepts of remixing content from the web

webkit-based Konqueror

During Akademy, there was much discussion and also already some code to make the webkit kpart ready for prime-time. A fully working, modern and integrated browser is one of the most important pillars of Project Silk. Konqueror will be using webkit, making it fully working with all major websites. Info about webkit in Konqueror: http://techbase.kde.org/Projects/WebKit

libweb

libweb provides the plumbing for applications to easily integrate content from the web by offering a KDE-style API. Think of Solid or Phonon, but for the web. libweb is not so much one library, but a collection of reusable components and sublibraries. It will be a library containing utility classes for integrating online content and services into KDE. Here are some ideas of things it could contain:

  • MediaWiki Query class (done)
  • webslices, individual parts of webpages as Q(Graphics)Widgets
  • webpage thumbnailer (done)
  • webpage metadata class with previews
  • standalone webapps
  • bookmarks with update notification ("this webpage has changed since your last visit") (in progress as SoC?)
  • Base class for implementing REST apis with site-specific implementations (much like Cornelius OCS lib that's used in the opendesktop dataengine)
  • online news / RSS lib (done)
  • libgeoweb, combining geolocation with webservices to retrieve data relevant to your current location, or to where you're travelling to)
  • social web API, plugging into different social networks (openDesktop, facebook, linkedIn) (in progress)
  • public transport API (standardized way of getting at this information, different backends to get at the data)
  • online shopping API (+ different backends)
  • online multimedia content (streaming audio, video, music store): see Amarok
  • SOAP API (useful for corporate web apis)
  • Monitor webpages + change notifications
  • See Kevin's work on QtJolie

The challenge for libweb is to keep it smooth and well-structured. It would be too easy to just dump everything web-related in there, we need to think about how the whole thing should look like for developers.

Backends for the service APIs (public transport, online shopping, ...) we offer in libweb should be written in scripting languages for so far possible, so we can easily distribute and update them through GHNS, much like the comic plasma applet does with its per-site comic scriptlets.

Silk integration components

  • tagging and indexing of visited webpages in the desktop search / nepomuk
  • akonadi resources for interesting services (google contacts, del.icious bookmarks, linkedin and facebook contacts, ...)
  • wikipedia runner for KRunner (done :-))
  • web identity configuration (central openID config, easy configuration of webservices (think of a button for GMail which then creates an akonadi resource, pulls in email and shows that in Lion Mail on the desktop, or similar, instead of pointing the IMAP config to the GMail server), controls the settings for microblogging, blogging, facebook, google.
  • a flickr (or rather web-gallery) browser
  • a standalone web video viewer [[2]] looks interesting (alediaferia is working a dataengine for video)
  • microblogging app / applet (done)
  • Plasma dataengines and applets
  • Selkie, a sitespecific browser, offering an interface customized for running standalone webapps, uses site-specific bookmarks, offers toolbar actions matching a specific site, instead of location bars and back/forward buttons. (in progress)

Why is Silk better than a webbrowser

  • offline usage and caching, even if limited
  • richer UI (usage of modern graphics capabilities)
  • most webpages only work on a full computer and maybe on a netbook), smaller devices often suffer there
  • we can optimize content for small and large screen sizes
  • we can make things compatible for differnet input devices (ever tried google maps on a touchscreen?)
  • coherent theming
  • full product thinking (hi Aaron!) by integrating interesting services by default)
  • better development platform (not bound to JavaScript / Ajax)

Research Topics

  • What does already exist, where?
  • In how far can we make use of existing API, existing service protocols?
  • How do we promote Freedom with Silk?
  • What business models does it allow?
  • Where can we get corporate buy-in?
  • Where does real-time collaboration stand here?

How do we tackle Project Silk

The idea is to fly under the public radar for some time. Once we have the first bits in place, we announce it as the next multi-year vision for KDE and try to get everybody on board with a big PR splash. (Flying under the radar for a bit will help -- announcing vapourware wouldn't be cool, if we show that we've already some momentum, it'll work much better. Silk is very much a movement towards deep integration, not a one-off or a single application. We have the technologies in place to keep an edge over competitors, and we have the developer community in place to create small plugins to support a wide variety of (even local and niche) services.

Where's the Code?

Silk components are hosted in the Project Silk repository on Gitorius. Keep in mind that many applications that make the desktop "silk" are integrated into the applications or Plasma already. This git repo collects the bits that aren't (yet).

The code is highly experimental, it eats kittens alive. You've been warned.

How can we get people on board?

  • Blog about the concepts
  • Invite interested developers to a mailinglist
  • Organize a Silk developer sprint
  • Contact people who have been working on "webby" stuff in KDE (done, in progress)
  • Divide libweb and the SIL (Silk Integration Layer) into small subtasks
  • Provide a git repo with the bits and pieces to get cracking (done)

Mailinglist and IRC

Why Silk?

(Spider)webs are made of it.