220 likes | 394 Views
Peer-to-Peer Networking for Distributed Learning Repositories:. The Edutella Network Diplomarbeit von Boris Wolf. Edutella: Motivation. P2P systems don‘t work without metadata.
E N D
Peer-to-Peer Networking for Distributed Learning Repositories: The Edutella Network Diplomarbeit von Boris Wolf
Edutella: Motivation • P2P systems don‘t work without metadata. • Shortcomings of today‘s successful P2P systems (Napster, LimeWire, Gnutella etc.): Poor expressiveness of metadata, focused on certain application or community. • Edutella: Specification and implementation of an extendable Open Source infrastructure for exchange and processing of any kind of RDF metadata (initial focus on educational resources). • Edutella is Open Source, uses Open Source, builds on Open Standards. • Part of the PADLR Project (Stanford, Stockholm, Uppsala, Hannover, Braunschweig, Karlsruhe).
Edutella: Technology (RDF) • Connects highly heterogeneous peers (heterogeneous in uptime, storage capability, performance, functionality/services offered, number of users etc.). • Essential assumption: Everything in Edutella can be described in RDF therefore • Edutella peer = RDF repository • Edutella network = huge RDF repository integrating all participating peer repositories. • Goal: making distributed nature of RDF repositories completely transparent to Edutella clients.
Edutella: Technology (JXTA) • Open Source project supported by Sun Microsystems • JXTA = set of protocol specifications to cover typical P2P functionality (all protocols based on XML). • Java binding offers a layered approach to standardize P2P application development (core, services, applications). • Framework for prototyping and developing P2P applications. • Introduces well-known UNIX concepts to the P2P world: peer groups, pipes, thin core + libraries / services, JXTA shell.
Edutella: Architecture • Edutella = Collection of JXTA Services. • Each peer will be required to support a number of basic services and may offer an arbitrary number of advanced services. • Edutella Query: Standardized query and retrieval mechanism for RDF metadata stored in distributed RDF/XML repositories. • Further Edutella Services: Edutella Clustering (semantic routing), Edutella Replication (redundant storage), Edutella Mapping (different ontologies), Edutella Annotation (distributed annotation facilities).
Edutella Query • RDF Query Exchange Language RDF-QEL (RDF can be easily analyzed utilizing existing RDF/XML parsers, and transferred as XML data). • Edutella Common Data Model (ECDM) for internal represenation of queries and results (based on Datalog semantics).
Edutella Query: Wrappers • Wrappers translate between RDF based query languages (RDF-QEL-i, RQL, TRIPLE, etc.) and local query languages (SQL, Xpath, etc.).
Edutella Query: Mediators • Distributed query mechanism with Mediators/Hubs based on query indices: Simple Mediators distribute entire queries to registered peers, advanced Mediators split queries into subqueries and reconcile their results.
Edutella Query: Datalog • Datalog: Uses logic programming concepts (Prolog) for databases and query languages. • Literals: Predicate expressions describing any kind of relations between an arbitrary number of constants or variables, e.g. title(X,‘Artificial Intelligence‘) • Database/Knowledge Base: Set of ground facts = set of literals with constant values only, e.g. title(‘http://www.xyz.com/ai.html‘,‘Artificial Intelligence‘)
Edutella Query: Datalog • Query: Conjunction of literals, e.g. ?- title(X,‘Artificial Intelligence‘), type(X,‘Book‘). • Rule: Implication with one head and an arbitrary number of body literals, e.g. aibook(X) :- title(X,‘Artificial Intelligence‘), type(X,‘Book‘).
Edutella Query: Knowledge Base • RDF only knows assertions: RDF repository = Knowledge base of ground (binary) facts. http://purl.org/dc/elements/1.1/title('http://www.xyz.com/ai.html','Artificial Intelligence') http://purl.org/dc/elements/1.1/author('http://www.xyz.com/ai.html','Stuart Russel') http://purl.org/dc/elements/1.1/author('http://www.xyz.com/ai.html','Peter Norvig') http://www.w3.org/1999/02/22-rdf-syntax-ns#type('http://www.xyz.com/ai.html','http://www.lit.edu/types#Book') http://purl.org/dc/elements/1.1/title('http://www.xyz.com/sw.html','Software Engineering') http://purl.org/dc/elements/1.1/author('http://www.xyz.com/sw.html','Helmut Balzert') http://www.w3.org/1999/02/22-rdf-syntax-ns#type('http://www.xyz.com/sw.html','http://www.lit.edu/types#Book') http://purl.org/dc/elements/1.1/title('http://www.xyz.com/pl.html','Programming in Prolog') http://purl.org/dc/elements/1.1/author('http://www.xyz.com/pl.html','William Clocksin') http://purl.org/dc/elements/1.1/author('http://www.xyz.com/pl.html','Christopher Mellish') http://www.w3.org/1999/02/22-rdf-syntax-ns#type('http://www.xyz.com/pl.html','http://www.lit.edu/types#AI-Book') http://purl.org/dc/elements/1.1/title('http://www.xyz.com/jv.html','Just Java') http://purl.org/dc/elements/1.1/author('http://www.xyz.com/jv.html','Peter van der Linden') http://www.w3.org/1999/02/22-rdf-syntax-ns#type('http://www.xyz.com/jv.html','http://www.lit.edu/types#Book')
Edutella Query: Example Query • ‘Return all resources which are of type AI-Book or which are of type Book and furthermore have the title Artificial Intelligence‘ aibook(X) :- http://purl.org/dc/elements/1.1/title(X,'Artificial Intelligence'), http://purl.org/dc/elements/1.1/type(X,'http://www.lib.org/types#Book'). aibook(X) :- http://purl.org/dc/elements/1.1/type(X,'http://www.lib.org/types#AI-Book'). ?- aibook(X). • Query literals are evaluated one by one. • Matching rule heads are substituted and their variables unified. • Disjunction as rules with identical head.
Edutella Query: Results • Results as tuples of variable bindings. aibook(http://www.xyz.com/ai.html) aibook(http://www.xyz.com/pl.html)
Edutella Query: RDF-QELDesign criteria for an RDF Query Exchange Language • Standard semantics and sound RDF serialization. • Expressiveness (simple queries should look simple while complex queries should be possible). • Adaptibility (QBE/simple graph query, relational calculus, inference engines). • Transformability.
Edutella Query: RDF-QEL-i Solution: Several language levels RDF-QEL-i (1-4) with increasing expressiveness: • RDF-QEL-1: purely conjunctive queries, follows QBE paradigm (corresponds to Datalog query without rules). • RDF-QEL-2: disjunctive queries, requires reification, AND/OR-tree, suitable for query visualization and reuse (corresponds to Datalog with non-recursive rules). • RDF-QEL-3: allows negation, covers relational calculus (corresponds to Datalog with non-recursive rules and negated literals). • RDF-QEL-4: allows recursion to express transitive closure and linear recursive query definitions.
Edutella Query: Example Query aibook(X) :- http://purl.org/dc/elements/1.1/title(X,'Artificial Intelligence'), http://purl.org/dc/elements/1.1/type(X,'http://www.lib.org/types#Book'). aibook(X) :- http://purl.org/dc/elements/1.1/type(X,'http://www.lib.org/types#AI-Book'). ?- aibook(X).
Edutella Prototype: Functionality Edutella Query Wrapper: • Edutella network interface: Import/export of RDF-QEL-1, RDF-QEL-3 and Datalog queries. • Storage layer interface: Export of SQL2 queries. Internal Query Representation: • Edutella Common Data Model (ECDM). Edutella Query Mediator: • Maintains Query Index with entries of the form <namespace>, <namespace, property_name> or <namespace, property_name, property_value>.
Edutella Prototype: SQL SELECT STMT0.PREDICATE STMT0_PREDICATE, STMT0.ARG0 STMT0_ARG0 FROM (SELECT'http://www.lib.org#aibook' PREDICATE, STMT0.SUBJECT ARG0 FROM STATEMENTS STMT0 WHERE STMT0.PREDICATE='http://www.w3.org/1999/02/22-rdf-syntax-ns#type' AND STMT0.OBJECT='http://www.lit.edu/types#AIBook' UNION SELECT'http://www.lib.org#aibook' PREDICATE, STMT0.SUBJECT ARG0 FROM STATEMENTS STMT0, STATEMENTS STMT1 WHERE STMT0.PREDICATE='http://purl.org/dc/elements/1.1/title' AND STMT0.OBJECT='Artificial Intelligence' AND STMT1.PREDICATE='http://www.w3.org/1999/02/22-rdf-syntax-ns#type' AND STMT1.OBJECT='http://www.lit.edu/types#Book' AND STMT0.SUBJECT=STMT1.SUBJECT ) STMT0
Edutella Prototype: Future Work • Further testing, enhanced error handling. • Support for further Query Languages: RDF-QEL-2, RQL, TRIPLE, RDF/XML, etc. • Query Optimizer. • Enhanced Distributed Query Mechanism.