Wednesday, September 27, 2006

RDF Net API.

a simple network interface to remote RDF models. There are two sets of functionality: a basic access mechanism that provides query capability to a collection of RDF statements, and an update mechanism where, subject to security constraints (not discussed here), changes to the RDF model can be made. Simple network APIs encourage implementation because of the minimal burden on the implementer. This document also covers are two implementations, one based on SOAP, one based directly on HTTP.

http://www.w3.org/Submission/2003/SUBM-rdf-netapi-20031002/#soap_binding

Comparison of XML-Schema, RDF-Schema and DAML

Comparison of XML (eXtensible Markup Language), RDF (Resource Description Framework), and DAML (DARPA Agent Markup Language) by showing a description and examples of how each language addresses common knowledge representation requirements.

http://www.isi.edu/expect/web/semanticweb/comparison.html

RDF2GO

RDF2GO is an abstraction over triple (and quad) stores. It allows developers to program against rdf2go interfaces and choose or change the implementation later easily.

http://rdf2go.ontoware.org/

A Discussion of the Relationship Between RDF-Schema and UML

This note summarizes the relationship between RDF-Schema and UML, the generic industry standard object-oriented modeling framework for information systems modeling. This note will briefly describe these systems then relate them to each other.

http://www.w3.org/TR/NOTE-rdf-uml/

Tuesday, September 26, 2006

D2R MAP - Database to RDF Mapping Language and Processor

D2R MAP is a declarative language to describe mappings between relational database schemata and OWL/RDFS ontologies. The mappings can be used by a D2R processor to export data from a relational database into RDF.

ShreX: A Comprehensive Solution to the XML-to-Relational Mapping Problem

XML is becoming the predominant data exchange format in a variety of application domains ( supply-chain, scientific data processing, telecommunication infrastructure). By relying on relational storage, XML developers can benefit from a complete set of data management services and from the highly optimized relational query processors. In order to store XML data in a RDBMS, it is necessary first that an XML-to-relational mapping be defined. Once a mapping is selected, XML documents must be appropriately shredded and loaded into the database. Finally, queries over the XML documents must be translated into SQL queries over the mapped relations.
ShreX provides a generic mechanism for specifying mappings, shredding and querying XML documents. The shredding component accepts as inputs an annotated XML Schema and XML documents, and outputs CREATE TABLE statements, and tuples to populate the tables. The system provides a point-and-click (Java-based) GUI to help users perform storage operations and define mappings. The GUI shows visually the correspondence between the XML schema elements and their counterparts in generated relational schema.
ShreX can be used with virtually any relational database. The system was written in Java. Xerces is used to parse and shred XML documents. Shrex has been tested with DB2 and MySQL.

http://www.cse.ogi.edu/ShreX/

Thursday, September 21, 2006

Are triplestores good databases?

A useful post from Adam Bosworth: Where have all the good databases gone. He’s talking in the context of Amazon-size enterprise DBs, which generally means RDBMSs. He lists the three things users of (large) databases tend to ask for:
  1. Dynamic schema
  2. Dynamic partitioning of data across large dynamic numbers of machines
  3. Modern indexing

“Users of databases don’t believe that they are getting any of these three.”

More on http://dannyayers.com/2004/12/30/are-triplestores-good-databases/

Semantic Web Tools..

SPARQL Implementations.

Client Side
SPARQL AJAX Client released Nov 17, 2005 from XMLArmyKnife
SPARQL JavaScript Library, works with SPARQL/JSON-capable servers
OpenLink Virtuoso's Web based SPARQL Client, works with in-built or 3rd party SPARQL Query Services

