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

UiPath manufacturing technology benefits and AI overview
UiPath manufacturing technology benefits and AI overviewUiPath manufacturing technology benefits and AI overview
UiPath manufacturing technology benefits and AI overviewDianaGray10
 
Frisco Automating Purchase Orders with MuleSoft IDP- May 10th, 2024.pptx.pdf
Frisco Automating Purchase Orders with MuleSoft IDP- May 10th, 2024.pptx.pdfFrisco Automating Purchase Orders with MuleSoft IDP- May 10th, 2024.pptx.pdf
Frisco Automating Purchase Orders with MuleSoft IDP- May 10th, 2024.pptx.pdfAnubhavMangla3
 
Using IESVE for Room Loads Analysis - UK & Ireland
Using IESVE for Room Loads Analysis - UK & IrelandUsing IESVE for Room Loads Analysis - UK & Ireland
Using IESVE for Room Loads Analysis - UK & IrelandIES VE
 
2024 May Patch Tuesday
2024 May Patch Tuesday2024 May Patch Tuesday
2024 May Patch TuesdayIvanti
 
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on ThanabotsContinuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on ThanabotsLeah Henrickson
 
Introduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptxIntroduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptxFIDO Alliance
 
Revolutionizing SAP® Processes with Automation and Artificial Intelligence
Revolutionizing SAP® Processes with Automation and Artificial IntelligenceRevolutionizing SAP® Processes with Automation and Artificial Intelligence
Revolutionizing SAP® Processes with Automation and Artificial IntelligencePrecisely
 
Cyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptx
Cyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptxCyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptx
Cyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptxMasterG
 
ADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptxADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptxFIDO Alliance
 
(Explainable) Data-Centric AI: what are you explaininhg, and to whom?
(Explainable) Data-Centric AI: what are you explaininhg, and to whom?(Explainable) Data-Centric AI: what are you explaininhg, and to whom?
(Explainable) Data-Centric AI: what are you explaininhg, and to whom?Paolo Missier
 
Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Patrick Viafore
 
ERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctBrainSell Technologies
 
Microsoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - QuestionnaireMicrosoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - QuestionnaireExakis Nelite
 
Portal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russePortal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russe中 央社
 
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...ScyllaDB
 
Design and Development of a Provenance Capture Platform for Data Science
Design and Development of a Provenance Capture Platform for Data ScienceDesign and Development of a Provenance Capture Platform for Data Science
Design and Development of a Provenance Capture Platform for Data SciencePaolo Missier
 
Generative AI Use Cases and Applications.pdf
Generative AI Use Cases and Applications.pdfGenerative AI Use Cases and Applications.pdf
Generative AI Use Cases and Applications.pdfalexjohnson7307
 
Syngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdfSyngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdfSyngulon
 
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptxHarnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptxFIDO Alliance
 
Top 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development CompaniesTop 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development CompaniesTopCSSGallery
 

Recently uploaded (20)

UiPath manufacturing technology benefits and AI overview
UiPath manufacturing technology benefits and AI overviewUiPath manufacturing technology benefits and AI overview
UiPath manufacturing technology benefits and AI overview
 
Frisco Automating Purchase Orders with MuleSoft IDP- May 10th, 2024.pptx.pdf
Frisco Automating Purchase Orders with MuleSoft IDP- May 10th, 2024.pptx.pdfFrisco Automating Purchase Orders with MuleSoft IDP- May 10th, 2024.pptx.pdf
Frisco Automating Purchase Orders with MuleSoft IDP- May 10th, 2024.pptx.pdf
 
Using IESVE for Room Loads Analysis - UK & Ireland
Using IESVE for Room Loads Analysis - UK & IrelandUsing IESVE for Room Loads Analysis - UK & Ireland
Using IESVE for Room Loads Analysis - UK & Ireland
 
2024 May Patch Tuesday
2024 May Patch Tuesday2024 May Patch Tuesday
2024 May Patch Tuesday
 
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on ThanabotsContinuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
 
Introduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptxIntroduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptx
 
Revolutionizing SAP® Processes with Automation and Artificial Intelligence
Revolutionizing SAP® Processes with Automation and Artificial IntelligenceRevolutionizing SAP® Processes with Automation and Artificial Intelligence
Revolutionizing SAP® Processes with Automation and Artificial Intelligence
 
Cyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptx
Cyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptxCyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptx
Cyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptx
 
ADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptxADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptx
 
(Explainable) Data-Centric AI: what are you explaininhg, and to whom?
(Explainable) Data-Centric AI: what are you explaininhg, and to whom?(Explainable) Data-Centric AI: what are you explaininhg, and to whom?
(Explainable) Data-Centric AI: what are you explaininhg, and to whom?
 
Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024
 
ERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage Intacct
 
Microsoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - QuestionnaireMicrosoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - Questionnaire
 
Portal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russePortal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russe
 
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
 
Design and Development of a Provenance Capture Platform for Data Science
Design and Development of a Provenance Capture Platform for Data ScienceDesign and Development of a Provenance Capture Platform for Data Science
Design and Development of a Provenance Capture Platform for Data Science
 
Generative AI Use Cases and Applications.pdf
Generative AI Use Cases and Applications.pdfGenerative AI Use Cases and Applications.pdf
Generative AI Use Cases and Applications.pdf
 
Syngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdfSyngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdf
 
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptxHarnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
 
Top 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development CompaniesTop 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development Companies
 

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)