ODL 的推文元语法

发布于 2024-09-14 19:14:54 字数 6355 浏览 6 评论 0原文

我对使用 Tweets/SMS/Identica 或其他短文本状态更新系统来跟踪日常生活观察(或 ODL)的想法感兴趣。基本概念是,您将状态更新发送到 Twitter 或 Identi.ca,或者可能只是发送一条 SMS 消息或其他可以稍后挖掘以显示模式的格式。

你可以用它来跟踪锻炼、饮食、你的电影偏好以及任何你喜欢的东西。

为此,您需要有一种语法,允许人类和计算机轻松解析您的状态更新。语法应该是密集的,支持低字符数,但仍然是人类可读的。

这个想法并不新鲜,有很多 Twitter 应用程序可以跟踪锻炼和饮食习惯。 Twitter 本质上已经是一个短文本 ODL 媒体,您可以通过查看搜索 #feeling http://search.twitter.com/search?q=%23feeling 或搜索 #hurts http://search.twitter.com/search?q=%23hurts 或旨在挖掘已发布到 twitter 的丰富 ODL 数据的应用程序:http://www.tweetfeel。 com/

通过使用 Twitter 跟踪 ODL,您将不再强迫人们使用专门为此创建的给定集成引擎(例如 Google Health 和 HealthVault),而是专注于提高人们所使用的 ODL 跟踪系统的价值。已经在使用,例如 Facebook 或 Twitter。但要做到这一点,您需要一种通用的方法来输入 ODL 并对这些条目进行数据挖掘,以便您可以在更高或至少不同的级别上获得意义。

还有几种语法可用于概括使用 Twitter 跟踪您喜欢的任何内容的方法。这些是我最感兴趣的。到目前为止,我知道几个:

Daytum 有一个 twitter语法。它使用直接消息,如下所示:

d daytum item : amount 
// simple data label and value
d daytum item [category, category] : amount
// same thing but with tagging...

Your.flowingdata.com 具有更丰富的语法。它还使用直接消息传递。

// yfd works with "action" and "value" pairs
d yfd weigh 160
d yfd exercised arms
d yfd watched Back to the Future
// but can be made more complex with units
d yfd drank 2 water
d yfd drank 1 coke
// and timestamps 
d yfd played xbox at 20:00
d yfd goodnight at 11:00pm
d yfd goodnight at 11pm

对于每个操作,yfd 都会询问您一些有关数据类型的信息,要求您选择:

分类 - 如果您对不同单位的相同操作的发生感兴趣,例如吃了玉米 事件 - 如果兴趣点是某件事发生的时间,例如晚安或大便 计数器 - 如果您最感兴趣的是您完成某件事的总时间,例如吸 5 支烟 测量 - 如果您想查看某个值随时间的变化趋势,例如体重 160 或血压 170

很聪明不是吗?

我知道的最后一个是 Grafitter 语法。到目前为止,这是一个非常简洁的概念,因为它以一种非常聪明的方式使用主题标签...

//hashtag with comma separated tags
#mood(happy,elated,drunk)
#mood(sad,sober)
// scales, like not busy
#busy(1)
// very busy
#busy(5)
//straight up numbers
#lbs(250)
#worked(10)

Tweet your eats using DMs还可以让您包括您吃了什么,以及卡路里/脂肪/分数跟踪。所以语法看起来像

d tyeats #breakfast One bowl of cereal *c500
// the *c500 marks the tweet as 500 calories

当然,重要的是要注意已经登录到 Twitter 的不同 ODL 生成软件所采用的非常常见的自然语言模式,例如 runkeeper,它通常会生成类似以下内容的内容:

@meattwitter Just completed a 4.50 km run with @runkeeper. Check it out! http://rnkpr.com/aaaaa #RunKeeper

那么现在对于我的问题?

我还忽略了哪些其他重要的 ODL 语法? DM 是进行数据收集的正确方法吗?还是应该关注主题标签? 除了 runkeeper 等之外,还有哪些其他重要的“自然”ODL 正在发生? 有谁知道关于这个问题的任何正式研究(社交媒体状态更新中的 ODL 语法)? 有谁知道任何现有的开源项目可以实现此类事情?

