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.
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
- 2. Terminology and notation
- 3. Example
- 4. Changes since last version
- 5. Listing of classes and properties
- 6. Acknowledgements
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:
- http://purl.org/wikirdf/profile# - Wiki Profile Vocabulary Namespace
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.
- The schema is now authored in N3 rather than RDF/XML and transformed into the latter with Cwm, and both versions are available.
- New permanent URL for schema; this will never change.
- New classes: wiki:Page and wiki:Editor.
- New properties, based on the ModWiki vocabulary: wiki:edited_by, wiki:last_edited, wiki:host and wiki:version.
- Major change: properties that were named in camelCase style have changed to underscore_style. No equally severe changes are expected; this version of the vocabulary can be treated as the first stable version. Further changes will be mooted and discussed on the wiki first.
- Renamed the wiki:shortName property to wiki:interwiki.
- Subclassed several classes and properties to SIOC terms where appropriate.
- Added properties from Ian Davis's VANN (vocabulary for annotating vocabulary descriptions) into the schema.
- Expanded this document considerably with introduction, terminology note, N3 version of example document and requirement status column for property listing.
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.