Query Engines
RDF API for PHP, esp SPARQL support; see V0.93 announcement 16 Jan 2006
ARQ - Implements the SPARQL query language for Jena - License: BSD. Stable releases now part of the Jena distributions (binary, documentation) while continuing development releases as a separate system (code, documentation).
Joseki - Implements the SPARQL protocol - License: BSD. Implements both HTTP and SOAP versions of the SPARQL protocol.
Rasqal - Implements the SPARQL query language for Redland (C) - License: LGPL/GPL2/Apache2.0. Redland Bindings provides interfaces to it in at least perl, php, python, ruby and others. Rasqal demo using the perl interface. PHP query demo
cwm has a --sparql option and --sparqlServer mode sinde Cwm Release 1.1.0rc1 11 Aug 2005
sparql-p, a SPARQL API in Python, distributed as part of RDFLib, version 2.2.2 and higher. This is an updated version of an older version of sparql-p which was a separate package on top of RDFLib. The separate version is now deprecated. An effort to include a parser of the SPARQL query language, with a mapping on sparql-p, has been completed.
SPARQL4J SPARQL JDBC type 4 driver (Release 0.1 out) - License: Apache. See the announcement 2006-03-31
RDFStore (CVS 0.51) from asemantics - License: BSD. See also the SPARQL protocol demo and Zparqler demo and examples
RDF::Query perl module for querying RDF::Core and Redland models with SPARQL and RDQL. - License: Perl (Artistic/GPL). See weblog updates for the project status.
Twinql Common Lisp SPARQL processor by Richard Newman. License: TBD, probably BSDish. See also the twinql demo
SPARQL Engine. License: LGPL. See also the Design for SPARQL engine in Sesame document. Plugs into Sesame and used in SemWeb .NET library.
KAON2 OWL-DL and SWRL inference engine with SPARQL support.
Pellet Complete OWL-DL inference engine with SPARQL support, including for non-distinguished variable. The Web Demo has some SPARQL examples.
Corese Corese stands for Conceptual Resource Search Engine. It is an RDF engine based on Conceptual Graphs (CG). It enables the processing of RDF Schema and RDF statements within the CG formalism, provides a rule engine and a query engine accepting the SPARQL syntax. See discussion of SPARQL features and extensions supported. non-commercial use license to java binaries.
IBM Integrated Ontology Development Toolkit(IODT) support SPARQL query of ontology instances. IODT is a toolkit for ontology-driven development. This toolkit includes EMF Ontolgy Definition Metamodel (EODM), EODM workbench, and an OWL Ontology Repository (named Minerva). The Minerva is a high-performance OWL ontology storage, inference, and query system based on RDBMS and it supports SPARQL query language.
OpenLink Virtuoso supports SPARQL, and SPARQL embedded in SQL, for querying RDF data stored in Virtuoso's Object-Relational Database. In Virtuoso, SPARQL benefits from low-level support in the core engine via features such as; SPARQL aware type casting rules and a dedicated IRI data type. The Virtuoso RDF Triple Store is the fastest developing functionality realm of Virtuoso at the current time. Virtuoso Open Source (license: GPL) and Commercial Editions (version 4.5.2) are now Available.
ARC is "a lightweight, SPARQL-enabled RDF system for mainstream Web projects. It is written in PHP and has been optimized for shared (or otherwise performance- or privilege-limited) Web environments." by appmosphere web applications. License: W3C Software License, API announced on May 12, 2006.
D2R Server, turns relational databases into SPARQL endpoints, based on Joseki
TopQuadrant's TopBraid Composer, is a complete standards-based platform for developing, testing and maintaining Semantic Web applications. Testing, consistency checking and debugging is supported by a bundled version of Pellet.
JRDF comes with a SPARQL GUI and is based on mapping relational operations to RDF. Supports only a subset of SPARQL: PREFIX, pattern matching, UNION, join (.) and OPTIONAL.

Grammars and Parsers for SPARQL
ARQ - Contains a JavaCC grammar sparql.jj
ARC SPARQL Parser - PHP parser for SPARQL by Benjamin Nowack. License: W3C Software License. Builds a structure representing the query from the syntax. Has some limitations: "does not process collections, and it has not been tested against the DAWG test cases yet... the embedded Turtle parser may have some limitations as well." 2005-12-16.
RDFLib's BisonGen-based parser which is implemented as a Python/C extension which builds a library of SPARQL syntax objects.
SPARQL "Endpoints"
These endpoints offer a URI with a SPARQL service that can be accessed using the SPARQL Protocol spec, and return XML and/or JSON.
SPARQLer (see http://sparql.org for a description)
XML Army Knife (see http://xmlarmyknife.org/api/rdf/ for description)
OpenLink Virtuoso (the SPARQL Query Service endpoint for our Live Demo Server).

http://esw.w3.org/topic/SparqlImplementations

Kowari: A Platform for Semantic Web Storage and Analysis

Large-scale Semantic Web applications require large-scale storage of Resource Description Framework (RDF) information and a means to analyze that information via the Web Ontology Language (OWL) in near real time. The Kowari Metastore was designed as a purpose-built RDF database to fulfill this requirement. Kowari provides a scalable, transaction-safe storage infrastructure for RDF statements and an expressive query language for their analysis, with or without the use of a subset of the RDF Schema and/or OWL languages. OWL Lite plus the full cardinality constraints from OWL Full are currently supported via the interactive Tucana Query Language (iTQL) or the Simple Ontology Framework API (SOFA). The native quad-store indexing scheme used in Kowari has been shown to scale to hundreds of millions of RDF statements on a single machine. Kowari is an Open Source project licensed under the Mozilla Public License, version 1.1.

More on: http://www.idealliance.org/proceedings/xtech05/papers/04-02-04/