CSIRO ICT Centre Conference Armin Haller & Florian Rosenberg A Semantic Data Model for Web Applications CSIRO ICT Centre Conference
Adds machine readable data to Web resources Semantic Web Adds machine readable data to Web resources
Semantic Web “First step is putting data on the Web in a form that machines can naturally understand, or converting it to that form. This creates what I call a Semantic Web - a web of data that can be processed directly or indirectly by machines.” – Tim Berners-Lee
A page about a book Web Resource <html> <head> <title>Tractatus Logico-Philosophicus</title> </head> <body> <p> <img src="tractatus.png" /><br/> Written by: Ludwig Wittgenstein <br /> With an Introduction by: Bertrand Russell </p> New York <br /> Harcourt, Brace & Company, Inc. <br /> London: Kegan Paul, Trench, Trubner & Co., Ltd. <br /> <p>1922</p> </body> </html>
A Book – Metadata elements Web Resource A Book – Metadata elements Title Author Contributor Publisher Date
Link to other Web resources Four principles to add machine readable data Identify resources Reuse ontologies Express meaning Link to other Web resources
Semantic Web Identify resources Uniquely assign a Uniform Resource Identifier (URI) to every Web resource
Identify resources Web Resource Title Author Contributor Publisher http://example.org/book/Tractatus_Logico-Philosophicus Title Author Contributor Publisher Date
Semantic Web Reuse Ontologies Specification of a conceptualization, ie. a description of the concepts and relationships in a domain Link to information in ontologies by their URI to reuse the same definition of common concepts, such as the "book" or the "title“
Reuse ontologies – e.g. Dublin Core Web Resource Reuse ontologies – e.g. Dublin Core Title http://purl.org/dc/elements/1.1/title Author http://purl.org/dc/elements/1.1/creator Contributor http://purl.org/dc/elements/1.1/contributor http://purl.org/dc/elements/1.1/publisher Publisher Date http://purl.org/dc/elements/1.1/date
Semantic Web Express meaning Add structured information and set of rules to Web resources Use knowledge representation language – typically RDF statements about Web resources in the form of Subject-Predicate-Object (S P O) triples
Express meaning Web Resource http://example.org/book/Tractatus_Logico-Philosophicus has a which is dc:title
Express meaning Web Resource http://example.org/book/Tractatus_Logico-Philosophicus has a dc:creator whose name is
Express meaning Web Resource http://example.org/book/Tractatus_Logico-Philosophicus has a dc:contributor whose name is
Express meaning Web Resource http://example.org/book/Tractatus_Logico-Philosophicus has a which is dc:publisher
Express meaning Web Resource http://example.org/book/Tractatus_Logico-Philosophicus has a which is dc:date
Express meaning Resulting triples @prefix dc: <http://purl.org/dc/terms/> . @prefix : <http://example.org/book#> . :Tractatus_Logico-Philosophicus dc:title "Tractatus Logico-Philospohicus" . :Tractatus_Logico-Philosophicus dc:creator "Ludwig Wittgenstein" . :Tractatus_Logico-Philosophicus dc:contributor "Bertrand Russell" . :Tractatus_Logico-Philosophicus dc:publisher "Harcourt, Brace & Company, Inc." . :Tractatus_Logico-Philosophicus dc:date "1922" . Resulting triples Express meaning
Express meaning Resulting triples in RDF/XML <?xml version="1.0" encoding="UTF-8"?> <rdf:RDF xmlns:dc="http://purl.org/dc/terms/" xmlns="http://example.org/book#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="http://example.org/book#Tractatus_Logico Philosophicus"> <dc:title>Tractatus Logicao-Philospohicus</dc:title> <dc:creator>Ludwig Wittgenstein</dc:creator> <dc:contributor>Bertrand Russell</dc:contributor> <dc:publisher>Harcourt, Brace & Company, Inc.</dc:publisher> <dc:date>1922</dc:date> </rdf:Description> </rdf:RDF> Resulting triples in RDF/XML Express meaning
Link to other Web resources Semantic Web Link to other Web resources Progressively link to existing Web resources that someone else has defined already
Link to other Web resources http://example.org/book/Tractatus_Logico-Philosophicus has a dc:creator whose name is
Link to other Web resources http://example.org/book/Tractatus_Logico-Philosophicus has a http://dbpedia.org/page/Ludwig_Wittgenstein whose name is dc:creator
Where is the semantic Web?
RDF annotations often express metadata (as in our book example) RDF ® for agents RDF annotations often express metadata (as in our book example) usually stored in a separate .rdf file useful for agents, limited use for humans
RDFa = RDF in attributes RDFa ® for agents and humans RDFa = RDF in attributes a way to mark up data in a web page RDFa encodes RDF triples in HTML useful for agents and (relatively) easy to use for humans
HTML <html> <head> <title>Tractatus Logico-Philosophicus</title> </head> <body> <p> <img src="tractatus.png" /><br /> Written by: Ludwig Wittgenstein <br /> With an Introduction by: Bertrand Russell <br /><br /> New York <br /> Harcourt, Brace & Company, Inc. <br /> London: Kegan Paul, Trench, Trubner & Co., Ltd. <br /> <p>1922</p> </body> </html>
RDFa example <html prefix="dc: http://purl.org/dc/terms/“ base="http://example.org/book/Tractatus_Logico-Philosophicus"> <head> <title about="" property="dc:title">Tractatus Logico Philosophicus</title> </head> <body> <p about=""> <img src="tractatus.png" /><br /> Written by: <span property="dc:creator">Ludwig Wittgenstein</span> <br /> With an Introduction by: <span property="dc:contributor"> Bertrand Russell</span><br /><br /> New York <br /> <span property="dc:publisher">Harcourt, Brace & Company, Inc. </span><br /> London: Kegan Paul, Trench, Trubner & Co., Ltd. <br /> <p about=""><span property="dc:date">1922</span></p> </body> </html>
RDFa mostly used for metadata, e.g. the book metadata as before RDFa – metadata vs. data RDFa mostly used for metadata, e.g. the book metadata as before But: the principle of the Semantic Web and Linked Data is to add meaning to metadata and data Data could be metadata, but it could be data, e.g. a book purchase at Amazon
e.g. Book purchase on Amazon Forms, metadata vs. data e.g. Book purchase on Amazon First Name: Jane Last Name: Doe Email: jane.doe@example.com Password: ******** Gender: Male Female Birthday: 03 04 1976
e.g. Book purchase on Amazon Forms, metadata vs. data e.g. Book purchase on Amazon First Name: Jane Last Name: Doe Email: jane.doe@example.com Password: ******** Title: Gender: Tractatus Logico Phi Male Female Author: Birthday: Ludwig Wittgenstein 03 04 1976 Price: 25 GBP Amount: 1 Delivery Address: 10 Downing Street London SW1A 2AA United Kingdom
e.g. Book purchase on Amazon Forms, metadata vs. data e.g. Book purchase on Amazon First Name: Jane Last Name: Doe Email: jane.doe@example.com Password: ******** Title: Gender: Tractatus Logico Phi Male Female Author: Birthday: Ludwig Wittgenstein 03 04 1976 Price: 25 GBP Amount: 1 Price: Delivery Address: 25 GBP 10 Downing Street Type: Mastercard London Cardholder: SW1A 2AA 04 1 1976 Jane Doe CC Number: United Kingdom 5999 9999 9999 9999 Expiry Date: 04 13 CVV: 999
e.g. Book purchase on Amazon Forms, metadata vs. data e.g. Book purchase on Amazon ® metadata ® metadata metadata / data data ® data Title: Tractatus Logico Phi Female Author: Ludwig Wittgenstein 04 1976 Price: 25 GBP Amount: 1 Delivery Address: 10 Downing Street London SW1A 2AA United Kingdom
Form input elements can be annotated with RDFa Issue – Adding RDFa for data to forms Form input elements can be annotated with RDFa But: RDFa annotations for input data is not possible ® no binding
e.g. “Jane” can not be defined as foaf:firstName Issue – Adding RDFa for data to forms e.g. “Jane” can not be defined as foaf:firstName First Name: Jane Last Name: Doe Email: jane.doe@example.com Password: ******** Gender: Male Female Birthday: 03 04 1976 <span about="" property="foaf:firstName" content=""> <input type="text" name=“First Name" value="" /> </span>span> No binding!
Making input data available on the Semantic Web!
RDF-based model for forms (RaUL) http://purl.org/NET/raul# Model and System for semantic Web applications RDF-based model for forms (RaUL) http://purl.org/NET/raul# RESTful Web service (ActiveRaUL) http://raul.deri.ie/raul JavaScript RDFa API
Defines meta model for form elements RaUL form model Defines meta model for form elements
RaUL form model Triples defining the structure of a form Triples defining the data foaf:firstName foaf:surname foaf:mbox foaf:sha1 foaf:gender time:day, time:month, time:year First Name: Jane Last Name: Doe Email: jane.doe@example.com Password: ******** Gender: Male Female Birthday: 03 04 1976
ActiveRaUL Web service Model-View-Controller Model: RaUL View: Rendering service to generate RaUL-based Web forms in XHTML+RDFa Controller: Web service that maps HTTP terms to CRUD operations on RaUL Web forms
Manages data binding of form input to data model JavaScript RDFa API Parses RDFa Manages data binding of form input to data model
Form Modeling: form model in RDF based on the RaUL ontology Lifecycle Form Modeling: form model in RDF based on the RaUL ontology Actor: ontology engineer
Form Deployment: form submitted by calling ActiveRaUL Lifecycle Form Deployment: form submitted by calling ActiveRaUL Generic form models in a public namespace ® standard form models Actor: ontology engineer
Form Usage: access and manipulate a form model by calling ActiveRaUL Lifecycle Form Usage: access and manipulate a form model by calling ActiveRaUL submit instance data for a form ® bound to a data model Actor: Web user or agent
Lifecycle Data Reuse: Add link to existing, local data or data in the Linked data cloud RDFa API retrieves data from that URI and prefills form controls Actor: Form Provider
Conclusion RDFa annotated Web forms which follow the principles of Linked Open Data. Advantages: Non-ambiguous model: typed through an ontological model. RDF data submission: submitted data encoded in RDF. Explicit form structure: form elements are explicitly modelled as RDF statements. External schema augmentation: reuse existing schemas for form data Reuse of Linked Open Data: retrieve data from the Linked Open Data cloud