diff --git a/src/lang/ListTerm.java b/src/lang/ListTerm.java
index b8d51a2..a585308 100644
--- a/src/lang/ListTerm.java
+++ b/src/lang/ListTerm.java
@@ -111,6 +111,18 @@
 
     public String name() { return SYM_DOT.name(); }
 
+    public Term arg(int nth) {
+      Term t = this;
+      int old_nth = nth;
+      while (t.isList() && 0 < nth) {
+        nth--;
+        t = ((ListTerm)t).cdr.dereference();
+      }
+      if (t.isList())
+        return ((ListTerm)t).car;
+      throw new ArrayIndexOutOfBoundsException(old_nth);
+    }
+
     /** Returns the length of this <code>ListTerm</code>. */
     public int length() {
 	int count = 0;
diff --git a/src/lang/StructureTerm.java b/src/lang/StructureTerm.java
index e1d8ea8..c2388e5 100644
--- a/src/lang/StructureTerm.java
+++ b/src/lang/StructureTerm.java
@@ -73,6 +73,8 @@
      */
     public String name(){ return functor.name(); }
 
+    public Term arg(int nth) { return args[nth]; }
+
     public boolean unify(Term t, Trail trail) {
 	t = t.dereference();
 	if (t.isVariable()) {
diff --git a/src/lang/Term.java b/src/lang/Term.java
index cfcd732..0c45e00 100644
--- a/src/lang/Term.java
+++ b/src/lang/Term.java
@@ -105,6 +105,12 @@
     /** @return the name of this Term, if {@link #isStructure()}. */
     public abstract String name();
 
+    /** @return the arity of this Term, if {@link #isStructure()}. */
+	public int arity() { return 0; }
+
+    /** @return get the nth argument of {@link #isStructure()} or {@link #isList()}. */
+    public Term arg(int nth) { throw new ArrayIndexOutOfBoundsException(nth); }
+
     /** 
      * Check whether this object is convertible with the given Java class type.
      * @param type the Java class type to compare with.
