You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by sp...@apache.org on 2015/04/15 19:47:56 UTC

[34/50] incubator-tinkerpop git commit: VertexProperty.Cardinality default is determined by the vendor. If the vendor has a graph shcema, use that cardinality defined it the graph schema. If not, the vendor should use Cardinality.single.

VertexProperty.Cardinality default is determined by the vendor. If the vendor has a graph shcema, use that cardinality defined it the graph schema. If not, the vendor should use Cardinality.single.


Project: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/commit/46683cfc
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/tree/46683cfc
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/diff/46683cfc

Branch: refs/heads/variables
Commit: 46683cfc2f31fb913d56e762e73a820f26117c60
Parents: d86626c
Author: Marko A. Rodriguez <ok...@gmail.com>
Authored: Tue Apr 14 17:19:36 2015 -0600
Committer: Marko A. Rodriguez <ok...@gmail.com>
Committed: Tue Apr 14 17:19:36 2015 -0600

----------------------------------------------------------------------
 CHANGELOG.asciidoc                              |  1 +
 .../peerpressure/PeerPressureVertexProgram.java | 11 +++++----
 .../ranking/pagerank/PageRankVertexProgram.java |  7 +++---
 .../traversal/TraversalVertexProgram.java       |  3 ++-
 .../util/DefaultTraversalSideEffects.java       |  3 ++-
 .../tinkerpop/gremlin/structure/Vertex.java     | 12 ++++++----
 .../io/graphson/LegacyGraphSONReader.java       |  3 ++-
 .../structure/util/batch/BatchGraph.java        |  5 ++++
 .../structure/util/detached/DetachedVertex.java |  5 ++++
 .../util/detached/DetachedVertexProperty.java   |  2 +-
 .../util/reference/ReferenceVertex.java         |  5 ++++
 .../gremlin/structure/util/star/StarGraph.java  | 10 ++++++++
 .../ser/GryoMessageSerializerV1D0Test.java      |  3 ++-
 .../JsonMessageSerializerGremlinV1d0Test.java   |  3 ++-
 .../ser/JsonMessageSerializerV1d0Test.java      |  3 ++-
 .../generator/CommunityGeneratorTest.java       |  3 ++-
 .../process/computer/GraphComputerTest.java     |  6 ++---
 .../decoration/EventStrategyProcessTest.java    |  8 +++----
 .../gremlin/structure/FeatureSupportTest.java   | 24 ++++++++++----------
 .../tinkerpop/gremlin/structure/GraphTest.java  |  4 ++--
 .../tinkerpop/gremlin/structure/IoTest.java     |  6 ++---
 .../gremlin/structure/PropertyTest.java         |  4 ++--
 .../gremlin/structure/TransactionTest.java      | 10 ++++----
 .../gremlin/structure/VertexPropertyTest.java   | 18 +++++++--------
 .../tinkerpop/gremlin/structure/VertexTest.java | 18 +++++++--------
 .../detached/DetachedVertexPropertyTest.java    | 18 +++++++--------
 .../util/detached/DetachedVertexTest.java       |  2 +-
 .../reference/ReferenceVertexPropertyTest.java  | 14 ++++++------
 .../util/reference/ReferenceVertexTest.java     |  3 ++-
 .../structure/io/script/script-input.groovy     |  8 ++++---
 .../gremlin/hadoop/structure/HadoopVertex.java  |  6 ++++-
 .../tinkergraph/structure/TinkerVertex.java     |  5 ++++
 .../structure/TinkerGraphIdManagerTest.java     |  6 ++---
 33 files changed, 144 insertions(+), 95 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/46683cfc/CHANGELOG.asciidoc
----------------------------------------------------------------------
diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index b386d1d..394641c 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -25,6 +25,7 @@ image::http://www.tinkerpop.com/docs/current/images/gremlin-hindu.png[width=225]
 TinkerPop 3.0.0.M9 (NOT OFFICIALLY RELEASED YET)
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
+* `VertexProperty.Cardinality` default is now vendor chosen. If the vendor has not preference, they should use `Cardinality.single`.
 * `Messenger.receiveMessages()` no longer takes a `MessageScope` and thus, consistent behavior between message-passing and message-pulling systems.
 * Removed `back()`-step as `select()`-step provides the same behavior with more intelligent optimizations and `by()`-modulation.
 * Removed `Graph.Helper` method annotation and related infrastructure in tests.

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/46683cfc/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/clustering/peerpressure/PeerPressureVertexProgram.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/clustering/peerpressure/PeerPressureVertexProgram.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/clustering/peerpressure/PeerPressureVertexProgram.java
index 0a64cf1..c9070dd 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/clustering/peerpressure/PeerPressureVertexProgram.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/clustering/peerpressure/PeerPressureVertexProgram.java
@@ -31,6 +31,7 @@ import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__;
 import org.apache.tinkerpop.gremlin.process.traversal.step.util.MapHelper;
 import org.apache.tinkerpop.gremlin.structure.Edge;
 import org.apache.tinkerpop.gremlin.structure.Vertex;
+import org.apache.tinkerpop.gremlin.structure.VertexProperty;
 import org.apache.tinkerpop.gremlin.structure.util.StringFactory;
 import org.apache.tinkerpop.gremlin.util.iterator.IteratorUtils;
 import org.javatuples.Pair;
@@ -130,15 +131,15 @@ public class PeerPressureVertexProgram extends StaticVertexProgram<Pair<Serializ
                 messenger.sendMessage(this.countScope, Pair.with('c', 1.0d));
             } else {
                 double voteStrength = 1.0d;
-                vertex.property(CLUSTER, vertex.id());
-                vertex.property(VOTE_STRENGTH, voteStrength);
+                vertex.property(VertexProperty.Cardinality.single, CLUSTER, vertex.id());
+                vertex.property(VertexProperty.Cardinality.single, VOTE_STRENGTH, voteStrength);
                 messenger.sendMessage(this.voteScope, new Pair<>((Serializable) vertex.id(), voteStrength));
                 memory.and(VOTE_TO_HALT, false);
             }
         } else if (1 == memory.getIteration() && this.distributeVote) {
             double voteStrength = 1.0d / IteratorUtils.reduce(IteratorUtils.map(messenger.receiveMessages(), Pair::getValue1), 0.0d, (a, b) -> a + b);
-            vertex.property(CLUSTER, vertex.id());
-            vertex.property(VOTE_STRENGTH, voteStrength);
+            vertex.property(VertexProperty.Cardinality.single, CLUSTER, vertex.id());
+            vertex.property(VertexProperty.Cardinality.single, VOTE_STRENGTH, voteStrength);
             messenger.sendMessage(this.voteScope, new Pair<>((Serializable) vertex.id(), voteStrength));
             memory.and(VOTE_TO_HALT, false);
         } else {
@@ -148,7 +149,7 @@ public class PeerPressureVertexProgram extends StaticVertexProgram<Pair<Serializ
             Serializable cluster = PeerPressureVertexProgram.largestCount(votes);
             if (null == cluster) cluster = (Serializable) vertex.id();
             memory.and(VOTE_TO_HALT, vertex.value(CLUSTER).equals(cluster));
-            vertex.property(CLUSTER, cluster);
+            vertex.property(VertexProperty.Cardinality.single, CLUSTER, cluster);
             messenger.sendMessage(this.voteScope, new Pair<>(cluster, vertex.<Double>value(VOTE_STRENGTH)));
         }
     }

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/46683cfc/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/ranking/pagerank/PageRankVertexProgram.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/ranking/pagerank/PageRankVertexProgram.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/ranking/pagerank/PageRankVertexProgram.java
index 97529bf..cbd999c 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/ranking/pagerank/PageRankVertexProgram.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/ranking/pagerank/PageRankVertexProgram.java
@@ -31,6 +31,7 @@ import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
 import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__;
 import org.apache.tinkerpop.gremlin.structure.Edge;
 import org.apache.tinkerpop.gremlin.structure.Vertex;
+import org.apache.tinkerpop.gremlin.structure.VertexProperty;
 import org.apache.tinkerpop.gremlin.structure.util.StringFactory;
 import org.apache.tinkerpop.gremlin.util.iterator.IteratorUtils;
 
