SlideShare a Scribd company logo
RDF processing tools in Java

                               Corneliu Dicusar, Petru Rebeja

                        Web Application Development papers,
                            Faculty of Computer Science,
                                    Iasi, Romania
               {corneliu.dicusar, petru.rebeja}@info.uaic.ro



         Abstract. This paper presents a comparison of several tools for RDF processing
         in Java taking in account the following aspects: storage, SPARQL support,
         support for developers and copyright.

         Keywords: RDF, Java, RDFSchema, SPARQL, METAMorphoses, Jena, JRDF



1        Introduction

RDF1 became a key concept in knowledge interchange on the Web [1] nowadays and
one of the briks on which Semantic Web2 will be build. It allows software tools to
link data with their semantics rather than just acknowledge their existence without
further knowledge of means of data interpretation. Thus, RDF pushes the immense
collection of data stored today on the Web to a new, higher level towards Semantic
Web. Still, RDF in essence isn’t but just a framework for metadata. In order to use
this framework, developers need tools to do so. This paper presents a short
comparison of RDF processing tools in Java. The comparison will be made on how
RDF triples are stored, whether the specified tool provides SPARQL3 support, how
well it is documented for developers and it’s copyright. Each of these aspects will be
presented in a separated section of this document, all these sections being preceded by
a section containing a short description of each tool.
In order to comprise the notions of this document, the reader must be accustomed to
the following notions:
    ─   RDF
    ─   RDFS(chema)
    ─   SPARQL
    ─   Java




1 http://www.w3.org/RDF/
2
  http://www.w3.org/2001/sw/
3 http://www.w3.org/TR/rdf-sparql-query/
2       Corneliu Dicusar, Petru Rebeja


2       Java tools for RDF processing

Although there are a lot more tools for RDF processing in Java, this paper presents
only the three most popular of them. These are:
    ─ METAMorphoses4 developed by Martin Švihla5. It is a tool designed for
      transforming data from a relational database into RDF documents, according to
      mapping. It uses schema mappings and template documents written in XML
      languages. It can be used as a common Java Library. This is not an actual RDF
      handling tool, but we have chosen it, as an example of a very useful idea.
    ─ Jena6, from Hewlett-Packard, is a framework designed for building Semantic
      Web applications. It offers the tools to handle RDF, RDFS, OWL, SPARQL,
      and more, including a build in inference engine.
    ─ JRDF7, developed by Andrew Newman, a library that gives a simple user
      interface following RDF standard for creation and management for RDF graphs.


