DE102018008377A1 - Interaktive Integration von Tutorials - Google Patents
Interaktive Integration von Tutorials Download PDFInfo
- 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
Links
- 230000002452 interceptive effect Effects 0.000 title claims abstract description 17
- 230000010354 integration Effects 0.000 title description 7
- 238000000034 method Methods 0.000 claims description 75
- 230000006870 function Effects 0.000 claims description 36
- 238000004590 computer program Methods 0.000 claims description 20
- 238000013507 mapping Methods 0.000 claims description 15
- 230000009471 action Effects 0.000 claims description 14
- 238000003058 natural language processing Methods 0.000 claims description 12
- 238000012545 processing Methods 0.000 claims description 9
- 238000004519 manufacturing process Methods 0.000 claims 4
- 238000002372 labelling Methods 0.000 claims 1
- 238000004422 calculation algorithm Methods 0.000 description 22
- 238000012549 training Methods 0.000 description 11
- 230000008901 benefit Effects 0.000 description 10
- 239000003550 marker Substances 0.000 description 10
- 230000008569 process Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000010801 machine learning Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 238000000605 extraction Methods 0.000 description 5
- 239000000463 material Substances 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 4
- 230000003993 interaction Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000013179 statistical model Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000005065 mining Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 238000010367 cloning Methods 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
- G06Q50/20—Education
- G06Q50/205—Education administration or guidance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
- G06F9/453—Help systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/33—Intelligent editors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09B—EDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
- G09B19/00—Teaching not covered by other main groups of this subclass
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09B—EDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
- G09B5/00—Electrically-operated educational appliances
- G09B5/02—Electrically-operated educational appliances with visual presentation of the material to be studied, e.g. using film strip
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09B—EDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
- G09B5/00—Electrically-operated educational appliances
- G09B5/06—Electrically-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 von1 . -
3 ist ein Flussdiagramm zur Darstellung exemplarischer Vorgänge des Systems von1 . -
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 von1 und4 benutzt wird. -
11 ist ein Flussdiagramm zur Darstellung detaillierter exemplarischer Implementierungen des Systems von4 . -
12 ist ein Blockdiagramm zur Darstellung des Generierens eines ausführbaren Anweisungscodes unter Nutzung der PTF-Datei von4 . -
13 ist ein Flussdiagramm zur Darstellung detaillierter exemplarischer Implementierungen des Systems von12 . - 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 Systems100 zur interaktiven Integration von Tutorials. Das System100 beinhaltet eine Rechenvorrichtung102 mit wenigstens einem Speicher104 , wenigstens einem Prozessor106 und wenigstens einer Anwendung108 . Die Rechenvorrichtung102 kann mit einer oder mehreren anderen Rechenvorrichtungen über ein Netzwerk110 kommunizieren. Die Rechenvorrichtung102 kann mit einer Nutzervorrichtung112 über das Netzwerk110 kommunizieren. Die Rechenvorrichtung102 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 Rechenvorrichtung102 dargestellt ist, kann die Rechenvorrichtung102 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 Rechenvorrichtung102 als Server beschrieben oder kann als solcher gedeutet werden. - Der wenigstens eine Prozessor
106 kann zwei oder mehr Prozessoren an der Rechenvorrichtung102 darstellen, die parallel betrieben werden und entsprechende Anweisungen nutzen, die unter Nutzung des wenigstens einen Speichers104 gespeichert werden. Der wenigstens eine Speicher104 stellt wenigstens ein nichttemporäres computerlesbares Speichermedium dar. Auf ähnliche Art kann der wenigstens eine Speicher104 daher einen oder mehrere verschiedene Typen von Speicher darstellen, die von der Rechenvorrichtung102 benutzt werden. Zusätzlich zur Speicherung von Anweisungen, die ermöglichen, dass der wenigstens eine Prozessor106 die Anwendung108 und ihre verschiedenen Komponenten implementiert, kann der wenigstens eine Speicher104 zur Speicherung von Daten benutzt werden. - Das Netzwerk
110 kann als das Internet implementiert sein, kann jedoch auch andere Konfigurationen aufweisen. Das Netzwerk110 kann beispielsweise ein Großbereichsnetzwerk (WAN), ein Ortsbereichsnetzwerk (LAN), ein Drahtlosnetzwerk, ein Intranet, Kombinationen aus diesen Netzwerken sowie andere Netzwerke beinhalten. Obwohl das Netzwerk110 als einzelnes Netzwerk dargestellt ist, kann das Netzwerk110 selbstredend auch derart implementiert sein, dass es mehrere verschiedene Netzwerke beinhaltet. - Auf die Anwendung
108 kann von einem Nutzer der Rechenvorrichtung102 direkt an der Rechenvorrichtung102 zugegriffen werden. Bei anderen Implementierungen kann die Anwendung108 auf der Rechenvorrichtung102 als Komponente eines Cloud-Netzwerkes laufen, wo ein Nutzer auf die Anwendung108 von einer anderen Rechenvorrichtung (beispielsweise der Nutzervorrichtung112 ) aus über ein Netzwerk, so beispielsweise das Netzwerk110 , zugreift. Bei einer Implementierung kann die Anwendung108 eine Bildbearbeitungsanwendung sein, wie vorstehend erwähnt worden ist und nachstehend im Zusammenhang mit den Detailbeispielen noch beschrieben wird. Bei anderen Implementierungen kann die Anwendung108 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 Anwendung108 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 Anwendung108 kann selbstredend beispielsweise auch eine Kombination aus den vorgenannten Beispielen sein. - Bei dem Beispiel von
1 ist die Nutzervorrichtung112 derart dargestellt, dass sie eine Anzeige114 beinhaltet, in der ein Bild116 wiedergegeben wird. Wie vorstehend erwähnt worden ist, kann das Bild116 von einer Bildbearbeitungsanwendung bereitgestellt werden, die wenigstens einen Teil der Anwendung108 beinhalten kann oder die eine Fähigkeit der Anwendung108 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 System100 von1 gezeigt ist. Eine detailliertere exemplarische Darstellung der Anwendung108 als Bildbearbeitungsanwendung, die zum Bearbeiten eines Bildes genutzt wird, ist nachstehend anhand2 angegeben. - In
1 stellt ein Tutorial118 ein vereinfachtes Beispiel für eine Webpage dar, die Anweisungsmaterial zur Nutzung der Anwendung108 , also beispielsweise zur Bearbeitung des Bildes116 , beinhaltet. In diesem Zusammenhang ist der Begriff „Tutorial“ derart zu verstehen, dass er nahezu jedes organisierte Anweisungsmaterial darstellt, das über das Netzwerk110 verfügbar sein oder auf andere Art verfügbar gemacht werden kann. In der Praxis wird das Tutorial118 oftmals von einem Drittseitenanbieter bereitgestellt, also beispielsweise von jemand anderem als dem Anbieter der Softwareanwendung108 und dem Nutzer der Nutzervorrichtung112 . - Das Tutorial
118 kann beispielsweise von einem anderen Nutzer bereitgestellt werden, der eine vorteilhafte Bildbearbeitungstechnik teilen will. Bei anderen Beispielen kann das Tutorial118 als Teil einer Suite bzw. eines Pakets von Tutorials für die Anwendung108 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 Tutorial118 , 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 Nutzervorrichtung112 durchgeführt wird. Weitere Beispiele für das Tutorial118 sind nachstehend angegeben oder erschließen sich. - Die Anwendung
108 ist indes derart dargestellt, dass sie einen Ursprungsanweisungsdienst120 beinhaltet, der einen Anweisungscode ausführt, um vorteilhafte Anweisungen für den Nutzer der Nutzervorrichtung112 bei der Nutzung der Anwendung108 bereitzustellen. Ein Anweisungselementgenerator124 ist beispielsweise derart dargestellt, dass er eine Anweisung im Zusammenhang mit einem spezifischen Anwendungsmerkmal der Anwendung108 bereitstellt. Dies bedeutet bei dem vereinfachten Beispiel von1 , dass die Anzeige114 derart dargestellt ist, dass sie eine Auswahlschaltfläche126 zur Auswahl des Kontrastes des Bildes116 beinhaltet. Im Betrieb kann der Anweisungselementgenerator124 dafür konfiguriert sein, eine Anweisung im Zusammenhang mit der Kontrastschaltfläche126 bereitzustellen, und zwar beispielsweise durch Hervorheben oder auf andere Art erfolgendes Identifizieren der Kontrastschaltfläche126 , so beispielsweise unter Nutzung eines Anweisungselementes, das in1 als gestrichelte Umrisslinie128 dargestellt ist. Obwohl dies in1 nicht explizit dargestellt ist, kann der Ursprungsanweisungsdienst120 eine Anweisung, so beispielsweise „Als Nächstes die Kontrastschaltfläche auswählen“, gefolgt von einem Generieren des Anweisungselementes128 , bereitstellen, um die nutzerseitige Auswahl der Kontrastschaltfläche126 zu erleichtern. - Es sollte einsichtig sein, dass das Tutorial
118 und der Ursprungsanweisungsdienst120 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 Anwendung108 . Dies bedeutet, dass das Tutorial118 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 Tutorial118 nach dem Zeitpunkt, zu dem die Anwendung108 selbst auf den Markt gebracht worden ist, generiert und veröffentlicht werden, sodass das Tutorial118 Material beinhaltet, das zum Zeitpunkt der Markteinführung der Anwendung108 noch nicht relevant oder verfügbar gewesen ist. Zudem kann das Tutorial118 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 Anwendung108 bereitstellen, die nicht einmal der Anbieter der Softwareanwendung108 kennt oder ahnt. - Demgegenüber tritt bei dem Tutorial
118 ein Problem dahingehend auf, dass das Tutorial118 üblicherweise in einem Umfeld, das vom Betrieb der Anwendung108 getrennt ist, bereitgestellt wird. Wird das Tutorial118 als Teil einer Webseite bereitgestellt, so kann das Tutorial118 in einem separaten Browser oder Browserfenster an der Anzeige114 der Anwendung108 bereitgestellt werden. In diesen und ähnlichen Fällen ist der Nutzer der Nutzervorrichtung100 gegebenenfalls genötigt, vom Umfeld des Tutorials118 auf das Umfeld der Anwendung108 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 Tutorial118 konfrontiert sein. - Bei einem letzten Beispiel für die Schwierigkeit der direkten Nutzung des Tutorials
118 kann es schwierig sein, in dem Tutorial118 die nötigen Aspekte der Anwendung108 zu identifizieren. Versucht das Tutorial118 beispielsweise, eine Anweisung im Zusammenhang mit der Kontrastschaltfläche126 bereitzustellen, so muss das Tutorial118 gegebenenfalls zunächst primär Anweisungen im Zusammenhang damit bereitstellen, wie die Kontrastschaltfläche126 ausfindig zu machen ist (beispielsweise durch Identifizieren eines allgemeinen Layoutortes oder eines übergeordneten Menüs). In dem gegebenen separaten Umfeld des Tutorials118 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 Anwendung108 selbst beinhaltet ist. Designer und Entwickler der Anwendung108 können den Ursprungsanweisungsdienst120 bereitstellen, und zwar beispielsweise in Verbindung mit der Markteinführung oder Aktualisierung der Anwendung108 . Im Ergebnis kann das Anweisungselement128 , wie bereits beschrieben worden ist, direkt im Umfeld der Anwendung108 bereitgestellt werden. - Im Allgemeinen greifen Designer/Entwickler der Anwendung
108 auf betroffene Merkmale aus einer Merkmalsliste130 der Anwendung108 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 Anwendung108 , 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äche126 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 Ursprungsanweisungsdienstes120 auszunutzen, ist ein Tutorialverwalter132 beispielsweise dafür konfiguriert, das Tutorial118 ausfindig zu machen und den Content des Tutorials118 zu integrieren, beinhaltend ein Generieren von Anweisungscode, der innerhalb des Anweisungscodes122 beinhaltet sein soll. Beinhaltet das Tutorial118 beispielsweise eine Anweisung zur Nutzung der Kontrastschaltfläche126 , so kann der Tutorialverwalter132 einen Anweisungscode generieren, der innerhalb des Anweisungscodes122 beinhaltet und von dem Anweisungselementsgenerator124 ausführbar ist. Infolgedessen kann der Anweisungselementgenerator124 das Anweisungselement128 direkt innerhalb des Umfeldes der Anzeige114 und der Anwendung108 generieren, wodurch der Anweisungscontent des Tutorials118 verwendet wird und zudem die Vorteile des Ursprungsanweisungsdienstes120 genutzt werden. - In der restlichen Beschreibung von
1 werden die Elemente134 bis150 des Tutorialverwalters132 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 Tutorialverwalters132 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 von1 sind nachstehend anhand der verbleibenden2 bis13 angegeben oder erschließen sich. - Bei dem Beispiel von
1 beinhaltet der Tutorialverwalter132 einen Tutorialmarkierer134 . Der Tutorialmarkierer134 kann dafür konfiguriert sein, das Tutorial118 zu parsen bzw. zu zerlegen und Content des Tutorials118 zu markieren. Der Tutorialmarkierer134 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 Tutorials118 hinzufügen. Bei einem spezifischen nichtbeschränkenden Beispiel können Markierungen hinzugefügt werden, um den Titel oder den Urheber des Tutorials118 oder eine Contentbeschreibung oder auch eine Themenüberschrift hinzuzufügen. - Ein Tutorialextraktor
136 kam dafür konfiguriert sein, eine Struktur oder Strukturelemente des Tutorials118 zu extrahieren. Dies bedeutet, wie nachstehend noch detailliert beschrieben wird, dass Tutorials, so beispielsweise das Tutorial118 , tendenziell eine Version einer oder mehrerer Tutorialstrukturen beinhalten. Der Tutorialextraktor136 kann eine oder mehrere Vorlagen beinhalten, die an dem Tutorial118 , beispielsweise an der Ausgabe des Tutorialmarkierers134 , angewendet werden können, um derartige strukturelle Elemente oder Aspekte zu identifizieren (beispielsweise zusätzlich zu markieren). Der sich ergebende markierte Tutorialcontent138 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 Tutorialcontents138 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 Ursprungsanweisungsdienst120 umgewandelt werden kann. Die sich ergebende Datei im PTF-Format kann sodann bei den PTF-Dateien142 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 in5 bis9 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 Modelltrainer144 dafür konfiguriert ist, mehrere Modelle und zugeordnete Algorithmen zu trainieren, die beispielsweise von dem Tutorialmarkierer134 , dem Tutorialextraktor136 und dem PTF-Generator140 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 Tutorialverwalters132 eingesetzt werden. - Detailliertere Beispiele für Operationen des Modelltrainers
144 werden nachstehend beispielsweise im Zusammenhang mit4 sowie 11 bis 13 bereitgestellt. Allgemein sollte einsichtig sein, dass jeder von dem Tutorialmarkierer134 , dem Tutorialextraktor136 und dem PFT-Generator140 wenigstens teilweise unter Nutzung entsprechender Algorithmen maschinellen Lernens, die unter Nutzung des Modelltrainers144 trainiert werden, implementiert sein kann. Selbstredend kann der Modelltrainer144 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 Modelltrainer144 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 Tutorialmarkierer134 zum Markieren eines neuen Tutorials, den Tutorialextraktor136 zum Extrahieren von Content eines neuen Tutorials und den PTF-Generator140 zum Generieren einer entsprechenden PTF-Datei zur Aufnahme in die PTF-Dateien142 zu trainieren. - Des Weiteren kann, siehe
1 , ein Merkmalsextraktor146 dafür konfiguriert sein, beliebige und sämtliche Anwendungsmerkmale der Softwareanwendung108 , die für die eine oder die mehreren PTF-Dateien142 einschlägig sein können, zu identifizieren. Wie vorstehend beschrieben worden ist, kann die Anwendung108 beispielsweise die Merkmalsliste130 beinhalten, und der Merkmalsextraktor146 kann wenigstens einige einschlägige Merkmale aus der verfügbaren Merkmalsliste130 bestimmen. Ist die Merkmalsliste130 für den Tutorialverwalter132 nicht verfügbar oder unvollständig, so kann der Merkmalsextraktor146 dennoch dafür konfiguriert sein, einen Algorithmus maschinellen Lernens (der von dem Modelltrainer144 trainiert wird) zum Analysieren der Anwendung108 und zum Bestimmen etwaiger einschlägiger Anwendungsmerkmale auszuführen. Der Merkmalsextraktor146 kann beispielsweise Anwendungswerkzeugnamen, Befehle, Menüs und andere handlungsbezogene Elemente der Anwendung108 bestimmen. - Die sich ergebenden Merkmale können sodann von einem Merkmalsabbilder
148 im Zusammenhang mit einer bestimmten PTF-Datei der PTF-Dateien142 benutzt werden. Wie nachstehend noch detailliert beschrieben wird, kann der Merkmalsabbilder148 dafür konfiguriert sein, eine PTF-Datei zu analysieren und Verweise auf beinhaltete Menübefehle oder Werkzeugnamen oder andere Anwendungsmerkmale der Anwendung108 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 Modelltrainer144 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 Anweisungscodegenerator150 dafür konfiguriert, die abgebildeten Merkmale des Merkmalsabbilders148 im Zusammenhang mit einer gegebenen PTF-Datei zu empfangen und einen ausführbaren Code zu generieren, der in dem Anweisungscode122 beinhaltet ist und von dem Ursprungsanweisungsdienst120 (beispielsweise durch den Anweisungselementgenerator124 ) 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 Tutorials118 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 Nutzervorrichtung112 im Umfeld der Softwareanwendung108 bereitstellt. Ein Entwickler oder Designer der Softwareanwendung kann den Tutorialverwalter132 beispielsweise dafür nutzen, die Anwendung108 zu aktualisieren. Bei anderen Beispielen kann ein Administrator, der die durch mehrere Nutzer erfolgende Nutzung der Anwendung108 überblickt, befugt sein, den Tutorialverwalter132 dafür zu nutzen, die Softwareanwendung108 zu aktualisieren. Bei wieder anderen Beispielen kann der Nutzer der Nutzervorrichtung112 die Fähigkeit aufweisen, das Tutorial118 zu identifizieren und den Tutorialverwalter132 zu nutzen, um den Content des Tutorials118 innerhalb der Softwareanwendung108 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 Tutorialverwalter132 derart individuell identifiziert und verarbeitet werden, dass es das bestimmte Thema des Tutorials118 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 Softwareanwendung108 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 Systems100 von1 . Bei dem Beispiel von2 ist eine Tutorialwebpage202 dargestellt und stellt beispielsweise das Tutorial118 von1 dar. Bei dem Beispiel von2 beinhaltet die Tutorialwebpage202 mehrere Schritte einer oder mehrerer Prozeduren, die von dem Tutorial beschrieben werden, darunter einen Schritt204 , der in2 als „Schritt 3“ dargestellt ist. Wie vorstehend anhand1 erläutert worden ist, kann die Tutorialwebpage202 auch mehrere Werbeanzeigen und anderen Zusatzcontent beinhalten, der wie in2 durch eine exemplarische Werbeanzeige206 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 Bilddatei208 dargestellt ist, sein kann. - Bei dem Beispiel von
2 und bei zahlreichen nachfolgenden Beispielen wird davon ausgegangen, dass die Softwareanwendung108 von1 die Bearbeitungssoftware „Adobe Photoshop“ ist. Bei derartigen exemplarischen Implementierungen kann davon ausgegangen werden, dass der Ursprungsanweisungsdienst102 von1 von dem Programm „Photoshop Learn Panel“, das ursprünglich zu Adobe Photoshop gehört, dargestellt wird. Infolgedessen illustriert und zeigt, wie bei dem Beispiel von2 dargestellt ist und hier detailliert beschrieben wird, der Pfeil210 die Nutzung des Tutorialverwalters132 von1 beim Analysieren der Tutorialwebpage202 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 Tutorialextraktor136 dafür konfiguriert sein, Content und Struktur der Tutorialwebpage202 zu markieren und zu extrahieren und hierdurch eine PTF-Datei zur Hinzunahme zu den PTF-Dateien142 als Ergebnis des Betriebs des PTF-Generators140 zu generieren. Sodann kann der Merkmalsabbilder148 unter Nutzung von Merkmalen, die man durch den Merkmalsextraktor146 erhält, dafür konfiguriert sein, die sich ergebende PTF-Datei auf entsprechende Merkmale des Dienstes „Photoshop Learn Panel“ abzubilden. Der Anweisungscodegenerator150 kann sodann zum Generieren von Anweisungscode, der innerhalb des Anweisungscodes122 beinhaltet sein kann, für Photoshop Learn Panel übergehen. - Im Ergebnis kann das Bild
208 der Tutorialwebpage202 als entsprechendes Bild212 beinhaltet sein und wiedergegeben werden, wobei Schritt204 auf ähnliche Art wie Schritt214 beinhaltet sein und wiedergegeben werden kann. Wie aus2 ersichtlich ist, werden das Bild212 und der Schritt214 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 Tutorialwebpage202 umzustellen, um den Tutorialcontent der Webpage202 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 von2 stellt eine Einblendung216 ein Beispiel für derartige „Coach Marks“ dar und stellt eine spezifische Anweisung im Zusammenhang mit einem Vorgang, der unter Nutzung des Bildes212 durchgeführt werden soll, bereit. Es sollte einsichtig sein, dass bei Nutzung des Systems100 von1 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 Anweisungscodegenerator150 des Tutorialverwalters132 generiert worden ist. -
3 ist ein Flussdiagramm300 zur Darstellung exemplarischer Implementierungen des Systems100 von1 . Bei dem Beispiel von3 sind Vorgänge302 ,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 in1 dargestellt ist, kann eine derartige Tutorialdatei beispielsweise eine PTF-Datei der PTF-Dateien142 beinhalten, die das Tutorial118 darstellt und die wenigstens eine Anweisung, die in dem Tutorial118 beinhaltet ist, zur Nutzung der Softwareanwendung108 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 Merkmalsabbilder148 von1 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 Anwendung108 abgebildet werden. Ein Tutorialattribut, so beispielsweise „Urheber“, entspricht beispielsweise keinem bestimmten Werkzeug oder keiner bestimmten Aufgabe der Anwendung108 . Demgegenüber können, wie die vorstehend erwähnt worden ist und nachstehend noch detailliert beschrieben wird, Anweisungen des Tutorials118 zur Nutzung der Anwendung108 Sprache beinhalten, die auf eine Aufgabe des Tutorials und ein zugeordnetes Werkzeug der Anwendung108 , das diese Aufgabe erledigt, verweist. Der Merkmalsabbilder148 ist zudem dafür konfiguriert, eine Entsprechung zwischen spezifischen Anweisungen des Tutorials118 und entsprechenden Werkzeugen sowie anderen Elementen der Anwendung108 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 Anweisungscodegenerator150 von1 kann beispielsweise dafür konfiguriert sein, Anweisungscode zu generieren, der in dem Anweisungscode122 des Ursprungsanweisungsdienstes120 der Anwendung108 beinhaltet ist. Im Ergebnis kann der Ursprungsanweisungsdienst120 dafür konfiguriert sein, ein Anweisungselement, so beispielsweise das Anweisungselement128 , das im Zusammenhang mit der Anzeige114 von1 dargestellt ist, zu generieren. Selbstredend stellt das Anweisungselement128 darstellungshalber ein vereinfachtes Beispiel dar, und es sind zusätzliche detailliertere Beispiele für derartige Anweisungselemente vorstehend im Zusammenhang mit2 wie auch in der nachfolgenden Beschreibung bereitgestellt. Das Anweisungselement kann beispielsweise die Anweisung214 , die im Zusammenhang mit2 bereitgestellt ist, wie auch die Anweisungen innerhalb der Coach Mark216 von2 beinhalten. Das Bild212 kann zudem als Anweisungselement betrachtet werden, da es bei dem Anweisungsbeispiel des ursprünglichen Tutorials202 von2 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 von1 und die zugehörigen exemplarischen Vorgänge von3 für Entwickler, Administratoren und Nutzer des Systems100 eine Anzahl von Vorteilen bieten. Entwickler und Administratoren des Systems100 können beispielsweise dazu imstande sein, geeignete Tutorials zur Aufnahme in den Ursprungsanweisungsdienst120 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 Softwareanwendung108 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 Anwendung108 wie auch Contentersteller von dritter Seite können durch das System100 beispielsweise in die Lage versetzt werden, qualitativ hochwertige Tutorials in der kanonischen Standardtutorialdarstellung der PTF-Dateien142 automatisch zu importieren, die leicht in ausführbaren Anweisungscode122 zur Nutzung in dem Ursprungsanweisungsdienst120 wie auch in anderen Ursprungsanweisungsdiensten anderer Softwareanwendungen, die mit dem Tutorialverwalter132 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 Anweisungscode122 beinhaltet sein soll, zusätzliche oder alternative Merkmale des Ursprungsanweisungsdienstes120 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 bis9 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 Systems100 von1 . Insbesondere ist4 ein Blockdiagramm zur Darstellung detaillierterer exemplarischer Implementierungen des Tutorialmarkierers134 , des Tutorialextraktors136 und des PTF-Generators140 . - Wie gezeigt ist, zeigt
4 eine Tutorialwebseite402 und eine Tutorialwebseite404 . Ein angepasster Tutorial-DOM-Zerleger bzw. -Parser406 (Document Object Model DOM, Dokumentobjektmodell) ist im Zusammenhang mit der Tutorialwebseite402 dargestellt, während ein gängiger Tutorial-DOM-Parser bzw. -Zerleger408 im Zusammenhang mit der Tutorialwebseite404 dargestellt ist. Die Parser bzw. Zerleger406 ,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 Tutorialwebseiten402 ,404 ungeachtet des Umstandes zu parsen bzw. zu zerlegen, dass die Tutorialwebseiten gegebenenfalls verschiedene Tutorialformate wie auch verschiedene Hierarchieebenen aufweisen. Bei dem Beispiel von4 wird davon ausgegangen, dass die Tutorialwebseiten402 ,404 vergleichsweise abstrakte (large scale) Tutorialwebseiten darstellen, die eine Anzahl von einzelnen Tutorialwebseiten und zugeordnete Tutorials für die Softwareanwendung108 von1 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 Modelltrainers144 von1 dafür trainiert werden, die Tutorialwebseite402 zu parsen bzw. zu zerlegen und eine angepasste Textverwertung (text mining) der Webseite402 durchzuführen. Es kann eine Extraktionsvorlage erlernt und aufgebaut und sodann bei der gewünschten Webpage der Tutorialwebseite402 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 anhand1 beschrieben worden ist und nachstehend anhand11 noch eingehender beschrieben wird. - Unter Nutzung des Modelltrainers
144 kann der gängige Tutorial-DOM-Zerleger406 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 mit5 bis9 Beispiele angegeben sind. -
4 zeigt des Weiteren Tutorialwebseiten410 ,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 Tutorialwebseite410 ,412 ,414 einen Klon der Basisvorlage zur Nutzung beim Markieren, Parsen bzw. Zerlegen, Klassifizieren und Extrahieren von Content einer entsprechenden Tutorialwebseite aufzubauen. Der Modelltrainer144 kann beispielsweise dafür konfiguriert sein, einen One-Shot-Lernprozess einer Tutorialstruktur der Tutorialwebseite410 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. -Zerlegers416 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. Zerlegern406 ,408 benutzt worden ist, verwenden. - Des Weiteren ist, siehe
4 , ein PTF-Generator418 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 Tutorialwebseiten402 ,404 ,410 bis414 ) zu empfangen und eine PTF-Datei420 zu generieren. Wie ersichtlich ist, stellt die PTF-Datei420 ein standardisiertes universelles Format unabhängig vom ursprünglichen Tutorialformat des dargestellten Tutorialcontents dar. - Bei exemplarischen Implementierungen kann der PTF-Generator
418 von dem Modelltrainer144 dafür trainiert werden, eine Struktur eines jeden Tutorials, beispielsweise eine der fünf exemplarischen Strukturen von5 bis9 , zu klassifizieren. Wie bei der vereinfachten exemplarischen PTF-Datei420 von4 und detaillierter bei der exemplarischen PTF-Datei von10 dargestellt ist, kann die PTF-Datei420 in einem hierarchischen Format generiert werden, das allgemein einer hierarchischen Struktur eines zugrunde liegenden Tutorials, wie es in einem der Strukturmodelle von5 bis9 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-Generator418 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 Header422 auf einen Titel424 , eine Beschreibung426 sowie ein oder mehrere Assets428 des zugrunde liegenden Tutorials verweisen. Dies bedeutet, dass jedes von dem Header422 , dem Titel424 , der Beschreibung426 und den Assets428 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 Beschreibung426 kann man beispielsweise aus einem Beschreibungsfeld einer zugrunde liegenden Webpage erhalten oder kann sie unter Nutzung des PTF-Generators418 generieren. Die Assets428 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 Beschreibung432 und mehrere Schritte434 aufweist. Wie gezeigt ist, kann jeder Schritt einen Text436 , Vorher-/Nachher-Bilder438 und verschiedene Werkzeuge/Befehle440 , die in Verbindung mit dem entsprechenden Schritt benutzt werden, beinhalten. Es sollte einsichtig sein, dass in diesem Stadium die Werkzeuge/Befehle440 gegebenenfalls nicht im Zusammenhang mit spezifischen Werkzeugen oder Befehlen der Softwareanwendung108 ausgedrückt sind. Die PTF-Datei420 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-Datei420 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 Merkmalsliste130 der Anwendung108 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. Aus4 ist ersichtlich, dass das hierarchische Format der PTF-Datei420 dennoch die Anweisungssequenz des Contents des zugrunde liegenden Tutorials auf standardisierte universelle Art erfasst. Obwohl dies bei dem vereinfachten Beispiel von4 verständlicherweise nicht dargestellt ist, ist zudem ersichtlich, dass die PTF-Datei420 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 Indexsuche442 als Beispiel für eine zusätzliche oder alternative Nutzung der PTF-Datei420 . Insbesondere kann die Indexsuche442 beispielsweise einen Webdienst darstellen, der das Suchen von Tutorials oder anderen Webpages ermöglicht. Beinhaltet die PTF-Datei420 Markierungen und andere Details im Zusammenhang mit den Semantiken und der Struktur des entsprechenden zugrunde liegenden Tutorials, so wird die Indexsuche442 aktiviert, um eine Suche unter diesen Attributen und den zugeordneten Werten bereitzustellen. - Wie vorstehend erwähnt worden ist, zeigen
5 bis9 Beispiele für Typen von Tutorialstrukturen, die in Verbindung mit dem Generieren der PTF-Datei420 klassifiziert werden können. Insbesondere zeigt5 eine konjunkte sequenzielle Struktur mit einer Ebene und einer nichthierarchischen Schrittstruktur. Mit anderen Worten, die Schritte laufen, wie gezeigt ist, nach einem Anfangsknoten502 mit einer einfachen Sequenz von Schritten504 ,506 ,508 und510 weiter. Das Beispiel von5 kann beispielsweise bei Szenarien implementiert sein, bei denen für einen Nutzer eine erste Anweisung, die dem Schritt504 entspricht, bereitgestellt wird, der Nutzer auf die Anweisung eingeht und die nachfolgende Anweisung506 bereitgestellt wird. Jeder der Schritte504 bis510 kann daher beispielsweise einer einzigen Aufgabe, einem Werkzeug, einer Handlung oder einen Befehl, die einem entsprechenden Anwendungsmerkmal der Anwendung108 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 Anfangsknoten602 zu Schritt604 übergehen. Wie dargestellt ist, kann Schritt604 Teilschritte606 ,608 aufweisen, bevor die Struktur zu einem Schritt610 , gefolgt von einem Schritt612 übergeht. Wie gezeigt ist, weist der Schritt612 die Teilschritte614 ,616 ,618 auf, woraufhin die Struktur schließlich mit einem letzten Schritt620 schließt. -
5 und6 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 zeigt7 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 Schritt704 gelangen, der Teilschritte706 ,708 beinhalten kann. Alternativ kann der Nutzer zu einem Schritt710 oder einem Schritt712 übergehen. Wie gezeigt ist, beinhaltet der Schritt712 Teilschritte714 ,716 ,718 . Eine letzte Option ist als Schritt720 dargestellt. Wie aus dem Beispiel von7 ersichtlich ist, kann der Nutzer mit einem beliebigen der Schritte704 ,710 ,712 ,720 beginnen und danach zu nachfolgenden Schritten und/oder Teilschritten, so vorhanden, übergehen. Allgemein hat der Nutzer die Option, unter beliebigen der Schritte704 ,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 Prozedur804 nach einem Anfangsknoten802 einen Schritt806 beinhalten, der wiederum selbst Teilschritte808 ,810 ,812 beinhalten kann. Die Prozedur804 kann zudem Schritte814 ,816 ,818 beinhalten. Eine nachfolgende Prozedur820 kann der ersten Prozedur804 folgen und schließlich zu einer letzten Prozedur822 führen. -
9 zeigt ein letztes, nichtbeschränkendes Beispiel für den Typ von Strukturmodell, der beim Erzeugen der PTF-Datei420 benutzt werden kann. Wie gezeigt ist, ist9 ähnlich zu dem Beispiel von8 , stellt jedoch ein disjunktes Beispiel für eine Prozedurstruktur mit Schritten und möglichen Teilschritten dar. Wie gezeigt ist, kann eine Prozedur904 nach einem Anfangsknoten902 einen Schritt906 beinhalten, der Teilschritte908 ,910 ,912 beinhaltet. Die Prozedur904 beinhaltet zudem Schritte914 ,916 ,918 . Das Beispiel von9 beinhaltet zudem Prozeduren920 und922 . Ähnlich wie in7 sollte einsichtig sein, dass die Prozeduren904 ,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 Dateiabschnitt1000 einer PTF-Datei, so beispielsweise der PTF-Datei420 von4 . Bei dem Beispiel von10 beinhaltet ein Header1002 eine Zeile1004 , in der der Attributurheber den Wert „Rebecca Creger“ aufweist. Eine Zeile1006 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 Anwendung108 arbeitet. Des Weiteren sollte einsichtig sein, dass die Information und die Werte aus den Zeilen1004 und1006 beispielsweise von dem Ursprungsanweisungsdienst120 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 Ursprungsanweisungsdienstes120 und der Anwendung108 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 Zeile1008 die Einbeziehung und Identifizierung einer Kategorie des zugrunde liegenden Tutorials, während eine Zeile1010 die Einbeziehung eines Datums des Ursprungs des Tutorials ermöglicht. Eine Zeile1012 stellt die Einbeziehung eines Headertextes, wie er als Headertext1013 dargestellt ist, bereit. Wie gezeigt ist, kann der Text1013 eine Beschreibung des Themas des Tutorials bereitstellen. Eine Zeile1014 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 Zeile1016 stellt einen Identifikator für eine Prozedur „proc_ID“ bereit. Eine Zeile1018 stellt einen Titel des Tutorials „unter Nutzung von Anpassungsschichten“ bereit. Eine Zeile1020 stellt eine Typbezeichnung für das Tutorial, beispielsweise „Tutorial“, bereit. Schließlich stellt im Zusammenhang mit der Headersektion1002 eine Zeile1022 die Einbeziehung einer Quellen-URL des Tutorials bereit. Die Quellen-URL der Zeile1022 kann wiederum zu Zwecken des Verweisens und der Zuweisung (beispielsweise zu Zwecken des urheberrechtlichen Schutzes) beim Implementieren des Systems100 von1 bereitgestellt werden. - Des Weiteren bezeichnet in
10 eine Zeile1024 den Beginn einer Liste von Prozeduren des Tutorials. Eine Sektion1026 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 von5 bis9 bereit. Insbesondere kennzeichnet die Bezeichnung „beliebig“ wie bei dem Beispiel von10 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 Zeile1030 den Namen des ersten beinhalteten Schrittes, während eine Zeile1032 den Schritt als „erforderlich“ oder „nicht erforderlich“ kennzeichnet. Eine Zeile1034 kennzeichnet den Beginn einer Liste von Sätzen innerhalb des Schrittes. - Wie in
10 gezeigt ist, gibt eine Zeile1035 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 mit12 und13 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 Anwendung108 zusammenhängend, worauf bereits im Zusammenhang mit1 und der Kontrastschaltfläche126 der Anzeige114 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 Sektion1038 zeigt, dass mehrere PTF-Objekte im Zusammenhang mit einem gegebenen Schritt und/oder Satz bestimmt werden können. Wie gezeigt ist, verweist die Sektion1038 auf ein mögliches PTF-Objekt im Zusammenhang mit dem Durchführen einer Anpassungshandlung. Eine Zeile1030 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 Sektion1032 auf eine nachfolgende Sektion zum Identifizieren von Objektkandidaten eines Satzes eines nachfolgenden Schrittes, beinhaltend Text des Satzes, auf den verwiesen wird. Eine Zeile1034 stellt eine URL bereit, bei der der Schritt ausfindig zu machen ist / abgerufen werden kann. -
11 ist ein Flussdiagramm1100 zur Darstellung detaillierterer exemplarischer Vorgänge des Systems von4 unter Verweis auf die Beispiele von5 bis10 . Bei dem Beispiel von11 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 Modelltrainer144 kann dafür konfiguriert sein, exemplarische ausgewählte Tutorialwebseiten zum Trainieren des Tutorialmarkierers134 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 Tutorialextraktor136 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-Generator140 von1 kann beispielsweise markierten Tutorialcontent138 entsprechend einem der fünf Strukturmodelle von5 bis9 klassifizieren. Schließlich wird, siehe11 , eine PTF-Datei für das Tutorial generiert (1110 ). Der PTF-Generator140 von1 oder der PTF-Generator418 von4 können beispielsweise dafür konfiguriert sein, die PTF-Datei420 von4 oder die PTF-Datei entsprechend dem Pseudocode von10 zu generieren. -
12 ist ein Blockdiagramm zur Darstellung detaillierterer exemplarischer Implementierungen des Tutorialverwalters132 von1 . Insbesondere zeigt12 detailliertere exemplarische Vorgänge bei dem Merkmalsextraktor146 , dem Merkmalsabbilder148 und dem Anweisungscodegenerator150 von1 im Zusammenhang mit den nachfolgenden Beispielen von2 bis11 . - Insbesondere setzt
12 Beispiele fort, bei denen die Anwendung108 durch die Softwareanwendung „Adobe Photoshop“ und der Ursprungsanweisungsdienst120 durch den Tutorialabspieler „Learn Panel“ von Adobe Photoshop dargestellt werden. Bei diesen Beispielen kann der Anweisungscode122 , wie bereits erwähnt, ein JSON-Objekt (Java Script Object Notation) bezeichnen, das von dem Ursprungsanweisungsdienst120 ausführbar ist. Als Folge dessen wird bei dem Beispiel von12 ein JSON-Objekt1210 erzeugt, das von dem Tutorialabspieler „Photoshop Learn Panel“ ausgeführt werden kann. - In
12 wird die PTF-Datei420 von4 unter Nutzung einer oder mehrerer Listen von Anwendungsmerkmalen der Softwareanwendung „Photoshop“ in den ausführbaren Anweisungscode1210 umgewandelt. Insbesondere kann, wie vorstehend erwähnt und detaillierter im Zusammenhang mit12 dargestellt ist, eine Liste1202 von Menübefehlen/Werkzeugnamen, die aus einer Masterliste, so beispielsweise der Merkmalsliste130 von1 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-Datei420 auf die Liste verwiesen und diese von dem ausführbaren Code1210 verwendet werden. Die Liste1202 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 Merkmalsliste130 , bereitgestellt sind. Stattdessen können derartige Anwendungsmerkmale, wie vorstehend erwähnt und bei dem Beispiel von12 dargestellt ist, heuristisch unter Nutzung einer für natürliche Sprache vorgesehenen Verarbeitung (NLP) und anderer Techniken maschinellen Lernens bestimmt werden. - In
12 wird eine10 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-Generator418 , 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
1208 dafür konfiguriert sein, die PTF-Datei420 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 Hervorheben128 der Kontrastschaltfläche126 in1 . -
13 ist ein Flussdiagramm1300 zur Darstellung detaillierterer exemplarischer Vorgänge des Blockdiagramms von12 . Bei dem Beispiel von13 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 Umwandler1208 von12 kann beispielsweise dafür konfiguriert sein, einen rekursiven Abstiegsalgorithmus (descent algorithm) für den Durchlauf der PTF-Datei420 aufzuführen, bei dem das Parsen bzw. Zerlegen von einem Wurzelknoten zu jedem Blattknoten der PTF-Datei420 voranschreitet, um hierdurch die PTF-Datei420 zu parsen bzw. zu zerlegen / auseinanderzunehmen und diejenigen Abschnitte derselben auszuwählen, die für den betroffenen Ursprungsanweisungsdienst120 (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
1308 ), kann der Umwandler1208 zum Identifizieren und Auswählen einer entsprechenden Erstellungsfunktion der Bibliothek von Erstellungsfunktionen übergehen (1310 ). Ein entsprechendes Codesegment des Anweisungscodes1210 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 Anweisungscodes1210 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 Anweisungsdienstes1210 fort (1306 bis1314 ). Sobald der Durchlauf erledigt ist (1316 ), können die generierten Codebruchstücke benutzt werden, um den ausführbaren Code des Ursprungsanweisungsdienstes1210 zu generieren (1318 ). - Pseudocode
1 zeigt eine exemplarische Logik eines Algorithmus zum Erstellen einer oder mehrerer Aufgaben, die in dem ausführbaren Code des Ursprungsanweisungsdienstes1210 beinhaltet sein sollen. Insbesondere kann, wie in Pseudocode1 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)
- 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.
- 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. - 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. - 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.
- Computerprogrammerzeugnis nach
Anspruch 4 , wobei der eine der mehreren Tutorialschritte einen Identifikator beinhaltet, der das wenigstens eine Anwendungsmerkmal aus einer Liste der Anwendungsmerkmale identifiziert. - 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.
- 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.
- 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. - Computerprogrammerzeugnis nach einem der vorhergehenden Ansprüche, wobei das wenigstens eine Anwendungsmerkmal ein Werkzeug oder eine Handlungsfunktion der Softwareanwendung beinhaltet.
- 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.
- 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.
- 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. - Verfahren nach
Anspruch 11 oder12 , 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. - 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. - 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.
- 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. - 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. - System nach einem der
Ansprüche 15 bis17 , 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. - System nach einem der
Ansprüche 15 bis18 , 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. - System nach einem der
Ansprüche 15 bis19 , 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.
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)
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)
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 |
-
2018
- 2018-03-19 US US15/925,259 patent/US10769738B2/en active Active
- 2018-10-23 CN CN201811236758.XA patent/CN110286967A/zh active Pending
- 2018-10-24 DE DE102018008377.3A patent/DE102018008377A1/de active Pending
- 2018-10-29 AU AU2018253637A patent/AU2018253637B2/en active Active
- 2018-11-02 GB GB1817945.7A patent/GB2572234A/en not_active Withdrawn
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 |