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/