RDF Storage and Retrieval with YARS

Prototype Fact Sheet, 30 June 2005

This version:
http://sw.deri.org/2005/03/diprdf/FactSheet-20050630
Latest version:
http://sw.deri.org/2005/03/diprdf/FactSheet
Previous version:
...
Authors:
Andreas Harth
Editors:
Andreas Harth

Copyright © 2005 Andreas Harth. All Rights Reserved.


1 Availability and Contacts

Version: 0.1, 30 June 2005.

Download: http://sw.deri.org/2004/06/yars/dist/yars-current.war (Server) http://sw.deri.org/2004/06/yars/dist/yars-current.jar (Client)

Source control: Available from Subversion at http://sw.deri.org/svn/sw/2004/06/yars/.

Contact person: Andreas Harth, andreas.harth@deri.org

2 Purpose and Functionality

YARS is a data store for RDF in Java. YARS uses [Notation 3] as a way to encode facts and queries. The current version supports tree-shaped datalog queries with one shared variable. The interface for interacting with YARS is HTTP (GET, PUT, and DELETE) and built upon the REST (Representational State Transfer) principle. YARS supports keywords searches, and will have content-negotiatible result formats (RDF/N3, XML, and HTML).

Much more information can be found on the YARS wiki.

Please note that YARS is intented for storage and retrieval of RDF, which offers a somewhat higher abstraction layer than the APIs of RDF toolkits such as Jena or Redland.

The current version 0.1 of YARS is a pre-release with limited functionality. The main goal is to provide early access to the APIs and the system and to illustrate the architecture. The core functionality (scalable storage and querying) works, and the access interface via HTTP is stable.

A command line client for Linux has functionality to add data to a YARS instance. Queries can be posed using any web browser. There is also a demonstration client in alpha-quality available to add, delete, and query data from within a GUI.

3 Requirements

Nature: A Web application for use in Servlet containers.

Interfaces (API, Web Services): a HTTP REST interface.

Platform: JDK 1.4.2.

Supported standards:

Required Libraries (OMWG, SDK Cluster, WSMO-related):

Required Libraries (others):

4 Licensing

4.1 YARS License Agreement

Copyright (c) 2004, 2005, Andreas Harth
All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

4.2 Licensing of Third Party Libraries

Licensing of third party libraries and components required for ORDI:

5 Installation and Usage

5.1 Installation of YARS

YARS is distributed as a web application (war) archive for deployment in a servlet container such as Apache Tomcat or Jetty. To deploy YARS, one needs to copy the yars.war file to the web applications directory of the servlet container and restart the servlet container.

An ant build.xml is included in the source distribution and has targets to clean up, build and generate both jar and war files, and deploy the .war

5.2 Usage Example

In the following section we provide a simple walkthrough scenario to illustrate how YARS can be used. $WEBAPP is the web application directory of the servlet container.

  1. copy yars-current.war to $WEBAPP/yars.war and restart your servlet container
  2. start the user interface with a doubleclick on yars-current.jar or with java -jar yars-current.jar
  3. change the URL to your servlet container's URL, select "Add", type in the text as shown in the screenshot, and click Submit
    add data screenshot
  4. point your web browser to your servlet container's URL, issue the query
    @prefix : <http://sw.deri.org/2004/06/yars#> .
    @prefix foaf: <http://xmlns.com/foaf/0.1/> .
    @prefix ql: <http://www.w3.org/2004/12/ql#> .
    
    <> ql:where {
           ?x foaf:name ?n .
    } .
    
  5. the result is a list of variable bindings for ?x and ?n

6 Future Plans

The major driving forces for the future development of YARS:

Below follows a non-exhaustive list of tasks, which fit into the short-term development plans:

The next release of YARS is planned for the end of December 2005.

Appendix A. References

[Notation3] Tim Berners-Lee: An RDF language for the Semantic Web http://www.w3.org/DesignIssues/Notation3.html

[YARS] Andreas Harth, Stefan Decker: Optimized Index Structures for Querying RDF from the Web http://sw.deri.org/2005/02/dexa/yars.pdf

 


Valid XHTML 1.1!

$Date: 2005/06/30 12:40:12 $

webmaster