SlideShare a Scribd company logo
1 of 6
Download to read offline
Modern PHP RDF toolkits:
                   a comparative study

                               Marius-Gabriel Butuc

        Alexandru Ioan Cuza University, Department of Computer Science,
                                Iasi, Romania
                                  ,
                            mbutuc@info.uaic.ro
                          http://www.infoiasi.ro/



      Abstract. This work presents a comparative study on the RDF pro-
      cessing APIs implemented in PHP. We took into consideration different
      criteria including, but not limited to: the solution for storing RDF state-
      ments, the support for SPARQL queries, performance, interoperability,
      and implementation maturity.

      Key words: API, PHP, RDF, SPARQL.


1   Introduction
Today, we can find a myriad of Web applications that can be considered in-
telligent, accomplishing the visionary ideas that were once considered ahead of
one’s time. Since we are relaxing more and more the constraint of physicality of
information, we now take the challenge of finding the ultimate way of exchang-
ing information. Following this path, the Semantic Web development aims at
defining the meaning of information and services on the Web, allowing enhanced
information discovery, data integration and the automation of a variety of tasks.
At the core of the Semantic Web we find the Resource Description Framework
(RDF) and all the specifications and tools that provide solutions for structuring
and semantically describing data.
    For the rest of this paper, we will compare the current solutions addressing
these perspectives. We will start by discussing the architecture of a Semantic
Web application in Section 2, briefly browse the history of the PHP toolkits
developed so far in Section 3 and continue by comparing the two main pure-
PHP RDF application programming interfaces (API) today.


2   Architecture of a Semantic Web Application
RDF allows us to model information as statements–sets of triples which can be
exchanged over the Web. Believing that a connected Web is a smarter Web, the
Semantic Web goal goes far beyond building a web of machine-processable data,
aiming at enriching lives through access to information [1]. Given this goal, many
companies began developing components of Semantic Web applications both as
free software and commercial. The main components that embody a Semantic
Web deployment [2] are:
 – RDF Parser: a system component that reads and interprets the statements
   from RDF files. A RDF parser can understand one or more serialization
   formats (e.g., RDF/XML, N3, Turtle, N-Triples etc.).
 – RDF Serializer: the component that writes the triples to file in one of the
   several serialization formats.
 – Scraper: an instrument for extracting structured information from websites.
 – Converter: an instrument for transforming data from one form (e.g., rela-
   tional databases) into RDF.
 – RDF Store: a purpose-built database optimized for the storage and retrieval
   of triples. It is also called a triplestore and one of its main operations is to
   merge RDF stores.
 – RDF Query Engine: brings the ability to retrieve information from the
   triplestore using a query language, habitually SPARQL.
 – Inference Engine: frequently integrated with the query engine, it performs
   inferences according to given inferencing rules.
 – Application Interface: uses the data from the triplestore in the interaction
   with users.
    The relation between these components is depicted in Fig. 1




       Fig. 1. The relation between Semantic Web application components [2]




3    Brief History of PHP RDF Toolkits
Given the new technologies, two complementary perspectives [3] arose:
1. How can PHP developers benefit from the Semantic Web (technologies)?
2. How can Semantic Web projects benefit from PHP (developers)?
    Facing this challenge, several new projects emerged developing from the PHP
version of Repat RDF parser [4] to battle tested Drupal components and even
full blown APIs like ARC and RAP. As we can see in Fig. 2, only some of them
Fig. 2. Searching for modern pure-PHP RDF APIs.




survived [5], while there are still parts of the Semantic Web big picture that are
not within reach for PHP developers (e.g., Description Logic reasoners).
   For the rest of this work we only focus only on ARC RDF Classes for PHP [6]
and RAP: RDF API for PHP [7] because those APIs provide most of the com-
ponents of a Semantic Web application, as detailed in Fig. 3.




           Fig. 3. Components implemented in both Semantic Web APIs
4     ARC vs. RAP

RAP is a Semantic Web toolkit for PHP developers. RAP started as an open
source project at the Freie Universit¨t Berlin in 2002 and has been extended
                                      a