@@ -129,13 +130,13 @@ public class PageRankVertexProgram extends StaticVertexProgram<Double> {
         } else if (1 == memory.getIteration()) {
             double initialPageRank = 1.0d / this.vertexCountAsDouble;
             double edgeCount = IteratorUtils.reduce(messenger.receiveMessages(), 0.0d, (a, b) -> a + b);
-            vertex.property(PAGE_RANK, initialPageRank);
-            vertex.property(EDGE_COUNT, edgeCount);
+            vertex.property(VertexProperty.Cardinality.single, PAGE_RANK, initialPageRank);
+            vertex.property(VertexProperty.Cardinality.single, EDGE_COUNT, edgeCount);
             messenger.sendMessage(this.incidentMessageScope, initialPageRank / edgeCount);
         } else {
             double newPageRank = IteratorUtils.reduce(messenger.receiveMessages(), 0.0d, (a, b) -> a + b);
             newPageRank = (this.alpha * newPageRank) + ((1.0d - this.alpha) / this.vertexCountAsDouble);
-            vertex.property(PAGE_RANK, newPageRank);
+            vertex.property(VertexProperty.Cardinality.single, PAGE_RANK, newPageRank);
             messenger.sendMessage(this.incidentMessageScope, newPageRank / vertex.<Double>value(EDGE_COUNT));
         }
     }

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/46683cfc/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/TraversalVertexProgram.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/TraversalVertexProgram.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/TraversalVertexProgram.java
index c50e1fd..3fe61c9 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/TraversalVertexProgram.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/TraversalVertexProgram.java
@@ -48,6 +48,7 @@ import org.apache.tinkerpop.gremlin.structure.Edge;
 import org.apache.tinkerpop.gremlin.structure.Element;
 import org.apache.tinkerpop.gremlin.structure.Graph;
 import org.apache.tinkerpop.gremlin.structure.Vertex;
+import org.apache.tinkerpop.gremlin.structure.VertexProperty;
 import org.apache.tinkerpop.gremlin.structure.util.ElementHelper;
 import org.apache.tinkerpop.gremlin.structure.util.StringFactory;
 
