SlideShare a Scribd company logo
1 of 6
Download to read offline
Comparative study that aims RDF processing for the
                     Java platform

                        Burada Alexandru and Prelipcean Gheorghe

                   Computer Science Faculty, "Al. I. Cuza" University of Iasi
                        Software Systems Engineering specialization



       Abstract. The semantic web represents the next evolution of the World Wide
       Web in which the information will be identified by semantics, by both software
       and human being. RDF is a metadata framework which facilitates the
       understanding of information by software. Processing RDF using java platform
       is an important issue today because of its portability of the compiled code. The
       aim of this document is to present a comparative study of the most popular
       APIs for RDF processing available for the java platform.




       Keywords: java, RDF




1 Introduction

    The World Wide Web was built as a network of documents which are understood
by human. His success was the possibility to post documents and retrieving them
from another people server. In the beginning the HTTP servers and browsers were
responsible only for rendering the content in the HTML form and images. All
processing and understanding was for the humans. After that came support for the
server side processing like CGI and Java Servlet API. Browsers evolved and support
Javascript and other scripting languages and many processing can be made on server
side tasks or on the client side.
    Today, with a big variety of information, browsers and end-user devices, it is
practically impossible for web application developers to keep up constantly rewriting
server-side and client-side code. The major problem is the inability of web application
to understand content. Learning to understand information about content, or metadata,
is a major step toward developing a solution.
    The Resource Description Framework is a standard designed for Web applications,
which depend on machine-understandable metadata, and to support interoperability
between such applications. RDF is used to create models of metadata that may be
understood by processing agents.
    RDF is also a simple graph-based data model for representing information on the
Web.
2                     Burada Alexandru and Prelipcean Gheorghe


       An RDF graph is a set of triples; each triple is made of a Subject, Predicate and
    Object.
       Triples are used to create relationships between the subject and object using
    different predicates.


    2 JRDF - An RDF Library in Java

       JRDF [2] is a standard set of APIs that is trying to cover the most important
    features needed by java developers. It also consists from a base implementation of
    RDF.
       As main features it includes persistent graphs, SPARQL GUI, distributed and
    Local SPARQL servers, RDF Parsers, relational query model, SPARQL support,
    BDB MapFactory, RDF Witer and global graphs. JRDF support the next java
    versions:
       - java 1.5, and require StAX library(ref) - StAX an interface that came from DOM
    and Simple Api for XML parsing schema. Using StAX the application can load
    progressively only what it needs for processing.
       -java 1.6

       For storing the triples it used in memory and disk based graphs with a standard
    system level interface.

        The persisting operation is made in manner: load RDF, do some changes and then
    save. They are not stored to disk until the factory is closed. This operation includes all
    graphs, which means that we cannot store a specific graph.
       JRDF model uses a hierarchy of interfaces, in which the base is represented by
    Node. This is sub classed by Subject, Predicate and Object. Each of those elements
    from the triple is sub classed by blank node, URI and Literal




       . The default behavior in JRDF is that a URI reference has to be an absolute URI.
    Literals allow the creation of literal through Element Factory.
Comparative study that aims RDF processing for the Java platform   3


  SPARQL support

  JRDF provide a simple GUI interface that allows users to load the RDF/XML and
NS documents and execute the SPQRL queries.
  Let’s say we just downloaded the latest version of jrdf –(the build from Nov 20
2009), and we want to execute same SPAQL queries on our RDF documents.

  We can simply type the command:

  java -jar jrdf-gui-0.5.6.jar

   to start the JRDF GUI (a java-swing application).
The user can load an RDF document and execute SPAQL queries over this file. The
application will show the result of the query and the time taken by this operation or
the exception cause in a fail case.




   The documentation that comes with the library is not so substantial – only in the
