Gmail Calendar Documents Reader Web more »
Recently Visited Groups | Help | Sign in
Google Groups Home
How I've designed it for now
There are currently too many topics in this group that display first. To make this topic appear first, remove this option from another topic.
There was an error processing your request. Please try again.
flag
  5 messages - Collapse all  -  Translate all to Translated (View all originals)
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
Belov, Charles  
View profile  
 More options Jun 2 2008, 3:05 pm
From: "Belov, Charles" <Charles.Be...@sfmta.com>
Date: Mon, 2 Jun 2008 12:05:16 -0700
Local: Mon, Jun 2 2008 3:05 pm
Subject: RE: How I've designed it for now
See also topic "5 new messages in 1 topic - digest"
Sorry about the mistitling.

> == 2 of 2 ==
> Date: Fri, May 30 2008 7:03 am
> From: "Roger Trias Sanz"  

By the way, why doesn't the individual message's subject line show up here?

> On the other hand, if at the moment you are just trying to get some
> feedback for the initial version of your tool and of the service
> alerts published by SFMTA and not to reach consensus for the ultimate
> standard, then I think this will work well for now. We'll continue
> implementing the Google-side service alert functionality and in some
> weeks, with more experience and more concrete applications, we can all
> see how it goes and iterate. Even if you don't have time to make
> changes later we can use any lessons learned working with this to make
> the next published service alerts better.

No, I am also trying to get it as close as possible so we don't get hit with future modification charges.  I need this file, too, to copy the headlines to our home page.

I've made an attempt at Solomonic wisdom in order to get this working and done.  My decision is that Microformats aren't quite where I need them to be, so I won't try to mix what I am making visible to the public and what I am making visible to machines.  So the RSS <description> tag will contain approximately:

<description><div class="content">[Text of the alert message that was sent to subscribers.]</div>

<div class="transitIncident" style="display:none">[Your proposed document tree. Data currently defined as human-readable will appear between tags, while data currently defined as machine-readable will appear in title attributes.  If I provide the machine-readable data I will not provide the human-readable data in this section.]</div>

<div class="vcalendar" style="display:none">[hCalendar document tree; human or machine data but not both for each class, as with transitIncident]</div></description>

I do think the various Microformats need to reach agreement as to how overlapping classes can be mutually parsed and non-overlapping classes ignored without requiring one Microformat to extend another and that non-agreeing Microformats can co-exist.  But at least I am pushing off that issue for now so I can get my spec finished.

I may need to add a couple more data to your doc tree, as this is the tree I plan to use for my scraping, but I will be consistent with your spec.

Hope this helps,
Charles "Chas" Belov
SFMTA Webmaster


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Roger Trias Sanz  
View profile  
 More options Jun 6 2008, 6:11 am
From: "Roger Trias Sanz" <roge...@google.com>
Date: Fri, 6 Jun 2008 12:11:28 +0200
Local: Fri, Jun 6 2008 6:11 am
Subject: Re: How I've designed it for now
Hi Chas,

