120 likes | 276 Views
Semantic Web Admission Free Obtaining RDF and OWL Data from Application Source Code. Matthias Quasthoff, Christoph Meinel Hasso Plattner Institute, University of Potsdam. HOW WILL WE IMPLEMENT SEMANTIC SOFTWARE ? WILL IT BE FUN ?.
E N D
Semantic Web Admission FreeObtaining RDF and OWL Data from Application Source Code Matthias Quasthoff, Christoph Meinel Hasso Plattner Institute, University of Potsdam
HOW WILL WE IMPLEMENT SEMANTIC SOFTWARE? WILL IT BE FUN? Semantic Web Admission Free | Matthias Quasthoff | Karlsruhe, Oct. 26, 2008
Benefit from semantic technologies in arbitrary software projects • Software development guidelines • provide some specific functionality (the “service“) • reuse existing data as much as possible/feasible • publish processing results as much as possible/feasible • Example: Web platform to recommend conferences and plan submission, travel, meetings related to conferences • Functionality: Conference Social Network: organize CFP mails, manage connections between users/CFPs • Reuse: Semantic descriptions of conferences (SWRC, ESWC), publications (DC, Bibtex, …), users (FOAF, SWRC) • Publish: Semantic descriptions of conferences, conf. attendance Semantic Web Admission Free | Matthias Quasthoff | Karlsruhe, Oct. 26, 2008
Competing implementation approaches for semantic software • Do everything in RDF, SPARQL & Co. – skills, Web frameworks • Do functionality OO, import/export with RDF API+ skills, Web frameworks– reusability, flexibility • Do everything OO, create OO/SW meta-programming feature+ skills, Web frameworks, reusability, flexibility– extra efforts for meta-programming feature Semantic Web Admission Free | Matthias Quasthoff | Karlsruhe, Oct. 26, 2008
Meta-Programming with Annotations • @Semantics(base="http://xmlns.com/foaf/0.1/", value="Person")interface/class User {@Semantics// guess "name" as relative URI String name; // property URI automatically@Semantics("knows") Collection<User> getFriends(); } • Have written generic translation OO/SW mechanism • Makes use of @Semantics annotations Semantic Web Admission Free | Matthias Quasthoff | Karlsruhe, Oct. 26, 2008
Focus on what to do, not how to do it 1 def user = new Individual(identityUri); 2 new Assertion(user, "foaf:name", "Joe");3for(User friend : getFriends()) 4 new Assertion(user, "foaf:knows", friend); 5-… • Generic mapping between Java classes and ontologies – out … out.write user.rdf() … and in … user = retrieve(identityUri) // immediately access user.name, user.mbox, … • No need to worry about anonymous individuals, properties, … Semantic Web Admission Free | Matthias Quasthoff | Karlsruhe, Oct. 26, 2008
OO/SW Challenges: Trust and Provenance • Trust: Differing information from different sources • keep provenance (e.g. named graphs), make accessible in OO • provenance useful for context-aware trust mechanisms • Fundamental difference in what we expect in OO programs and GUIclass User { String name; // one name per user} and what we find on the SW<ex:john> foaf:name "John Doe"; foaf:name "John D. Doe" Semantic Web Admission Free | Matthias Quasthoff | Karlsruhe, Oct. 26, 2008
OO/SW Challenges: Privacy/Performance • Privacy: Can service retrieve/process/publish data on the Web? • retrieving service needs to assess its compatibility with- licenses ( , GNU FDL, Talis, … ) - privacy policies (e.g. P3P) • when publishing a personal profile, what to publish about friends (name or mbox_sha1sum)? • Performance: Publishing whole connected components expensive • What is relevant about a resource? About neighbor resources? Semantic Web Admission Free | Matthias Quasthoff | Karlsruhe, Oct. 26, 2008
OO/SW Mock-up and vision • try { resource = retrieve(uri); process(resource); } catch(PolicyException e){…} // processing personal info} catch(LicensingException e){…}// violating terms of use • resource = retrieve(uri);myServiceDescription.p3p().strip(resource);if(myServiceDescription.suits(resource.policy()) { process(resource);} Semantic Web Admission Free | Matthias Quasthoff | Karlsruhe, Oct. 26, 2008
Object-orientation/Semantic Web Meta-programming Application logic, business processes, OO functionality(Java, C#, …, PHP, …) Meta-programminginterface to SW APIs(Jena, Redland, …) Semantic Web-relatedstandards + technologies Semantic Web Admission Free | Matthias Quasthoff | Karlsruhe, Oct. 26, 2008
Summary and Future Research • OO familiar to developers, Semantic technology extra • Cumbersome translation OO/Semantic Web • Solution: Map OO classes/fields to semantic concepts • Translation of the objects/individuals without coding Still required: Best practices • What to code OO, what to do semantic? • Coding vs. reasoning, traversing objects vs. SPARQL, … • How to make provenance transparent to developers • Where to handle trust and privacy?
Thank you! • Matthias Quasthoff • Hasso Plattner InstituteUniversity of Potsdam • PF 900460 | 14440 PotsdamGermany • Get the code svn://svn.hpi.uni-potsdam.de/fb10_util/serialize/trunk • Phone +49 331 5509-512Mail Matthias.Quasthoff@hpi.uni-potsdam.deWeb http://www.hpi.uni-potsdam.de/meinel/quasthoff Semantic Web Admission Free | Matthias Quasthoff | Karlsruhe, Oct. 26, 2008