wiki page - that explains how to use the main important features of JRDF and we can
say that it is oriented to developers, since it providing lots of examples and test cases
4                    Burada Alexandru and Prelipcean Gheorghe


    in the binary sources. At this moment the library is still developed and they want to
    add support for transactions, security, event handling for adding or removing nodes
    from graph and a RDF to java object API – similar to hibernate.
    The code License –The JRDF library is licensed under Apache License 2.0

     3 Sesame: A Generic Architecture for Storing and Querying
    RDF and RDF Schema

       Sesame is a generic architecture for storage and querying large quantities of
    metadata in RDF and RDF Schema.                 Sesame is built as an independent
    implementation from any storage devices, which means that we can use for storage
    relational databases, triple storage and object-oriented databases without changing the
    code for query engine or other functionalities. It also offers support for concurrency
    control, export of RDF and RDF Schema information and a query engine for RQL.
    For storage of metadata it needs, of course, a repository, but this issue involves some
    problems because there are lots of data base management systems and each of these
    has strengths and weaknesses, targeted platforms and API’s. In this case Sesame
    chose anther strategy: to concentrate all specific DBMS code in a single layer called
    Storage And Inference Layer (SAIL). This layer offer to clients RDF methods and
    translate them to a specific DBMS.

      The RQL query module.

        The RQL module is one module implemented in Sesame and it consists from a
    series of steps that are made in order to execute a RQL query. The execution cycle of
    a RQL is next one: Sesame translate the RQL query through a parser (via the object
    model) into a set of calls to the SAIL, the result will be optimized by Sesame query
    optimizer and will produce an optimized query model. A natural consequence of this
    choice to evaluate queries in the SAIL is that it needs to devise several optimization
    techniques in the engine and the SAIL API implementation, since it cannot rely on
    any given DBMS to do this. A lack of SAIL module is the unused transaction
    functionalities.

      The admin module

        This module is used for inserting RDF data and RDF Schema information into a
    repository. It offers two functionalities: adding RDF data/ schema information and
    clearing the repository. As a future functionality will be the partial delete. This
    module retrieves the information from RDF source using a RDF streaming parser (a
    parser that is part of Jena). This parser gives the admin module the information as a
    triple - Subject, Predicate and Object. The current version of Sesame has no support
    for versioning.
        The RDF export module

       The RDF Export Module is a very simple module. This module is able to export
    the contents of a repository formatted in XMLserialized RDF. The idea behind this
Comparative study that aims RDF processing for the Java platform   5

module is that it supplies a basis for using Sesame in combination with other RDF
tools, as all RDF tools will at least be able to read this format.

  Differences between Sesame and other APIs

   APIs like Jena or Redland focus on RDF triple set, leaving the interpretation of
these triple as an exercise for the user. In SAIL, those RDFS tasks are handled
internally. The main reason is related to the relationship the efficiency and the actual
storage model used. Another interesting feature in SAIL is concurrency handling.
This feature was introduced because of the given RQL was broken down into several
operations and they need to assure consistency over multiple operations.
   The documentation offered by Sesame project is very rich and it included lots
example. The project is available under a BSD-style license.

  4 Jena - “a Java framework for writing Semantic Web
applications”

Jena [5] is an open source software under a BSD license. It implements APIs for
dealing with Semantic Web building blocks such as RDF and OWL. Jena manages
the triples with an API called Model which can be created from a file system or a
remote file. An RDF document is represented as a set of statements. It uses JDBC
(java data base connectivity) for binding to an existing RDBMS. Jena contains a rich
set of features for dealing with RDF: the methods for reading and writing RDF as
XML, save an RDF model to a file and loads it when it’s needed, the ability to reason
using custom rules, and OWL-based ontology processing. It also offers a complete
guide to the operations it support but few example in the binary sources.

  Using SPARQL with Jena

   The support for SPARQL in Jena is currently available through a module called
ARQ. ARQ is under active development, and is not yet part of the standard Jena
distribution.

   The integration of Jena with the most popular IDE used by java developers is
pretty simple, because for eclipse already exists a plugin called “Jena 2.0 Library
Plugin”, and for Netbeans you need only to include the library in the project you want
to use it.
6                     Burada Alexandru and Prelipcean Gheorghe


         Conclusion

    A very good report about a set of open source triple store systems and performance
    tests within a common hardware, software and dataset environment can be found on
    the Ryan Lee report - Scalability Report on Triple Store Applications [7]. RDF holds
    great promise for the future of the Web. As the technology matures, it will become
    increasingly simple to create new applications by generating RDF models. Such
    models may be generated based on very high-level interactive specifications and data
    analysis. Maybe in the future non-programmers will be able to build very
    sophisticated internet applications.




    References

    1. http://code.google.com/p/jrdf/
    2. http://jrdf.sourceforge.net/
    3. http://www.openrdf.org/doc/papers/Sesame-ISWC2002.pdf
    4. http://www.ibm.com/developerworks/xml/library/x-atomtordf/index.html?ca=drs-&ca=dgf-
       ip
    5. http://jena.sourceforge.net/documentation.html
    6. http://hydrogen.informatik.tu-cottbus.de/wiki/index.php/Advanced_Jena_Rules#example9
    7. http://simile.mit.edu/reports/stores/

