Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

XDI4j 1.1

{{#eclipseproject:technology.higgins|eclipse_custom_style.css}}

Higgins logo 76Wx100H.jpg

Introduction

XDI ("XRI Data Interchange") is a data model and protocol for sharing, linking, and synchronizing data over the Internet ("structured web") and other networks using XML documents and Extensible Resource Identifiers (XRIs). It is being developed by the OASIS XDI Technical Committee.

XDI4j 1.1 is a general-purpose Java library that implements XDI. It also includes a server component for running XDI endpoints.

Applications that use XDI4j 1.1 are:

End-User Perspective

XDI4j is a component for use by other components and applications. It is not used by end-users directly.

Developer Perspective

See XDI4j Tutorials for some examples of how to use the XDI4j library.

See XDI4j Endpoints for a list of sample XDI endpoints that can be talked to via XDI Messaging.

Architecture

The core functionality of XDI4j is to implement the XDI graph model and to allow basic operations on that model. XDI graphs can be stored in memory, in XML files or in a database. Additional functionality includes:

  • (De-)serialization of XDI in all XDI serialization formats
  • XDI messaging
  • An XDI server including a framework for building custom XDI endpoints
  • Versioning support
  • Addressing support
  • Dictionary support

The following diagram outlines how the main components of XDI4j play together:

XDI4j Architecture.png

Building

The XDI4j Higgins project is:

  • plugins/org.eclipse.higgins.xdi4j

This project can be checked out from the Eclipse repository at the following SVN URI:

https://dev.eclipse.org/svnroot/technology/org.eclipse.higgins/trunk/plugins/org.eclipse.higgins.xdi4j

Because of Eclipse restrictions some of the XDI4j third party dependencies cannot be checked into the SVN. These dependencies have to be manually downloaded installed into the lib/ subdirectory after checking out the sources.

Building with GCJ

Some parts of XDI4j can be used from within C and C++. In order to do so, the library needs to be compiled with GCJ. The org.eclipse.higgins.xdi4j project contains a Makefile for the GNU Make utility which can be used to create C++ header files and object files for linking C++ applications with XDI4j. The project also includes a C++ sample application which sends an XDI message to an endpoint.

The following features of XDI4j are not available when built with GCJ:

  • XML as an XDI serialization format
  • XML as an XDI store
  • Hibernate as an XDI store
  • Support for URI and IRI normal forms of XRIs
  • XML messaging target
  • XRD messaging target

Links

  • The XDI RDF Model is the current OASIS TC proposal for an RDF-based data model and addressing format for XDI. This document includes the proposed XDI RDF schema and a number of examples of XDI documents. (Note that it does not yet include the proposed XDI messaging format, which uses XDI documents as message envelopes for other XDI documents.)
  • OASIS XDI TC Wiki
  • Wikipedia page on XDI

Back to the top