(sorry for the delay, I've been terribly busy the last few days).

I like your idea:
- People will still get a readable message (the machine-readable part
will be hidden).
- The machine-readable part will be in HTML, not in XML (this is one
of the advantages of microformats) so special tools won't be strictly
needed to write them, and they can be easily embedded in a larger HTML
document such as the HTML payload of a post in an RSS or Atom feed.
- As we've seen in this discussion, the existing microformats still
have some issues, but we'll avoid them by, in effect, defining a new
microformat that suits our needs, instead of trying to reuse existing
ones which, as we've seen, aren't a perfect match.

Ok, so now we just need to agree on the machine-readable part. Since
we already had some iterations before, and our main points of
disagreement were on the human-vs-machine readability part, I think
this will be easy now. Later today I'll try to dig out the "latest"
version of that from the email thread, make the human-readable part
optional (it's ok for me if there's human-readable text interspersed
in the right places, but it won't be required, as the bulk of it will
go in the "content" block), and repost it here.

See you,

2008/6/2 Belov, Charles <Charles.Be...@sfmta.com>:


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Roger Trias Sanz  
View profile  
 More options Jun 10 2008, 5:54 am
From: "Roger Trias Sanz" <roge...@google.com>
Date: Tue, 10 Jun 2008 11:54:24 +0200
Local: Tues, Jun 10 2008 5:54 am
Subject: Re: How I've designed it for now
Oh, sorry, i hadn't seen that you proposed to have a "vcalendar" node
right under the "description" node. Is that meant to be when the alert
should be displayed, or when the incident is having an effect?
Or maybe this is meant to be "human-readable" only, and there will be
similar machine-readable dates under the "transitIncident" node?

2008/6/6 Roger Trias Sanz <roge...@google.com>:


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Chas_Belov_SFMTA  
View profile  
 More options Jun 11 2008, 1:33 pm
From: Chas_Belov_SFMTA <charles.be...@sfmta.com>
Date: Wed, 11 Jun 2008 10:33:07 -0700 (PDT)
Local: Wed, Jun 11 2008 1:33 pm
Subject: Re: How I've designed it for now
On Jun 10, 2:54 am, "Roger Trias Sanz" <roge...@google.com> wrote:

> Oh, sorry, i hadn't seen that you proposed to have a "vcalendar" node
> right under the "description" node. Is that meant to be when the alert
> should be displayed, or when the incident is having an effect?
> Or maybe this is meant to be "human-readable" only, and there will be
> similar machine-readable dates under the "transitIncident" node?

No, the vcalendar node is intended for microformat scrapers which read
the vcalendar node. I made it a separate node so I don't have to deal
with specific diferences between transitIncident and vcalendar
microformats. There will definitely be some data that is duplicated
across both nodes.

Since you are not interested in vcalendar microformat, your system can
ignore it. Other systems may be set up for vcalendar and not wish to
deal with the transitIncident microformat.

You won't miss out on anything you've expressed interest in by
scraping transitIncident and not vcalendar. Vcalendar will miss out on
the full semantics of the incident, but will still allow a system that
groks vcalendar to display the incident as a vcalendar event.

Hope this helps,
Charles "Chas" Belov


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Roger Trias Sanz  
View profile  
 More options Jun 13 2008, 9:52 am
From: "Roger Trias Sanz" <roge...@google.com>
Date: Fri, 13 Jun 2008 15:52:13 +0200
Local: Fri, Jun 13 2008 9:52 am
Subject: Re: How I've designed it for now

Ok, so then we'll have some repeated data in vcalendar and transitIncident.
I don't have anything against that, I just wanted to be sure that I
understood what you meant.

Here's another draft. Let's see if I didn't miss anything:

Changes:

I've moved the old "human-readable values only for now" to a "will add
later" section, as there's no point having them in what, for now, is a
machine-readable section only.

For the same reason, I've moved back to the old "abbr/title" way of dealing
with fields with both machine-readable and human-readable data, to more
closely follow that microformats idiom.

I've added the fields additionalText and moreInfoURL: had talked about them
in the conversation, but never actually got around to putting them in a nice
proposal.

I've reformatted the explanation so that it can still be understood even if
the email program cuts lines into two.

I've added a few examples at the end.

In your previous email you say that you won't provide both machine- and
human-readable data for "vcalendar" and "transitIncident". That's fine with
me, but having this in the standard suggests that it's forbidden to have
both. I think it may be better to say that it's ok to give just one, and
that if both are given then the "title" idiom should be used. Just after the
node list I've added yet another proposal on how to handle this. It will be
easy for both people and computers to make sense of data given in that
format. From your comments, I see that you'll be using options 2, 4, and 6.

-------

A transit incident is defined by the following HTML nodes. These can, for
example, be in the <description> node of an RSS post:

- content:
  Text of the alert message that was sent to subscribers

- vcalendar
  hCalendar document tree; human or machine data but not both for each class
  contains general date information for this alert.
  You may want to set the style to display:none for this node.

- transitIncident: surrounding node: machine-readable information about this
alert
  (however human-readable information can be included too)
  You most surely want to set the style to display:none for this node, so
that humans will read the "content" node above and not this.

- transitIncident.affectedResource: surrounding node, optionally repeated:
what is being affected by this alert. It contains:

- transitIncident.affectedResource.routeShortName: optional; if missing, all
routes affected; example: "N" or "71"

- transitIncident.affectedResource.stopName: optional; if missing, all stops
--maybe for a particular line-- affected; example: "Main Street"

- transitIncident.incidentDate: surrounding node, optional if all contents
are missing; when the incident has an effect. It contains:

- transitIncident.incidentDate.dtstart: start date+time; optional; if
missing, starts far in the past; ISO-formatted date is included in the
"title" attribute, as hCalendar does:
       <abbr class="dtstart" title="2008-05-16">Monday, May 16, 2008</abbr>

- transitIncident.incidentDate.dtend: end date+time; optional; if missing,
never ends; ISO-formatted date as in dtstart

- transitIncident.publishDate: surrounding node, optional if all contents
are missing; when we should tell about the incident. It contains:

- transitIncident.publishDate.dtstart: start date+time; optional; if
missing, starts far in the past; ISO-formatted date as in incidentDate

- transitIncident.publishDate.dtend: end date+time; optional; if missing,
never ends; ISO-formatted date as in incidentDate

- transitIncident.agencyName: optional; if missing, we can infer the agency
name from the feed this data comes from

- transitIncident.incidentId: optional; unique id that can later be used to
refer to this incident or update. If none is given, and we'll use the RSS
guid or the ATOM atom:id as the incidentId, prefixed with the string
"feed:".

- transitIncident.originalIncidentId: value of the incidentId field for a
previous post.

- transitIncident.updateType: optional; for updates, the kind of update.
Machine-readable values are "update" and "cancellation"; the machine
readable value is to be combined with an eventual human-readable value as
     <abbr class="updateType" title="cancellation">Clear</abbr>

- transitIncident.additionalText: optional; human-readable text which we'd
like displayed with this alert, and which does NOT repeat information
already given in the machine-readable fields.

- transitIncident.moreInfoURL: optional; URL pointing to a page with
additional information. We should only use this if the containing format
(RSS, Atom) does not provide a way to associate such URLs to a post.

In general, each node can contain either

1- some text which is both machine-readable and human-readable, in the
contents: <tag>contents</tag>
2- human-readable text only, in the contents: <tag>May Day, 2009</tag>;
however, some readers of your data may actually be machines, and may not be
able to make sense of this
3- human-readable text in the contents and machine-readable text in the
title attribute: <tag title="1234BDGC5xx465">Main Street</tag>
4- machine-readable text only, in the contents: <tag>1234BDGC5xx465</tag>;
however, unless you provide equivalent human-readable data somewhere else
and you mark this tag with style "display:none", you will confuse your human
readers because they'll see garbage
5- machine-readable text only, in the title attribute: <tag
title="1234BDGC65cx"></tag>; however, unless you provide equivalent
human-readable data somewhere else your human readers will be missing some
information.

6- And, as usual with microformats, human-readable data can be put anywhere
in the contents of a surrounding node, outside of the inner nodes, and will
be ignored by machine readers. For example

<div class="incidentDate">This text will be ignored by computers<span
class="dtstart">Since there is no 'title', computers will think this is a
date and will get confused</span>This will be ignored too</div>

To add a new incident:
- Post a "transitIncident".
 "affectedResource" is required, and can be repeated.
 "originalIncidentId" must not be present.
 "updateType" must not be present.
 All other fields are optional.

To update an existing incident:
- Post a "transitIncident".
 "originalIncidentId" must be present, and be the "incidentId" of the
incident that this is updating.
 "incidentId" is optional; if not given, we'll assign an incidentId to this
update post using the RSS guid or ATOM atom:id as described before.
 "updateType" must be present and set to "update".
 "affectedResource" is optional, and can be repeated; if present, we want to
change the list of affected resources.
 All other fields are optional. If missing, it means we don't want to update
it in the original post.

To clear an incident:
- Post a "transitIncident".
 "originalIncidentId" must be present, and be the "incidentId" of the
incident that this is updating.
 "updateType" must be present and set to "cancellation".
 All other fields must not be present.
 A machine-based client may still show this incident for some time
(indicating that it is cleared, however).

It is also possible to clear an incident by updating it (see before), with
an end effect date (incidentDate.dtend) in the past.

It is possible to force us to stop publishing an incident by updating it
(see before), with an end publish date (publishDate.dtend) in the past.

We will add the following fields in the future, when we have thought of a
good way to make them machine-readable:
- transitIncident.affectedResource.stopResourceType: optional; for
accessibility messages, it indicates which resource in a stop is affected
(elevator, escalator, wayside lift)
- transitIncident.affectedResource.stopResourceLocation: optional; for
accessibility messages, it indicates which resource in a stop is affected
(example: concourse to inbound platform)
- transitIncident.incidentDate.incidentRecurrence: optional
- transitIncident.incidentCause: optional
- transitIncident.incidentEffect: optional

Notes:

I've removed the field
- messageType: optional; human-readable content only, for now; example
values: transit alert, transit advisory, accessibility alert, accessibility
advisory. "Alert" means "unplanned event, effective now", and "advisory"
means "planned event" which I find redundant. Let's discuss if we want to
add it back.

Example for adding a new incident:

<description>
  <div class="content">Bank station is closed for repairs from April 12th to
April 16th. Please use Green station instead.</div>
  <div class="vcalendar" style="display:none">
    <span class="dtstart" title="2008-04-12">April 12th, 2008</span>
    <span class="dtend" title="2008-04-16">April 16th, 2008</span>
  </div>
  <div class="transitIncident" style="display:none">
    <div class="affectedResource">
      <span class="stopName">Bank</span>
    </div>
    <div class="incidentDate">
      <span class="dtstart" title="2008-04-12">April 12th, 2008</span>
      <span class="dtend" title="2008-04-16">April 16th, 2008</span>
    </div>
    <div class="publishDate">
      <span class="dtend" title="2008-04-16">April 16th, 2008</span>
    </div>
    <div class="additionalText">Please use Green station instead.</div>
    <a class="moreInfoURL" href="www.someagency.com?alert=57625">Click here
for more information.</a>
    <div class="incidentId">57625</div>
  </div>
</description>

The same example with the fields that I just said "would be added in the
future", with some example values of how I'd like them to look like:

<description>
  <div class="content">Bank station is closed for repairs from April 12th to
April 16th. Please use Green station instead.</div>
  <div class="vcalendar" style="display:none">
    <span class="dtstart" title="2008-04-12">April 12th, 2008</span>
    <span class="dtend" title="2008-04-16">April 16th, 2008</span>
  </div>
  <div class="transitIncident" style="display:none">
    <div class="affectedResource">
...

read more »


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
End of messages
« Back to Discussions « Newer topic     Older topic »

Create a group - Google Groups - Google Home - Terms of Service - Privacy Policy
©2009 Google