More Related Content

What's hot

DC-2008 DCMI/IEEE workshop
DC-2008 DCMI/IEEE workshopDC-2008 DCMI/IEEE workshop
DC-2008 DCMI/IEEE workshopMikael Nilsson
 
20080917 Rev
20080917 Rev20080917 Rev
20080917 Revcharper
 
Spark SQL Tutorial | Spark SQL Using Scala | Apache Spark Tutorial For Beginn...
Spark SQL Tutorial | Spark SQL Using Scala | Apache Spark Tutorial For Beginn...Spark SQL Tutorial | Spark SQL Using Scala | Apache Spark Tutorial For Beginn...
Spark SQL Tutorial | Spark SQL Using Scala | Apache Spark Tutorial For Beginn...Simplilearn
 
Automating the Use of Web APIs through Lightweight Semantics
Automating the Use of Web APIs through Lightweight SemanticsAutomating the Use of Web APIs through Lightweight Semantics
Automating the Use of Web APIs through Lightweight Semanticsmmaleshkova
 
Agile data lake? An oxymoron?
Agile data lake? An oxymoron?Agile data lake? An oxymoron?
Agile data lake? An oxymoron?samthemonad
 
The Adventure: BlackRay as a Storage Engine
The Adventure: BlackRay as a Storage EngineThe Adventure: BlackRay as a Storage Engine
The Adventure: BlackRay as a Storage Enginefschupp
 
Poster Declaratively Describing Responses of Hypermedia-Driven Web APIs
Poster Declaratively Describing Responses of Hypermedia-Driven Web APIsPoster Declaratively Describing Responses of Hypermedia-Driven Web APIs
Poster Declaratively Describing Responses of Hypermedia-Driven Web APIsRuben Taelman
 
IBM Solutions '99 XML and Java: Lessons Learned
IBM Solutions '99 XML and Java: Lessons LearnedIBM Solutions '99 XML and Java: Lessons Learned
IBM Solutions '99 XML and Java: Lessons LearnedTed Leung
 
REST Enabling Your Oracle Database
REST Enabling Your Oracle DatabaseREST Enabling Your Oracle Database
REST Enabling Your Oracle DatabaseJeff Smith
 
Java database programming with jdbc
Java database programming with jdbcJava database programming with jdbc
Java database programming with jdbcsriram raj
 

What's hot (18)

DC-2008 DCMI/IEEE workshop
DC-2008 DCMI/IEEE workshopDC-2008 DCMI/IEEE workshop
DC-2008 DCMI/IEEE workshop
 
Mcneill 01
Mcneill 01Mcneill 01
Mcneill 01
 
20080917 Rev
20080917 Rev20080917 Rev
20080917 Rev
 
Sinux
SinuxSinux
Sinux
 
Spark SQL Tutorial | Spark SQL Using Scala | Apache Spark Tutorial For Beginn...
Spark SQL Tutorial | Spark SQL Using Scala | Apache Spark Tutorial For Beginn...Spark SQL Tutorial | Spark SQL Using Scala | Apache Spark Tutorial For Beginn...
Spark SQL Tutorial | Spark SQL Using Scala | Apache Spark Tutorial For Beginn...
 
semanticweb
semanticwebsemanticweb
semanticweb
 
Java part 3
Java part  3Java part  3
Java part 3
 
Automating the Use of Web APIs through Lightweight Semantics
Automating the Use of Web APIs through Lightweight SemanticsAutomating the Use of Web APIs through Lightweight Semantics
Automating the Use of Web APIs through Lightweight Semantics
 
Scala a case4
Scala a case4Scala a case4
Scala a case4
 
Agile data lake? An oxymoron?
Agile data lake? An oxymoron?Agile data lake? An oxymoron?
Agile data lake? An oxymoron?
 
