Wiki systems have developed over the past years as lightweight, community-editable, web-based hypertext systems. With the emergence of semantic wikis such as Semantic MediaWiki, these collections of interlinked documents have also gained a dual role as ad-hoc RDF graphs. However, their roots lie in the limited hypertext capabilities of the World Wide Web: embedded links, without support for features like composite objects or transclusion. Collaborative editing on wikis has been hampered by redundancy; much of the effort spent on Wikipedia is used keeping content synchronised and organised. We have developed a model for a system, which we have prototyped and are evaluating, which reintroduces ideas from the field of hypertext to help alleviate this burden.
Presented at BlogTalk 2009.
1. Introduction
Model
Conclusions
A Model for Open Semantic Hyperwikis
Philip Boulain
Department of Electronics and Computer Science
University of Southampton
15th September 2009
Philip Boulain A Model for Open Semantic Hyperwikis
2. Introduction
Model
Conclusions
Outline
1 Introduction
Context
2 Model
Nodes
Functional
3 Conclusions
Composition
Summary
Philip Boulain A Model for Open Semantic Hyperwikis
3. Introduction
Model Context
Conclusions
Outline
1 Introduction
Context
2 Model
Nodes
Functional
3 Conclusions
Composition
Summary
Philip Boulain A Model for Open Semantic Hyperwikis
4. Introduction
Model Context
Conclusions
Broader project
Looking at the potentially beneficial relationships between
Open Hypermedia
Interconnected documents
Semantic Web
Interconnected databases
Wiki Wiki Web
Communal editing systems
Philip Boulain A Model for Open Semantic Hyperwikis
5. Introduction
Model Context
Conclusions
Hypermedia
Long-standing field of research.
How can documents expand beyond limitations of paper?
Cross-referencing (hyperlinks).
Sharing and re-use (composition and transclusion).
“Essential feature” is “the process of tying two items
together” (linking).
V. Bush.
As We May Think.
The Atlantic Monthly, 176:101–108, Jul 1945.
Philip Boulain A Model for Open Semantic Hyperwikis
6. Introduction
Model Context
Conclusions
Semantic Web
World Wide Web is a distributed set of interlinked
documents.
The Semantic Web is distributed set of interlinked data.
Discover and combine data from disparate sources as one
may discover and browse web pages.
Core technology is the Resource Description Framework
(RDF).
RDF describes things using triples: subject has predicate
value object.
Subjects, predicates, and non-literal objects named using
URIs.
Philip Boulain A Model for Open Semantic Hyperwikis
7. Introduction
Model Context
Conclusions
Wiki Wiki Web
“A collection of Web pages which can be edited by anyone,
at any time, from anywhere.”1
Users can create pages with much of the structure and
styling of HTML web pages.
But usually in a bespoke ad-hoc markup.
Linking is web-style, like <a href=""></a>.
But some wikis offer the ability to show backlinks.
They can only do this because they are not distributed.
The wiki system is aware of the entire document space.
1
http://c2.com/cgi/wiki?WikiGettingStartedFaq
Philip Boulain A Model for Open Semantic Hyperwikis
8. Introduction
Nodes
Model
Functional
Conclusions
Outline
1 Introduction
Context
2 Model
Nodes
Functional
3 Conclusions
Composition
Summary
Philip Boulain A Model for Open Semantic Hyperwikis
9. Introduction
Nodes
Model
Functional
Conclusions
Nodes
Page, article, component. . . ‘node’ is domain-agnostic.
The fundamental building block of a wiki.
No sub-node addressing in RDF!
Goal
Things we want to address need URIs, not (URI,
within-specifier) pairings.
Philip Boulain A Model for Open Semantic Hyperwikis
10. Introduction
Nodes
Model
Functional
Conclusions
Anatomy
Node title
DOM tree text node
transclude
o_ _ _ _ _
→ native transclusion link
/
DOM element
element contents
attribute "value"
Philip Boulain A Model for Open Semantic Hyperwikis
11. Introduction
Nodes
Model
Functional
Conclusions
Links
Example
I would call [link type=Likes to=Perl Perl] an
[em elegant] language.
Links are nodes.
Links also get embedded in nodes.
Familiar to edit.
Edit-time (native) transclusion of the anchor.
Attributes are our primitive base case.
Philip Boulain A Model for Open Semantic Hyperwikis
12. Introduction
Nodes
Model
Functional
Conclusions
Phil Likes Perl
Phil
I would call
→ Phil.anchor.1
Phil.anchor.1
an _ _ _ _/
Perl
em
elegant
language.
Perl Phil.link.1
(interesting facts) o type Likes
source Phil.anchor.1
syntax elegant target Perl
Philip Boulain A Model for Open Semantic Hyperwikis
13. Introduction
Nodes
Model
Functional
Conclusions
RDF Mapping
Goal
The graph of typed links should be isomorphic to a useful RDF
graph.
Typed links between pages are relations between them.
(Phil, Likes, Perl)
Attributes of a page are statements about it.
(Perl, syntax, elegant)
Philip Boulain A Model for Open Semantic Hyperwikis
14. Introduction
Nodes
Model
Functional
Conclusions
Identity
Every node gets a URI, namespaced within the wiki.
‘The node Perl’ and ‘Perl the programming language’ are
not the same!
The node is http://wiki.example.org/node/Perl.
But our statements are about
http://wiki.example.org/resource/Perl.
Might be owl:sameAs some external Perl.
Philip Boulain A Model for Open Semantic Hyperwikis
15. Introduction
Nodes
Model
Functional
Conclusions
Meta-identity
So how do we refer to the node itself within the wiki?
Perl.meta.
It is http://wiki.example.org/node/Perl/meta
It makes statements about
http://wiki.example.org/node/Perl
There is effectively a naming offset.
Philip Boulain A Model for Open Semantic Hyperwikis
16. Introduction
Nodes
Model
Functional
Conclusions
Representations
node URIs get representation predicates.
(wiki:node/Perl, representation,
http://wiki.example.org/content/Perl.html)
‘303 convention’ defines retrieval of . . . node/Perl.
RDF requests go to data about the URI: one meta-level
higher.
Otherwise, normal content-negotiation to content.
Can always be explicit if you want RDF-formatted content.
Non-RDF resource requests are Not Found: we can’t
represent Perl itself!
Philip Boulain A Model for Open Semantic Hyperwikis
17. Introduction
Nodes
Model
Functional
Conclusions
Versioning
Node contents and attributes are versioned.
Links are nodes, so they’re versioned too.
Link embedding/separation and edit-time transclusion
mean one edit may change multiple nodes.
Distinct identities for things like ‘version 3 of text about
Perl’, not ‘version 3 of Perl’.
Philip Boulain A Model for Open Semantic Hyperwikis
18. Introduction
Nodes
Model
Functional
Conclusions
Transclusion
Transclusion link subtype.
Replaces display of source anchor content with target
content.
No part-of relation implied: content operation.
Link embedding/separation leads to edit-time transclusion.
Philip Boulain A Model for Open Semantic Hyperwikis
19. Introduction
Nodes
Model
Functional
Conclusions
Query endpoints
source and target have a range of node identifiers.
Not sufficient to represent arbitrary endpoint functions.
sourceQuery and targetQuery have a range of embedded
queries.
Philip Boulain A Model for Open Semantic Hyperwikis
20. Introduction
Nodes
Model
Functional
Conclusions
Generic links
CONTAINS query, which matches on document content.
Implies an anchor at the point of the match when a source.
Matches only the first instance, unless transcluding.
Philip Boulain A Model for Open Semantic Hyperwikis
21. Introduction
Nodes
Model
Functional
Conclusions
Parametric nodes
Generalisation of ‘templates’, which are macro
pre-processing.
Instantiate a page with arbitrary key/value pairs.
Range of our links is ‘identifiers’, so parameters are part of
the identity of the instantiation.
There is a whole multidimensional space of possible
instances, and each one is a first-class object.
Philip Boulain A Model for Open Semantic Hyperwikis
22. Introduction
Nodes
Model
Functional
Conclusions
Parametric node
Template.GoodNode
This node is featured
in topic
param
topic
in particular because
of its
param
virtue
Philip Boulain A Model for Open Semantic Hyperwikis
23. Introduction
Nodes
Model
Functional
Conclusions
Instance space
virtue
_ /
Template.GoodNode Template.GoodNode
{topic→science, {topic→science,
virtue→citations} virtue→grammar}
topic
Template.GoodNode Template.GoodNode
{topic→art, {topic→art,
virtue→citations} virtue→grammar}
Philip Boulain A Model for Open Semantic Hyperwikis
24. Introduction
Nodes
Model
Functional
Conclusions
Adaptive hypermedia
Deliberately couple content with identity
alternateNode for “different node about same thing”
Annotate with information to select upon, e.g. detailLevel
Alternation link subtype selects only one target.
Philip Boulain A Model for Open Semantic Hyperwikis
25. Introduction
Composition
Model
Summary
Conclusions
Outline
1 Introduction
Context
2 Model
Nodes
Functional
3 Conclusions
Composition
Summary
Philip Boulain A Model for Open Semantic Hyperwikis
26. Introduction
Composition
Model
Summary
Conclusions
Desired composition
Haskell
A functional language with lazy
evaluation
Philip Boulain A Model for Open Semantic Hyperwikis
27. Introduction
Composition
Model
Summary
Conclusions
Transclusion of parametric node
FuncTempl {eval→lazy}
A functional lan-
Haskell guage with
_ _ _/
(embedded link) param
eval
evaluation
Philip Boulain A Model for Open Semantic Hyperwikis
28. Introduction
Composition
Model
Summary
Conclusions
Composite document (multiple transclusions)
Haskell
FuncTempl.Pre
(embedded link 1) _ _ _/ A functional lan-
lazy
guage with
(embedded link 2)
NN
NN
NN
FuncTempl.Post
evaluation
Philip Boulain A Model for Open Semantic Hyperwikis
29. Introduction
Composition
Model
Summary
Conclusions
Composite/‘fat’ link (multiple endpoints)
Haskell
FuncTempl.Haskell
(embedded an- _ _ _ _ _ _ _ _ _
(multiple targets)
chor) h h
h h r
h h r
h h r
h h r
th h r
xr
A functional language with lazy evaluation
Philip Boulain A Model for Open Semantic Hyperwikis
30. Introduction
Composition
Model
Summary
Conclusions
Open Semantic Hyperwiki Model
Defines a wiki with open hypermedia features.
First-class links, with edit-time embedding.
Transclusion, including while editing.
Generic and functional links.
Parametric nodes and links.
Full versioning, including links.
Defines how this operates as a semantic wiki.
From hyperlinks to RDF relations.
Prototyped in Weerkat: a highly flexible and modular wiki
system.
Philip Boulain A Model for Open Semantic Hyperwikis
31. Thanks for listening
Questions?
Philip Boulain A Model for Open Semantic Hyperwikis
32. Thanks for listening
Extra slides!
Philip Boulain A Model for Open Semantic Hyperwikis
33. Version identity
Semantic consistency. Content version is not resource version.
All revisions of the Perl node are still about the
same Perl.
Navigational identity. Each version has distinct identity for
linking. Version 3 of the Perl node is Perl3 , not
Perl.meta3 .
Semantic identity. Each version has a distinct URI. (Perl3 .meta,
writtenBy, Phil) means “Phil wrote version 3 of the
content for the Perl node”.
Philip Boulain A Model for Open Semantic Hyperwikis
34. Version identity, cont.
Node title Content URI Represents
Perl Text about Perl Perl Perl itself
Perl3 v3 text re: Perl Perl Perl itself
Perl.meta Text re: t. re: Perl Perl/meta Text re: Perl
Perl.meta4 v4 t. re: t. re: Perl Perl/meta Text re: Perl
Perl3 .meta T. re: v3 t. re: Perl Perl;3/meta v3 t. re: Perl
Perl3 .meta4 v4 t. re: v3 t. re: Perl Perl;3/meta v3 t. re: Perl
Allow version on all non-namespace parts.
Drop the last version to make a URI.
Philip Boulain A Model for Open Semantic Hyperwikis
35. Instance identity
Are two different parameterisations separate SemWeb
resources?
It’s exactly the same as versioning.
Parameter substitution is a content operation, so the tail
parameters don’t change semantic identity.
But Perl {bar→baz}.meta represents the Perl {bar→baz}
instance.
Philip Boulain A Model for Open Semantic Hyperwikis
36. Parametric links
Template.Discussions
type discussion
source param(node).meta
target Discuss.param(node)
If parameters can fill in attribute values, we get parametric
and functional links.
What about a link where both source and target are free
variables?
Philip Boulain A Model for Open Semantic Hyperwikis
37. Eager vs. lazy
When does a parametric instance exist?
Parametric links can potentially affect the hyperdocument
outside of ther immediate content and relations.
Eager: all instances considered to exist.
Lazy: instances exist only if referred to.
Which is most consistent and useful?
Philip Boulain A Model for Open Semantic Hyperwikis
38. Eager vs. lazy, cont.
Lazy: works just like templates. You have to ‘link to’ a
parametric link with some parameters to make it work.
Eager: works like free-variable rules. More consistent, and
more powerful.
Contrary to Semantic MediaWiki, which inherits
templates-as-macro-processing!
Template-macroing links is bad ontology modelling: use
classes.
A ‘Country’ template might have a ‘capital’ parameter.
But templates don’t have capitals!
Philip Boulain A Model for Open Semantic Hyperwikis