更新:Paul 指出 OMHE 项目就是做这种事情的。 http://code.google.com/p/omhe/ 以下是 OMHE 语法,它已经有一个基于 python 的解析器。

#The basic OMHE syntax follows this basic format"
[COMMAND_NAME]<VALUE><#[TAG]>

# Reporting WEIGHT (This is correct):
wt123.4

# In the previous example, COMMAND_NAME=wt and VALUE=123.4

# Reporting WEIGHT (Also Correct):
wt=123.4

# In the previous example, COMMAND_NAME=wt and VALUE=123.4

# Reporting WEIGHT with _TAGS_ (Also Correct) :
wt=123.4#mytag#myothertag

# The previous example has two tags: 'mytag' and 'myothertag'

# Weight is a command that requires a value (Incorrect):
wt

#You can never have an equal sign without a value. (Also Incorrect):
wt=

# Here is an OMHE string with two commands separated by white space " ".
# Says the command 'wt' (weight) has a value of '195' and blood glucose is 150.
wt195 bg=150

# Report the start of a menstrual cycle (correct):
# (Correct) mcycle is a command where value is not required 
mcycle

# Report the first day of a menstrual cycle:
# Notice we can still add tags even if no value is given 
mc

# Report the start of a menstrual cycle (Incorrect):
# You can't provide an equals "=" sign without a value: 
mc=

# Report the adherence to a health directive such as taking medication (correct):
# (Correct) did is a command where value is not required 
did

# Report the adherence to a health directive  to stretch arm (correct):
did=ARMSTRETCH

# Send Blood Glucose Level:
bg125

# Send Blood Pressure:
bp100d120p65

# Send Blood Pressure using the equals sign style:
bp=100d120p65

# Send Weight:
wt145
wt=145 #Express weight using the equals sign style
w78k   #Express weight in kilograms
wt145l  #Explicit express weight in pounds (lbs)
wt245.8 #Express fractional weight
wt245p8 #Another way to express fractional weight

# Send blood glucose, patient identifier, a note, and the date:
bg145 id213762732467234 nAllGood d20090117

# Sending blood glucose with a simple note tag (with spaces):
bg145#I'm*feeling*very*tired*today

# Report the start of a menstrual cycle:
mcycle

# Get a copy of your health benefits/insurance card:
gethc

# Send a copy of your health benefits card to someone via fax:
sendhc=6509840982#fax

# Send a copy of your health benefits card as a pdf to someone via email:
[email protected]#pdf

# Get a copy of your personal health record:
getphr

# Get a copy of your personal health record as a pdf:
getphr#pdf

# Get a copy of your personal health record in CCD format:
getphr#ccd

# Send a copy of your personal health record to someone in CCR format:
[email protected]#ccr

# Send a copy of your personal health record to someone in XML microformat:
[email protected]#microformat

我的目标是在开源许可下编写一个解析器和数据显示工具,我通常在寻找我应该支持什么类型的东西。因此,如果您能想到我应该要求为这样的项目制定要求列表的其他问题,请告诉我!例如,我知道对于提及、DM、回复等标准 Twitter 语法,有不错的解析器实现,如果我正在讨论的内容扩展了这项工作,或者完全并行实现的话。

目前,我很高兴地假设系统不支持“私有”日志记录,除非有人可以告诉我如何以简洁的方式做到这一点。

I am interested in the idea of using Tweets/SMS/Identica or other short text status update systems to track Observations of Daily Living (or ODLs). The basic notion is that you send status updates to Twitter or Identi.ca or perhaps just an SMS message or whatever in a format that can be later mined to show patterns.

You could use it to track exercise, diets, your movie preferences, anything you like.

To do this you need to have a syntax that allows both humans and computers to easily parse your status updates. The syntax should be dense, which supports the low character counts, but still human readable.