Tutorial Linked APIs
Tutorial Linked APIsTutorial Linked APIs
Tutorial Linked APIs
 
The Adventure: BlackRay as a Storage Engine
The Adventure: BlackRay as a Storage EngineThe Adventure: BlackRay as a Storage Engine
The Adventure: BlackRay as a Storage Engine
 
Veera Narayanaswamy_PLSQL_Profile
Veera Narayanaswamy_PLSQL_ProfileVeera Narayanaswamy_PLSQL_Profile
Veera Narayanaswamy_PLSQL_Profile
 
Poster Declaratively Describing Responses of Hypermedia-Driven Web APIs
Poster Declaratively Describing Responses of Hypermedia-Driven Web APIsPoster Declaratively Describing Responses of Hypermedia-Driven Web APIs
Poster Declaratively Describing Responses of Hypermedia-Driven Web APIs
 
IBM Solutions '99 XML and Java: Lessons Learned
IBM Solutions '99 XML and Java: Lessons LearnedIBM Solutions '99 XML and Java: Lessons Learned
IBM Solutions '99 XML and Java: Lessons Learned
 
REST Enabling Your Oracle Database
REST Enabling Your Oracle DatabaseREST Enabling Your Oracle Database
REST Enabling Your Oracle Database
 
Java database programming with jdbc
Java database programming with jdbcJava database programming with jdbc
Java database programming with jdbc
 
CatConf2001
CatConf2001CatConf2001
CatConf2001
 

Similar to Comparative study of Java RDF processing APIs

Rdf Processing On The Java Platform
Rdf Processing On The Java PlatformRdf Processing On The Java Platform
Rdf Processing On The Java Platformguestc1b16406
 
Comparative study on the processing of RDF in PHP
Comparative study on the processing of RDF in PHPComparative study on the processing of RDF in PHP
Comparative study on the processing of RDF in PHPMSGUNC
 
RDF APIs for .NET Framework
RDF APIs for .NET FrameworkRDF APIs for .NET Framework
RDF APIs for .NET FrameworkAdriana Ivanciu
 
Publishing Linked Data 3/5 Semtech2011
Publishing Linked Data 3/5 Semtech2011Publishing Linked Data 3/5 Semtech2011
Publishing Linked Data 3/5 Semtech2011Juan Sequeda
 
Laravel - A Trending PHP Framework
Laravel - A Trending PHP FrameworkLaravel - A Trending PHP Framework
Laravel - A Trending PHP Frameworkijtsrd
 
RDF and the Semantic Web -- Joanna Pszenicyn
RDF and the Semantic Web -- Joanna PszenicynRDF and the Semantic Web -- Joanna Pszenicyn
RDF and the Semantic Web -- Joanna PszenicynRichard.Sapon-White
 
Introducing JDBC for SPARQL
Introducing JDBC for SPARQLIntroducing JDBC for SPARQL
Introducing JDBC for SPARQLRob Vesse
 
GraphTech Ecosystem - part 1: Graph Databases
GraphTech Ecosystem - part 1: Graph DatabasesGraphTech Ecosystem - part 1: Graph Databases
GraphTech Ecosystem - part 1: Graph DatabasesLinkurious
 
RDBMS vs Hadoop vs Spark
RDBMS vs Hadoop vs SparkRDBMS vs Hadoop vs Spark
RDBMS vs Hadoop vs SparkLaxmi8
 
Learn about SPARK tool and it's componemts
Learn about SPARK tool and it's componemtsLearn about SPARK tool and it's componemts
Learn about SPARK tool and it's componemtssiddharth30121
 
Spark from the Surface
Spark from the SurfaceSpark from the Surface
Spark from the SurfaceJosi Aranda
 
Rollin onj Rubyv3
Rollin onj Rubyv3Rollin onj Rubyv3
Rollin onj Rubyv3Oracle
 
Semantic content management: consuming and producing RDF in Drupal
Semantic content management: consuming and producing RDF in DrupalSemantic content management: consuming and producing RDF in Drupal
Semantic content management: consuming and producing RDF in DrupalThom Bunting
 
