ARC - RDF and SPARQL for PHP developers
Published 16 years ago by James Simmons
ARC is a lightweight, SPARQL-enabled RDF system for mainstream Web projects. It is written in PHP and has been optimized for shared (or performance- or privilege-limited) Web environments. ARC facilitates the integration of RDF and SPARQL into PHP/MySQL frameworks.
ARC is a very well documented project, which I think is important for its success. Their documentation is clear, concise, and provides plenty of inline sample code to examine as you read and learn.
ARC is distributed under the W3C® Software License so it's free. The community surrounding ARC is small, but said to be growing. On the community page a notice states that a mailing list will be available soon.
Current features and highlights:
- Runs on almost any hosted Web server
- All you need is PHP (4.3 or higher) and MySQL (4.0.18 or higher)
- SPARQL support
- Basic SELECT, CONSTRUCT, ASK, and DESCRIBE queries including nested OPTIONALs, simple UNIONs, and REGEX filters on variables.
- Convenient API
- Each method can be called via an easy-to-use programming interface. The API takes care of including and calling the required sub-components.
- Various result formats
- JSON (+JSONP/JSONI), XML, COUNT, RDF/XML, Turtle/N3.
- Relatively fast
- ARC works around the PHP performance bottleneck by pushing as much of the processing as possible to MySQL. Although ARC uses mainly object-oriented code, the processed data (result set rows, resource descriptions, triples, etc.) are kept close to native PHP objects (in other words: ARC uses low-memory arrays instead of custom object instances). The impact of using PHP is not too huge, ARC's scalability can be increased to a large extent by tuning MySQL and adjusting a number of configuration parameters (e.g. buffers for bulk loading) in ARC.
- Easy to bundle with existing PHP/MySQL software
- ARC does not rely on global variables, constants, or other practices which usually cause integration problems. The different (sub-)components are kept as small as possible, only immediately required code is loaded into memory. Database tables use a customizable prefix.
About the author
Trackback URL for this entry:
http://www.semanticfocus.com/blog/tr/id/730914/
Spam protection by Akismet
Post a comment
Recently Commented Blog Entries