Go here: http://www.openanzo.org/projects/openanzo/wiki
Look for the Anzo.JS Development Guide
hope this helps,
-Rouben Meschian
> --
> You received this message because you are currently subscribed to the "OpenAnzo" group.
>
> To post to this group, send email to open...@googlegroups.com
> To unsubscribe from this group, send email to openanzo-u...@googlegroups.com
>
> For more options, visit this group at http://groups.google.com/group/openanzo?hl=en
I'm glad you were able to get going with openanzo. Please post
document discrepancies here and we will try to update the docs as soon
as we can.
Thanks for you interest in openanzo,
-Rouben
When I create a local replica ... Does it persist between browser
sessions? No. You can simply re-download the graph by calling
getReplicaGraph. Where is it stored? Graphs are stored on the server,
then downloaded and stored in a local quad store. Just in browser
memory? Yes, the cache is in the browser mem.
If you get a replica graph using the getReplicaGraph method it is
synced with the server. A copy is downloaded and cached locally but
it stays in sync with the server (if the server copy changes so will
the local cache). After you make changes you can send them back up to
the server. All this stuff is in the docs.
- Could we write a pair of functions (using a browser plugin) to
serialize and deserialize graphs to/from local storage? - Sure you
can...just do a graph.find() and store those stmts wherever you want
- Which client APIs only work on graphs that have been saved to the
server? -The methods that are on the AnzoClient are the ones that deal
with the server
- What obvious problems are there with this approach? - with what approach?
In a Browser - does each tab have its own replica cache? - yes
Can we place the JS code in a browser extension and connect to a
specific server? (it seems to just connect back to where it came from,
not sure how to tell it to connect to a specific server). -Not sure
what you mean, read the docs on the AnzoClient.js API on how to
connect to a server.
Is anyone building a C++ client library? -Not that i know of
Are graph names scoped by user? -not sure what you mean by scoped...we
have role based access control if that's what u mean
- How does the access control work? Is the granularity a context? a
statement? -it's at a named graph level...the metadata graph of each
graph says what roles have what access
- Is the access control documented? -yes, but i'm not sure if we
pushed it out onto the openanzo wiki...it may still be internal. i'll
see what's going on with that
On 12/15/2010 2:54 PM, Michael McIntosh wrote:
> The two main documentation problems I've found so far are:
> - The 2nd param in getReplicaGraph seems to default to "false", not
> "true" as is documented. At least, the only way I was able to get it to
> work was to explicitly provide the parameter set to true.
> - The getMetadataGraph function does not exist. I was able to figure out
> how to work around it by looking at the js files.
The API documentation is written in an abstract way. Each language
implementation of the API tries to abide by the conventions of that
language, so in JavaScript, it's a metadataGraph property rather than a
getMetadataGraph method.
> I have an initial set of questions:
>
> When I create a local replica ... Does it persist between browser
> sessions?
No. It does not.
> Where is it stored? Just in browser memory?
Correct. When using the JavaScript API (a.k.a Anzo.js), the replica
contents are in browser memory.
> - Could we write a pair of functions (using a browser plugin) to
> serialize and deserialize graphs to/from local storage?
It's certainly possible, yes. The Java client API has experimented in
the past with persistent storage of the replicas using embedded RDBs
like Derby.
> - Which client APIs only work on graphs that have been saved to the server?
I'm pretty sure there aren't any APIs you can call on a graph object
that only work on server-backed graphs or only work on straight memory
graphs.
If you just want to work completely in memory, without having a graph
backed by the server, the typical object you instantiate is the
anzo.rdf.NamedGraph object. If you instead want to be able to commit the
graph to the server you obtain a graph from a logged-in AnzoClient
instance with the getReplicaGraph method. The getReplicaGraph returns
instances of the anzo.client.ClientGraph class. The anzo.rdf.NamedGraph
class and anzo.client.ClientGraph class both implement all of the same
graph methods (as defined by the anzo.rdf.INamedGraph interface). The
only exception to that is that an anzo.client.ClientGraph has a
metadataGraph property. That property is for the metadata graph which
holds metadata about the graph like access control, etc.
The main difference between graphs just held in memory
(anzo.rdf.NamedGraph) and graphs backed by the server
(anzo.client.ClientGraph) is just in behavior. It's just in the fact
that graphs backed by the server the graphs can be persisted whch gives
you various capabilities. For example, you can send SPARQL queries to
the server which look at those graphs, you can subscribe to
notifications when other applications change the graph on the server, etc.
> - What obvious problems are there with this approach?
I'm not sure what approach you are talking about. Do you mean the idea
of persisting the client replicas? There aren't any obvious problems,
just challenges to ensure you can efficiently make use of the data
you've persisted. In particular, if a graph changes while the user is
not using the app, when the user returns the graph should be
synchronized efficiently. A naive approach is to throw out the replica
in that case but the Anzo server's replication service can help you
obtain just the differences that have changed. The naive approach That
is enough for many situations. But for the replication approach the
challenge is just that it means tying in at a lower level in the API
than for the naive approach.
If security is a concern, then that is another challenge. You need to
protect the persisted replicas appropriately across users.
> In a Browser - does each tab have its own replica cache?
Yes.
> Can we place the JS code in a browser extension and connect to a
> specific server? (it seems to just connect back to where it came from,
> not sure how to tell it to connect to a specific server).
That sounds possible. The JavaScript API can connect only to the server
where it came from due to typical same-origin/cross-domain browser
restrictions. You may also have some luck playing with some of the new
Cross-Origin Resource Sharing functionality in some browsers as well
(http://www.w3.org/TR/cors/)
> Is anyone building a C++ client library?
Not that we know of. But there is a .NET implementation of the client
API (written in C#) called Anzo.NET that you can download.
> Are graph names scoped by user?
No. Named Graph URIs are global on the server.
> - How does the access control work? Is the granularity a context? a
> statement?
Granularity is a context (a.k.a. a named graph). Access control works by
setting statements in a named graph's metadata graph.
For example, for a named graph with URI: ex:MyGraph, the metadata graph
would contain statements such as (in TTL syntax):
@prefix ex: <http://example.org/> .
@prefix anzo: <http://openanzo.org/ontologies/2008/07/Anzo#> .
ex:MyGraph anzo:canBeReadyBy ex:User1 ;
anzo:canBeReadBy ex:User1 ;
anzo:canBeAddedToBy ex:User1 ;
anzo:canBeRemovedFromBy ex:User1 ;
.
Writing those statements is how you control access. The URI of the
logged in user can be found in the AnzoClient object's 'userUri' property.
canBeAddedToBy means adding triples to the graph, canBeRemovedFromBy
means removing triples from the graph, canBeReadBy means reading the
triples in the graph.
The metadata graph is also useful for provenance information which the
server records such as the version number of the graph, the user which
created and when, the user which last modified it and when.
Have you setup the Anzo Command Line Interface? It's a great way to
browse around to learn about what's in a metadata graph. For example, to
view a graphs data as well as its metadata graph, I could do:
anzo get -m http://example.org/MyGraph
See http://www.openanzo.org/projects/openanzo/wiki/CommandLineInterface
> - Is the access control documented?
> - How do we manage users? Can we integrate OAuth?
Users in Anzo are determined by an LDAP directory. You can set it up to
connect to an existing one. By default, Anzo uses an embedded one. When
Anzo is running, you should be able to connect to it using an LDAP
client like JXplorer. Connect on port 31389 with user DN:
uid=admin,ou=system
password:
secret
at least that's the default config on the downloaded server I believe.
You can use that to manage users. But in a real deployment, you should
be using a real LDAP server rather than the embedded one.
> Can App Server work with a load balancing solution?
It should be able to but you'll need session affinity to the server. And
you should also consider that the Anzo.js implementation is based around
comet long-polling techniques so the load balancer will need to be able
to handle that well (that is, not close connections held open a long
time, handle many simultaneous open connections well, etc.)
> On Wed, Dec 15, 2010 at 11:49 AM, Rouben Meschian <rmes...@gmail.com
> <mailto:rmes...@gmail.com>> wrote:
>
> Hi Michael,
>
> I'm glad you were able to get going with openanzo. Please post
> document discrepancies here and we will try to update the docs as soon
> as we can.
>
> Thanks for you interest in openanzo,
> -Rouben
>
> On Wed, Dec 15, 2010 at 8:40 AM, Michael McIntosh <mmci...@acm.org
> <mailto:mmci...@acm.org>> wrote:
> > Rouben,
> > Thanks for responding. I've gone through that and gotten it
> working. I've
> > found a few places where the documentation didn't match the
> implementation.
> > Should I send that information to someone specific or just post
> it here?
> > Regards,
> > Mike
> >
> > On Tue, Dec 14, 2010 at 1:59 PM, Rouben Meschian
> <rmes...@gmail.com <mailto:rmes...@gmail.com>>
> > wrote:
> >>
> >> Hi Mike,
> >>
> >> Go here: http://www.openanzo.org/projects/openanzo/wiki
> >> Look for the Anzo.JS Development Guide
> >>
> >> hope this helps,
> >> -Rouben Meschian
> >>
> >> On Tue, Dec 14, 2010 at 9:06 AM, Michael McIntosh
> >> <mike.g....@gmail.com <mailto:mike.g....@gmail.com>>
> wrote:
> >> > Hi Open Anzo Team,
> >> >
> >> > I am evaluating Open Anzo for use in a project. I have
> successfully
> >> > downloaded and started the Application Server. I am struggling
> to find
> >> > documentation for the JavaScript client API setup. I have
> searched the
> >> > archives and seen mention of a tutorial, but haven't found it. Is
> >> > there a .js script file I need to include? Is there a browser
> >> > extension/DLL?
> >> >
> >> > Regards,
> >> > Mike McIntosh
> >> >
> >> > --
> >> > You received this message because you are currently subscribed
> to the
> >> > "OpenAnzo" group.
> >> >
> >> > To post to this group, send email to open...@googlegroups.com
> <mailto:open...@googlegroups.com>
> >> > To unsubscribe from this group, send email to
> >> > openanzo-u...@googlegroups.com
> <mailto:openanzo-u...@googlegroups.com>
> >> >
> >> > For more options, visit this group at
> >> > http://groups.google.com/group/openanzo?hl=en
> >>
> >> --
> >> You received this message because you are currently subscribed
> to the
> >> "OpenAnzo" group.
> >>
> >> To post to this group, send email to open...@googlegroups.com
> <mailto:open...@googlegroups.com>
> >> To unsubscribe from this group, send email to
> >> openanzo-u...@googlegroups.com
> <mailto:openanzo-u...@googlegroups.com>
> >>
> >> For more options, visit this group at
> >> http://groups.google.com/group/openanzo?hl=en
> >
> > --
> > You received this message because you are currently subscribed to the
> > "OpenAnzo" group.
> >
> > To post to this group, send email to open...@googlegroups.com
> <mailto:open...@googlegroups.com>
> > To unsubscribe from this group, send email to
> > openanzo-u...@googlegroups.com
> <mailto:openanzo-u...@googlegroups.com>
> >
> > For more options, visit this group at
> > http://groups.google.com/group/openanzo?hl=en
>
> --
> You received this message because you are currently subscribed to
> the "OpenAnzo" group.
>
> To post to this group, send email to open...@googlegroups.com
> <mailto:open...@googlegroups.com>
> To unsubscribe from this group, send email to
> openanzo-u...@googlegroups.com
> <mailto:openanzo-u...@googlegroups.com>
>
> For more options, visit this group at
> http://groups.google.com/group/openanzo?hl=en
>
>
> --
> You received this message because you are currently subscribed to the
> "OpenAnzo" group.
>
> To post to this group, send email to open...@googlegroups.com
> To unsubscribe from this group, send email to
> openanzo-u...@googlegroups.com
>
> For more options, visit this group at
> http://groups.google.com/group/openanzo?hl=en
--
Jordi Albornoz Mulligan
Founding Engineer - Cambridge Semantics
jo...@cambridgesemantics.com
(617) 401-7321
I wonder if it would be viable to serialize the cached in memory quad store (perhaps using Json) and hold this as a javascript in the the browser extension and then inject that into new pages as needed? Another option, depending on the implementation of the browser extension, might be to re-implement the current replica store to run in the extension and then inject JavaScript into the pages that can access that shared replica store.
Kindest regards, Sean
--
Sean Martin,
Founder & CTO, Cambridge Semantics Inc.
email/XMPP: se...@cambridgesemantics.com
phone: +1 617 606 3411
You should be able to just set an absolute URI for 'location' in the
properties you give the AnzoClient constructor. See the documentation
for the constructor in the code:
http://www.openanzo.org/projects/openanzo/browser/openanzo/trunk/org.openanzo.js/src/main/resources/docroot/anzo/client/AnzoClient.js#L64
You may want to download the code as there are documentation comment
blocks in many of the methods.
You can checkout the code from SVN with a command like:
svn co http://svn.openanzo.org/svn/openanzo/openanzo/trunk/org.openanzo.js/
> Most of the graphs that I will want to access from the scripts that run
> on most pages are shared generic/read-only (or write very rarely)
> graphs. But some of them are large and there are quite a few. The graphs
> that are frequently modified are usually user specific, though some are
> shared.
>
> In order to cut down on the data transfer needed for the graphs to be
> avialable to the scripts running on each page, I'd like to cache them
> locally. Since I have a browser extension that can access local storage
> (in the browser or otherwise), I am considering options for caching.
Could you get away with just using a single AnzoClient connection that
belongs to the plugin? Then the replica would be part of the JavaScript
plugin's memory world and if you can simply get the injected JavaScript
to communicate with the plugin to do the operations on the page's
behalf, then the replicas will be shared by all pages. Could that be
enough? Or do you really need to persist them to disk?
> Presumably I could create a function like getReplicaGraph that tries to
> load the graph from local storage before trying to get it from the
> server. If it is loaded from the server, its obvious that the
> replication logic will work correctly. If its loaded from disk I am not
> sure how to let the replication framework know that it exists and should
> be treated like a local replica that might need updating. I also suspect
> I need to be careful not to just create a local graph and add statements
> from those on disk or the replication logic might see those as new
> statements and add them to the graph on the server, again.
>
> Any advice derived from prior experimentations with persisting graphs
> locally would be appreciated.
The getReplicaGraph wrapper approach that you suggest is likely a good
start. I would suggest that your wrapper would check if a graph exists
in your persisted store and, if so, it should check the version number
on the graph's metadata graph that's stored in your store. Then it
should send a simple request to the server to see if the graph exists
AND what its version number is. If it exists and it's the same version
as your persisted version, then you can use your persisted one. If it
exists but it's a different version, then wipe your persisted one and
retrieve the latest version from the server.
A request to check if a graph exists and what it's version number is
would look something like this:
dojo.require("anzo.client.Vocabulary");
dojo.require("anzo.utils.UriGenerator");
var anzoClient = // .. initialize AnzoClient
var myGraphUri = "http://example.org/MyGraph";
var metadataGraphUri =
anzo.utils.UriGenerator.getMetadataGraphUri(myGraphUri);
var statements = anzoClient.serverFind(
myGraphUri,
anzo.client.Vocabulary.revisionProperty,
null,
metadataGraphUri);
You should also subscribe to graph add and remove notifications and
apply those changes to your persisted version. You can subscribe to
notifications using dojo.connect on the graph object's 'statementsAdded'
and 'statementsRemoved' methods.
> <mailto:rmes...@gmail.com <mailto:rmes...@gmail.com>>> wrote:
>
> Hi Michael,
>
> I'm glad you were able to get going with openanzo. Please post
> document discrepancies here and we will try to update the
> docs as soon
> as we can.
>
> Thanks for you interest in openanzo,
> -Rouben
>
> On Wed, Dec 15, 2010 at 8:40 AM, Michael McIntosh
> <mmci...@acm.org <mailto:mmci...@acm.org>
> <mailto:mmci...@acm.org <mailto:mmci...@acm.org>>> wrote:
> > Rouben,
> > Thanks for responding. I've gone through that and gotten it
> working. I've
> > found a few places where the documentation didn't match the
> implementation.
> > Should I send that information to someone specific or just post
> it here?
> > Regards,
> > Mike
> >
> > On Tue, Dec 14, 2010 at 1:59 PM, Rouben Meschian
> <rmes...@gmail.com <mailto:rmes...@gmail.com>
> <mailto:rmes...@gmail.com <mailto:rmes...@gmail.com>>>
>
> > wrote:
> >>
> >> Hi Mike,
> >>
> >> Go here: http://www.openanzo.org/projects/openanzo/wiki
> >> Look for the Anzo.JS Development Guide
> >>
> >> hope this helps,
> >> -Rouben Meschian
> >>
> >> On Tue, Dec 14, 2010 at 9:06 AM, Michael McIntosh
> >> <mike.g....@gmail.com
> <mailto:mike.g....@gmail.com>
> <mailto:mike.g....@gmail.com
> <mailto:mike.g....@gmail.com>>>
>
> wrote:
> >> > Hi Open Anzo Team,
> >> >
> >> > I am evaluating Open Anzo for use in a project. I have
> successfully
> >> > downloaded and started the Application Server. I am struggling
> to find
> >> > documentation for the JavaScript client API setup. I have
> searched the
> >> > archives and seen mention of a tutorial, but haven't found
> it. Is
> >> > there a .js script file I need to include? Is there a browser
> >> > extension/DLL?
> >> >
> >> > Regards,
> >> > Mike McIntosh
> >> >
> >> > --
> >> > You received this message because you are currently subscribed
> to the
> >> > "OpenAnzo" group.
> >> >
> >> > To post to this group, send email to
> open...@googlegroups.com <mailto:open...@googlegroups.com>
> <mailto:open...@googlegroups.com
> <mailto:open...@googlegroups.com>>
>
> >> > To unsubscribe from this group, send email to
> >> > openanzo-u...@googlegroups.com
> <mailto:openanzo-u...@googlegroups.com>
> <mailto:openanzo-u...@googlegroups.com
> <mailto:openanzo-u...@googlegroups.com>>
>
> >> >
> >> > For more options, visit this group at
> >> > http://groups.google.com/group/openanzo?hl=en
> >>
> >> --
> >> You received this message because you are currently subscribed
> to the
> >> "OpenAnzo" group.
> >>
> >> To post to this group, send email to
> open...@googlegroups.com <mailto:open...@googlegroups.com>
> <mailto:open...@googlegroups.com
> <mailto:open...@googlegroups.com>>
>
> >> To unsubscribe from this group, send email to
> >> openanzo-u...@googlegroups.com
> <mailto:openanzo-u...@googlegroups.com>
> <mailto:openanzo-u...@googlegroups.com
> <mailto:openanzo-u...@googlegroups.com>>
>
> >>
> >> For more options, visit this group at
> >> http://groups.google.com/group/openanzo?hl=en
> >
> > --
> > You received this message because you are currently
> subscribed to the
> > "OpenAnzo" group.
> >
> > To post to this group, send email to
> open...@googlegroups.com <mailto:open...@googlegroups.com>
> <mailto:open...@googlegroups.com
> <mailto:open...@googlegroups.com>>
>
> > To unsubscribe from this group, send email to
> > openanzo-u...@googlegroups.com
> <mailto:openanzo-u...@googlegroups.com>
> <mailto:openanzo-u...@googlegroups.com
> <mailto:openanzo-u...@googlegroups.com>>
>
> >
> > For more options, visit this group at
> > http://groups.google.com/group/openanzo?hl=en
>
> --
> You received this message because you are currently
> subscribed to
> the "OpenAnzo" group.
>
> To post to this group, send email to
> open...@googlegroups.com <mailto:open...@googlegroups.com>
> <mailto:open...@googlegroups.com
> <mailto:open...@googlegroups.com>>
>
> To unsubscribe from this group, send email to
> openanzo-u...@googlegroups.com
> <mailto:openanzo-u...@googlegroups.com>
> <mailto:openanzo-u...@googlegroups.com
> <mailto:openanzo-u...@googlegroups.com>>
>
>
> For more options, visit this group at
> http://groups.google.com/group/openanzo?hl=en
>
>
> --
> You received this message because you are currently subscribed
> to the
> "OpenAnzo" group.
>
> To post to this group, send email to open...@googlegroups.com
> <mailto:open...@googlegroups.com>
> To unsubscribe from this group, send email to
> openanzo-u...@googlegroups.com
> <mailto:openanzo-u...@googlegroups.com>
>
> For more options, visit this group at
> http://groups.google.com/group/openanzo?hl=en
>
>
>
> --
> Jordi Albornoz Mulligan
> Founding Engineer - Cambridge Semantics
> jo...@cambridgesemantics.com <mailto:jo...@cambridgesemantics.com>
Sure.
> Do the communications between
> client and server flow over ports other than 80 and 443?
The JavaScript client (Anzo.js) only uses HTTP to communicate. So by
default it'll stick to 80 and 443 but, of course, you can use alternate
ports in the location like 8080, etc.
It sticks to just HTTP over some port.
The Java and .NET clients communicate via a long-lived TCP connection
that carries JMS messages (using one of the various wire format
incarnations for JMS).
> Can the server
> be extended to deal with other data sources (in addition to the Quad
> store DB)?
Yes.
For example, at Cambridge Semantics we've created a data source
implementation for LDAP and some other sources.
This involves writing a Java Open Anzo data source implementation which
essentially implements the basic operations like retrieving a graph,
writing to a graph (if applicable), etc. It also is where the concept of
what actually is a 'graph' in your datasource is defined.
> <mailto:jo...@cambridgesemantics.com
> Jordi Albornoz Mulligan
> Founding Engineer - Cambridge Semantics
> jo...@cambridgesemantics.com
> <mailto:jo...@cambridgesemantics.com>
> <mailto:jo...@cambridgesemantics.com
No. It may work but the preferred embedded-style database at this point
is H2.
> On Tue, Dec 28, 2010 at 12:21 PM, Michael McIntosh <mmci...@acm.org
> <mailto:mmci...@acm.org>> wrote:
>
> All of the examples and docs I've found for the Command Line Client
> seem to show it running on same machine as server. Is it possible to
> configure it to talk to a server running on another machine?
>
> Regards,
> Mike McIntosh
>
> On Mon, Dec 20, 2010 at 5:38 PM, Jordi Albornoz Mulligan
> <jo...@cambridgesemantics.com <mailto:jo...@cambridgesemantics.com>>
> Jordi Albornoz Mulligan
> Founding Engineer - Cambridge Semantics
> jo...@cambridgesemantics.com
> <mailto:jo...@cambridgesemantics.com>
> <mailto:jo...@cambridgesemantics.com
> <mailto:jo...@cambridgesemantics.com>>
> <mailto:jo...@cambridgesemantics.com
> <mailto:jo...@cambridgesemantics.com>
> <mailto:jo...@cambridgesemantics.com
>Also, are there any tools that can be used to add/manage users in the LDAP or do I need to right something using the LDAP API?
Jexplorer works well http://jxplorer.org/
Use the following config:
Host: localhost
Port: 31389
Protocol LDAP V3
Base DN: <leave this field empty>
Level: User + Password
User DN: uid=admin,ou=system
Hi Mike,
Just a tip that might help reduce typos like this in the future. There
is an object with properties for these URIs "well-known" URIs already.
To use it do:
dojo.require("anzo.client.Vocabulary");
at the start of your component and then you can reference the properties as:
anzo.client.Vocabulary.canBeReadByProperty
anzo.client.Vocabulary.canBeAddedToByProperty
etc.
I find it useful to do something like:
var vocab = anzo.client.Vocabulary;
vocab.canBeReadByProperty
See the .../anzo/client/Vocabulary.js in the source for the properties
available.
There are also a few other vocabulary files you can find in
.../anzo/rdf/vocabulary.
For example:
dojo.require("anzo.rdf.vocabulary.RDF");
dojo.require("anzo.rdf.vocabulary.RDFS");
anzo.rdf.vocabulary.RDF.type
anzo.rdf.vocabulary.RDFS.label
etc.
>> <b...@cambridgesemantics.com <mailto:b...@cambridgesemantics.com>>
>>> <http://openanzo.org/metadataGraphs%28http%3A%2F%2Fexample.org%2Fgraph1>)
>>> background.html:553Meatadata Statement:
>>> http://example.org/graph1,
>>> http://openanzo.org/ontologies/2008/07/Anzo#lastModifiedByUser,
>>> http://openanzo.org/system/internal/sysadmin
>>> background.html:553Meatadata Statement:
>>> http://example.org/graph1,
>>> http://openanzo.org/ontologies/2008/07/Anzo#uuid,
>>> http://openanzo.org/namedGraphUUID/revisioned/0d6da7ef-abb3-45bb-abd7-acea484ae00a
>>> background.html:553Meatadata Statement:
>>> http://example.org/graph1,
>>> http://openanzo.org/ontologies/2008/07/Anzo#persisted,
>>> true
>>> background.html:553Meatadata Statement:
>>> http://example.org/graph1,
>>> http://openanzo.org/ontologies/2008/07/Anzo#modified,
>>> 2011-01-07T20:32:41.488Z
>>> background.html:553Meatadata Statement:
>>> http://example.org/graph1,
>>> http://openanzo.org/ontologies/2008/07/Anzo#hasMetadataGraph,
>>> http://openanzo.org/metadataGraphs(http%3A%2F%2Fexample.org%2Fgraph1
>>> <http://openanzo.org/metadataGraphs%28http%3A%2F%2Fexample.org%2Fgraph1>)
>>> <http://openanzo.org/metadataGraphs%28http%3A%2F%2Fexample.org%2Fgraph1%29>
>>> Meatadata Statement: http://example.org/graph1,
>>> http://openanzo.org/ontologies/2008/07/Anzo#lastModifiedByUser,
>>> http://openanzo.org/system/internal/sysadmin
>>> Meatadata Statement: http://example.org/graph1,
>>> http://openanzo.org/ontologies/2008/07/Anzo#uuid,
>>> http://openanzo.org/namedGraphUUID/revisioned/0d6da7ef-abb3-45bb-abd7-acea484ae00a
>>> Meatadata Statement: http://example.org/graph1,
>>> http://openanzo.org/ontologies/2008/07/Anzo#persisted, true
>>> Meatadata Statement: http://example.org/graph1,
>>> http://openanzo.org/ontologies/2008/07/Anzo#modified,
>>> 2011-01-07T20:32:41.488Z
>>> Meatadata Statement: http://example.org/graph1,
>>> http://openanzo.org/ontologies/2008/07/Anzo#hasMetadataGraph,
>>> http://openanzo.org/metadataGraphs(http%3A%2F%2Fexample.org%2Fgraph1)
>>> <http://openanzo.org/metadataGraphs%28http%3A%2F%2Fexample.org%2Fgraph1%29>
>>>> open...@googlegroups.com <mailto:open...@googlegroups.com>
>>>> To unsubscribe from this group, send email to
>>>> openanzo-u...@googlegroups.com
>>>> <mailto:openanzo-u...@googlegroups.com>
>>>>
>>>> For more options, visit this group at
>>>> http://groups.google.com/group/openanzo?hl=en
>>>
>>> --
>>> You received this message because you are currently
>>> subscribed to the "OpenAnzo" group.
>>>
>>> To post to this group, send email to
>>> open...@googlegroups.com <mailto:open...@googlegroups.com>
>>> To unsubscribe from this group, send email to
>>> openanzo-u...@googlegroups.com
>>> <mailto:openanzo-u...@googlegroups.com>
>>>
>>> For more options, visit this group at
>>> http://groups.google.com/group/openanzo?hl=en
>>>
>>>
>>> --
>>> You received this message because you are currently
>>> subscribed to the "OpenAnzo" group.
>>>
>>> To post to this group, send email to
>>> open...@googlegroups.com <mailto:open...@googlegroups.com>
>>> To unsubscribe from this group, send email to
>>> openanzo-u...@googlegroups.com
>>> <mailto:openanzo-u...@googlegroups.com>
>>>
>>> For more options, visit this group at
>>> http://groups.google.com/group/openanzo?hl=en
>>
>> --
>> You received this message because you are currently subscribed
>> to the "OpenAnzo" group.
>>
>> To post to this group, send email to open...@googlegroups.com
>> <mailto:open...@googlegroups.com>
>> To unsubscribe from this group, send email to
>> openanzo-u...@googlegroups.com
>> <mailto:openanzo-u...@googlegroups.com>
>>
>> For more options, visit this group at
>> http://groups.google.com/group/openanzo?hl=en
>>
>>
>> --
>> You received this message because you are currently subscribed to
>> the "OpenAnzo" group.
>>
>> To post to this group, send email to open...@googlegroups.com
>> <mailto:open...@googlegroups.com>
>> To unsubscribe from this group, send email to
>> openanzo-u...@googlegroups.com
>> <mailto:openanzo-u...@googlegroups.com>
>>
>> For more options, visit this group at
>> http://groups.google.com/group/openanzo?hl=en
>
> --
> You received this message because you are currently subscribed to
> the "OpenAnzo" group.
>
> To post to this group, send email to open...@googlegroups.com
> <mailto:open...@googlegroups.com>
> To unsubscribe from this group, send email to
> openanzo-u...@googlegroups.com
> <mailto:openanzo-u...@googlegroups.com>
>
> For more options, visit this group at
> http://groups.google.com/group/openanzo?hl=en
>
>
> --
> You received this message because you are currently subscribed to the
> "OpenAnzo" group.
>
> To post to this group, send email to open...@googlegroups.com
> To unsubscribe from this group, send email to
> openanzo-u...@googlegroups.com
>
> For more options, visit this group at
> http://groups.google.com/group/openanzo?hl=en
--