{"__v":3,"_id":"55a93a015d3abb0d0012f184","category":{"__v":11,"_id":"55a93098cf45e1390093f351","pages":["55a930bdcf45e1390093f353","55a932afc8bd450d000dd1d6","55a938ba4c661b3700cf4e1f","55a939b502becf2d007aac34","55a93a015d3abb0d0012f184","55a93b225d3abb0d0012f191","55a93c4002becf2d007aac43","55a93d4c02becf2d007aac4c","55a940485d3abb0d0012f1af","55a9409802becf2d007aac64","55a9410c5d3abb0d0012f1b4"],"project":"559a61d2dbcfd20d00710b39","version":"559a61d2dbcfd20d00710b3c","sync":{"url":"","isSync":false},"reference":false,"createdAt":"2015-07-17T16:43:04.054Z","from_sync":false,"order":4,"slug":"android-sdk-reference","title":"Android SDK Reference"},"parentDoc":null,"project":"559a61d2dbcfd20d00710b39","user":"559a618bdbcfd20d00710b38","version":{"__v":23,"_id":"559a61d2dbcfd20d00710b3c","project":"559a61d2dbcfd20d00710b39","createdAt":"2015-07-06T11:09:06.510Z","releaseDate":"2015-07-06T11:09:06.510Z","categories":["559a61d3dbcfd20d00710b3d","55a589ddaaf9cf1900114dd0","55a589e30f354f0d00fd0312","55a589ea80c8a30d00b323cc","55a589f6aaf9cf1900114dd1","55a58d4e80c8a30d00b323e6","55a8e7a227a17d21005251a2","55a93098cf45e1390093f351","55afb085f202b12100cd9e83","55afb22e902fd51700f5f8bf","55afb260902fd51700f5f8c2","55afb28ec8a85321007a5462","55afb294f202b12100cd9e95","55afb29b902fd51700f5f8c5","55afb2a1c8a85321007a5463","55afb2a7902fd51700f5f8c7","55afb2ad902fd51700f5f8c8","55afb2b5902fd51700f5f8ca","55b74b2131bccb190081bedc","55bb441b54f9640d006e6cf2","565711085cb2420d00d70071","5681681330018c0d006bf7ff","588f38b5923d610f00c72dad"],"is_deprecated":false,"is_hidden":false,"is_beta":true,"is_stable":true,"codename":"","version_clean":"1.0.0","version":"1"},"updates":[],"next":{"pages":[],"description":""},"createdAt":"2015-07-17T17:23:13.913Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[]},"settings":"","auth":"required","params":[],"url":""},"isReference":false,"order":4,"body":"- To sense user interests, MOCA uses *Tags*.\n- Tags are small items of information with well defined semantics. \n- Each tag is associated with a ***counter***. The counter is used to track how many times the user was tagged or to sum points associated with the tag. \n- Tags are defined in MOCA Console or by the app.\n- For example: `Restaurant` `Video Store` `Woman` `Parking` `Gym`\n- Tags can be attached to specific locations by using beacons or programmatically by API.\n- Tag counters are used to rank the tags.\n\n\n-A single Tag is modeled as follows:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"/**\\n * MOCATag represents a category of interest. Sample tags include \\\"books\\\",\\n * \\\"video\\\", \\\"music\\\", \\\"food\\\", or\\n */\\npublic interface MOCATag {\\n    /**\\n     * Get tag's name.\\n     *\\n     * :::at:::return tag name\\n     */\\n    public String getName();\\n\\n    /**\\n     * Get tag's weight.\\n     *\\n     * @return weight value\\n     */\\n    public double getValue();\\n\\n    /**\\n     * Get date tag was created.\\n     * @return UTC timestamp\\n     */\\n    public long getCreatedAt();\\n\\n    /**\\n     * Get last modification date.\\n     * @return UTC timestamp\\n     */\\n    public long getModifiedAt ();\\n\\n}\\n\",\n      \"language\": \"java\"\n    }\n  ]\n}\n[/block]\nMOCA provides the following methods to manipulate Tags.\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"\\n\\t  /**\\n\\t   * Retrieves a collection of tags for this instance.\\n\\t   */\\n\\t  public Set<MOCATag> getTags();\\n\\n    /**\\n     * Add a tag to this instance and increment its value by 1.\\n     */\\n    public void addTag (String tagName);\\n\\n    /**\\n     * Add a tag with a given value to this instance.\\n     * @value - update expression with syntax [=|+|-] <double> value.\\n     * For example \\\"+1\\\" increments the tag value by 1.\\n     * For example \\\"-2\\\" decrements the tag value by 2.\\n     * For example \\\"3\\\" or \\\"=3\\\" assign value of 3 to the tag's value.\\n     */\\n    public void addTag (String tagName, String value);\\n\\n    /**\\n     * Checks if this instance contains a specific tag.\\n     * @return <code>YES</code> if the instance contains a tag, or <code>NO</code> otherwise.\\n     */\\n    public boolean containsTag (String tagName);\\n\\n    /**\\n     * Retrieves a value of a specific tag associated with this instance.\\n     * @return tag value or <code>nil</code> if the tag doest not exist.\\n     */\\n    public Double getTagValue (String tagName);\\n\",\n      \"language\": \"java\"\n    }\n  ]\n}\n[/block]","excerpt":"","slug":"tag-api","type":"basic","title":"Tag API"}
- To sense user interests, MOCA uses *Tags*. - Tags are small items of information with well defined semantics. - Each tag is associated with a ***counter***. The counter is used to track how many times the user was tagged or to sum points associated with the tag. - Tags are defined in MOCA Console or by the app. - For example: `Restaurant` `Video Store` `Woman` `Parking` `Gym` - Tags can be attached to specific locations by using beacons or programmatically by API. - Tag counters are used to rank the tags. -A single Tag is modeled as follows: [block:code] { "codes": [ { "code": "/**\n * MOCATag represents a category of interest. Sample tags include \"books\",\n * \"video\", \"music\", \"food\", or\n */\npublic interface MOCATag {\n /**\n * Get tag's name.\n *\n * @return tag name\n */\n public String getName();\n\n /**\n * Get tag's weight.\n *\n * @return weight value\n */\n public double getValue();\n\n /**\n * Get date tag was created.\n * @return UTC timestamp\n */\n public long getCreatedAt();\n\n /**\n * Get last modification date.\n * @return UTC timestamp\n */\n public long getModifiedAt ();\n\n}\n", "language": "java" } ] } [/block] MOCA provides the following methods to manipulate Tags. [block:code] { "codes": [ { "code": "\n\t /**\n\t * Retrieves a collection of tags for this instance.\n\t */\n\t public Set<MOCATag> getTags();\n\n /**\n * Add a tag to this instance and increment its value by 1.\n */\n public void addTag (String tagName);\n\n /**\n * Add a tag with a given value to this instance.\n * @value - update expression with syntax [=|+|-] <double> value.\n * For example \"+1\" increments the tag value by 1.\n * For example \"-2\" decrements the tag value by 2.\n * For example \"3\" or \"=3\" assign value of 3 to the tag's value.\n */\n public void addTag (String tagName, String value);\n\n /**\n * Checks if this instance contains a specific tag.\n * @return <code>YES</code> if the instance contains a tag, or <code>NO</code> otherwise.\n */\n public boolean containsTag (String tagName);\n\n /**\n * Retrieves a value of a specific tag associated with this instance.\n * @return tag value or <code>nil</code> if the tag doest not exist.\n */\n public Double getTagValue (String tagName);\n", "language": "java" } ] } [/block]