with internal and external code contributions since then.
    The motivation behind ARC [3] was the need for a set of tools that are
easy to combine with existing software, in contrast with contemporary toolkits
that had non-standard extensions. There was a need for supporting the already
existing Web 2.0 data formats (e.g., microformats, JSON, Atom, RSS2), for a
toolkit that was light-weight and optimized for PHP. Thereby, ARC uses object-
oriented code for its components and methods, but the processed data structures
consist of simple associative arrays, which leads to faster operations and less
memory consumption. Also, as of June 2008, ARC’s structures are aligned with
the Talis platform.


4.1   API-Paradigm

Both solutions offer Statement-centric and Resource-centric APIs, but RAP goes
one level further, offering an Ontology-centric API in extension to the Resource-
centric one.


4.2   RDF Parser/Serializer

RAP supports RDF/XML, N-Triples, N3, TriX, GRDDL and RSS/ATOM, while
ARC has both generic and specific parsers for RDF/XML, Turtle, N-Triples, RSS
2.0, SPOG or HTML and can only serialize in RDF/XML, RDF/JSON, Turtle
and N-Triples.


4.3   Triplestore and Query Engine

Both toolkits offer in-memory and database storage. While ARC only supports
MySQL as RDBMS, RAP supports any ADOdb compliant databases (30+).
   Even if both solutions support SPARQL, here ARC takes the lead, supporting
SPARQL+ which is a subset of the SPARQL Update [8].
   A protocol-compliant endpoint class which can be used for HTTP-based data
access as well as a client for remote SPARQL endpoints is delivered by both APIs.


4.4   Licence

Both toolkits are Free Open Source Software, RAP being distributed under
LGPL and ARC under GPL + W3C Licence.
5   Conclusions

We can use both APIs servers running PHP5 as well as PHP4, but after test-
ing, the ARC toolkit proves to be more focused on core tasks (e.g., parsing
RDF/XML) thus providing better performance. Still, this performance comes
to the cost of lacking functionality, especially compared to RAP which delivers
from the essential reasoning support (e.g., RDFS and some OWL Rules) till a
GUI for managing database-backed RDF models, or a graph visualization mod-
ule, and an in-depth documentation for all features. While RAP stagnates at
version 0.9.6 since February 2006, ARC enjoy a more effervescent development
and community, the latest ARC2 release dating November 2009.
    As a bottom line, it’s best to master them both and to use one or the other
depending on your projects requirements.


References

 1. Davis, I.: If you love something... set it free.
    http://slidesha.re/haCax (2009) at Code4Lib.
 2. Allemang, D., Hendler, J.: Semantic Web for the Working Ontologist: Effective
    Modeling in RDFS and OWL. Morgan Kaufmann (2008)
 3. Nowack, B.: RDF and SPARQL for PHP Developers.
    http://slidesha.re/eHQtN (2009) at New York Semantic Web Meetup.
 4. ***: PHP XML Classes.
    http://phpxmlclasses.sourceforge.net/ (July 2002)
 5. Bergman, M.: Sweet Tools (Sem Web).
    http://www.mkbergman.com/new-version-sweet-tools-sem-web/ (2009)
 6. ***: Easy RDF and SPARQL for LAMP systems—ARC RDF classes for PHP.
    http://arc.semsol.org/ (November 2009)
 7. ***: RAP—RDF API for PHP V0.9.6.
    http://www4.wiwiss.fu-berlin.de/bizer/rdfapi/index.html (2009)
 8. W3C: SPARQL Update.
    http://www.w3.org/Submission/SPARQL-Update/
 9. Argerich, L.: Parsing RDF documents using PHP (2002) An introduction to the
    RDF XML syntax and how to parse RDF documents using the PHP version of
    Repat.
10. Beckett, D.: Dave Beckett’s RDF Resource Guide.
    http://planetrdf.com/guide/ (September 2005)
11. Bizer, C., Westphal, D.: Developers guide to semantic web toolkits for different
    programming languages. Technical report, Freie Universit¨t Berlin (2007)
                                                            a
    http://www.wiwiss.fu-berlin.de/suhl/bizer/toolkits/.
