Building a Semantic IntraWeb with Rhizomer and a Wiki Roberto Garcia and Rosa Gil GRIHO (Human Computer Interaction Research Group) Universitat de Lleida, Spain
Mar 27, 2015
Building a Semantic IntraWeb with Rhizomer and a Wiki
Roberto Garcia and Rosa Gil
GRIHO (Human Computer Interaction Research Group)
Universitat de Lleida, Spain
Building a Semantic IntraWeb with Rhizomer and a Wiki — 2/20
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 — 3/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 — 4/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 — 5/20
Architecture
• Wiki Engine: manage HTML documents
• Rhizomer: manage semantic metadata about them
linklink
#anchor
link
link
URL
URL
URL
URL
RHIZOMERWIKI ENGINE
Building a Semantic IntraWeb with Rhizomer and a Wiki — 6/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 — 7/20
Wiki Engine
Building a Semantic IntraWeb with Rhizomer and a Wiki — 8/20
Rhizomer
• Simplicity:– Abstraction layer on metadata stores
(Sesame, Jena,…).– Common SOAP interface +
RDF/ACL conversations– Implementation
• Java Servlets• JSP • JavaScript Metadata
Store
Rhizomer
SOAP
AgentCommun.Language
Building a Semantic IntraWeb with Rhizomer and a Wiki — 9/20
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
<HTML/>
<HTML/> SemFORMS
JavaScript
Building a Semantic IntraWeb with Rhizomer and a Wiki — 10/20
Rhizomer Architecture
search.html+JavaScript
Search FormSubmit
RDFSOAPSender
RDF/ACL query-ref / inform
RDF/ACL inform
results.jsp +XSLT
ResultsReturn
RDF Web Portal
Broker & Storage
SOAP(RDF/ACL)
Rhizomer
DB
MetadataStorePeer
Building a Semantic IntraWeb with Rhizomer and a Wiki — 11/20
Guided Tour: user input
= Property = Value NOTE: default namespace RDF/ACL
Semantics-enabled HTML Forms.
<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> Search Form
SubmitRDFSOAP
Sender
Rhizomer
SOAP(RDF/ACL)
visible
hidden
search.html+JavaScript
Building a Semantic IntraWeb with Rhizomer and a Wiki — 12/20Rhizomer
Guided Tour: message content
On submit JavaScriptperformative=query-ref search.content=buildSeRQL(search):
= Property = Value NOTE: built from visible form elements
performative=inform search.content=RDF metadata to insert or delete.
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
RDFSOAPSender
SOAP(RDF/ACL)
Search FormSubmit
search.html+JavaScript
Building a Semantic IntraWeb with Rhizomer and a Wiki — 13/20Rhizomer
Guided Tour: message structure
RDFSOAPSender servlet: FORM submission SOAP(RDF/ACL):
= Property = Value NOTE: built from hidden form elements
or “acl:inform” / “acl:inform-not” for insert/delete
…then send it to “acl:receiver” URL.
search.html+ JavaScript
Search FormSubmit
RDFSOAPSender
SOAP(RDF/ACL)
<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>
Building a Semantic IntraWeb with Rhizomer and a Wiki — 14/20
RDF/ACL inform
DB
MetadataStorePeer
DB
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,…
RDF/ACL query-ref / inform
Rhizomer
SOAP(RDF/ACL)
Building a Semantic IntraWeb with Rhizomer and a Wiki — 15/20
Rhizomer
RDF/ACL inform
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…
DB
MetadataStorePeer
DB
SOAP(RDF/ACL)
Building a Semantic IntraWeb with Rhizomer and a Wiki — 16/20
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 2
Fragment 1
Fragment 3
Fragment 4
Identified Resource
Anonymous Resource
Literal
Building a Semantic IntraWeb with Rhizomer and a Wiki — 17/20 RDF/ACL query-ref / inform
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)
Rhizomer
RDF/ACL inform
DB
MetadataStorePeer
DB
Building a Semantic IntraWeb with Rhizomer and a Wiki — 18/20Rhizomer
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.
results.jsp +XSLT
ResultsReturn
RDFSOAPSender
SOAP(RDF/ACL)
Building a Semantic IntraWeb with Rhizomer and a Wiki — 19/20
Guided Tour: visualisation
<swrc:SoftwareProjectrdf: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 — 20/20
Conclusions
• Usable framework (preliminary user tests)
• Simple and flexible– Example: Semantic Media Portal
Building a Semantic IntraWeb with Rhizomer and a Wiki — 21/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