Peer-to-Peer Networking for Distributed Learning Repositories by utg65734

VIEWS: 9 PAGES: 22

									   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                      • Goal: making distributed
• Edutella network = huge RDF       nature of RDF repositories
  repository integrating all        completely transparent to
  participating peer                Edutella clients.
  repositories.
          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-QEL
  Design 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 in RDF-QEL-3
         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: ECDM Model
Edutella Prototype: Demonstration
                 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.

								
To top