12. Buraga, S.: Managementul datelor RDF. SPARQL. Technical report, Alexandru
    Ioan Cuza University Iasi (2009)
                              ,
    http://profs.info.uaic.ro/~busaco/teach/courses/wade/presentations/
    web04ManagementulDatelorRDF-SPARQL.pdf.
13. Oldakowski, R., Bizer, C., Westphal, D.: RAP: RDF API for PHP. Technical
    report, Freie Universit¨t Berlin (2005)
                            a
    http://www.semanticscripting.org/SFSW2005/papers/Oldakowski-RAP.pdf.
14. Davis, I.: 30 minute guide to RDF and Linked Data.
    http://slidesha.re/oEUTQ (2009) at Code4Lib.
15. ***: PEAR Package Information: RDF.
    http://phpxmlclasses.sourceforge.net/ (September 2004)
16. ***: SemanticWebTools—ESW Wiki.
    http://esw.w3.org/topic/SemanticWebTools (November 2009)
17. ***: Tagging. Aggregating. Interlinking. The LOD-way.
    http://lodr.info/ (November 2009)

More Related Content

What's hot

What Factors Influence the Design of a Linked Data Generation Algorithm?
What Factors Influence the Design of a Linked Data Generation Algorithm?What Factors Influence the Design of a Linked Data Generation Algorithm?
What Factors Influence the Design of a Linked Data Generation Algorithm?andimou
 
Introducing The R Software
Introducing The R Software  Introducing The R Software
Introducing The R Software Kamarul Imran
 
Online Tweet Sentiment Analysis with Apache Spark
Online Tweet Sentiment Analysis with Apache SparkOnline Tweet Sentiment Analysis with Apache Spark
Online Tweet Sentiment Analysis with Apache SparkDavide Nardone
 
Weka tutorial
Weka tutorialWeka tutorial
Weka tutorialGRajendra
 
Payola ESWC 2014 demo poster
Payola ESWC 2014 demo posterPayola ESWC 2014 demo poster
Payola ESWC 2014 demo posterJiří Helmich
 
A BASILar Approach for Building Web APIs on top of SPARQL Endpoints
A BASILar Approach for Building Web APIs on top of SPARQL EndpointsA BASILar Approach for Building Web APIs on top of SPARQL Endpoints
A BASILar Approach for Building Web APIs on top of SPARQL EndpointsEnrico Daga
 
Wed roman tut_open_datapub
Wed roman tut_open_datapubWed roman tut_open_datapub
Wed roman tut_open_datapubeswcsummerschool
 
A SEMANTIC BASED APPROACH FOR INFORMATION RETRIEVAL FROM HTML DOCUMENTS USING...
A SEMANTIC BASED APPROACH FOR INFORMATION RETRIEVAL FROM HTML DOCUMENTS USING...A SEMANTIC BASED APPROACH FOR INFORMATION RETRIEVAL FROM HTML DOCUMENTS USING...
A SEMANTIC BASED APPROACH FOR INFORMATION RETRIEVAL FROM HTML DOCUMENTS USING...cscpconf
 
A semantic based approach for information retrieval from html documents using...
A semantic based approach for information retrieval from html documents using...A semantic based approach for information retrieval from html documents using...
A semantic based approach for information retrieval from html documents using...csandit
 
Virtuoso -- The Prometheus of RDF
Virtuoso -- The Prometheus of RDFVirtuoso -- The Prometheus of RDF
Virtuoso -- The Prometheus of RDFOpenLink Software
 
AUTOMATIC CONVERSION OF RELATIONAL DATABASES INTO ONTOLOGIES: A COMPARATIVE A...
AUTOMATIC CONVERSION OF RELATIONAL DATABASES INTO ONTOLOGIES: A COMPARATIVE A...AUTOMATIC CONVERSION OF RELATIONAL DATABASES INTO ONTOLOGIES: A COMPARATIVE A...
AUTOMATIC CONVERSION OF RELATIONAL DATABASES INTO ONTOLOGIES: A COMPARATIVE A...IJwest
 

