-
TECHNISCHES GEBIET
-
Die vorliegende Offenbarung betrifft Event-Suche.
-
STAND DER TECHNIK
-
Suchbare Informationen können Beschreibungen von Events umfassen. Ein „Event” kann ein Stattfinden einer bestimmten Aktivität oder Handlung zu einem bestimmten Zeitpunkt und Ort sein. Zum Beispiel können Events künstlerische Auftritte, informierende Vorlesungen, Auktionen, Gelegenheiten zum Treffen eines Individuums, private soziale Treffen usw. umfassen. Oft werden Events zum Beispiel von einem Promoter oder Gastgeber des Events, einer Nachrichtenquelle oder einer anderen Person vor ihrem Stattfinden beschrieben.
-
KURZFASSUNG
-
Im Allgemeinen in einem Aspekt: Identifizieren einer Anfrage, wobei die Anfrage ein Zeitintervall und eine Suchkomponente umfasst; Bestimmen eines mit dem Zeitintervall assoziierten Zeitinkrements; Aufteilen des Zeitintervalls in Aufteilungen auf der Basis des Zeitinkrements; für jede Aufteilung, Bestimmen einer Relevanz jedes Events in einer Sammlung von Events, die alle an einem Zeitpunkt in der Aufteilung stattfinden, auf der Basis der Anfrage; und Anzeigen einer vorbestimmten Anzahl der relevanten Events.
-
Implementierungen können eines oder mehrere der folgenden Merkmale umfassen: das Bestimmen eines Zeitinkrements umfasst das Bestimmen eines Zeitinkrements auf der Basis der Anfrage. Das Bestimmen der Relevanz jedes Events basiert auf der Suchkomponente der Anfrage. Die Anfrage umfasst außerdem eine Ortskomponente, die einen Ort beschreibt, und für jede Aufteilung, und die Sammlung von Events umfasst Events, die innerhalb einer vorbestimmten Beziehung mit dem Ort stattfinden. Die vorbestimmte Beziehung umfasst eine geographische Nähe. Das Bestimmen der Relevanz eines Events umfasst das Bestimmen einer numerischen Relevanz des Events. Außerdem umfassend Erzeugen der Anfrage. Die Anfrage wird zufällig erzeugt. Die Suchkomponente der Anfrage wird zufällig erzeugt. Die Anfrage wird auf der Basis einer Eigenschaft eines Benutzers erzeugt. Die Eigenschaft umfasst eine Anfragechronik des Benutzers. Die Suchkomponente der Anfrage wird auf der Basis der Anfragechronik des Benutzers erzeugt. Die Suchkomponente der Anfrage wird von einem Benutzer geliefert und das Zeitintervall der Anfrage wird automatisch erzeugt. Außerdem umfassend sukzessives Erzeugen zweier Anfragen, die jeweils eine selbe vom Benutzer gelieferte Suchkomponente aufweisen.
-
Im Allgemeinen in einem anderen Aspekt: Identifizieren eines durch ein elektronisches Dokument beschriebenen Events, wobei das Identifizieren des Events Folgendes umfasst: Identifizieren einer Zeit oder von Zeiten, wann das Event stattfindet, eines Orts oder von Orten, wo das Event stattfindet, und von Inhalt aus dem elektronischen Dokument, wobei der Inhalt das Event beschreibt; und Aufzeichnen der Zeit oder Zeiten, wann das Event stattfindet, des Orts oder der Orte, wo das Event stattfindet, und des Inhalts, der das Event beschreibt, auf einem computerlesbaren Medium.
-
Implementierungen können eines oder mehrere der folgenden Merkmale umfassen. Außerdem umfassend Identifizieren des elektronischen Dokuments durch Verwenden eines Crawlers in einem Computernetzwerk. Das Computernetzwerk umfasst ein World Wide Web. Das elektronische Dokument wird in einer strukturierten Sprache ausgedrückt und das Event wird unter Verwendung einer Struktur der Sprache identifiziert. Die strukturierte Sprache umfasst Extensible Markup Language, und das Event wird unter Verwendung von Tags in der strukturierten Sprache identifiziert. Das elektronische Dokument beschreibt einen Kalender und das Event umfasst ein Ereignis in dem Kalender. Das Event wird aus einem syndizierten Feed identifiziert. Das syndizierte Feed umfasst ein RSS-Feed. Außerdem umfassend Bestimmen einer Relevanz des Events mit Bezug auf eine vorbestimmte Anfrage, wobei die Anfrage vor dem Identifizieren des Events bestimmt wird.
-
Im Allgemeinen in einem anderen Aspekt: Identifizieren einer Anfrage, wobei die Anfrage ein Zeitintervall und eine Suchkomponente umfasst, Identifizieren einer oder mehrerer Aufteilungen auf der Basis des Zeitintervalls; für jede Aufteilung, Bestimmen von Events auf der Basis der Suchkomponente; und Anzeigen der Events für jede Aufteilung.
-
Implementierungen können eines oder mehrere der folgenden Merkmale umfassen. Die Anfrage umfasst außerdem eine Ortskomponente, die einen Ort beschreibt, und für jede Aufteilung, und die Sammlung von Events umfasst Events, die innerhalb einer vorbestimmten Beziehung mit dem Ort stattfinden. Die vorbestimmte Beziehung umfasst eine geographische Nähe. Außerdem umfassend Erzeugen der Anfrage. Die Anfrage wird zufällig erzeugt. Die Suchkomponente der Anfrage wird zufällig erzeugt. Die Anfrage wird auf der Basis einer Eigenschaft eines Benutzers erzeugt. Die Eigenschaft umfasst eine Anfragechronik des Benutzers. Die Suchkomponente der Anfrage wird auf der Basis der Anfragechronik des Benutzers erzeugt. Die Suchkomponente der Anfrage wird von einem Benutzer geliefert, und das Zeitintervall der Anfrage wird automatisch erzeugt. Außerdem umfassend sukzessives Erzeugen zweier Anfragen, die jeweils dieselbe vom Benutzer gelieferte Suchkomponente aufweisen.
-
Andere Aspekte umfassen andere Kombinationen der oben angeführten Merkmale und anderer Merkmale, ausgedrückt als Vorrichtungen, Systeme, computerlesbare Medien, Programmprodukte und auf andere Weisen. Andere Merkmale und Vorteile werden aus der Beschreibung und aus den Ansprüchen hervorgehen.
-
BESCHREIBUNG DER ZEICHNUNGEN
-
1 ist eine schematische Abbildung eines beispielhaften Event-Suchsystems.
-
2 ist eine schematische Abbildung einer beispielhaften Anfrage.
-
3 ist eine schematische Abbildung einer beispielhaften Event-Suchmaschine.
-
4 ist ein Flussdiagramm zum Auffüllen der Event-Daten.
-
5 ist ein Flussdiagramm zum Identifizieren, welche Events aus einer Sammlung von Events eine Anfrage erfüllen.
-
6A ist eine beispielhafte Menge von Event-Daten.
-
6B und 6C sind schematische Abbildungen von Ausgaben des Event-Suchsystems.
-
7A–D sind beispielhafte Ausgaben des Event-Suchsystems.
-
8 ist ein Blockdiagramm einer Datenverarbeitungseinrichtung 80, die verwendet werden kann, um das Event-Suchsystem entweder als ein Client oder als ein Server oder mehrere Server zu implementieren.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Viele Arten von Events werden elektronisch beschrieben und sind für Suche über ein Computernetzwerk, wie etwa das World Wide Web, verfügbar. Beim Suchen nach Events ist man oft an Events interessiert, die während eines gegebenen Zeitintervalls oder an einem gegebenen Ort stattfinden. Unter Verwendung von traditionellen Suchtechniken kann es manchmal umständlich sein, interessierende Events zu identifizieren, die an dem gewünschten Zeitpunkt oder Ort stattfinden. Wenn man zum Beispiel nach Auftritten der Band Chicago in der Nähe der Stadt Boston unter Verwendung von bestimmten traditionellen Suchtechniken sucht, können die Suchergebnisse Auftritte der Band Boston in der Nähe der Stadt Chicago umfassen.
-
Auch wenn Suchergebnisse Events beschreiben, die alle an dem spezifizierten Ort stattfinden, ist man darüber hinaus manchmal daran interessiert, Events zu sehen, die zu Zeiten stattfinden, die über ein Zeitintervall verteilt sind. Wenn man zum Beispiel an Events interessiert ist, die an einem lokalen Veranstaltungsort während der Woche stattfinden, können Suchergebnisse über ein beliebtes Event, das Samstag Nacht stattfindet, zahlreich sein, während Suchergebnisse über ein weniger beliebtes Event, das Mittwoch Nachmittag stattfindet, weniger zahlreich sein können. In einer solchen Situation muss man möglicherweise mehrere Suchergebnisse über das beliebte Event untersuchen, bevor man Suchergebnisse über das weniger beliebte Event findet. Dies kann zeitaufwendig sein.
-
Die nachfolgend beschriebenen Techniken helfen unter anderem dabei, Events zu finden, die innerhalb eines spezifizierten Zeitintervalls an einem spezifizierten Ort stattfinden.
-
1 ist eine schematische Abbildung eines beispielhaften Event-Suchsystems 10. Das Event-Suchsystem 10 kann für einen oder mehrere (z. B. einige) Benutzer 12 sorgen. Jeder Benutzer 12 befindet sich in Datenkommunikation mit dem Event-Suchsystem 10. Die Datenkommunikation kann auf beliebige Weise implementiert werden, zum Beispiel drahtlos, über ein Netzwerk, durch direkte physische Verbindung unter Verwendung von Metallleitung oder faseroptischem Kabel usw. Das Event-Suchsystem 10 umfasst Benutzerdaten 14, Event-Daten 16 und eine Event-Suchmaschine 17.
-
Ein Benutzer 12 kann sich bei dem Event-Suchsystem 10 registrieren (muss es aber nicht). Wenn sich der Benutzer 12 registriert, stellt der Benutzer 12 dem Event-Suchsystem 10 Informationen zur Verfügung, zum Beispiel einen Benutzernamen, ein Passwort, eine Vorgabesprache oder einen geographischen Ort usw. Darüber hinaus kann das Event-Suchsystem 10 andere Informationen über den Benutzer 12 bestimmen, die auch als Benutzerdaten 14 gespeichert werden können. Zum Beispiel kann das Event-Suchsystem 10 den derzeitigen geographischen Ort des Benutzers auf der Basis einer Adresse des Internet-Protokolls (IP) des Benutzers 12 usw. bestimmen.
-
Die Event-Daten 16 umfassen Beschreibungen eines oder mehrerer (z. B. einiger) Events 18. Bei einer Implementierung umfasst jedes Event 18 Zeitinformationen 20, Ortsinformationen 22 und Inhalt 24. Die Zeitinformationen 20 umfassen Informationen bezüglich des Zeitpunkts, an dem das Event stattfindet. Bei bestimmten Implementierungen können die Zeitinformationen 20 eine Startzeit für ein assoziiertes Event 18, eine Endezeit für das Event 18 oder eine Dauer des Events 18 umfassen. Im vorliegenden Gebrauch beziehen sich die Ausdrücke „Startzeit” und „Endezeit” auf einzigartig spezifizierte Momente. Insbesondere sollte das Spezifizieren einer „Startzeit” oder „Endezeit” als auch das Spezifizieren eines Tages, Monats, Jahrs usw. des Startens oder Endens umfassend verstanden werden. Die durch die Event-Daten 16 beschriebenen Events 18 müssen nicht in irgendeiner spezifizierten Beziehung zu irgendeinem bestimmten Moment in der Zeit stattfinden. Insbesondere können die Event-Daten 16 in irgendeinem bestimmten Moment Events 18 beschreiben, die bereits stattgefunden haben, gerade stattfinden oder in der Zukunft stattfinden werden.
-
Die Ortsinformationen 22 umfassen Informationen bezüglich des Orts, an dem das Event stattfindet. Bei bestimmten Implementierungen können die Ortsinformationen 20 eine Beschreibung eines geographischen Orts oder einer Region umfassen, wie etwa eine Straßenanschrift, globale Koordinaten (z. B. Breitengrad und Längengrad), einen beliebten Namen eines geographischen Orts oder einer Region (wie etwa „The Alamo”), eine spezifizierte Verschiebung von einem anderen geographischen Ort usw. Bei bestimmten Implementierungen können die Ortsinformationen 20 eine IP-Adresse eines Computers, einen Uniform Resource Locator („URL”), einen Computernamen in einem Netzwerk usw. (z. B. wenn das Event ein ausgestrahltes Event über das Internet ist) bedeuten oder umfassen. Bei bestimmten Implementierungen können die Ortsinformationen 22 ein Ausstrahlungsmedium oder eine Ausstrahlungsquelle für das Event 18 identifizieren.
-
Der Inhalt 24 kann eine Beschreibung der Beschaffenheit des Events 18 umfassen. Zum Beispiel kann der Inhalt 24 eines Grillwettbewerb-Events 18 eine Liste von Teilnehmern, eine Liste von Preisen, eine Liste von Konzerten, die bei dem Wettbewerb stattfinden sollen, Regeln des Wettbewerbs, Eintrittsgebühren usw. umfassen. Der Inhalt 24 muss nicht auf Text beschränkt sein. Bei bestimmten Implementierungen kann der Inhalt 24 zum Beispiel graphische, Video-, Audio- oder andere nicht textliche Informationen umfassen. Bei bestimmten Implementierungen kann der Inhalt 24 interne Struktur umfassen. Zum Beispiel kann der Inhalt 24 bestimmte Informationen über das Event 18 (zum Beispiel einen Event-Titel, einen Event-Gastgeber, einen Event-Typ usw.) in Metadaten oder strukturierten Feldern in dem Inhalt 24 spezifizieren.
-
2 ist eine schematische Abbildung einer beispielhaften Anfrage 26. Die Anfrage 26 umfasst eine Zeitkomponente 28, eine Ortskomponente 30 und eine Suchkomponente 32. Die Zeitkomponente 28 umfasst eine Beschreibung eines Zeitintervalls. Bei bestimmten Implementierungen umfasst die Zeitkomponente 28 außerdem ein oder mehrere (z. B. einige) Inkremente, in die das Zeitintervall aufgeteilt wird oder in die Aufteilungen weiter aufgeteilt werden. Zum Beispiel kann das Zeitintervall eine Woche sein, das Zeitinkrement kann ein Tag sein und ein zweites Zeitinkrement kann eine Stunde sein. Die Ortskomponente 30 umfasst mindestens eine teilweise Beschreibung eines Orts, zum Beispiel eines geographischen Orts usw. Die Suchkomponente 32 kann beliebige Informationen umfassen, wie etwa einen oder mehrere (z. B. einige) Suchbegriffe. Obwohl auf eine Anfrage 26 verwiesen wird, die alle drei Komponenten 28–32 umfasst, sind nicht alle erforderlich. Es sind weniger und andere Komponenten möglich.
-
3 ist eine schematische Abbildung einer beispielhaften Event-Suchmaschine 17. Die Event-Suchmaschine 17 umfasst ein Anfragewerkzeug 34, ein Relevanzwerkzeug 36, ein Benutzerdatenwerkzeug 38, ein Event-Werkzeug 40, ein Anfragegeneratorwerkzeug 42 und ein Anzeigewerkzeug 44.
-
Das Anfragewerkzeug 34 ist betreibbar, um Informationen auf der Basis der Anfrage 26 zu sammeln und die Informationen unter anderen Komponenten 36–44 der Event-Suchmaschine 17 zu routen. Bei bestimmten Implementierungen kann das Anzeigewerkzeug 34: Events 18 aus den Event-Daten 16 abrufen, die innerhalb des in der Zeitkomponente 28 der Anfrage 26 spezifizierten Zeitintervalls stattfinden; Events 18 aus den Event-Daten 16 abrufen, die an dem in der Ortskomponente 30 der Anfrage 26 spezifizierten Ort stattfinden; und diese Events 18 zu dem Relevanzwerkzeug 36 weiterleiten. Bei bestimmten Implementierungen kann das Anfragewerkzeug 34 die Anfrage 26 zu dem Benutzerdatenwerkzeug 38 routen. Dazu kann es zum Beispiel kommen, wenn die Anfrage 26 vom Benutzer 12 spezifiziert wird und der Benutzer 12 keine Ortskomponente 30 spezifiziert.
-
Bei bestimmten Implementierungen ist das Anfragewerkzeug 34 dafür ausgelegt, Orte hierarchisch zu erkennen, sodass, wenn sich ein spezifischer Ort (z. B. The Alamo) in einem anderen allgemeineren Ort (z. B. San Antonio, Texas) befindet, beide Orte als für eine Anfrage 26 relevant erkannt werden, die den allgemeinen Ort als ihre Ortskomponente 30 spezifiziert.
-
Das Relevanzwerkzeug 36 ist betreibbar, um ein Relevanzmaß für ein Event 18 mit Bezug auf eine Anfrage 26 zu bestimmen. Bei bestimmten Implementierungen kann die Relevanz eines Events 18 mit Bezug auf eine Anfrage 26 auf einem Vergleich des mit dem Event 18 assoziierten Inhalts 24 mit der Suchkomponente 32 der Anfrage 26 basieren. Zum Beispiel kann ein numerisches Maß für Relevanz auf der Basis dieses Vergleichs bestimmt werden.
-
Das Benutzerdatenwerkzeug 38 ist betreibbar, um aus den Benutzerdaten 14 zu lesen oder in diese zu schreiben. Bei bestimmten Implementierungen kann das Benutzerdatenwerkzeug 38 fehlende Werte für eine Eingabe von einem Benutzer 12 bereitstellen, um eine Anfrage 26 zu vervollständigen. Wenn zum Beispiel der Benutzer 12 eine Suchkomponente 32 spezifiziert, aber keine Zeitkomponente 28 oder Ortskomponente 30, kann das Benutzerdatenwerkzeug 38 Vorgabedaten für eine Zeitkomponente 28 und eine Ortskomponente 30 auf der Basis von Informationen in den Benutzerdaten 14 bereitstellen. Bei bestimmten Implementierungen ist der Vorgabewert für die Ortskomponente 30 der geographische Ort des Benutzers.
-
Das Event-Werkzeug 40 ist betreibbar, um aus den Event-Daten 16 zu lesen oder in diese zu schreiben. Bei bestimmten Implementierungen kann das Event-Werkzeug 40 als ein Event-Crawler operieren. Das heißt, das Event-Werkzeug 40 kann betreibbar sein, um elektronische Dokumente in einem Netzwerk zu untersuchen, zu bestimmen, ob die Dokumente ein oder mehrere Events 18 beschreiben, und wenn dem so ist die Events 18 in den Event-Daten 16 aufzuzeichnen. Bei bestimmten Implementierungen sind solche Dokumente in einer strukturierten Sprache geschrieben. Bei bestimmten Implementierungen kann das Event-Werkzeug 40 zum Beispiel Zeitinformationen 20 und/oder Ortsinformationen 22 eines Events 18 auf der Basis der strukturierten Extensible Markup Language („XML”) in einem das Event 18 beschreibenden Dokument bestimmen.
-
Im Allgemeinen besteht jedoch keine Anforderung, dass ein Dokument in einem bestimmten Format oder in einer bestimmten Sprache ausgedrückt ist. Insbesondere kann der Web-Crawler Events 18 identifizieren, die in Klartextdokumenten geschrieben werden.
-
Bei bestimmten Implementierungen ist das Event-Werkzeug 40 dafür ausgelegt, Beschreibungen von Events aus zuvor identifizierten Event-Feeds zu empfangen. Zum Beispiel können Syndizierungsquellen Streams von Events 18 über das RSS-Protokoll (Really Simple Syndication) bereitstellen. In diesem Fall kann das Event-Werkzeug 40 betreibbar sein, um die Zeitinformationen 20, die Ortsinformationen 22 und den Inhalt 24 für in dem Feed beschriebene Events 18 zu bestimmen.
-
Bei bestimmten Implementierungen ist das Event-Werkzeug 40 dafür ausgelegt, benutzerspezifizierte Events 18 in die Event-Daten 16 aufzunehmen. Wenn zum Beispiel der Benutzer 12 einen persönlichen Kalender auf dem Event-Suchsystem 10 oder an einer anderen Stelle führt, kann es der Benutzer 12 erlauben, dass bestimmte oder alle der in dem Kalender aufgezeichneten Events von bestimmten oder allen der anderen Benutzer 12 des Event-Suchsystems 10 durchsuchbar sind.
-
Das Anfragegeneratorwerkzeug 42 ist betreibbar, um eine Anfrage 26 für den Benutzer 12 zu erzeugen. Bei bestimmten Implementierungen erzeugt das Anfragegeneratorwerkzeug 42 eine Anfrage 26 mit einer Ortskomponente 30 auf der Basis des geographischen Orts des Benutzers 12. Zum Beispiel kann der Benutzer 12 das Anfragegeneratorwerkzeug 42 verwenden, wenn der Benutzer 12 neugierig darüber ist, welche Events 18 in seiner geographischen Umgebung stattfinden. Bei bestimmten Implementierungen basiert die Suchkomponente 32 der Anfrage 26 auf Suchkomponenten 32 von Anfragen von dem Benutzer 12 oder anderen Benutzern 12. Zum Beispiel kann das Anfragegeneratorwerkzeug 42 eine Suchkomponente 32 auf der Basis von beliebten Suchkomponenten 32 von anderen Benutzern 12 erzeugen.
-
Bei bestimmten Implementierungen wird die Suchkomponente 32 der Anfrage 26 auf der Basis der Gewohnheiten des Benutzers 12 erzeugt. Die Gewohnheiten des Benutzers 12 können in den Benutzerdaten 14 aufgezeichnet werden. Zum Beispiel können die Gewohnheiten des Benutzers betreffende Fragen dem Benutzer 12 beim Registrieren bei dem Event-Suchsystem 10 oder von Zeit zu Zeit nach der Registration gestellt werden. Die Gewohnheiten des Benutzers können auch durch die vorherige Benutzung des Event-Suchsystems 10 durch den Benutzer deduziert werden. Zum Beispiel kann eine Suchkomponente 32 auf der Basis von zuvor gelieferten Suchkomponenten des Benutzers, auf der Basis der zuvor von dem Benutzer 12 betrachteten Events 18 usw. erzeugt werden.
-
Bei bestimmten Implementierungen ist das Anfragegeneratorwerkzeug 42 betreibbar, um automatisch und periodisch Anfragen 26 auf der Basis einer spezifizierten Suchkomponente 32 des Benutzers 12 zu erzeugen. Zum Beispiel können neue Anfragen 26 mit der spezifizierten Suchkomponente 32 stündlich, täglich, wöchentlich usw. erzeugt werden. Bei bestimmten Implementierungen ist das Zeitintervall in der Zeitkomponente 28 der periodisch erzeugten Anfragen gleich der Periode, mit der die Anfragen 26 erzeugt werden. Zum Beispiel suchen wöchentlich erzeugte Anfragen 26 nach Events, die während dieser Woche stattfinden. Wenn ein Benutzer 12 also anhaltendes Interesse an Events 18 hat, die Patente betreffen, kann der Benutzer 12 periodisch erzeugte Anfragen 26 jeweils mit der Suchkomponente „Patente” arrangieren. Die Suchkomponente 32 kann zum Beispiel in den Benutzerdaten 14 abgespeichert werden.
-
Das Anzeigewerkzeug 44 ist betreibbar, um Ausgaben des Event-Suchsystems 10 den verschiedenen Benutzern 12 anzuzeigen. Solche Ausgaben können zum Beispiel Suchergebnisse auf der Basis von vom Benutzer gelieferten oder System erzeugten Anfragen 26 umfassen. Bei bestimmten Implementierungen werden die Ausgaben mit einem von einem Benutzer geführten persönlichen Kalender vereinbar formatiert. Bei bestimmten Implementierungen werden die Ausgaben über eine elektronische Übermittlung an den Benutzer 12 abgeliefert, wie etwa über eine Webseite, E-Mail usw.
-
4 ist ein Flussdiagramm zum Auffüllen der Event-Daten 14. Als erstes wird eine Event-Beschreibung identifiziert (Schritt 45). Die Event-Beschreibung kann zum Beispiel durch das Event-Werkzeug 40 empfangen werden. Bei bestimmten Implementierungen wird die Event-Beschreibung von einem Web-Crawler, einer externen Syndizierungsquelle (zum Beispiel einem RSS-Feed), einem Benutzer 12 oder einer beliebigen Kombination dieser empfangen. Event-Beschreibungen können aus anderen Quellen identifiziert werden. Bei bestimmten Implementierungen wird die Event-Beschreibung als strukturiertes XML formatiert.
-
Als nächstes werden Zeitinformationen 28, Ortsinformationen 30 und Inhalt 32 aus der Event-Beschreibung bestimmt (Schritt 46). Zum Beispiel kann das Event-Werkzeug 40 die Zeitinformationen 28, die Ortsinformationen 30 und den Inhalt 32 aus der Event-Beschreibung bestimmen. Die Zeitinformationen 28, die Ortsinformationen 30 und der Inhalt 32 werden dann aufgezeichnet (Schritt 47). Zum Beispiel können die Zeitinformationen 28, die Ortsinformationen 30 und der Inhalt 32 als ein Event 18 in den Event-Daten 16 aufgezeichnet werden. Der Prozess kann für mehrere Events, die für Verarbeitung identifiziert werden, wiederholt werden.
-
Optional kann jedes im Schritt 47 aufgezeichnete Event 18 automatisch mit einer oder mehreren Anfragen 26 verglichen werden (Schritt 48). Zum Beispiel kann jedes Event 18 mit einer von einem Benutzer 12 spezifizierten abgespeicherten Suchkomponente 28 verglichen werden. Bei bestimmten Implementierungen umfasst das Vergleichen des Events 18 mit der Anfrage 26 oder der Suchkomponente 28 das Bestimmen einer Relevanz des Events 18 mit Bezug auf die Suchkomponente 28. Das Event 18 kann dem Benutzer 12 automatisch angezeigt werden (Schritt 49). Bei bestimmten Implementierungen wird das Event 18 einem Benutzer 12 angezeigt, falls die Relevanz des Events 18 mit Bezug auf die abgespeicherte Suchkomponente 28 des Benutzers über einer vorbestimmten Schwelle liegt.
-
5 ist ein Flussdiagramm zum Identifizieren, welche Events aus einer Sammlung von Events eine Anfrage 26 erfüllen. Zum Beispiel können die Event-Daten 14 eine Sammlung von Events 18 beschreiben. Als erstes wird eine Anfrage 26 identifiziert (Schritt 50). Bei bestimmten Implementierungen wird die Anfrage 26 durch das Anfragewerkzeug 34 empfangen. Auf der Basis der Anfrage 26 werden Aufteilungen des Zeitintervalls durch das Zeitinkrement identifiziert (Schritt 52). Wenn kein Zeitinkrement in der Anfrage 26 spezifiziert war, wird das gesamte Zeitintervall als eine einzige Aufteilung behandelt. Bei bestimmten Implementierungen kann das Anfragewerkzeug 34 verwendet werden, um die Aufteilungen zu identifizieren.
-
Aus der Sammlung von Events werden Events identifiziert, die an dem durch die Ortskomponente 30 der Anfrage 26 spezifizierten Ort oder in der Nähe davon stattfinden (Schritt 53). Bei bestimmten Implementierungen kann das Event-Werkzeug 40 verwendet werden, um solche Events 18 zu identifizieren. Die im Schritt 53 spezifizierten Events werden kollektiv als die lokalisierte Sammlung von Events bezeichnet, und Schritt 53 wird als Lokalisieren der Sammlung von Events bezeichnet.
-
Für jede Zeitaufteilung werden Events aus der lokalisierten Sammlung mit der Zeitaufteilung assoziiert (Schritt 54). Bei bestimmten Implementierungen wird ein Event mit einer Zeitaufteilung assoziiert, wenn die Startzeit des Events während der Aufteilung stattfindet. Bei bestimmten Implementierungen wird ein Event mit einer Aufteilung assoziiert, wenn irgendein Teil des Events während der Aufteilung stattfindet. Bei bestimmten Implementierungen können während einer gegebenen Zeitaufteilung stattfindende Events 18 durch das Event-Werkzeug 40 identifiziert werden. Zum Beispiel kann das Event-Werkzeug 40 solche Events auf der Basis der Zeitkomponente 28 der Anfrage 26 identifizieren.
-
Es wird eine Aufteilung ausgewählt (Schritt 56). Zum Beispiel kann die Aufteilung durch das Anfragewerkzeug 34 ausgewählt werden. Für die mit der ausgewählten Aufteilung in Schritt 54 assoziierten Events wird optional eine Relevanz jedes Events für die empfangene Anfrage 26 bestimmt (Schritt 58). Zum Beispiel kann die Relevanz durch das Relevanzwerkzeug 36 bestimmt werden. Bei bestimmten Beispielen wird die Relevanz jedes Events für die Suchkomponente 32 der Anfrage 26 bestimmt.
-
Auf der Basis der Relevanzbestimmung von Schritt 58 werden ein oder mehrere (z. B. einige) Events für Anzeigen ausgewählt (Schritt 60). Bei bestimmten Implementierungen können die Events durch das Relevanzwerkzeug 36 ausgewählt werden. Zum Beispiel können die Events gemäß ihrer Relevanz eingestuft werden, und eine vorbestimmte Anzahl der am höchsten eingestuften Events kann für Anzeige ausgewählt werden. In einem anderen Beispiel werden alle Events über einer vorbestimmten Relevanzschwelle für Anzeige ausgewählt. Es sind andere Arten des Auswählen von Events möglich.
-
Wenn es andere Aufteilungen gibt, für die noch keine Events für Anzeige ausgewählt wurden, werden die Schritte 56–60 für diese Aufteilungen wiederholt. Letztendlich werden die im Schritt 60 für Anzeige ausgewählten Events für jede Aufteilung angezeigt (Schritt 62). Zum Beispiel können die Events durch das Anzeigewerkzeug 44 angezeigt werden.
-
Die obigen Schritte können in einer anderen Reihenfolge ausgeführt werden. Zum Beispiel können Events mit einer Zeitaufteilung assoziiert werden, bevor sie lokalisiert werden, d. h. die Reihenfolge der Schritte 53 und 54 kann umgekehrt werden. Es sind noch andere Reihenfolgen zum Ausführen der obigen Schritte möglich.
-
6A ist eine beispielhafte Menge von Event-Daten 14. In diesem Beispiel nehme man an, dass die Event-Daten 14 sechs Events 18 (eine Wanderung für gute Zwecke, ein Pokerturnier, eine Wandertour im Central Park und eine Wandertour im Balboa Park, ein Patentrecht-Seminar und eine Geschworenendienst-Recovery-Gruppe) mit Zeitinformationen 20, Ortsinformationen 22 und Inhalt 24 wie in 6A gezeigt enthalten. Wenn eine beispielhafte Suchanfrage 26 mit einer das Zeitintervall 1. Januar 2006 bis 5. Januar 2006 angebenden Zeitkomponente 28, New York, New York angebenden Ortskomponente 30 und einer aus dem Wort „Wanderung” bestehenden Suchkomponente 32 vorliegt, würde das Event-Suchsystem 10 zwei Events anzeigen: die Wanderung für gute Zwecke und die Wandertour im Central Park.
-
6B zeigt beispielhafte nicht aufgeteilte Ausgaben 63 des Event-Suchsystems 10. Diese Ausgaben 63 werden als eine Liste präsentiert. 6C zeigt beispielhafte Ausgaben des Event-Suchsystems 10 nach Tag aufgeteilt. Diese Ausgaben 63 zeigen Events 18 in Aufteilungen, die den Tagen entsprechen, an denen die Events 18 stattfinden.
-
Man beachte, dass, obwohl die Phrasen „New York, New York” und „Wanderer” in dem Inhalt 24 des Pokerturnier-Events 18 erscheinen, dieses Event 18 unter den Suchergebnissen nicht angezeigt wird, weil seine Ortsinformationen 22 (Las Vegas) nicht an der Ortskomponente 30 (New York) der Anfrage 26 oder in der Nähe davon sind. Umgekehrt beachte man, dass die „Wanderung für gute Zwecke” an der Brooklyn Bridge trotz der textlichen Unähnlichkeit von „Brooklyn Bridge” mit „New York” unter den Suchergebnissen erscheint. Als letztes beachte man, dass das Geschworenendienst-Recovery-Gruppen-Event 18 nicht in den Suchergebnissen enthalten war, obwohl es an dem richtigen Ort stattfindet und „Wanderung” in seinem Inhalt 24 erscheint, weil es an einem Zeitpunkt stattfindet, der außerhalb des in der Zeitkomponente 28 der Anfrage 26 spezifizierten Zeitintervalls liegt.
-
7A–D sind Bildschirmkopien von Ausgaben eines beispielhaften Event-Suchsystems 10, wobei beispielhafte Events 18 aus einem nicht aufgeteilten Zeitintervall von drei Tagen (7A), Events 18 aus einem in Stunden aufgeteilten gegebenen Tag (7B), Events 18 aus einer in Tage aufgeteilten und ferner in Stunden aufgeteilten Woche (7C) und Events 18 aus einem in Tage aufgeteilten gegebenen Monat (7D) zeigt. Bei bestimmten Implementierungen werden die Ausgaben durch das Anzeigewerkzeug 44 bereitgestellt. Jede Bildschirmkopie kann Merkmale umfassen, wie etwa ein Suchkomponentenfeld 64, ein Ortskomponentenfeld 66, ein Zeitkomponentenfeld 68, eine Suchschaltfläche 70, eine Schaltfläche 72 „Mir ist langweilig”, ein Navigationsmenu 74, ein Anzeigemenu 76 und einen Anzeigebereich 78.
-
Die Felder 64–68 der Suchkomponente, der Zeitkomponente und Ortskomponente sind Texteingabefelder, wobei ein Benutzer 12 Werte für die Suchkomponente 32, die Zeitkomponente 28 bzw. die Ortskomponente 30 einer Anfrage 26 spezifizieren kann. Die Suchschaltfläche 70 kann verwendet werden, um eine Anfrage 26, deren Komponenten 28–32 gleich den Werten in den Feldern 64–68 sind, zu dem Event-Suchsystem 10 zu übermitteln. Bei bestimmten Implementierungen werden die Werte in den Feldern 64–68 zu dem Anfragewerkzeug 34 weitergeleitet, wenn die Suchschaltfläche 70 aktiviert wird.
-
Die Schaltfläche 72 „Mir ist langweilig” kann verwendet werden, um eine Anfrage 26 zu erzeugen und die Anfrage 26 zu dem Event-Suchsystem 10 zu übermitteln. Die Schaltfläche 72 „Mir ist langweilig” erfordert keine Eingabe von Werten in irgendwelche Felder 64–68. Wenn die Schaltfläche 72 „Mir ist langweilig” aktiviert wird, wird eine Anfrage 26 automatisch z. B. auf der Basis von vergangenen Anfragen erzeugt oder zufällig erzeugt und zu dem Event-Suchsystem 10 übermittelt. Bei bestimmten Implementierungen ruft Aktivierung der Schaltfläche 72 „Mir ist langweilig” das Anfragegeneratorwerkzeug 42 auf.
-
Das Navigationsmenu 74 umfasst Steuerelemente zum Anzeigen von Events 18 neben den gerade in Sicht befindlichen. Bei bestimmten Implementierungen umfasst das Navigationsmenu 74 Steuerelemente zum Auswählen von angrenzenden Zeitintervallen zum Anzeigen von Events 18. Zum Beispiel kann das Navigationsmenu 74 Steuerelemente zum Anzeigen von Events 18, die während des nächsten oder vorherigen Tags stattfinden (siehe 7B), zum Anzeigen von Events 18, die während der nächsten oder vorherigen Woche stattfinden (siehe 7C) oder zum Anzeigen von Events 18, die während des nächsten oder vorherigen Monats stattfinden (siehe 7D) umfassen. Bei bestimmten Implementierungen ruft das Navigationsmenu 74 das Anfragewerkzeug 34 auf, wodurch eine neue Anfrage 26 bereitgestellt wird, die das angeforderte Zeitintervall spezifiziert.
-
Das Anzeigemenu 76 umfasst Steuerelemente zum Justieren des Zeitintervalls oder Zeitinkrements bzw. der Zeitinkremente, worin Events 18 angezeigt werden. Bei bestimmten Implementierungen umfasst das Anzeigemenu 76 Steuerelement zum Justieren des Zeitintervalls, dass es ein Monat, eine Woche oder ein Tag ist. Bei bestimmten Implementierungen umfasst das Anzeigemenu 76 ein Steuerelement zum Anzeigen der Events in dem Zeitintervall ohne Aufteilen des Zeitintervalls; d. h. als eine Liste. Bei bestimmten Implementierungen rufen die Steuerelemente in dem Anzeigemenu 76 das Anfragewerkzeug 34 auf, wodurch dem Anfragewerkzeug 34 ein neues Zeitintervall für eine zuvor übermittelte Anfrage 26 zur Verfügung gestellt wird.
-
Der Anzeigebereich 78 ist ein Bereich, in dem Events 18 angezeigt werden. Bei bestimmten Implementierungen fällt der Anzeigebereich 78 mit Ausgaben eines Computerprogramms zusammen; d. h. als eine Überlagerung. In bestimmten Beispielen fällt der Anzeigebereich 78 mit einem persönlichen Kalender zusammen, der von dem Benutzer 12, der die Events 18 betrachtet, geführt wird.
-
8 ist ein Blockdiagramm einer Datenverarbeitungseinrichtung 80, die verwendet werden kann, um das Event-Suchsystem 10 entweder als einen Client oder als einen Server oder mehrere Server zu implementieren. Die Datenverarbeitungseinrichtung 80 soll verschiedene Formen von digitalen Computern repräsentieren, wie zum Beispiel Laptops, Desktops, Workstations, Personal Digital Assistants, Server, Blade-Server, Zentralrechner und andere geeignete Computer. Die hier gezeigten Komponenten, ihre Verbindungen und Beziehungen und ihre Funktionen sollen lediglich beispielhaft sein und sollen nicht Implementierungen der Erfindungen, die in der vorliegenden Schrift beschrieben und/oder beansprucht werden, beschränken.
-
Die Datenverarbeitungseinrichtung 80 umfasst einen Prozessor 82, Speicher 84, eine Speichereinrichtung 86, eine Hochgeschwindigkeitsschnittstelle 88, die an Speicher 84 und Hochgeschwindigkeits-Erweiterungsports 90 angeschlossen ist, und eine Niedergeschwindigkeitsschnittstelle 92, die an einen Niedergeschwindigkeitsbus 94 und die Speichereinrichtung 86 angeschlossen ist. Die Komponenten 82, 84, 86, 88, 90 und 92 werden jeweils unter Verwendung verschiedener Busse miteinander verbunden und können auf einem gemeinsamen Motherboard oder auf andere geeignete Weisen angebracht sein. Der Prozessor 82 kann Anweisungen zur Ausführung in der Datenverarbeitungseinrichtung 80 verarbeiten, darunter, aber ohne Beschränkung darauf, Anweisungen, die in dem Speicher 84 oder in der Speichereinrichtung 86 gespeichert sind, um graphische Informationen für eine GUI auf einer externen Eingabe-/Ausgabeeinrichtung, wie etwa einer mit der Hochgeschwindigkeitsschnittstelle 88 gekoppelten Anzeige 96, anzuzeigen. Bei anderen Implementierungen können geeignet mehrere Prozessoren und/oder mehrere Busse zusammen mit mehreren Speichern und Arten von Speicher verwendet werden. Außerdem können mehrere Datenverarbeitungseinrichtungen 80 verbunden werden, wobei jede Einrichtung Teile der notwendigen Operationen bereitstellt (z. B. als eine Server-Bank, eine Gruppe von Blade-Servern oder ein Mehrprozessorsystem).
-
Der Speicher 84 speichert Informationen in der Datenverarbeitungseinrichtung 80. Bei einer Implementierung ist der Speicher 84 ein computerlesbares Medium. Bei einer Implementierung ist der Speicher 84 eine flüchtige Speichereinheit oder flüchtige Speichereinheiten. Bei einer anderen Implementierung ist der Speicher 84 eine nichtflüchtige Speichereinheit oder nichtflüchtige Speichereinheiten.
-
Die Speichereinrichtung 86 kann Massenspeicherung für die Datenverarbeitungseinrichtung 80 bereitstellen. Bei einer Implementierung ist die Speichereinrichtung 86 ein computerlesbares Medium. Bei verschiedenen unterschiedlichen Implementierungen kann die Speichereinrichtung 86 eine Disketteneinrichtung, eine Festplatteneinrichtung, eine optische Laufwerkeinrichtung oder eine Bandeinrichtung, ein Flash-Speicher oder eine andere ähnliche Halbleiter-Speichereinrichtung oder ein Array von Einrichtungen sein, darunter, aber ohne Beschränkung darauf, Einrichtungen in einem Speichernetzwerk oder anderen Konfigurationen. Bei einer Implementierung wird ein Computerprogrammprodukt greifbar in einem Informationsträger realisiert. Das Computerprogrammprodukt enthält Anweisungen, die, wenn sie ausgeführt werden, ein oder mehrere Verfahren wie etwa die oben beschriebenen ausführen. Der Informationsträger ist ein computer- oder maschinenlesbares Medium, wie etwa der Speicher 84, die Speichereinrichtung 86, Speicher auf dem Prozessor 82 oder ein propargiertes Signal.
-
Die Hochgeschwindigkeitsschnittstelle 88 verwaltet bandbreitenintensive Operationen für die Datenverarbeitungseinrichtung 80, während die Niedergeschwindigkeitsschnittstelle 92 weniger bandbreitenintensive Operationen verwaltet. Eine solche Vergabe von Aufgaben ist nur beispielhaft. Bei einer Implementierung ist die Hochgeschwindigkeitsschnittstelle 88 mit dem Speicher 84, der Anzeige 96 (z. B. durch einen Graphikprozessor oder -beschleuniger) und mit den Hochgeschwindigkeits-Erweiterungsports 90 gekoppelt, die verschiedene (nicht gezeigte) Erweiterungskarten aufnehmen können. Bei der Implementierung ist die Niedergeschwindigkeitsschnittstelle 92 mit der Speichereinrichtung 86 und dem Niedergeschwindigkeitsbus 94 gekoppelt. Der Niedergeschwindigkeits-Erweiterungsport, der verschiedene Kommunikationsports umfassen kann (z. B. USB, Bluetooth, Ethernet, drahtloses Ethernet) kann z. B. durch einen Netzwerkadapter mit einer oder mehreren Eingabe-/Ausgabeeinrichtungen, wie etwa einer Tastatur, einer Zeigeeinrichtung, einem Scanner oder einer Vernetzungseinrichtung wie etwa einem Switch oder Router, gekoppelt sein.
-
Die Datenverarbeitungseinrichtung 80 kann in einer Anzahl verschiedener Formen implementiert werden, wie in der Figur gezeigt. Zum Beispiel kann sie als ein Standardserver 130 oder mehrmals in einer Gruppe solcher Server implementiert sein. Sie kann auch als Teil eines Rack-Serversystems 100 implementiert sein. Zusätzlich kann sie in einem Personal Computer, wie etwa einem Laptop-Computer 102 implementiert sein.
-
Verschiedene Implementierungen des Event-Suchsystems 10 können in digitalen elektronischen Schaltkreisen, integrierten Schaltkreisen, spezifisch entworfenen ASIC (anwendungsspezifischen integrierten Schaltungen), Computerhardware, Firmware, Software und/oder Kombinationen davon realisiert werden. Diese verschiedenen Implementierungen können Implementierung in einem oder mehreren Computerprogrammen umfassen, die auf einem programmierbaren System ausführbar und/oder interpretierbar sind wie etwa, aber ohne Beschränkung darauf, mindestens einem programmierbaren Prozessor, der ein spezieller oder Vielzweckprozessor sein kann, der so geschaltet ist, dass er Daten und Anweisungen von einem Speichersystem, mindestens einer Eingabeeinrichtung und mindestens einer Ausgabeeinrichtung empfängt und Daten und Anweisungen zu diesen sendet.
-
Diese Computerprogramme (die auch als Programme, Software, Softwareanwendungen oder Code bekannt sind) umfassen Maschinenanweisungen für einen programmierbaren Prozessor und können in einer hohen prozeduralen und/oder objektorientierten Programmiersprache und/oder in Assembler-/Maschinensprache implementiert werden. Im vorliegenden Gebrauch beziehen sich die Ausdrücke „maschinenlesbares Medium”, „computerlesbares Medium” auf ein beliebiges Computerprogrammprodukt, eine Vorrichtung und/oder eine Einrichtung (z. B. magnetische Datenträger, optische Datenträger, Speicher, programmierbare Logikeinrichtungen (PLD)), die verwendet werden, um Maschinenanweisungen und/oder Daten einem programmierbaren Prozessor zuzuführen, wie etwa, aber ohne Beschränkung darauf, ein maschinenlesbares Medium, das Maschinenanweisungen als ein maschinenlesbares Signal empfängt. Der Ausdruck „maschinenlesbares Signal” bezieht sich auf ein beliebiges Signal, das verwendet wird, um einem programmierbaren Prozessor Maschinenanweisungen und/oder Daten zuzuführen.
-
Um Interaktion mit einem Benutzer zu gewährleisten, kann das Event-Suchsystem 10 auf einem Computer implementiert werden, der eine Anzeigeeinrichtung (z. B. einen Monitor des Typs CRT (Kathodenstrahlröhre) oder LCD (Flüssigkristallanzeige)) zum Anzeigen von Informationen für den Benutzer und eine Tastatur und eine Zeigeeinrichtung (z. B. eine Maus oder einen Trackball), wodurch der Benutzer dem Computer Eingaben bereitstellen kann, aufweist. Es können auch andere Arten von Einrichtungen zum Bereitstellen von Interaktion mit einem Benutzer verwendet werden; zum Beispiel kann dem Benutzer bereitgestellte Rückmeldung eine beliebige Form von sensorischer Rückmeldung sein (z. B. visuelle Rückmeldung, hörbare Rückmeldung oder Tast-Rückmeldung); und Eingaben von dem Benutzer können in einer beliebigen Form empfangen werden, darunter, aber ohne Beschränkung darauf, akustische, Sprach- oder Tasteingaben.
-
Das Event-Suchsystem 10 kann in einem Datenverarbeitungssystem implementiert sein, das eine Backend-Komponente umfasst (z. B. als ein Datenserver), oder das eine Middleware-Komponente (z. B. einen Anwendungsserver) umfasst, oder das eine Frontend-Komponente umfasst (z. B. einen Client-Computer mit einer graphischen Benutzeroberfläche oder einem Web-Browser, wodurch ein Benutzer mit einer Implementierung des Event-Suchsystems 10 in Interaktion treten kann), oder eine beliebige Kombination solcher Backend-, Middleware- oder Frontend-Komponenten umfasst. Die Komponenten des Systems können durch eine beliebige Form oder ein beliebiges Medium der digitalen Datenkommunikation (z. B. ein Kommunikationsnetzwerk) miteinander verbunden sein. Beispiele für Kommunikationsnetzwerke wären ein lokales Netzwerk („LAN”), ein großflächiges Netzwerk („WAN”) und das Internet.
-
Das Datenverarbeitungssystem kann Clients und Server umfassen. Ein Client und ein Server sind im Allgemeinen voneinander entfernt und treten typischerweise durch ein Kommunikationsnetzwerk in Interaktion. Die Beziehung von Client und Server entsteht mittels Computerprogrammen, die auf den jeweiligen Computern laufen und eine Client-Server-Beziehung zueinander aufweisen.
-
Es liegen andere Ausführungsformen in dem Schutzumfang der folgenden Ansprüche.