CN109564654A - 具有针对日历应用的基于意图的时间的事件存储和结构 - Google Patents
具有针对日历应用的基于意图的时间的事件存储和结构 Download PDFInfo
- Publication number
- CN109564654A CN109564654A CN201780045152.5A CN201780045152A CN109564654A CN 109564654 A CN109564654 A CN 109564654A CN 201780045152 A CN201780045152 A CN 201780045152A CN 109564654 A CN109564654 A CN 109564654A
- Authority
- CN
- China
- Prior art keywords
- time
- event
- intention
- calendar
- appropriate
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/0482—Interaction with lists of selectable items, e.g. menus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/109—Time management, e.g. calendars, reminders, meetings or time accounting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04847—Interaction techniques to control parameter settings, e.g. interaction with sliders or dials
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Human Resources & Organizations (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Entrepreneurship & Innovation (AREA)
- Strategic Management (AREA)
- Human Computer Interaction (AREA)
- Operations Research (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Quality & Reliability (AREA)
- Marketing (AREA)
- Economics (AREA)
- Data Mining & Analysis (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
可以通过提供可用的意图时间选项集合来针对日历应用存储日历事件。当接收到指示针对日历项的事件的输入时,可以从可用的意图时间选项集合中确定适当意图时间,并且可以识别适合于该适当意图时间的任何参数。随后可以根据适当意图时间以及从输入识别的参数中的任何参数,利用开始属性来存储事件。可用的意图时间选项集合可以包括标准时间选项以及一个或多个基于触发的时间选项,例如基于天文现象的时间和基于潮汐的时间。
Description
背景技术
例如,诸如iCalendar之类的日历文件格式使用例如具有指示日历属性的主体和指定事件的日历组件的日历对象。可以用具有开始时间属性和结束时间属性的日历文件格式来描述事件。当然,在一些情况下,事件可能没有具体的时间;相反,仅使用日期。可以包括其他属性来描述事件,包括可以包含例如经由主题行和日历项的主体来提供的描述性文本的摘要和/或描述属性。日历文件格式的扩展可以允许包含任意数量的另外属性。
日历应用当前将时间存储为日期和当天的时间。例如,谷歌(Google)使用具有“start”形式的事件结构:{“date”:date,“date Time”:datetime,“timeZone”:string}。举另一示例,微软(Microsoft)Office 365使用DateTimeTimeZone,它将某一时间点的日期、时间和时区描述为“DateTime”:DateTime(组合的日期和时间表示中的单个时间点),“TimeZone”:string。有关特定日期和时间的潜在目的的任何信息(除了用户在项目中作为描述性文本输入的内容之外)都不会以当前日期和时间格式存储。例如,日落时间将被日历应用存储为日期/时间,而不必提供日期和时间与潜在事件(针对当天和位置的日落)的关联,其中最初从该事件来获得该时间。
发明内容
描述了具有针对日历应用的基于意图的时间的事件存储和结构。提供了基于意图的时间,其中事件的日期和时间以意图时间(intent-time)格式来存储。
可以通过提供可用的意图时间选项集合来存储针对日历应用的日历事件。当接收到指示日历项的事件的输入时,可以对输入进行分类以从该可用的意图时间选项集合中确定适当意图时间。可以从输入识别适合于该适当意图时间的任何参数,并且可以根据适当意图时间和从输入识别的参数,利用开始和结束属性来存储事件。意图时间可以保留为何在特定时间安排事件的潜在意图。
通过从事件的开始和结束属性中提取信息以确定事件的相应意图时间,可以经过日历应用来访问与用户日历相关联地存储的事件的潜在意图。可以提供标识符以从日历应用所提供的可用意图时间指示特定的意图时间。在一些情况下,当可用时,可以提供最初从创建事件的原始输入识别并且与事件的属性一起存储的一个或多个参数。
提供本发明内容以用简化形式引入一些概念,这些概念以下在详细描述中进一步描述。本发明内容并非旨在标识所要求保护的主题内容的关键特征或必要特征,也并非旨在用于限制所要求保护的主题内容的范围。
附图说明
图1示出了可以由日历应用执行的用于存储日历事件的过程。
图2示出了利用所描述的日历事件的存储和结构的过程。
图3A-图3B示出了可以执行图2的过程的示例性场景。
图4示出了日历请求和示例性存储结构。
图5A和图5B呈现了示出可用于实现本文描述的技术的系统的组件的框图。
图6示出了可以执行所描述的系统和技术的示例性系统架构。
具体实施方式
描述了具有针对日历应用的基于意图的时间的事件存储和结构。提供了基于意图的时间,其中以意图时间格式来存储事件的日期和时间。意图时间格式不仅允许以更易于操作、量化和访问的方式更详细地存储信息,意图时间格式还保留有关事件的潜在意图的信息,以便在查询时,日历应用可以至少指示事件的开始时间或结束时间基于什么内容。
日历应用可以包括本地(在用户的设备处)的组件和驻留在服务器上的组件,该服务器可以提供跨多个设备的日历项的访问和同步和/或用户的日历项的存储。在一些情况下,日历应用是更大的个人信息管理服务的一部分,该服务形成用于一个以上用户的协调存储系统。在各种实现方式中,日历应用可以是台式或膝上型设备上的富客户端(例如,Microsoft)、移动设备上的移动客户端(例如,Android上的日历应用、的iCal、Windows的或来自Any.do的Cal),或作为可经由web浏览器访问的云服务来运行的应用的一部分(例如,Calendar、OutlookWeb App(OWA))。
图1示出了可以由日历应用执行的用于存储日历事件的过程。支持日历应用的系统(例如,存储用户的日历项以便跨多个平台访问的系统)可以通过提供可用的意图时间选项集合来促进基于意图的时间。该集合可以包括标准时间选项(例如,没有触发的开始时间)和至少一个基于触发的时间。触发是指实际时间所基于的事件或事情。虽然位置可能有助于触发事件的时间,但基于触发的时间并不仅仅指时区的变化(因为它被认为是标准时间选项之一)。
当正在创建新事件时,由日历应用接收(101)指示日历项的事件的输入。如果输入可以被系统分类或理解为包含与事件相关的信息,则认为该输入指示日历项的事件。该信息通常涉及日期和时间,并且通常包括主题以及用户描述事件的其他信息。系统可以理解正在通过用于创建新日历事件的显式命令(例如,经由用户界面中的图标)或隐式命令(例如,经由指示正在调度某事物的输入(文本或语言))来创建新事件。
输入可以是通过例如键盘输入(例如,触摸屏键盘、鼠标、键盘)或口头输入(例如,经由个人助理,例如)接收的自然语言字符串。聊天框界面(用于键控或口头输入)可以作为日历应用的一部分(或者甚至作为可以与日历应用通信的操作系统或个人数字助理的一部分)来提供。在一些情况下,可以使用表单来接收针对特定意图时间的参数的显式输入。
一旦接收到指示日历项的事件的输入(101),就对该输入进行分析以确定适当意图时间选项(102)。可以通过根据可用的意图时间选项对输入进行分类以从可用的意图时间选项中识别适当意图时间来确定适当意图时间选项,以使得可以保存输入所描述的潜在意图。可以使用来自对事件时间的描述的术语(以及任何可识别的实体)来针对可能的意图时间进行分类。除了识别输入的意图之外,还可以识别偏移、条件或两者并将其存储为事件的属性(或参数)。例如,系统可以存储诸如“如果不下雨我想要做这件事”的条件。因此,可以对输入进行分析以识别适合于适当意图时间选项的任何参数(103)。
例如,可以使用意图映射处理器来确定适当的意图时间。意图映射处理器可以包括分类器或状态机,以从目标识别最相关的意图时间选项。有时可能识别出一个以上选项(或者找不到达到某个相关性阈值的选项)。在那些情况下,工作流可以发起从用户请求另外的信息,或者可以执行其他类型的合适过程以识别适当意图时间格式。意图映射处理器还可以包括用于参数意图的槽填充器(slot filler)。槽填充器可以用于提取信息甚至关系以用于分类和/或识别适当意图时间(及其参数)。因此,可以作为分类步骤的一部分或者在分类步骤期间执行槽填充器评估。
分类活动(和其他过程)可以由在计算设备上本地执行、或者在服务器上作为基于web的日历应用(或者用于瘦客户端日历应用)的一部分执行的日历应用来执行。
可用的意图时间格式可以包括标准时间(例如,开始时间、结束时间、时区格式)、基于天文的时间(例如,日出、日落、月出、月落)、以及基于潮汐的时间(例如,涨潮、退潮)中的两个或更多个。设想了其他类型的意图时间,例如但不限于基于体育事件的时间(例如,基于体育事件(例如棒球比赛或足球比赛)的开始或结束时间的时间,其可以在赛季中变化)以及甚至基于运输的时间(例如,基于飞机或火车时刻表的出发或到达的时间)。
对于基于体育事件的时间,系统可以查找体育日历(在日历应用的UI中呈现事件时执行计算期间)并识别指定比赛在指定日期开始和/或结束的时间。作为说明,如果用户输入是“我想在Mariner的比赛之后吃晚餐”,则系统可以查找比赛预定结束的时间(例如,通过使用体育日历的索引)并应用偏移以例如得到晚上8点的时间。系统不将时间存储为晚上8点,而是以体育时间格式来存储(这使得系统在请求日历的特定视图时执行计算)。由于事件被存储为体育时间格式,因此可以保留潜在意图(在体育事件附近安排晚餐)。因此,如果该用户(或具有用户日历的权限的另一用户)稍后想知道为何晚餐被安排在当天那么晚的时间或者将晚餐移至另一日期,则可以理解该时间的原因并相应地调整时间。
除了标准时间格式之外或作为标准时间格式的一部分,现有属性可以用于意图时间。例如,在对用户输入进行分类时,可以识别使得用户能够设置不依赖于时区的事件的开始时间的“挂钟”属性。作为说明,如果用户输入是“我想在24日上午9点吃早餐”,则系统可以确定意图时间是“挂钟”时间并且应该在用户的日历上显示为上午9点,而不管在安排事件时用户所在的时区。以此方式,如果用户观看针对访问中国而进行时间调整的日历,则即使在用户在华盛顿州Kirkland时给出原始输入,该事件仍将在他们的日历上显示为上午9点。
一旦识别出适当意图时间,就可以根据该意图时间的格式来存储事件(104)。例如,事件的Start(开始)属性的类型是允许派生类指定不同参数的抽象类,并且每个派生类可以基于其自己的特征来计算确切的时间,而不是仅具有由日历应用存储时的日期和当天的确切时间描述的事件。以此方式,可以根据适当的意图时间和从输入识别的任何参数,利用开始属性来存储时间。当然,除了“开始”之外,还可以计算和/或识别“结束”。
事件可以存储为类Event(事件),该Event具有指示意图的时间的属性,该属性可以是常规的“开始”日期时间的补充或替代。意图的时间可以用于存储由端用户传递的原始参数。这些参数可以用于重建具有正确信息的用户界面(在日、周、月或其他日历视图中查看时),并计算在不同日期中重复事件的确切时间。还可以搜索关于意图的时间(和存储的参数)的信息以操纵(例如,排序)事件、量化(例如,执行分析)事件、以及访问事件的潜在意图。
可以通过从事件的属性中提取信息以确定事件的相应意图时间,经过日历应用来访问与用户日历相关联地存储的事件的潜在意图。当读取事件的时间时,可以确定意图时间的类型。可以提供标识符以从日历应用所提供的可用意图时间指示特定意图时间。标识符可以存储为事件的属性。标识符可以是意图时间类型的人类可读名称或者用于映射到意图时间类型的人类可读名称的数据(例如,指示意图的用户可读触发)。在一些情况下,当可用时,可以提供最初从创建事件的原始输入识别并且与事件的属性一起存储的一个或多个参数。
图2示出了利用所描述的日历事件的存储和结构的过程。参考图2,系统可以接收针对所存储事件的意图的请求(201)。请求的源可以是客户端日历应用或希望访问、操纵或量化(例如,用于分析)事件信息的某种其他应用或服务。该请求可以包括事件标识符,该事件标识符用于针对与事件相关联的意图时间标识符来搜索存储事件的存储资源(202)。事件的意图可以从意图时间标识符(203)直接地(例如,因为意图时间标识符在用户可读表单中)或间接地(例如,在意图时间标识符可以被映射到用户可读表单的情况下)识别。可以将所识别的意图提供给请求的源(204)。例如,可以对日历应用作出针对意图时间类型的请求。日历应用可以提取或以其他方式读取标识符,并提供意图时间类型的人类可读名称。该信息可以响应于与用户日历上显示的事件的某种交互而向用户显示,其中该事件被应用理解为指示针对意图时间类型的请求。
图3A和图3B示出了可以执行图2的过程的示例性场景。例如,如图3A中所示出的,标记为“晚餐”302的事件301在用户日历310中被示为开始于时间311,该时间311在图形用户界面300中被标记为晚上8点。可以使用交互(例如用户利用光标在事件上悬停或用户触摸(320)事件301的一部分,如图3B中所示出的)来指示针对意图时间类型的请求;并且因此,响应于接收到指示(通过用户悬停或触摸事件),日历应用读取标识符并提供意图时间类型的人类可读描述,在该示例中该意图时间是基于体育事件的时间(例如,经由针对图2所描述的过程)。所得到的信息可以在诸如图3B中所示出的窗口325中呈现给用户,或者代替事件主题(未示出)或以某种其他合适的方式呈现给用户。参数(例如“Mariner的比赛”)可能已经利用与基于体育事件的时间相关联的开始时间来存储,并且该信息也被提供给用户以提供关于该时间基于什么体育事件的另外信息。
因此,意图时间格式不仅允许以易于操纵、量化和访问的方式更详细地存储信息,意图时间格式还保留关于事件的潜在意图的信息,以使得当查询时,日历应用可以至少指示事件的开始时间是基于什么内容。
以伪代码/伪语言形式示出具有意图时间结构的日历应用的以下事件示例。
在一个示例中,事件可以表示为:
class Event{...string Subject;EventTime StartTime;DateTimeOffsetStart;...}.
EventTime表示事件的实际时间;它是一种抽象类型,因为现在可以用不同的方式来表示时间。事件的实际时间变为基于触发事件的时间的偏移。触发事件的时间可以基于任何数量的事物,包括自然现象。
EventTime可表示为:
abstract class EventTime{TimeSpan Offset;DateTimeOffset GetActualTime(DateTimeOffset date){Return this.GetTriggerTime(date)+this.Offset;}abstractDateTimeOffset GetTriggerTime(DateTimeOffset date);}。
应该注意,被称为Offset(偏移)的TimeSpan属性独立于事件的“提醒”;它用于设置事件将在触发之前或之后多久时间发生。如果偏移为正,则指示触发之后的时间。如果偏移为负,则指示触发之前的时间。如果偏移为零,则事件时间将与触发相同。GetActualTime返回事件在给定日期的实际时间,并且GetTriggerTime返回触发在给定日期的时间。
由EventTime表示的意图的时间可以是固定时间(或标准时间格式),其可以用具有固定日期、时间和时区的常规方式来表示。伪语言表示可以是class FixedTime:EventTime{DateTimeOffset DateTime;override DateTimeOffset GetTriggerTime(DateTimeOffset date){return this.DateTime;}}。在固定时间,触发时间(函数中)是由用户指定的任何时间以使得不存在偏移。
有时事件的实际时间因位置而变化。为了处理那些类型的事件,EventTime可以被表示为抽象类LocationBasedTime:EventTime{GeographyPoint Location;StringLocationName;}。
GeographyPointLocation是在计算事件的时间时应该使用的地理点(纬度,经度)。String LocationName是指用户界面要使用的对位置的人类可读描述。
系统可以支持多种天文现象,例如,enum AstronomicalPhenomena{Sunrise,SolarNoon,Sunset,Moonrise,Moonset}。因此,对于基于天文现象而变化的事件的实际时间(也是因位置而变化的时间),AstronomicalEventTime可以表示为classAstronomicalEventTime:LocationBasedTime{AstronomicalPhenomena Phenomena;DateTimeOffset GetTriggerTime(DateTimeOffset date){returnGetTimeOfAstronomicalPhenomena(date,this.Phenomena,this.Location);}}。
AstronomicalPhenomena Phenomena描述了事件将执行的天文计算的类型(“Phenomena”是对使用的哪种天文现象的指示符)。GetTriggerTime计算识别在指定位置发生指定的天文现象的时间。
另一种自然变化的时间基于潮汐。举例而言,系统可以支持enum TidePhenomena{FirstHighTide,FirstLowTide,SecondHighTide,SecondLowTide}。因此,对于基于潮汐而变化的事件的实际时间(其也是因位置而变化的时间),TideEventTime可以表示为classTideEventTime:EventTime{String StationName;TidePhenomena Phenomena;DateTimeOffset GetTriggerTime(DateTimeOffset date){returnGetTidePhenomenaTime(date,this.Phenomena,this.StationName);}}。
StationName是提供潮位(tide level)的站点的名称。TidePhenomena Phenomena描述了事件将具有的潮汐计算类型。GetTriggerTime计算识别在指定位置(基于站点名称)何时发生指定朝夕。
例如,可以如下创建常规的固定时间事件(用伪语言):
event=new Event();
event.StartTime=new FixedTime{Date Time=
fixed time as entered by user}}
event.Start=
event.StartTime.GetActualTime(fixed_date_and_time_as_entered_by_user
);
...
在重复发生事件的情况下,通过利用每个特定重复实例的日期调用事件event.StartTime.GetActualTime来计算每次重复的“Start”。由于重复可以是无限的,因此当安排日历的客户端从系统请求日历视图时,系统仅需要计算每个实例的“Start”。另一方面,时间取决于天文现象(或其他非模式重复事件)的事件利用其他类(基于意图的时间)来创建。
以下提供了新事件的示例性场景和相应的事件结构。
故事1:John正在野营旅行。他想看日出,所以他要求Cortana“在日出前半小时叫醒我”。基于他的设备的位置,Cortana知道今天的日期以及John所在的纬度和经度,并创建日历事件,该事件具有“明天,日出前30分钟@(维度,经度)(Tomorrow,0:30m BEFORESUNRISE@(lat,long))”的相对时间。这变成:
event=new Event();
event.StartTime=new AstronomicalEventTime{Offset=
TimeSpan.FromMinutes(-30),Phenomena=
AstronomicalPhenomena.Sunrise,Location=GeoLocation.Create(lat,Ion)}
event.Start=event.StartTime.GetActualTime(DateTime.Now.Date.AddDays(l))。
故事2:Kate住在Kirkland并且想在每个星期五日落之前回家。她在日历应用中创建了重复出现的事件,该事件具有“每星期五,日落前1个小时@Wirkland,WA(EveryFriday,1H BEFORE SUNSET@Wirkland,WA)”的相对时间。取决于一年中的日期,该事件的每次出现都发生在不同的时间,但Kate不需要手动计算它们;系统简单地利用正确的时间来设置每次出现。在这种情况下,系统可以使用诸如从Bing或Google可获得的地理定位服务来将位置的人类表达解析为一组坐标,并将其存储在事件中。
event=new Event();
event.Recurrence=new WeeklyRecurrencePattern{DaysOfWeek=(Friday)}
event.StartTime=new AstronomicalEventTime{Offset=
TimeSpan.FromHours(-l),Phenomena=
AstronomicalPhenomena.Sunset,LocationName="Kirkland,WA",Location=GetCoordinates("Kirkland,WA")}
应该注意,在这种情况下,系统不需要预先计算“Start”时间;事件出现的每个实例将有其自己的时间。在提供日历视图时,系统可以通过调用event.StartTime.GetActualTime(day_of_the_occurence)来计算每次出现的确切时间。
故事3:Peter想要在潮汐低潮时去看潮池,所以他在他的日历中创建了新活动,该活动具有“明天,早晨低潮之前15分钟,@Deception Pass,WA(Tomorrow,15minutes BEFORELOW MORNING TIDE@Deception Pass,WA)”的相对时间。
event=new Event();
event.StartTime=new TideEventTime{Offset=TimeSpan.FromMinutes(-15),
Phenomena=TidePhenomena.FirstLowTide,LocationName="Deception Pass,WA",Location=GetCoordinates("Deception Pass,WA")}
event.Start=event.StartTime.GetActualTime(DateTime.Now.Date.AddDays(l))。
从示例中可以看出,意图时间是多态的,因为时间是以不同的方式来描述的。事件的时间(例如,EventTime)可以保存不映射到某种固定内容的一个或多个参数,而是使用基础公式/函数,对于给定的一天,可以计算该公式/函数以确定事件在当天的时间。取决于复杂度,可以在服务器或客户端设备上计算这些函数。
图4示出了日历请求和示例性存储结构。参考图4,当用户选择查看日历401时,用户计算设备400处的客户端日历应用从存储资源420(或管理存储资源的服务器)请求(410)日历视图。请求410可以包括开始日期411、结束日期412以及日历标识符(Cid)413。开始和结束日期是指用户想要看到的特定视图中可用的日期(例如,在该示例中,5月1日到5月31日)。日历服务在存储在存储资源420中的结构化数据(例如,日历数据库422)中从日历id中识别日历,并利用与该日历id相关联的事件(例如,来自事件数据库424)来填充日历。日历应用接收落入所请求的日期范围内的事件。这些事件可能包括基于意图时间的事件(其由对象EventTime指示)。例如,在该图示中,如果Cid是用户的家庭日历,则基于日出的时间事件425被包括在事件中。为了显示日历视图,客户日历应用可以计算时间,或者服务可以计算时间,以使得事件在用户的日历中在适当的时间显示。
在一种实现方式中,对象意图时间(或“EventTime”)可以具有从该对象派生的多个类。一个类可以是标准时间(包含正常的日期和时间信息),并且另一个类可以是基于位置的时间,其可以包括纬度和经度的属性。在基于位置的时间中,子类可以包括但不限于日落、日出、月落和月出。另一个类可以是基于潮汐的时间,其可以包含海军站名称的属性(这是潮汐表的索引)。
在一些情况下,基于位置的时间的计算可以是可以在客户端设备处执行的函数。示例性计算包括,针对日出或日落计算当前日期、平均太阳正午、太阳平均异常、中心方程、黄道经度、太阳转运、太阳赤纬、时角、以及最后使用日出/日落的实际儒略日期的日出和日落以及鉴于时角的太阳运转。在一些情况下,可以调用API,该API也可以提供太阳正午、民用曙光始、民用曙光终、航海曙光始、航海曙光终、天文曙光始、天文曙光终的时间。
图5A和图5B呈现了示出可以用于实现本文所描述的系统和技术的系统的各组件的框图。
参考图5A,系统500可以表示计算设备,例如但不限于个人计算机、平板计算机、阅读器、移动设备、个人数字助理、可穿戴计算机(例如,具有手表、眼镜、服装的形式)、智能电话、膝上型计算机(笔记本或上网本)、游戏设备或控制台、台式计算机或智能电视机。因此,可以并入针对系统500所描述的更多或更少的元件来实现特定的计算设备。
例如,系统500包括一个或多个处理器的处理系统505,以根据存储在存储系统515上的软件510的指令来变换或操纵数据。处理系统505的处理器的示例包括通用中央处理单元、专用处理器和逻辑设备、以及任何其他类型的处理设备、其组合或变型。
存储系统515可以包括可由处理系统505读取并且能够存储包括日历应用520和/或浏览应用525的软件510的任何计算机可读存储介质。
存储系统515可以包括以用于存储信息(例如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术来实现的易失性和非易失性、可移动和不可移动介质。存储介质的示例包括随机存取存储器、只读存储器、磁盘、光盘、CD、DVD、闪存、虚拟存储器和非虚拟存储器、盒式磁带、磁带、磁盘存储或其他磁存储设备、或者任何其他合适的存储介质。在任何情况下,存储介质都不是传播的信号或载波。
存储系统515可以实现为单个存储设备,但也可以跨相对于彼此共置或分布的多个存储设备或子系统实现。存储系统515可以包括能够与处理器505进行通信的另外元件,例如控制器。
软件510可以用程序指令来实现,并且除了其它功能之外,当一般由系统500或者特别由处理系统505执行时,还可以指导系统500或处理系统505的一个或多个处理器如本文所描述地进行操作。
软件510可以包括操作系统518和应用程序(例如日历应用520和/或web浏览应用525)。在一些情况下,软件510可以包括意图映射处理器(具有分类器和/或槽填充器)。设备操作系统518通常控制和协调计算设备中的各种组件的功能,从而提供更简单的方式以供应用与下级接口(例如网络接口)连接。操作系统的非限制性示例包括来自微软公司的来自苹果公司的iOSTM、来自谷歌公司的OS、以及来自Canonical的Linux OS的Ubuntu变种。
应当注意,操作系统518可以在计算设备上在本机实现,也可以在本机设备操作系统(OS)上运行的软件虚拟化层上实现。虽然在图5A中未描绘,但虚拟化OS层可以被认为是操作系统空间内的另外嵌套分组,每个分组包含OS、应用和API。
通常,当软件被加载到处理系统505中并且执行时,软件可以整体地将计算系统500从通用计算系统变换为如本文所描述的针对每种实现方式而定制的专用计算系统。实际上,存储系统515上的编码软件可以变换存储系统515的物理结构。对物理结构的特定变换可以取决于本描述的不同实现方式中的各种因素。这些因素的示例可以包括但不限于用于实现存储系统515的存储介质的技术以及计算机存储介质是被表征为主要存储还是辅助存储。
系统还可以包括用户界面系统530,其可以包括输入/输出(I/O)设备和实现用户与系统500之间的通信的组件。用户界面系统530可以包括输入设备,例如鼠标531、跟踪板(未示出)、键盘532、用于从用户接收触摸手势的触摸设备533、用于检测用户的非触摸手势和其他运动的运动输入设备534、用于检测语音的麦克风536、以及其他类型输入设备及其相关的能够接收用户输入的处理元件。
用户界面系统530还可以包括输出设备,例如显示屏535、扬声器(未示出)、用于触觉反馈的触觉设备(未示出)、以及其他类型的输出设备。在某些情况下,输入和输出设备可以组合在单个设备中,例如既描绘图像又接收来自用户的触摸手势输入的触摸屏显示器。可以以无数种方式在显示器535上描绘视觉输出,从而呈现图形用户界面元素、文本、图像、视频、通知、虚拟按钮、虚拟键盘、或者能够以视觉形式描绘的任何其他类型的信息。
用户界面系统530还可以包括由OS执行的用户界面软件和相关联的软件(例如,用于图形芯片和输入设备),以支持各种用户输入和输出设备。相关联的软件帮助OS使用所定义的机制将用户界面硬件事件传送到应用程序。包括用户界面软件的用户界面系统530可以支持图形用户界面、自然用户界面、或任何其他类型的用户界面。例如,可以通过用户界面系统530来呈现本文所描述的日历视图和日历事件创建和搜索。
通信接口540可以包括允许在一个或多个通信网络(未示出)上与其他计算系统进行通信的通信连接和设备。一起允许系统间通信的连接和设备的示例可以包括网络接口卡、天线、功率放大器、RF电路、收发机以及其他通信电路。连接和设备可以在通信介质(例如金属、玻璃、空气或任何其他合适的通信介质)上进行通信,以便与其他计算系统或系统网络交换通信。去往和来自通信接口的传输由OS 518控制,OS 518在必要时向应用通知通信事件。
应该注意,系统500的许多元件可包括在片上系统(SoC)设备中。这些元件可以包括但不限于处理系统505、通信接口540、以及甚至存储系统515的元件。
计算系统500通常旨在表示计算系统,利用该计算系统部署和执行软件以便实现如本文所描述的日历应用的应用、组件或服务。在一些情况下,计算系统500的各方面还可以表示可以在其上暂存软件、并且可以从其中将软件分发、传输、下载或以其他方式提供给另一计算系统以供部署和执行或者另外分发的计算系统。
本文所描述的某些方面可以在例如图5B中所示出的系统上执行。参考图5B,系统550可以在单个计算设备内实现,或者跨协作执行程序指令的多个计算设备或子系统分布。系统550可以包括一个或多个刀片式服务器设备、独立服务器设备、个人计算机、路由器、集线器、交换机、网桥、防火墙设备、入侵检测设备、大型计算机、网络附连存储设备以及其他类型的计算设备。可以根据任何合适的计算机架构(例如对称多处理(SMP)架构或非统一存储器访问(NUMA)架构)来配置系统硬件。
系统550可以包括处理系统555,处理系统555可以包括一个或多个处理器和/或从存储系统565取回并执行软件560的其他电路。处理系统555可以在单个处理设备中实现,但也可以跨协作执行程序指令的多个处理设备或子系统分布。
处理系统555的示例包括通用中央处理单元、专用处理器和逻辑设备,以及任何其他类型的处理设备、其组合或变型。一个或多个处理设备可以包括多处理器或多核处理器,并且可以根据一个或多个合适的指令集来操作,包括但不限于精简指令集计算(RISC)指令集、复杂指令集计算(CISC)指令集、或其组合。在某些实施例中,作为通用CPU的替代或补充,可以包括一个或多个数字信号处理器(DSP)作为系统的计算机硬件的一部分。
与图5A的存储系统515一样,存储系统565可以包括可由处理系统555读取并且能够存储软件560的任何计算机可读存储介质。存储系统565可以实现为单个存储设备,但也可以跨相对于彼此共置或分布的多个存储设备或子系统实现。存储系统565可以包括能够与处理系统555通信的另外元件,例如控制器。
在一些情况下,存储系统565包括存储日历信息的一个或多个存储资源。
软件560可以用程序指令来实现,并且除了其它功能之外,在一般由系统550并且特别由处理系统555执行时,软件560还可以指导系统550或处理系统555如本文所描述地进行操作以用于存储和取回日历事件。软件560可以提供程序指令,该程序指令体现实现所描述的日历事件的存储和结构的日历应用或服务570。
软件560还可以包括另外的过程、程序或组件,例如操作系统软件或其他应用软件。软件560还可以包括可由处理系统555执行的固件或某种其他形式的机器可读处理指令。
系统550可以表示可以在其上暂存软件560、并且可以从其中将软件560分发、传输、下载或以其他方式提供给另一计算系统以供部署和执行或者另外分发的任何计算系统。
在系统550包括多个计算设备的实施例中,服务器可以包括促进各计算设备之间的通信的一个或多个通信网络。例如,一个或多个通信网络可以包括促进各计算设备之间的通信的局域或广域网。可以在计算设备之间包括一个或多个直接通信链路。另外,在一些情况下,计算设备可以安装在地理上分布的位置。在其他情况下,多个计算设备可以安装在单个地理位置,例如服务器场或办公室。
可以包括通信接口575,从而提供允许在通信网络或网络集合(未示出)上或在空中在系统550与其他计算系统(未示出)之间的通信的通信连接和设备。
应该注意,系统550的许多元件可以包括在SoC设备中。这些元件可以包括但不限于处理系统555、通信接口575、以及甚至存储系统565的元件。
图6示出了可以执行所描述的系统和技术的示例性系统架构。参考图6,日历应用601可以在计算系统600-A上实现,例如针对图5A的系统500所描述的。日历应用601的用户可以利用该应用来创建、编辑或查看日历事件。
日历应用601可以通过网络620与包含在系统600-B上的相关联的日历服务621通信,系统600-B是图5B中所描述的系统550的特定实例。可以存在若干类型、供应商或提供商以及访问方法的日历服务可以体现在允许可访问性和与日历应用601交换的数据结构和处理功能中。
在一些实例中,日历应用601和/或日历服务621可以使用应用编程接口(API)与提供触发信息(例如,日出/日落时间)的服务进行通信以发送请求和接收信息。
API是由程序代码组件或硬件组件(下文中称为“API实现组件”)实现的接口,该接口允许不同的程序代码组件或硬件组件(下文中称为“API调用组件”)访问和使用一个或多个函数、方法、过程、数据结构、类和/或由API实现组件提供的其他服务。API可以定义在API调用组件与API实现组件之间传递的一个或多个参数。API可以用于访问由API实现组件提供的服务或数据,或者用于发起由API实现组件所提供的操作或计算的执行。举例而言,API实现组件和API调用组件均可以是操作系统、库、设备驱动器、API、应用程序或其他模块中的任何一个(应该理解,API实现组件和API调用组件可以是彼此相同或不同类型的模块)。在一些情况下,API实现组件可以至少部分地体现在固件、微代码或其他硬件逻辑中。
API调用组件可以是本地组件(即,在与API实现组件相同的数据处理系统上)或在网络上通过API与API实现组件通信的远程组件(即,在与API实现组件不同的数据处理系统上)。API通常在互联网上实现,使得它包括一组超文本传输协议(HTTP)请求消息和用于根据REST(代表性状态转移)或SOAP(简单对象访问协议)架构的响应消息的指定格式或结构。
网络620可以包括但不限于蜂窝网络(例如,无线电话)、点对点拨号连接、卫星网络、互联网、局域网(LAN)、广域网(WAN)、WiFi网络,自组织网络、内联网、外联网或其组合。网络可以包括一个或多个连接的网络(例如,多网络环境),包括公共网络(例如互联网)和/或专用网络(例如安全企业专用网络)。
应该理解,本文所描述的示例和实施例仅用于说明目的,并且本领域技术人员在本文的启迪下可以对其做出各种修改或改变,并且这些修改或改变包括在本申请的精神和范围内。
虽然以特定于结构特征和/或动作的语言描述了主题内容,但应理解,所附权利要求中定义的主题内容并不一定限于上述特定特征或动作。相反,上述特定特征和动作是作为实现权利要求的示例来公开的,并且其它等效特征和动作旨在落入权利要求的范围内。
Claims (14)
1.一种存储针对日历应用的日历事件的方法,所述方法包括:
提供可用的意图时间选项集合;
接收指示针对日历项的事件的输入;
响应于接收到所述输入,从所述可用的意图时间选项集合中确定适当意图时间;
从所述输入识别适合于所述适当意图时间的任何参数;以及
根据所述适当意图时间以及从所述输入识别的参数中的任何参数,利用开始属性来存储所述事件。
2.根据权利要求1所述的方法,其中,提供所述可用的意图时间选项集合包括:提供至少标准时间以及一个或多个基于触发的时间。
3.根据权利要求1所述的方法,其中,所述适当意图时间被确定为基于天文的时间,其中,根据所述适当意图时间、利用所述开始属性来存储所述事件包括:
存储针对所述开始属性的天文现象指示符和位置数据。
4.根据权利要求1所述的方法,其中,所述适当意图时间被确定为基于潮汐的时间,其中,根据所述适当意图时间、利用所述开始属性来存储所述事件包括:
存储针对所述开始属性的潮汐表的索引。
5.根据权利要求1所述的方法,其中,所述适当意图时间被确定为基于体育事件的时间,其中,根据所述适当意图时间、利用所述开始属性来存储所述事件包括:
存储针对所述开始属性的体育日历的索引。
6.一种日历系统,包括:
处理系统;
存储系统;
存储在所述存储系统的存储资源上的结构化日历数据,针对每个事件,所述结构化日历数据至少包括对应的事件标识符、指示所述事件所属于的对应日历的日历标识符、以及对应的意图时间标识符;
用于支持存储在所述存储系统上的日历应用的指令,所述指令指导所述处理系统至少进行以下操作:
从源接收对存储为日历的一部分的事件的意图的请求,所述请求至少包括针对所述事件的事件标识符;
针对至少与所述事件相关联的意图时间标识符来搜索存储所述事件的存储资源;
从所述意图时间标识符识别所述意图;以及
向所述请求的源提供从所述意图时间标识符识别的所述意图。
7.根据权利要求6所述的系统,其中,所述指令还指导所述处理系统向所述请求的源提供与所述意图时间标识符相关联的一个或多个参数。
8.根据权利要求6所述的系统,其中,所述对应的意图时间标识符指示至少标准时间和一个或多个基于触发的时间中的一个,所述一个或多个基于触发的时间例如基于天文的时间选项或基于潮汐的时间选项。
9.一个或多个其上存储有指令的计算机可读存储介质,所述指令在由处理系统执行时指导所述处理系统至少进行以下操作:
提供可用的意图时间选项集合;
接收指示针对日历项的事件的输入;
从所述可用的意图时间选项中确定适当意图时间;
从所述输入识别适合于所述适当意图时间的任何参数;
根据所述适当意图时间以及从所述输入识别的参数中的任何参数,利用开始属性将所述事件存储在存储资源中;以及
响应于从源接收针对所存储事件的意图的请求而进行以下操作,所述请求包括至少针对所存储事件的事件标识符:
针对至少与所述事件相关联的意图时间标识符来搜索所述存储资源;
从所述意图时间标识符识别所述意图;以及
向所述请求的源提供从所述意图时间标识符识别的所述意图。
10.根据权利要求9所述的介质,其中,所述指令还指导所述处理系统进行以下操作:响应于接收到所述请求,向所述请求的源提供从所述输入识别的任何参数中的一个或多个参数。
11.根据权利要求9所述的介质,其中,提供所述可用的意图时间选项集合包括:提供至少标准时间以及一个或多个基于触发的时间。
12.根据权利要求9所述的介质,其中,所述适当意图时间被确定为标准时间,从所述意图时间标识符识别的意图指示标准时间选项。
13.根据权利要求9所述的介质,其中,所述适当意图时间被确定为基于天文的时间,其中,所述事件是利用针对所述开始属性的天文现象指示符和位置数据来存储的,从所述意图时间标识符识别的意图指示基于天文的选项。
14.根据权利要求9所述的介质,其中,所述适当意图时间被确定为基于潮汐的时间,其中,所述事件是利用针对所述开始属性的潮汐表的索引来存储的,从所述意图时间标识符识别的意图指示基于潮汐的选项。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/215,824 US20180024704A1 (en) | 2016-07-21 | 2016-07-21 | Storage and structure of events with intentional-based time for calendar applications |
US15/215,824 | 2016-07-21 | ||
PCT/US2017/040632 WO2018017314A1 (en) | 2016-07-21 | 2017-07-04 | Storage and structure of events with intentional-based time for calendar applications |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109564654A true CN109564654A (zh) | 2019-04-02 |
Family
ID=59351128
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780045152.5A Withdrawn CN109564654A (zh) | 2016-07-21 | 2017-07-04 | 具有针对日历应用的基于意图的时间的事件存储和结构 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20180024704A1 (zh) |
EP (1) | EP3488401A1 (zh) |
CN (1) | CN109564654A (zh) |
WO (1) | WO2018017314A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10832221B2 (en) * | 2016-07-21 | 2020-11-10 | Microsoft Technology Licensing, Llc | Storage and structure of calendars with an infinite set of intentional-time events for calendar applications |
USD941830S1 (en) * | 2018-07-26 | 2022-01-25 | Samsung Electronics Co., Ltd. | Display screen or portion thereof with graphical user interface |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4512667A (en) * | 1981-03-04 | 1985-04-23 | Romm Doulton | Portable information device having an output related to natural physical events |
US20020194246A1 (en) * | 2001-06-14 | 2002-12-19 | International Business Machines Corporation | Context dependent calendar |
US20110239146A1 (en) * | 2010-03-23 | 2011-09-29 | Lala Dutta | Automatic event generation |
US9372851B2 (en) * | 2014-04-01 | 2016-06-21 | Microsoft Technology Licensing, Llc | Creating a calendar event using context |
-
2016
- 2016-07-21 US US15/215,824 patent/US20180024704A1/en not_active Abandoned
-
2017
- 2017-07-04 WO PCT/US2017/040632 patent/WO2018017314A1/en unknown
- 2017-07-04 EP EP17740226.0A patent/EP3488401A1/en not_active Withdrawn
- 2017-07-04 CN CN201780045152.5A patent/CN109564654A/zh not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
EP3488401A1 (en) | 2019-05-29 |
WO2018017314A1 (en) | 2018-01-25 |
US20180024704A1 (en) | 2018-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109478277B (zh) | 具有用于日历应用的意图性时间事件的无限集合的日历的存储和结构 | |
US20230051468A1 (en) | Map-based graphical user interface for multi-type social media galleries | |
US10656797B1 (en) | Global event-based avatar | |
CN105830150B (zh) | 基于意图的用户体验 | |
TW201723822A (zh) | 應用程式控制方法、應用程式跳轉關聯配置方法及裝置 | |
KR20160043677A (ko) | 음성 태그를 이용한 이미지 관리 방법 및 그 장치 | |
CN105426069B (zh) | 用于产生预览数据的方法和电子设备 | |
US20240012540A1 (en) | Methods and Systems for Input Suggestion | |
CN109564654A (zh) | 具有针对日历应用的基于意图的时间的事件存储和结构 | |
US20130179414A1 (en) | Mechanisms for connecting files between applications | |
Gordon | Concepts for mobile programming | |
CN109379431A (zh) | 一种联系人信息更新方法、云端服务器及终端 | |
CN110430253A (zh) | 一种提供小说更新通知信息的方法与设备 | |
CN103917944B (zh) | 动态更新设备中文件夹内容的系统及其方法 | |
CN109101292A (zh) | 一种终端快捷操作方法及系统 | |
CN110362641A (zh) | 一种结合电子地图访问数据集合的数据访问方法 | |
US20170109913A1 (en) | Kinetic Sequencer for Iot Devices | |
US20160335292A1 (en) | Hierarchical heat map for fast item access | |
You et al. | Service-oriented emergency management collaboration system design | |
KR20240067287A (ko) | 소셜 미디어 플랫폼들을 위한 친구 위치 공유 메커니즘 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20190402 |
|
WW01 | Invention patent application withdrawn after publication |