This idea is not new and there are lots of twitter apps out there for tracking exercise and eating habits. Twitter is already essentially a short text ODL medium, which you can easily see by looking at searched for #feeling http://search.twitter.com/search?q=%23feeling
or searches for #hurts http://search.twitter.com/search?q=%23hurts or applications intended to mine the wealth of ODL data already going to twitter: http://www.tweetfeel.com/

By using Twitter to track ODLs, you stop fighting to force people to use a given integration engine created just for that, like Google Health and HealthVault, and instead focus on improving the value of the ODL tracking system that people are already using, like Facebook or Twitter. But to do that, you need a generalizable approach for entering ODLs and for data mining those entries, so that you can get meaning at a higher, or at least different, level.

There are also several syntaxs available for generalizing the approach to use Twitter to track whatever you like. These are the ones that I am most interested in. So far I know about several:

Daytum has a twitter syntax. It uses direct messages and looks like this:

d daytum item : amount 
// simple data label and value
d daytum item [category, category] : amount
// same thing but with tagging...

Your.flowingdata.com has a richer syntax. It also uses direct messaging.

// yfd works with "action" and "value" pairs
d yfd weigh 160
d yfd exercised arms
d yfd watched Back to the Future
// but can be made more complex with units
d yfd drank 2 water
d yfd drank 1 coke
// and timestamps 
d yfd played xbox at 20:00
d yfd goodnight at 11:00pm
d yfd goodnight at 11pm

For each action yfd will ask you some information about the data type, asking you to choose between:

Categorical - If you're interested in the occurrence of the same action with different units e.g. ate corn
Event - If the point of interest is when something happens e.g. goodnight or pooped
Counter - If you're mostly interested in total times you've done something e.g. smoked 5 cigarettes
Measurement - If you want to see the trend over time of some value e.g. weigh 160 or blood-pressure 170

Pretty clever no?

The last one that I know about is the Grafitter syntax. So far this is pretty neat concept because it uses hashtags in a very clever way...

//hashtag with comma separated tags
#mood(happy,elated,drunk)
#mood(sad,sober)
// scales, like not busy
#busy(1)
// very busy
#busy(5)
//straight up numbers
#lbs(250)
#worked(10)

Tweet your eats uses DMs as well, and lets you include what you ate, as well as including calorie/fat/point tracking. So the syntax looks like

d tyeats #breakfast One bowl of cereal *c500
// the *c500 marks the tweet as 500 calories

Of course it is important to note the very common natural language patterns that are employed by different ODL generating software that is already logging to twitter, like runkeeper, which typically produces something like:

@meattwitter Just completed a 4.50 km run with @runkeeper. Check it out! http://rnkpr.com/aaaaa #RunKeeper

So now for my question(s)?

What other significant ODL syntax am I overlooking?
Is DM the right way to do data collection or should you focus on hashtags?
What other important "natural" ODLs are happening other than runkeeper etc?
Does anyone know of any formal research on this issue (ODL syntax in social media status updates)?
Does anyone know of any existing Open Source projects that implement this types of things?

update: Paul pointed out that the OMHE project does this kind of thing. http://code.google.com/p/omhe/ Here is the OMHE syntax, which already has a python based parser..

#The basic OMHE syntax follows this basic format"
[COMMAND_NAME]<VALUE><#[TAG]>

# Reporting WEIGHT (This is correct):
wt123.4

# In the previous example, COMMAND_NAME=wt and VALUE=123.4

# Reporting WEIGHT (Also Correct):
wt=123.4

# In the previous example, COMMAND_NAME=wt and VALUE=123.4

# Reporting WEIGHT with _TAGS_ (Also Correct) :
wt=123.4#mytag#myothertag

# The previous example has two tags: 'mytag' and 'myothertag'

# Weight is a command that requires a value (Incorrect):
wt

#You can never have an equal sign without a value. (Also Incorrect):
wt=

# Here is an OMHE string with two commands separated by white space " ".
# Says the command 'wt' (weight) has a value of '195' and blood glucose is 150.
wt195 bg=150

# Report the start of a menstrual cycle (correct):
# (Correct) mcycle is a command where value is not required 
mcycle