Deploying PHP applications using Virtuoso as Application Server
Deploying PHP applications using Virtuoso as Application ServerDeploying PHP applications using Virtuoso as Application Server
Deploying PHP applications using Virtuoso as Application Serverwebhostingguy
 
Big_data_analytics_NoSql_Module-4_Session
Big_data_analytics_NoSql_Module-4_SessionBig_data_analytics_NoSql_Module-4_Session
Big_data_analytics_NoSql_Module-4_SessionRUHULAMINHAZARIKA
 

Similar to Comparative study of Java RDF processing APIs (20)

Web Spa
Web SpaWeb Spa
Web Spa
 
Rdf Processing On The Java Platform
Rdf Processing On The Java PlatformRdf Processing On The Java Platform
Rdf Processing On The Java Platform
 
Comparative study on the processing of RDF in PHP
Comparative study on the processing of RDF in PHPComparative study on the processing of RDF in PHP
Comparative study on the processing of RDF in PHP
 
RDF APIs for .NET Framework
RDF APIs for .NET FrameworkRDF APIs for .NET Framework
RDF APIs for .NET Framework
 
Publishing Linked Data 3/5 Semtech2011
Publishing Linked Data 3/5 Semtech2011Publishing Linked Data 3/5 Semtech2011
Publishing Linked Data 3/5 Semtech2011
 
Spark Workshop
Spark WorkshopSpark Workshop
Spark Workshop
 
Laravel - A Trending PHP Framework
Laravel - A Trending PHP FrameworkLaravel - A Trending PHP Framework
Laravel - A Trending PHP Framework
 
RDF and the Semantic Web -- Joanna Pszenicyn
RDF and the Semantic Web -- Joanna PszenicynRDF and the Semantic Web -- Joanna Pszenicyn
RDF and the Semantic Web -- Joanna Pszenicyn
 
Introducing JDBC for SPARQL
Introducing JDBC for SPARQLIntroducing JDBC for SPARQL
Introducing JDBC for SPARQL
 
GraphTech Ecosystem - part 1: Graph Databases
GraphTech Ecosystem - part 1: Graph DatabasesGraphTech Ecosystem - part 1: Graph Databases
GraphTech Ecosystem - part 1: Graph Databases
 
RDBMS vs Hadoop vs Spark
RDBMS vs Hadoop vs SparkRDBMS vs Hadoop vs Spark
RDBMS vs Hadoop vs Spark
 
Learn about SPARK tool and it's componemts
Learn about SPARK tool and it's componemtsLearn about SPARK tool and it's componemts
Learn about SPARK tool and it's componemts
 
SEGAP - Technical overview
SEGAP - Technical overviewSEGAP - Technical overview
SEGAP - Technical overview
 
Spark from the Surface
Spark from the SurfaceSpark from the Surface
Spark from the Surface
 
Rollin onj Rubyv3
Rollin onj Rubyv3Rollin onj Rubyv3
Rollin onj Rubyv3
 
Spark
SparkSpark
Spark
 
Semantic content management: consuming and producing RDF in Drupal
Semantic content management: consuming and producing RDF in DrupalSemantic content management: consuming and producing RDF in Drupal
Semantic content management: consuming and producing RDF in Drupal
 
Deploying PHP applications using Virtuoso as Application Server
Deploying PHP applications using Virtuoso as Application ServerDeploying PHP applications using Virtuoso as Application Server
Deploying PHP applications using Virtuoso as Application Server
 
Apache Spark on HDinsight Training
Apache Spark on HDinsight TrainingApache Spark on HDinsight Training
Apache Spark on HDinsight Training
 
Big_data_analytics_NoSql_Module-4_Session
Big_data_analytics_NoSql_Module-4_SessionBig_data_analytics_NoSql_Module-4_Session
Big_data_analytics_NoSql_Module-4_Session
 

Recently uploaded

DATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginnersDATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginnersSabitha Banu
 
How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17Celine George
 
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...JhezDiaz1
 
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfAMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfphamnguyenenglishnb
 
AmericanHighSchoolsprezentacijaoskolama.
AmericanHighSchoolsprezentacijaoskolama.AmericanHighSchoolsprezentacijaoskolama.
AmericanHighSchoolsprezentacijaoskolama.arsicmarija21
 
Introduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher EducationIntroduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher Educationpboyjonauth
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatYousafMalik24
 