What's hot (17)

CatConf2001
CatConf2001CatConf2001
CatConf2001
 
What Factors Influence the Design of a Linked Data Generation Algorithm?
What Factors Influence the Design of a Linked Data Generation Algorithm?What Factors Influence the Design of a Linked Data Generation Algorithm?
What Factors Influence the Design of a Linked Data Generation Algorithm?
 
Introducing The R Software
Introducing The R Software  Introducing The R Software
Introducing The R Software
 
R for data analytics
R for data analyticsR for data analytics
R for data analytics
 
Online Tweet Sentiment Analysis with Apache Spark
Online Tweet Sentiment Analysis with Apache SparkOnline Tweet Sentiment Analysis with Apache Spark
Online Tweet Sentiment Analysis with Apache Spark
 
Weka tutorial
Weka tutorialWeka tutorial
Weka tutorial
 
Payola ESWC 2014 demo poster
Payola ESWC 2014 demo posterPayola ESWC 2014 demo poster
Payola ESWC 2014 demo poster
 
R programming
R programmingR programming
R programming
 
A BASILar Approach for Building Web APIs on top of SPARQL Endpoints
A BASILar Approach for Building Web APIs on top of SPARQL EndpointsA BASILar Approach for Building Web APIs on top of SPARQL Endpoints
A BASILar Approach for Building Web APIs on top of SPARQL Endpoints
 
Wed roman tut_open_datapub
Wed roman tut_open_datapubWed roman tut_open_datapub
Wed roman tut_open_datapub
 
R language
R languageR language
R language
 
A SEMANTIC BASED APPROACH FOR INFORMATION RETRIEVAL FROM HTML DOCUMENTS USING...
A SEMANTIC BASED APPROACH FOR INFORMATION RETRIEVAL FROM HTML DOCUMENTS USING...A SEMANTIC BASED APPROACH FOR INFORMATION RETRIEVAL FROM HTML DOCUMENTS USING...
A SEMANTIC BASED APPROACH FOR INFORMATION RETRIEVAL FROM HTML DOCUMENTS USING...
 
A semantic based approach for information retrieval from html documents using...
A semantic based approach for information retrieval from html documents using...A semantic based approach for information retrieval from html documents using...
A semantic based approach for information retrieval from html documents using...
 
Virtuoso -- The Prometheus of RDF
Virtuoso -- The Prometheus of RDFVirtuoso -- The Prometheus of RDF
Virtuoso -- The Prometheus of RDF
 
R programming
R programmingR programming
R programming
 
AUTOMATIC CONVERSION OF RELATIONAL DATABASES INTO ONTOLOGIES: A COMPARATIVE A...
AUTOMATIC CONVERSION OF RELATIONAL DATABASES INTO ONTOLOGIES: A COMPARATIVE A...AUTOMATIC CONVERSION OF RELATIONAL DATABASES INTO ONTOLOGIES: A COMPARATIVE A...
AUTOMATIC CONVERSION OF RELATIONAL DATABASES INTO ONTOLOGIES: A COMPARATIVE A...
 
Introduction To Pentaho Kettle
Introduction To Pentaho KettleIntroduction To Pentaho Kettle
Introduction To Pentaho Kettle
 

Similar to Modern PHP RDF toolkits: a comparative study

Rdf Processing Tools In Java
Rdf Processing Tools In JavaRdf Processing Tools In Java
Rdf Processing Tools In JavaDicusarCorneliu
 
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_API_Java_Stefan_Apostoaie
RDF_API_Java_Stefan_ApostoaieRDF_API_Java_Stefan_Apostoaie
RDF_API_Java_Stefan_Apostoaieiosstef
 
State of the Semantic Web
State of the Semantic WebState of the Semantic Web
State of the Semantic WebIvan Herman
 
Publishing Linked Data 3/5 Semtech2011
Publishing Linked Data 3/5 Semtech2011Publishing Linked Data 3/5 Semtech2011
Publishing Linked Data 3/5 Semtech2011Juan Sequeda
 
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
 
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
 
