Wiki Profile Vocabulary

3 July 2007

This version:
http://wikirdf.org/vocabulary/profile/versions/2007-07-03.html
Latest version:
http://wikirdf.org/vocabulary/profile/
Previous version:
http://wikirdf.org/vocabulary/profile/versions/2005-12-17.html
Author:
Earle Martin
Contributors:
See acknowledgements.

Copyright © 2005-7 Earle Martin.

Creative Commons Licensed This work is licensed under a Creative Commons License. This copyright applies to the Wiki Profile Vocabulary documentation and does not apply to the Wiki Profile Vocabulary data formats, vocabulary terms, or technology. Regarding underlying technology, the Wiki Profile Vocabulary relies heavily on W3C's RDF technology, an open Web standard that can be freely used by anyone.


Abstract

This vocabulary provides classes and properties describing both the generic concept of wikis and their components, and also existing wiki communities, including such information as the URIs of their various utility features and what other wikis they may have set up associations with.


Table of Contents


1. Introduction

1.1 Wikis and the Semantic Web

A wiki is a website in which, in its most basic form, any user is able to edit any page. Since the invention of the concept in 1995 by Ward Cunningham for the Portland Pattern Repository (WikiWikiWeb), the idea of an editable website has become widely adopted and forms the basis of numerous communities and projects, as well as being commonly used as a groupware tool in a multitude of contexts.

The World Wide Web Consortium, under the direction of Tim Berners-Lee, the Web's original inventor, is actively promoting the concept of the Semantic Web, an extension of the Web beyond its current stage in which information will be present both in a format understandable by humans, but also in a format in which it can be transformed and interpreted by software. The W3C's Semantic Web FAQ states,

The vision of the Semantic Web is to extend principles of the Web from documents to data [and] fulfill more of the Web's potential, in that it will allow data to be shared effectively by wider communities, and to be processed automatically by tools as well as manually.... Semantic Web technologies can be used [for example to describe] the content and content relationships available at a particular Web site, page, or digital library [and] in describing collections of pages that represent a single logical "document".

As a wiki is a collection of pages that forms a document, it is a natural candidate for integration into the Semantic Web. The Wiki Profile Vocabulary defines wikis and their components in Semantic Web format, and also provides a way of describing any given wiki website in terms of its content and construction.

1.2. Sister Sites and knowledge networks

During the years after the formation of the WikiWikiWeb, other wiki sites were created, either independently or as spin-offs of the original community, such as Meatball Wiki. In many cases, the topic areas of different wiki sites coincided or overlapped. Cunningham proposed the creation of a network of "Sister Sites", where pages that existed on different sites but shared their pages name would hyperlink to each other, thus allowing "accidental linking". (For more details on this, see the sister sites implementation guide.)

This network of wiki sites was subsequently created and still exists, occasionally gaining or losing members. However, the process of maintaining the network is, at present, entirely managed by individual site administrators, involving time-consuming configuration. However, by integrating this vocabulary into wiki software, it becomes possible to enable automatic discovery (along the lines of FOAF autodiscovery) of the existence of sister site links, and possibly even automatic connection of one wiki to another and integration with the network.

The process of using this vocabulary to create descriptive profile documents for active wiki sites is described in Creating Wiki Profiles with the Wiki Profile Vocabulary. It also describes how an XSLT stylesheet may be used to transform the RDF profile document into a summary readable by humans.

1.3 Other uses of this vocabulary for the Semantic Web

While many of the properties in this vocabulary have been designed for the application of profile documents, it was nevertheless designed with generic usage as a Semantic Web ontology in mind as a project goal. The classes and properties, where possible, are subclassed from relevant terms in the FOAF and SIOC vocabularies to provide useful additional semantics.


2. Terminology and notation

The keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 ("Key words for use in RFCs to Indicate Requirement Levels").

Namespace URIs of the general form "http://example.com/" represent some application-dependent or context-dependent URI as defined in RFC 2396 ("Uniform Resource Identifiers (URI): Generic Syntax").

The Namespace URI that MUST be used by implementations of this specification is:


3. Example

Following is an example of a wiki profile document in RDF/XML describing an active wiki using all the terms in the vocabulary. Note that if you are using the vocabulary for the simpler purpose of providing wiki-related terms in another context, not all of the specific properties are necessary.

<rdf:RDF
  xmlns:doap = "http://usefulinc.com/ns/doap#"
  xmlns:foaf = "http://xmlns.com/foaf/0.1/"
  xmlns:rdf  = "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:wiki = "http://purl.org/wikirdf/profile#"
>

<--
   Note: the rdf:ID is important here in order to produce a resource
   that uniquely identifies your wiki - especially if you are defining
   more than one wiki in the same file.