3       Storing the triples

    ─ METAmorphoses transforms data stored in a relation database into RDF triples,
      so it is natural that these triples appear in XML format. It takes the schema of
      the database, and adapts it to an existing ontology. A great example is given by
      the authors [2]. Having a simple database schema:
    PERSON(#id, id_department,username, first_name,
    family_name)
    PROJECT(#id, web)
    PERSON_PROJECT(person_id, project_id)
    DEPARTMENT(#id, name)
    And given the corresponding ontology:
    <rdfs:Classrdf:ID="Person">
    <rdfs:label>Person</rdfs:label>
    </rdfs:Class>

    <rdf:Propertyrdf:ID="surname">
    <rdfs:rangerdf:resource="http://www.w3.org/2001/XMLSche
    ma#
    string"/>
    <rdfs:domainrdf:resource="#Person"/>
    </rdf:Property>
    <rdf:Propertyrdf:ID="hasDepartment">

4
  http://metamorphoses.sourceforge.net/
5 http://www.svihla.net/
6
  http://jena.sourceforge.net/
7 http://jrdf.sourceforge.net/
RDF processing tools in Java      3


 <rdfs:rangerdf:resource="http://www.w3.org/2001/XMLSche
 ma#
 string"/>
 <rdfs:domainrdf:resource="#Person"/>
 </rdf:Property>

 <rdf:Propertyrdf:ID="currentProject">
 <rdfs:rangerdf:resource="#Project"/>
 <rdfs:domainrdf:resource="#Person"/>
 </rdf:Property>

 <rdfs:Classrdf:ID="Project">
 <rdfs:label>Project</rdfs:label>
 </rdfs:Class>

 <rdf:Propertyrdf:ID="participants">
 <rdfs:domainrdf:resource="#Project"/>
 <rdfs:rangerdf:resource="#Person"/>
 </rdf:Property>

  <rdf:Propertyrdf:ID="homepage">
  <rdfs:rangerdf:resource="http://www.w3.org/2001/XMLSche
  ma#
  string"/>
  </rdf:Property>
A corresponding example of mapping would be:
  <Class > <ClasstemplateName="person"rdfLabel="Person"
  sql="SELECT*
  FROM person p, department d WHERE d.id =
  p.id_department">
  <PropertytemplateName="surname"rdfLabel="surname"
  sqlName
  ="family_name"/>
  </Class>
 ─ Jena, creates RDF models, the simplest way is by creating a default one:
   ModelFactory.createDefaultModel(), and these models are stored in
   the memory
 ─ JRDF stores these triples in a manner similar to Hibernate, as Java Object Api.
   Being able to talk directly to a triple store in a common manner with the ability
   to swap differing implementations is one of the key aims of the project.
4         Corneliu Dicusar, Petru Rebeja


4        SPARQL Support

     ─ METAmorphoses does not have a support for SPARQL.
     ─ Jena uses ARQ8, a query engine that supports SPAQRL. ARQ offers support
       for standard SPARQL, and some extensions like SPARQL algebra, also other
       features such as:
                o Free text search via Lucene9
                o SPARQL/Update
                o Support for custom filter functions
                o Property functions for custom processing of semantic relationships
                o Aggregation, GROUP BY and assignment as SPARQL extensions
                o Support for federated query
                o Support for extension to other storage systems
     ─ JRDF offers even a separate GUI that makes handling the SPARQL queries
       easier, the results being displayed in a tabular form. It also contains the package
       org.jrdf.sparql that implements it. And implements the interface
       SPARQLConnection - that offers a connection through which to send the query,
       and extends the class: DefaulSPARQLConnection and SPARQLQueryBuilder,
       which builds queries from string format into Query objects.


5        Support for developers

5.1      Documentation

     ─ METAmorphoses has a small description on the official site, and also some
       examples can be found in the documentation manual. Though the example is
       analyzed in an intuitive manner, and working with the tool is like using a simple
       Java Library, it doesn’t provide enough information for building complex
       applications right away.
     ─ Jena is documented well enough. Detailed information can be found on the site.
       Also they offer support, and if a question appears, one can address it to the
       development team.
     ─ JRDF is also well documented and structured into a tree-like hierarchy
       containing all included packages. A very useful thing for a developer who wants
       to use this tool

5.2      Integration

All of these tools can be used as Java libraries in a common way. In addition, JRDF
offers a simple GUI.


8
    http://jena.sourceforge.net/ARQ/
9   http://lucene.apache.org/
RDF processing tools in Java   5


5.3       Learning curve

The learning curve of these tools is common with the learning of other Java Libraries.
Naturally JRDF and Jena, being much more complex, take more time to get used to.
But once classes and functions are learned, you encounter little problems, also due to
the excellent documentation. If you don’t want to use the JRDF API, you could just
instead use JRDF GUI that shortens the time you need to spend, before using the tool.
Unfortunately, until now, no discussion forums were found for these tools using a
Web search.

5.4       Copyright terms

     ─ METAmorphoses is being developed under the Lesser GPL licence10.
     ─ Jena is under the licence of Hewlett-Packard Development Company
     ─ JRDF is under BSD-Licence11


6         Conclusions

Semantic Web is becoming more and more of a reality, and no technology that is
oriented on building software for the Web (with or without a capital w), can afford
ignoring this fact. RDF is a key concept in Semantic Web so it’s only natural that
tools for RDF processing are developed. Java, being one of the most popular
programming languages nowadays, definitely needs such tools. With the need comes
expectance, with expectance comes evolution. The three tools illustrated in this paper
are the most promising (from the author’s point of view) ones in becoming
indispensable libraries for building applications for Semantic Web.


7         References

1. http://www.w3.org/RDF/
2. METAmorphoses v0.2.1: mapping and template language documentation,
   http://metamorphoses.sourceforge.net/metamorphoses-v0.2.1_doc.pdf




10
     http://www.gnu.org/licenses/lgpl.html
11   http://www.opensource.org/licenses/bsd-license.php

More Related Content

What's hot

semanticweb
semanticwebsemanticweb
semanticweb
Kevin Hutt
 
morph-LDP: An R2RML-based Linked Data Platform implementation
morph-LDP: An R2RML-based Linked Data Platform implementationmorph-LDP: An R2RML-based Linked Data Platform implementation
morph-LDP: An R2RML-based Linked Data Platform implementation
Nandana Mihindukulasooriya
 
Glossary of Metadata standards
Glossary of Metadata standardsGlossary of Metadata standards
Glossary of Metadata standards
Satapon Yosakonkun
 
NISO/DCMI Webinar: International Bibliographic Standards, Linked Data, and th...
NISO/DCMI Webinar: International Bibliographic Standards, Linked Data, and th...NISO/DCMI Webinar: International Bibliographic Standards, Linked Data, and th...
NISO/DCMI Webinar: International Bibliographic Standards, Linked Data, and th...
National Information Standards Organization (NISO)
 
DLF 2015 Presentation, "RDF in the Real World."
DLF 2015 Presentation, "RDF in the Real World." DLF 2015 Presentation, "RDF in the Real World."
DLF 2015 Presentation, "RDF in the Real World."
Avalon Media System
 
Frances McNamara - Kuali OLE Implementation at University of Chicago
Frances McNamara - Kuali OLE Implementation at University of ChicagoFrances McNamara - Kuali OLE Implementation at University of Chicago
Frances McNamara - Kuali OLE Implementation at University of Chicago
Kuali Days UK
 
Building Linked Data Applications
Building Linked Data ApplicationsBuilding Linked Data Applications
Building Linked Data Applications
EUCLID project
 
Fedora Migration Considerations
Fedora Migration ConsiderationsFedora Migration Considerations
Fedora Migration Considerations
Avalon Media System
 
RDF for PubMedCentral
RDF for PubMedCentral RDF for PubMedCentral
RDF for PubMedCentral
alexander garcia
 
Flexible metadata schemes for research data repositories - Clarin Conference...
Flexible metadata schemes for research data repositories  - Clarin Conference...Flexible metadata schemes for research data repositories  - Clarin Conference...
Flexible metadata schemes for research data repositories - Clarin Conference...
Vyacheslav Tykhonov
 
Publishing Linked Data 3/5 Semtech2011
Publishing Linked Data 3/5 Semtech2011Publishing Linked Data 3/5 Semtech2011
Publishing Linked Data 3/5 Semtech2011
Juan Sequeda
 
Handout for Applying Digital Library Metadata Standards
Handout for Applying Digital Library Metadata StandardsHandout for Applying Digital Library Metadata Standards
Handout for Applying Digital Library Metadata Standards
Jenn Riley
 
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
 
20131112 Introduction to LaTeX for EndNote Users.docx
20131112 Introduction to LaTeX for EndNote Users.docx20131112 Introduction to LaTeX for EndNote Users.docx
20131112 Introduction to LaTeX for EndNote Users.docx
NTUSubjectRooms
 
master_thesis_greciano_v2
master_thesis_greciano_v2master_thesis_greciano_v2
master_thesis_greciano_v2
M. Christian Greciano, MSc
 
Semantic Technologies and Triplestores for Business Intelligence
Semantic Technologies and Triplestores for Business IntelligenceSemantic Technologies and Triplestores for Business Intelligence
Semantic Technologies and Triplestores for Business Intelligence
Marin Dimitrov
 
Semantic Web use cases in outcomes research
Semantic Web use cases in outcomes researchSemantic Web use cases in outcomes research
Semantic Web use cases in outcomes research
Chimezie Ogbuji
 
HarishPoojaryCV
HarishPoojaryCVHarishPoojaryCV
HarishPoojaryCV
Harish Poojary
 
Virtuoso Sponger - RDFizer Middleware for creating RDF from non RDF Data Sources
Virtuoso Sponger - RDFizer Middleware for creating RDF from non RDF Data SourcesVirtuoso Sponger - RDFizer Middleware for creating RDF from non RDF Data Sources
Virtuoso Sponger - RDFizer Middleware for creating RDF from non RDF Data Sources
rumito
 
Ontology-based multi-domain metadata for research data management using tripl...
Ontology-based multi-domain metadata for research data management using tripl...Ontology-based multi-domain metadata for research data management using tripl...
Ontology-based multi-domain metadata for research data management using tripl...
João Rocha da Silva
 

What's hot (20)

semanticweb
semanticwebsemanticweb
semanticweb
 
morph-LDP: An R2RML-based Linked Data Platform implementation
morph-LDP: An R2RML-based Linked Data Platform implementationmorph-LDP: An R2RML-based Linked Data Platform implementation
morph-LDP: An R2RML-based Linked Data Platform implementation
 
Glossary of Metadata standards
Glossary of Metadata standardsGlossary of Metadata standards
Glossary of Metadata standards
 
NISO/DCMI Webinar: International Bibliographic Standards, Linked Data, and th...
NISO/DCMI Webinar: International Bibliographic Standards, Linked Data, and th...NISO/DCMI Webinar: International Bibliographic Standards, Linked Data, and th...
NISO/DCMI Webinar: International Bibliographic Standards, Linked Data, and th...
 
DLF 2015 Presentation, "RDF in the Real World."
DLF 2015 Presentation, "RDF in the Real World." DLF 2015 Presentation, "RDF in the Real World."
DLF 2015 Presentation, "RDF in the Real World."
 
Frances McNamara - Kuali OLE Implementation at University of Chicago
Frances McNamara - Kuali OLE Implementation at University of ChicagoFrances McNamara - Kuali OLE Implementation at University of Chicago
Frances McNamara - Kuali OLE Implementation at University of Chicago
 
Building Linked Data Applications
Building Linked Data ApplicationsBuilding Linked Data Applications
Building Linked Data Applications
 
Fedora Migration Considerations
Fedora Migration ConsiderationsFedora Migration Considerations
Fedora Migration Considerations
 
RDF for PubMedCentral
RDF for PubMedCentral RDF for PubMedCentral
RDF for PubMedCentral
 
Flexible metadata schemes for research data repositories - Clarin Conference...
Flexible metadata schemes for research data repositories  - Clarin Conference...Flexible metadata schemes for research data repositories  - Clarin Conference...
Flexible metadata schemes for research data repositories - Clarin Conference...
 
Publishing Linked Data 3/5 Semtech2011
Publishing Linked Data 3/5 Semtech2011Publishing Linked Data 3/5 Semtech2011
Publishing Linked Data 3/5 Semtech2011
 
Handout for Applying Digital Library Metadata Standards
Handout for Applying Digital Library Metadata StandardsHandout for Applying Digital Library Metadata Standards
Handout for Applying Digital Library Metadata Standards
 
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...
 
20131112 Introduction to LaTeX for EndNote Users.docx
20131112 Introduction to LaTeX for EndNote Users.docx20131112 Introduction to LaTeX for EndNote Users.docx
20131112 Introduction to LaTeX for EndNote Users.docx
 
master_thesis_greciano_v2
master_thesis_greciano_v2master_thesis_greciano_v2
master_thesis_greciano_v2
 
Semantic Technologies and Triplestores for Business Intelligence
Semantic Technologies and Triplestores for Business IntelligenceSemantic Technologies and Triplestores for Business Intelligence
Semantic Technologies and Triplestores for Business Intelligence
 
Semantic Web use cases in outcomes research
Semantic Web use cases in outcomes researchSemantic Web use cases in outcomes research
Semantic Web use cases in outcomes research
 
HarishPoojaryCV
HarishPoojaryCVHarishPoojaryCV
HarishPoojaryCV
 
Virtuoso Sponger - RDFizer Middleware for creating RDF from non RDF Data Sources
Virtuoso Sponger - RDFizer Middleware for creating RDF from non RDF Data SourcesVirtuoso Sponger - RDFizer Middleware for creating RDF from non RDF Data Sources
Virtuoso Sponger - RDFizer Middleware for creating RDF from non RDF Data Sources
 
Ontology-based multi-domain metadata for research data management using tripl...
Ontology-based multi-domain metadata for research data management using tripl...Ontology-based multi-domain metadata for research data management using tripl...
Ontology-based multi-domain metadata for research data management using tripl...
 

Similar to Rdf Processing Tools In Java

Modern PHP RDF toolkits: a comparative study
Modern PHP RDF toolkits: a comparative studyModern PHP RDF toolkits: a comparative study
Modern PHP RDF toolkits: a comparative study
Marius Butuc
 
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
MSGUNC
 
Web Spa
Web SpaWeb Spa
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
Richard.Sapon-White
 
Rdf Processing On The Java Platform
Rdf Processing On The Java PlatformRdf Processing On The Java Platform
Rdf Processing On The Java Platform
guestc1b16406
 
RDF APIs for .NET Framework
RDF APIs for .NET FrameworkRDF APIs for .NET Framework
RDF APIs for .NET Framework
Adriana Ivanciu
 
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
RUHULAMINHAZARIKA
 
Services semantic technology_terminology
Services semantic technology_terminologyServices semantic technology_terminology
Services semantic technology_terminology
Tenforce
 
State of the Semantic Web
State of the Semantic WebState of the Semantic Web
State of the Semantic Web
Ivan Herman
 
Data FAIRport Skunkworks: Common Repository Access Via Meta-Metadata Descript...
Data FAIRport Skunkworks: Common Repository Access Via Meta-Metadata Descript...Data FAIRport Skunkworks: Common Repository Access Via Meta-Metadata Descript...
Data FAIRport Skunkworks: Common Repository Access Via Meta-Metadata Descript...
datascienceiqss
 
eureka09
eureka09eureka09
eureka09
tutorialsruby
 
eureka09
eureka09eureka09
eureka09
tutorialsruby
 
dotNetRDF - A Semantic Web/RDF Library for .Net Developers
dotNetRDF - A Semantic Web/RDF Library for .Net DevelopersdotNetRDF - A Semantic Web/RDF Library for .Net Developers
dotNetRDF - A Semantic Web/RDF Library for .Net Developers
Rob Vesse
 
Bio2RDF presentation at Combine 2012
Bio2RDF presentation at Combine 2012Bio2RDF presentation at Combine 2012
Bio2RDF presentation at Combine 2012
François Belleau
 
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
webhostingguy
 
Eclipse RDF4J - Working with RDF in Java
Eclipse RDF4J - Working with RDF in JavaEclipse RDF4J - Working with RDF in Java
Eclipse RDF4J - Working with RDF in Java
Jeen Broekstra
 
RDBMS vs Hadoop vs Spark
RDBMS vs Hadoop vs SparkRDBMS vs Hadoop vs Spark
RDBMS vs Hadoop vs Spark
Laxmi8
 
Data FAIRport Prototype & Demo - Presentation to Elsevier, Jul 10, 2015
Data FAIRport Prototype & Demo - Presentation to Elsevier, Jul 10, 2015Data FAIRport Prototype & Demo - Presentation to Elsevier, Jul 10, 2015
Data FAIRport Prototype & Demo - Presentation to Elsevier, Jul 10, 2015
Mark Wilkinson
 
Producing, publishing and consuming linked data - CSHALS 2013
Producing, publishing and consuming linked data - CSHALS 2013Producing, publishing and consuming linked data - CSHALS 2013
Producing, publishing and consuming linked data - CSHALS 2013
François Belleau
 
A Comparison Between Python APIs For RDF Processing
A Comparison Between Python APIs For RDF ProcessingA Comparison Between Python APIs For RDF Processing
A Comparison Between Python APIs For RDF Processing
lucianb
 

Similar to Rdf Processing Tools In Java (20)

Modern PHP RDF toolkits: a comparative study
Modern PHP RDF toolkits: a comparative studyModern PHP RDF toolkits: a comparative study
Modern PHP RDF toolkits: a comparative study
 
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
 
Web Spa
Web SpaWeb Spa
Web Spa
 
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
 
Rdf Processing On The Java Platform
Rdf Processing On The Java PlatformRdf Processing On The Java Platform
Rdf Processing On The Java Platform
 
RDF APIs for .NET Framework
RDF APIs for .NET FrameworkRDF APIs for .NET Framework
RDF APIs for .NET Framework
 
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
 
Services semantic technology_terminology
Services semantic technology_terminologyServices semantic technology_terminology
Services semantic technology_terminology
 
State of the Semantic Web
State of the Semantic WebState of the Semantic Web
State of the Semantic Web
 
Data FAIRport Skunkworks: Common Repository Access Via Meta-Metadata Descript...
Data FAIRport Skunkworks: Common Repository Access Via Meta-Metadata Descript...Data FAIRport Skunkworks: Common Repository Access Via Meta-Metadata Descript...
Data FAIRport Skunkworks: Common Repository Access Via Meta-Metadata Descript...
 
eureka09
eureka09eureka09
eureka09
 
eureka09
eureka09eureka09
eureka09
 
dotNetRDF - A Semantic Web/RDF Library for .Net Developers
dotNetRDF - A Semantic Web/RDF Library for .Net DevelopersdotNetRDF - A Semantic Web/RDF Library for .Net Developers
dotNetRDF - A Semantic Web/RDF Library for .Net Developers
 
Bio2RDF presentation at Combine 2012
Bio2RDF presentation at Combine 2012Bio2RDF presentation at Combine 2012
Bio2RDF presentation at Combine 2012
 
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
 
Eclipse RDF4J - Working with RDF in Java
Eclipse RDF4J - Working with RDF in JavaEclipse RDF4J - Working with RDF in Java
Eclipse RDF4J - Working with RDF in Java
 
RDBMS vs Hadoop vs Spark
RDBMS vs Hadoop vs SparkRDBMS vs Hadoop vs Spark
RDBMS vs Hadoop vs Spark
 
Data FAIRport Prototype & Demo - Presentation to Elsevier, Jul 10, 2015
Data FAIRport Prototype & Demo - Presentation to Elsevier, Jul 10, 2015Data FAIRport Prototype & Demo - Presentation to Elsevier, Jul 10, 2015
Data FAIRport Prototype & Demo - Presentation to Elsevier, Jul 10, 2015
 
Producing, publishing and consuming linked data - CSHALS 2013
Producing, publishing and consuming linked data - CSHALS 2013Producing, publishing and consuming linked data - CSHALS 2013
Producing, publishing and consuming linked data - CSHALS 2013
 
A Comparison Between Python APIs For RDF Processing
A Comparison Between Python APIs For RDF ProcessingA Comparison Between Python APIs For RDF Processing
A Comparison Between Python APIs For RDF Processing
 

Recently uploaded

Film vocab for eal 3 students: Australia the movie
Film vocab for eal 3 students: Australia the movieFilm vocab for eal 3 students: Australia the movie
Film vocab for eal 3 students: Australia the movie
Nicholas Montgomery
 
writing about opinions about Australia the movie
writing about opinions about Australia the moviewriting about opinions about Australia the movie
writing about opinions about Australia the movie
Nicholas Montgomery
 
Walmart Business+ and Spark Good for Nonprofits.pdf
Walmart Business+ and Spark Good for Nonprofits.pdfWalmart Business+ and Spark Good for Nonprofits.pdf
Walmart Business+ and Spark Good for Nonprofits.pdf
TechSoup
 
Liberal Approach to the Study of Indian Politics.pdf
Liberal Approach to the Study of Indian Politics.pdfLiberal Approach to the Study of Indian Politics.pdf
Liberal Approach to the Study of Indian Politics.pdf
WaniBasim
 
BÀI TẬP BỔ TRỢ TIẾNG ANH LỚP 9 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2024-2025 - ...
BÀI TẬP BỔ TRỢ TIẾNG ANH LỚP 9 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2024-2025 - ...BÀI TẬP BỔ TRỢ TIẾNG ANH LỚP 9 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2024-2025 - ...
BÀI TẬP BỔ TRỢ TIẾNG ANH LỚP 9 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2024-2025 - ...
Nguyen Thanh Tu Collection
 
Constructing Your Course Container for Effective Communication
Constructing Your Course Container for Effective CommunicationConstructing Your Course Container for Effective Communication
Constructing Your Course Container for Effective Communication
Chevonnese Chevers Whyte, MBA, B.Sc.
 
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdfANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
Priyankaranawat4
 
IGCSE Biology Chapter 14- Reproduction in Plants.pdf
IGCSE Biology Chapter 14- Reproduction in Plants.pdfIGCSE Biology Chapter 14- Reproduction in Plants.pdf
IGCSE Biology Chapter 14- Reproduction in Plants.pdf
Amin Marwan
 
คำศัพท์ คำพื้นฐานการอ่าน ภาษาอังกฤษ ระดับชั้น ม.1
คำศัพท์ คำพื้นฐานการอ่าน ภาษาอังกฤษ ระดับชั้น ม.1คำศัพท์ คำพื้นฐานการอ่าน ภาษาอังกฤษ ระดับชั้น ม.1
คำศัพท์ คำพื้นฐานการอ่าน ภาษาอังกฤษ ระดับชั้น ม.1
สมใจ จันสุกสี
 
How to Make a Field Mandatory in Odoo 17
How to Make a Field Mandatory in Odoo 17How to Make a Field Mandatory in Odoo 17
How to Make a Field Mandatory in Odoo 17
Celine George
 
Bed Making ( Introduction, Purpose, Types, Articles, Scientific principles, N...
Bed Making ( Introduction, Purpose, Types, Articles, Scientific principles, N...Bed Making ( Introduction, Purpose, Types, Articles, Scientific principles, N...
Bed Making ( Introduction, Purpose, Types, Articles, Scientific principles, N...
Leena Ghag-Sakpal
 
BÀI TẬP DẠY THÊM TIẾNG ANH LỚP 7 CẢ NĂM FRIENDS PLUS SÁCH CHÂN TRỜI SÁNG TẠO ...
BÀI TẬP DẠY THÊM TIẾNG ANH LỚP 7 CẢ NĂM FRIENDS PLUS SÁCH CHÂN TRỜI SÁNG TẠO ...BÀI TẬP DẠY THÊM TIẾNG ANH LỚP 7 CẢ NĂM FRIENDS PLUS SÁCH CHÂN TRỜI SÁNG TẠO ...
BÀI TẬP DẠY THÊM TIẾNG ANH LỚP 7 CẢ NĂM FRIENDS PLUS SÁCH CHÂN TRỜI SÁNG TẠO ...
Nguyen Thanh Tu Collection
 
Chapter wise All Notes of First year Basic Civil Engineering.pptx
Chapter wise All Notes of First year Basic Civil Engineering.pptxChapter wise All Notes of First year Basic Civil Engineering.pptx
Chapter wise All Notes of First year Basic Civil Engineering.pptx
Denish Jangid
 
clinical examination of hip joint (1).pdf
clinical examination of hip joint (1).pdfclinical examination of hip joint (1).pdf
clinical examination of hip joint (1).pdf
Priyankaranawat4
 
Your Skill Boost Masterclass: Strategies for Effective Upskilling
Your Skill Boost Masterclass: Strategies for Effective UpskillingYour Skill Boost Masterclass: Strategies for Effective Upskilling
Your Skill Boost Masterclass: Strategies for Effective Upskilling
Excellence Foundation for South Sudan
 
How to Create a More Engaging and Human Online Learning Experience
How to Create a More Engaging and Human Online Learning Experience How to Create a More Engaging and Human Online Learning Experience
How to Create a More Engaging and Human Online Learning Experience
Wahiba Chair Training & Consulting
 
NEWSPAPERS - QUESTION 1 - REVISION POWERPOINT.pptx
NEWSPAPERS - QUESTION 1 - REVISION POWERPOINT.pptxNEWSPAPERS - QUESTION 1 - REVISION POWERPOINT.pptx
NEWSPAPERS - QUESTION 1 - REVISION POWERPOINT.pptx
iammrhaywood
 
How to deliver Powerpoint Presentations.pptx
How to deliver Powerpoint  Presentations.pptxHow to deliver Powerpoint  Presentations.pptx
How to deliver Powerpoint Presentations.pptx
HajraNaeem15
 
B. Ed Syllabus for babasaheb ambedkar education university.pdf
B. Ed Syllabus for babasaheb ambedkar education university.pdfB. Ed Syllabus for babasaheb ambedkar education university.pdf
B. Ed Syllabus for babasaheb ambedkar education university.pdf
BoudhayanBhattachari
 
BBR 2024 Summer Sessions Interview Training
BBR  2024 Summer Sessions Interview TrainingBBR  2024 Summer Sessions Interview Training
BBR 2024 Summer Sessions Interview Training
Katrina Pritchard
 

Recently uploaded (20)

Film vocab for eal 3 students: Australia the movie
Film vocab for eal 3 students: Australia the movieFilm vocab for eal 3 students: Australia the movie
Film vocab for eal 3 students: Australia the movie
 
writing about opinions about Australia the movie
writing about opinions about Australia the moviewriting about opinions about Australia the movie
writing about opinions about Australia the movie
 
Walmart Business+ and Spark Good for Nonprofits.pdf
Walmart Business+ and Spark Good for Nonprofits.pdfWalmart Business+ and Spark Good for Nonprofits.pdf
Walmart Business+ and Spark Good for Nonprofits.pdf
 
Liberal Approach to the Study of Indian Politics.pdf
Liberal Approach to the Study of Indian Politics.pdfLiberal Approach to the Study of Indian Politics.pdf
Liberal Approach to the Study of Indian Politics.pdf
 
BÀI TẬP BỔ TRỢ TIẾNG ANH LỚP 9 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2024-2025 - ...
BÀI TẬP BỔ TRỢ TIẾNG ANH LỚP 9 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2024-2025 - ...BÀI TẬP BỔ TRỢ TIẾNG ANH LỚP 9 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2024-2025 - ...
BÀI TẬP BỔ TRỢ TIẾNG ANH LỚP 9 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2024-2025 - ...
 
Constructing Your Course Container for Effective Communication
Constructing Your Course Container for Effective CommunicationConstructing Your Course Container for Effective Communication
Constructing Your Course Container for Effective Communication
 
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdfANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
 
IGCSE Biology Chapter 14- Reproduction in Plants.pdf
IGCSE Biology Chapter 14- Reproduction in Plants.pdfIGCSE Biology Chapter 14- Reproduction in Plants.pdf
IGCSE Biology Chapter 14- Reproduction in Plants.pdf
 
คำศัพท์ คำพื้นฐานการอ่าน ภาษาอังกฤษ ระดับชั้น ม.1
คำศัพท์ คำพื้นฐานการอ่าน ภาษาอังกฤษ ระดับชั้น ม.1คำศัพท์ คำพื้นฐานการอ่าน ภาษาอังกฤษ ระดับชั้น ม.1
คำศัพท์ คำพื้นฐานการอ่าน ภาษาอังกฤษ ระดับชั้น ม.1
 
How to Make a Field Mandatory in Odoo 17
How to Make a Field Mandatory in Odoo 17How to Make a Field Mandatory in Odoo 17
How to Make a Field Mandatory in Odoo 17
 
Bed Making ( Introduction, Purpose, Types, Articles, Scientific principles, N...
Bed Making ( Introduction, Purpose, Types, Articles, Scientific principles, N...Bed Making ( Introduction, Purpose, Types, Articles, Scientific principles, N...
Bed Making ( Introduction, Purpose, Types, Articles, Scientific principles, N...
 
BÀI TẬP DẠY THÊM TIẾNG ANH LỚP 7 CẢ NĂM FRIENDS PLUS SÁCH CHÂN TRỜI SÁNG TẠO ...
BÀI TẬP DẠY THÊM TIẾNG ANH LỚP 7 CẢ NĂM FRIENDS PLUS SÁCH CHÂN TRỜI SÁNG TẠO ...BÀI TẬP DẠY THÊM TIẾNG ANH LỚP 7 CẢ NĂM FRIENDS PLUS SÁCH CHÂN TRỜI SÁNG TẠO ...
BÀI TẬP DẠY THÊM TIẾNG ANH LỚP 7 CẢ NĂM FRIENDS PLUS SÁCH CHÂN TRỜI SÁNG TẠO ...
 
Chapter wise All Notes of First year Basic Civil Engineering.pptx
Chapter wise All Notes of First year Basic Civil Engineering.pptxChapter wise All Notes of First year Basic Civil Engineering.pptx
Chapter wise All Notes of First year Basic Civil Engineering.pptx
 
clinical examination of hip joint (1).pdf
clinical examination of hip joint (1).pdfclinical examination of hip joint (1).pdf
clinical examination of hip joint (1).pdf
 
Your Skill Boost Masterclass: Strategies for Effective Upskilling
Your Skill Boost Masterclass: Strategies for Effective UpskillingYour Skill Boost Masterclass: Strategies for Effective Upskilling
Your Skill Boost Masterclass: Strategies for Effective Upskilling
 
How to Create a More Engaging and Human Online Learning Experience
How to Create a More Engaging and Human Online Learning Experience How to Create a More Engaging and Human Online Learning Experience
How to Create a More Engaging and Human Online Learning Experience
 
NEWSPAPERS - QUESTION 1 - REVISION POWERPOINT.pptx
NEWSPAPERS - QUESTION 1 - REVISION POWERPOINT.pptxNEWSPAPERS - QUESTION 1 - REVISION POWERPOINT.pptx
NEWSPAPERS - QUESTION 1 - REVISION POWERPOINT.pptx
 
How to deliver Powerpoint Presentations.pptx
How to deliver Powerpoint  Presentations.pptxHow to deliver Powerpoint  Presentations.pptx
How to deliver Powerpoint Presentations.pptx
 
B. Ed Syllabus for babasaheb ambedkar education university.pdf
B. Ed Syllabus for babasaheb ambedkar education university.pdfB. Ed Syllabus for babasaheb ambedkar education university.pdf
B. Ed Syllabus for babasaheb ambedkar education university.pdf
 
BBR 2024 Summer Sessions Interview Training
BBR  2024 Summer Sessions Interview TrainingBBR  2024 Summer Sessions Interview Training
BBR 2024 Summer Sessions Interview Training
 

Rdf Processing Tools In Java

  • 1. RDF processing tools in Java Corneliu Dicusar, Petru Rebeja Web Application Development papers, Faculty of Computer Science, Iasi, Romania {corneliu.dicusar, petru.rebeja}@info.uaic.ro Abstract. This paper presents a comparison of several tools for RDF processing in Java taking in account the following aspects: storage, SPARQL support, support for developers and copyright. Keywords: RDF, Java, RDFSchema, SPARQL, METAMorphoses, Jena, JRDF 1 Introduction RDF1 became a key concept in knowledge interchange on the Web [1] nowadays and one of the briks on which Semantic Web2 will be build. It allows software tools to link data with their semantics rather than just acknowledge their existence without further knowledge of means of data interpretation. Thus, RDF pushes the immense collection of data stored today on the Web to a new, higher level towards Semantic Web. Still, RDF in essence isn’t but just a framework for metadata. In order to use this framework, developers need tools to do so. This paper presents a short comparison of RDF processing tools in Java. The comparison will be made on how RDF triples are stored, whether the specified tool provides SPARQL3 support, how well it is documented for developers and it’s copyright. Each of these aspects will be presented in a separated section of this document, all these sections being preceded by a section containing a short description of each tool. In order to comprise the notions of this document, the reader must be accustomed to the following notions: ─ RDF ─ RDFS(chema) ─ SPARQL ─ Java 1 http://www.w3.org/RDF/ 2 http://www.w3.org/2001/sw/ 3 http://www.w3.org/TR/rdf-sparql-query/
  • 2. 2 Corneliu Dicusar, Petru Rebeja 2 Java tools for RDF processing Although there are a lot more tools for RDF processing in Java, this paper presents only the three most popular of them. These are: ─ METAMorphoses4 developed by Martin Švihla5. It is a tool designed for transforming data from a relational database into RDF documents, according to mapping. It uses schema mappings and template documents written in XML languages. It can be used as a common Java Library. This is not an actual RDF handling tool, but we have chosen it, as an example of a very useful idea. ─ Jena6, from Hewlett-Packard, is a framework designed for building Semantic Web applications. It offers the tools to handle RDF, RDFS, OWL, SPARQL, and more, including a build in inference engine. ─ JRDF7, developed by Andrew Newman, a library that gives a simple user interface following RDF standard for creation and management for RDF graphs. 3 Storing the triples ─ METAmorphoses transforms data stored in a relation database into RDF triples, so it is natural that these triples appear in XML format. It takes the schema of the database, and adapts it to an existing ontology. A great example is given by the authors [2]. Having a simple database schema: PERSON(#id, id_department,username, first_name, family_name) PROJECT(#id, web) PERSON_PROJECT(person_id, project_id) DEPARTMENT(#id, name) And given the corresponding ontology: <rdfs:Classrdf:ID="Person"> <rdfs:label>Person</rdfs:label> </rdfs:Class> <rdf:Propertyrdf:ID="surname"> <rdfs:rangerdf:resource="http://www.w3.org/2001/XMLSche ma# string"/> <rdfs:domainrdf:resource="#Person"/> </rdf:Property> <rdf:Propertyrdf:ID="hasDepartment"> 4 http://metamorphoses.sourceforge.net/ 5 http://www.svihla.net/ 6 http://jena.sourceforge.net/ 7 http://jrdf.sourceforge.net/
  • 3. RDF processing tools in Java 3 <rdfs:rangerdf:resource="http://www.w3.org/2001/XMLSche ma# string"/> <rdfs:domainrdf:resource="#Person"/> </rdf:Property> <rdf:Propertyrdf:ID="currentProject"> <rdfs:rangerdf:resource="#Project"/> <rdfs:domainrdf:resource="#Person"/> </rdf:Property> <rdfs:Classrdf:ID="Project"> <rdfs:label>Project</rdfs:label> </rdfs:Class> <rdf:Propertyrdf:ID="participants"> <rdfs:domainrdf:resource="#Project"/> <rdfs:rangerdf:resource="#Person"/> </rdf:Property> <rdf:Propertyrdf:ID="homepage"> <rdfs:rangerdf:resource="http://www.w3.org/2001/XMLSche ma# string"/> </rdf:Property> A corresponding example of mapping would be: <Class > <ClasstemplateName="person"rdfLabel="Person" sql="SELECT* FROM person p, department d WHERE d.id = p.id_department"> <PropertytemplateName="surname"rdfLabel="surname" sqlName ="family_name"/> </Class> ─ Jena, creates RDF models, the simplest way is by creating a default one: ModelFactory.createDefaultModel(), and these models are stored in the memory ─ JRDF stores these triples in a manner similar to Hibernate, as Java Object Api. Being able to talk directly to a triple store in a common manner with the ability to swap differing implementations is one of the key aims of the project.
  • 4. 4 Corneliu Dicusar, Petru Rebeja 4 SPARQL Support ─ METAmorphoses does not have a support for SPARQL. ─ Jena uses ARQ8, a query engine that supports SPAQRL. ARQ offers support for standard SPARQL, and some extensions like SPARQL algebra, also other features such as: o Free text search via Lucene9 o SPARQL/Update o Support for custom filter functions o Property functions for custom processing of semantic relationships o Aggregation, GROUP BY and assignment as SPARQL extensions o Support for federated query o Support for extension to other storage systems ─ JRDF offers even a separate GUI that makes handling the SPARQL queries easier, the results being displayed in a tabular form. It also contains the package org.jrdf.sparql that implements it. And implements the interface SPARQLConnection - that offers a connection through which to send the query, and extends the class: DefaulSPARQLConnection and SPARQLQueryBuilder, which builds queries from string format into Query objects. 5 Support for developers 5.1 Documentation ─ METAmorphoses has a small description on the official site, and also some examples can be found in the documentation manual. Though the example is analyzed in an intuitive manner, and working with the tool is like using a simple Java Library, it doesn’t provide enough information for building complex applications right away. ─ Jena is documented well enough. Detailed information can be found on the site. Also they offer support, and if a question appears, one can address it to the development team. ─ JRDF is also well documented and structured into a tree-like hierarchy containing all included packages. A very useful thing for a developer who wants to use this tool 5.2 Integration All of these tools can be used as Java libraries in a common way. In addition, JRDF offers a simple GUI. 8 http://jena.sourceforge.net/ARQ/ 9 http://lucene.apache.org/
  • 5. RDF processing tools in Java 5 5.3 Learning curve The learning curve of these tools is common with the learning of other Java Libraries. Naturally JRDF and Jena, being much more complex, take more time to get used to. But once classes and functions are learned, you encounter little problems, also due to the excellent documentation. If you don’t want to use the JRDF API, you could just instead use JRDF GUI that shortens the time you need to spend, before using the tool. Unfortunately, until now, no discussion forums were found for these tools using a Web search. 5.4 Copyright terms ─ METAmorphoses is being developed under the Lesser GPL licence10. ─ Jena is under the licence of Hewlett-Packard Development Company ─ JRDF is under BSD-Licence11 6 Conclusions Semantic Web is becoming more and more of a reality, and no technology that is oriented on building software for the Web (with or without a capital w), can afford ignoring this fact. RDF is a key concept in Semantic Web so it’s only natural that tools for RDF processing are developed. Java, being one of the most popular programming languages nowadays, definitely needs such tools. With the need comes expectance, with expectance comes evolution. The three tools illustrated in this paper are the most promising (from the author’s point of view) ones in becoming indispensable libraries for building applications for Semantic Web. 7 References 1. http://www.w3.org/RDF/ 2. METAmorphoses v0.2.1: mapping and template language documentation, http://metamorphoses.sourceforge.net/metamorphoses-v0.2.1_doc.pdf 10 http://www.gnu.org/licenses/lgpl.html 11 http://www.opensource.org/licenses/bsd-license.php