# Report the first day of a menstrual cycle:
# Notice we can still add tags even if no value is given 
mc

# Report the start of a menstrual cycle (Incorrect):
# You can't provide an equals "=" sign without a value: 
mc=

# Report the adherence to a health directive such as taking medication (correct):
# (Correct) did is a command where value is not required 
did

# Report the adherence to a health directive  to stretch arm (correct):
did=ARMSTRETCH

# Send Blood Glucose Level:
bg125

# Send Blood Pressure:
bp100d120p65

# Send Blood Pressure using the equals sign style:
bp=100d120p65

# Send Weight:
wt145
wt=145 #Express weight using the equals sign style
w78k   #Express weight in kilograms
wt145l  #Explicit express weight in pounds (lbs)
wt245.8 #Express fractional weight
wt245p8 #Another way to express fractional weight

# Send blood glucose, patient identifier, a note, and the date:
bg145 id213762732467234 nAllGood d20090117

# Sending blood glucose with a simple note tag (with spaces):
bg145#I'm*feeling*very*tired*today

# Report the start of a menstrual cycle:
mcycle

# Get a copy of your health benefits/insurance card:
gethc

# Send a copy of your health benefits card to someone via fax:
sendhc=6509840982#fax

# Send a copy of your health benefits card as a pdf to someone via email:
[email protected]#pdf

# Get a copy of your personal health record:
getphr

# Get a copy of your personal health record as a pdf:
getphr#pdf

# Get a copy of your personal health record in CCD format:
getphr#ccd

# Send a copy of your personal health record to someone in CCR format:
[email protected]#ccr

# Send a copy of your personal health record to someone in XML microformat:
[email protected]#microformat

My goal is to write a parser and data display tools under open source licenses and I am generally looking for what types of things I should support. So if you can think of other questions I should have asked to make a requirements list for such a project let me know!! For instance, I know that there are decent implementations of parsers for the standard Twitter syntax of mentions, DMs, replies and so forth, should what I am discussing extend that work, or be implemented entirely in parallel.

For the time being I am happy to assume that the system will not support "private" logging, unless someone can tell me how to do that in a succinct manner.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

救星 2024-09-21 19:14:55

Fred:

我有一些代码正在实际工作,用于健康跟踪器的几个新项目的代码。具体来说,我正在将其构建到“七”项目(以前称为“Body4Break”)中。

http://github.com/aviars/b4b

现在它只是根据哈希标签抓取评论,但我正在研究 RunKeeper 纯 OMHE 语法和其他可解析推文的自动摄取。

-艾伦

Fred:

I have some code working actually working on code on a couple new projects for wellness tracker. Specifically, I'm building this into the "Seven" project formerly "Body4Break".

http://github.com/aviars/b4b

Right now it just snags a comment based on a hash tag, but I'm investigating auto ingestion of RunKeeper pure OMHE syntax and other parse-able tweets.

-Alan

简美 2024-09-21 19:14:55

刚刚发现 Quantt quantter.com/

以及随附的语法。

http://blog.quantter.com/syntax

以及用于解释该语法的 API。

http://beta.quantter.com/api/documentation

Just found out about Quantt quantter.com/

And the accompanying syntax.

http://blog.quantter.com/syntax

as well as an API for interpreting that syntax.

http://beta.quantter.com/api/documentation

你又不是我 2024-09-21 19:14:54

嘿,弗雷德...你看过 OMHE 吗:http://code.google.com/p/ omhe/

或者 OpenMRS 消息传递社区中正在进行的工作...(从 OpenMRS 网站搜索消息传递)...

这些可能会给您一些有关消息传递语法的提示,因为 SMS 长度与 tweet 非常相似长度。 :)

希望这有帮助。

Hey, Fred... have you seen OMHE: http://code.google.com/p/omhe/

Or the work going on in the OpenMRS messaging community... (search for messaging from the OpenMRS website)...

Those might give you some hints on messaging syntaxes, given that SMS lengths are fairly analogous to tweet lengths. :)

Hope this helps.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文