-->
<wiki:Wiki rdf:ID="FrobozzWidgets">

  <wiki:name>Frobozz Widgets Wiki</wiki:name>
  <wiki:interwiki_name>FrobozzWidgets</wiki:interwiki_name>
  <wiki:description>Wiki for Frobozz Widgets users.</wiki:description>

  <wiki:creator>
    <foaf:Person rdf:about="http://example.com/foaf.rdf#SomeGuy">
      <foaf:name>Some Guy</foaf:name>
      <foaf:homepage rdf:resource="http://example.com/" />
    </foaf:Person>
  </wiki:creator>
  
  <!-- For more information on this, see http://downlode.org/rdf/iso-639/ -->
  <wiki:language         rdf:resource="http://downlode.org/rdf/iso-639/languages#en"       />

  <wiki:icon               rdf:resource="http://example.com/wiki_logo.gif"                 />
  <wiki:wiki_URI           rdf:resource="http://example.com/wiki?FrontPage"                />
  <wiki:base_URI           rdf:resource="http://example.com/wiki?"                         />
  <wiki:all_pages_URI      rdf:resource="http://example.com/wiki?action=listpages"         />
  <wiki:recent_changes_URI rdf:resource="http://example.com/wiki?RecentChanges"            />
  <wiki:rss_URI            rdf:resource="http://example.com/wiki?action=rss"               />
  <wiki:last_diff_URI      rdf:resource="http://example.com/wiki?action=diff;id="          />
  <wiki:edit_page_URI      rdf:resource="http://example.com/wiki?action=edit;id="          />
  <wiki:page_history_URI   rdf:resource="http://example.com/wiki?action=history;id="       />
  <wiki:search_URI         rdf:resource="http://example.com/wiki?action=search;term="      />
  <wiki:search_titles_URI  rdf:resource="http://example.com/wiki?action=titlesearch;term=" />

  <wiki:engine>
    <doap:Project rdf:about="http://example.com/WikiEngine/doap.rdf#WikiEngine">
      <doap:name>Wiki Software</doap:name>
      <doap:homepage rdf:resource="http://example.com/WikiEngine/" />
      <doap:release>
        <doap:Version>
          <doap:revision>2.3</doap:revision>
        </doap:Version>
      </doap:release>
    </doap:Project>
  </wiki:engine>

  <wiki:twin_pages_with>
    <wiki:Wiki rdf:about="http://example.com/wiki.rdf#FrobozzGadgets">
      <wiki:name>Frobozz Gadgets Wiki</wiki:name>
      <wiki:sister_relationship>Discusses Frobozz Gadgets, which are related to but different 
from Frobozz Widgets - sistered with us in 2004.</wiki:sister_relationship>
    </wiki:Wiki>
  </wiki:twin_pages_with>

</wiki:Wiki>

</rdf:RDF>

This is a Notation 3 version of the same information:

@prefix :     <#> .
@prefix wiki: <http://purl.org/wikirdf/profile#> .
@prefix doap: <http://usefulinc.com/ns/doap#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .

:FrobozzWidgets
	a wiki:Wiki ;
	wiki:name               "Frobozz Widgets Wiki" ;
	wiki:interwiki_name     "FrobozzWidgets" ;
	wiki:description        "Wiki for Frobozz Widgets users." ;
	wiki:creator            <http://example.com/foaf.rdf#SomeGuy> ;
	wiki:icon               <http://example.com/wiki_logo.gif> ;
	wiki:wiki_URI           <http://example.com/wiki?FrontPage> .
	wiki:base_URI           <http://example.com/wiki?> ;
	wiki:all_pages_URI      <http://example.com/wiki?action=listpages> ;
	wiki:edit_page_URI      <http://example.com/wiki?action=edit;id=> ;
  	wiki:engine             <http://example.com/WikiEngine/doap.rdf#WikiEngine> ;
	wiki:language           <http://downlode.org/rdf/iso-639/languages#en> ;
	wiki:last_diff_URI      <http://example.com/wiki?action=diff;id=> ;
	wiki:page_history_URI   <http://example.com/wiki?action=history ;id=> ;
	wiki:recent_changes_URI <http://example.com/wiki?RecentChanges> ;
	wiki:rssURI             <http://example.com/wiki?action=rss> ;
	wiki:search_titles_URI  <http://example.com/wiki?action=titlesearch;term=> ;
	wiki:search_URI         <http://example.com/wiki?action=search;term=> ;
	wiki:twin_pages_with    <http://example.com/wiki.rdf#FrobozzGadgets> ;
    
<http://example.com/WikiEngine/doap.rdf#WikiEngine>
	a doap:Project ;
	doap:homepage <http://example.com/WikiEngine/> ;
	doap:name "Wiki Software" ;
	doap:release [
		a doap:Version ;
		doap:revision "2.3"
	] .
    
<http://example.com/foaf.rdf#SomeGuy>
	a foaf:Person ;
	foaf:homepage <http://example.com/> ;
	foaf:name "Some Guy" .