@@ -144,7 +145,7 @@ public final class TraversalVertexProgram implements VertexProgram<TraverserSet<
         this.traversal.getSideEffects().setLocalVertex(vertex);
         if (memory.isInitialIteration()) {    // ITERATION 1
             final TraverserSet<Object> haltedTraversers = new TraverserSet<>();
-            vertex.property(HALTED_TRAVERSERS, haltedTraversers);
+            vertex.property(VertexProperty.Cardinality.single, HALTED_TRAVERSERS, haltedTraversers);
 
             if (!(this.traversal.getStartStep() instanceof GraphStep))
                 throw new UnsupportedOperationException("TraversalVertexProgram currently only supports GraphStep starts on vertices or edges");

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/46683cfc/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/DefaultTraversalSideEffects.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/DefaultTraversalSideEffects.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/DefaultTraversalSideEffects.java
index b93185e..fe8f83e 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/DefaultTraversalSideEffects.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/DefaultTraversalSideEffects.java
@@ -21,6 +21,7 @@ package org.apache.tinkerpop.gremlin.process.traversal.util;
 import org.apache.tinkerpop.gremlin.process.traversal.TraversalSideEffects;
 import org.apache.tinkerpop.gremlin.structure.Property;
 import org.apache.tinkerpop.gremlin.structure.Vertex;
+import org.apache.tinkerpop.gremlin.structure.VertexProperty;
 import org.apache.tinkerpop.gremlin.structure.util.StringFactory;
 
 import java.util.Collections;
@@ -171,7 +172,7 @@ public class DefaultTraversalSideEffects implements TraversalSideEffects {
             this.objectMap = property.value();
         } else {
             this.objectMap = new HashMap<>();
-            vertex.property(SIDE_EFFECTS, this.objectMap);
+            vertex.property(VertexProperty.Cardinality.single, SIDE_EFFECTS, this.objectMap);
         }
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/46683cfc/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/Vertex.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/Vertex.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/Vertex.java
index 215cfcb..ca71361 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/Vertex.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/Vertex.java
@@ -40,6 +40,8 @@ public interface Vertex extends Element {
      */
     public static final String DEFAULT_LABEL = "vertex";
 
+    static final Object[] EMPTY_ARGS = new Object[0];
+
     /**
      * Add an outgoing edge to the vertex with provided label and edge properties as key/value pairs.
      * These key/values must be provided in an even number where the odd numbered arguments are {@link String}
@@ -84,11 +86,13 @@ public interface Vertex extends Element {
      */
     @Override
     public default <V> VertexProperty<V> property(final String key, final V value) {
-        return this.property(VertexProperty.Cardinality.single, key, value);
+        return this.property(key, value, EMPTY_ARGS);
     }
 
     /**
-     * Set the provided key to the provided value using {@link VertexProperty.Cardinality#single}.
+     * Set the provided key to the provided value using default {@link VertexProperty.Cardinality} for that key.
+     * The default cardinality can be vendor defined and is usually tied to the graph schema.
+     * If the vendor does not have a preference, then the default cardinality should be {@link VertexProperty.Cardinality#single}.
      * The provided key/values are the properties of the newly created {@link VertexProperty}.
      * These key/values must be provided in an even number where the odd numbered arguments are {@link String}.
      *
@@ -98,9 +102,7 @@ public interface Vertex extends Element {
      * @param <V>       the type of the value of the vertex property
      * @return the newly created vertex property
      */
-    public default <V> VertexProperty<V> property(final String key, final V value, final Object... keyValues) {
-        return this.property(VertexProperty.Cardinality.single, key, value, keyValues);
-    }
+    public <V> VertexProperty<V> property(final String key, final V value, final Object... keyValues);
 
     /**
      * Create a new vertex property.

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/46683cfc/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/LegacyGraphSONReader.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/LegacyGraphSONReader.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/LegacyGraphSONReader.java
index 0404fab..b35a93b 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/LegacyGraphSONReader.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/LegacyGraphSONReader.java
@@ -29,6 +29,7 @@ import org.apache.tinkerpop.gremlin.structure.Direction;
 import org.apache.tinkerpop.gremlin.structure.Edge;
 import org.apache.tinkerpop.gremlin.structure.Graph;
 import org.apache.tinkerpop.gremlin.structure.Vertex;
+import org.apache.tinkerpop.gremlin.structure.VertexProperty;
 import org.apache.tinkerpop.gremlin.structure.io.GraphReader;
 import org.apache.tinkerpop.gremlin.structure.util.batch.BatchGraph;
 import org.apache.tinkerpop.gremlin.structure.util.detached.DetachedEdge;
@@ -199,7 +200,7 @@ public class LegacyGraphSONReader implements GraphReader {
             final Vertex v = g.addVertex(T.id, vertexId);
 
             for (Map.Entry<String, Object> entry : props.entrySet()) {
-                v.property(entry.getKey(), entry.getValue());
+                v.property(VertexProperty.Cardinality.list, entry.getKey(), entry.getValue());
             }
 
             return v;

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/46683cfc/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/batch/BatchGraph.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/batch/BatchGraph.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/batch/BatchGraph.java
index f68e2c1..e156815 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/batch/BatchGraph.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/batch/BatchGraph.java
@@ -449,6 +449,11 @@ public class BatchGraph<G extends Graph> implements Graph {
         }
 
         @Override
+        public <V> VertexProperty<V> property(final String key, final V value, final Object... keyValues) {
+            return getCachedVertex(externalID).property(key, value, keyValues);
+        }
+
+        @Override
         public <V> V value(final String key) throws NoSuchElementException {
             return getCachedVertex(externalID).value(key);
         }

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/46683cfc/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedVertex.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedVertex.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedVertex.java
index 85b1e3a..a4857ef 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedVertex.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedVertex.java
@@ -94,6 +94,11 @@ public class DetachedVertex extends DetachedElement<Vertex> implements Vertex {
     }
 
     @Override
+    public <V> VertexProperty<V> property(final String key, final V value, final Object... keyValues) {
+        throw Element.Exceptions.propertyAdditionNotSupported();
+    }
+
+    @Override
     public <V> VertexProperty<V> property(final VertexProperty.Cardinality cardinality, final String key, final V value, final Object... keyValues) {
         throw Element.Exceptions.propertyAdditionNotSupported();
     }

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/46683cfc/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedVertexProperty.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedVertexProperty.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedVertexProperty.java
index 87b8178..484db13 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedVertexProperty.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedVertexProperty.java
@@ -129,7 +129,7 @@ public class DetachedVertexProperty<V> extends DetachedElement<Property<V>> impl
     }
 
     public static <V> VertexProperty<V> addTo(final Vertex vertex, final DetachedVertexProperty<V> detachedVertexProperty) {
-        final VertexProperty<V> vertexProperty = vertex.property(detachedVertexProperty.key(), detachedVertexProperty.value());
+        final VertexProperty<V> vertexProperty = vertex.property(VertexProperty.Cardinality.list, detachedVertexProperty.key(), detachedVertexProperty.value());
         detachedVertexProperty.properties().forEachRemaining(property -> vertexProperty.property(property.key(), property.value()));
         return vertexProperty;
     }

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/46683cfc/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/reference/ReferenceVertex.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/reference/ReferenceVertex.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/reference/ReferenceVertex.java
index ac57da0..415ca61 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/reference/ReferenceVertex.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/reference/ReferenceVertex.java
@@ -70,6 +70,11 @@ public class ReferenceVertex extends ReferenceElement<Vertex> implements Vertex
     }
 
     @Override
+    public <V> VertexProperty<V> property(final String key, final V value, final Object... keyValues) {
+        throw Element.Exceptions.propertyAdditionNotSupported();
+    }
+
+    @Override
     public <V> VertexProperty<V> property(final VertexProperty.Cardinality cardinality, final String key, final V value, final Object... keyValues) {
         throw Element.Exceptions.propertyAdditionNotSupported();
     }

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/46683cfc/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/star/StarGraph.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/star/StarGraph.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/star/StarGraph.java
index db7251b..9c7385c 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/star/StarGraph.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/star/StarGraph.java
@@ -256,6 +256,11 @@ public final class StarGraph implements Graph {
             return this.addOutEdge(label, inVertex, keyValues);
         }
 
+        @Override
+        public <V> VertexProperty<V> property(final String key, final V value, final Object... keyValues) {
+            return this.property(VertexProperty.Cardinality.single, key, value, keyValues);
+        }
+
         protected Edge addOutEdge(final String label, final Vertex inVertex, final Object... keyValues) {
             List<Edge> outE = this.outEdges.get(label);
             if (null == outE) {
@@ -448,6 +453,11 @@ public final class StarGraph implements Graph {
         }
 
         @Override
+        public <V> VertexProperty<V> property(final String key, final V value, final Object... keyValues) {
+            throw Element.Exceptions.propertyAdditionNotSupported();
+        }
+
+        @Override
         public <V> VertexProperty<V> property(final VertexProperty.Cardinality cardinality, final String key, final V value, final Object... keyValues) {
             throw Element.Exceptions.propertyAdditionNotSupported();
         }

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/46683cfc/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ser/GryoMessageSerializerV1D0Test.java
----------------------------------------------------------------------
diff --git a/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ser/GryoMessageSerializerV1D0Test.java b/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ser/GryoMessageSerializerV1D0Test.java
index a3ea433..978c8a2 100644
--- a/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ser/GryoMessageSerializerV1D0Test.java
+++ b/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ser/GryoMessageSerializerV1D0Test.java
@@ -26,6 +26,7 @@ import org.apache.tinkerpop.gremlin.structure.Compare;
 import org.apache.tinkerpop.gremlin.structure.Edge;
 import org.apache.tinkerpop.gremlin.structure.Graph;
 import org.apache.tinkerpop.gremlin.structure.Vertex;
+import org.apache.tinkerpop.gremlin.structure.VertexProperty;
 import org.apache.tinkerpop.gremlin.structure.util.detached.DetachedEdge;
 import org.apache.tinkerpop.gremlin.structure.util.detached.DetachedVertex;
 import org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerFactory;
@@ -195,7 +196,7 @@ public class GryoMessageSerializerV1D0Test {
         friends.add(5);
         friends.add(map);
 
-        v.property("friends", friends);
+        v.property(VertexProperty.Cardinality.single, "friends", friends);
 
         final List list = IteratorUtils.list(g.vertices());
 

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/46683cfc/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ser/JsonMessageSerializerGremlinV1d0Test.java
----------------------------------------------------------------------
diff --git a/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ser/JsonMessageSerializerGremlinV1d0Test.java b/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ser/JsonMessageSerializerGremlinV1d0Test.java
index 907915f..adf42be 100644
--- a/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ser/JsonMessageSerializerGremlinV1d0Test.java
+++ b/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ser/JsonMessageSerializerGremlinV1d0Test.java
@@ -27,6 +27,7 @@ import org.apache.tinkerpop.gremlin.structure.Edge;
 import org.apache.tinkerpop.gremlin.structure.Graph;
 import org.apache.tinkerpop.gremlin.structure.Property;
 import org.apache.tinkerpop.gremlin.structure.Vertex;
+import org.apache.tinkerpop.gremlin.structure.VertexProperty;
 import org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONTokens;
 import org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerFactory;
 import org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerGraph;
@@ -172,7 +173,7 @@ public class JsonMessageSerializerGremlinV1d0Test {
         friends.add(5);
         friends.add(map);
 
-        v.property("friends", friends);
+        v.property(VertexProperty.Cardinality.single, "friends", friends);
 
         final List list = IteratorUtils.list(graph.vertices());
 

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/46683cfc/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ser/JsonMessageSerializerV1d0Test.java
----------------------------------------------------------------------
diff --git a/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ser/JsonMessageSerializerV1d0Test.java b/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ser/JsonMessageSerializerV1d0Test.java
index 15eb158..c29d892 100644
--- a/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ser/JsonMessageSerializerV1d0Test.java
+++ b/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ser/JsonMessageSerializerV1d0Test.java
@@ -27,6 +27,7 @@ import org.apache.tinkerpop.gremlin.structure.Edge;
 import org.apache.tinkerpop.gremlin.structure.Graph;
 import org.apache.tinkerpop.gremlin.structure.Property;
 import org.apache.tinkerpop.gremlin.structure.Vertex;
+import org.apache.tinkerpop.gremlin.structure.VertexProperty;
 import org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONTokens;
 import org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerFactory;
 import org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerGraph;
@@ -224,7 +225,7 @@ public class JsonMessageSerializerV1d0Test {
         friends.add(5);
         friends.add(map);
 
-        v.property("friends", friends);
+        v.property(VertexProperty.Cardinality.single, "friends", friends);
 
         final Iterable iterable = IteratorUtils.list(g.vertices());
         final String results = SERIALIZER.serializeResponseAsString(ResponseMessage.build(msg).result(iterable).create());

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/46683cfc/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/algorithm/generator/CommunityGeneratorTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/algorithm/generator/CommunityGeneratorTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/algorithm/generator/CommunityGeneratorTest.java
index 7102ce5..08f1bdc 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/algorithm/generator/CommunityGeneratorTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/algorithm/generator/CommunityGeneratorTest.java
@@ -23,6 +23,7 @@ import org.apache.tinkerpop.gremlin.AbstractGremlinTest;
 import org.apache.tinkerpop.gremlin.FeatureRequirementSet;
 import org.apache.tinkerpop.gremlin.structure.Graph;
 import org.apache.tinkerpop.gremlin.structure.Vertex;
+import org.apache.tinkerpop.gremlin.structure.VertexProperty;
 import org.apache.tinkerpop.gremlin.util.StreamFactory;
 import org.apache.tinkerpop.gremlin.util.iterator.IteratorUtils;
 import org.junit.Test;
@@ -198,7 +199,7 @@ public class CommunityGeneratorTest {
                     .edgeProcessor(e -> e.<String>property("data", "test"))
                     .vertexProcessor((v, m) -> {
                         m.forEach(v::property);
-                        v.property("test", "data");
+                        v.property(VertexProperty.Cardinality.single, "test", "data");
                     })
                     .communityDistribution(dist)
                     .degreeDistribution(dist)

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/46683cfc/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/computer/GraphComputerTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/computer/GraphComputerTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/computer/GraphComputerTest.java
index e2708b1..6998017 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/computer/GraphComputerTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/computer/GraphComputerTest.java
@@ -468,7 +468,7 @@ public class GraphComputerTest extends AbstractGremlinProcessTest {
         @Override
         public void execute(final Vertex vertex, final Messenger<Object> messenger, final Memory memory) {
             try {
-                vertex.property("blah", "blah");
+                vertex.property(VertexProperty.Cardinality.single, "blah", "blah");
                 fail("Should throw an IllegalArgumentException");
             } catch (final IllegalArgumentException e) {
                 assertEquals(GraphComputer.Exceptions.providedKeyIsNotAnElementComputeKey("blah").getMessage(), e.getMessage());
@@ -478,7 +478,7 @@ public class GraphComputerTest extends AbstractGremlinProcessTest {
 
             memory.incr("a", 1);
             if (memory.isInitialIteration()) {
-                vertex.property("nameLengthCounter", vertex.<String>value("name").length());
+                vertex.property(VertexProperty.Cardinality.single, "nameLengthCounter", vertex.<String>value("name").length());
                 memory.incr("b", vertex.<String>value("name").length());
             } else {
                 vertex.property(VertexProperty.Cardinality.single, "nameLengthCounter", vertex.<String>value("name").length() + vertex.<Integer>value("nameLengthCounter"));
@@ -750,7 +750,7 @@ public class GraphComputerTest extends AbstractGremlinProcessTest {
 
         @Override
         public void map(final Vertex vertex, final MapEmitter<Integer, Integer> emitter) {
-            vertex.<Integer>property("age").ifPresent(age -> emitter.emit(age,age));
+            vertex.<Integer>property("age").ifPresent(age -> emitter.emit(age, age));
         }
 
         @Override

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/46683cfc/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/EventStrategyProcessTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/EventStrategyProcessTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/EventStrategyProcessTest.java
index 2103582..12b9b15 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/EventStrategyProcessTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/EventStrategyProcessTest.java
@@ -141,7 +141,7 @@ public class EventStrategyProcessTest extends AbstractGremlinProcessTest {
                 .addListener(listener2).create();
 
         final Vertex vSome = graph.addVertex("some", "thing");
-        vSome.property("that", "thing");
+        vSome.property(VertexProperty.Cardinality.single, "that", "thing");
         final GraphTraversalSource gts = create(eventStrategy);
         gts.V().addV("any", "thing").property(VertexProperty.Cardinality.single, "this", "thing").next();
 
@@ -163,7 +163,7 @@ public class EventStrategyProcessTest extends AbstractGremlinProcessTest {
                 .addListener(listener2).create();
 
         final Vertex vSome = graph.addVertex("some", "thing");
-        vSome.property("that", "thing");
+        vSome.property(VertexProperty.Cardinality.single, "that", "thing");
         final GraphTraversalSource gts = create(eventStrategy);
         final Vertex vAny = gts.V().addV("any", "thing").next();
         gts.V(vAny).property(VertexProperty.Cardinality.single, "any", "thing else").next();
@@ -187,7 +187,7 @@ public class EventStrategyProcessTest extends AbstractGremlinProcessTest {
                 .addListener(listener2).create();
 
         final Vertex vSome = graph.addVertex("some", "thing");
-        vSome.property("that", "thing", "is", "good");
+        vSome.property(VertexProperty.Cardinality.single, "that", "thing", "is", "good");
         final GraphTraversalSource gts = create(eventStrategy);
         final Vertex vAny = gts.V().addV("any", "thing").next();
         gts.V(vAny).properties("any").property("is", "bad").next();
@@ -345,7 +345,7 @@ public class EventStrategyProcessTest extends AbstractGremlinProcessTest {
                 .addListener(listener2).create();
 
         final Vertex vSome = graph.addVertex("some", "thing");
-        vSome.property("that", "thing", "is", "good");
+        vSome.property(VertexProperty.Cardinality.single, "that", "thing", "is", "good");
         final GraphTraversalSource gts = create(eventStrategy);
         final Vertex vAny = gts.V().addV("any", "thing").next();
         gts.V(vAny).properties("any").property("is", "bad").next();

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/46683cfc/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/FeatureSupportTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/FeatureSupportTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/FeatureSupportTest.java
index fa98ef0..aac0b52 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/FeatureSupportTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/FeatureSupportTest.java
@@ -285,7 +285,7 @@ public class FeatureSupportTest {
         public void shouldSupportAddVertexPropertyIfItCanBeAdded() throws Exception {
             try {
                 final Vertex v = graph.addVertex();
-                v.property("should", "not-add-property");
+                v.property(VertexProperty.Cardinality.single, "should", "not-add-property");
                 fail(String.format(INVALID_FEATURE_SPECIFICATION, VertexFeatures.class.getSimpleName(), VertexFeatures.FEATURE_ADD_PROPERTY));
             } catch (Exception e) {
                 validateException(Element.Exceptions.propertyAdditionNotSupported(), e);
@@ -624,7 +624,7 @@ public class FeatureSupportTest {
         public void shouldSupportUserSuppliedIdsIfAnIdCanBeAssigned() throws Exception {
             try {
                 final Vertex v = graph.addVertex();
-                v.property("name", "me", T.id, GraphManager.getGraphProvider().convertId(99999943835l, VertexProperty.class));
+                v.property(VertexProperty.Cardinality.single, "name", "me", T.id, GraphManager.getGraphProvider().convertId(99999943835l, VertexProperty.class));
                 fail(String.format(INVALID_FEATURE_SPECIFICATION, VertexFeatures.class.getSimpleName(), VertexPropertyFeatures.FEATURE_USER_SUPPLIED_IDS));
             } catch (Exception ex) {
                 validateException(VertexProperty.Exceptions.userSuppliedIdsNotSupported(), ex);
@@ -638,7 +638,7 @@ public class FeatureSupportTest {
         public void shouldSupportUserSuppliedIdsOfTypeString() throws Exception {
             try {
                 final Vertex v = graph.addVertex();
-                v.property("test", v, T.id, "this-is-a-valid-id");
+                v.property(VertexProperty.Cardinality.single, "test", v, T.id, "this-is-a-valid-id");
                 fail(String.format(INVALID_FEATURE_SPECIFICATION, VertexPropertyFeatures.class.getSimpleName(), FEATURE_STRING_IDS));
             } catch (Exception ex) {
                 validateException(VertexProperty.Exceptions.userSuppliedIdsOfThisTypeNotSupported(), ex);
@@ -652,7 +652,7 @@ public class FeatureSupportTest {
         public void shouldSupportUserSuppliedIdsOfTypeNumeric() throws Exception {
             try {
                 final Vertex v = graph.addVertex();
-                v.property("test", v, T.id, 123456);
+                v.property(VertexProperty.Cardinality.single, "test", v, T.id, 123456);
                 fail(String.format(INVALID_FEATURE_SPECIFICATION, VertexPropertyFeatures.class.getSimpleName(), FEATURE_NUMERIC_IDS));
             } catch (Exception ex) {
                 validateException(VertexProperty.Exceptions.userSuppliedIdsOfThisTypeNotSupported(), ex);
@@ -660,7 +660,7 @@ public class FeatureSupportTest {
 
             try {
                 final Vertex v = graph.addVertex();
-                v.property("test", v, T.id, 123456l);
+                v.property(VertexProperty.Cardinality.single, "test", v, T.id, 123456l);
                 fail(String.format(INVALID_FEATURE_SPECIFICATION, VertexPropertyFeatures.class.getSimpleName(), FEATURE_NUMERIC_IDS));
             } catch (Exception ex) {
                 validateException(VertexProperty.Exceptions.userSuppliedIdsOfThisTypeNotSupported(), ex);
@@ -674,7 +674,7 @@ public class FeatureSupportTest {
         public void shouldSupportUserSuppliedIdsOfTypeUuid() throws Exception {
             try {
                 final Vertex v = graph.addVertex();
-                v.property("test", v, T.id, UUID.randomUUID());
+                v.property(VertexProperty.Cardinality.single, "test", v, T.id, UUID.randomUUID());
                 fail(String.format(INVALID_FEATURE_SPECIFICATION, VertexPropertyFeatures.class.getSimpleName(), FEATURE_ANY_IDS));
             } catch (Exception ex) {
                 validateException(VertexProperty.Exceptions.userSuppliedIdsOfThisTypeNotSupported(), ex);
@@ -689,7 +689,7 @@ public class FeatureSupportTest {
         public void shouldSupportUserSuppliedIdsOfTypeAny() throws Exception {
             try {
                 final Vertex v = graph.addVertex();
-                v.property("test", v, T.id, new Date());
+                v.property(VertexProperty.Cardinality.single, "test", v, T.id, new Date());
                 fail(String.format(INVALID_FEATURE_SPECIFICATION, VertexPropertyFeatures.class.getSimpleName(), FEATURE_ANY_IDS));
             } catch (Exception ex) {
                 validateException(VertexProperty.Exceptions.userSuppliedIdsOfThisTypeNotSupported(), ex);
@@ -702,7 +702,7 @@ public class FeatureSupportTest {
         @FeatureRequirement(featureClass = VertexPropertyFeatures.class, feature = FEATURE_STRING_IDS, supported = false)
         public void shouldSupportStringIdsIfStringIdsAreGeneratedFromTheGraph() throws Exception {
             final Vertex v = graph.addVertex();
-            final VertexProperty p = v.property("name", "stephen");
+            final VertexProperty p = v.property(VertexProperty.Cardinality.single, "name", "stephen");
             if (p.id() instanceof String)
                 fail(String.format(INVALID_FEATURE_SPECIFICATION, VertexPropertyFeatures.class.getSimpleName(), VertexPropertyFeatures.FEATURE_STRING_IDS));
         }
@@ -713,7 +713,7 @@ public class FeatureSupportTest {
         @FeatureRequirement(featureClass = VertexPropertyFeatures.class, feature = FEATURE_UUID_IDS, supported = false)
         public void shouldSupportUuidIdsIfUuidIdsAreGeneratedFromTheGraph() throws Exception {
             final Vertex v = graph.addVertex();
-            final VertexProperty p = v.property("name", "stephen");
+            final VertexProperty p = v.property(VertexProperty.Cardinality.single, "name", "stephen");
             if (p.id() instanceof UUID)
                 fail(String.format(INVALID_FEATURE_SPECIFICATION, VertexPropertyFeatures.class.getSimpleName(), VertexPropertyFeatures.FEATURE_UUID_IDS));
         }
@@ -724,7 +724,7 @@ public class FeatureSupportTest {
         @FeatureRequirement(featureClass = VertexPropertyFeatures.class, feature = FEATURE_NUMERIC_IDS, supported = false)
         public void shouldSupportNumericIdsIfNumericIdsAreGeneratedFromTheGraph() throws Exception {
             final Vertex v = graph.addVertex();
-            final VertexProperty p = v.property("name", "stephen");
+            final VertexProperty p = v.property(VertexProperty.Cardinality.single, "name", "stephen");
             if (p.id() instanceof Number)
                 fail(String.format(INVALID_FEATURE_SPECIFICATION, VertexPropertyFeatures.class.getSimpleName(), VertexPropertyFeatures.FEATURE_NUMERIC_IDS));
         }
@@ -737,7 +737,7 @@ public class FeatureSupportTest {
         public void shouldSupportRemovePropertyIfAPropertyCanBeRemoved() throws Exception {
             try {
                 final Vertex v = graph.addVertex();
-                final VertexProperty p = v.property("name", "me", "test", "this");
+                final VertexProperty p = v.property(VertexProperty.Cardinality.single, "name", "me", "test", "this");
                 p.property("test").remove();
                 fail(String.format(INVALID_FEATURE_SPECIFICATION, VertexPropertyFeatures.class.getSimpleName(), VertexPropertyFeatures.FEATURE_REMOVE_PROPERTY));
             } catch (Exception ex) {
@@ -767,7 +767,7 @@ public class FeatureSupportTest {
         public void shouldSupportMetaPropertyIfPropertiesCanBePutOnProperties() throws Exception {
             try {
                 final Vertex v = graph.addVertex();
-                v.property("name", "stephen", "property", "on-property");
+                v.property(VertexProperty.Cardinality.single, "name", "stephen", "property", "on-property");
                 fail(String.format(INVALID_FEATURE_SPECIFICATION, VertexFeatures.class.getSimpleName(), VertexFeatures.FEATURE_META_PROPERTIES));
             } catch (Exception ex) {
                 validateException(VertexProperty.Exceptions.metaPropertiesNotSupported(), ex);

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/46683cfc/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/GraphTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/GraphTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/GraphTest.java
index 7bd6cd7..13062b8 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/GraphTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/GraphTest.java
@@ -1038,8 +1038,8 @@ public class GraphTest extends AbstractGremlinTest {
         final Vertex v = graph.addVertex();
         final Vertex u = graph.addVertex();
         if (graph.features().edge().properties().supportsStringValues()) {
-            v.property("name", "marko");
-            u.property("name", "pavel");
+            v.property(VertexProperty.Cardinality.single, "name", "marko");
+            u.property(VertexProperty.Cardinality.single, "name", "pavel");
         }
 
         final Edge e = v.addEdge(graphProvider.convertLabel("collaborator"), u);

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/46683cfc/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/IoTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/IoTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/IoTest.java
index bf36d54..d4c3e5f 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/IoTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/IoTest.java
@@ -233,7 +233,7 @@ public class IoTest extends AbstractGremlinTest {
     @FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class, feature = Graph.Features.VertexFeatures.FEATURE_STRING_IDS)
     public void shouldProperlyEncodeWithGraphML() throws Exception {
         final Vertex v = graph.addVertex(T.id, "1");
-        v.property("text", "\u00E9");
+        v.property(VertexProperty.Cardinality.single, "text", "\u00E9");
 
         final GraphMLWriter w = GraphMLWriter.build().create();
 
@@ -1074,7 +1074,7 @@ public class IoTest extends AbstractGremlinTest {
     @FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class, feature = Graph.Features.VertexFeatures.FEATURE_META_PROPERTIES)
     public void shouldReadWriteVertexMultiPropsNoEdgesToGryo() throws Exception {
         final Vertex v1 = graph.addVertex("name", "marko", "name", "mark", "acl", "rw");
-        v1.property("propsSquared", 123, "x", "a", "y", "b");
+        v1.property(VertexProperty.Cardinality.single, "propsSquared", 123, "x", "a", "y", "b");
         final Vertex v2 = graph.addVertex();
         v1.addEdge("friends", v2, "weight", 0.5d);
 
@@ -1211,7 +1211,7 @@ public class IoTest extends AbstractGremlinTest {
     @FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class, feature = Graph.Features.VertexFeatures.FEATURE_META_PROPERTIES)
     public void shouldReadWriteVertexMultiPropsNoEdgesToGraphSON() throws Exception {
         final Vertex v1 = graph.addVertex("name", "marko", "name", "mark", "acl", "rw");
-        v1.property("propsSquared", 123, "x", "a", "y", "b");
+        v1.property(VertexProperty.Cardinality.single, "propsSquared", 123, "x", "a", "y", "b");
         final Vertex v2 = graph.addVertex();
         v1.addEdge("friends", v2, "weight", 0.5d);
 

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/46683cfc/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/PropertyTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/PropertyTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/PropertyTest.java
index c3ea06f..43218f7 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/PropertyTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/PropertyTest.java
@@ -259,7 +259,7 @@ public class PropertyTest {
         public void testGraphVertexSetPropertyStandard() throws Exception {
             try {
                 final Vertex v = this.graph.addVertex();
-                v.property(key, val);
+                v.property(VertexProperty.Cardinality.single, key, val);
                 fail(String.format("Call to Vertex.setProperty should have thrown an exception with these arguments [%s, %s]", key, val));
             } catch (Exception ex) {
                 validateException(expectedException, ex);
@@ -376,7 +376,7 @@ public class PropertyTest {
         public void shouldSetValueOnVertex() throws Exception {
             assumeThat(graph.features().supports(VertexPropertyFeatures.class, featureName), is(true));
             final Vertex vertex = graph.addVertex();
-            vertex.property("aKey", value);
+            vertex.property(VertexProperty.Cardinality.single, "aKey", value);
             assertPropertyValue(vertex);
         }
 

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/46683cfc/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/TransactionTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/TransactionTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/TransactionTest.java
index c1be0c1..8ba47d5 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/TransactionTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/TransactionTest.java
@@ -281,7 +281,7 @@ public class TransactionTest extends AbstractGremlinTest {
         assertEquals(v1.id(), graph.vertices(v1.id()).next().id());
         assertEquals(e1.id(), graph.edges(e1.id()).next().id());
 
-        v1.property("name", "marko");
+        v1.property(VertexProperty.Cardinality.single, "name", "marko");
         assertEquals("marko", v1.<String>value("name"));
         assertEquals("marko", graph.vertices(v1.id()).next().<String>value("name"));
         g.tx().commit();
@@ -408,8 +408,8 @@ public class TransactionTest extends AbstractGremlinTest {
                         final Edge e = a.addEdge("friend", b);
 
                         vertices.getAndAdd(2);
-                        a.property("test", this.getId());
-                        b.property("blah", random.nextDouble());
+                        a.property(VertexProperty.Cardinality.single, "test", this.getId());
+                        b.property(VertexProperty.Cardinality.single, "blah", random.nextDouble());
                         e.property("bloop", random.nextInt());
                         edges.getAndAdd(1);
                         graph.tx().commit();
@@ -418,8 +418,8 @@ public class TransactionTest extends AbstractGremlinTest {
                         final Vertex b = graph.addVertex();
                         final Edge e = a.addEdge("friend", b);
 
-                        a.property("test", this.getId());
-                        b.property("blah", random.nextDouble());
+                        a.property(VertexProperty.Cardinality.single, "test", this.getId());
+                        b.property(VertexProperty.Cardinality.single, "blah", random.nextDouble());
                         e.property("bloop", random.nextInt());
 
                         if (random.nextBoolean()) {

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/46683cfc/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/VertexPropertyTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/VertexPropertyTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/VertexPropertyTest.java
index 8aab4d0..d81b2e3 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/VertexPropertyTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/VertexPropertyTest.java
@@ -55,8 +55,8 @@ public class VertexPropertyTest extends AbstractGremlinTest {
         @FeatureRequirement(featureClass = Graph.Features.VertexPropertyFeatures.class, feature = Graph.Features.VertexPropertyFeatures.FEATURE_INTEGER_VALUES)
         public void shouldValidateEquality() {
             final Vertex v = graph.addVertex();
-            final VertexProperty vp1 = v.property("x", 0);
-            final VertexProperty vp2 = v.property("y", 1);
+            final VertexProperty vp1 = v.property(VertexProperty.Cardinality.single, "x", 0);
+            final VertexProperty vp2 = v.property(VertexProperty.Cardinality.single, "y", 1);
 
             assertEquals(vp1, vp1);
             assertEquals(vp2, vp2);
@@ -68,8 +68,8 @@ public class VertexPropertyTest extends AbstractGremlinTest {
         @FeatureRequirement(featureClass = Graph.Features.VertexPropertyFeatures.class, feature = Graph.Features.VertexPropertyFeatures.FEATURE_INTEGER_VALUES)
         public void shouldValidateIdEquality() {
             final Vertex v = graph.addVertex();
-            final VertexProperty vp1 = v.property("x", 0);
-            final VertexProperty vp2 = v.property("y", 1);
+            final VertexProperty vp1 = v.property(VertexProperty.Cardinality.single, "x", 0);
+            final VertexProperty vp2 = v.property(VertexProperty.Cardinality.single, "y", 1);
 
             assertEquals(vp1.id(), vp1.id());
             assertEquals(vp2.id(), vp2.id());
@@ -91,7 +91,7 @@ public class VertexPropertyTest extends AbstractGremlinTest {
         public void shouldAllowIdAssignment() {
             final Vertex v = graph.addVertex();
             final Object id = graphProvider.convertId(123131231l, VertexProperty.class);
-            v.property("name", "stephen", T.id, id);
+            v.property(VertexProperty.Cardinality.single, "name", "stephen", T.id, id);
 
             tryCommit(graph, g -> assertEquals(id, v.property("name").id()));
         }
@@ -200,7 +200,7 @@ public class VertexPropertyTest extends AbstractGremlinTest {
                 assertTrue(values.contains("marko a. rodriguez"));
                 assertTrue(values.contains("marko rodriguez"));
             });
-            v.property("name", "okram", "acl", "private", "date", 2014);
+            v.property(VertexProperty.Cardinality.single, "name", "okram", "acl", "private", "date", 2014);
             tryCommit(graph, g -> {
                 assertEquals(1, IteratorUtils.count(v.properties("name")));
                 assertEquals(1, IteratorUtils.count(v.properties()));
@@ -218,7 +218,7 @@ public class VertexPropertyTest extends AbstractGremlinTest {
             final Vertex u = graph.addVertex("name", "marko", "name", "marko a. rodriguez", "name", "marko rodriguez");
             tryCommit(graph);
             u.properties().forEachRemaining(Property::remove);
-            u.property("name", "okram", "acl", "private", "date", 2014);
+            u.property(VertexProperty.Cardinality.single, "name", "okram", "acl", "private", "date", 2014);
             tryCommit(graph, g -> {
                 assertEquals(1, IteratorUtils.count(u.properties("name")));
                 assertEquals(1, IteratorUtils.count(u.properties()));
@@ -500,7 +500,7 @@ public class VertexPropertyTest extends AbstractGremlinTest {
         @FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class, feature = Graph.Features.VertexFeatures.FEATURE_META_PROPERTIES)
         public void shouldThrowExceptionIfVertexPropertyWasRemoved() {
             final Vertex v1 = graph.addVertex();
-            final VertexProperty p = v1.property("name", "stephen", "year", "2012");
+            final VertexProperty p = v1.property(VertexProperty.Cardinality.single, "name", "stephen", "year", "2012");
             final Object id = p.id();
             p.remove();
             tryCommit(graph, g -> {
@@ -521,7 +521,7 @@ public class VertexPropertyTest extends AbstractGremlinTest {
         @FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class, feature = Graph.Features.VertexFeatures.FEATURE_META_PROPERTIES)
         public void shouldReturnEmptyIfNoMetaProperties() {
             final Vertex v = graph.addVertex();
-            final VertexProperty<String> vp = v.property("name", "marko");
+            final VertexProperty<String> vp = v.property(VertexProperty.Cardinality.single, "name", "marko");
             assertEquals(Property.empty(), vp.property("name"));
         }
 

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/46683cfc/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/VertexTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/VertexTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/VertexTest.java
index 27ed923..b991762 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/VertexTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/VertexTest.java
@@ -334,7 +334,7 @@ public class VertexTest {
             assertVertexEdgeCounts(1, 0).accept(graph);
 
             v.properties("name").forEachRemaining(Property::remove);
-            v.property("name", "marko rodriguez");
+            v.property(VertexProperty.Cardinality.single, "name", "marko rodriguez");
             assertEquals(34, (int) v.value("age"));
             assertEquals("marko rodriguez", v.<String>value("name"));
             assertEquals(34, (int) v.property("age").value());
@@ -346,7 +346,7 @@ public class VertexTest {
             assertFalse(v.keys().contains("location"));
             assertVertexEdgeCounts(1, 0).accept(graph);
 
-            v.property("location", "santa fe");
+            v.property(VertexProperty.Cardinality.single, "location", "santa fe");
             assertEquals(3, IteratorUtils.count(v.properties()));
             assertEquals(3, v.keys().size());
             assertEquals("santa fe", v.property("location").value());
@@ -421,7 +421,7 @@ public class VertexTest {
         @FeatureRequirement(featureClass = VertexPropertyFeatures.class, feature = FEATURE_STRING_VALUES)
         public void shouldAutotypeStringProperties() {
             final Vertex v = graph.addVertex();
-            v.property("string", "marko");
+            v.property(VertexProperty.Cardinality.single, "string", "marko");
             final String name = v.value("string");
             assertEquals(name, "marko");
 
@@ -432,7 +432,7 @@ public class VertexTest {
         @FeatureRequirement(featureClass = VertexPropertyFeatures.class, feature = FEATURE_INTEGER_VALUES)
         public void shouldAutotypIntegerProperties() {
             final Vertex v = graph.addVertex();
-            v.property("integer", 33);
+            v.property(VertexProperty.Cardinality.single, "integer", 33);
             final Integer age = v.value("integer");
             assertEquals(Integer.valueOf(33), age);
         }
@@ -442,7 +442,7 @@ public class VertexTest {
         @FeatureRequirement(featureClass = VertexPropertyFeatures.class, feature = FEATURE_BOOLEAN_VALUES)
         public void shouldAutotypeBooleanProperties() {
             final Vertex v = graph.addVertex();
-            v.property("boolean", true);
+            v.property(VertexProperty.Cardinality.single, "boolean", true);
             final Boolean best = v.value("boolean");
             assertEquals(best, true);
         }
@@ -452,7 +452,7 @@ public class VertexTest {
         @FeatureRequirement(featureClass = VertexPropertyFeatures.class, feature = FEATURE_DOUBLE_VALUES)
         public void shouldAutotypeDoubleProperties() {
             final Vertex v = graph.addVertex();
-            v.property("double", 0.1d);
+            v.property(VertexProperty.Cardinality.single, "double", 0.1d);
             final Double best = v.value("double");
             assertEquals(best, Double.valueOf(0.1d));
         }
@@ -462,7 +462,7 @@ public class VertexTest {
         @FeatureRequirement(featureClass = VertexPropertyFeatures.class, feature = FEATURE_LONG_VALUES)
         public void shouldAutotypeLongProperties() {
             final Vertex v = graph.addVertex();
-            v.property("long", 1l);
+            v.property(VertexProperty.Cardinality.single, "long", 1l);
             final Long best = v.value("long");
             assertEquals(best, Long.valueOf(1l));
         }
@@ -472,7 +472,7 @@ public class VertexTest {
         @FeatureRequirement(featureClass = VertexPropertyFeatures.class, feature = FEATURE_FLOAT_VALUES)
         public void shouldAutotypeFloatProperties() {
             final Vertex v = graph.addVertex();
-            v.property("float", 0.1f);
+            v.property(VertexProperty.Cardinality.single, "float", 0.1f);
             final Float best = v.value("float");
             assertEquals(best, Float.valueOf(0.1f));
         }
@@ -556,7 +556,7 @@ public class VertexTest {
                     {"remove()", FunctionUtils.wrapConsumer(Vertex::remove)},
                     {"addEdge()", FunctionUtils.wrapConsumer((Vertex v) -> v.addEdge("self", v))},
                     {"property(k,v)", FunctionUtils.wrapConsumer((Vertex v) -> {
-                        v.property("k", "v");
+                        v.property(VertexProperty.Cardinality.single, "k", "v");
                     })},
                     {"property(single,k,v)", FunctionUtils.wrapConsumer((Vertex v) -> {
                         v.property(VertexProperty.Cardinality.single, "k", "v");

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/46683cfc/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedVertexPropertyTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedVertexPropertyTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedVertexPropertyTest.java
index 3ac0131..b9ae3ba 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedVertexPropertyTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedVertexPropertyTest.java
@@ -38,7 +38,7 @@ public class DetachedVertexPropertyTest extends AbstractGremlinTest {
     @FeatureRequirementSet(FeatureRequirementSet.Package.SIMPLE)
     public void shouldNotConstructNewWithSomethingAlreadyDetached() {
         final Vertex v = graph.addVertex();
-        final VertexProperty vp = v.property("test", "this");
+        final VertexProperty vp = v.property(VertexProperty.Cardinality.single, "test", "this");
         final DetachedVertexProperty dvp = DetachedFactory.detach(vp, true);
         assertSame(dvp, DetachedFactory.detach(dvp, true));
     }
@@ -47,7 +47,7 @@ public class DetachedVertexPropertyTest extends AbstractGremlinTest {
     @FeatureRequirementSet(FeatureRequirementSet.Package.SIMPLE)
     public void shouldConstructDetachedPropertyWithPropertyFromVertex() {
         final Vertex v = graph.addVertex();
-        final VertexProperty vp = v.property("test", "this");
+        final VertexProperty vp = v.property(VertexProperty.Cardinality.single, "test", "this");
         final DetachedVertexProperty mp = DetachedFactory.detach(vp, true);
         assertEquals("test", mp.key());
         assertEquals("this", mp.value());
@@ -58,7 +58,7 @@ public class DetachedVertexPropertyTest extends AbstractGremlinTest {
     @FeatureRequirementSet(FeatureRequirementSet.Package.SIMPLE)
     public void shouldConstructDetachedPropertyWithHiddenFromVertex() {
         final Vertex v = graph.addVertex();
-        final VertexProperty vp = v.property("test", "this");
+        final VertexProperty vp = v.property(VertexProperty.Cardinality.single, "test", "this");
         final DetachedVertexProperty mp = DetachedFactory.detach(vp, true);
         assertEquals("test", mp.key());
         assertEquals("this", mp.value());
@@ -69,7 +69,7 @@ public class DetachedVertexPropertyTest extends AbstractGremlinTest {
     @FeatureRequirementSet(FeatureRequirementSet.Package.SIMPLE)
     public void shouldNotSupportRemove() {
         final Vertex v = graph.addVertex();
-        final VertexProperty vp = v.property("test", "this");
+        final VertexProperty vp = v.property(VertexProperty.Cardinality.single, "test", "this");
         DetachedFactory.detach(vp, true).remove();
     }
 
@@ -77,7 +77,7 @@ public class DetachedVertexPropertyTest extends AbstractGremlinTest {
     @FeatureRequirementSet(FeatureRequirementSet.Package.SIMPLE)
     public void shouldBeEqualsPropertiesAsIdIsTheSame() {
         final Vertex v = graph.addVertex();
-        final VertexProperty vp = v.property("test", "this");
+        final VertexProperty vp = v.property(VertexProperty.Cardinality.single, "test", "this");
         final DetachedVertexProperty mp1 = DetachedFactory.detach(vp, true);
         final DetachedVertexProperty mp2 = DetachedFactory.detach(vp, true);
         assertTrue(mp1.equals(mp2));
@@ -87,9 +87,9 @@ public class DetachedVertexPropertyTest extends AbstractGremlinTest {
     @FeatureRequirementSet(FeatureRequirementSet.Package.SIMPLE)
     public void shouldNotBeEqualsPropertiesAsIdIsDifferent() {
         final Vertex v = graph.addVertex();
-        final VertexProperty vp1 = v.property("test", "this");
+        final VertexProperty vp1 = v.property(VertexProperty.Cardinality.single, "test", "this");
         final DetachedVertexProperty mp1 = DetachedFactory.detach(vp1, true);
-        final VertexProperty vp2 = v.property("testing", "this");
+        final VertexProperty vp2 = v.property(VertexProperty.Cardinality.single, "testing", "this");
         final DetachedVertexProperty mp2 = DetachedFactory.detach(vp2, true);
         assertFalse(mp1.equals(mp2));
     }
@@ -125,7 +125,7 @@ public class DetachedVertexPropertyTest extends AbstractGremlinTest {
     @FeatureRequirementSet(FeatureRequirementSet.Package.SIMPLE)
     public void shouldAttachToGraph() {
         final Vertex v = graph.addVertex();
-        final VertexProperty toDetach = v.property("test", "this");
+        final VertexProperty toDetach = v.property(VertexProperty.Cardinality.single, "test", "this");
         final DetachedVertexProperty detached = DetachedFactory.detach(toDetach, true);
         final VertexProperty attached = detached.attach(graph);
 
@@ -137,7 +137,7 @@ public class DetachedVertexPropertyTest extends AbstractGremlinTest {
     @FeatureRequirementSet(FeatureRequirementSet.Package.SIMPLE)
     public void shouldAttachToVertex() {
         final Vertex v = graph.addVertex();
-        final VertexProperty toDetach = v.property("test", "this");
+        final VertexProperty toDetach = v.property(VertexProperty.Cardinality.single, "test", "this");
         final DetachedVertexProperty detached = DetachedFactory.detach(toDetach, true);
         final VertexProperty attached = detached.attach(v);
 

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/46683cfc/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedVertexTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedVertexTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedVertexTest.java
index 46542f8..add7797 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedVertexTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedVertexTest.java
@@ -260,7 +260,7 @@ public class DetachedVertexTest extends AbstractGremlinTest {
     public void shouldNotAllowSetProperty() {
         final Vertex v = graph.addVertex();
         final DetachedVertex detachedVertex = DetachedFactory.detach(v, true);
-        detachedVertex.property("test", "test");
+        detachedVertex.property(VertexProperty.Cardinality.single, "test", "test");
     }
 
     @Test(expected = IllegalStateException.class)

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/46683cfc/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/reference/ReferenceVertexPropertyTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/reference/ReferenceVertexPropertyTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/reference/ReferenceVertexPropertyTest.java
index 500a3ba..95be726 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/reference/ReferenceVertexPropertyTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/reference/ReferenceVertexPropertyTest.java
@@ -38,7 +38,7 @@ public class ReferenceVertexPropertyTest extends AbstractGremlinTest {
     @FeatureRequirementSet(FeatureRequirementSet.Package.SIMPLE)
     public void shouldNotConstructNewWithSomethingAlreadyReferenced() {
         final Vertex v = graph.addVertex();
-        final VertexProperty vp = v.property("test", "this");
+        final VertexProperty vp = v.property(VertexProperty.Cardinality.single, "test", "this");
         final ReferenceVertexProperty dvp = ReferenceFactory.detach(vp);
         assertSame(dvp, ReferenceFactory.detach(dvp));
     }
@@ -47,7 +47,7 @@ public class ReferenceVertexPropertyTest extends AbstractGremlinTest {
     @FeatureRequirementSet(FeatureRequirementSet.Package.SIMPLE)
     public void shouldNotSupportRemove() {
         final Vertex v = graph.addVertex();
-        final VertexProperty vp = v.property("test", "this");
+        final VertexProperty vp = v.property(VertexProperty.Cardinality.single, "test", "this");
         ReferenceFactory.detach(vp).remove();
     }
 
@@ -55,7 +55,7 @@ public class ReferenceVertexPropertyTest extends AbstractGremlinTest {
     @FeatureRequirementSet(FeatureRequirementSet.Package.SIMPLE)
     public void shouldBeEqualsPropertiesAsIdIsTheSame() {
         final Vertex v = graph.addVertex();
-        final VertexProperty vp = v.property("test", "this");
+        final VertexProperty vp = v.property(VertexProperty.Cardinality.single, "test", "this");
         final ReferenceVertexProperty vp1 = ReferenceFactory.detach(vp);
         final ReferenceVertexProperty vp2 = ReferenceFactory.detach(vp);
         assertTrue(vp1.equals(vp2));
@@ -67,9 +67,9 @@ public class ReferenceVertexPropertyTest extends AbstractGremlinTest {
     @FeatureRequirementSet(FeatureRequirementSet.Package.SIMPLE)
     public void shouldNotBeEqualsPropertiesAsIdIsDifferent() {
         final Vertex v = graph.addVertex();
-        final VertexProperty vp1 = v.property("test", "this");
+        final VertexProperty vp1 = v.property(VertexProperty.Cardinality.single, "test", "this");
         final ReferenceVertexProperty mp1 = ReferenceFactory.detach(vp1);
-        final VertexProperty vp2 = v.property("testing", "this");
+        final VertexProperty vp2 = v.property(VertexProperty.Cardinality.single, "testing", "this");
         final ReferenceVertexProperty mp2 = ReferenceFactory.detach(vp2);
         assertFalse(mp1.equals(mp2));
     }
@@ -78,7 +78,7 @@ public class ReferenceVertexPropertyTest extends AbstractGremlinTest {
     @FeatureRequirementSet(FeatureRequirementSet.Package.SIMPLE)
     public void shouldAttachToGraph() {
         final Vertex v = graph.addVertex();
-        final VertexProperty toReference = v.property("test", "this");
+        final VertexProperty toReference = v.property(VertexProperty.Cardinality.single, "test", "this");
         final ReferenceVertexProperty rvp = ReferenceFactory.detach(toReference);
         final VertexProperty referenced = rvp.attach(graph);
 
@@ -90,7 +90,7 @@ public class ReferenceVertexPropertyTest extends AbstractGremlinTest {
     @FeatureRequirementSet(FeatureRequirementSet.Package.SIMPLE)
     public void shouldAttachToVertex() {
         final Vertex v = graph.addVertex();
-        final VertexProperty toReference = v.property("test", "this");
+        final VertexProperty toReference = v.property(VertexProperty.Cardinality.single, "test", "this");
         final ReferenceVertexProperty rvp = ReferenceFactory.detach(toReference);
         final VertexProperty referenced = rvp.attach(v);
 

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/46683cfc/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/reference/ReferenceVertexTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/reference/ReferenceVertexTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/reference/ReferenceVertexTest.java
index 575d151..a2fa663 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/reference/ReferenceVertexTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/reference/ReferenceVertexTest.java
@@ -28,6 +28,7 @@ import org.apache.tinkerpop.gremlin.LoadGraphWith;
 import org.apache.tinkerpop.gremlin.structure.Direction;
 import org.apache.tinkerpop.gremlin.structure.Graph;
 import org.apache.tinkerpop.gremlin.structure.Vertex;
+import org.apache.tinkerpop.gremlin.structure.VertexProperty;
 import org.apache.tinkerpop.gremlin.structure.util.detached.DetachedFactory;
 import org.apache.tinkerpop.gremlin.util.iterator.IteratorUtils;
 import org.junit.Test;
@@ -141,7 +142,7 @@ public class ReferenceVertexTest extends AbstractGremlinTest {
     public void shouldNotAllowSetProperty() {
         final Vertex v = graph.addVertex();
         final ReferenceVertex rv = ReferenceFactory.detach(v);
-        rv.property("test", "test");
+        rv.property(VertexProperty.Cardinality.single, "test", "test");
     }
 
     @Test(expected = IllegalStateException.class)

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/46683cfc/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/script/script-input.groovy
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/script/script-input.groovy b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/script/script-input.groovy
index e714c90..adb32b7 100644
--- a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/script/script-input.groovy
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/script/script-input.groovy
@@ -1,3 +1,5 @@
+import org.apache.tinkerpop.gremlin.structure.VertexProperty
+
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -20,10 +22,10 @@ def parse(line, factory) {
     def parts = line.split(/\t/)
     def (id, label, name, x) = parts[0].split(/:/).toList()
     def v1 = factory.vertex(id, label)
-    if (name != null) v1.property("name", name)
+    if (name != null) v1.property(VertexProperty.Cardinality.single, "name", name)
     if (x != null) {
-        if (label.equals("project")) v1.property("lang", x)
-        else v1.property("age", Integer.valueOf(x))
+        if (label.equals("project")) v1.property(VertexProperty.Cardinality.single, "lang", x)
+        else v1.property(VertexProperty.Cardinality.single, "age", Integer.valueOf(x))
     }
     // process out-edges
     if (parts.length >= 2) {

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/46683cfc/hadoop-gremlin/src/main/java/org/apache/tinkerpop/gremlin/hadoop/structure/HadoopVertex.java
----------------------------------------------------------------------
diff --git a/hadoop-gremlin/src/main/java/org/apache/tinkerpop/gremlin/hadoop/structure/HadoopVertex.java b/hadoop-gremlin/src/main/java/org/apache/tinkerpop/gremlin/hadoop/structure/HadoopVertex.java
index c380535..bfd4d6a 100644
--- a/hadoop-gremlin/src/main/java/org/apache/tinkerpop/gremlin/hadoop/structure/HadoopVertex.java
+++ b/hadoop-gremlin/src/main/java/org/apache/tinkerpop/gremlin/hadoop/structure/HadoopVertex.java
@@ -21,7 +21,6 @@ package org.apache.tinkerpop.gremlin.hadoop.structure;
 import org.apache.tinkerpop.gremlin.structure.Direction;
 import org.apache.tinkerpop.gremlin.structure.Edge;
 import org.apache.tinkerpop.gremlin.structure.Element;
-import org.apache.tinkerpop.gremlin.structure.Property;
 import org.apache.tinkerpop.gremlin.structure.Vertex;
 import org.apache.tinkerpop.gremlin.structure.VertexProperty;
 import org.apache.tinkerpop.gremlin.structure.util.wrapped.WrappedVertex;
@@ -55,6 +54,11 @@ public class HadoopVertex extends HadoopElement implements Vertex, WrappedVertex
     }
 
     @Override
+    public <V> VertexProperty<V> property(final String key, final V value, final Object... keyValues) {
+        throw Element.Exceptions.propertyAdditionNotSupported();
+    }
+
+    @Override
     public <V> VertexProperty<V> property(final VertexProperty.Cardinality cardinality, final String key, final V value, final Object... keyValues) {
         throw Element.Exceptions.propertyAdditionNotSupported();
     }

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/46683cfc/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerVertex.java
----------------------------------------------------------------------
diff --git a/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerVertex.java b/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerVertex.java
index ec97d0b..e35ecc2 100644
--- a/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerVertex.java
+++ b/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerVertex.java
@@ -83,6 +83,11 @@ public class TinkerVertex extends TinkerElement implements Vertex {
     }
 
     @Override
+    public <V> VertexProperty<V> property(final String key, final V value, final Object... keyValues) {
+        return this.property(VertexProperty.Cardinality.single,key,value,keyValues);
+    }
+
+    @Override
     public <V> VertexProperty<V> property(final VertexProperty.Cardinality cardinality, final String key, final V value, final Object... keyValues) {
         if (this.removed) throw Element.Exceptions.elementAlreadyRemoved(Vertex.class, this.id);
         ElementHelper.legalPropertyKeyValueArray(keyValues);

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/46683cfc/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraphIdManagerTest.java
----------------------------------------------------------------------
diff --git a/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraphIdManagerTest.java b/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraphIdManagerTest.java
index 4bd8aad..69fc230 100644
--- a/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraphIdManagerTest.java
+++ b/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraphIdManagerTest.java
@@ -85,7 +85,7 @@ public class TinkerGraphIdManagerTest {
         public void shouldUseLongIdManagerToCoerceTypes() {
             final Graph graph = TinkerGraph.open(longIdManagerConfig);
             final Vertex v = graph.addVertex(T.id, vertexIdValue);
-            final VertexProperty vp = v.property("test", "value", T.id, vertexPropertyIdValue);
+            final VertexProperty vp = v.property(VertexProperty.Cardinality.single, "test", "value", T.id, vertexPropertyIdValue);
             final Edge e = v.addEdge("self", v, T.id, edgeIdValue);
 
             assertEquals(100l, v.id());
@@ -97,7 +97,7 @@ public class TinkerGraphIdManagerTest {
         public void shouldUseIntegerIdManagerToCoerceTypes() {
             final Graph graph = TinkerGraph.open(integerIdManagerConfig);
             final Vertex v = graph.addVertex(T.id, vertexIdValue);
-            final VertexProperty vp = v.property("test", "value", T.id, vertexPropertyIdValue);
+            final VertexProperty vp = v.property(VertexProperty.Cardinality.single, "test", "value", T.id, vertexPropertyIdValue);
             final Edge e = v.addEdge("self", v, T.id, edgeIdValue);
 
             assertEquals(100, v.id());
@@ -147,7 +147,7 @@ public class TinkerGraphIdManagerTest {
         public void shouldUseIdManagerToCoerceTypes() {
             final Graph graph = TinkerGraph.open(idManagerConfig);
             final Vertex v = graph.addVertex(T.id, vertexIdValue);
-            final VertexProperty vp = v.property("test", "value", T.id, vertexPropertyIdValue);
+            final VertexProperty vp = v.property(VertexProperty.Cardinality.single, "test", "value", T.id, vertexPropertyIdValue);
             final Edge e = v.addEdge("self", v, T.id, edgeIdValue);
 
             assertEquals(vertexId, v.id());