Types of Journalistic Writing Grade 8.pptx
Types of Journalistic Writing Grade 8.pptxTypes of Journalistic Writing Grade 8.pptx
Types of Journalistic Writing Grade 8.pptxEyham Joco
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxAnupkumar Sharma
 
EPANDING THE CONTENT OF AN OUTLINE using notes.pptx
EPANDING THE CONTENT OF AN OUTLINE using notes.pptxEPANDING THE CONTENT OF AN OUTLINE using notes.pptx
EPANDING THE CONTENT OF AN OUTLINE using notes.pptxRaymartEstabillo3
 
What is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPWhat is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPCeline George
 
Grade 9 Q4-MELC1-Active and Passive Voice.pptx
Grade 9 Q4-MELC1-Active and Passive Voice.pptxGrade 9 Q4-MELC1-Active and Passive Voice.pptx
Grade 9 Q4-MELC1-Active and Passive Voice.pptxChelloAnnAsuncion2
 
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTiammrhaywood
 
Full Stack Web Development Course for Beginners
Full Stack Web Development Course  for BeginnersFull Stack Web Development Course  for Beginners
Full Stack Web Development Course for BeginnersSabitha Banu
 
Framing an Appropriate Research Question 6b9b26d93da94caf993c038d9efcdedb.pdf
Framing an Appropriate Research Question 6b9b26d93da94caf993c038d9efcdedb.pdfFraming an Appropriate Research Question 6b9b26d93da94caf993c038d9efcdedb.pdf
Framing an Appropriate Research Question 6b9b26d93da94caf993c038d9efcdedb.pdfUjwalaBharambe
 
Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxpboyjonauth
 

Recently uploaded (20)

DATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginnersDATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginners
 
How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17
 
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
 
Raw materials used in Herbal Cosmetics.pptx
Raw materials used in Herbal Cosmetics.pptxRaw materials used in Herbal Cosmetics.pptx
Raw materials used in Herbal Cosmetics.pptx
 
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfAMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
 
AmericanHighSchoolsprezentacijaoskolama.
AmericanHighSchoolsprezentacijaoskolama.AmericanHighSchoolsprezentacijaoskolama.
AmericanHighSchoolsprezentacijaoskolama.
 
Introduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher EducationIntroduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher Education
 
9953330565 Low Rate Call Girls In Rohini Delhi NCR
9953330565 Low Rate Call Girls In Rohini  Delhi NCR9953330565 Low Rate Call Girls In Rohini  Delhi NCR
9953330565 Low Rate Call Girls In Rohini Delhi NCR
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice great
 
Types of Journalistic Writing Grade 8.pptx
Types of Journalistic Writing Grade 8.pptxTypes of Journalistic Writing Grade 8.pptx
Types of Journalistic Writing Grade 8.pptx
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
 
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
 
EPANDING THE CONTENT OF AN OUTLINE using notes.pptx
EPANDING THE CONTENT OF AN OUTLINE using notes.pptxEPANDING THE CONTENT OF AN OUTLINE using notes.pptx
EPANDING THE CONTENT OF AN OUTLINE using notes.pptx
 
What is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPWhat is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERP
 
Grade 9 Q4-MELC1-Active and Passive Voice.pptx
Grade 9 Q4-MELC1-Active and Passive Voice.pptxGrade 9 Q4-MELC1-Active and Passive Voice.pptx
Grade 9 Q4-MELC1-Active and Passive Voice.pptx
 
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
 
Full Stack Web Development Course for Beginners
Full Stack Web Development Course  for BeginnersFull Stack Web Development Course  for Beginners
Full Stack Web Development Course for Beginners
 
Framing an Appropriate Research Question 6b9b26d93da94caf993c038d9efcdedb.pdf
Framing an Appropriate Research Question 6b9b26d93da94caf993c038d9efcdedb.pdfFraming an Appropriate Research Question 6b9b26d93da94caf993c038d9efcdedb.pdf
Framing an Appropriate Research Question 6b9b26d93da94caf993c038d9efcdedb.pdf
 
OS-operating systems- ch04 (Threads) ...
OS-operating systems- ch04 (Threads) ...OS-operating systems- ch04 (Threads) ...
OS-operating systems- ch04 (Threads) ...
 
Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptx
 

