Мета-синтаксис чириканья для ODL - PullRequest
3 голосов
/ 14 августа 2010

Меня интересует идея использования Tweets / SMS / Identica или других систем коротких текстовых обновлений статуса для отслеживания наблюдений за повседневной жизнью (или ODL). Основная идея заключается в том, что вы отправляете обновления статуса в Twitter или Identi.ca или, возможно, просто в виде SMS-сообщения или чего-либо еще в формате, который впоследствии можно будет найти для отображения шаблонов.

Вы можете использовать его, чтобы отслеживать упражнения, диеты, ваши предпочтения в кино, все, что вам нравится.

Для этого вам необходим синтаксис, позволяющий как людям, так и компьютерам легко анализировать обновления вашего статуса. Синтаксис должен быть плотным, который поддерживает малое количество символов, но должен быть читаемым человеком.

Эта идея не нова, и существует множество приложений для Твиттера для отслеживания упражнений и привычек питания. Twitter - это, по сути, короткий текстовый носитель ODL, который вы можете легко увидеть, посмотрев на поисковый запрос #feeling http://search.twitter.com/search?q=%23feeling или ищет #hurts http://search.twitter.com/search?q=%23hurts или приложения, предназначенные для добычи богатства данных 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)

Чирикать, что вы едите, также использует DM , и позволяет вам включать то, что вы съели, а также отслеживание калорий / жиров / баллов. Таким образом, синтаксис выглядит как

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

Конечно, важно отметить очень распространенные шаблоны естественного языка, которые используются различными программами для генерации ODL, которые уже регистрируются в твиттере, например runkeeper, который обычно выдает что-то вроде:

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

Так что теперь на мой вопрос (ы)?

Какой еще важный синтаксис ODL я пропускаю? Является ли DM правильным способом сбора данных или вы должны сосредоточиться на хэштегах? Какие другие важные "естественные" ODL происходят помимо бегуна и т. Д.? Кто-нибудь знает какие-либо официальные исследования по этой проблеме (синтаксис ODL в обновлениях статуса социальных сетей)? Кто-нибудь знает о каких-либо существующих проектах с открытым исходным кодом, которые реализуют этот тип вещей?

обновление: Пол указал, что проект 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:
sendhc=nurse@mydoc.com#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:
sendphrnurse@mydoc.com#ccr

# Send a copy of your personal health record to someone in XML microformat:
sendphr=nurse@mydoc.com#microformat

Моя цель - написать инструменты синтаксического анализа и отображения данных под лицензиями с открытым исходным кодом, и я обычно ищу, какие типы вещей я должен поддерживать. Так что, если вы можете подумать о других вопросах, которые я должен был задать, чтобы составить список требований для такого проекта, дайте мне знать !! Например, я знаю, что есть приличные реализации синтаксических анализаторов для стандартного синтаксиса Twitter, в которых упоминаются, DM, ответы и т. Д., Если то, что я обсуждаю, расширяет эту работу или реализуется полностью параллельно.

В настоящее время я рад предположить, что система не будет поддерживать "частную" регистрацию, если кто-то не скажет мне, как это сделать кратким образом.

Ответы [ 3 ]

1 голос
/ 01 декабря 2010

Фред:

У меня есть код, работающий над парой новых проектов для wellness tracker. В частности, я встраиваю это в проект "Семь", ранее "Body4Break".

http://github.com/aviars/b4b

Сейчас он просто получает комментарий, основанный на хеш-теге, но я изучаю возможность автоматического использования синтаксиса RunHeeper pure OMHE и других твитов с возможностью разбора.

-Alan

1 голос
/ 19 августа 2010

Привет, Фред ... ты видел OMHE: http://code.google.com/p/omhe/

Или работа, продолжающаяся в сообществе обмена сообщениями OpenMRS ... (поиск сообщений на веб-сайте OpenMRS) ...

Они могут дать вам некоторые подсказки по синтаксису сообщений, учитывая, что длины SMS довольно аналогичны длинам твитов. :)

Надеюсь, это поможет.

0 голосов
/ 15 декабря 2010

Только что узнал о Quantt quantter.com/

и сопровождающий синтаксис.

http://blog.quantter.com/syntax

, а также API для интерпретации этого синтаксиса.

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

...