The Open Anzo Project

Semantic Application Middleware

<< Back to AnzoJSDesign

The Open Anzo client API is intended to be very similar across different languages. However, some differences arise due to language conventions or rethinking of the API while implementing in a new language.

Such differences should be documented here so that either they are accepted well-known differences or the other languages can be changed.

  • Java uses delete in the graph interface while JavaScript uses remove. delete is a reserved word in JavaScript so cannot be used as a method name. All APIs should be changed to use remove
  • JavaScript chose to not expose the following classes to the public API. Instead, the functionality that the user would get from these classes was merged directly into methods on the DatasetSerivice or the Graph.
    • DatasetServiceReplication
    • NotificationService
    • ModelService
    • GraphEventHandler
    • TransactionManager
  • JavaScript does not support the synchronous replicate call or the IMMEDIATE_ASYNC replication method. It is fine for JavaScript to differ in this regard.
  • JavaScript does not support synchronous methods in RemoteGraph objects. Methods like getSize, find, etc. require callbacks to be specified.
  • JavaScript removed tracker events since they are believed to not useful and are inefficient. Other languages should have them removed also.
  • JavaScript has an anzo.rdf.Thing object which supports automatically generating methods with friendly names for accessing properties. Java and other more static languages may not support this feature.
  • The JavaScript tracker API is different from the Java API. The Java tracker API has the concept of a trackerSet. Rather than reference counting trackers using trackerHandles, the Java API simply say that a tracker can only be registered /deleted once per trackerSet. If you want to register a tracker twice, then register it in two different trackerSets.
  • The JavaScript client does not support immediate events. That is, events which fire for changes made on the transaction queue but that haven't yet been sent to the server repository. The JavaScript library will only notify events when the changes are made in the repository.

<< Back to AnzoJSDesign

Copyright © 2007 - 2008 OpenAnzo.org