Comparative study of Java RDF processing APIs

  • 1. Comparative study that aims RDF processing for the Java platform Burada Alexandru and Prelipcean Gheorghe Computer Science Faculty, "Al. I. Cuza" University of Iasi Software Systems Engineering specialization Abstract. The semantic web represents the next evolution of the World Wide Web in which the information will be identified by semantics, by both software and human being. RDF is a metadata framework which facilitates the understanding of information by software. Processing RDF using java platform is an important issue today because of its portability of the compiled code. The aim of this document is to present a comparative study of the most popular APIs for RDF processing available for the java platform. Keywords: java, RDF 1 Introduction The World Wide Web was built as a network of documents which are understood by human. His success was the possibility to post documents and retrieving them from another people server. In the beginning the HTTP servers and browsers were responsible only for rendering the content in the HTML form and images. All processing and understanding was for the humans. After that came support for the server side processing like CGI and Java Servlet API. Browsers evolved and support Javascript and other scripting languages and many processing can be made on server side tasks or on the client side. Today, with a big variety of information, browsers and end-user devices, it is practically impossible for web application developers to keep up constantly rewriting server-side and client-side code. The major problem is the inability of web application to understand content. Learning to understand information about content, or metadata, is a major step toward developing a solution. The Resource Description Framework is a standard designed for Web applications, which depend on machine-understandable metadata, and to support interoperability between such applications. RDF is used to create models of metadata that may be understood by processing agents. RDF is also a simple graph-based data model for representing information on the Web.
  • 2. 2 Burada Alexandru and Prelipcean Gheorghe An RDF graph is a set of triples; each triple is made of a Subject, Predicate and Object. Triples are used to create relationships between the subject and object using different predicates. 2 JRDF - An RDF Library in Java JRDF [2] is a standard set of APIs that is trying to cover the most important features needed by java developers. It also consists from a base implementation of RDF. As main features it includes persistent graphs, SPARQL GUI, distributed and Local SPARQL servers, RDF Parsers, relational query model, SPARQL support, BDB MapFactory, RDF Witer and global graphs. JRDF support the next java versions: - java 1.5, and require StAX library(ref) - StAX an interface that came from DOM and Simple Api for XML parsing schema. Using StAX the application can load progressively only what it needs for processing. -java 1.6 For storing the triples it used in memory and disk based graphs with a standard system level interface. The persisting operation is made in manner: load RDF, do some changes and then save. They are not stored to disk until the factory is closed. This operation includes all graphs, which means that we cannot store a specific graph. JRDF model uses a hierarchy of interfaces, in which the base is represented by Node. This is sub classed by Subject, Predicate and Object. Each of those elements from the triple is sub classed by blank node, URI and Literal . The default behavior in JRDF is that a URI reference has to be an absolute URI. Literals allow the creation of literal through Element Factory.
  • 3. Comparative study that aims RDF processing for the Java platform 3 SPARQL support JRDF provide a simple GUI interface that allows users to load the RDF/XML and NS documents and execute the SPQRL queries. Let’s say we just downloaded the latest version of jrdf –(the build from Nov 20 2009), and we want to execute same SPAQL queries on our RDF documents. We can simply type the command: java -jar jrdf-gui-0.5.6.jar to start the JRDF GUI (a java-swing application). The user can load an RDF document and execute SPAQL queries over this file. The application will show the result of the query and the time taken by this operation or the exception cause in a fail case. The documentation that comes with the library is not so substantial – only in the wiki page - that explains how to use the main important features of JRDF and we can say that it is oriented to developers, since it providing lots of examples and test cases
  • 4. 4 Burada Alexandru and Prelipcean Gheorghe in the binary sources. At this moment the library is still developed and they want to add support for transactions, security, event handling for adding or removing nodes from graph and a RDF to java object API – similar to hibernate. The code License –The JRDF library is licensed under Apache License 2.0 3 Sesame: A Generic Architecture for Storing and Querying RDF and RDF Schema Sesame is a generic architecture for storage and querying large quantities of metadata in RDF and RDF Schema. Sesame is built as an independent implementation from any storage devices, which means that we can use for storage relational databases, triple storage and object-oriented databases without changing the code for query engine or other functionalities. It also offers support for concurrency control, export of RDF and RDF Schema information and a query engine for RQL. For storage of metadata it needs, of course, a repository, but this issue involves some problems because there are lots of data base management systems and each of these has strengths and weaknesses, targeted platforms and API’s. In this case Sesame chose anther strategy: to concentrate all specific DBMS code in a single layer called Storage And Inference Layer (SAIL). This layer offer to clients RDF methods and translate them to a specific DBMS. The RQL query module. The RQL module is one module implemented in Sesame and it consists from a series of steps that are made in order to execute a RQL query. The execution cycle of a RQL is next one: Sesame translate the RQL query through a parser (via the object model) into a set of calls to the SAIL, the result will be optimized by Sesame query optimizer and will produce an optimized query model. A natural consequence of this choice to evaluate queries in the SAIL is that it needs to devise several optimization techniques in the engine and the SAIL API implementation, since it cannot rely on any given DBMS to do this. A lack of SAIL module is the unused transaction functionalities. The admin module This module is used for inserting RDF data and RDF Schema information into a repository. It offers two functionalities: adding RDF data/ schema information and clearing the repository. As a future functionality will be the partial delete. This module retrieves the information from RDF source using a RDF streaming parser (a parser that is part of Jena). This parser gives the admin module the information as a triple - Subject, Predicate and Object. The current version of Sesame has no support for versioning. The RDF export module The RDF Export Module is a very simple module. This module is able to export the contents of a repository formatted in XMLserialized RDF. The idea behind this
  • 5. Comparative study that aims RDF processing for the Java platform 5 module is that it supplies a basis for using Sesame in combination with other RDF tools, as all RDF tools will at least be able to read this format. Differences between Sesame and other APIs APIs like Jena or Redland focus on RDF triple set, leaving the interpretation of these triple as an exercise for the user. In SAIL, those RDFS tasks are handled internally. The main reason is related to the relationship the efficiency and the actual storage model used. Another interesting feature in SAIL is concurrency handling. This feature was introduced because of the given RQL was broken down into several operations and they need to assure consistency over multiple operations. The documentation offered by Sesame project is very rich and it included lots example. The project is available under a BSD-style license. 4 Jena - “a Java framework for writing Semantic Web applications” Jena [5] is an open source software under a BSD license. It implements APIs for dealing with Semantic Web building blocks such as RDF and OWL. Jena manages the triples with an API called Model which can be created from a file system or a remote file. An RDF document is represented as a set of statements. It uses JDBC (java data base connectivity) for binding to an existing RDBMS. Jena contains a rich set of features for dealing with RDF: the methods for reading and writing RDF as XML, save an RDF model to a file and loads it when it’s needed, the ability to reason using custom rules, and OWL-based ontology processing. It also offers a complete guide to the operations it support but few example in the binary sources. Using SPARQL with Jena The support for SPARQL in Jena is currently available through a module called ARQ. ARQ is under active development, and is not yet part of the standard Jena distribution. The integration of Jena with the most popular IDE used by java developers is pretty simple, because for eclipse already exists a plugin called “Jena 2.0 Library Plugin”, and for Netbeans you need only to include the library in the project you want to use it.
  • 6. 6 Burada Alexandru and Prelipcean Gheorghe Conclusion A very good report about a set of open source triple store systems and performance tests within a common hardware, software and dataset environment can be found on the Ryan Lee report - Scalability Report on Triple Store Applications [7]. RDF holds great promise for the future of the Web. As the technology matures, it will become increasingly simple to create new applications by generating RDF models. Such models may be generated based on very high-level interactive specifications and data analysis. Maybe in the future non-programmers will be able to build very sophisticated internet applications. References 1. http://code.google.com/p/jrdf/ 2. http://jrdf.sourceforge.net/ 3. http://www.openrdf.org/doc/papers/Sesame-ISWC2002.pdf 4. http://www.ibm.com/developerworks/xml/library/x-atomtordf/index.html?ca=drs-&ca=dgf- ip 5. http://jena.sourceforge.net/documentation.html 6. http://hydrogen.informatik.tu-cottbus.de/wiki/index.php/Advanced_Jena_Rules#example9 7. http://simile.mit.edu/reports/stores/