Incubating Apache Linda (ApacheCon Europe 2012)
Incubating Apache Linda (ApacheCon Europe 2012)Incubating Apache Linda (ApacheCon Europe 2012)
Incubating Apache Linda (ApacheCon Europe 2012)Sergio Fernández
 
LOD(Linked Open Data) Recommendations
LOD(Linked Open Data) RecommendationsLOD(Linked Open Data) Recommendations
LOD(Linked Open Data) RecommendationsMyungjin Lee
 
RDF APIs for .NET Framework
RDF APIs for .NET FrameworkRDF APIs for .NET Framework
RDF APIs for .NET FrameworkAdriana Ivanciu
 
The Best of Both Worlds: Unlocking the Power of (big) Knowledge Graphs with S...
The Best of Both Worlds: Unlocking the Power of (big) Knowledge Graphs with S...The Best of Both Worlds: Unlocking the Power of (big) Knowledge Graphs with S...
The Best of Both Worlds: Unlocking the Power of (big) Knowledge Graphs with S...Gezim Sejdiu
 
Corrib.org - OpenSource and Research
Corrib.org - OpenSource and ResearchCorrib.org - OpenSource and Research
Corrib.org - OpenSource and Researchadameq
 
RDFa Introductory Course Session 3/4 Why RDFa
RDFa Introductory Course Session 3/4 Why RDFaRDFa Introductory Course Session 3/4 Why RDFa
RDFa Introductory Course Session 3/4 Why RDFaPlatypus
 
Sigma EE: Reaping low-hanging fruits in RDF-based data integration
Sigma EE: Reaping low-hanging fruits in RDF-based data integrationSigma EE: Reaping low-hanging fruits in RDF-based data integration
Sigma EE: Reaping low-hanging fruits in RDF-based data integrationRichard Cyganiak
 
Triplestore and SPARQL
Triplestore and SPARQLTriplestore and SPARQL
Triplestore and SPARQLLino Valdivia
 

Similar to Modern PHP RDF toolkits: a comparative study (20)

.Net and Rdf APIs
.Net and Rdf APIs.Net and Rdf APIs
.Net and Rdf APIs
 
Rdf Processing Tools In Java
Rdf Processing Tools In JavaRdf Processing Tools In Java
Rdf Processing Tools In Java
 
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_API_Java_Stefan_Apostoaie
RDF_API_Java_Stefan_ApostoaieRDF_API_Java_Stefan_Apostoaie
RDF_API_Java_Stefan_Apostoaie
 
State of the Semantic Web
State of the Semantic WebState of the Semantic Web
State of the Semantic Web
 
Publishing Linked Data 3/5 Semtech2011
Publishing Linked Data 3/5 Semtech2011Publishing Linked Data 3/5 Semtech2011
Publishing Linked Data 3/5 Semtech2011
 
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
 
Tutorial Linked APIs
Tutorial Linked APIsTutorial Linked APIs
Tutorial Linked APIs
 
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
 
Incubating Apache Linda (ApacheCon Europe 2012)
Incubating Apache Linda (ApacheCon Europe 2012)Incubating Apache Linda (ApacheCon Europe 2012)
Incubating Apache Linda (ApacheCon Europe 2012)
 
LOD(Linked Open Data) Recommendations
LOD(Linked Open Data) RecommendationsLOD(Linked Open Data) Recommendations
LOD(Linked Open Data) Recommendations
 
RDF APIs for .NET Framework
RDF APIs for .NET FrameworkRDF APIs for .NET Framework
RDF APIs for .NET Framework
 
The Best of Both Worlds: Unlocking the Power of (big) Knowledge Graphs with S...
The Best of Both Worlds: Unlocking the Power of (big) Knowledge Graphs with S...The Best of Both Worlds: Unlocking the Power of (big) Knowledge Graphs with S...
The Best of Both Worlds: Unlocking the Power of (big) Knowledge Graphs with S...
 
Corrib.org - OpenSource and Research
Corrib.org - OpenSource and ResearchCorrib.org - OpenSource and Research
Corrib.org - OpenSource and Research
 
