##Load graph into memory g = new TinkerGraph() g.loadGraphSON('/Users/lom/Downloads/graph.json')
##Find all activities g.V('concreteType', 'activity').name nActivities = g.V('concreteType', 'activity').count()
##How many entities are there nEntities = g.V.filter{it.concreteType !='activity'}.count()
#What percentage of entities have provenance nActivities/nEntities
##Who is creating these provenance g.V('concreteType', 'activity').property('createdBy').groupCount().cap() g.V('concreteType', 'activity').property('createdBy').groupCount().cap().orderMap(T.incr)
##Get information about an existing entity
g.V('synId', 'syn2246874').name
#Find what it is using
g.V('synId', 'syn2246874').out.map()
#Filter by specific user
g.V('synId', 'syn2246874').out().has('createdBy', T.eq, '372127').out.name
##Find all downstream things derived from this g.V('synId', 'syn2246874').filter({it.out.hasNext()}).as('derived').out().loop('derived'){true}{true}.filter{it.concreteType !='activity'}.name
#A more dependent file g.V('synId', 'syn2534308').filter({it.out.hasNext()}).as('derived').out().loop('derived'){true}{true}.filter{it.concreteType !='activity'}.name
##Find most dependent g.V.as('start').filter({it.out.hasNext()}).as('derived').out().loop('derived'){true}{true}.filter{it.concreteType !='activity'}.property('synId').groupCount().cap()
##Find most used entity in Synapse g.V.as('start').filter({it.in.hasNext()}).as('derived').in().loop('derived'){true}{true}.filter{it.concreteType !='activity'}.property('synId').groupCount().cap().orderMap(T.incr)
##Exclude a project g.V.as('start').filter({it.in.hasNext()}).as('derived').in().loop('derived'){true}{true}.filter{it.concreteType !='activity'}.filter({'benefactorId' !='syn2280661'})property('synId').groupCount().cap().orderMap(T.incr)
##################### ##Recomendation engine ######################
- Find all entities that I have used,
- find others who have used the same
- Determine what else they used
- Give me the top 5 most similar things they used that I didn't use.
g.V('createdBy', '372127').out().as('myActivities').in().in().except('myActivities').out().groupCount().cap().orderMap(T.decr)[0..<5].out.synId
##################### ##Compute primary eigenvector ###################### m = [:]; c = 0; g.V.as('x').out.groupCount(m).loop('x'){c++ < 1000} m.sort{-it.value}