franz inc logo  
  download learning center franz inc search franz inc resources franz inc          

allegrograph
racer
tbc
services
support
  Learning Center
  Documentation
  Updates
     Info
  FAQ
about

RSS Feeds

AllegroServe at opensource.franz.com

AGSNAGenerators.java

package com.franz.ag.examples;

import com.franz.ag.*;

public class AGSNAGenerators {

    /**
     * Demonstrates some basics of using generators in a Social Network.
     * 
     * @param args unused
     * @throws AllegroGraphException
     */
    public static void main(String[] args) throws AllegroGraphException {
        // Connect to server, which must already be running.
        AllegroGraphConnection ags = new AllegroGraphConnection();
        try {
            ags.enable();
        } catch (Exception e) {
            throw new AllegroGraphException("Server connection problem", e);
        }

        // Create a fresh triple-store.
        AllegroGraph ts = ags.renew("snagenerators", AGPaths.TRIPLE_STORES);
        
        // Register namespaces
        ts.registerNamespace("ex", "http://example.org/");
        
        // Load a small graph of data
        AGUtils.loadNTriplesWithTiming(ts, AGPaths.dataSources("sna-doublediamond.nt"));
        
        // Get an SNA extension instance for this store to work with SNA features 
        SNAExtension sna = ts.getSNAExtension();
        
        // Register an objects-of generator
        Object[] parts = new Object[2];
        parts[0] = "objects-of";
        parts[1] = "!ex:to";
        sna.registerGenerator("to-objects", parts);
        
        // Register a subjects-of generator
        parts[0] = "subjects-of";
        parts[1] = "!ex:to";
        sna.registerGenerator("to-subjects", parts);
        
        // Register an undirected generator
        parts[0] = "undirected";
        parts[1] = "!ex:to";
        sna.registerGenerator("to-undirected", parts);
        
        // Define a group of actors
        String[] group = {"!ex:a","!ex:b","!ex:c","!ex:d","!ex:e","!ex:f","!ex:g","!ex:h"};
        
        // And the list of generators
        String[] generators = {"to-objects","to-subjects","to-undirected"};
        
        // Show the nodal degrees of each node with respect to each generator 
        for (int i=0;i<group.length;i++) {
            for (int j=0;j<generators.length;j++){
                long nodalDegree = sna.getNodalDegree(group[i], generators[j]);
                System.out.println("Nodal Degree of " + group[i] + " using " + generators[j] + " is " + nodalDegree);
            }
        }

        // Show the nodal neighbors of each node with respect to each generator
        for (int i=0;i<group.length;i++) {
            for (int j=0;j<generators.length;j++){
                UPI[] nodalNeighbors = sna.getNodalNeighbors(group[i], generators[j]);
                System.out.println("Nodal Neighbors of " + group[i] + " using " + generators[j] + " are " 
                        + AGUtils.upiArrayToString(ts,nodalNeighbors));
            }
        }

        // Close the store and disconnect from the server.
        ts.closeTripleStore();
        ags.disable();
    }

}

Up | Next

 

© 2008 Franz Inc - Privacy Statement
[ Consulting Services | Franz | TopQuadrant | Racer Systems ]