You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@clerezza.apache.org by Henry Story <he...@bblfish.net> on 2011/05/20 13:25:04 UTC

Naming Graphs

In another thread I wrote:

>  think it would be interesting to add a method for getting the graph name, btw, null if there is none


Equality
--------

So as Reto pointed out this could bring up an issue of what the equality criterion of two graphs are. 

Currently the equality function is inherited from java.util.AbstractCollection which just verified that all members internally are the same. (Btw, that looks like something one should be careful about: calculating identity of large graphs seems a bit dangerous)

(I think that's why there is a TripleCollection which does not define equality.)

So there are a few answers one could have.
 - two graphs are equal if their names are the same
 - two graphs are equal if their statements are the same

With statements based equality it is already clear that that will depend on whether inferencing is enabled or not, and it could change as more information is available for inferencing.

I wonder where graph equality is used at all, as it seems like a difficult to define matter.

Use Cases
---------

  From a graph be able to find meta data about it easily: who said it, where when, is the  current graph up to date?

  When fetching a graph from TcProvider with methods such as 

  tc.getGraph("http://xmlns.com/foaf/knows") 

  have the returned graph indicate the proper name of the graph where that object is defined. That makes it easier to automate spiders. 

 (not so sure but as a thought: It could allow for a very strict quasi identity criterion, that could be easy to calculate: 
two graphs are the same  if
  the objects are the same
  or the names are the same and the hashes of all their statements are the same
 )

Henry
 
Social Web Architect
http://bblfish.net/


Re: Naming Graphs

Posted by Reto Bachmann-Gmuer <re...@trialox.org>.
On Fri, May 20, 2011 at 1:25 PM, Henry Story <he...@bblfish.net> wrote:
> In another thread I wrote:
>
>>  think it would be interesting to add a method for getting the graph name, btw, null if there is none
>
>
> Equality
> --------
>
> So as Reto pointed out this could bring up an issue of what the equality criterion of two graphs are.
>
> Currently the equality function is inherited from java.util.AbstractCollection which just verified that all members internally are the same. (Btw, that looks like something one should be careful about: calculating identity of large graphs seems a bit dangerous)

No, there are different identity criteria for Graphs and MGraphs, look
at their apis. And yes, graph is isomorphism is NP-hard so for big
graphs with many bnodes it may take forever.

>
> (I think that's why there is a TripleCollection which does not define equality.)
>
> So there are a few answers one could have.
>  - two graphs are equal if their names are the same
currently a graph has all the names that were ever given to it, that
is any name that was ever given to an isomorphic triple collection
implementing graph.

>  - two graphs are equal if their statements are the same
by that you mean isomorphic?

>
> With statements based equality it is already clear that that will depend on whether inferencing is enabled or not, and it could change as more information is available for inferencing.
>
> I wonder where graph equality is used at all, as it seems like a difficult to define matter.
It is defined very precisely and it is used.

>
> Use Cases
> ---------
>
>  From a graph be able to find meta data about it easily: who said it, where when, is the  current graph up to date?
>
>  When fetching a graph from TcProvider with methods such as
>
>  tc.getGraph("http://xmlns.com/foaf/knows")
>
>  have the returned graph indicate the proper name of the graph where that object is defined. That makes it easier to automate spiders.
>
>  (not so sure but as a thought: It could allow for a very strict quasi identity criterion, that could be easy to calculate:
> two graphs are the same  if
>  the objects are the same
>  or the names are the same and the hashes of all their statements are the same
>  )
the names are the same if and only if the graphs are isomorphic,

Reto

>
> Henry
>
> Social Web Architect
> http://bblfish.net/
>
>