DE102018008377A1 - Interaktive Integration von Tutorials - Google Patents

Interaktive Integration von Tutorials Download PDF

Info

Publication number
DE102018008377A1
DE102018008377A1 DE102018008377.3A DE102018008377A DE102018008377A1 DE 102018008377 A1 DE102018008377 A1 DE 102018008377A1 DE 102018008377 A DE102018008377 A DE 102018008377A DE 102018008377 A1 DE102018008377 A1 DE 102018008377A1
Authority
DE
Germany
Prior art keywords
tutorial
application
instruction
file
software application
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.)
Pending
Application number
DE102018008377.3A
Other languages
English (en)
Inventor
Walter W. Chang
Zhihong Ding
Lubomira A. Dontcheva
Gregg D. Wilensky
Darshan D. Prasad
Claudia Veronica Roberts
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Adobe Inc
Original Assignee
Adobe Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Adobe Inc filed Critical Adobe Inc
Publication of DE102018008377A1 publication Critical patent/DE102018008377A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • G06Q50/20Education
    • G06Q50/205Education administration or guidance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/453Help systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/33Intelligent editors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B19/00Teaching not covered by other main groups of this subclass
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B5/00Electrically-operated educational appliances
    • G09B5/02Electrically-operated educational appliances with visual presentation of the material to be studied, e.g. using film strip
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B5/00Electrically-operated educational appliances
    • G09B5/06Electrically-operated educational appliances with both visual and audible presentation of the material to be studied

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Educational Technology (AREA)
  • Educational Administration (AREA)
  • Human Computer Interaction (AREA)
  • Tourism & Hospitality (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • General Business, Economics & Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Stored Programmes (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

Ein Tutorial für eine gegebene Anwendung kann verwendet werden, um ausführbaren Code zu generieren, der sodann innerhalb eines Ursprungsanweisungsdienstes der Anwendung ausgeführt werden kann. Bereitstellen kann eine Softwareanwendung auf diese Art eine integrierte, interaktive Lernerfahrung für einen Nutzer auf eine Art, die über den Anweisungscontent, der in dem Ursprungsanweisungsdienst beinhaltet ist, das heißt, der wenigstens einen Abschnitt des Anweisungscontents des Tutorials beinhaltet, hinausgeht.

Description

  • Technisches Gebiet
  • Die vorliegende Beschreibung betrifft die Integration von Tutorials für Softwareanwendungen.
  • Hintergrund
  • Die Fähigkeit von Softwareentwicklern, Softwareanwendungen mit komplexen und umfangreichen Merkmalen zu entwickeln, übersteigt oftmals die Fähigkeit von Nutzern, diese Merkmale zu kennen und in ihrer Nutzung erfahren zu sein. Im Ergebnis ist Nutzern gegebenenfalls zwar bewusst, dass gewünschte Ergebnisse möglich sind, sie sind jedoch nicht fähig, die gewünschten Ergebnisse zu generieren. Bei anderen Szenarien ist Nutzern nicht einmal bewusst, dass gewünschte Ergebnisse verwirklicht werden können.
  • Softwareentwickler versuchen üblicherweise, derartigen Schwierigkeiten zu begegnen, indem sie beispielsweise Anweisungen zur Nutzung der entwickelten Softwareanwendungen bereitstellen. In einigen Fällen können die Anweisungen im Umfeld einer betroffenen Softwareanwendung bereitgestellt werden, und zwar beispielsweise durch Bereitstellen interaktiver Anweisungen, die in der Softwareanwendung selbst auftauchen und durch diese generiert werden. Das Bereitstellen derartiger Anweisungen ist jedoch oftmals schwierig und zeitaufwändig. Darüber hinaus weisen Softwareanwendungen gegebenenfalls Nutzungen auf, die im Laufe der Zeit von verschiedenen Nutzern entwickelt werden und die von den ursprünglichen Entwicklern der Software nicht explizit bedacht worden sind.
  • Aus diesen und anderen Gründen ist bei Softwareanwendungen, insbesondere bei komplexen Softwareanwendungen, üblich, diese mit Tutorials bzw. Lernprogrammen zu versehen, die Erläuterungen und Anweisungen für die Softwareanwendungen bereitstellen. So kann beispielsweise eine dritte Seite unabhängig ein Tutorial für eine Softwareanwendung erstellen und das Tutorial für Nutzer der Softwareanwendung bereitstellen, um die Nutzer bei der Nutzung der Softwareanwendung zu unterstützen.
  • Derartige Tutorials können die Form von statischen Webpages oder Anweisungsvideos aufweisen. Obwohl der Content derartiger Tutorials äußerst nützlich und lehrreich sein kann, können Form und Struktur derartiger Tutorials stark variieren. Darüber hinaus sind derartige Tutorials üblicherweise außerhalb des Umfeldes der betroffenen Softwareanwendung befindlich, was ein Umstellen des Umfeldes zwischen dem Tutorial und der Anwendung sowie andere damit einhergehende Unannehmlichkeiten bedingt.
  • Zusammenfassung
  • Entsprechend einem allgemeinen Aspekt ist ein Computerprogrammerzeugnis physisch auf einem nichttemporären computerlesbaren Speichermedium verkörpert und beinhaltet Anweisungen. Die Anweisungen sind, wenn sie von wenigstens einer Rechenvorrichtung ausgeführt werden, dafür konfiguriert, die wenigstens eine Rechenvorrichtung zu veranlassen zum: Parsen bzw. Zerlegen einer Tutorialdatei, die aus einer Webpage hergeleitet ist, wobei die Tutorialdatei ein Tutorial darstellt, das von der Webpage für eine Softwareanwendung bereitgestellt wird, und in einem hierarchischen Format aufgebaut ist, in dem Tutorialattribute in Bezug auf entsprechende Werte der Tutorialattribute spezifiziert sind, wobei die Werte wenigstens eine Anweisung, die in der Webpage beinhaltet ist, zur Nutzung der Softwareanwendung beinhalten. Konfiguriert sind die Anweisungen, wenn sie ausgeführt werden, des Weiteren zum Ausführen einer Abbildung der Tutorialattribute auf Anwendungsmerkmale der Softwareanwendung; und Generieren eines Anweisungscodes, der von einem Ursprungsanweisungsdienst der Softwareanwendung ausführbar ist, zum Generieren wenigstens eines Anweisungselementes innerhalb der Softwareanwendung auf Grundlage der Abbildung, wobei das wenigstens eine Anweisungselement wenigstens ein Anwendungsmerkmal der Anwendungsmerkmale identifiziert, das dafür konfiguriert ist, die Erledigung der wenigstens einen Anweisung zu ermöglichen.
  • Entsprechend einem weiteren allgemeinen Aspekt beinhaltet ein computerimplementiertes Verfahren: Parsen bzw. Zerlegen einer Tutorialdatei, die aus einer Webpage hergeleitet ist, wobei die Tutorialdatei ein Tutorial darstellt, das von der Webpage für eine Softwareanwendung bereitgestellt wird, und in einem hierarchischen Format aufgebaut ist, in dem Tutorialattribute in Bezug auf entsprechende Werte der Tutorialattribute spezifiziert sind, wobei die Werte wenigstens eine Anweisung, die in der Webpage beinhaltet ist, zur Nutzung der Softwareanwendung beinhalten. Beinhalten kann das computerimplementierte Verfahren des Weiteren ein Ausführen einer Abbildung der Tutorialattribute auf Anwendungsmerkmale der Softwareanwendung, und ein Generieren eines Anweisungscodes, der von einem Ursprungsanweisungsdienst der Softwareanwendung ausführbar ist, zum Generieren wenigstens eines Anweisungselementes innerhalb der Softwareanwendung auf Grundlage der Abbildung, wobei das wenigstens eine Anweisungselement wenigstens ein Anwendungsmerkmal der Anwendungsmerkmale identifiziert, das dafür konfiguriert ist, die Erledigung der wenigstens einen Anweisung zu ermöglichen.
  • Entsprechend einem weiteren allgemeinen Aspekt beinhaltet ein System wenigstens einen Speicher, der Anweisungen beinhaltet, und wenigstens einen Prozessor, der operativ mit dem wenigstens einen Speicher gekoppelt und der dafür angeordnet und konfiguriert ist, Anweisungen auszuführen, die, wenn sie ausgeführt werden, den wenigstens einen Prozessor veranlassen zum: Eingeben einer Tutorialdatei, die geordnete Anweisungen zum Durchführen einer Anwendungsfunktion einer Softwareanwendung beinhaltet, und Abbilden der geordneten Anweisungen auf entsprechende Anwendungsmerkmale der Softwareanwendung. Angeordnet und konfiguriert sein kann der wenigstens eine Prozessor zum Ausführen der Anweisungen, die, wenn sie ausgeführt werden, einen Anweisungscode generieren, der von einem Ursprungsanweisungsdienst der Softwareanwendung ausführbar und dafür konfiguriert ist, ein interaktives Ausführen der entsprechenden Anwendungsmerkmale innerhalb der Anwendung zum Implementieren der geordneten Anweisungen und Ausführen der Anwendungsfunktion zu ermöglichen.
  • Die Details einer oder mehrerer Implementierungen sind in der begleitenden Zeichnung und der nachstehenden Beschreibung niedergelegt. Weitere Merkmale erschließen sich aus der Beschreibung und der Zeichnung sowie den Ansprüchen.
  • Figurenliste
    • 1 ist ein Blockdiagramm eines Systems zur internen und interaktiven Integration von Tutorials.
    • 2 zeigt Bildschirmkopien (Screenshots) einer exemplarischen Implementierung des Systems von 1.
    • 3 ist ein Flussdiagramm zur Darstellung exemplarischer Vorgänge des Systems von 1.
    • 4 ist ein Blockdiagramm zur Darstellung des Generierens einer PTF-Datei (Portable Tutorial Format PTF, portables Tutorialformat).
    • 5 ist ein Flussdiagramm zur Darstellung eines ersten Beispiels eines Tutorialstrukturmodells.
    • 6 ist ein Flussdiagramm zur Darstellung eines zweiten Beispiels eines Tutorialstrukturmodells.
    • 7 ist ein Flussdiagramm zur Darstellung eines dritten Beispiels eines Tutorialstrukturmodells.
    • 8 ist ein Flussdiagramm zur Darstellung eines vierten Beispiels eines Tutorialstrukturmodells.
    • 9 ist ein Flussdiagramm zur Darstellung eines fünften Beispiels eines Tutorialstrukturmodells.
    • 10 zeigt einen exemplarischen Abschnitt einer PTF-Datei, die in den Systemen von 1 und 4 benutzt wird.
    • 11 ist ein Flussdiagramm zur Darstellung detaillierter exemplarischer Implementierungen des Systems von 4.
    • 12 ist ein Blockdiagramm zur Darstellung des Generierens eines ausführbaren Anweisungscodes unter Nutzung der PTF-Datei von 4.
    • 13 ist ein Flussdiagramm zur Darstellung detaillierter exemplarischer Implementierungen des Systems von 12.
  • Detailbeschreibung
  • Die vorliegende Druckschrift beschreibt Systeme und Techniken zur Bereitstellung einer interaktiven Integration von Tutorials für Softwareanwendungen, die Ursprungsanweisungsdienste aufweisen. Derartige Systeme und Techniken überwinden bestehende Probleme bei vorhandenen Systemen und Techniken und erzeugen oder verbessern den Prozess / die Prozesse zur Durchführung einer zugehörigen automatisierten Verarbeitung. Softwareanwendungen können beispielsweise Ursprungsanweisungsdienste beinhalten, die dafür konzipiert sind, Nutzer beim Lernen dessen zu unterstützen, wie Ursprungsanwendungsmerkmale benutzt werden sollen, beinhaltend ein für die Nutzer erfolgendes Bereitstellen eines interaktiven Zugriffs auf Anweisungscontent und zugeordnete Anwendungsmerkmale. Webbasierter oder anderer Tutorialcontent kann indes auch dafür konzipiert sein, zusätzlichen oder alternativen Anweisungscontent für die Softwareanwendung bereitzustellen.
  • Im Sinne des Vorliegenden kann ein Tutorial für eine gegebene Softwareanwendung dafür verwendet werden, ausführbaren Code zu generieren, der sodann innerhalb eines Ursprungsanweisungsdienstes der Softwareanwendung ausgeführt werden kann. Auf diese Art kann die Softwareanwendung eine integrierte, interaktive Lernerfahrung für einen Nutzer auf eine Art bereitstellen, die über den Anweisungscontent, der in dem Ursprungsanweisungsdienst beinhaltet ist, das heißt, der wenigstens einen Abschnitt des Anweisungscontents des Tutorials beinhaltet, hinausgeht.
  • Die beschriebenen Codegenerierungstechniken nutzen einen effizienten, schnellen, genauen und/oder vollständigen Algorithmus oder solche Algorithmen zur Bereitstellung neuer Computerfunktionalitäten. Die Algorithmen können beispielsweise Tutorialcontent für eine Softwareanwendung aus Tutorialwebseiten Dritter extrahieren, beinhaltend ein Generieren von strukturiertem, markiertem und klassifiziertem Tutorialcontent, der innerhalb eines generischen oder universellen Tutorialformats beinhaltet ist, das hier als portables Tutorialformat (Portable Tutorial Format PTF) bezeichnet wird. Die Algorithmen können derartige PTF-Dateien zudem verarbeiten, um ausführbaren Code zu generieren, der sodann zur Ausführung innerhalb eines Ursprungsanweisungsdienstes der Softwareanwendung beinhaltet sein kann, um den Typ von integrierter, interaktiver Anweisung, wie vorstehend erwähnt und nachstehend noch detailliert beschrieben wird, bereitzustellen.
  • Die Systeme und Techniken stellen beispielsweise eine Nutzerschnittstelle/Nutzerschnittstellen innerhalb einer Softwareanwendung bereit, um Nutzern zu ermöglichen, etwas über Anwendungsmerkmale einer gegebenen Softwareanwendung im Umfeld der Softwareanwendung selbst zu lernen. Das Tutorial kann einen Nutzer beispielsweise anweisen, ein bestimmtes Menü, ein Werkzeug oder einen Icon der Softwareanwendung zu nutzen, um ein gewünschtes Ergebnis zu erhalten. Es ist oftmals schwierig für einen Nutzer, ein bestimmtes Menü, ein Werkzeug oder einen Icon in einer gesamten Nutzerschnittstelle einer Softwareanwendung zu lokalisieren, und zwar auch dann, wenn der Nutzer den Namen oder den allgemeinen Layoutort kennt. Unter Nutzung der beschriebenen Techniken können jedoch das gewünschte Menü, das Werkzeug oder der Icon innerhalb der Anwendung selbst hervorgehoben oder auf andere Art identifiziert werden, indem der Ursprungsanweisungsdienst benutzt wird, um den generierten Code, den man aus dem Tutorial erhält, auszuführen.
  • Zusätzlich zum Typ der gerade erwähnten Anwendungsintegration können die beschriebenen Techniken eine interaktive Lernerfahrung für einen Nutzer innerhalb der Softwareanwendung bereitstellen. Ein ursprüngliches Tutorial kann einen Nutzer beispielsweise anweisen, mehrere Schritte zu durchlaufen, um ein gewünschtes Ergebnis zu erhalten. Unter Nutzung der beschriebenen Techniken kann der Ursprungsanweisungsdienst eine erste Anweisung für den Nutzer in Verbindung mit einem ersten Anwendungsmerkmal bereitstellen, eine entsprechende Eingabe vom Nutzer empfangen und sodann interaktiv (beispielsweise auf Grundlage der empfangenen Eingabe) eine zweite Anweisung für den Nutzer in Verbindung mit einem zweiten Anwendungsmerkmal bereitstellen.
  • Zur darstellungshalber erfolgenden Bereitstellung eines nichtbeschränkenden spezifischen Beispiels kann die Softwareanwendung eine Bearbeitungsanwendung zum Bearbeiten von Bild- oder Videodateien sein und einen Ursprungsanweisungsdienst beinhalten, der dafür konzipiert ist, interaktive Anweisungen für Nutzer bereitzustellen, um gewünschte Bearbeitungsergebnisse zu erhalten. Der Ursprungsanweisungsdienst kann beispielsweise Anweisungen zum Hinzufügen oder Entfernen eines Bildelementes oder zum Ändern der Helligkeit oder Farbe eines Bildes bereitstellen. Es können mehrere Tutorials in Bezug auf die Bild/Videobearbeitungsanwendung bereitgestellt werden. Ein Tutorial kann beispielsweise eine Anweisung zur Durchführung eines Typs von spezialisierter Bildbearbeitung bereitstellen, die innerhalb der Kapazitäten der Bearbeitungsanwendung, jedoch nicht speziell im Anweisungscontent des Ursprungsanweisungsdienstes beinhaltet ist. Bei einem nichtbeschränkenden Beispiel kann eine derartige spezialisierte Bildbearbeitung bei einer speziellen Einstellung auftreten, so beispielsweise für Bilder, die mit sehr hohen Vergrößerungsgraden aufgenommen sind.
  • Die beschriebenen Algorithmen können daher so gedeutet werden, dass sie Content des spezialisierten Tutorials in den Typ einer PTF-Datei, wie vorstehend erwähnt worden ist, umwandeln und sodann aus der PTF-Datei einen ausführbaren Code generieren, der zur Ausführung für den Ursprungsanweisungsdienst der Bearbeitungsanwendung bereitgestellt werden kann. Auf diese Art können für einen Nutzer integrierte, interaktive Schritt-für-Schritt-Anweisungen zur Durchführung des Typs der gewünschten Bildbearbeitung innerhalb des Umfeldes der Bearbeitungsanwendung selbst bereitgestellt werden.
  • Wie nachstehend noch detailliert beschrieben wird, beinhalten exemplarische Techniken die Nutzung verschiedener Typen maschinellen Lernens und zugeordneter Algorithmen und Modelle. Derartige Algorithmen und Modelle können beispielsweise dafür benutzt werden, Tutorialcontent aus Tutorialwebseiten auf effiziente automatisierte Art zu extrahieren, beinhaltend das Markieren des extrahierten Contents auf eine Art, die für den Tutorialcontent spezifisch ist. Derartige Algorithmen und Modelle können zudem dafür benutzt werden, den extrahierten, markierten Content in eine PTF-Datei umzuwandeln, beinhaltend ein Klassifizieren des markierten Contents als bekannter Satz von Tutorialstrukturen. Derartige Algorithmen und Modelle können des Weiteren dafür benutzt werden, Anwendungsmerkmale zu bestimmen, die vom Ursprungsanweisungsdienst unterstützt werden. Derartige Algorithmen und Modelle können des Weiteren dafür benutzt werden, Content der PTF-Datei zu bestimmen, der bestimmten Anweisungsmerkmalen entspricht, die vom Ursprungsanweisungsdienst unterstützt werden. Bei einem letzten Beispiel / letzten Beispielen können derartige Algorithmen und Modelle dafür benutzt werden, ausführbaren Code für den Ursprungsanweisungsdienst zu generieren, um den Typ der integrierten, interaktiven Anweisungserfahrung für den Tutorialcontent, wie hier beschrieben ist, bereitzustellen.
  • Zusätzlich verbessern die hier beschriebenen Systeme und Techniken vorteilhafterweise bestehende technologische Bereiche. Wie beschrieben worden ist, wird beispielsweise das computerbasierte Anweisen verbessert, indem beispielsweise eine computerbasierte Anweisung zur Nutzung von Anwendungsmerkmalen bereitgestellt wird. Die Systeme und Techniken können zudem für eine stärker automatisierte und effizientere und schnellere Lösung beim Generieren eines ausführbaren Codes für Ursprungsanweisungsdienste benutzt werden.
  • 1 ist ein Blockdiagramm eines Systems 100 zur interaktiven Integration von Tutorials. Das System 100 beinhaltet eine Rechenvorrichtung 102 mit wenigstens einem Speicher 104, wenigstens einem Prozessor 106 und wenigstens einer Anwendung 108. Die Rechenvorrichtung 102 kann mit einer oder mehreren anderen Rechenvorrichtungen über ein Netzwerk 110 kommunizieren. Die Rechenvorrichtung 102 kann mit einer Nutzervorrichtung 112 über das Netzwerk 110 kommunizieren. Die Rechenvorrichtung 102 kann als Server, als Desktopcomputer, als Laptopcomputer, als Mobilvorrichtung, also beispielsweise als Tabletvorrichtung oder Mobiltelefonvorrichtung, oder auch als andere Typen von Rechenvorrichtungen implementiert sein. Obwohl eine einzige Rechenvorrichtung 102 dargestellt ist, kann die Rechenvorrichtung 102 mehrere Rechenvorrichtungen, die miteinander kommunizieren, so beispielsweise mehrere Server, die miteinander kommunizieren und dafür benutzt werden, verschiedene Funktionen über ein Netzwerk auszuführen, darstellen. Bei vielen der nachfolgenden Beispiele ist die Rechenvorrichtung 102 als Server beschrieben oder kann als solcher gedeutet werden.
  • Der wenigstens eine Prozessor 106 kann zwei oder mehr Prozessoren an der Rechenvorrichtung 102 darstellen, die parallel betrieben werden und entsprechende Anweisungen nutzen, die unter Nutzung des wenigstens einen Speichers 104 gespeichert werden. Der wenigstens eine Speicher 104 stellt wenigstens ein nichttemporäres computerlesbares Speichermedium dar. Auf ähnliche Art kann der wenigstens eine Speicher 104 daher einen oder mehrere verschiedene Typen von Speicher darstellen, die von der Rechenvorrichtung 102 benutzt werden. Zusätzlich zur Speicherung von Anweisungen, die ermöglichen, dass der wenigstens eine Prozessor 106 die Anwendung 108 und ihre verschiedenen Komponenten implementiert, kann der wenigstens eine Speicher 104 zur Speicherung von Daten benutzt werden.
  • Das Netzwerk 110 kann als das Internet implementiert sein, kann jedoch auch andere Konfigurationen aufweisen. Das Netzwerk 110 kann beispielsweise ein Großbereichsnetzwerk (WAN), ein Ortsbereichsnetzwerk (LAN), ein Drahtlosnetzwerk, ein Intranet, Kombinationen aus diesen Netzwerken sowie andere Netzwerke beinhalten. Obwohl das Netzwerk 110 als einzelnes Netzwerk dargestellt ist, kann das Netzwerk 110 selbstredend auch derart implementiert sein, dass es mehrere verschiedene Netzwerke beinhaltet.
  • Auf die Anwendung 108 kann von einem Nutzer der Rechenvorrichtung 102 direkt an der Rechenvorrichtung 102 zugegriffen werden. Bei anderen Implementierungen kann die Anwendung 108 auf der Rechenvorrichtung 102 als Komponente eines Cloud-Netzwerkes laufen, wo ein Nutzer auf die Anwendung 108 von einer anderen Rechenvorrichtung (beispielsweise der Nutzervorrichtung 112) aus über ein Netzwerk, so beispielsweise das Netzwerk 110, zugreift. Bei einer Implementierung kann die Anwendung 108 eine Bildbearbeitungsanwendung sein, wie vorstehend erwähnt worden ist und nachstehend im Zusammenhang mit den Detailbeispielen noch beschrieben wird. Bei anderen Implementierungen kann die Anwendung 108 eine Dokumenterstellungs- oder Betrachtungsanwendung, eine Suchanwendung, eine Tabellenanwendung, eine Musik- oder Audioanwendung oder ein nahezu beliebiger anderer Typ von Softwareanwendung sein, die die Typen der hier beschriebenen interaktiven Integration von Tutorials nutzen können. Die Anwendung 108 kann zudem eine eigenständige Anwendung oder auch eine Anwendung sein, die wenigstens teilweise in einer anderen Anwendung, so beispielsweise einer Browseranwendung, läuft. Die Anwendung 108 kann selbstredend beispielsweise auch eine Kombination aus den vorgenannten Beispielen sein.
  • Bei dem Beispiel von 1 ist die Nutzervorrichtung 112 derart dargestellt, dass sie eine Anzeige 114 beinhaltet, in der ein Bild 116 wiedergegeben wird. Wie vorstehend erwähnt worden ist, kann das Bild 116 von einer Bildbearbeitungsanwendung bereitgestellt werden, die wenigstens einen Teil der Anwendung 108 beinhalten kann oder die eine Fähigkeit der Anwendung 108 nutzt, um von den verschiedenen hier beschriebenen Techniken zur Integration von Tutorials zu profitieren.
  • Insbesondere ist das Bild 116 einfach das Bild eines Hauses, das lediglich darstellungshalber für einige der betroffenen Konzepte, die hier beschrieben werden, im Zusammenhang mit dem System 100 von 1 gezeigt ist. Eine detailliertere exemplarische Darstellung der Anwendung 108 als Bildbearbeitungsanwendung, die zum Bearbeiten eines Bildes genutzt wird, ist nachstehend anhand 2 angegeben.
  • In 1 stellt ein Tutorial 118 ein vereinfachtes Beispiel für eine Webpage dar, die Anweisungsmaterial zur Nutzung der Anwendung 108, also beispielsweise zur Bearbeitung des Bildes 116, beinhaltet. In diesem Zusammenhang ist der Begriff „Tutorial“ derart zu verstehen, dass er nahezu jedes organisierte Anweisungsmaterial darstellt, das über das Netzwerk 110 verfügbar sein oder auf andere Art verfügbar gemacht werden kann. In der Praxis wird das Tutorial 118 oftmals von einem Drittseitenanbieter bereitgestellt, also beispielsweise von jemand anderem als dem Anbieter der Softwareanwendung 108 und dem Nutzer der Nutzervorrichtung 112.
  • Das Tutorial 118 kann beispielsweise von einem anderen Nutzer bereitgestellt werden, der eine vorteilhafte Bildbearbeitungstechnik teilen will. Bei anderen Beispielen kann das Tutorial 118 als Teil einer Suite bzw. eines Pakets von Tutorials für die Anwendung 108 oder andere Anwendungen bereitgestellt werden, was beispielsweise dann der Fall ist, wenn professionelle Autoren von Tutorials derartige Tutorials kollektiv erstellen und bereitstellen. In derartigen Fällen können Tutorials, so beispielsweise das Tutorial 118, als Teil einer derartigen organisierten Sammlung von Tutorials, beispielsweise nach Themen gegliedert, zu finden sein. Bei anderen Szenarien können einzelne Tutorials direkt ausfindig gemacht werden, und zwar beispielsweise als Ergebnis einer Suche, die von einem Nutzer der Nutzervorrichtung 112 durchgeführt wird. Weitere Beispiele für das Tutorial 118 sind nachstehend angegeben oder erschließen sich.
  • Die Anwendung 108 ist indes derart dargestellt, dass sie einen Ursprungsanweisungsdienst 120 beinhaltet, der einen Anweisungscode ausführt, um vorteilhafte Anweisungen für den Nutzer der Nutzervorrichtung 112 bei der Nutzung der Anwendung 108 bereitzustellen. Ein Anweisungselementgenerator 124 ist beispielsweise derart dargestellt, dass er eine Anweisung im Zusammenhang mit einem spezifischen Anwendungsmerkmal der Anwendung 108 bereitstellt. Dies bedeutet bei dem vereinfachten Beispiel von 1, dass die Anzeige 114 derart dargestellt ist, dass sie eine Auswahlschaltfläche 126 zur Auswahl des Kontrastes des Bildes 116 beinhaltet. Im Betrieb kann der Anweisungselementgenerator 124 dafür konfiguriert sein, eine Anweisung im Zusammenhang mit der Kontrastschaltfläche 126 bereitzustellen, und zwar beispielsweise durch Hervorheben oder auf andere Art erfolgendes Identifizieren der Kontrastschaltfläche 126, so beispielsweise unter Nutzung eines Anweisungselementes, das in 1 als gestrichelte Umrisslinie 128 dargestellt ist. Obwohl dies in 1 nicht explizit dargestellt ist, kann der Ursprungsanweisungsdienst 120 eine Anweisung, so beispielsweise „Als Nächstes die Kontrastschaltfläche auswählen“, gefolgt von einem Generieren des Anweisungselementes 128, bereitstellen, um die nutzerseitige Auswahl der Kontrastschaltfläche 126 zu erleichtern.
  • Es sollte einsichtig sein, dass das Tutorial 118 und der Ursprungsanweisungsdienst 120 beide verschiedene Vorteile aber auch Probleme mit sich bringen. Das Tutorial bietet beispielsweise Vorteile, so beispielsweise das Bereitstellen von stark angepasstem Anweisungsmaterial für einen Nutzer der Anwendung 108. Dies bedeutet, dass das Tutorial 118 an den spezifischen Nutzer oder eine Klasse von Nutzern (beispielsweise an einen Neuling, einen Durchschnittsnutzer oder einen fortgeschrittenen Nutzer) und/oder auf Grundlage des Typs der gegebenen Anweisung (beispielsweise Bildbearbeitung für Hochgeschwindigkeitsfotografie oder ein anderes spezifisches Umfeld) angepasst sein kann. Des Weiteren kann das Tutorial 118 nach dem Zeitpunkt, zu dem die Anwendung 108 selbst auf den Markt gebracht worden ist, generiert und veröffentlicht werden, sodass das Tutorial 118 Material beinhaltet, das zum Zeitpunkt der Markteinführung der Anwendung 108 noch nicht relevant oder verfügbar gewesen ist. Zudem kann das Tutorial 118 ein weites Feld von Autoren einsetzen, die sehr entwickelte Fähigkeiten in ihren jeweiligen Erfahrungsgebieten haben und die gegebenenfalls Anweisungsmaterial für Fähigkeiten der Anwendung 108 bereitstellen, die nicht einmal der Anbieter der Softwareanwendung 108 kennt oder ahnt.
  • Demgegenüber tritt bei dem Tutorial 118 ein Problem dahingehend auf, dass das Tutorial 118 üblicherweise in einem Umfeld, das vom Betrieb der Anwendung 108 getrennt ist, bereitgestellt wird. Wird das Tutorial 118 als Teil einer Webseite bereitgestellt, so kann das Tutorial 118 in einem separaten Browser oder Browserfenster an der Anzeige 114 der Anwendung 108 bereitgestellt werden. In diesen und ähnlichen Fällen ist der Nutzer der Nutzervorrichtung 100 gegebenenfalls genötigt, vom Umfeld des Tutorials 118 auf das Umfeld der Anwendung 108 umzustellen, was gegebenenfalls unangenehm und zeitaufwändig ist.
  • Des Weiteren ist es für den Nutzer gegebenenfalls schwierig, das Tutorial 118 zu identifizieren und ausfindig zu machen. Der Nutzer kann beispielsweise mit Webseitenverzögerungen, nicht einschlägigem, unerwünschtem Content und verschiedenen anderen Unannehmlichkeiten beim Zugriff auf das Tutorial 118 konfrontiert sein.
  • Bei einem letzten Beispiel für die Schwierigkeit der direkten Nutzung des Tutorials 118 kann es schwierig sein, in dem Tutorial 118 die nötigen Aspekte der Anwendung 108 zu identifizieren. Versucht das Tutorial 118 beispielsweise, eine Anweisung im Zusammenhang mit der Kontrastschaltfläche 126 bereitzustellen, so muss das Tutorial 118 gegebenenfalls zunächst primär Anweisungen im Zusammenhang damit bereitstellen, wie die Kontrastschaltfläche 126 ausfindig zu machen ist (beispielsweise durch Identifizieren eines allgemeinen Layoutortes oder eines übergeordneten Menüs). In dem gegebenen separaten Umfeld des Tutorials 118 sind diese Anweisungen oftmals kaum schlüssig und zuverlässig bereitzustellen, können das Problem mit dem Typ des Umstellens des Umfeldes, wie vorstehend erwähnt worden ist, verschärfen und allgemein zur Verwirrung und Frustration des Nutzers führen.
  • Der Ursprungsanweisungsdienst 120 weist indes die Vorteile auf, dass er innerhalb der Anwendung 108 selbst beinhaltet ist. Designer und Entwickler der Anwendung 108 können den Ursprungsanweisungsdienst 120 bereitstellen, und zwar beispielsweise in Verbindung mit der Markteinführung oder Aktualisierung der Anwendung 108. Im Ergebnis kann das Anweisungselement 128, wie bereits beschrieben worden ist, direkt im Umfeld der Anwendung 108 bereitgestellt werden.
  • Im Allgemeinen greifen Designer/Entwickler der Anwendung 108 auf betroffene Merkmale aus einer Merkmalsliste 130 der Anwendung 108 zu und kennen diese. In diesem Zusammenhang bezeichnen, wie nachstehend noch detaillierter ausgeführt und erläutert wird, derartige Merkmale allgemein beliebige betroffene Fähigkeiten der Anwendung 108, für die die Anweisung bereitgestellt sein kann, darunter beliebige Werkzeuge, Handlungen oder Befehle, die beinhaltet sind, wie auch beliebige zugeordnete Menüs, Schaltflächen, Werkzeugleisten bzw. Toolbars, Icons oder andere optische (oder akustische oder haptische) Elemente, die zum Auswählen oder Implementieren der Werkzeuge, Handlungen oder Befehle benutzt werden. Ein Beispiel für ein derartiges Merkmal ist selbstredend das Merkmal des Anpassens des Bildkontrastes, wie dies durch die Kontrastschaltfläche 126 implementiert ist.
  • Um die vorgenannten Probleme wie auch weitere Probleme zu lösen und um die verschiedenen Vorteile sowohl des Tutorials 118 wie auch des Ursprungsanweisungsdienstes 120 auszunutzen, ist ein Tutorialverwalter 132 beispielsweise dafür konfiguriert, das Tutorial 118 ausfindig zu machen und den Content des Tutorials 118 zu integrieren, beinhaltend ein Generieren von Anweisungscode, der innerhalb des Anweisungscodes 122 beinhaltet sein soll. Beinhaltet das Tutorial 118 beispielsweise eine Anweisung zur Nutzung der Kontrastschaltfläche 126, so kann der Tutorialverwalter 132 einen Anweisungscode generieren, der innerhalb des Anweisungscodes 122 beinhaltet und von dem Anweisungselementsgenerator 124 ausführbar ist. Infolgedessen kann der Anweisungselementgenerator 124 das Anweisungselement 128 direkt innerhalb des Umfeldes der Anzeige 114 und der Anwendung 108 generieren, wodurch der Anweisungscontent des Tutorials 118 verwendet wird und zudem die Vorteile des Ursprungsanweisungsdienstes 120 genutzt werden.
  • In der restlichen Beschreibung von 1 werden die Elemente 134 bis 150 des Tutorialverwalters 132 einzeln als separate Module oder Komponenten beschrieben, die spezifische Funktionen aufweisen. Es sollte einsichtig sein, dass die Beschreibung erläuterungshalber nichtbeschränkende Beispiele für derartige Funktionen angibt, weitere Implementierungen jedoch ebenfalls möglich sind. Ein einziges Element des Tutorialverwalters 132 kann beispielsweise als zwei oder mehr Teilelemente implementiert sein; oder es können umgekehrt zwei oder mehr Elemente je nach Bedarf als ein einziges Element integriert und implementiert sein. Spezifische Beispiele für Implementierungen von 1 sind nachstehend anhand der verbleibenden 2 bis 13 angegeben oder erschließen sich.
  • Bei dem Beispiel von 1 beinhaltet der Tutorialverwalter 132 einen Tutorialmarkierer 134. Der Tutorialmarkierer 134 kann dafür konfiguriert sein, das Tutorial 118 zu parsen bzw. zu zerlegen und Content des Tutorials 118 zu markieren. Der Tutorialmarkierer 134 kann beispielsweise Metadaten, Tags, Labels oder andere Markierungen, die eine semantische Bedeutung definieren, oder anderen Kontext oder eine andere Eigenschaft eines oder mehrerer Begriffe des Contents des Tutorials 118 hinzufügen. Bei einem spezifischen nichtbeschränkenden Beispiel können Markierungen hinzugefügt werden, um den Titel oder den Urheber des Tutorials 118 oder eine Contentbeschreibung oder auch eine Themenüberschrift hinzuzufügen.
  • Ein Tutorialextraktor 136 kam dafür konfiguriert sein, eine Struktur oder Strukturelemente des Tutorials 118 zu extrahieren. Dies bedeutet, wie nachstehend noch detailliert beschrieben wird, dass Tutorials, so beispielsweise das Tutorial 118, tendenziell eine Version einer oder mehrerer Tutorialstrukturen beinhalten. Der Tutorialextraktor 136 kann eine oder mehrere Vorlagen beinhalten, die an dem Tutorial 118, beispielsweise an der Ausgabe des Tutorialmarkierers 134, angewendet werden können, um derartige strukturelle Elemente oder Aspekte zu identifizieren (beispielsweise zusätzlich zu markieren). Der sich ergebende markierte Tutorialcontent 138 kann zur weiteren Verarbeitung gespeichert werden.
  • Insbesondere kann ein PTF-Generator 140 (Portable Tutorial Format PTF, portables Tutorialformat) dafür konfiguriert sein, die semantischen und strukturellen Markierungen des markierten Tutorialcontents 138 zu parsen bzw. zu zerlegen und eine Datei zu generieren, die ein standardisiertes konsistentes Format aufweist, das bei nahezu allen Tutorials anwendbar ist (beispielsweise zur genauen und vollständigen Darstellung benutzt werden kann) und das, wie nachstehend noch beschrieben wird, leicht zur Nutzung durch den Ursprungsanweisungsdienst 120 umgewandelt werden kann. Die sich ergebende Datei im PTF-Format kann sodann bei den PTF-Dateien 142 gespeichert werden.
  • Allgemein weist eine PTF-Datei, wie nachstehend anhand 10 noch detailliert dargestellt und beschrieben wird, ein hierarchisches Format auf, in dem eine identifizierte Struktur / identifizierte Strukturen des zugrunde liegenden Tutorials als endlicher Satz von Strukturmodellen klassifiziert ist/sind, wie in 5 bis 9 dargestellt und nachstehend anhand derselben noch beschrieben wird. Des Weiteren kann Information, die in der sich ergebenden PTF-Datei beinhaltet ist, als Attribut-/Wertpaare (beispielsweise „Urheber: Rebeca Creger“) beinhaltet sein und gespeichert werden, um die weitere Verarbeitung zu erleichtern.
  • Das Beispiel von 1 ist derart zu verstehen, dass ein Modelltrainer 144 dafür konfiguriert ist, mehrere Modelle und zugeordnete Algorithmen zu trainieren, die beispielsweise von dem Tutorialmarkierer 134, dem Tutorialextraktor 136 und dem PTF-Generator 140 benutzt werden können. In diesem Zusammenhang sollte einsichtig sein, dass beim maschinellen Lernen oder künstlicher Intelligenz üblicherweise eine oder mehrere Funktionen oder ein oder mehrere Algorithmen definiert sind, die eine Eingabe oder einen Typ von Eingabe auf eine entsprechende Ausgabe oder einen Typ von Ausgabe beziehen. Derartige Algorithmen/Funktionen werden unter Nutzung von Trainingsdaten trainiert, von denen akzeptiert ist, dass sie eine „Ground Truth“ bekannter, genauer Beziehungen zwischen den betrachteten Eingaben/Ausgaben darstellen.
  • In diesem Zusammenhang bezeichnet der Begriff „Training“ allgemein das Ausführen einer Abfolge iterativer Trainingsrunden, in denen Optimalgewichtungswerte für einen oder mehrere der Algorithmen / für eine oder mehrere der Funktionen, auf die verwiesen wird, bestimmt werden. Beim Bestimmen der Optimalgewichtungen macht der Modelltrainer 144 Vorhersagen im Wesentlichen auf Grundlage der Trainingsdaten und misst sodann den Fehler in den Vorhersagen unter Nutzung der Ground Truth, die in dem betroffenen Trainingsdatensatz verfügbar ist. Die Funktion, die zum Messen derartiger Fehlemiveaus benutzt wird, wird oftmals als Verlustfunktion bezeichnet und ist allgemein dafür konzipiert, ein Summieren über die betroffenen Trainingsbeispiele vorzunehmen und diese zu dem berechneten Verlust zu addieren, wenn eine Vorhersage nicht korrekt war, oder den berechneten Verlust zu verringern / zu minimieren, wenn die Vorhersage korrekt war. Auf diese Art können Modelle dem Konzept nach derart gedeutet werden, dass sie dafür trainiert sind, aus Fehlern, die während der verschiedenen Iterationen der Vorhersagen gemacht werden, zu lernen, damit die sich jeweils ergebenden trainierten Modelle schnell, effizient und genau sind, wenn sie im Umfeld des Tutorialverwalters 132 eingesetzt werden.
  • Detailliertere Beispiele für Operationen des Modelltrainers 144 werden nachstehend beispielsweise im Zusammenhang mit 4 sowie 11 bis 13 bereitgestellt. Allgemein sollte einsichtig sein, dass jeder von dem Tutorialmarkierer 134, dem Tutorialextraktor 136 und dem PFT-Generator 140 wenigstens teilweise unter Nutzung entsprechender Algorithmen maschinellen Lernens, die unter Nutzung des Modelltrainers 144 trainiert werden, implementiert sein kann. Selbstredend kann der Modelltrainer 144 derart gedeutet werden, dass er zwei oder mehr Modelltrainer darstellt, von denen jeder passend für ein trainiertes entsprechendes Modell konfiguriert ist.
  • Für die Elemente 134, 136, 140 kann der Modelltrainer 144 beispielsweise eine oder mehrere bekannte Tutorialwebseiten nutzen, von denen bestimmt worden ist, dass die Semantiken und Strukturen des Tutorials in entsprechenden Datensätzen beinhaltet sind, und für die korrekte PTF-Dateien generiert worden sind. Diese Datensätze können sodann als Trainingsdaten dafür benutzt werden, den Tutorialmarkierer 134 zum Markieren eines neuen Tutorials, den Tutorialextraktor 136 zum Extrahieren von Content eines neuen Tutorials und den PTF-Generator 140 zum Generieren einer entsprechenden PTF-Datei zur Aufnahme in die PTF-Dateien 142 zu trainieren.
  • Des Weiteren kann, siehe 1, ein Merkmalsextraktor 146 dafür konfiguriert sein, beliebige und sämtliche Anwendungsmerkmale der Softwareanwendung 108, die für die eine oder die mehreren PTF-Dateien 142 einschlägig sein können, zu identifizieren. Wie vorstehend beschrieben worden ist, kann die Anwendung 108 beispielsweise die Merkmalsliste 130 beinhalten, und der Merkmalsextraktor 146 kann wenigstens einige einschlägige Merkmale aus der verfügbaren Merkmalsliste 130 bestimmen. Ist die Merkmalsliste 130 für den Tutorialverwalter 132 nicht verfügbar oder unvollständig, so kann der Merkmalsextraktor 146 dennoch dafür konfiguriert sein, einen Algorithmus maschinellen Lernens (der von dem Modelltrainer 144 trainiert wird) zum Analysieren der Anwendung 108 und zum Bestimmen etwaiger einschlägiger Anwendungsmerkmale auszuführen. Der Merkmalsextraktor 146 kann beispielsweise Anwendungswerkzeugnamen, Befehle, Menüs und andere handlungsbezogene Elemente der Anwendung 108 bestimmen.
  • Die sich ergebenden Merkmale können sodann von einem Merkmalsabbilder 148 im Zusammenhang mit einer bestimmten PTF-Datei der PTF-Dateien 142 benutzt werden. Wie nachstehend noch detailliert beschrieben wird, kann der Merkmalsabbilder 148 dafür konfiguriert sein, eine PTF-Datei zu analysieren und Verweise auf beinhaltete Menübefehle oder Werkzeugnamen oder andere Anwendungsmerkmale der Anwendung 108 zu bestimmen. Insbesondere sollte einsichtig sein, dass derartige Verweise gegebenenfalls nicht den richtigen oder den vollständigen Namen der entsprechenden Anwendungsmerkmale benutzen.
  • Es sollte einsichtig sein, dass als Folge dessen der Merkmalsabbilder 148 von dem Modelltrainer 144 dafür trainiert werden kann, eine für natürliche Sprache vorgesehene Verarbeitung (Natural Language Processing NLP) des Contents der PTF-Datei auszuführen, um die Anwendungsmerkmale, auf die verwiesen wird, korrekt zu identifizieren. In diesem Zusammenhang ist die NLP derart zu deuten, dass sie eine beliebige Form maschinellen Lernens zum Analysieren der Sprache der PTF-Datei darstellt oder beinhaltet. Die NLP kann beispielsweise als regelbasiertes Verfahren implementiert sein, bei dem spezifische Worte und Wendungen innerhalb des Textes identifiziert und spezifische Abbildungen auf Anwendungsmerkmale angewendet werden, wenn diese Worte/Wendungen identifiziert werden. Bei anderen Beispielen können große Trainingsdatensätze benutzt werden, um eine Hierarchie von Abstraktionsebenen aufzubauen, bei der man jede Ebene unter Nutzung des Wissens einer vorherigen Ebene erhält. Insbesondere können beispielsweise mehrere Algorithmen benutzt werden, um ein statistisches Modell / statistische Modelle zum Kennzeichnen von Daten des Trainingsdatensatzes zu erstellen, beinhaltend ein Durchführen von Iterationen mit dem statistischen Modell / den statistischen Modellen, bis diese einen annehmbaren Genauigkeitsgrad (beispielsweise einen ausreichend minimierten Fehler oder eine solche Verlustfunktion) erreichen.
  • Schließlich ist, siehe 1, ein Anweisungscodegenerator 150 dafür konfiguriert, die abgebildeten Merkmale des Merkmalsabbilders 148 im Zusammenhang mit einer gegebenen PTF-Datei zu empfangen und einen ausführbaren Code zu generieren, der in dem Anweisungscode 122 beinhaltet ist und von dem Ursprungsanweisungsdienst 120 (beispielsweise durch den Anweisungselementgenerator 124) ausgeführt werden soll. Wie nachstehend noch detailliert beschrieben wird, kann die PTF-Datei beispielsweise in ein JSON-Objekt (Javascript Object Notation JSON) umgewandelt werden, das eine hierarchische Struktur aufweisen kann, die ähnlich zu derjenigen der PTF-Datei ist, jedoch in einschlägigen Anwendungsmerkmalen ausgedrückt wird, die zum Ausführen von Anweisungen des ursprünglichen Tutorials 118 erforderlich sind.
  • Obwohl das Beispiel eines JSON-Objektes gegeben ist, bei dem ein Teilsatz der Programmiersprache JavaScript benutzt wird, sollte einsichtig sein, dass auch andere Datenaustauschsprachformate benutzt werden können, um den Anweisungscode zu generieren. Die Wahl der Sprache kann teilweise von der Sprache des Anweisungscodes 122 abhängen, der in verschiedenen Softwareanwendungen gegeben sein kann. Es kann beispielsweise eine XML-Datei (eXtensible Markup Format XML, erweiterbares Markierungsformat) benutzt werden.
  • Auf diese Art kann der Ursprungsanweisungsdienst 120 derart modifiziert werden, dass er Anweisungen für einen Nutzer der Nutzervorrichtung 112 im Umfeld der Softwareanwendung 108 bereitstellt. Ein Entwickler oder Designer der Softwareanwendung kann den Tutorialverwalter 132 beispielsweise dafür nutzen, die Anwendung 108 zu aktualisieren. Bei anderen Beispielen kann ein Administrator, der die durch mehrere Nutzer erfolgende Nutzung der Anwendung 108 überblickt, befugt sein, den Tutorialverwalter 132 dafür zu nutzen, die Softwareanwendung 108 zu aktualisieren. Bei wieder anderen Beispielen kann der Nutzer der Nutzervorrichtung 112 die Fähigkeit aufweisen, das Tutorial 118 zu identifizieren und den Tutorialverwalter 132 zu nutzen, um den Content des Tutorials 118 innerhalb der Softwareanwendung 108 für den Typ von interaktiver, umfeldbezogener Anweisungserfahrung, die hier beschrieben wird, zu integrieren.
  • Wie eben erwähnt worden ist, kann das Tutorial 118 von dem Tutorialverwalter 132 derart individuell identifiziert und verarbeitet werden, dass es das bestimmte Thema des Tutorials 118 beinhaltet. Bei anderen Implementierungen können mehrere Tutorials identifiziert und miteinander integriert werden. Eine bestimmte Tutorialwebseite kann beispielsweise eine Anzahl von Tutorials im Zusammenhang mit der Softwareanwendung 108 aufweisen, die alle einen ähnlichen Satz von Semantiken und Struktur nutzen. In derartigen Fällen kann die Gruppe von Tutorials zur zukünftigen Nutzung auch dann miteinander integriert werden, wenn kein unmittelbarer Bedarf an einem gegebenen der Tutorials vorhanden ist.
  • 2 zeigt Bildschirmkopien (screenshots) einer exemplarischen Implementierung des Systems 100 von 1. Bei dem Beispiel von 2 ist eine Tutorialwebpage 202 dargestellt und stellt beispielsweise das Tutorial 118 von 1 dar. Bei dem Beispiel von 2 beinhaltet die Tutorialwebpage 202 mehrere Schritte einer oder mehrerer Prozeduren, die von dem Tutorial beschrieben werden, darunter einen Schritt 204, der in 2 als „Schritt 3“ dargestellt ist. Wie vorstehend anhand 1 erläutert worden ist, kann die Tutorialwebpage 202 auch mehrere Werbeanzeigen und anderen Zusatzcontent beinhalten, der wie in 2 durch eine exemplarische Werbeanzeige 206 dargestellt ist. Des Weiteren kann der Tutorialcontent ein Bild, ein Video, Ton oder eine andere Art von Datei beinhalten, was ein Beispiel für das Thema des in Rede stehenden Tutorials, das in der Bilddatei 208 dargestellt ist, sein kann.
  • Bei dem Beispiel von 2 und bei zahlreichen nachfolgenden Beispielen wird davon ausgegangen, dass die Softwareanwendung 108 von 1 die Bearbeitungssoftware „Adobe Photoshop“ ist. Bei derartigen exemplarischen Implementierungen kann davon ausgegangen werden, dass der Ursprungsanweisungsdienst 102 von 1 von dem Programm „Photoshop Learn Panel“, das ursprünglich zu Adobe Photoshop gehört, dargestellt wird. Infolgedessen illustriert und zeigt, wie bei dem Beispiel von 2 dargestellt ist und hier detailliert beschrieben wird, der Pfeil 210 die Nutzung des Tutorialverwalters 132 von 1 beim Analysieren der Tutorialwebpage 202 und Generieren von Code, der innerhalb des betroffenen Ursprungsanweisungsdienstes (Adobe Photoshop Learn Panel) der Softwareanwendung „Adobe Photoshop“ ausführbar ist.
  • Insbesondere können der Tutorialmarkierer 134 und der Tutorialextraktor 136 dafür konfiguriert sein, Content und Struktur der Tutorialwebpage 202 zu markieren und zu extrahieren und hierdurch eine PTF-Datei zur Hinzunahme zu den PTF-Dateien 142 als Ergebnis des Betriebs des PTF-Generators 140 zu generieren. Sodann kann der Merkmalsabbilder 148 unter Nutzung von Merkmalen, die man durch den Merkmalsextraktor 146 erhält, dafür konfiguriert sein, die sich ergebende PTF-Datei auf entsprechende Merkmale des Dienstes „Photoshop Learn Panel“ abzubilden. Der Anweisungscodegenerator 150 kann sodann zum Generieren von Anweisungscode, der innerhalb des Anweisungscodes 122 beinhaltet sein kann, für Photoshop Learn Panel übergehen.
  • Im Ergebnis kann das Bild 208 der Tutorialwebpage 202 als entsprechendes Bild 212 beinhaltet sein und wiedergegeben werden, wobei Schritt 204 auf ähnliche Art wie Schritt 214 beinhaltet sein und wiedergegeben werden kann. Wie aus 2 ersichtlich ist, werden das Bild 212 und der Schritt 214 direkt in dem Ursprungsanweisungsdienst „Adobe Photoshop Learn Panel“ wiedergegeben, sodass ein Nutzer nicht genötigt wird, zwischen dem Umfeld der Softwareanwendung „Adobe Photoshop“ und dem Umfeld der Tutorialwebpage 202 umzustellen, um den Tutorialcontent der Webpage 202 zu nutzen.
  • Der Nutzer ist beispielsweise dazu imstande, auf den Tutorialcontent zuzugreifen und diesen zu nutzen, beinhaltend beispielsweise ein Nutzen von Ursprungssteuer- bzw. Regelfunktionen und anderen Anwendungsmerkmalen beim Durchlauf durch den Tutorialcontent. Der Nutzer kann beispielsweise die Auswahlschaltfläche „Nächster Schritt“ von Adobe Photoshop Learn Panel nutzen, um von Schritt 204/214 zu einem nachfolgenden Schritt der Prozedur des Tutorials überzugehen.
  • Wie weiter in dem Beispiel von 2 zu sehen ist, ist davon auszugehen, dass Adobe Photoshop Learn Panel eine Funktionalität beinhaltet, die als „Coach Marks“ bekannt ist und bei der Einblendungen (Overlays), Hervorhebungen (Highlights) oder andere optische oder akustische Elemente auf eine Art wiedergegeben werden, die dafür konzipiert ist, eine hochgradig umfeldbezogene Unterstützung für den Nutzer von Photoshop Learn Panel bereitzustellen. Es können beispielsweise optische Indikatoren nahe an einer Steuerung bzw. Regelung, die für die Implementierung einer bestimmten Anweisung erforderlich ist, wiedergegeben werden, damit Nutzer die erforderliche benötigte Steuerung bzw. Regelung schnell und einfach identifizieren können. Bei dem Beispiel von 2 stellt eine Einblendung 216 ein Beispiel für derartige „Coach Marks“ dar und stellt eine spezifische Anweisung im Zusammenhang mit einem Vorgang, der unter Nutzung des Bildes 212 durchgeführt werden soll, bereit. Es sollte einsichtig sein, dass bei Nutzung des Systems 100 von 1 die „Couch Mark“ 216 im Umfeld von Adobe Photoshop Learn Panel als Ergebnis dessen generiert werden kann, dass ein entsprechender, zugrunde liegender ausführbarer Code für die Coach-Mark-Funktionalität von dem Anweisungscodegenerator 150 des Tutorialverwalters 132 generiert worden ist.
  • 3 ist ein Flussdiagramm 300 zur Darstellung exemplarischer Implementierungen des Systems 100 von 1. Bei dem Beispiel von 3 sind Vorgänge 302, 304, 306 als separate sequenzielle Vorgänge dargestellt. Bei verschiedenen Implementierungen können zusätzliche oder alternative Vorgänge oder Teilvorgänge beinhaltet sein, und/oder es können ein oder mehrere Vorgänge oder Teilvorgänge weggelassen werden. Bei verschiedenen Implementierungen können zwei oder mehr Vorgänge oder Teilvorgänge teilweise oder vollständig überlappend oder parallel oder auch verschachtelt, iterativ, schleifenartig oder verzweigt implementiert sein.
  • Bei dem Beispiel von 3 kann eine Tutorialdatei, die aus einer Webpage hergeleitet ist, zerlegt werden, wobei die Tutorialdatei ein Tutorial darstellt, das von der Webpage für eine Softwareanwendung bereitgestellt wird, und in einem hierarchischen Format aufgebaut ist, in dem Tutorialattribute in Bezug auf entsprechende Werte der Tutorialattribute spezifiziert sind, wobei die Werte wenigstens eine Anweisung beinhalten, die in der Webpage zur Nutzung der Softwareanwendung beinhaltet ist (302). Wie in 1 dargestellt ist, kann eine derartige Tutorialdatei beispielsweise eine PTF-Datei der PTF-Dateien 142 beinhalten, die das Tutorial 118 darstellt und die wenigstens eine Anweisung, die in dem Tutorial 118 beinhaltet ist, zur Nutzung der Softwareanwendung 108 beinhaltet. Tutorialattribute können, wie hier beschrieben ist, beispielsweise eine Tutorialhandlung, einen Befehl, ein Werkzeug, eine Prozedur, einen Schritt oder eine andere Eigenschaft beinhalten, von der bestimmt ist, dass sie dem Tutorial zugeordnet ist. Die Softwareanwendung kann entsprechenden Hardwaremerkmalen einer Vorrichtung, auf der die Softwareanwendung läuft, zugeordnet sein.
  • Es kann eine Abbildung der Tutorialattribute auf Anwendungsmerkmale der Softwareanwendung ausgeführt werden (304). Der Merkmalsabbilder 148 von 1 kann beispielsweise dafür konfiguriert sein, eine derartige Abbildung auszuführen. In diesem Zusammenhang sollte einsichtig sein, dass einige der Tutorialattribute keine Werte beinhalten, die direkt auf Anwendungsmerkmale der Anwendung 108 abgebildet werden. Ein Tutorialattribut, so beispielsweise „Urheber“, entspricht beispielsweise keinem bestimmten Werkzeug oder keiner bestimmten Aufgabe der Anwendung 108. Demgegenüber können, wie die vorstehend erwähnt worden ist und nachstehend noch detailliert beschrieben wird, Anweisungen des Tutorials 118 zur Nutzung der Anwendung 108 Sprache beinhalten, die auf eine Aufgabe des Tutorials und ein zugeordnetes Werkzeug der Anwendung 108, das diese Aufgabe erledigt, verweist. Der Merkmalsabbilder 148 ist zudem dafür konfiguriert, eine Entsprechung zwischen spezifischen Anweisungen des Tutorials 118 und entsprechenden Werkzeugen sowie anderen Elementen der Anwendung 108 und eine Beziehung zwischen diesen zu bestimmen.
  • Ein Anweisungscode, der von einem Ursprungsanweisungsdienst der Softwareanwendung ausführbar ist, um wenigstens ein Anweisungselement innerhalb der Softwareanwendung zu generieren, kann sodann auf Grundlage der Abbildung generiert werden, wobei das wenigstens eine Anweisungselement wenigstens ein Anwendungsmerkmal der Anwendungsmerkmale identifiziert, das dafür konfiguriert ist, die Erledigung der wenigstens einen Anweisung zu ermöglichen (306). Der Anweisungscodegenerator 150 von 1 kann beispielsweise dafür konfiguriert sein, Anweisungscode zu generieren, der in dem Anweisungscode 122 des Ursprungsanweisungsdienstes 120 der Anwendung 108 beinhaltet ist. Im Ergebnis kann der Ursprungsanweisungsdienst 120 dafür konfiguriert sein, ein Anweisungselement, so beispielsweise das Anweisungselement 128, das im Zusammenhang mit der Anzeige 114 von 1 dargestellt ist, zu generieren. Selbstredend stellt das Anweisungselement 128 darstellungshalber ein vereinfachtes Beispiel dar, und es sind zusätzliche detailliertere Beispiele für derartige Anweisungselemente vorstehend im Zusammenhang mit 2 wie auch in der nachfolgenden Beschreibung bereitgestellt. Das Anweisungselement kann beispielsweise die Anweisung 214, die im Zusammenhang mit 2 bereitgestellt ist, wie auch die Anweisungen innerhalb der Coach Mark 216 von 2 beinhalten. Das Bild 212 kann zudem als Anweisungselement betrachtet werden, da es bei dem Anweisungsbeispiel des ursprünglichen Tutorials 202 von 2 benutzt wird.
  • Allgemeiner kann, wie hier beschrieben wird, die Softwareanwendung, auf die verwiesen wird, auf eine Softwareanwendung verweisen, die beispielsweise einen eingebauten oder appeigenen Tutorialabspieler beinhaltet und/oder auf andere Art einen Modus unterstützt, in dem ein Nutzer mit einer Browseranwendung interagieren kann, die einen derartigen Tutorialabspieler unterstützt, was hier als Ursprungsanweisungsdienst 120 bezeichnet wird. Das Tutorial kann zudem beispielsweise eine Videodatei/Videodateien beinhalten, aus der/denen beschreibender Text und ausgewählte Bildframes extrahiert sind.
  • Es sollte daher einsichtig sein, dass das System 100 von 1 und die zugehörigen exemplarischen Vorgänge von 3 für Entwickler, Administratoren und Nutzer des Systems 100 eine Anzahl von Vorteilen bieten. Entwickler und Administratoren des Systems 100 können beispielsweise dazu imstande sein, geeignete Tutorials zur Aufnahme in den Ursprungsanweisungsdienst 120 zu identifizieren, ohne dass notwendig wäre, dass einzelne Nutzer einzelne Bestimmungen hinsichtlich des Vorhandenseins, der Verfügbarkeit, der Einschlägigkeit oder der Qualität eines gewünschten Tutorials vornehmen. Die Nutzer werden des Weiteren nicht genötigt, webbasierten Anweisungen innerhalb eines separaten Browsers zu folgen, und können stattdessen Tutorialcontent innerhalb eines gewünschten Umfeldes betrachten und mit diesem interagieren. Die Nutzer können im Umfeld spezifischer Menübefehle und Werkzeuge der Softwareanwendung 108 selbst oder im Umfeld eines nutzerspezifischen Workflows unter Nutzung eigener Assets (beispielsweise Bildassets) arbeiten.
  • Des Weiteren ermöglichen die hier beschriebenen Techniken das Erfassen und Darstellen der Struktur und Semantik von Tutorials, so beispielsweise des Tutorials 118. Derartige Tutorials verfügen oftmals über eine große Anzahl von Betriebsschritten mit verschiedenen Detail- und Komplexitätsgraden. Derartige Tutorials enthalten oftmals umfangreiche Metadaten, die zur zukünftigen Nutzung nicht systematisch erfasst oder verfügbar sind.
  • Des Weiteren können das Erstellen und Bereitstellen des Anweisungscodes 122 unter Nutzung herkömmlicher Techniken ein arbeitsintensives und teures Unterfangen sein. Entwickler der Anwendung 108 wie auch Contentersteller von dritter Seite können durch das System 100 beispielsweise in die Lage versetzt werden, qualitativ hochwertige Tutorials in der kanonischen Standardtutorialdarstellung der PTF-Dateien 142 automatisch zu importieren, die leicht in ausführbaren Anweisungscode 122 zur Nutzung in dem Ursprungsanweisungsdienst 120 wie auch in anderen Ursprungsanweisungsdiensten anderer Softwareanwendungen, die mit dem Tutorialverwalter 132 kompatibel sind, umgewandelt werden kann.
  • Im Ergebnis erfassen die beschriebenen Techniken automatisch die ersten Webtutorials auf verschiedenen Webseitendomänen zur Darstellung derselben im PTF-Format, das die Semantiken und die auf mehreren Ebenen gegebene Struktur eines beliebigen entsprechenden Tutorials vollständig erhält. Die erfassten Tutorials können in produktspezifischen Tutorialsabspielersystemen ausgeführt werden, so beispielsweise dem Learn-Panel-System, auf das vorstehend im Zusammenhang mit 2 verwiesen worden ist, wodurch ermöglicht wird, dass Tutorials zu interaktiven und appeigenen Erfahrungen werden, die für eine Vielzahl von Produkten unmittelbar einsetzbar sind. Des Weiteren können durch Generieren von neuem Anweisungscode, der in dem Anweisungscode 122 beinhaltet sein soll, zusätzliche oder alternative Merkmale des Ursprungsanweisungsdienstes 120 aktiviert werden.
  • Nutzer können beispielsweise eine Wahl zwischen einem oder mehreren „nächsten Schritten“, mit denen das Tutorial fortgesetzt werden soll, treffen, wodurch sequenzielle oder disjunkte Prozeduren oder Schritte, auf die im Zusammenhang mit 5 bis 9 verwiesen wird und die dort dargestellt sind, möglich werden. Des Weiteren kann ein Mechanismus dafür bereitgestellt werden, die Steuerung bzw. Regelung und die Optionalität eines gegebenen Tutorialschrittes (beispielsweise entweder notwendig oder optional) anzugeben, wodurch die Verwirklichung verschiedener Grade der Wirkung des Tutorials möglich wird. Es kann ein Mechanismus zum Angeben und Auswählen eines Schwierigkeitsgrades eines Tutorials im Zusammenhang mit den Fähigkeiten eines Nutzers (beispielsweise Anfänger, normal, fortgeschritten) bereitgestellt werden. Zudem kann die gewünschte Gesamtzeitdauer eines Tutorials angegeben werden. Bei einem letzten Beispiel kann eine Unterstützung zum Angeben und Definieren wichtiger Begriffe, die in dem Tutorial erwähnt werden, bereitgestellt werden, um das Erlernen der Terminologie während des Tutorials zu fördern.
  • 4 ist ein Blockdiagramm zur Darstellung detaillierterer exemplarischer Implementierungen des Systems 100 von 1. Insbesondere ist 4 ein Blockdiagramm zur Darstellung detaillierterer exemplarischer Implementierungen des Tutorialmarkierers 134, des Tutorialextraktors 136 und des PTF-Generators 140.
  • Wie gezeigt ist, zeigt 4 eine Tutorialwebseite 402 und eine Tutorialwebseite 404. Ein angepasster Tutorial-DOM-Zerleger bzw. -Parser 406 (Document Object Model DOM, Dokumentobjektmodell) ist im Zusammenhang mit der Tutorialwebseite 402 dargestellt, während ein gängiger Tutorial-DOM-Parser bzw. -Zerleger 408 im Zusammenhang mit der Tutorialwebseite 404 dargestellt ist. Die Parser bzw. Zerleger 406, 408 stellen, wie nachstehend noch detailliert beschrieben wird, eine entwickelte Extraktionspipeline oder solche Pipelines für strukturierten Text mit Konfigurierung dafür dar, die entsprechenden Tutorialwebseiten 402, 404 ungeachtet des Umstandes zu parsen bzw. zu zerlegen, dass die Tutorialwebseiten gegebenenfalls verschiedene Tutorialformate wie auch verschiedene Hierarchieebenen aufweisen. Bei dem Beispiel von 4 wird davon ausgegangen, dass die Tutorialwebseiten 402, 404 vergleichsweise abstrakte (large scale) Tutorialwebseiten darstellen, die eine Anzahl von einzelnen Tutorialwebseiten und zugeordnete Tutorials für die Softwareanwendung 108 von 1 und gegebenenfalls auch für andere Softwareanwendungen beinhalten. Bei derartigen Szenarien können die verschiedenen Tutorialwebpages ähnliche Semantiken und eine ähnliche Struktur als Ergebnis dessen aufweisen, dass sie auf einer entsprechenden Webseite beinhaltet sind.
  • Als Folge dessen kann der gängige Tutorial-DOM-Zerleger 406 unter Nutzung des Modelltrainers 144 von 1 dafür trainiert werden, die Tutorialwebseite 402 zu parsen bzw. zu zerlegen und eine angepasste Textverwertung (text mining) der Webseite 402 durchzuführen. Es kann eine Extraktionsvorlage erlernt und aufgebaut und sodann bei der gewünschten Webpage der Tutorialwebseite 402 angewendet werden.
  • Im Detail bedeutet dies beispielsweise, dass der gängige Tutorial-DOM-Zerleger 406 dafür konfiguriert sein kann, den Tutorialcontent in eine spezialisierte Markdown-Markup-Darstellung umzuwandeln, in der der Content derart markiert ist, wie vorstehend anhand 1 beschrieben worden ist und nachstehend anhand 11 noch eingehender beschrieben wird.
  • Unter Nutzung des Modelltrainers 144 kann der gängige Tutorial-DOM-Zerleger 406 dafür konfiguriert sein, Strukturen des Tutorialcontents, so beispielsweise eine Prozedurebenenhierarchie oder eine Schrittebenenhierarchie, auf Grundlage der Markdown-Sprache-Markierungen herzuleiten. Der sich ergebende markierte Tutorialcontent und die zugehörigen Strukturen können entsprechend einer bestehenden Bibliothek von Tutorialmodellstrukturen klassifiziert werden, für die nachstehend im Zusammenhang mit 5 bis 9 Beispiele angegeben sind.
  • 4 zeigt des Weiteren Tutorialwebseiten 410, 412, 414, die die große Anzahl von Tutorialwebseiten, die im Internet verfügbar sein können, allgemein darstellen, für die jedoch noch keine angepassten Parser bzw. Zerleger entwickelt worden sind. Bei derartigen Szenarien können ein Basisextraktor und eine zugeordnete Vorlage benutzt werden, um für jede neue Tutorialwebseite 410, 412, 414 einen Klon der Basisvorlage zur Nutzung beim Markieren, Parsen bzw. Zerlegen, Klassifizieren und Extrahieren von Content einer entsprechenden Tutorialwebseite aufzubauen. Der Modelltrainer 144 kann beispielsweise dafür konfiguriert sein, einen One-Shot-Lernprozess einer Tutorialstruktur der Tutorialwebseite 410 aus der erhaltenen Markdown-Markup-Darstellung des Contents der Tutorialwebseite zu implementieren und hierdurch einen Klonungsprozess der Basisvorlage zu beschleunigen. Entsprechend kann die Konfiguration des generischen Tutorial-DOM-Parsers bzw. -Zerlegers 416 für eine spezifische Tutorialwebseite eine bestehende Logik zum Durchführen eines Webcrawling, einer HTML-Extraktion und einer Markdown-Markup-Generierung, die bereits im Zusammenhang mit den Parsern bzw. Zerlegern 406, 408 benutzt worden ist, verwenden.
  • Des Weiteren ist, siehe 4, ein PTF-Generator 418 dafür konfiguriert, sämtlichen extrahierten, markierten Tutorialcontent in einem beliebigen der verschiedenen Formate der Tutorialwebseiten, die im Internet verfügbar sind (dargestellt durch die Tutorialwebseiten 402, 404, 410 bis 414) zu empfangen und eine PTF-Datei 420 zu generieren. Wie ersichtlich ist, stellt die PTF-Datei 420 ein standardisiertes universelles Format unabhängig vom ursprünglichen Tutorialformat des dargestellten Tutorialcontents dar.
  • Bei exemplarischen Implementierungen kann der PTF-Generator 418 von dem Modelltrainer 144 dafür trainiert werden, eine Struktur eines jeden Tutorials, beispielsweise eine der fünf exemplarischen Strukturen von 5 bis 9, zu klassifizieren. Wie bei der vereinfachten exemplarischen PTF-Datei 420 von 4 und detaillierter bei der exemplarischen PTF-Datei von 10 dargestellt ist, kann die PTF-Datei 420 in einem hierarchischen Format generiert werden, das allgemein einer hierarchischen Struktur eines zugrunde liegenden Tutorials, wie es in einem der Strukturmodelle von 5 bis 9 erfasst ist, entspricht.
  • Der PTF-Generator 418 kann beispielsweise die Typen von Hierarchie, die innerhalb der verschiedenen Tutorials vorzufinden sind, behandeln, indem er den Tutorialcontent unter Nutzung eines Bottom-up-Modells analysiert. Der PTF-Generator 418 kann beispielsweise mit dem Identifizieren einzelner Sätze beginnen und sodann Verweise innerhalb der Sätze auf andere Sätze identifizieren. Zusammengehörige Sätze können zu einem Schritt gruppiert werden, um eine Schrittunterteilung zu bestimmen. Auf ähnliche Art können die Schritte zu einer Prozedur gruppiert werden, um eine Prozedurstruktur zu bestimmen. Mehrere Prozeduren können auf diese Art bestimmt und aufgezählt werden. Auf diese Art kann die Tutorialhierarchie bestimmt werden.
  • Wie erwähnt worden ist, zeigt die PTF-Datei 420 ein vereinfachtes Beispiel für den Typ eines hier beschriebenen hierarchischen Formats. Wie gezeigt ist, kann ein Header 422 auf einen Titel 424, eine Beschreibung 426 sowie ein oder mehrere Assets 428 des zugrunde liegenden Tutorials verweisen. Dies bedeutet, dass jedes von dem Header 422, dem Titel 424, der Beschreibung 426 und den Assets 428 Attribute des zugrunde liegenden Tutorials und von Tutorials allgemein darstellt und spezifische Werte für jene Attribute aufweist, die als Teil des PTF-Generierungsprozesses zugewiesen sind. Die Beschreibung 426 kann man beispielsweise aus einem Beschreibungsfeld einer zugrunde liegenden Webpage erhalten oder kann sie unter Nutzung des PTF-Generators 418 generieren. Die Assets 428 können spezifische Dateien darstellen, die in dem Tutorial beispielsweise zur Illustration oder Anweisung, so beispielsweise bei Bild- oder Videodateien, benutzt werden.
  • Wie ebenfalls vorstehend erwähnt worden ist, kann eine Anweisungshierarchie eines Tutorials als Prozedur 430 erfasst werden, die eine zugeordnete Beschreibung 432 und mehrere Schritte 434 aufweist. Wie gezeigt ist, kann jeder Schritt einen Text 436, Vorher-/Nachher-Bilder 438 und verschiedene Werkzeuge/Befehle 440, die in Verbindung mit dem entsprechenden Schritt benutzt werden, beinhalten. Es sollte einsichtig sein, dass in diesem Stadium die Werkzeuge/Befehle 440 gegebenenfalls nicht im Zusammenhang mit spezifischen Werkzeugen oder Befehlen der Softwareanwendung 108 ausgedrückt sind. Die PTF-Datei 420 kann beispielsweise auf eine Art aufgebaut sein, die mit Blick auf zwei oder mehr Softwareanwendungen generisch ist, und die Ursprungsanweisungsdiensten derart zugeordnet ist, dass die PTF-Datei 420 zum Generieren von Anweisungscode entweder für eine oder für beide Anwendungen benutzt werden kann.
  • In anderen Fällen kann sogar dann, wenn die PTF-Datei 420 primär in Bezug auf eine spezifische Anwendung benutzt wird, der Fall auftreten, dass die ausgedrückten Werkzeuge und Befehle auf eine Art beinhaltet sind, die mit Blick auf die entsprechenden Werkzeuge und Befehle der Softwareanwendung selbst nicht allzu spezifisch ist. Namen für die Werkzeuge und Befehle können beispielsweise auf eine informelle, ungenaue oder möglicherweise zweideutige Art im Zusammenhang mit entsprechenden Merkmalen der Merkmalsliste 130 der Anwendung 108 bereitgestellt werden.
  • Techniken zur Beseitigung der Zweideutigkeit und zum auf andere Art erfolgenden Klären und Verstehen der Werkzeuge und Befehle 440 sind nachstehend angegeben. Aus 4 ist ersichtlich, dass das hierarchische Format der PTF-Datei 420 dennoch die Anweisungssequenz des Contents des zugrunde liegenden Tutorials auf standardisierte universelle Art erfasst. Obwohl dies bei dem vereinfachten Beispiel von 4 verständlicherweise nicht dargestellt ist, ist zudem ersichtlich, dass die PTF-Datei 420 mehrere Prozeduren beinhalten kann, die gegebenenfalls sogar auf höheren Ebenen der Hierarchie beinhaltet sind, so beispielsweise als Teiltutorials, als Kapitel (chapters) oder als andere designierte Contentgruppierungen.
  • 4 zeigt zudem eine Indexsuche 442 als Beispiel für eine zusätzliche oder alternative Nutzung der PTF-Datei 420. Insbesondere kann die Indexsuche 442 beispielsweise einen Webdienst darstellen, der das Suchen von Tutorials oder anderen Webpages ermöglicht. Beinhaltet die PTF-Datei 420 Markierungen und andere Details im Zusammenhang mit den Semantiken und der Struktur des entsprechenden zugrunde liegenden Tutorials, so wird die Indexsuche 442 aktiviert, um eine Suche unter diesen Attributen und den zugeordneten Werten bereitzustellen.
  • Wie vorstehend erwähnt worden ist, zeigen 5 bis 9 Beispiele für Typen von Tutorialstrukturen, die in Verbindung mit dem Generieren der PTF-Datei 420 klassifiziert werden können. Insbesondere zeigt 5 eine konjunkte sequenzielle Struktur mit einer Ebene und einer nichthierarchischen Schrittstruktur. Mit anderen Worten, die Schritte laufen, wie gezeigt ist, nach einem Anfangsknoten 502 mit einer einfachen Sequenz von Schritten 504, 506, 508 und 510 weiter. Das Beispiel von 5 kann beispielsweise bei Szenarien implementiert sein, bei denen für einen Nutzer eine erste Anweisung, die dem Schritt 504 entspricht, bereitgestellt wird, der Nutzer auf die Anweisung eingeht und die nachfolgende Anweisung 506 bereitgestellt wird. Jeder der Schritte 504 bis 510 kann daher beispielsweise einer einzigen Aufgabe, einem Werkzeug, einer Handlung oder einen Befehl, die einem entsprechenden Anwendungsmerkmal der Anwendung 108 zugeordnet sind, zugeordnet sein.
  • Bei dem Beispiel von 6 ist eine Struktur mit konjunkten sequenziellen Schritten dargestellt, bei denen ein bestimmter Schritt Teilschritte, also beispielsweise mehrere Sätze und zugeordnete Werkzeuge, Aufgaben oder andere Handlungen beinhalten kann. Wie dargestellt ist, können Anweisungen nach einem Anfangsknoten 602 zu Schritt 604 übergehen. Wie dargestellt ist, kann Schritt 604 Teilschritte 606, 608 aufweisen, bevor die Struktur zu einem Schritt 610, gefolgt von einem Schritt 612 übergeht. Wie gezeigt ist, weist der Schritt 612 die Teilschritte 614, 616, 618 auf, woraufhin die Struktur schließlich mit einem letzten Schritt 620 schließt.
  • 5 und 6 stellen Beispiele für konjunkte Strukturen bereit, bei denen alle Schritte und Teilschritte notwendig sind, um zu den nachfolgenden Schritten oder Teilschritten zu gelangen. Im Gegensatz hierzu zeigt 7 ein Strukturmodell, das disjunkt ist, weshalb nicht alle Schritte oder Teilschritte erforderlich sind. Nutzer können beispielsweise eine Auswahl dahingehend treffen, welcher Schritt als Nächstes ausgeführt werden soll.
  • Wie gezeigt ist, kann ein Nutzer nach einem Anfangsknoten 702 zu einem Schritt 704 gelangen, der Teilschritte 706, 708 beinhalten kann. Alternativ kann der Nutzer zu einem Schritt 710 oder einem Schritt 712 übergehen. Wie gezeigt ist, beinhaltet der Schritt 712 Teilschritte 714, 716, 718. Eine letzte Option ist als Schritt 720 dargestellt. Wie aus dem Beispiel von 7 ersichtlich ist, kann der Nutzer mit einem beliebigen der Schritte 704, 710, 712, 720 beginnen und danach zu nachfolgenden Schritten und/oder Teilschritten, so vorhanden, übergehen. Allgemein hat der Nutzer die Option, unter beliebigen der Schritte 704, 710, 712, 720 und beliebigen beinhalteten Teilschritten auszuwählen, und muss keiner bestimmten Reihenfolge folgen oder eine bestimmte Anzahl oder einen bestimmten prozentualen Anteil der Schritte erledigen.
  • Bei dem Beispiel von 8 ist ein Strukturmodell dargestellt, bei dem sequenzielle Schritte zu Prozeduren gruppiert sein können. Wie gezeigt ist, kann eine erste Prozedur 804 nach einem Anfangsknoten 802 einen Schritt 806 beinhalten, der wiederum selbst Teilschritte 808, 810, 812 beinhalten kann. Die Prozedur 804 kann zudem Schritte 814, 816, 818 beinhalten. Eine nachfolgende Prozedur 820 kann der ersten Prozedur 804 folgen und schließlich zu einer letzten Prozedur 822 führen.
  • 9 zeigt ein letztes, nichtbeschränkendes Beispiel für den Typ von Strukturmodell, der beim Erzeugen der PTF-Datei 420 benutzt werden kann. Wie gezeigt ist, ist 9 ähnlich zu dem Beispiel von 8, stellt jedoch ein disjunktes Beispiel für eine Prozedurstruktur mit Schritten und möglichen Teilschritten dar. Wie gezeigt ist, kann eine Prozedur 904 nach einem Anfangsknoten 902 einen Schritt 906 beinhalten, der Teilschritte 908, 910, 912 beinhaltet. Die Prozedur 904 beinhaltet zudem Schritte 914, 916, 918. Das Beispiel von 9 beinhaltet zudem Prozeduren 920 und 922. Ähnlich wie in 7 sollte einsichtig sein, dass die Prozeduren 904, 920, 922 alternative oder optionale Prozeduren sind, die vom Nutzer gewählt und in der gezeigten Reihenfolge oder auch in einer anderen Reihenfolge ausgeführt werden können.
  • Bei einigen Szenarien kann eine bestimmte Prozedur oder Anweisung beispielsweise als optional gekennzeichnet sein. Auf ähnliche Art können bei anderen Beispielen bestimmte Prozeduren oder Schritte designierten Fähigkeits- oder Erfahrungsniveaus eines Nutzers zugeordnet sein. Eine bestimmte Prozedur oder ein solcher Schritt kann beispielsweise zur Implementierung durch einen erfahrenen Nutzer bestimmt sein, kann jedoch bei einem Neuling oder einen Normalnutzer übersprungen werden.
  • 10 ist ein Beispiel für einen Dateiabschnitt 1000 einer PTF-Datei, so beispielsweise der PTF-Datei 420 von 4. Bei dem Beispiel von 10 beinhaltet ein Header 1002 eine Zeile 1004, in der der Attributurheber den Wert „Rebecca Creger“ aufweist. Eine Zeile 1006 stellt ein Beispiel für ein Attribut für eine Urheber-URL und einen zugeordneten Wert eines spezifischen Webseitenlinks bereit. Der Webseitenlink stellt daher ein Beispiel für eine Ressource bereit, auf die von dem Nutzer sogar dann zugegriffen werden kann, wenn er im Umfeld der Anwendung 108 arbeitet. Des Weiteren sollte einsichtig sein, dass die Information und die Werte aus den Zeilen 1004 und 1006 beispielsweise von dem Ursprungsanweisungsdienst 120 bereitgestellt werden können. Es kann beispielsweise erforderlich und erwünscht sein, eine Zuweisung zu dem Urheber oder einer anderen Quelle des Tutorialcontents bereitzustellen, wenn der Tutorialcontent im Umfeld des Ursprungsanweisungsdienstes 120 und der Anwendung 108 bereitgestellt wird. Wie hier ebenfalls beschrieben ist, ermöglicht die Einbeziehung des Urhebers und zugehöriger oder ähnlicher Metadaten selbstredend auch eine Indexierung und Suche unter derartigen beinhalteten Attributen.
  • Des Weiteren ermöglicht, siehe 10, eine Zeile 1008 die Einbeziehung und Identifizierung einer Kategorie des zugrunde liegenden Tutorials, während eine Zeile 1010 die Einbeziehung eines Datums des Ursprungs des Tutorials ermöglicht. Eine Zeile 1012 stellt die Einbeziehung eines Headertextes, wie er als Headertext 1013 dargestellt ist, bereit. Wie gezeigt ist, kann der Text 1013 eine Beschreibung des Themas des Tutorials bereitstellen. Eine Zeile 1014 verweist indes auf eine URL für eine Ressource, die von dem in Rede stehenden Tutorial benutzt wird, was in diesem Fall ein Beispiel für eine URL für ein „Vorherbild“ ist, das in dem Tutorial benutzt wird. Eine Zeile 1016 stellt einen Identifikator für eine Prozedur „proc_ID“ bereit. Eine Zeile 1018 stellt einen Titel des Tutorials „unter Nutzung von Anpassungsschichten“ bereit. Eine Zeile 1020 stellt eine Typbezeichnung für das Tutorial, beispielsweise „Tutorial“, bereit. Schließlich stellt im Zusammenhang mit der Headersektion 1002 eine Zeile 1022 die Einbeziehung einer Quellen-URL des Tutorials bereit. Die Quellen-URL der Zeile 1022 kann wiederum zu Zwecken des Verweisens und der Zuweisung (beispielsweise zu Zwecken des urheberrechtlichen Schutzes) beim Implementieren des Systems 100 von 1 bereitgestellt werden.
  • Des Weiteren bezeichnet in 10 eine Zeile 1024 den Beginn einer Liste von Prozeduren des Tutorials. Eine Sektion 1026 stellt einen Namen und eine Übersicht über die Prozedur wie auch eine Bezeichnung der Rolle der Prozedur als konjunkt oder disjunkt entsprechend den vorherigen Beispielen von 5 bis 9 bereit. Insbesondere kennzeichnet die Bezeichnung „beliebig“ wie bei dem Beispiel von 10 einen disjunkten, beispielsweise optionalen Satz von Schritten innerhalb der Prozedur. Bei anderen Beispielen kennzeichnet die mit „alle“ erfolgende Bezeichnung einer Prozedurregel eine konjunkte Prozedurliste.
  • Die Zeile 1028 kennzeichnet den Beginn einer Liste von Schritten der in Rede stehenden Prozedur. Wie gezeigt ist, beinhaltet eine Zeile 1030 den Namen des ersten beinhalteten Schrittes, während eine Zeile 1032 den Schritt als „erforderlich“ oder „nicht erforderlich“ kennzeichnet. Eine Zeile 1034 kennzeichnet den Beginn einer Liste von Sätzen innerhalb des Schrittes.
  • Wie in 10 gezeigt ist, gibt eine Zeile 1035 eine Sektion zur Kennzeichnung eines jeden Satzes eines Schrittes, auf den verwiesen wird, im Zusammenhang mit der Einbeziehung in ein PTF-Objekt an. In diesem Zusammenhang stellt, wie nachstehend detailliert im Zusammenhang mit 12 und 13 beschrieben wird, ein derartiges PTF-Objekt einen Kandidaten für eine mögliche Abbildung auf ein oder mehrere Anwendungsmerkmale aus einer Mehrzahl von Anwendungsmerkmalen einer entsprechenden Softwareanwendung / entsprechender Softwareanwendungen beispielsweise als Menübefehle, Werkzeugnamen, Icons, Panels, Galerienamen und andere Anwendungsmerkmale, dar. Jedes derartige PTF-Objekt kann daher eine PTF-Objekt-ID aufweisen, die aus einem Masterwörterbuch von Anwendungsmerkmalen für die entsprechende Anwendung / die entsprechenden Anwendungen bestimmt wird, wofür nachstehend Beispiele bereitgestellt werden, um ein konsistentes und gleichförmiges Verfahren zum Verweisen auf gewählte Befehle der in Rede stehenden Softwareanwendung (beispielsweise Adobe Photoshop) bereitzustellen.
  • Insbesondere kennzeichnet eine Sektion 1036, wie gezeigt ist, einen Satz im Zusammenhang mit einem PTF-Objekt mit Bezug auf Helligkeit oder Kontrast, beinhaltend ein Kennzeichnen des PTF-Objektes als mit einem Werkzeug zum Ändern von Helligkeit/Kontrast in der Anwendung 108 zusammenhängend, worauf bereits im Zusammenhang mit 1 und der Kontrastschaltfläche 126 der Anzeige 114 verwiesen worden ist. Wie gezeigt ist, kann ein Befähigungsniveau (das beispielsweise derart normiert ist, dass es zwischen 0 und 1 liegt) im Zusammenhang mit einem Befähigungsgrad beim Kennzeichnen des Satzes entsprechend vergeben werden. Eine Sektion 1038 zeigt, dass mehrere PTF-Objekte im Zusammenhang mit einem gegebenen Schritt und/oder Satz bestimmt werden können. Wie gezeigt ist, verweist die Sektion 1038 auf ein mögliches PTF-Objekt im Zusammenhang mit dem Durchführen einer Anpassungshandlung. Eine Zeile 1030 beinhaltet Text aus dem Satz, auf den verwiesen wird, des betroffenen Schrittes. Bei dem Beispiel verweist der Satztext auf die Nutzung von Helligkeit/Kontrast, um Anpassungen an einem Bild vorzunehmen.
  • Schließlich verweist, siehe 10, eine Sektion 1032 auf eine nachfolgende Sektion zum Identifizieren von Objektkandidaten eines Satzes eines nachfolgenden Schrittes, beinhaltend Text des Satzes, auf den verwiesen wird. Eine Zeile 1034 stellt eine URL bereit, bei der der Schritt ausfindig zu machen ist / abgerufen werden kann.
  • 11 ist ein Flussdiagramm 1100 zur Darstellung detaillierterer exemplarischer Vorgänge des Systems von 4 unter Verweis auf die Beispiele von 5 bis 10. Bei dem Beispiel von 11 wird eine Markdown-Markup-Sprachdarstellung von Tutorialcontent generiert (1102). Wie vorstehend erwähnt worden ist, ist die Markdown-Sprache beispielsweise ein Typ von Markup-Sprache und Syntax mit Vorteilen beim Hinzufügen der Typen der vorerwähnten Markierungen und mit Vorteilen beim Bestimmen von Attributen und zugeordneten Werten von Tutorialcontent. Insbesondere kann der Tutorialcontent, wie beschrieben, einen weiten Bereich und eine Vielzahl von Formaten, Strukturen, Hierarchieebenen und anderen Eigenschaften aufweisen. Der Modelltrainer 144 kann dafür konfiguriert sein, exemplarische ausgewählte Tutorialwebseiten zum Trainieren des Tutorialmarkierers 134 zu nutzen, um die Markdown-Markups des Tutorialcontents zu generieren.
  • Durch Analysieren der generierten Markdown-Markup-Markierungen können die Strukturebenen des Tutorialcontents bestimmt werden (1104). Der Tutorialcontent kann sodann extrahiert werden, sodass markierter, strukturierter Tutorialcontent generiert werden kann (1106). Der Tutorialextraktor 136 kann beispielsweise eine oder mehrere Vorlagen für derartige Extraktionsprozesse nutzen, darunter eine oder mehrere Vorlagen, die aus wenigstens einer Basisextraktionsvorlage geklont sind.
  • Der markierte, strukturierte Tutorialcontent kann sodann entsprechend einem Tutorialstrukturmodell klassifiziert werden (1108). Der PTF-Generator 140 von 1 kann beispielsweise markierten Tutorialcontent 138 entsprechend einem der fünf Strukturmodelle von 5 bis 9 klassifizieren. Schließlich wird, siehe 11, eine PTF-Datei für das Tutorial generiert (1110). Der PTF-Generator 140 von 1 oder der PTF-Generator 418 von 4 können beispielsweise dafür konfiguriert sein, die PTF-Datei 420 von 4 oder die PTF-Datei entsprechend dem Pseudocode von 10 zu generieren.
  • 12 ist ein Blockdiagramm zur Darstellung detaillierterer exemplarischer Implementierungen des Tutorialverwalters 132 von 1. Insbesondere zeigt 12 detailliertere exemplarische Vorgänge bei dem Merkmalsextraktor 146, dem Merkmalsabbilder 148 und dem Anweisungscodegenerator 150 von 1 im Zusammenhang mit den nachfolgenden Beispielen von 2 bis 11.
  • Insbesondere setzt 12 Beispiele fort, bei denen die Anwendung 108 durch die Softwareanwendung „Adobe Photoshop“ und der Ursprungsanweisungsdienst 120 durch den Tutorialabspieler „Learn Panel“ von Adobe Photoshop dargestellt werden. Bei diesen Beispielen kann der Anweisungscode 122, wie bereits erwähnt, ein JSON-Objekt (Java Script Object Notation) bezeichnen, das von dem Ursprungsanweisungsdienst 120 ausführbar ist. Als Folge dessen wird bei dem Beispiel von 12 ein JSON-Objekt 1210 erzeugt, das von dem Tutorialabspieler „Photoshop Learn Panel“ ausgeführt werden kann.
  • In 12 wird die PTF-Datei 420 von 4 unter Nutzung einer oder mehrerer Listen von Anwendungsmerkmalen der Softwareanwendung „Photoshop“ in den ausführbaren Anweisungscode 1210 umgewandelt. Insbesondere kann, wie vorstehend erwähnt und detaillierter im Zusammenhang mit 12 dargestellt ist, eine Liste 1202 von Menübefehlen/Werkzeugnamen, die aus einer Masterliste, so beispielsweise der Merkmalsliste 130 von 1 bestimmt sind, benutzt werden. Mit anderen Worten, bei Szenarien, bei denen die betroffene Softwareanwendung eine partielle oder vollständige Auflistung von Anwendungsmerkmalen bereitstellt, kann von der PTF-Datei 420 auf die Liste verwiesen und diese von dem ausführbaren Code 1210 verwendet werden. Die Liste 1202 kann daher, wenn verfügbar, aus der betroffenen Anwendung unter Nutzung einer geeigneten oder verfügbaren Schnittstelle extrahiert werden.
  • Demgegenüber kann eine Liste 1204, wie ebenfalls vorstehend erwähnt worden ist, Menübefehle, Werkzeugnamen und andere Anwendungsmerkmale darstellen, die gegebenenfalls nicht (explizit) verfügbar oder innerhalb einer Liste, so beispielsweise der Merkmalsliste 130, bereitgestellt sind. Stattdessen können derartige Anwendungsmerkmale, wie vorstehend erwähnt und bei dem Beispiel von 12 dargestellt ist, heuristisch unter Nutzung einer für natürliche Sprache vorgesehenen Verarbeitung (NLP) und anderer Techniken maschinellen Lernens bestimmt werden.
  • In 12 wird eine bestimmt, die dafür konfiguriert ist, Anwendungsmerkmale, so beispielsweise Menübefehle, Werkzeugnamen, Icons, Panels, Galerienamen und andere Anwendungsmerkmale, in eine PTF-Objekt-ID zu überführen. Wie vorstehend im Zusammenhang mit 10 erwähnt worden ist, ist eine Objekt-ID ein Element einer PTF-Datei, das aus einem Masterwörterbuch bestimmt wird, um ein konsistentes und gleichförmiges Verfahren zum Verweisen auf gewählte Befehle der in Rede stehenden Softwareanwendung (beispielsweise Adobe Photoshop) bereitzustellen. Wie erwähnt, kann der PTF-Generator 418, um eine derartige Abbildung zu erstellen und zu nutzen, dafür konfiguriert sein, Algorithmen zum Lernen und Erkennen sowohl formeller wie auch informeller (beispielsweise in natürlicher Sprache gegebener) Werkzeug- und Befehlsnamen in dem Tutorialcontent trainieren und implementieren.
  • Unter Nutzung der kann ein Umwandler 1208 dafür konfiguriert sein, die PTF-Datei 420 in den LP-Code (Learn Panel LP) 1210 umzuwandeln. Wie beschrieben worden ist, kann der sich ergebende Learn-Panel-Code von dem Learn-Panel-Tutorialabspieler ausgeführt werden, um Interaktionen mit dem Nutzer des betroffenen Tutorials im Umfeld der Softwareanwendung „Adobe Photoshop“ zu erzeugen. Beinhalten können derartige Interaktionen die Nutzung von Coach Marks (beispielsweise transparente Einblendungen von Ul-Hinweisen) wie auch spezifische Handlungen der Objektehervorhebung, die in Verbindung mit Nutzerhandlungen durchgeführt werden, so beispielsweise das Hervorheben 128 der Kontrastschaltfläche 126 in 1.
  • 13 ist ein Flussdiagramm 1300 zur Darstellung detaillierterer exemplarischer Vorgänge des Blockdiagramms von 12. Bei dem Beispiel von 13 können Vorgänge beginnen, bevor eine bestimmte Instanz einer PTF-Datei empfangen wird. Insbesondere kann ein Anwendungsmerkmal, das von einem Ursprungsanweisungsdienst unterstützt wird, bestimmt werden (1302). Sodann kann eine Erstellungsfunktion für ein entsprechendes Anwendungsmerkmal bereitgestellt werden (1304).
  • Insbesondere stellen derartige Erstellungsfunktionen, die auch als Callback-Funktionen bezeichnet werden, eine Bibliothek von Funktionen dar, die dafür konzipiert sind, einen ausführbaren Code für entsprechende Anwendungsmerkmale zu generieren. Wie nachstehend detailliert beschrieben wird, können verschiedene dieser Erstellungsfunktionen nach Bedarf während nachfolgender Prozesse des Umwandelns einzelner Instanzen von PTF-Dateien in entsprechende Codeabschnitte von Anweisungscode benutzt werden.
  • Insbesondere kann eine Baumstruktur der PTF-Datei, wenn eine PTF-Datei empfangen wird, durchlaufen werden (1306). Der Umwandler 1208 von 12 kann beispielsweise dafür konfiguriert sein, einen rekursiven Abstiegsalgorithmus (descent algorithm) für den Durchlauf der PTF-Datei 420 aufzuführen, bei dem das Parsen bzw. Zerlegen von einem Wurzelknoten zu jedem Blattknoten der PTF-Datei 420 voranschreitet, um hierdurch die PTF-Datei 420 zu parsen bzw. zu zerlegen / auseinanderzunehmen und diejenigen Abschnitte derselben auszuwählen, die für den betroffenen Ursprungsanweisungsdienst 120 (beispielsweise für den Tutorialabspieler „Photoshop Learn Panel“) spezifisch sind. Dies bedeutet beispielsweise, dass jeder Satz eines jeden Schrittes üblicherweise in einem für natürliche Sprache vorgesehenen Format ausgedrückt wird und auf Handlungen (beispielsweise Anklicken, Auswählen oder Beschneiden) und Werkzeuge (beispielsweise ein Pinselwerkzeug, ein Beschneidungswerkzeug oder andere Werkzeuge von Adobe Photoshop) verweist.
  • Beim unter Nutzung der erfolgenden Identifizieren eines Abschnittes des PTF-Dateibaumes, der einem bestimmten Anwendungsmerkmal entspricht (1308), kann der Umwandler 1208 zum Identifizieren und Auswählen einer entsprechenden Erstellungsfunktion der Bibliothek von Erstellungsfunktionen übergehen (1310). Ein entsprechendes Codesegment des Anweisungscodes 1210 kann sodann durch die Erstellungsfunktion (1312) generiert werden, und das entsprechende Codebruchstück (code snippet) kann zu einer Hierarchie des entsprechenden Codes des Ursprungsanweisungsdienstes hinzugefügt werden (1314). Mit anderen Worten, der rekursive Abstiegsdurchlauf des ursprünglichen PTF-Dateibaumes erhält die Struktur des PTF-Dateibaumes und führt eine Baum-auf-Baum-Abbildung durch, die zu einer entsprechenden hierarchischen Darstellung des sich ergebenden Anweisungscodes 1210 führt.
  • Ist der Durchlauf des PTF-Dateibaumes nicht erledigt (1316), so setzt sich der Durchlauf mit einer entsprechenden Generierung betroffener Abschnitte des Codes des Anweisungsdienstes 1210 fort (1306 bis 1314). Sobald der Durchlauf erledigt ist (1316), können die generierten Codebruchstücke benutzt werden, um den ausführbaren Code des Ursprungsanweisungsdienstes 1210 zu generieren (1318).
  • Pseudocode 1 zeigt eine exemplarische Logik eines Algorithmus zum Erstellen einer oder mehrerer Aufgaben, die in dem ausführbaren Code des Ursprungsanweisungsdienstes 1210 beinhaltet sein sollen. Insbesondere kann, wie in Pseudocode 1 gezeigt ist, wenn bestimmt wird, dass ein PTF-Objekt in einer Liste von Schrittsätzen kein Werkzeug des entsprechenden Ursprungsanweisungsdienstes/Learn-Panel-Tutorialabspielers beinhaltet, Text des Satzes in dem beschreibenden Text beinhaltet sein. Wird bestimmt, dass ein ausführbares Werkzeug innerhalb des Schrittsatzes vorhanden ist, so kann eine entsprechende Aufgabe generiert werden. Wird ein Werkzeug identifiziert, ist jedoch nicht ausführbar, so kann eine entsprechende Aufgabe generiert, jedoch als „zwangsweise falsch“ identifiziert werden. Demgegenüber werden bei ausführbaren Werkzeugen jede Aufgabe und die entsprechende Liste als „ausführbar und zwangsweise wahr“ gekennzeichnet.
  • #Algorithmus: Logik beim Erstellen und Nichterstellen einer Aufgabe
  • # Beschreibung: Sind überhaupt keine Werkzeuge vorhanden, so geht alles in die Beschreibung ein. Man erstelle eine neue Aufgabe, wenn etwas Ausführbares auftritt. Man erstelle eine Aufgabe pro ausführbares Werkzeug. Sind Werkzeuge vorhanden, jedoch nicht ausführbar, so erstelle man eine Aufgabe, „zwangsweise falsch“. Sind ausführbare Werkzeuge vorhanden, so ist jede Aufgabe in der Aufgabenliste ausführbar „zwangsweise wahr“.

 #
 # previous = -1 (index into tasklist)
 # for each object in step_sentence_list
 #  if there is a tool present
 #    if previous = -1 //if there are no tasks at all
 #     create very first task object
 #     set description of task object to „alltext“ + step_text
 #     set previous = 0
 #     if there are actionable tools
 #      set actionable_tools_present = True
 #    else
 #     if none of the tools are actionable (make function that returns the index of first
 actionable tool)
 #      add step_textto previous task object description
 tasks[previous].get(„description“)
 #      continue
 #
 #     if actionable_tools_present = False
 #      add step_textto previous task object description
 tasks [previous] .get(„description“)
 #     else
 #      create task object
 #      set description of task object to step_text
 #      set previous += 1
 #     set actionable_tools_present = True
 #  else
 #    if previous = -1 //if there are no tasks at all
 #     add sent text to alltext
 #    else
 #     add step_textto previous task object description
 tasks [previous].get(„description“)
 #
 # if previous = -1, then alltext goes into content description, no task list
 #
  • Pseudocode 1
  • Obwohl die vorstehende Beschreibung eine Anzahl exemplarischer Implementierungen bereitstellt, sind auch Erweiterungen und Abwandlungen einbezogen. Attribute zum Angeben eines Tutorialbefähigungsniveaus, einer geschätzten Dauer der Erledigung und einer Schrittoptionalität können in der PTF erfasst und in das Learn-Panel-JSON exportiert werden. Diese Erweiterungen ermöglichen, dass die Tutorialerfahrung an ungeübte Nutzer wie auch Nutzer mit verschiedenen Erfahrungen und Fähigkeiten angepasst werden kann.
  • Es können zudem Mechanismen bereitgestellt werden, mittels derer Nutzer die Wahl eines oder mehrerer „nächster Schritte“ haben, mit denen das Tutorial fortgesetzt werden soll. Es können Mechanismen zum Angeben und Steuern bzw. Regeln der Optionalität eines Tutorialschrittes (entweder notwendig oder optional) bereitgestellt werden, wodurch ermöglicht wird, dass verschiedene Grade der Wirkung des Tutorials erreicht werden. Des Weiteren können Mechanismen zum Angeben und Auswählen des Schwierigkeitsgrades eines Tutorials in Abhängigkeit von den Fähigkeiten eines Nutzers (grundlegend, normal, fortgeschritten) und/oder der gewünschten Gesamtzeitdauer bereitgestellt werden. Bei zusätzlichen oder alternativen Beispielen kann eine Unterstützung zum Angeben und Definieren wichtiger Begriffe, die in dem Tutorial erwähnt werden, bereitgestellt werden, um das Erlernen der Terminologie während des Tutorials zu fördern.
  • Implementierungen der hier beschriebenen verschiedenen Techniken können in digitalen elektronischen Schaltungen oder in Computerhardware, Firmware, Software oder in Kombinationen hieraus implementiert sein. Implementiert sein können Implementierungen als Computerprogrammerzeugnis, das heißt als Computerprogramm, das physisch auf einem Informationsträger, so beispielsweise auf einer maschinenlesbaren Speichervorrichtung, verkörpert ist, und zwar zur Ausführung durch Datenverarbeitungseinrichtungen, beispielsweise einen programmierbaren Prozessor, einen Computer oder mehrere Computer, oder zur Steuerung bzw. Regelung des Betriebs derselben. Ein Computerprogramm, so beispielsweise das vorbeschriebene Computerprogramm / die vorbeschriebenen Computerprogramme, kann in einer beliebigen Form von Programmiersprache geschrieben sein, darunter kompilierende oder interpretierende Sprachen, und kann in einer beliebigen Form eingesetzt werden, darunter als eigenständiges Programm oder als Modul, Komponente, Subroutine oder andere Einheit, die zur Nutzung in einer Rechenumgebung geeignet ist. Ein Computerprogramm kann dafür eingesetzt werden, auf einem Computer oder mehreren Computern an einem Ort oder über mehrere Orte verteilt und durch ein Kommunikationsnetzwerk miteinander verbunden ausgeführt zu werden.
  • Verfahrensschritte können von einem oder mehreren programmierbaren Prozessoren durchgeführt werden, die ein Computerprogramm ausführen, um Funktionen durch Bearbeiten von Eingabedaten und Generieren einer Ausgabe durchzuführen. Durchgeführt werden können Verfahrensschritte durch eine einem speziellen Zweck dienende Logikschaltung, beispielsweise ein FPGA (feldprogrammierbares Gate Array) oder eine ASIC (anwendungsspezifische integrierte Schaltung), oder es kann eine Einrichtung als eine solche Logikschaltung implementiert sein.
  • Prozessoren, die für die Ausführung eines Computerprogramms geeignet sind, beinhalten beispielhalber sowohl einem allgemeinen wie auch einem speziellen Zweck dienende Mikroprozessoren und einen oder mehrere beliebige Prozessoren einer beliebigen Art von Digitalcomputer. Im Allgemeinen empfängt ein Prozessor Anweisungen und Daten von einem Nur-Lese-Speicher oder einem Speicher mit wahlfreiem Zugriff oder beidem. Elemente eines Computers können wenigstens einen Prozessor zum Ausführen von Anweisungen und eine oder mehrere Speichervorrichtungen zum Speichern von Anweisungen und Daten beinhalten. Allgemein kann ein Computer zudem eine oder mehrere Massenspeichervorrichtungen zum Speichern von Daten, beispielsweise magnetische oder magnetoptische Scheiben oder optische Scheiben, beinhalten oder operativ mit diesen gekoppelt sein, um Daten von diesen zu empfangen oder an diese zu übertragen. Informationsträger, die zum Verkörpern von Computerprogrammanweisungen und Daten geeignet sind, beinhalten sämtliche Formen von nichtflüchtigen Speichern, darunter beispielhalber Halbleiterspeichervorrichtungen, beispielsweise EPROM, EEPROM und Flash-Speichervorrichtungen; Magnetscheiben, beispielsweise interne Festplatten oder entfernbare Platten; magnetoptische Platten und CD-ROM- und DVD-ROM-Platten. Der Prozessor und der Speicher können durch eine einem speziellen Zweck dienende Logikschaltung ergänzt oder in diese integriert sein.
  • Um eine Interaktion mit einem Nutzer bereitzustellen, können Implementierungen auf einem Computer implementiert sein, der eine Anzeigevorrichtung aufweist, so beispielsweise eine Kathodenstrahlröhre (CRT) oder einen LCD-Monitor (Flüssigkristallanzeige LCD), um Information für den Nutzer anzuzeigen, und eine Tastatur und eine Zeigevorrichtung, so beispielsweise eine Maus oder einen Trackball, mit deren Hilfe der Nutzer eine Eingabe für den Computer bereitstellen kann. Es können auch andere Arten von Vorrichtungen genutzt werden, um eine Interaktion mit einem Nutzer bereitzustellen. So kann beispielsweise eine für den Nutzer bereitgestellte Rückmeldung eine beliebige Form von sensorischer Rückmeldung sein, so beispielsweise eine optische Rückmeldung, eine akustische Rückmeldung oder eine taktile Rückmeldung; und es kann eine Eingabe von dem Nutzer in beliebiger Form, darunter als akustische, sprachliche oder aktive Eingabe, empfangen werden.
  • Implementiert sein können Implementierungen in einem Computersystem, das eine Backend-Komponente, so beispielsweise einen Datenserver, beinhaltet oder das eine Middleware-Komponente, so beispielsweise einen Anwendungsserver, beinhaltet oder das eine Frontend-Komponente, so beispielsweise einen Clientcomputer mit einer grafischen Nutzerschnittstelle oder einem Webbrowser beinhaltet, durch den ein Nutzer mit einer Implementierung interagieren kann, oder auch eine beliebige Kombination aus derartigen Backend-, Middleware- und Frontend-Komponenten. Komponenten können durch eine beliebige Form oder ein Medium der Digitaldatenkommunikation, beispielsweise ein Kommunikationsnetzwerk, miteinander verbunden sein. Beispiele für Kommunikationsnetzwerke beinhalten ein Ortsbereichsnetzwerk (LAN) und ein Großbereichsnetzwerk (WAN), beispielsweise das Internet.
  • Obwohl hier bestimmte Merkmale der beschriebenen Implementierungen dargestellt sind, erschließen sich einem Fachmann auf dem einschlägigen Gebiet zahlreiche Abwandlungen, Ersetzungen, Änderungen und Äquivalente. Es sollte daher einsichtig sein, dass die beigefügten Ansprüche all diese Abwandlungen und Änderungen, so sie in den Umfang der Ausführungsformen fallen, abdecken sollen.
  • Claims (20)

    1. Computerprogrammerzeugnis, wobei das Computerprogrammerzeugnis physisch auf einem nichttemporären computerlesbaren Speichermedium verkörpert ist und Anweisungen umfasst, die, wenn sie von wenigstens einer Rechenvorrichtung ausgeführt werden, dafür konfiguriert sind, die wenigstens eine Rechenvorrichtung zu veranlassen zum: Parsen bzw. Zerlegen einer Tutorialdatei, die aus einer Webpage hergeleitet ist, wobei die Tutorialdatei ein Tutorial darstellt, das von der Webpage für eine Softwareanwendung bereitgestellt wird, und in einem hierarchischen Format aufgebaut ist, in dem Tutorialattribute in Bezug auf entsprechende Werte der Tutorialattribute spezifiziert sind, wobei die Werte wenigstens eine Anweisung, die in der Webpage beinhaltet ist, zur Nutzung der Softwareanwendung beinhalten; Ausführen eines Mappings bzw. einer Abbildung der Tutorialattribute auf Anwendungsmerkmale der Softwareanwendung; und Generieren eines Anweisungscodes, der von einem Ursprungsanweisungsdienst der Softwareanwendung ausführbar ist, zum Generieren wenigstens eines Anweisungselementes innerhalb der Softwareanwendung auf Grundlage der Abbildung, wobei das wenigstens eine Anweisungselement wenigstens ein Anwendungsmerkmal der Anwendungsmerkmale identifiziert, das dafür konfiguriert ist, die Erledigung der wenigstens einen Anweisung zu ermöglichen.
    2. Computerprogrammerzeugnis nach Anspruch 1, wobei die Anweisungen, wenn sie ausgeführt werden, des Weiteren dafür konfiguriert sind, die wenigstens eine Rechenvorrichtung zu veranlassen zum: Generieren der Tutorialdatei, beinhaltend ein Extrahieren von Tutorialcontent aus der Webpage und ein Identifizieren von Strukturebenen des Tutorialcontents.
    3. Computerprogrammerzeugnis nach Anspruch 2, wobei die Anweisungen, wenn sie ausgeführt werden, des Weiteren dafür konfiguriert sind, die wenigstens eine Rechenvorrichtung zu veranlassen zum: Generieren der Tutorialdatei mit den identifizierten Strukturebenen, die in dem hierarchischen Format beinhaltet sind, beinhaltend ein Klassifizieren der Strukturebenen in Bezug auf eine Sammlung von Tutorialstrukturmodellen, die konjunkte Ausführungen oder disjunkte Ausführungen zwischen Tutorialschritten des Tutorials bestimmen.
    4. Computerprogrammerzeugnis nach einem der vorhergehenden Ansprüche, wobei das hierarchische Format wenigstens eine Prozedur beinhaltet, die mehrere Tutorialschritte des Tutorials aufweist, und einer der mehreren Tutorialschitte die wenigstens eine Anweisung beinhaltet.
    5. Computerprogrammerzeugnis nach Anspruch 4, wobei der eine der mehreren Tutorialschritte einen Identifikator beinhaltet, der das wenigstens eine Anwendungsmerkmal aus einer Liste der Anwendungsmerkmale identifiziert.
    6. Computerprogrammerzeugnis nach einem der vorhergehenden Ansprüche, wobei die Anweisungen, wenn sie zum Ausführen der Abbildung ausgeführt werden, des Weiteren dafür konfiguriert sind, die wenigstens eine Rechenvorrichtung zu veranlassen zum: Durchführen einer für natürliche Sprache vorgesehenen Verarbeitung (NLP) der Tutorialattribute zum hierdurch erfolgenden Beziehen eines jeden Tutorialhandlungsattributes auf ein Anwendungsmerkmal einer standardisierten Liste von Namen der Anwendungsmerkmale.
    7. Computerprogrammerzeugnis nach einem der vorhergehenden Ansprüche, wobei die Anweisungen, wenn sie zum Generieren des Anweisungscodes ausgeführt werden, des Weiteren dafür konfiguriert sind, die wenigstens eine Rechenvorrichtung zu veranlassen zum: Bestimmen der mehreren Anwendungsmerkmale; Speichern mehrerer Produktions- bzw. Erstellungsfunktionen für die mehreren Anwendungsmerkmale, wobei jede Erstellungsfunktion dafür konfiguriert ist, einen Codeabschnitt des Anweisungscodes für ein entsprechendes Anwendungsmerkmal zu generieren.
    8. Computerprogrammerzeugnis nach Anspruch 7, wobei die Anweisungen, wenn sie zum Generieren des Anweisungscodes ausgeführt werden, des Weiteren dafür konfiguriert sind, die wenigstens eine Rechenvorrichtung zu veranlassen zum: Durchlaufen des hierarchischen Formats der Tutorialdatei zum Auswählen eines Tutorialattributes und eines entsprechenden Wertes, wobei der entsprechende Wert die wenigstens eine Anweisung beinhaltet; Identifizieren einer Produktions- bzw. Erstellungsfunktion der mehreren Produktions- bzw. Erstellungsfunktionen, die der wenigstens einen Anweisung entspricht; und Generieren eines Codeabschnittes des Anweisungscodes auf Grundlage der Erstellungsfunktion.
    9. Computerprogrammerzeugnis nach einem der vorhergehenden Ansprüche, wobei das wenigstens eine Anwendungsmerkmal ein Werkzeug oder eine Handlungsfunktion der Softwareanwendung beinhaltet.
    10. Computerprogrammerzeugnis nach einem der vorhergehenden Ansprüche, wobei das wenigstens eine Anwendungsmerkmal eine Handlung beinhaltet, die zur Erledigung der wenigstens einen Anweisung unter Nutzung eines Werkzeuges der Softwareanwendung durchgeführt werden soll.
    11. Computerimplementiertes Verfahren, wobei das Verfahren umfasst: Parsen bzw. Zerlegen einer Tutorialdatei, die aus einer Webpage hergeleitet ist, wobei die Tutorialdatei ein Tutorial darstellt, das von der Webpage für eine Softwareanwendung bereitgestellt wird, und in einem hierarchischen Format aufgebaut ist, in dem Tutorialattribute in Bezug auf entsprechende Werte der Tutorialattribute spezifiziert sind, wobei die Werte wenigstens eine Anweisung, die in der Webpage beinhaltet ist, zur Nutzung der Softwareanwendung beinhalten; Ausführen eines Mappings bzw. einer Abbildung der Tutorialattribute auf Anwendungsmerkmale der Softwareanwendung; und Generieren eines Anweisungscodes, der von einem Ursprungsanweisungsdienst der Softwareanwendung ausführbar ist, zum Generieren wenigstens eines Anweisungselementes innerhalb der Softwareanwendung auf Grundlage der Abbildung, wobei das wenigstens eine Anweisungselement wenigstens ein Anwendungsmerkmal der Anwendungsmerkmale identifiziert, das dafür konfiguriert ist, die Erledigung der wenigstens einen Anweisung zu ermöglichen.
    12. Verfahren nach Anspruch 11, wobei das Ausführen der Abbildung umfasst: Durchführen einer für natürliche Sprache vorgesehenen Verarbeitung (natural language processing - NLP) der Tutorialattribute zum hierdurch erfolgenden Beziehen eines jeden Tutorialhandlungsattributes auf ein Anwendungsmerkmal einer standardisierten Liste von Namen der Anwendungsmerkmale.
    13. Verfahren nach Anspruch 11 oder 12, wobei das Generieren des Anweisungscodes umfasst: Bestimmen der mehreren Anwendungsmerkmale; Speichern mehrerer Produktions- bzw. Erstellungsfunktionen für die mehreren Anwendungsmerkmale, wobei jede Erstellungsfunktion dafür konfiguriert ist, einen Codeabschnitt des Anweisungscodes für ein entsprechendes Anwendungsmerkmal zu generieren.
    14. Verfahren nach Anspruch 13, wobei das Generieren des Anweisungscodes umfasst: Durchlaufen des hierarchischen Formats der Tutorialdatei zum Auswählen eines Tutorialattributes und eines entsprechenden Wertes, wobei der entsprechende Wert die wenigstens eine Anweisung beinhaltet; Identifizieren einer Erstellungsfunktion der mehreren Erstellungsfunktionen, die der wenigstens einen Anweisung entspricht; und Generieren eines Codeabschnittes des Anweisungscodes auf Grundlage der Erstellungsfunktion.
    15. System, umfassend: wenigstens einen Speicher, der Anweisungen beinhaltet; und wenigstens einen Prozessor, der operativ mit dem wenigstens einen Speicher gekoppelt und der dafür angeordnet und konfiguriert ist, Anweisungen auszuführen, die, wenn sie ausgeführt werden, den wenigstens einen Prozessor veranlassen zum: Eingeben einer Tutorialdatei, die geordnete Anweisungen zum Durchführen einer Anwendungsfunktion einer Softwareanwendung beinhaltet; Mappen bzw. Abbilden der geordneten Anweisungen auf entsprechende Anwendungsmerkmale der Softwareanwendung; und Generieren eines Anweisungscodes, der von einem Ursprungsanweisungsdienst der Softwareanwendung ausführbar und dafür konfiguriert ist, ein interaktives Ausführen der entsprechenden Anwendungsmerkmale innerhalb der Anwendung zum Implementieren der geordneten Anweisungen und Ausführen der Anwendungsfunktion zu ermöglichen.
    16. System nach Anspruch 15, wobei die Tutorialdatei ein hierarchisches Format beinhaltet, das den geordneten Anweisungen entspricht, die aus Tutorialcontent, der aus einer Tutorialwebpage extrahiert ist, bestimmt sind.
    17. System nach Anspruch 16, wobei die Tutorialdatei in einem standardisierten Format aufgebaut ist, das zum Speichern von Tutorialcontent mehrerer Tutorialwebpages in mehreren entsprechenden Tutorialdateien anwendbar ist.
    18. System nach einem der Ansprüche 15 bis 17, wobei ein Anwendungsmerkmal der Anwendungsmerkmale ein Werkzeug oder eine Handlungsfunktion der Softwareanwendung beinhaltet und wobei das interaktive Ausführen ein visuelles bzw. optisches Identifizieren des Werkzeuges für einen Nutzer der Softwareanwendung zur Nutzung bei der Erledigung wenigstens einer der geordneten Anweisungen beinhaltet.
    19. System nach einem der Ansprüche 15 bis 18, wobei das System die geordneten Anweisungen abbildet, beinhaltend ein Durchführen einer für natürliche Sprache vorgesehenen Verarbeitung (natual language processing - NLP) von Tutorialcontent der Tutorialdatei zum hierdurch erfolgenden Beziehen einer geordneten Anweisung der geordneten Anweisungen auf ein entsprechendes Anwendungsmerkmal aus einer Liste von Namen der Anwendungsmerkmale.
    20. System nach einem der Ansprüche 15 bis 19, wobei das System konfiguriert ist zum: Extrahieren von Tutorialcontent aus einer Tutorialwebpage; Beschriften bzw. Markieren des Tutorialcontents mit Tutorialattributen; Identifizieren von Strukturebenen des Tutorialcontents entsprechend wenigstens einer Tutorialprozedur und beinhalteten Tutorialschritten; und Generieren der Tutorialdatei mit einem hierarchischen Format, das die identifizierten Strukturebenen wiedergibt und die Tutorialattribute beinhaltet, die mit entsprechenden Tutorialwerten gespeichert sind.
    DE102018008377.3A 2018-03-19 2018-10-24 Interaktive Integration von Tutorials Pending DE102018008377A1 (de)

    Applications Claiming Priority (2)

    Application Number Priority Date Filing Date Title
    US15/925,259 US10769738B2 (en) 2018-03-19 2018-03-19 Interactive tutorial integration
    US15/925,259 2018-03-19

    Publications (1)

    Publication Number Publication Date
    DE102018008377A1 true DE102018008377A1 (de) 2019-09-19

    Family

    ID=64655320

    Family Applications (1)

    Application Number Title Priority Date Filing Date
    DE102018008377.3A Pending DE102018008377A1 (de) 2018-03-19 2018-10-24 Interaktive Integration von Tutorials

    Country Status (5)

    Country Link
    US (1) US10769738B2 (de)
    CN (1) CN110286967A (de)
    AU (1) AU2018253637B2 (de)
    DE (1) DE102018008377A1 (de)
    GB (1) GB2572234A (de)

    Families Citing this family (8)

    * Cited by examiner, † Cited by third party
    Publication number Priority date Publication date Assignee Title
    US10885444B2 (en) 2017-03-10 2021-01-05 Adobe Inc. Application tool recommendations
    US10866803B2 (en) * 2019-02-12 2020-12-15 Red Hat, Inc. Generating interaction libraries
    US11468786B2 (en) * 2019-10-16 2022-10-11 Adobe Inc. Generating tool-based smart-tutorials
    US10831516B1 (en) 2020-03-09 2020-11-10 Adobe Inc. Proficiency based tutorial modification
    US11609772B2 (en) * 2020-09-18 2023-03-21 Red Hat, Inc. Dynamically generating guided tours for software
    US11726803B2 (en) * 2021-03-01 2023-08-15 Orange Management Inc. Artificial intelligence based systems and methods for autonomously generating customer service help guides with integrated graphical components and for autonomously error-checking knowledge base support resources
    US11715384B2 (en) 2021-06-02 2023-08-01 International Business Machines Corporation Automated personalization of a user experience
    US20230244958A1 (en) * 2022-01-28 2023-08-03 Intuit Inc. Generation of conversational task completion structure

    Family Cites Families (20)

    * Cited by examiner, † Cited by third party
    Publication number Priority date Publication date Assignee Title
    US5535422A (en) * 1992-03-26 1996-07-09 International Business Machines Corporation Interactive online tutorial system for software products
    US5493658A (en) * 1992-03-26 1996-02-20 International Business Machines Corporation Interactive online tutorial system with monitoring function for software products
    US5442759A (en) * 1992-03-26 1995-08-15 International Business Machines Corporation Interactive online tutorial system with user assistance function for software products
    US6343237B1 (en) * 1999-06-04 2002-01-29 Clark Equipment Company User interface functionality for power machine control system
    US6594466B1 (en) * 2000-05-24 2003-07-15 Bentley Systems, Incorporated Method and system for computer based training
    US20020091993A1 (en) * 2000-09-29 2002-07-11 International Business Machines Corporation Contextual help information
    GB0303977D0 (en) * 2003-02-21 2003-03-26 Ibm A method and system for generating a tutorial application
    US7580702B2 (en) * 2005-05-13 2009-08-25 Core Mobility, Inc. Systems and methods for discovering features in a communication device
    US9183752B2 (en) * 2005-07-14 2015-11-10 Red Hat, Inc. Tutorial generator with automatic capture of screenshots
    US9449524B2 (en) * 2010-11-05 2016-09-20 International Business Machines Corporation Dynamic role-based instructional symbiont for software application instructional support
    US20100077327A1 (en) * 2008-09-22 2010-03-25 Microsoft Corporation Guidance across complex tasks
    CN101996093A (zh) * 2009-08-10 2011-03-30 日电(中国)有限公司 将桌面应用转换为网络应用的方法和***
    US9665234B2 (en) * 2013-04-16 2017-05-30 Autodesk, Inc. Community enhanced tutorials: improving tutorials with multiple demonstrations
    US9649556B1 (en) * 2013-08-30 2017-05-16 Aftershock Services, Inc. System and method for dynamically inserting tutorials in a mobile application
    US20150121217A1 (en) * 2013-10-28 2015-04-30 Kobo Incorporated Method and system for automatic invocation of guided reading tutorial based on account activity
    WO2015116189A1 (en) * 2014-01-31 2015-08-06 Hewlett-Packard Development Company, L.P. User interface level tutorials
    US10635460B2 (en) * 2015-12-21 2020-04-28 Google Llc Assisted interaction for mobile products
    US10430214B2 (en) * 2016-12-30 2019-10-01 Google Llc Dynamically generating custom application onboarding tutorials
    CN107608536A (zh) * 2017-09-25 2018-01-19 武汉优品鼎盛科技服务有限公司 一种自动完成数据输入的方法及设备
    US10885808B2 (en) * 2017-09-28 2021-01-05 International Business Machines Corporation Curating tutorials based on historic user data

    Also Published As

    Publication number Publication date
    GB201817945D0 (en) 2018-12-19
    AU2018253637B2 (en) 2021-07-29
    US10769738B2 (en) 2020-09-08
    GB2572234A (en) 2019-09-25
    CN110286967A (zh) 2019-09-27
    US20190287197A1 (en) 2019-09-19
    AU2018253637A1 (en) 2019-10-03

    Similar Documents

    Publication Publication Date Title
    DE102018008377A1 (de) Interaktive Integration von Tutorials
    US11275815B2 (en) System and method for integrating user feedback into website building system services
    US8484611B2 (en) Method and system for simplified assembly of information processing applications
    US8387006B1 (en) System and method for authoring a web page to be run-time editable
    US7428699B1 (en) Configurable representation of structured data
    US20140006913A1 (en) Visual template extraction
    WO2007092373A2 (en) System and method for website configuration and management
    US20220139075A1 (en) Deep learning guide device and method
    DE202015009301U1 (de) Automatisches Crawling von Anwendungen
    DE112018006345T5 (de) Abrufen von unterstützenden belegen für komplexe antworten
    US20140215306A1 (en) In-Context Editing of Output Presentations via Automatic Pattern Detection
    US20160049083A1 (en) Systems and methods for authoring an integrated and individualized course or textbook
    US20120239677A1 (en) Collaborative knowledge management
    DE112018005272T5 (de) Suchen von mehrsprachigen dokumenten auf grundlage einer extraktion der dokumentenstruktur
    DE102018008268A1 (de) Automatisches Generieren von Anweisungen aus Tutorials zur Suche und Nutzernavigation
    Bajaj et al. Synthesizing web element locators (T)
    US20190005030A1 (en) System and method for providing an intelligent language learning platform
    US10776351B2 (en) Automatic core data service view generator
    Doblies et al. PAVE: A web application to identify and correct accessibility problems in PDF documents
    Desolda et al. Metamorphic data sources: A user-centric paradigm to consume linked data in interactive workspaces
    US9501598B1 (en) System and method for assertion publication and re-use
    Theng Addressing the" lost in hyperspace" problem in hypertext.
    US8239362B1 (en) Using metadata fragments as authoritative manufacturing work instructions
    Moreno et al. Interactive visualization of dependencies
    Hess et al. Generating automatically class comments in Pharo

    Legal Events

    Date Code Title Description
    R012 Request for examination validly filed