Why rdfa
Why rdfaWhy rdfa
Why rdfa
 
RDFa Introductory Course Session 3/4 Why RDFa
RDFa Introductory Course Session 3/4 Why RDFaRDFa Introductory Course Session 3/4 Why RDFa
RDFa Introductory Course Session 3/4 Why RDFa
 
Sigma EE: Reaping low-hanging fruits in RDF-based data integration
Sigma EE: Reaping low-hanging fruits in RDF-based data integrationSigma EE: Reaping low-hanging fruits in RDF-based data integration
Sigma EE: Reaping low-hanging fruits in RDF-based data integration
 
Triplestore and SPARQL
Triplestore and SPARQLTriplestore and SPARQL
Triplestore and SPARQL
 
Linked data and voyager
Linked data and voyagerLinked data and voyager
Linked data and voyager
 

More from Marius Butuc

Semantically enriching content using OpenCalais
Semantically enriching content using OpenCalaisSemantically enriching content using OpenCalais
Semantically enriching content using OpenCalaisMarius Butuc
 
IHM et Genie Logiciel: Plasticite
IHM et Genie Logiciel: PlasticiteIHM et Genie Logiciel: Plasticite
IHM et Genie Logiciel: PlasticiteMarius Butuc
 
Interfaces adaptatives. Agents adaptatifs.
Interfaces adaptatives. Agents adaptatifs.Interfaces adaptatives. Agents adaptatifs.
Interfaces adaptatives. Agents adaptatifs.Marius Butuc
 
Next HR - Interviul
Next HR - InterviulNext HR - Interviul
Next HR - InterviulMarius Butuc
 
Next HR - Competentele
Next HR - CompetenteleNext HR - Competentele
Next HR - CompetenteleMarius Butuc
 
Rochi2008 Microwler
Rochi2008 MicrowlerRochi2008 Microwler
Rochi2008 MicrowlerMarius Butuc
 
How to fit 1000 words into an image?
How to fit 1000 words into an image?How to fit 1000 words into an image?
How to fit 1000 words into an image?Marius Butuc
 

More from Marius Butuc (8)

Semantically enriching content using OpenCalais
Semantically enriching content using OpenCalaisSemantically enriching content using OpenCalais
Semantically enriching content using OpenCalais
 
IHM et Genie Logiciel: Plasticite
IHM et Genie Logiciel: PlasticiteIHM et Genie Logiciel: Plasticite
IHM et Genie Logiciel: Plasticite
 
Interfaces adaptatives. Agents adaptatifs.
Interfaces adaptatives. Agents adaptatifs.Interfaces adaptatives. Agents adaptatifs.
Interfaces adaptatives. Agents adaptatifs.
 
Next HR - Interviul
Next HR - InterviulNext HR - Interviul
Next HR - Interviul
 
Next HR - Competentele
Next HR - CompetenteleNext HR - Competentele
Next HR - Competentele
 
Rochi2008 Microwler
Rochi2008 MicrowlerRochi2008 Microwler
Rochi2008 Microwler
 
How to fit 1000 words into an image?
How to fit 1000 words into an image?How to fit 1000 words into an image?
How to fit 1000 words into an image?
 
XHTML 2.0
XHTML 2.0XHTML 2.0
XHTML 2.0
 

Recently uploaded

CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 

Recently uploaded (20)

CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 

