Skip to main content
Jump to: navigation, search

Difference between revisions of "XDI4j 1.1"

(Introduction)
 
(21 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 +
{{#eclipseproject:technology.higgins|eclipse_custom_style.css}}
 +
[[Image:Higgins_logo_76Wx100H.jpg|right]]
 
==Introduction==
 
==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 [http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=xdi OASIS XDI Technical Committee].
  
XDI ("XRI Data Interchange") is a data model and protocol for sharing, linking, and synchronizing data ("dataweb") over the Internet and other networks using XML documents and Extensible Resource Identifiers (XRIs). It is being developed by the [http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=xdi 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.
  
The Higgins XDI4j component is a general-purpose Java library that implements XDI.
+
Applications that use [[XDI4j 1.1]] are:
 
+
* The [http://higgins.eclipse.org/xdi-validator/XDIValidator XDI Validator].
Applications that use XDI4j are:
+
* The [http://higgins.eclipse.org/xdi-converter/XDIConverter XDI Converter].
 +
* The [http://higgins.eclipse.org/xdi-messenger/XDIMessenger XDI Messenger].
 +
* The Higgins [[Org.eclipse.higgins.as|Attribute Service]].
 +
* The Higgins [[Org.eclipse.higgins.idas.cp.xdi|XDI Context Provider]].
 
* The [http://cds.idschemas.idcommons.net Community Dictionary Service].
 
* The [http://cds.idschemas.idcommons.net Community Dictionary Service].
* The [http://graceland.parityinc.net/xdi-validator/XDIValidator XDI Validator].
+
* The [http://personaldatastore.info PDS Project].
* The [http://graceland.parityinc.net/xdi-converter/XDIConverter XDI Converter].
+
* The [http://graceland.parityinc.net/xdi-messenger/XDIMessenger XDI Messenger].
+
* The Higgins [[IdAS XDI Endpoint]].
+
* The Higgins [[XDI Context Provider]].
+
  
 
==End-User Perspective==
 
==End-User Perspective==
Line 20: Line 22:
  
 
See [[XDI4j Tutorials]] for some examples of how to use the XDI4j library.
 
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===
 
===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:
 
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 the main XDI serialization formats
+
* (De-)serialization of XDI in all XDI serialization formats
 
* XDI messaging
 
* XDI messaging
 
* An XDI server including a framework for building custom XDI endpoints
 
* An XDI server including a framework for building custom XDI endpoints
 
* Versioning support
 
* Versioning support
 
* Addressing support
 
* Addressing support
* Support for specialized XDI constructs such as dictionary, language, type and metadata statements
+
* Dictionary support
  
 
The following diagram outlines how the main components of XDI4j play together:
 
The following diagram outlines how the main components of XDI4j play together:
Line 38: Line 42:
  
 
The XDI4j Higgins project is:
 
The XDI4j Higgins project is:
* nursery/org.eclipse.higgins.xdi4j
+
* plugins/org.eclipse.higgins.xdi4j
  
 
This project can be checked out from the Eclipse repository at the following SVN URI:
 
This project can be checked out from the Eclipse repository at the following SVN URI:
Line 44: Line 48:
 
{| class="wikitable" style="text-align:left; border="1" cellpadding="5" cellspacing="0"   
 
{| class="wikitable" style="text-align:left; border="1" cellpadding="5" cellspacing="0"   
 
|-
 
|-
| https://dev.eclipse.org/svnroot/technology/org.eclipse.higgins/trunk/nursery/org.eclipse.higgins.xdi4j
+
| 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
 
Because of Eclipse restrictions some of the XDI4j third party dependencies cannot be checked into the SVN. These dependencies
have to be manually downloaded from https://camelot.parityinc.net/~msabadello/xdi4j/lib.zip and installed into the '''lib/''' subdirectory after checking out the sources.
+
have to be manually downloaded installed into the '''lib/''' subdirectory after checking out the sources.
  
== See Also ==
+
===Building with GCJ===
* [[Solutions]]
+
 
 +
Some parts of XDI4j can be used from within C and C++. In order to do so, the library needs to be compiled with [http://gcc.gnu.org/java/ GCJ]. The org.eclipse.higgins.xdi4j project contains a Makefile for the [http://www.gnu.org/software/make/ 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 ==
 
== Links ==
* [http://eclipse.org/higgins Higgins Home]
 
 
* [http://www.oasis-open.org/committees/download.php/27004/xdi-rdf-model-v8.pdf 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.)
 
* [http://www.oasis-open.org/committees/download.php/27004/xdi-rdf-model-v8.pdf 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.)
 
* [http://wiki.oasis-open.org/xdi/ OASIS XDI TC Wiki]
 
* [http://wiki.oasis-open.org/xdi/ OASIS XDI TC Wiki]
 
* [http://en.wikipedia.org/wiki/XDI Wikipedia page on XDI]
 
* [http://en.wikipedia.org/wiki/XDI Wikipedia page on XDI]
 +
 +
[[Category:Higgins Solutions]]
 +
[[Category:Higgins Components]]
 +
[[Category:Higgins XDI4j]]

Latest revision as of 08:15, 24 August 2010

{{#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

Copyright © Eclipse Foundation, Inc. All Rights Reserved.