Code Search for Developers
 
 
  

LoadAFriend.java from Texai at Krugle


Show LoadAFriend.java syntax highlighted

/*
 * LoadAFriend.java
 *
 * Created on December 19, 2006, 10:22 PM
 *
 * Description: Loads a Friend instance.
 *
 * Copyright (C) 2006 Stephen L. Reed.
 *
 * This program is free software; you can redistribute it and/or modify it under the terms
 * of the GNU General Public License as published by the Free Software Foundation; either
 * version 2 of the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License along with this program;
 * if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 */

package org.texai.kb.persistence.sample;

import java.io.File;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import net.sf.ehcache.CacheManager;
import org.apache.log4j.Logger;
import org.openrdf.model.URI;
import org.openrdf.model.Value;
import org.openrdf.repository.Repository;
import org.openrdf.repository.RepositoryException;
import org.openrdf.repository.sail.SailRepository;
import org.openrdf.sail.nativerdf.NativeStore;
import org.texai.kb.persistence.RDFEntityManager;
import org.texai.util.TexaiException;


/**
 *
 * @author reed
 */
public final class LoadAFriend {
  
  /** the log4j logger */
  private static final Logger LOGGER = Logger.getLogger(PersistANewFriend.class.getName());
  
  /** the RDF entity manager */
  private RDFEntityManager rdfEntityManager;
  
  /** the friend entity id */
  private String friendId;
  
  /**
   * Creates a new instance of LoadAFriend.
   */
  public LoadAFriend() {
    super();
  }
  
  /** Initializes this application. */
  public void initialize() {
    getClass().getClassLoader().setDefaultAssertionStatus(true);  // optional
    final File dataDirectory = new File(System.getProperties().getProperty("user.home"));
    LOGGER.info("accessing the Sesame2 repository in " + dataDirectory.toString());
    final String indices = "spoc,posc";
    final Repository repository = new SailRepository(new NativeStore(dataDirectory, indices));
    try {
      repository.initialize();
    } catch (final RepositoryException ex) {
      throw new TexaiException(ex);
    }
    rdfEntityManager = new RDFEntityManager(repository);
    LOGGER.info("clearing the Sesame2 repository");
    rdfEntityManager.clear();
  }
  
  /** Creates and persists a Friend instance. */
  public void createAndPersistAFriend() {
    rdfEntityManager.setAutoCommit(false);
    // populate the Friend
    final String name = "Stephen Reed";
    final String birthday = "09-20";
    final String gender = "male";
    final Set<Object> thingsMade = new HashSet<Object>();
    thingsMade.add(rdfEntityManager.getValueFactory().createURI("http://texai.org"));
    final String firstName = "Stephen";
    final String familyName = "Reed";
    final Date dateOfBirth = (new GregorianCalendar(1951, 9, 20, 0, 0, 0)).getTime();
    final Friend friend = new Friend(
            name,
            birthday,
            gender,
            thingsMade,
            firstName,
            familyName,
            dateOfBirth);
    
    // persist the RDF entity and commit the transaction
    rdfEntityManager.persist(friend);
    friendId = friend.getAgentId();
    rdfEntityManager.commit();
  }
  
  /** Loads a persisted Friend instance. */
  public void loadAPersistedFriend() {
    // load via an iterator
    final Iterator friend_iter = rdfEntityManager.rdfEntityIterator(Friend.class);
    final Friend friend1 = (Friend) friend_iter.next();
    LOGGER.info("loaded via iterator: " + friend1);
    
    // load via friend id
    final URI friendURI = rdfEntityManager.getValueFactory().createURI(friendId);
    final Friend friend2 = (Friend) rdfEntityManager.find(Friend.class, friendURI);
    LOGGER.info("loaded via URI: " + friendId + " --> " + friend2);
    
    // load via identifying property value
    final URI predicate = rdfEntityManager.getValueFactory().createURI("http://xmlns.com/foaf/0.1/name");
    final Value value = rdfEntityManager.getValueFactory().createLiteral("Stephen Reed");
    final List<Object> friends = rdfEntityManager.find(predicate, value, Friend.class);
    assert friends.size() == 1 : "friends must have size 1";
    final Friend friend3 = (Friend) friends.get(0);
    LOGGER.info("loaded via an identifying property: " + value.toString() + " --> " + friend3);
  }
  
  /** Finalizes this application. */
  public void finalization() {
    CacheManager.getInstance().shutdown();
    rdfEntityManager.close();
    LOGGER.info("LoadAFriend completed");
  }
  
  
  /** Executes this application.
   *
   * @param args the command line arguments, which are not used
   */
  
  public static void main(final String[] args) {
    final LoadAFriend loadAFriend = new LoadAFriend();
    loadAFriend.initialize();
    loadAFriend.createAndPersistAFriend();
    loadAFriend.loadAPersistedFriend();
    loadAFriend.finalization();
  }
  
}




See more files for this project here

Texai

Texai is an chatbot that intelligently seeks to acquire knowledge and friendly behaviors.

Project homepage: http://sourceforge.net/projects/texai
Programming language(s): Java,Shell Script,XML
License: other

  Agent.java
  Friend.java
  LoadAFriend.java
  PersistANewFriend.java
  Person.java
  RemoveAFriend.java
  UpdateAFriend.java