Modern PHP RDF toolkits: a comparative study

  • 1. Modern PHP RDF toolkits: a comparative study Marius-Gabriel Butuc Alexandru Ioan Cuza University, Department of Computer Science, Iasi, Romania , mbutuc@info.uaic.ro http://www.infoiasi.ro/ Abstract. This work presents a comparative study on the RDF pro- cessing APIs implemented in PHP. We took into consideration different criteria including, but not limited to: the solution for storing RDF state- ments, the support for SPARQL queries, performance, interoperability, and implementation maturity. Key words: API, PHP, RDF, SPARQL. 1 Introduction Today, we can find a myriad of Web applications that can be considered in- telligent, accomplishing the visionary ideas that were once considered ahead of one’s time. Since we are relaxing more and more the constraint of physicality of information, we now take the challenge of finding the ultimate way of exchang- ing information. Following this path, the Semantic Web development aims at defining the meaning of information and services on the Web, allowing enhanced information discovery, data integration and the automation of a variety of tasks. At the core of the Semantic Web we find the Resource Description Framework (RDF) and all the specifications and tools that provide solutions for structuring and semantically describing data. For the rest of this paper, we will compare the current solutions addressing these perspectives. We will start by discussing the architecture of a Semantic Web application in Section 2, briefly browse the history of the PHP toolkits developed so far in Section 3 and continue by comparing the two main pure- PHP RDF application programming interfaces (API) today. 2 Architecture of a Semantic Web Application RDF allows us to model information as statements–sets of triples which can be exchanged over the Web. Believing that a connected Web is a smarter Web, the Semantic Web goal goes far beyond building a web of machine-processable data, aiming at enriching lives through access to information [1]. Given this goal, many companies began developing components of Semantic Web applications both as
  • 2. free software and commercial. The main components that embody a Semantic Web deployment [2] are: – RDF Parser: a system component that reads and interprets the statements from RDF files. A RDF parser can understand one or more serialization formats (e.g., RDF/XML, N3, Turtle, N-Triples etc.). – RDF Serializer: the component that writes the triples to file in one of the several serialization formats. – Scraper: an instrument for extracting structured information from websites. – Converter: an instrument for transforming data from one form (e.g., rela- tional databases) into RDF. – RDF Store: a purpose-built database optimized for the storage and retrieval of triples. It is also called a triplestore and one of its main operations is to merge RDF stores. – RDF Query Engine: brings the ability to retrieve information from the triplestore using a query language, habitually SPARQL. – Inference Engine: frequently integrated with the query engine, it performs inferences according to given inferencing rules. – Application Interface: uses the data from the triplestore in the interaction with users. The relation between these components is depicted in Fig. 1 Fig. 1. The relation between Semantic Web application components [2] 3 Brief History of PHP RDF Toolkits Given the new technologies, two complementary perspectives [3] arose: 1. How can PHP developers benefit from the Semantic Web (technologies)? 2. How can Semantic Web projects benefit from PHP (developers)? Facing this challenge, several new projects emerged developing from the PHP version of Repat RDF parser [4] to battle tested Drupal components and even full blown APIs like ARC and RAP. As we can see in Fig. 2, only some of them
  • 3. Fig. 2. Searching for modern pure-PHP RDF APIs. survived [5], while there are still parts of the Semantic Web big picture that are not within reach for PHP developers (e.g., Description Logic reasoners). For the rest of this work we only focus only on ARC RDF Classes for PHP [6] and RAP: RDF API for PHP [7] because those APIs provide most of the com- ponents of a Semantic Web application, as detailed in Fig. 3. Fig. 3. Components implemented in both Semantic Web APIs
  • 4. 4 ARC vs. RAP RAP is a Semantic Web toolkit for PHP developers. RAP started as an open source project at the Freie Universit¨t Berlin in 2002 and has been extended a with internal and external code contributions since then. The motivation behind ARC [3] was the need for a set of tools that are easy to combine with existing software, in contrast with contemporary toolkits that had non-standard extensions. There was a need for supporting the already existing Web 2.0 data formats (e.g., microformats, JSON, Atom, RSS2), for a toolkit that was light-weight and optimized for PHP. Thereby, ARC uses object- oriented code for its components and methods, but the processed data structures consist of simple associative arrays, which leads to faster operations and less memory consumption. Also, as of June 2008, ARC’s structures are aligned with the Talis platform. 4.1 API-Paradigm Both solutions offer Statement-centric and Resource-centric APIs, but RAP goes one level further, offering an Ontology-centric API in extension to the Resource- centric one. 4.2 RDF Parser/Serializer RAP supports RDF/XML, N-Triples, N3, TriX, GRDDL and RSS/ATOM, while ARC has both generic and specific parsers for RDF/XML, Turtle, N-Triples, RSS 2.0, SPOG or HTML and can only serialize in RDF/XML, RDF/JSON, Turtle and N-Triples. 4.3 Triplestore and Query Engine Both toolkits offer in-memory and database storage. While ARC only supports MySQL as RDBMS, RAP supports any ADOdb compliant databases (30+). Even if both solutions support SPARQL, here ARC takes the lead, supporting SPARQL+ which is a subset of the SPARQL Update [8]. A protocol-compliant endpoint class which can be used for HTTP-based data access as well as a client for remote SPARQL endpoints is delivered by both APIs. 4.4 Licence Both toolkits are Free Open Source Software, RAP being distributed under LGPL and ARC under GPL + W3C Licence.
  • 5. 5 Conclusions We can use both APIs servers running PHP5 as well as PHP4, but after test- ing, the ARC toolkit proves to be more focused on core tasks (e.g., parsing RDF/XML) thus providing better performance. Still, this performance comes to the cost of lacking functionality, especially compared to RAP which delivers from the essential reasoning support (e.g., RDFS and some OWL Rules) till a GUI for managing database-backed RDF models, or a graph visualization mod- ule, and an in-depth documentation for all features. While RAP stagnates at version 0.9.6 since February 2006, ARC enjoy a more effervescent development and community, the latest ARC2 release dating November 2009. As a bottom line, it’s best to master them both and to use one or the other depending on your projects requirements. References 1. Davis, I.: If you love something... set it free. http://slidesha.re/haCax (2009) at Code4Lib. 2. Allemang, D., Hendler, J.: Semantic Web for the Working Ontologist: Effective Modeling in RDFS and OWL. Morgan Kaufmann (2008) 3. Nowack, B.: RDF and SPARQL for PHP Developers. http://slidesha.re/eHQtN (2009) at New York Semantic Web Meetup. 4. ***: PHP XML Classes. http://phpxmlclasses.sourceforge.net/ (July 2002) 5. Bergman, M.: Sweet Tools (Sem Web). http://www.mkbergman.com/new-version-sweet-tools-sem-web/ (2009) 6. ***: Easy RDF and SPARQL for LAMP systems—ARC RDF classes for PHP. http://arc.semsol.org/ (November 2009) 7. ***: RAP—RDF API for PHP V0.9.6. http://www4.wiwiss.fu-berlin.de/bizer/rdfapi/index.html (2009) 8. W3C: SPARQL Update. http://www.w3.org/Submission/SPARQL-Update/ 9. Argerich, L.: Parsing RDF documents using PHP (2002) An introduction to the RDF XML syntax and how to parse RDF documents using the PHP version of Repat. 10. Beckett, D.: Dave Beckett’s RDF Resource Guide. http://planetrdf.com/guide/ (September 2005) 11. Bizer, C., Westphal, D.: Developers guide to semantic web toolkits for different programming languages. Technical report, Freie Universit¨t Berlin (2007) a http://www.wiwiss.fu-berlin.de/suhl/bizer/toolkits/. 12. Buraga, S.: Managementul datelor RDF. SPARQL. Technical report, Alexandru Ioan Cuza University Iasi (2009) , http://profs.info.uaic.ro/~busaco/teach/courses/wade/presentations/ web04ManagementulDatelorRDF-SPARQL.pdf. 13. Oldakowski, R., Bizer, C., Westphal, D.: RAP: RDF API for PHP. Technical report, Freie Universit¨t Berlin (2005) a http://www.semanticscripting.org/SFSW2005/papers/Oldakowski-RAP.pdf.
  • 6. 14. Davis, I.: 30 minute guide to RDF and Linked Data. http://slidesha.re/oEUTQ (2009) at Code4Lib. 15. ***: PEAR Package Information: RDF. http://phpxmlclasses.sourceforge.net/ (September 2004) 16. ***: SemanticWebTools—ESW Wiki. http://esw.w3.org/topic/SemanticWebTools (November 2009) 17. ***: Tagging. Aggregating. Interlinking. The LOD-way. http://lodr.info/ (November 2009)