Transcript Document

Building a Semantic IntraWeb
with Rhizomer and a Wiki
Roberto Garcia and Rosa Gil
GRIHO (Human Computer Interaction Research Group)
Universitat de Lleida, Spain
Table of Contents
•
•
•
•
•
•
•
•
•
Introduction
Proposal
Architecture
Wiki Engine
Rhizomer
Rhizomer Architecture
Guided tour
Conclusions
Future Work
Building a Semantic IntraWeb with Rhizomer and a Wiki — 2/20
Introduction
• IntraWebs: group information sharing needs
• Web technologies: interaction issues, easy
consumption / difficult production
• Wiki technologies: distributed production, difficult to
keep information organised
• Semantic Web technologies: ontology for shared
conceptualisations
Building a Semantic IntraWeb with Rhizomer and a Wiki — 3/20
Proposal
• Wiki + Semantic Web Mix
– Facilitate production
– Keep information organisation
• Focus on simplicity and ease of use:
–
–
–
–
–
Simple wiki engine
WYSIWYG wiki user interface
Simple semantic metadata engine
Non RDF user interaction
Common HTML interface, just the web browser
Building a Semantic IntraWeb with Rhizomer and a Wiki — 4/20
Architecture
• Wiki Engine: manage HTML documents
• Rhizomer: manage semantic metadata about them
WIKI ENGINE
RHIZOMER
URL
link
link
URL
URL
link
#anchor
URL
link
Building a Semantic IntraWeb with Rhizomer and a Wiki — 5/20
Wiki Engine
• Simplicity:
–
–
–
–
Based on Java Servlets / JSPs / JavaScript
No database required
Store documents as HTML files
Security: public / private areas
• Ease of use:
– FCKEditor, http://www.fckeditor.net
– WYSIWYG interface, text processor like
– Personalise user interface
• E.g.: add custom special chars
Building a Semantic IntraWeb with Rhizomer and a Wiki — 6/20
Wiki Engine
Building a Semantic IntraWeb with Rhizomer and a Wiki — 7/20
Rhizomer
• Simplicity:
– Abstraction layer on metadata stores
(Sesame, Jena,…).
– Common SOAP interface +
RDF/ACL conversations
– Implementation
• Java Servlets
• JSP
• JavaScript
Building a Semantic IntraWeb with Rhizomer and a Wiki — 8/20
SOAP
Agent
Commun.
Language
Rhizomer
Metadata
Store
Rhizomer
• Ease of use:
– Facilitate discovering unknown metadata
• Query results like SPARQL DESCRIBE
– Web browser interface for semantic metadata
• Graph browsing mechanism
• Enable “self-explanatory” metadata
RDF
JavaScript
<HTML/>
<HTML/> SemFORMS
Building a Semantic IntraWeb with Rhizomer and a Wiki — 9/20
Rhizomer Architecture
RDF Web Portal
search.html
+JavaScript
Search Form
Submit
RDFSOAP
Sender
SOAP(RDF/ACL)
RDF/ACL
inform
Rhizomer
MetadataStore
Peer
DB
RDF/ACL
query-ref / inform
Broker & Storage
Building a Semantic IntraWeb with Rhizomer and a Wiki — 10/20
Results
Return
results.jsp
+
XSLT
Guided Tour:
user input
= Property
visible
hidden
= Value
NOTE: default namespace RDF/ACL
<form name="search" method="post" action=“RDFSOAPSender"
onSubmit="search.content.value = buildRQL(search)">
<input name="http://purl.org/dc/elements/1.1/title" type="text"/>
<select name="http://www.w3.org/1999/02/22-rdf-syntax-ns#type">
<option value="http://rhizomik.net/.../MP7Genres.rdfs#Music">...
</select> ...
<input type="hidden" name="performative" value="query-ref">
<input type="hidden" name="sender" value="search.html">
<input type="hidden" name="receiver" value=“rhizomer">
<input type="hidden" name="language" value=“SeRQL">
<input type="hidden" name="content" value="">
<input type="hidden" name="reply-to" value="results.jsp">
</form>
Semantics-enabled HTML Forms.
search.html
+JavaScript
Search Form
Submit
RDFSOAP
Sender
SOAP(RDF/ACL)
Building a Semantic IntraWeb with Rhizomer and a Wiki — 11/20
Rhizomer
Guided Tour:
message content
On submit JavaScript
performative=query-ref  search.content=buildSeRQL(search):
= Property
= Value
NOTE: built from visible form elements
select graph(S) from
{S}http://purl.org/dc/elements/1.1/title{Y0},
{S}http://www.w3.org/.../22-rdf-syntax-ns#type{Y1}
where
Y0 like “The Best of*” and
Y1=http://rhizomik.net/.../MP7Genres.rdfs#Music
performative=inform 
search.content=RDF metadata to insert or delete.
search.html
+JavaScript
Search Form
Submit
RDFSOAP
Sender
SOAP(RDF/ACL)
Building a Semantic IntraWeb with Rhizomer and a Wiki — 12/20
Rhizomer
Guided Tour:
message structure
RDFSOAPSender servlet: FORM submission  SOAP(RDF/ACL):
= Property
= Value
NOTE: built from hidden form elements
<SOAP-ENV:Envelope xmlns:… > ...
<SOAP-ENV:Body>
<rdf:RDF xmlns:acl=“http://daml.umbc.edu/acldaml” ...>
<acl:query-ref>
<acl:sender>http://rhizomik.net/rhizomer/search.html</acl:sender>
<acl:receiver>http://rhizomik.net/rhizomer/broker</acl:receiver>
<acl:language>RQL</acl:language>
<acl:content parseType=“Literal”>select graph(S)...</acl:content>
<acl:reply-to>http://rhizomik.net/rhizomer/results.jsp</acl:reply-to>
</acl:query-ref>
</rdf:RDF>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
or “acl:inform” / “acl:inform-not” for insert/delete
…then send it to “acl:receiver” URL.
search.html
+ JavaScript
Search Form
Submit
RDFSOAP
Sender
SOAP(RDF/ACL)
Building a Semantic IntraWeb with Rhizomer and a Wiki — 13/20
Rhizomer
Guided Tour:
broker routing
• Web Service, SOAP interface.
• Common access point.
• Semantic routing input message to appropriate
StorePeers, considers:
– acl:language, acl:sender, acl:receiver,…
SOAP(RDF/ACL)
RDF/ACL
inform
Rhizomer
MetadataStore
Peer
Building a Semantic IntraWeb with Rhizomer and a Wiki — 14/20
DB
DB
RDF/ACL
query-ref / inform
Guided Tour:
store peer
• JXTA(RDF/ACL) messages.
• Implementations for RDF stores (and QL):
– Sesame StorePeer (SeRQL),…
• Input processing:
– performative  query/insert/delete.
– acl:content  query or metadata.
• Query output also RDF/ACL.
– Problem: not usual RDF stores
output RDF…
SOAP(RDF/ACL)
RDF/ACL
inform
Rhizomer
Metadata
StorePeer
Building a Semantic IntraWeb with Rhizomer and a Wiki — 15/20
DB
DB
RDF/ACL
query-ref / inform
Guided Tour:
build response graph
• For all Resources R selected by query…
• Algorithm graph(R):
Build graph of depth 1 from selected resources R.
Blank node closure
Fragment 1
Fragment 3
Fragment 2
Fragment 4
Identified Resource
Anonymous Resource
Literal
Building a Semantic IntraWeb with Rhizomer and a Wiki — 16/20
Guided Tour:
join responses
• Rhizomer:
– Receives StorePeers RDF responses.
– Joins responses into unique RDF model.
– Return RDF/ACL message to RDFSOAPSender.
• acl:content = RDF Model serialisation
SOAP(RDF/ACL)
RDF/ACL
inform
Rhizomer
MetadataStore
Peer
Building a Semantic IntraWeb with Rhizomer and a Wiki — 17/20
DB
DB
RDF/ACL
query-ref / inform
Guided Tour:
response presentation
• RDFSOAPSender:
– Redirect to acl:reply-to URL for presentation.
• Result page:
– Visualisation:
• XSLT: RDF to HTML or RDF to HTML FORM
• Inference + XSLT: RDF to SVG
• Other alternatives: RDF Path,…
– Use RDF labels for usability, multilingual support.
RDFSOAP
Sender
Results
Return
results.jsp
+
XSLT
SOAP(RDF/ACL)
Building a Semantic IntraWeb with Rhizomer and a Wiki — 18/20
Rhizomer
Guided Tour:
visualisation
<swrc:SoftwareProject
rdf:about="http://rhizomik.net/rhizomer">
<rdfs:label>Rhizomer</rdfs:label>
<swrc:homepage rdf:resource=
"http://rhizomik.net/content/rhizomer"/>
<rdf:type rdf:resource=“&swrc;ResearchProject"/>
</swrc:SoftwareProject>
view, RDF2HTML
edit, RDF2HTMLForm
view,
RDF2HTML
search
Building a Semantic IntraWeb with Rhizomer and a Wiki — 19/20
Conclusions
• Usable framework (preliminary user tests)
• Simple and flexible
– Example: Semantic Media Portal
Building a Semantic IntraWeb with Rhizomer and a Wiki — 20/20
Future Work
• AJAX to improve user interaction
– Support back button
– Assisted metadata creation…
• In deep user testing at the
• Metadata trust based on RDF signatures
• Fine grained access control
Building a Semantic IntraWeb with Rhizomer and a Wiki — 21/20
Thank you for your attention
More at: http://rhizomik.net
Contact
[email protected]
[email protected]