Hi John, I'm not really sure what you are looking for. Are you looking for
1. identifiers for single statements a.k.a. triples, i.e., node-edge-node parts or 2. identifiers for (sub) graphs,i.e., multiple statements (node-edge-node) that belong together; this can be for example Concise Bounded Descriptions (CBD, [1]), i.e., flat or hierarchical records, or Named Graphs [2] For our datamanagement platform d:swarm [3] we dealt with both issues, i.e., we assign statement identifiers to every (content) relationship (/statement) in our graph in form of a hash and furthermore we are able to divide the graph into multiple named graphs (which are named 'data model' in our domain model). See [4] for an example of how this can be look like. There you can see a single record with a hierarchical structure. In [5] you can see a flat record, whereby a relationship is selected. There you can see the data model identifier (a prefixed URI), a resource identifier (a hash; which is especially important for hierarchical records) and a statement identifier (a hashed UUID). Furthermore, properties at relationships enable us to add further qualified statements, e.g., order or version range. All this is baked into a (experimental) Neo4j Unmanaged Extension [6,7]. Maybe this is something you are looking for, or maybe it helps you to express what you are looking for (at least ;) ). Cheers, Bo [1] https://www.w3.org/Submission/CBD/ [2] https://en.wikipedia.org/wiki/Named_graph [3] https://github.com/dswarm/dswarm-documentation/wiki [4] https://docs.google.com/presentation/d/1Aa_JM8YjSOF3A4LPm0ZuoFWzu5h-NN7VtygAE0WG97Q/pub?start=false&loop=false&delayms=60000#slide=id.g58f97b25d_0_280 [5] https://docs.google.com/presentation/d/1Aa_JM8YjSOF3A4LPm0ZuoFWzu5h-NN7VtygAE0WG97Q/pub?start=false&loop=false&delayms=60000#slide=id.g58f97b25d_0_292 [6] https://github.com/dswarm/dswarm-graph-neo4j [7] https://github.com/dswarm/dswarm-documentation/wiki/Graph-Data-Model On Saturday, March 12, 2016 at 4:39:45 PM UTC+1, John O'Gorman wrote: > > Maybe I can try to clarify my ideas a bit. > > When a cluster of nodes is persistent (the same nodes relate to each other > to, say, uniquely identify an individual person) I would like to be able to > link the cluster without losing the identity of the component nodes. Since > all my individual nodes are potentially reusable I can still connect to > them if a design requires it, but creating a relationship to a cluster > should be similar to doing a join without knowing what other information is > attached. > > Clear as mud? > > > > On Thursday, March 10, 2016 at 12:31:49 PM UTC-7, John O'Gorman wrote: >> >> I am working with a Neo4J model that uses a finite set of Labels based on >> the six interrogatives (Who, What, When, Where, Why and How) and on a >> similarly constrained set of relationships: Is_A, Is_Has, Is_Part_Has, >> Is_Precedent_Has, Is_Equivalent_Has and Is_Property_Has. Since the nature >> of a Relationship in this model uses nodes instead of arbitrary edges (i.e. >> "Lives_In" for the example below, I end up with statements (in pseudo >> Cypher) like the following: >> >> :Person {'Fred Flinstone'} - [:Is_Has] -> :Status {'Resident'} <- >> [:Is_Has} - :Place {'Bedrock'} >> >> My question is: I was wondering if I can assign a unique identifier (or >> a URI) to the statement above in order to reference it (establish a new >> relationship to it) later. >> >> I am thinking it would be a better alternative than hyper-edges. >> >> Thoughts? Other than (WTH is he thinking?) :D >> >> Thanks. >> > -- You received this message because you are subscribed to the Google Groups "Neo4j" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
