WikiD (Wiki/Data)
Jeffrey A. YoungOCLC Office of [email protected]
Distributed ServiceRegistry WorkshopWarwick, UK14 July 2005
WikiD Overview
Ward Cunningham describes a wiki as "the simplest online database that could possibly work".
The cost of this simplicity is that wikis are generally limited to a single collection containing a single kind of record (viz. Wiki Markup Language records).
WikiD (Wiki/Data) extends the wiki model to support multiple collections containing arbitrary schemas of XML records with minimal additional complexity.
What we’ll cover
Walkthrough of the conventional WikiPage creation process Walkthrough of the WikiD “Collection” creation process Discuss potential applications of WikiD Discuss the architecture of WikiD
Datademocracy
Click to edit this sandbox page
Create a reference to a new WikiPage
Click to saveChanges
The ‘?’ indicates that the page
doesn’t exist yet. Click it to start the
page creation process
Type in some content according to the Wiki Markup
Language rules
Click to save changes
Side note: “Category” WikiNames are special
The question mark is gone,
replaced with a hotlink to the
new page
Here is the Wiki Markup we entered,
rendered into HTML for display
“Collection” WikiNames
Some WikiNames can have special meaning (e.g. WikiNames that begin with the word “Category”)• For our purposes, we don’t care how “Category”
WikiNames are special, only that they are treated differently by the WikiEngine
In the same spirit, WikiD treats WikiNames that start with the word “Collection” as special
This is the WikiD sandbox page and
we’re going to edit it
The “Collection” prefix is special. We’re going to
create a registry of open-source software projects
Click to save changes
The sandbox page has been updated to reflect our change.
Click the ‘?’ to begin the collection creation process
Before we create the collection, note that
none of the listed XML Schemas suit our needs
So, click to add a new
schema
Let’s identify our new XML Schema
with the label: “software”
Give ourXML Schema
a title
Click “Create” to
submit
Now, list the
element names in our new
XML Schema
What gets stored is an XML Schema document
generated from the list of elements we just entered
We’re back to our collection creation form
with our new XML Schema now included in the list of available
XML Schemas
Create the
collection
The ‘?’ is gone. We just created the collection, so our collection name
is now hotlinked
This is the collection home page. It’s
time to add items to the collection.
Here are the element names from the XML Schema I just
created
This is the collection home
page, with several items added
This is the display for a single item in
the collection
WikiD Features
Support for fielded searching (via SRW/U) Support for XML Schema crosswalks (via XSL) Support for custom HTML rendering (via XSL) Support for custom collection-level actions (via Java classes
and/or XSL) Support to dynamically interact with external collections
(e.g. OAI repositories, OPACS, OpenURL resolvers) Supports a variety of protocols for input/output
• OAI-PMH v2.0• SRW/U• OpenURL 1.0• RSS
Arbitrary URI resolution (via an embedded OpenURL 1.0 resolver)
PearsDB
Engine
Filesystem
SRW/U Update
WikiD
OpenURL1.0
WebEdit
Servlets & Data Flows
OpenURL 1.0 Resolver
A standard for performing context-sensitive “services” on “referents” (e.g. rendering of wiki markup records)
• http://alcme.oclc.org/openurl/docs/pdf/z39_88_2004.pdf Installation is configured to recognize wiki-type services
• display• edit• delete• etc.
For this application, my plan is to embed this in the WikiD code rather than run it as a sibling web-app
http://www.oclc.org/research/projects/openurl/default.htm
Wiki/OpenURL 1.0 Mapping
Identifier By ValueMetadata
By ReferenceMetadata
PrivateData
Referent info:sid/localhost:Wiki.Internal:FrontPage/Sub
ReferringEntity
http://localhost:8080/metawiki/info:sid/localhost:Wiki.Internal:FrontPage
Requester User ID(if authenticated)
Service Type action=edit
Resolver
Referrer http://localhost:8080/metawiki
Pears
A record-based database system http://www.oclc.org/research/software/pears/default.htm
SRW/U
Search/Retrieve Web/URL Service A SOAP/REST search service standard
• http://www.loc.gov/z3950/agency/zing/srw/brief.html http://www.oclc.org/research/software/srw/default.htm
Update
Update Web Service A database update web service standard created by the
SRW/U community• http://srw.cheshire3.org/docs/update/
Enhanced to support file system-based version control of documents
WebEdit
A lightweight open-source web-based record editor Accepts HTML form submittals and transforms them into
XML documents that conform to a desired XML Schema Forwards the generated XML document to a corresponding
Update service
WikiD
An lightweight wiki front-end to an OpenURL 1.0 resolver• This combination supports wiki-enhancements for managing
fielded data collections• http://outgoing.typepad.com/outgoing/2005/05/metawiki.html
doGet/doPost processing• Transforms a Wiki URL request into an OpenURL 1.0
ContextObject representation• Issues the ContextObject to the OpenURL resolver• Relays the resolver results back to the client