All Downloads are FREE. Search and download functionalities are using the official Maven repository.

jpl.fli.term_t Maven / Gradle / Ivy

Go to download

Sigma knowledge engineering system is an system for developing, viewing and debugging theories in first order logic. It works with Knowledge Interchange Format (KIF) and is optimized for the Suggested Upper Merged Ontology (SUMO) www.ontologyportal.org.

The newest version!
/*This code is copyrighted by Teknowledge (c) 2003.
It is released underthe GNU Public License .
Users ofthis code also consent, by use of this code, to credit Teknowledge in any
writings, briefings,publications, presentations, or other representations of any
software which incorporates, builds on, or uses this code.*/ 

 
package jpl.fli;



//----------------------------------------------------------------------/
// term_t
/**
 * A term_t is a simple class which mirrors the term_t type in
 * the Prolog FLI.  All it really does is hold a term reference,
 * which is an internal representation of a term in the Prolog
 * Engine.
 * 
 * 
* Copyright (C) 1998 Fred Dushin

* * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version.

* * This library 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 Library Public License for more details.

*


* @author Fred Dushin * @version $Revision: 1.1.1.1 $ */ // Implementation notes: // //----------------------------------------------------------------------/ public class term_t extends LongHolder { public static final long UNASSIGNED = -1L; public term_t() { value = UNASSIGNED; } //------------------------------------------------------------------/ // toString /** * This static method converts a term_t, which is assumed to contain * a reference to a *consecutive* list of term_t references to a * String representation of a list of terms, in this case, a comma * separated list. * * @param n the number of consecutive term_ts * @param term0 a term_t whose value is the 0th term_t. */ // Implementation notes: // //------------------------------------------------------------------/ public static String toString( int n, term_t term0 ) { String s = ""; int i; long ith_term_t; for ( i = 0, ith_term_t = term0.value; i < n; ++i, ++ith_term_t ){ term_t term = new term_t(); term.value = ith_term_t; s += term.toString(); if ( i != n - 1 ){ s += ", "; } } return s; } //------------------------------------------------------------------/ // equals /** * Instances of term_ts are stored in Term objects (see jpl.Term), * and these term_ts are in some cases stored in Hashtables. * Supplying this predicate provides the right behavior in Hashtable * lookup (see the rules for Hashtable lookup in java.util).

* * Note. Two term_ts are *not* equal if their values have not * been assigned. (Since Prolog FLI term_ts are unsigned values and * the UNASSIGNED value is -1, this should work). * * @param obj the Object to comapre. * @return true if the supplied object is a term_t instances * and the long values are the same */ // Implementation notes: // //------------------------------------------------------------------/ public boolean equals( Object obj ) { return (obj instanceof term_t) && this.value == ((term_t)obj).value && this.value != UNASSIGNED; } } //345678901234567890123456789012346578901234567890123456789012345678901234567890





© 2015 - 2024 Weber Informatics LLC | Privacy Policy