<http://example.com/wiki.rdf#FrobozzGadgets>
	a wiki:Wiki ;
	wiki:name "Frobozz Gadgets Wiki" ;
	wiki:sisterRelationship """Discusses Frobozz Gadgets, which are related to but 
different from Frobozz Widgets - sistered with us in 2004.""" .


4. Changes since last version

This version was a major overhaul.

Changes to this vocabulary are recorded in full in the change history.


5. Listing of classes and properties

The vocabulary is defined in the schema file (RDF/XML; also available as N3. A listing and explanation of its classes and properties follows, along with an indicator of whether, in the case of properties, the property needs to be present in a wiki profile document.

Classes in this vocabulary

Name Description Equivalent to Sub-class of
wiki:Wiki A wiki. sioctypes:Wiki sioc:Community, doc:Work, edns:information-object
wiki:Page A page on a wiki. sioctypes:WikiArticle doc:Work, edns:information-object
wiki:Editor A person that has edited a wiki page. As this class is descended from foaf:OnlineAccount, it therefore MAY contain subsidiary properties such as foaf:accountName but MUST NOT be treated as a foaf:Person. sioc:User foaf:OnlineAccount

Properties in this vocabulary

Name Description Domain Range Sub-property of Presence in full profile
wiki:name The name of a wiki. wiki:Wiki rdfs:Literal dc:title REQUIRED
wiki:description A short description of a wiki. wiki:Wiki rdfs:Literal dc:description REQUIRED
wiki:wikiURI The URI for the default homepage of a wiki. wiki:Wiki rdfs:Resource REQUIRED
wiki:baseURI The base URI of a wiki to which page names or other parameters can be appended or substituted into. wiki:Wiki rdfs:Resource REQUIRED
wiki:creator The creator of a wiki. This SHOULD contain a class representing someone/something. One suggestion would be foaf:Person. wiki:Wiki rdfs:Resource foaf:maker RECOMMENDED
wiki:edited_by The property of a wiki page having been edited by someone. wiki:Page wiki:Editor dc:contributor not applicable
wiki:last_edited The time that a wiki page was last edited, in W3C date and time format (http://www.w3.org/TR/NOTE-datetime). wiki:Page rdfs:Literal dcterms:modified not applicable
wiki:host The host (HTTP client) from which a wiki page was edited. wiki:Editor rdfs:Literal not applicable
wiki:version The current version number of a wiki page. wiki:Page rdfs:Literal owl:VersionInfo not applicable
wiki:all_pages_URI The URI of a resource that lists all the pages on a wiki. wiki:Wiki rdfs:Resource OPTIONAL
wiki:recent_changes_URI The URI of a resource that shows the "Recent Changes" listing for a wiki. wiki:Wiki rdfs:Resource RECOMMENDED
wiki:rss_URI The URI of a resource that produces a "Recent Changes" listing for a wiki in RSS format. wiki:Wiki rdfs:Resource OPTIONAL
wiki:icon The URI of an icon image representing a wiki. wiki:Wiki rdfs:Resource OPTIONAL
wiki:interwiki An abbreviated name for the site, suitable for use in a wiki InterMap. wiki:Wiki rdfs:Literal foaf:name RECOMMENDED
wiki:language A language used on the wiki. wiki:Wiki rdfs:Resource RECOMMENDED
wiki:last_diff_URI The URI of a resource that, when a page name is appended to or substituted into it, shows the difference between the current and previous versions of that page. wiki:Wiki rdfs:Resource OPTIONAL
wiki:edit_page_URI The URI of a resource that, when a wiki page name is appended to or substituted into it, will allow the content of that page to be edited. wiki:Wiki rdfs:Resource RECOMMENDED
wiki:page_history_URI The URI of a resource that, when a wiki page name is appended to or substituted into it, will show the revision history for that page. wiki:Wiki rdfs:Resource OPTIONAL
wiki:search_URI The URI of a resource that, when a string is appended to or substituted into it, will search the wiki's content for that string. wiki:Wiki rdfs:Resource OPTIONAL
wiki:search_titles_URI The URI of a resource that, when a string is appended to or substituted into it, will search the titles of the wiki's pages for that string. wiki:Wiki rdfs:Resource OPTIONAL
wiki:engine The software powering a wiki. wiki:Wiki doap:Project RECOMMENDED
wiki:twin_pages_with The property of being connected to another wiki as a sister site via TwinPages. wiki:Wiki wiki:Wiki OPTIONAL
wiki:sister_relationship A description of the relationship between a wiki and one of its sister sites. wiki:Wiki rdfs:Literal dc:description OPTIONAL

6. Acknowledgements

The suggestion of describing a wiki and its sister sites in RDF was made to me by Ward Cunningham. I am grateful to Mattis Manzel, Lion Kimbro and Florian Festi for originating the ideas for several of the properties in this vocabulary during ting17.

Parts of the layout of this document and the licensing information were adapted from the FOAF Vocabulary Specification and the SIOC Core Ontology Specification.


Valid CSS Valid XHTML 1.0 Strict