DE112018002208T5 - System und Verfahren zum Zuordnen von Stilattributen - Google Patents

System und Verfahren zum Zuordnen von Stilattributen Download PDF

Info

Publication number
DE112018002208T5
DE112018002208T5 DE112018002208.0T DE112018002208T DE112018002208T5 DE 112018002208 T5 DE112018002208 T5 DE 112018002208T5 DE 112018002208 T DE112018002208 T DE 112018002208T DE 112018002208 T5 DE112018002208 T5 DE 112018002208T5
Authority
DE
Germany
Prior art keywords
design
style
search
search result
search results
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112018002208.0T
Other languages
English (en)
Inventor
Malanie Joy Perkins
Michael Hebron
Robert Hazlewood
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canva Pty Ltd
Original Assignee
Canva Pty Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canva Pty Ltd filed Critical Canva Pty Ltd
Publication of DE112018002208T5 publication Critical patent/DE112018002208T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9538Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/53Querying
    • G06F16/532Query formulation, e.g. graphical querying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/53Querying
    • G06F16/538Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/58Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Library & Information Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Processing Or Creating Images (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)

Abstract

Ein Verfahren weist auf, bei einem Prozessor einer Computervorrichtung eine erste Suchanfrage während des Editierens eines Designs zu empfangen, wobei die erste Suchanfrage zumindest einen ersten Suchausdruck aufweist. Das Verfahren weist auch auf, zumindest ein Stilattribut zu identifizieren, welches mit dem Design assoziiert ist, und mindestens eine Datenbank basierend auf dem ersten Suchausdruck, dem mindestens einen Stilattribut oder einer Kombination davon zu durchsuchen, um Suchergebnisse zu erzeugen. Das Verfahren weist weiter auf, die Suchergebnisse auszugeben. Ein erstes Suchergebnis der Suchergebnisse wird höher im Rang angeordnet als ein zweites Suchergebnis der Suchergebnisse, und zwar basierend auf einer Bestimmung, dass das erste Suchergebnis besser zu dem mindestens einen Stilattribut passt, welches mit dem Design assoziiert ist, als das zweite Suchergebnis.

Description

  • QUERBEZUG ZU VERWANDTEN ANMELDUNGEN
  • Die vorliegende Anmeldung beansprucht die Rechte der US-Patentanmeldung 15/499698 , die am 27. April 2017 eingereicht wurde, deren gesamte Inhalte hier durch Bezugnahme mitaufgenommen sind.
  • HINTERGRUND
  • Auf Grund der gestiegenen Popularität und Verfügbarkeit des Internets haben Nutzer Zugang zu viel mehr Medieninhalt als zuvor. Dies hat große Vorrats- bzw. Bestandsbilddatenbanken zur Folge gehabt, die für Nutzer verfügbar sind, so dass die Nutzer Archiv- bzw. Vorratsbilder zur Verwendung in ihren eigenen Grafikdesigns auswählen können. Weil solche Datenbanken jedoch groß sein können (beispielsweise Hunderte von Millionen Bilder oder mehr aufweisen können), kann es schwierig und zeitaufwendig für einen Nutzer sein, die Datenbanken zu durchsuchen, um Suchergebnisse (beispielsweise Bilder) zu finden, die von Interesse sind. Folglich verwenden Nutzer eine zunehmende Zeitdauer zum Durchsuchen und Durchstöbern von Online-Datenbanken, um Bilder zu identifizieren, die von Interesse sind (beispielsweise zur Verwendung in einem speziellen Grafikdesign geeignet sind).
  • Figurenliste
    • 1 veranschaulicht ein spezielles Beispiel eines Systems, welches betreibbar ist, um Stilattribute eines Designs zu Stilattributen von Suchergebnissen zuzuordnen, um Suchergebnisse von Interesse zu identifizieren;
    • 2 veranschaulicht ein erstes spezielles Beispiel von Stilattributen, die mit einem Design assoziiert sind;
    • 3 veranschaulicht ein zweites spezielles Beispiel von Stilattributen, die mit einem Design assoziiert sind;
    • 4 veranschaulicht ein spezielles Beispiel, welches Suchergebnisse basierend auf dem Zuweisen von Stilattributen präsentiert;
    • 5 veranschaulicht ein spezielles Beispiel eines Verfahrens zum Zuordnen von Stilattributen eines Designs und Stilattributen von Suchergebnissen zum Identifizieren von Suchergebnissen von Interesse;
    • 6 veranschaulicht ein weiteres spezielles Beispiel eines Verfahrens zum Zuordnen von Stilattributen;
    • 7 veranschaulicht ein drittes spezielles Beispiel von Stilattributen, die mit einem Design assoziiert sind;
    • 8 veranschaulicht ein weiteres spezielles Beispiel eines Systems, welches betreibbar ist, um Stilattribute eines Designs und Stilattribute von Suchergebnissen zuzuordnen, um Suchergebnisse von Interesse zu identifizieren; und
    • 9 veranschaulicht ein weiteres spezielles Beispiel eines Verfahrens zum Zuordnen von Stilattributen eines Designs und Stilattributen von Suchergebnissen, um Suchergebnisse von Interesse zu identifizieren.
  • DETAILLIERTE BESCHREIBUNG
  • Systeme und Verfahren zum Zuordnen von Stilattributen werden offenbart. „Stilattribut“, so wie es hier verwendet wird, kann einen visuellen Aspekt eines per Computer erstellten bzw. computergestützten Designs beschreiben. Ein Stilattribut kann alternativ als „Stilvektor“ bezeichnet werden. Ein „Design“, so wie es hier verwendet wird, kann einen Bildinhalt (beispielsweise im Vektorformat oder im Pixel-Format), Textinhalt, Formatierungsinformation (beispielsweise Farben, Schriftarten usw.) aufweisen. Wenn ein Design einen schwarzen Hintergrund und ein Foto eines weißen Sportwagens im Vordergrund aufweist, können zur Veranschaulichung die Stilattribute für dieses Design „schwarz“, „weiß“, „Sportwagen“, „monochrom“ usw. aufweisen, und zwar als illustrative nichteinschränkende Beispiele. In einigen Aspekten können Stilattribute nicht visuelle Schlüsselwörter aufweisen, die mit Elementen in dem Design assoziiert sind (beispielsweise können die Stilattribute für das Design, welches den Sportwagen enthält, „schnell“ aufweisen). In Übereinstimmung mit den beschriebenen Techniken können, wenn ein Nutzer (der kein Grafikdesigner oder anderer Fachmann für visuelle Künste sein kann) eine computergestützte Suche nach Medieninhalt zum Hinzufügen zu dem Design ausführt, Suchergebnisse für den Nutzer dargestellt werden, so dass Bilder mit Stilattributen, die im Allgemeinen zu den Stilattributen des Designs passen, einen höheren Rang bekommen. Zur Veranschaulichung können, wenn der Nutzer nach einem Bild eines Motorrades sucht, um dieses zu dem Design hinzuzufügen, welches den weißen Sportwagen auf einem schwarzen Hintergrund aufweist, dann Bilder von weißen Motorrädern einen höheren Rang bekommen als Bilder von Motorrädern in anderen Farben. Alternativ oder zusätzlich können Bilder von Sportmotorrädern einen höheren Rang bekommen als Bilder von Motorrädern des Cruiser-Typs oder des Scooter- bzw. Roller-Typs. Obwohl verschiedene Beschreibungen hier sich auf eine „Bildsuche“ beziehen können, sei bemerkt, dass die Techniken der vorliegenden Offenbarung bei verschiedenen Medientypen verwendet werden können, was Bilder, Schriftarten und andere Arten von visuellem Medieninhalt einschließt, jedoch nicht auf diese eingeschränkt ist.
  • Bei speziellen Aspekten kann das Zuordnen von Stilattributen unter Verwendung eines „Stildokumentes“ ausgeführt werden, welches für ein Design erzeugt und aufrechterhalten bzw. gespeichert wird, wobei das Stildokument Stilattribute des Designs aufweist. Das Stildokument kann automatisch aktualisiert werden, wenn der Nutzer das Design modifiziert, wie beispielsweise, wenn der Nutzer ein Element zu dem Design hinzufügt, ein Element von dem Design entfernt oder ein Element in dem Design editiert. Das Stildokument kann (beispielsweise in einem Cloud-Server oder einer Datenspeichervorrichtung) als Teil des Designs gespeichert sein oder kann separat von dem Design gespeichert sein. Bei solchen Aspekten kann, wenn der Nutzer eine Bildsuche nach „Motorrad“ ausführt, das ganze Stildokument oder ein Teil des Stildokumentes an die Suchanfrage angehängt werden, so dass die Stilattribute in dem Stildokument mit den Stilattributen der Suchergebnisse verglichen werden können.
  • Es sei bemerkt, dass das automatische Zuordnen von Stilattributen, so wie es hier beschrieben wird, schnellere Designprozesse und eine intuitivere Nutzererfahrung ermöglichen kann. Wenn beispielsweise Suchergebnisse, welche zu den Stilattributen eines im Verfahren befindlichen Designs passen, priorisiert werden, kann es einem Nutzer möglich sein, relevante Bilder, Schriftarten, Layouts usw. schneller zu finden (beispielsweise muss der Nutzer möglicherweise nicht durch eine große Anzahl von Suchergebnissen scrollen bzw. streifen, bevor er ein Bild eines weißen Sportmotorrades findet). Zusätzliche veranschaulichende nicht einschränkende Vorteile der vorliegenden Offenbarung werden hier beschrieben.
  • In der folgenden Beschreibung werden Ausführungsbeispiele der vorliegenden Offenbarung in Verbindung mit einer Website für Grafikdesign beschrieben, die es Nutzern ermöglicht, Designs unter Verwendung von Web- bzw. Internetanwendung(en) oder unter Verwendung von anderen SaaS-Komponenten (SaaS = Software as a Service = als Dienst bereitgestelltes Programm) zu erzeugen. Beispiele von Grafikdesigns weisen Folgendes auf, sind jedoch nicht darauf eingeschränkt: Posts bzw. Veröffentlichungen in sozialen Medien oder Überschriften, Präsentationen, Briefköpfe, Zeitschriften, Layouts, Zertifikate, Resümees bzw. Zusammenfassungen, Flyer bzw. Broschüren, Buch/Album-Einbände oder -Kunstwerke, Infografiken, Flyer bzw. Flugblätter, Poster bzw. Plakate, Menus, Visitenkarten, Broschüren, Logos, Grußkarten, Postkarten, Einladungen, Kollagen, Ankündigungen, Blog- bzw. Tagebuchgrafiken, Internet-Werbung, Videos, Animationen usw. Bei einigen Beispielen kann auf die Website durch Verwendung von Internet-Browsern und/oder einer Anwendung zugegriffen werden, die auf einem Mobilgerät installiert ist, wie beispielsweise auf einem Mobiltelefon oder einem Tablet. Außer wenn dies anders gesagt wird, weist die Bezugnahme auf die „Website“ hier auf die Grafikdesign-Web-Anwendung(en)/SaaS-Komponente(n) auf, welche über die Website zugänglich ist. Die Verwendung der Website zur Erzeugung von Designs kann schneller und/oder bequemer sein als die Verwendung eines alleinstehenden heruntergeladenen/gekauften Software-Programms. Es sei jedoch bemerkt, dass die Beschreibung von Websitebasierten Ausführungsbeispielen hier nur zur Veranschaulichung ist und nicht als einschränkend angesehen werden soll. Bei alternativen Ausführungen können die Techniken der vorliegenden Offenbarung im Zusammenhang mit einer alleinstehenden Computeranwendung angewendet werden, welche auf einem Desktop-Computer, einem Laptop-Computer, einem Mobilgerät usw. ausgeführt wird.
  • Wenn ein Nutzer ein neues Design auf der Website erzeugt, kann der Nutzer mit einem leeren Design starten oder kann von einer Designvorlage starten, die ein zuvor angewendetes Layout hat. Wie hier verwendet, weist ein „Layout“ eine voreingestellte Vorlage von Bildern, Farben und/oder Schriftarten auf. Beispielsweise kann die Grafikdesign-Website Zugang zu mehreren Layouts für „Urlaubsgrußkarten“ vorsehen, und der Nutzer kann eines der Layouts als Startpunkt auswählen, von wo er seine eigene Urlaubsgrußkarte zuschneiden kann, und zwar durch Hochladen von Fotos seiner eigenen Familie, durch Eingeben einer personalisierten Grußnachricht, durch Ändern der Bilder/Schriftarten/Farben, die in dem zuvor angewendeten Layout enthalten sind, usw.
  • Um eine besser verständliche Erfahrung beim Design vorzusehen, kann die Website es dem Nutzer ermöglichen, nach Bildern, Layouts, Schriftarten usw. zu suchen, wie oben beschrieben. Zur Veranschaulichung kann der Nutzer den Suchausdruck „Hund“ eingeben, um nach Bestands-bzw. Archivbildern von Hunden zu suchen, die in ein Design eingefügt werden können, nach zuvor existierenden Layouts, welche Bilder und/oder Text über Hunde enthalten, nach zuvor gespeicherten Designs (von diesem Nutzer oder von anderen Nutzern), in denen Hunde enthalten sind, oder nach irgendeiner Kombination davon. Das Einbinden eines Suchergebnisbildes (beispielsweise eines Fotos eines Hundes) in ein Design kann einfach das „Ziehen-und Ablegen“ (drag-and-drop) des Bildes in dem Design sein, wobei an diesem Punkt es dem Nutzer freistehen kann, das Bild bezüglich Größe, Farbe usw. zu editieren. Gewisse Medienelemente (beispielsweise Bilder, Layouts, Schriftarten usw.) können frei in Designs eingefügt werden, während andere für einen Preis verfügbar sein können oder eine assoziierte Lizenz haben können (beispielsweise eine Lizenz zur einmaligen Nutzung), welche von der Website durchgesetzt wird.
  • Ein illustratives Beispiel des Systems, welches einen Betrieb, wie beispielsweise den einer Website, unterstützt, und welches betreibbar ist, um Stilattribute zuzuordnen, ist in 1 gezeigt und wird allgemein mit 100 bezeichnet. Das System 100 weist eine Berechnungs- bzw. Computervorrichtung 110 auf, welche in kommunizierender Weise mit einem Server 120 gekoppelt ist. Die Computervorrichtung 110 ist konfiguriert, um durch einen Nutzer 102 betätigt zu werden. Wie weiter hier beschrieben wird, kann es das System 100 dem Nutzer ermöglichen, in schneller und einfacher Weise verschiedene Formen von Grafikdesigns und anderen Arbeiten visueller Medien zu erzeugen und zu editieren, auch wenn der Nutzer 102 kein gelernter Grafikdesigner oder anderer Fachmann für visuelle Künste ist. In einigen Beispielen ist der Server 120 in einer durch ein Netzwerk zugänglichen Cloud-Computing-Umgebung 122 enthalten, welche einen oder mehrere andere Server 124 und/oder eine oder mehrere Datenbanken, Datenspeicher und/oder Datenspeichergeräte 126 aufweist.
  • Bei speziellen Aspekten entspricht die Computervorrichtung 110 einem Desktop-Computer, einem Laptop-Computer, einem Mobiltelefon, einem Tablet oder einer anderen Computervorrichtung, die konfiguriert ist, um über das Internet auf Webseiten zuzugreifen. Die Computervorrichtung 110 kann eine oder mehrere Eingabevorrichtungen (beispielsweise eine Tastatur, eine Maus, einen Touchscreen bzw. berührungsempfindlichen Bildschirm usw.) und eine oder mehrere Ausgabevorrichtungen (beispielsweise einen Monitor, einen berührungsempfindlichen Bildschirm, Lautsprecher, eine Kopfhörerverbindung usw.) aufweisen (oder kann mit diesen verbunden sein).
  • Bei speziellen Aspekten können die Computervorrichtung 110, der Server 120, der eine oder die mehreren anderen Server 124 und die eine oder die mehreren Datenbanken, Datenspeicher und/oder Datenspeichergeräte 126 einen oder mehrere Prozessoren oder Verarbeitungslogik, Speicher und/oder Netzwerkschnittstellen aufweisen. Die Speicher können Instruktionen aufweisen, welche durch die Prozessoren ausgeführt werden können, um verschiedene Funktionen auszuführen, wie hier beschrieben. Die Netzwerkschnittstellen können drahtgebundene und/oder drahtlose Schnittstellen aufweisen, die betreibbar sind, um eine Kommunikation mit lokalen Netzwerken bzw. LANs (LAN = Local Area Network) und/oder mit Fernnetzwerken bzw. WANs (WAN = Wide Area Network) zu ermöglichen, wie beispielsweise mit dem Internet.
  • Während des Betriebs kann der Nutzer 102 die Computervorrichtung 110 betätigen, um auf eine Website 130 zuzugreifen, wie beispielsweise auf eine Grafikdesign-Website, und zwar über den Server 120. Die Website 130 kann es dem Nutzer ermöglichen, ein Design 140 unter Verwendung einer Web-Anwendung (mehrere Webanwendungen) und/oder SaaS-Komponenten (SaaS = Software as a Service) zu erzeugen und zu modifizieren, welche von der Website 130 dargeboten werden. Im Beispiel der 1 weist die Website 130 eine Option 131 auf, um nach Bildern zu suchen, welche zu dem Design 140 hinzugefügt werden können, eine Option 132 zum Durchstöbern von Layouts, welche auf das Design 140 angewendet werden können, eine Option 133 zum Durchstöbern von grafischen Elementen (beispielsweise Gittern, Rahmen, Formen, Linien, Icons bzw. Bildchen, Charts bzw. Diagrammen usw.), die zu dem Design 140 hinzugefügt werden können, eine Option 134 zum Durchstöbern von Textelementen, die zu dem Design 140 hinzugefügt werden können, eine Option 135 zum Durchstöbern von Hintergrundfarben und Hintergrundmustern, die zu dem Design 140 hinzugefügt werden können, und eine Option 136 zum Durchstöbern von Content bzw. Inhalten, den der Nutzer 102 zuvor hochgeladen hat.
  • Die Website 130 weist auch ein Textfeld auf, um eine Suchanfrage 137 einzugeben. In dem veranschaulichten Beispiel hat der Nutzer „Hund“ in das Textfeld eingegeben, was die Anzeige von verschiedenen Suchergebnissen 138 zur Folge hat, d.h. Bilder von Hunden. Einige der Suchergebnisse 138 haben eine assoziierte Preisinformation (beispielsweise „$1 USD“), was anzeigt, dass das entsprechende Bild in einem veröffentlichten Design für eine Lizenzgebühr zur einmaligen Nutzung verwendet werden kann. In dem veranschaulichten Beispiel hat der Nutzer 102 eines der Suchergebnisse 138, nämlich einen Hund, der einen Schal trägt, zu dem Design 140 hinzugefügt, wie bei 141 gezeigt. Das hinzugefügte Suchergebnis war nahe dem unteren Teil der Suchergebnisse, wie durch einen Scroll- bzw. Seitenpositionsindikator 142 angezeigt. Die Website 130 kann ermöglichen, dass die Kolorierung des Bildes angepasst wird (wie bei 139 gezeigt), weiter die Größe des Bildes (beispielsweise unter Verwendung von einem von vier Ankerpunkten 143) und die Drehorientierung des Bildes (beispielsweise unter Verwendung eines Drehankerpunktes 144). Die Website kann auch das horizontale oder vertikale Klappen des Bildes ermöglichen, wie bei 145 gezeigt. Obwohl eine spezielle Funktionalität für das Grafikdesign in 1 veranschaulicht wird, sei bemerkt, dass die gezeigte spezielle Funktionalität nicht als einschränkend angesehen wird. Bei verschiedenen Aspekten kann die Website 130 zumindest eine Grafikdesign-Funktion ermöglichen, die allgemein in einer alleinstehenden Grafikdesign-Anwendung zu finden ist, obwohl bemerkt sei, dass die Website 130 genauso eine andere Funktionalität ermöglichen kann.
  • Bei einem speziellen Aspekt ermöglicht die Website 130 ein automatisches Zuordnen von Stilattributen, wie weiter mit Bezugnahme auf die 2-5 beschrieben wird. Beispielsweise veranschaulicht die 2, das Design 140 zu Beginn eines Grafikdesign-Prozesses, d.h. das Design 140 ist leer. In einem alternativen Beispiel kann das Design 140 zu Beginn des Grafikdesign-Prozesses nicht leer sein (beispielsweise, weil der Beginn des Grafikdesign-Prozesses dem Öffnen eines zuvor gespeicherten Designs zum weiteren Editieren entspricht). Jedes Design, welches über die Website 130 erzeugt/editiert wurde, kann mit einem Stildokument assoziiert sein, welches die verschiedenen Stilattribute des Designs 140 auflistet. Zur Veranschaulichung kann, wenn das Design 140 leer ist, ein assoziiertes Stildokument 210 voreingestellte Designstilattribute auflisten, wie beispielsweise „weißer Hintergrund“.
  • Das Stildokument 210 kann automatisch aktualisiert werden, wenn das Design 140 aktualisiert wird. Beispielsweise kann das Stildokument 210 aktualisiert werden, wenn ein Element zu dem Design hinzugefügt wird, wenn ein Element von dem Design entfernt wird, und wenn ein Element in dem Design modifiziert wird, wie genauer mit Bezugnahme auf 9 beschrieben wird.
  • In einigen Beispielen ist das Design 140 als eine digitale Datei gespeichert, und das Stildokument 210 ist als Teil der digitalen Datei (beispielsweise als Metadaten) gespeichert. Bei alternativen Beispielen ist das Stildokument 210 separat von dem Design 140 gespeichert und ist separat zugänglich. Es sei bemerkt, dass die Fähigkeit, auf das Stildokument 210 separat von dem Design 140 zuzugreifen, einen schnellen Suchvorgang von mehreren Stildokumenten ermöglichen kann, ohne dass man die assoziierten Designdateien laden muss (welche viel größer sein können). Bei einem speziellen Aspekt ist das Stildokument 210 als XML-Daten (XML = Extensible Markup Language) gespeichert. In einigen Beispielen sieht das Stildokument 210 eine Struktur vor, um Designs zu beschreiben, welche formatierten Text und Grafiken kombinieren. Das Stildokument 210 kann eine effiziente Repräsentation von sowohl semantischem als auch stilistischem Inhalt eines Designs ermöglichen. In einer veranschaulichenden Ausführung kann ein Stilvektor als eine n-dimensionale Bit-Abfolge dargestellt werden, welche den stilistischen und semantischen Inhalt eines Designs darstellt. Stilvektoren können deterministisch aus Designs berechnet werden, und können verwendet werden, um die stilistische Ähnlichkeit zwischen zwei Designs zu vergleichen, beispielsweise durch Berechnung der „Editierungsdistanz“ zwischen den entsprechenden Stilvektoren der zwei Designs. Durch Darstellen von Stilvektoren als Bit-Abfolgen können somit Systeme und Verfahren der vorliegenden Offenbarung einen schnelleren Stilvergleich beim Suchen nach bezüglich des Stils übereinstimmenden Bildern ermöglichen. Weil die Stilvektor-Bit-Abfolgen separat von den entsprechenden Design-Dokumenten/Dateien gespeichert, aufgerufen und verarbeitet werden können, kann darüber hinaus eine Gesamtspeichernutzung, die in dem stilbasierten Suchprozess eingebunden ist, verringert werden.
  • Mit Bezugnahme auf 3 kann das Stildokument 210 aktualisiert werden, wenn das Bild des Hundes, der einen Schal trägt, zu dem Design hinzugefügt wird. Beispielsweise kann das Stildokument 210 zusätzlich zu „weißer Hintergrund“ Stilattribute des Bildes aufweisen, wie beispielsweise Schlüsselwörter, Farbe, Größe usw. In dem veranschaulichten Beispiel weist das Stildokument 210 Folgendes auf: „Hund“, „Schal“, „stehend“, „weiß“, „mittelgrau“, „schwarz“, „Vorderansicht“, „Augen geschlossen“, lächeln'' und „2,44 Inch Breite × 4,30 Inch Höhe. Bei einigen Beispielen können auch Identifikatoren (IDs) der Bilder in dem Design in dem Stildokument enthalten sein. Zur Veranschaulichung kann das Bild des Hundes, der den Schal trägt, Teil einer Archivbibliothek „Schal tragende Tiere“ sein und ein enthaltender ID bzw. Identifikator des Bildes in dem Stildokument 210 kann zum Identifizieren von zusätzlichen Bildern in der Bibliothek „Schal tragende Tiere“ führen, beispielsweise weil alle Bilder in der Bibliothek IDs haben, die mit der gleichen alphanumerischen Abfolge beginnen. In einigen Beispielen kann das grafische Element (können die grafischen Elemente) des Designs selbst Stilvektoren sein. Zur Veranschaulichung können grafische Elemente in eine bildbasierte Suche oder Rückwärtsbildsuche eingegeben werden, wie beispielsweise zur Farbübereinstimmung bzw. zum Colour-Matching.
  • Es sei bemerkt, dass die verschiedenen Beispiele von Stilattributen, die hier aufgelistet sind und in den Zeichnungen gezeigt sind, nur zu veranschaulichenden Zwecken sind und nicht als einschränkend angesehen werden sollen. Zusätzliche Beispiels von Stilattributen weisen Folgendes auf, sind jedoch nicht darauf eingeschränkt: Anzahl der Farben, Farbpalette, Farben der Linien, Liniendicke, Anzahl der Linien, Anzahl der Kanten, Abwesenheit/Anwesenheit eines Gradienten, Schriftstil, Verhältnis von transparenten zu vollfarbigen Pixeln, Anwesenheit/Abwesenheit von vollen (beispielsweise gefüllten) Objekten gegenüber Linienobjekten/Drahtrahmenobjekten, Verwendung von Vektor gegenüber Pixel/Rasterbildern, Umrisse, Umrissfarbe, Information bezüglich eines Autors oder eines Beitragenden eines Bildes, subjektive Information (beispielsweise „Stimmung“ des Bildes) usw.
  • Die Stilattribute in dem Stildokument 210 können dynamisch aktualisiert werden, wenn der Nutzer das Bild des Hundes modifiziert. Wenn beispielsweise der Nutzer die Farbe des Schals zu Rot ändert, kann das ,Stildokument 210 „rot“ anstelle von „mittelgrau“ aufweisen. Es sei bemerkt, dass, obwohl Farbinformation in dem veranschaulichten Beispiel unter Verwendung von Worten dargestellt wird, in alternativen Beispielen die Farben unter Verwendung von Nummern dargestellt werden können (beispielsweise hexadezimale Werte, #FFFFFF für weiß, #000000 für schwarz usw.). Geometrische Information kann in einigen Beispielen in alternativen Einheiten dargestellt werden (beispielsweise Pixel anstelle von Inch). Bei einigen Ausführungen können die Stilattribute Schlüsselwörter aufweisen, die nicht visuell wahrnehmbar sind. Beispielsweise können die Stilattribute für ein Bild eines Sportwagens „schnell“ aufweisen. Beispiele dafür, wie Stilattribute bestimmt werden können, werden weiter im Folgenden beschrieben.
  • Mit Bezugnahme auf 4 kann der Nutzer 102 während des Editierens des Designs 140 nach einem weiteren Bild zum Hinzufügen zu dem Design 140 suchen. Beispielsweise kann der Nutzer 102 nach einem Bild einer Katze suchen. In Übereinstimmung mit der vorliegenden Offenbarung können die Suchergebnisse, die durch eine solche Suche erzeugt werden, Bilder, die besser zu dem Stilattribut (den Stilattributen) passen, das bzw. die in dem Stildokument 210 aufgelistet sind, automatisch höher im Rang einordnen als andere Bilder. Beispielsweise können, wie in 4 gezeigt, Bilder von stehenden Katzen, welche Schals tragen, automatisch höher in der Rangfolge angeordnet sein als andere Bilder von Katzen. Es wird klar sein, dass das Priorisieren von Suchergebnissen, die „stilistisch ähnlich“ zu Elementen sind, die schon in dem Design 140 vorhanden sind, schnellere Designprozesse und eine intuitivere Nutzererfahrung ermöglichen kann, und zwar beispielsweise weil ein Nutzer nicht durch eine große Anzahl von Suchergebnissen scrollen bzw. rollen muss, um ein relevantes Bild zu finden.
  • Bei speziellen Aspekten können die Systeme und Verfahren der vorliegenden Offenbarung somit Stilattribute eines Designs mit Stilattributen von Medienelementen (beispielsweise Bildern in einer Bibliothek oder Datenbank vergleichen). Wie oben beschrieben, können die Stilattribute für ein Design dynamisch bestimmt werden und in einem Stildokument gespeichert werden, wenn das Design modifiziert wird. Bei einigen Beispielen können die Stilattribute, die mit den Medienelementen in der Bibliothek/Datenbank assoziiert sind, manuell eingegeben werden (beispielsweise durch Personal, welches mit der Grafikdesign-Website 130 assoziiert ist). Bei anderen Beispielen können die Stilattribute, die mit den Medienelementen assoziiert sind, automatisch bestimmt werden. Beispielsweise können Stilattribute automatisch unter Verwendung von Computererkennungsalgorithmen bestimmt werden. Als ein weiteres Beispiel können Stilattribute durch Klassifikatoren basierend auf neuralen Netzwerken bestimmt werden. Beispielsweise können alle Medienelemente oder ein Teil der Medienelemente in der Bibliothek/Datenbank als ein Trainingssatz für ein neurales Netzwerk verwendet werden, und der Rest der Medienelemente in der Bibliothek/Datenbank und neue hochgeladene Medienelemente können automatisch durch das neurale Netzwerk klassifiziert werden.
  • Gemäß einem ersten Beispiel des Betriebs des Systems 100 der 1 kann eine erste Suchanfrageeingabe durch den Nutzer 102 automatisch unter Verwendung eines gesamten Stildokuments oder eines Teils eines Stildokumentes verbessert werden. Zur Veranschaulichung kann eine erste Suchanfrage „Katze“, die von einem Nutzer eingegeben wird, basierend auf dem Stildokument 210 verbessert werden, was eine zweite (verbesserte) Suchanfrage „Katze; Details = Schal, stehend, Augen geschlossen, Lächeln; Farben = weiß, mittelgrau, schwarz; Ansicht = Frontansicht; Größe = 2,44x4,30“, zur Folge hat, wie in 5 gezeigt.
  • Das Durchsuchen von verfügbaren Bibliotheken/Datenbanken unter Verwendung der verbesserten Suchanfrage kann Suchergebnisse liefern, die besser zu dem allgemeinen Stil des Designs 140 passen. Beispielsweise können Suchergebnisse, die zu einer größeren Anzahl von Ausdrücken in der verbesserten Suchanfrage passen, einen höheren Rang erhalten als die Suchergebnisse, die zu einer geringeren Anzahl von Ausdrücken in der verbesserten Suchanfrage passen. Zur Veranschaulichung hat, wie in 5 gezeigt, das Bild der Katze, die einen Schal trägt, acht Stilattribute, die zu der zweiten Suchanfrage passen, während das Bild der boxenden Katze drei Stilattribute hat, die zu der zweiten Suchanfrage passen. Folglich kann bestimmt werden, dass das Bild der Katze, die einen Schal trägt, besser zu dem Stildokument 210 (und zum Design 140) passt als das Bild der boxenden Katze und es kann daher einen höheren Rang bekommen, wie in 4 gezeigt.
  • In einem speziellen Beispiel kann das Bestimmen, ob die „Größen“ eines Bildes passen äquivalent zu der Bestimmung sein, ob die Bildseitenverhältnisse innerhalb eines Schwellenbereiches (beispielsweise 10%) zueinander sind, weil Vektorgrafiken auf der Website 130 verfügbar sein können. Mit Bezug auf 5 weist die zweite (verbesserte) Suchanfrage beispielsweise eine Größe von 2,44 x 4,30 auf, was gleich einem Seitenverhältnis von 2,44/4,30 = 0,57 ist. Die Seitenverhältnisse der Suchergebnisse sind 3,49/4,30 = 0,81 bzw. 1,03/1,12 = 0,91. Weil 0,81 und 0,91 beide außerhalb von 0,57 +/- 10% sind, passt möglicherweise keines der Suchergebnisse zu der Bildgröße, die von der Suchanfrage spezifiziert wurde.
  • Gemäß einem zweiten Beispiel des Betriebs des Systems 100 der 1, kann die Suche verbessert werden, wie mit Bezug auf 5 beschrieben, jedoch kann eine Hash-Funktion anstelle des Ausführens eines Vergleichs von Attribut zu Attribut verwendet werden. Beispielsweise kann mit Bezug auf 6 ein erster Hash-Wert H1 basierend auf den Stilattributen erzeugt werden, die mit dem ersten Suchergebnis (dem Bild der Katze, die den Schal trägt) assoziiert sind, und ein zweiter Hash-Wert H2 kann basierend auf den Stilattributen erzeugt werden, die mit dem zweiten Suchergebnis (dem Bild der boxenden Katze) assoziiert sind. Ein dritter Hash-Wert (H3) kann basierend auf dem Stilattribut (den Stilattributen) des Designs erzeugt werden, wie beispielsweise basierend auf der zweiten (verbesserten) Suchanfrage. Jeder der Hash-Werte H1, H2 und H3 kann eine numerische Größe sein, die verglichen werden kann. In dem veranschaulichten Beispiel kann die „Distanz“ zwischen H1 und H3 (beispielsweise der absolute Wert der Differenz zwischen H1 und H3) geringer sein als die Distanz zwischen H2 und H3, was anzeigt, dass das Bild der Katze, welche den Schal trägt, besser zu dem Stil des Designs 140 passt. Somit kann das Bild der Katze, die den Schal trägt, einen höheren Rang erhalten als das Bild der boxenden Katze, wie in 4 gezeigt.
  • Es sei bemerkt, dass eine Zuordnung bzw. Übereinstimmung von Stilen nicht nur auf einer Basis von gleich zu gleich ausgeführt werden kann. In einigen Beispielen können gewisse Stilvektoren stilistisch mit anderen Elementen, beispielswiese „Hintergründen“ in Übereinstimmung gebracht werden. Wenn ein Nutzer nur einen schwarzen Hintergrund bei einem Design angewendet hat, kann zur Veranschaulichung eine Suche Ergebnisse identifizieren, die komplementär zu dem schwarzen Hintergrund sind. Zur Veranschaulichung wären Bilder, die weiß oder gelb sind, einen Kontrast zu dem schwarzen Hintergrund bilden und könnten daher einen höheren Rang erhalten als Bilder mit einer Farbe, die kaum von dem schwarzen Hintergrund zu sehen wäre, wie beispielsweise dunkelblau.
  • Die 5 und 6 veranschaulichen Beispiele des Betriebs, bei denen eine Suchanfrage, die durch einen Nutzer vorgesehen wird, automatisch basierend auf Stilattributen verbessert wird, die mit einem Design assoziiert sind. In anderen Beispielen kann die Suchanfrage nicht verbessert werden. Stattdessen können Suchergebnisse basierend auf der vom Nutzer gelieferten Anfrage aufgerufen werden, und die Stilattribute, die mit dem Design assoziiert sind, können darauffolgend verwendet werden, um die Suchergebnisse im Rang einzuordnen, wo eine solche Rangordnung basierend auf einer Übereinstimmung von Attribut-zu-Attribut basiert, wie mit Bezugnahme auf 5 beschrieben, oder basierend auf einem Hash-Wert, wie mit Bezug auf 6 beschrieben.
  • Weiter bei 7 hat der Nutzer 102 das Bild der Katze, die den Schal trägt, zum Design 140 hinzugefügt. Als eine Folge weist das Stildokument nun die Stilattribute des Bildes des den Schal tragenden Hundes (wie in 3) auf, und weist auch die Stilattribute auf, die mit dem Bild der den Schal tragenden Katze assoziiert sind. Wenn der Nutzer 102 eine weitere Suche ausführen würde, wie beispielsweise bezüglich eines Vogels, könnten Stilattribute von beiden Bildern in dem Design 140 verwendet werden, um Bilder von Vögeln zu identifizieren, die stilistisch ähnlich dem Design sind (beispielsweise die einen Schal tragen).
  • Die 1-7 veranschaulichen somit verschiedene Aspekte des Zuordnens von Stilattributen während eines Grafikdesign-Prozesses. Das Zuordnen von Stilattributen, wie beispielsweise beim Erzeugen und/oder Priorisieren von Suchergebnissen, kann schnellere Designprozesse ermöglichen und kann eine intuitivere Nutzererfahrung vorsehen. Beispielsweise kann Zeit, die für das Scrollen durch Suchergebnisse verwendet wird, um Bilder von Interesse zu finden, verringert werden.
  • Bei einigen Aspekten kann Maschinenlernen bei dem System 100 verwendet werden. Als ein erstes Beispiel können stilistische Merkmale, die ein Nutzer mag, verwendet, über denen er schwebt, auf die er klickt, die er veröffentlicht usw. verfolgt werden und können in nachfolgenden Vorschlägen oder Suchergebnissen hervorgehoben werden. Wenn beispielsweise ein Nutzer nach einem Hund sucht und einen Verlauf der Verwendung von Zeichnungen mit monochromen Linien hat, dann können Zeichnungen mit monochromen Linien von Hunden in den Suchergebnissen priorisiert werden. Bei einigen Beispielen können Nutzer während einer Registrierung oder während eines Einstiegsprozesses gebeten werden, auszuwählen, welche Illustrationen von einem Satz ihre Favoriten sind. Die Stilvektoren der ausgewählten Illustrationen können als Stilpräferenzen des Nutzers gespeichert werden, und können verwendet werden, wenn die Suchergebnisse im Rang eingeordnet werden. In einem speziellen Beispiel können Stilvektoren von Bildern, die ein Nutzer schon in einem im Fortschritt befindlichen oder zuvor veröffentlichen Design hinzugefügt hat, schwerer gewichtet werden, so dass sie signifikanter den Stil von zukünftigen Vorschlägen oder Suchergebnissen beeinflussen.
  • Als ein weiteres Beispiel von Maschinenlerntechniken, die in dem System 100 verwendet werden, können Regressionsmodelle basierend auf Nutzerhandlungen trainiert werden und können verwendet werden, um vorherzusagen, welche Kategorien (beispielsweise „Geburtstag“, „Wildtiere“ usw.) der Designs (und in welchem Ausmaß, welche Bilder) ein Nutzer wahrscheinlich in naher Zukunft verwenden wird. Als weiteres Beispiel kann ein Maschinenlernalgorithmus Gewichtungen einstellen, die verwendet werden, um Suchergebnisse im Rang einzuordnen. Als noch weiteres Beispiel können neurale Netzwerke verwendet werden, um eine Bild-Clusterung bzw. Bildgruppierung basierend auf Inhalt oder Stil auszuführen, und für Nutzer, deren Präferenzen ähnlich einem speziellen Cluster bzw. einer speziellen Gruppe sind, können Bilder dieses speziellen Clusters einen höheren Rang in den Suchergebnissen erhalten. Als weiteres Beispiel kann eine Verarbeitung natürlicher Sprache verwendet werden, um Suchanfragen zu modifizieren (beispielsweise zu erweitern), und zwar durch Verwendung von Suchausdrücken, die wahrscheinlich bessere Suchergebnisse erzeugen als anfängliche Suchausdrücke, die von einem Nutzer vorgesehen wurden.
  • Obwohl verschiedene Beschreibungen hier auf die Bestimmung von stilistisch ähnlichen Medien Bezug nehmen, können bei einigen Beispielen stilistisch „komplementäre“ Medien ebenso oder alternativ bestimmt werden. Zur Veranschaulichung können Schriftarten oder Bilder, die komplementär zu jenen sind, die schon in einem in Ausführung befindlichen Design vorhanden sind, einen höheren Rang in den Suchergebnissen erhalten. Komplementäre Schriftarten können Schriftarten sein, für die bestimmt wurde, dass sie ästhetisch ansprechend sind und/oder oft zusammen verwendet werden. Solche Schriftarten können einigen Stilattribute haben, die ähnlich sind (beispielsweise Buchstabendicke) und andere Stilattribute, die voneinander abweichen (beispielsweise Verwendung von Serifen). In ähnlicher Weise können komplementäre Bilder einige Stilattribute haben, die ähnlich sind, und andere Stilattribute, die unterschiedlich sind.
  • Bei einigen Beispielen kann eine Wahrscheinlichkeitsgewichtung während der Suchvorgänge verwendet werden. Beispielsweise kann bestimmt werden, dass Designs, die stilistisch zu homogen sind, nichtssagend oder in anderer Weise ästhetisch missfallend sind. Somit kann ein Suchergebnis, welches „visuell zu ähnlich“ jenem ist, welches schon in einem Design vorhanden ist (beispielsweise wie unter Verwendung eines Computervisionsalgorithmus bestimmt) eine negative Gewichtung erhalten und kann in den Suchergebnissen bezüglich der Priorität verringert werden. Verschiedene Faktoren oder Gewichtungen können zu einer „Erfolgswahrscheinlichkeitsmetrik“ für ein Suchergebnis beitragen, und die Erfolgswahrscheinlichkeitsmetrik kann iterativ unter Verwendung von oben beschriebenen Maschinenlerntechniken verfeinert werden. Als ein illustratives, nicht einschränkendes Beispiel können, wenn ein Nutzer ein Bild eines Hundes in ein Design einfügt und dann nach Katzen sucht, dann, wie oben beschrieben, Bilder von Katzen, die stilistisch ähnlich dem Bild des Hundes sind, in den Suchergebnissen einen höheren Rang erhalten. Wenn jedoch ein gewisses hoch im Rang eingeordnetes Suchergebnis wiederholt nicht verwendet wird, dann kann eine negative Gewichtung anfangen, für die Erfolgswahrscheinlichkeitsmetrik des Bildes der Katze in Bezug zu diesem Hundebild anzuwachsen. Wenn im Gegensatz dazu ein gewisses Suchergebnis wiederholt verwendet wird, dann kann eine weitere positive Gewichtung für die Erfolgswahrscheinlichkeitsmetrik dieses Katzenbildes in Bezug auf dieses Hundebild anwachsen. Eine solche Erfolgswahrscheinlichkeitsmetrik kann auf einer Basis pro Nutzer oder auf einer globalen Basis implementiert und gespeichert werden.
  • Bei einigen Beispielen kann Text, der zu einem Design hinzugefügt worden ist, als Teil des Suchprozesses verwendet werden. Zur Veranschaulichung kann ein Nutzer „Happy Birthday“ bzw. „Geburtstagsglückwunsch“ zu einem Design hinzufügen und dann eine Bildsuche mit der Suchanfrage „Kind“ ausführen. Ansprechend darauf kann die Suchanfrage auf „Kind Happy Birthday“ bzw. „Kind Geburtstagsglückwunsch“ verbessert werden, jedoch können Bilder, die basierend alleine auf der Verbesserung gefunden werden, weniger gewichtet sein als die Bilder, die aus dem primären Schlüsselwort „Kind“ resultierten. Trotzdem können die Suchergebnisse im Vergleich zu einem Suchvorgang verbessert sein, der nur das primäre Schlüsselwort „Kind“ verwendet, weil Bilder von Kindern, die ihren Geburtstag feiern, priorisiert sein können.
  • Während 1 ein System 100 veranschaulicht, welches betreibbar ist, um eine Stilattributzuordnung auf hohem Niveau auszuführen, sei bemerkt, dass der Betrieb eines solchen Systems verschiedene lokale und/oder Cloud-basierte Komponenten aufweisen kann, die nicht in 1 veranschaulicht sind. Beispielsweise bildet 8 genauer ein Logikdiagramm eines Systems 800 ab, welches betreibbar ist, um Ausführungsbeispiele der vorliegenden Offenbarung zu unterstützen. Obwohl es in einem Logikdiagramm veranschaulicht ist, sei bemerkt, dass die verschiedenen Komponenten des Systems 800 Computer-Hardware bzw. Computerkomponenten, Computer-Software bzw. Computerprogramme oder eine Kombination davon aufweisen können oder diesen entsprechen können. Darüber hinaus können Komponenten des Systems 800 konfiguriert sein, um miteinander zu kommunizieren, beispielsweise über ein oder mehrere drahtgebundene und/oder drahtlose Netzwerke. Somit können in verschiedenen Ausführungen Operationen, die hier so beschrieben werden, dass sie von einer speziellen Komponente der 8 ausgeführt werden, durch dedizierte Hardware, Software oder eine Kombination davon entsprechend der speziellen Komponente ausgeführt werden.
  • In speziellen Aspekten unterstützt das System 800 Browserbasierten und mobilanwendungsbasierten Zugriff auf eine Grafikdesign-Website. Zur Veranschaulichung kann die Grafikdesign-Website der Website 130 der 1 entsprechen, und einige oder alle der Komponenten in dem System 800 können durch den Server 120, den (die) Server 124 und/oder die Vorrichtung(en) 126 der 1 implementiert sein. Beispielsweise können Nutzer sich in die Website einloggen und Grafikdesigns erzeugen, editieren und speichern. Die Website kann Operationen unterstützen, welche Folgendes aufweisen, jedoch nicht darauf eingeschränkt sind: Erzeugen eines neuen Designs, Anwenden eines Layouts auf ein Design, Suchen nach Bildern und Hinzufügen von Bildern zu einem Design, Speichern eines Designs, Veröffentlichen eines Designs usw. Bei speziellen Aspekten unterstützt die Grafikdesign-Website das automatische Zuordnen von Stilattributen, wie mit Bezugnahme auf die vorangegangenen Figuren beschrieben.
  • Das System 800 weist ein Web-Front-End bzw. eine Web-Bedienungsoberfläche 802 auf, die bei einem PaaS-Provider 804 (PaaS = Platform as a Service) ausgeführt wird. Der PaaS-Provider 804 kann einen größenangepassten Einsatz von SaaS-Anwendungen (SaaS = Software as a Service = als Dienst bereitgestellte Software) ermöglichen, wie beispielsweise Web-Anwendungen. Beispielsweise kann das Web-Front-End 802 eine, fünf, zehn oder eine andere Anzahl von Instanzen einer SaaS-Anwendung darstellen, welche auf Hardware-Komponenten ausgeführt wird, die dem PaaS-Provider 804 zu eigen ist, und/oder von diesem gemietet wird. Jede solche Instanz der Front-End-SaaS-Anwendung kann über das Internet zugänglich sein. In einigen Beispielen kann ein Browser oder eine mobile Anwendung, die von einer Computervorrichtung eines Nutzers ausgeführt wird, auf das Web-Front-End 802 über ein Inhaltsliefer- bzw. Content-Delivery-Network 801 zugreifen. Das Content-Delivery-Network bzw. CDN 801 kann auch konfiguriert sein, um statischen Inhalt (beispielsweise Thumbnails bzw. Bildvorschauen, statische Bilder, statischen Web-Inhalt zu cachen bzw. zwischenzuspeichern). Zur Veranschaulichung, wenn ein Nutzer ein spezielles Content- bzw. Inhaltselement anfragt, wie beispielsweise ein spezielles Bild, und wenn das CDN 801 (beispielsweise ein Server davon) eine Kopie des Bildes gespeichert hat, kann dann das CDN auf die Anfrage antworten, ohne die Anfrage weiter in die Service- bzw. Dienstinfrastruktur weiterzuleiten, wie in 8 gezeigt. Das CDN 801 kann somit mehrere geografisch verteilte „Edge-Server“ aufweisen, welche Inhalt cachen bzw. zwischenspeichern.
  • Das Web-Front-End 802 kann konfiguriert sein, um anfragenden Personen eine Website darzubieten, wie beispielsweise, indem es auf http-GET-Anfragen, http-POST-Anfragen usw. antwortet (http = Hypertext Transfer Protocol). Das Web-Front-End 802 kann auch konfiguriert sein, um auf API-Calls bzw. API-Aufrufe (API = Application Programming Interface) zu antworten, die von Web-Browsern und/oder mobilen Anwendungen herkommen. In einigen Beispielen kann das Web-Front-End 802 einen im Speicher liegenden Cache 803 verwenden, der Sitzungsdaten speichert. Zur Veranschaulichung, wenn ein Nutzer sich in die Website einloggt, die von dem Web-Front-End 802 mit Service bzw. Diensten versorgt wird, kann Information bezüglich des Nutzers (beispielsweise Anzeigename, Foto, Abonnementniveau, E-Mail-Adresse usw.) in dem im Speicher liegenden Cache 803 gespeichert werden, und zwar zum schnellen Aufrufen, Verarbeiten und/oder Rendern bzw. Weiterleiten auf einigen oder allen der Web-Pages der Website. Die Verwendung des im Speicher liegenden Cache 803 kann somit schnelle, einen Dienst bereitstellende Web-Pages ermöglichen, ohne auf Back-End-Systeme bzw. dahinterliegende Systeme zuzugreifen, um Nutzerinformationen zu bestimmen.
  • Das System 800 weist Load-Balancer bzw. Last-Balanceeinrichtungen 806 auf, die konfiguriert sind, um Kommunikations- und Arbeitslastverteilung vom Web-Front-End 802 zu einer Vielzahl von Back-End-Diensten oder Mikrodiensten zu unterstützen, die beispielsweise auf einer oder mehreren virtuellen Maschinen in einer Cloud-Computing-Umgebung ausgeführt werden. Jede solche virtuelle Maschine kann unter Verwendung von physikalischer Hardware implementiert werden, die einem Cloud-Service-Provider zueigen ist und/oder von diesem gemietet wird. Das System 800 kann einen skalierten dynamischen Einsatz von Diensten basierend auf Scale- bzw. Skalierungsgruppierungen in einer Multi-Tier-Konfiguration bzw. Konfiguration mit mehreren Ebenen unterstützen. Bei speziellen Aspekten können Dienste bzw. Services in gewissen virtuellen Maschinen gruppiert sein, und zwar basierend auf erwarteten Lastmustern für die Dienste. Die Architektur des Systems 800 kann die Reorganisation dieser Gruppierungen mit geringem Aufwand ermöglichen, und zwar basierend auf Veränderungen bei beobachteten Lastmustern oder die Einleitung von neuen Diensten. Das Aufteilen von Diensten über mehrere virtuelle Maschinen kann auch das Skalieren von Gruppen für spezielle Dienste ansprechend auf Steigerungen von gewissen Arten von Lasten ermöglichen. Diese Skalierung kann automatisch basierend auf einer Überwachung der Last auftreten und kann auch manuell in Voraussicht von Laststeigerungen ausgelöst werden. Zur Veranschaulichung: Wenn eine zunehmende Anzahl von Suchaufgaben beobachtet wird (beispielsweise basierend auf einem Prozentsatz von Arbeitszeit gegenüber Leerlaufzeit) können mehr virtuelle Maschinen, welche Instanzen des Suche-RPC-Dienstes 836 und/oder des Suche-Workers 852 (Worker = Arbeitselement) aufweisen, dynamisch in Instanzen gestartet werden, um die Anforderung zu bedienen. Wenn im Gegensatz dazu ein Administrator des Systems 800 voraussieht, dass das Suchvolumen zunimmt, kann der Administrator manuell zusätzliche virtuelle Maschinen initialisieren, welche Instanzen des Suche-RPC-Dienstes 836 und/oder des Search- bzw. Suche-Workers 852 aufweisen. Wenn das Suchvolumen abnimmt, können die virtuellen Maschinen automatisch (beispielsweise basierend auf dem Prozentsatz von Arbeitszeit gegenüber Leerlaufzeit) oder manuell herunterskaliert werden.
  • Im Beispiel der 8 weist eine erste Tier bzw. Ebene von Diensten synchrone „Anfrage-Antwort-“ bzw. „Request-Response-Fernprozeduraufrufdienste bzw. RPC-Dienste (RPC = Remote Procedure Call) auf, und eine zweite Tier bzw. Ebene weist asynchrone „Worker“ (Worker = Arbeiterdienst bzw. Arbeitselement) auf. Ein synchroner RPC-Dienst kann erste Daten von einem anfragenden Element empfangen, kann eine oder mehrere Verarbeitungsfunktionen ausführen und zweite Daten zu dem anfragenden Element zurückleiten. Solche synchronen Anfrage-Antwort-Dienste bzw. Request-Response-Dienste können für Aufgaben verwendet werden, welche relativ schnell vollendet werden können, beispielsweise in drei Sekunden oder weniger, weil in einigen Beispielen ein anfragendes Element (beispielsweise ein Webbrowser oder eine mobile Anwendung) blockieren kann, während es auf eine Antwort wartet. Folglich können die asynchronen Worker-Dienste der zweiten Ebene für Hintergrundaufgaben und andere Aufgaben verwendet werden, die nicht relativ schnell vollendet werden können oder möglicherweise nicht relativ schnell vollendet werden.
  • In 8 weist die erste Ebene eine erste Skalierungsgruppe 822 auf (die als „A“ bezeichnet wird), eine zweite Skalierungsgruppe 840 (die als „G“ bezeichnet wird), und eine dritte Skalierungsgruppe 841 (die als „E“ bezeichnet wird). Die erste Skalierungsgruppe 822 weist einen Billing- bzw. Rechnungsstellungs-RPC-Dienst 808 (RPC = Remote Procedure Call = Fernprozeduraufruf), einen Export-RPC-Dienst 810, einen Import-RPC-Dienst 812, einen Lizenz-RPC-Dienst 814, einen Medien-RPC-Dienst 816, einen Review- bzw. Durchsicht-RPC-Dienst 818 und einen Share- bzw. Freigabe-RPC-Dienst 822 auf. Zur Veranschaulichung: Eine virtuelle Maschine entsprechend einer ersten Skalierungsgruppe 822 kann die dargestellten RPC-Dienste ausführen. Der Rechnungsstellungs-RPC-Dienst 808 kann konfiguriert sein, um synchrone Rechnungsstellungsaufgaben auszuführen (beispielsweise das Überprüfen des Kontostandes). Der Export-RPC-Dienst 810 kann verwendet werden, um synchrone Grafikdesign-Exportaufgaben auszuführen (beispielsweise das Speichern eines Designs in einem relativ einfachen Ausgabebildformat). Der Import-RPC-Dienst 812 kann konfiguriert sein, um es dem Nutzer zu ermöglichen, Medienelemente zur Verwendung bei der Erzeugung/Editierung eines Grafikdesigns zu importieren. Der Lizenz-RPC-Dienst 814 kann konfiguriert sein, um Bildlizenzen durchzusetzen (beispielsweise Lizenzen zur einmaligen Verwendung). Der Medien-RPC-Dienst 816 kann konfiguriert sein, um Medienelemente zu verfolgen und zu katalogisieren, die über das System 800 verfügbar sind, was vom Nutzer heraufgeladene und/oder Archivbilder, Layouts, Schriftarten usw. aufweist, jedoch nicht darauf eingeschränkt ist. Der Review- bzw. Durchsichts-RPC-Dienst 818 kann konfiguriert sein, um die Akzeptanz vom Kontributor- bzw. Beitragsmedien zu ermöglichen (beispielsweise das Hochladen von Medienelementen durch autorisierte Kontributoren bzw. Beitragende der Website). Der Share- bzw. Freigabe-RPC-Dienst 820 kann das gemeinsame Verwenden bzw. Freigeben von Grafikdesigns mit anderen Nutzern ermöglichen, wie beispielsweise über Konten bei sozialen Medien.
  • Die zweite Skalierungsgruppe 840 weist einen Kommentar-RPC-Dienst 824, einen Dokument-RPC-Dienst 826, einen Ordner-RPC-Dienst 828, einen Benachrichtigungs-RPC-Dienst 830, einen Druck-RPC-Dienst 832, einen Profil-RPC-Dienst 834, einen Suche-RPC-Dienst 836 und einen Sozial-RPC-Dienst 838 auf. Der Kommentar-RPC-Dienst 824 kann es Nutzern ermöglichen, Kommentare zu Grafikdesigns in Kommentar-Threads bzw. Kommentarlisten zu geben. Der Dokument-RPC-Dienst 826 kann die Kerndesignerzeugung, die Aktualisierung eines Designs und die Funktionalität des Löschens eines Designs der Website ermöglichen. Der Ordner-RPC-Dienst 828 kann das Navigieren in und aus unterschiedlichen Ordnern ermöglichen, die mit einem Nutzerkonto assoziiert sind. Der Benachrichtigungs-RPC-Dienst 830 kann das Erzeugen und Darbieten von Benachrichtigungen für Nutzer über die Website ermöglichen (beispielsweise wenn das Design eines Nutzers mit einem „like“ bzw. positiv bewertet oder kommentiert wird). Bei einigen Aspekten können mehrere solche Benachrichtigungen zu einer E-Mail zusammengefügt werden, die an eine E-Mail-Adresse des Nutzers gesendet wird, oder die als ein Pop-Up gezeigt wird, wenn der Nutzer auf die Webseite zugreift. Der Druck-RPC-Dienst 832 kann das Senden eines Grafikdesigns an einen Drucker eines Dritten ermöglichen, beispielsweise, damit es gedruckt wird und dann zu einer physischen Versandadresse des Nutzers geliefert wird. Der Profil-RPC-Dienst 834 kann es Nutzern ermöglichen, ihr Website-Konto zu verwalten. Der Suche-RPC-Dienst 836 kann das Suchen nach Bildern, Layouts, Designs usw. ermöglichen. Der Sozial-RPC-Dienst 838 kann es Nutzern ermöglichen, das Engagement in sozialen Netzwerken auf der Website auszuführen (beispielsweise einem anderen Nutzer zu „folgen“, das Design eines anderen Nutzers zu „liken“ bzw. positiv zu bewerten usw.), und dies kann „Feeds“ bzw. Nachrichtenlisten von Designs erzeugen, die durch die verfolgten Nutzer erzeugt werden. Die dritte Skalierungsgruppe 841 weist einen Berechnungs-RPC-Dienst 843 auf, der dafür vorgesehen sein kann, um gewisse schnelle Operationen mit starker CPU-Verwendung auszuführen, wie das Erzeugen von Hash-Werten und das Lösen von Passworten.
  • Die zweite Tier bzw. Ebene von Diensten in 8 weist eine vierte Skalierungsgruppe 858 auf (als „D“ bezeichnet), eine fünfte Skalierungsgruppe 864 (als „F“ bezeichnet), eine sechste Skalierungsgruppe 868 (als „C“ bezeichnet), eine siebte Skalierungsgruppe 876 (als „H“ bezeichnet) und eine achte Skalierungsgruppe 872 (als „B“ bezeichnet). Die vierte Skalierungsgruppe 858 weist einen Rechnungsstellungs-Worker 844 auf, weiter einen Dokumenten-Worker 846, einen Export-Worker 848, einen Ordner-Worker 850, einen Suche-Worker 852, einen Freigabe-Worker 854 und einen Sozial-Worker 856. Die fünfte Skalierungsgruppe 864 weist einen Niedrige-Priorität-Import-Worker 860 und einen Review- bzw. Durchsicht-Worker 862 auf. Die sechste Skalierungsgruppe 868 weist einen Hohe-Priorität-Import-Worker 866 auf. Die siebte Skalierungsgruppe 876 weist einen Niedrige-Priorität-Export-Worker 874 auf. Die achte Skalierungsgruppe 872 weist einen Mittlere/Hohe-Priorität-Export-Worker 870 auf. Um Aspekte zu veranschaulichen können die asynchronen Worker-Dienste in 8 längere und/oder komplexere Versionen der Operationen ausführen, die von den entsprechenden RPC-Diensten der 8 ausgeführt werden. In einer speziellen Implementierung entsprechen die in 8 gezeigten Prioritätsbezeichnungen (beispielsweise „niedrig“, „mittel“ und „hoch“) einem Ausmaß der dedizierten Verarbeitungsressourcen. Eine „hohe“ Priorität kann für Aufgaben verwendet werden, die durch Nutzerhandlungen ausgelöst werden, während „mittlere“ oder „niedrige“ Priorität für Aufgaben verwendet werden kann, die nicht von Nutzerhandlungen ausgelöst werden (beispielsweise Hintergrundaufgaben).
  • Es sei bemerkt, dass die verschiedenen Dienste und ihre Gruppierungen, die in 8 gezeigt sind, nur zur Veranschaulichung sind und nicht als einschränkend angesehen werden sollen. In alternativen Ausführungsbeispielen können mehr, weniger und/oder andere Dienste in dem System vorhanden sein. Darüber hinaus kann eine andere Gruppierung der Dienste in andere Skalierungsgruppen als in 8 gezeigt verwendet werden. Bei einigen Aspekten entspricht jede der in 8 gezeigten Skalierungsgruppen einer virtuellen Hardware-Instanz, d.h. einer virtuellen Maschine, die bei einem Cloud-Dienst-Provider läuft. Somit kann es zu jedem gegebenen Zeitpunkt eine oder mehrere aktive/ausführende Instanzen von jeder der Skalierungsgruppen geben, und spezielle Anzahlen von aktiven/ausführenden Instanzen von virtuellen Maschinen können sich dynamisch basierend auf der Gesamtarbeitslast ändern, die von den Last-Balanceeinrichtungen 806 verwaltet wird. Eine Koordination und Konfiguration der verschiedenen Instanzen einschließlich einer Kommunikation zwischen den Instanzen und/oder Diensten, die darin ausgeführt werden, kann durch ein Koordinations-Tool bzw. Koordinationswerkzeug 805 verwaltet werden, welches selbst ein Cloud-basiertes System sein kann.
  • Während des Betriebs können die synchronen RPC-Dienste der ersten Ebene konfiguriert sein, um mit den asynchronen Diensten der Worker der zweiten Ebene über Message-Queues bzw. Nachrichtenschlangen 842 zu kommunizieren, und sie können die asynchronen Worker verwenden, um zeitaufwändige Aufgaben auszuführen. Beispielsweise kann der Export-RPC-Dienst 810 eine Anfrage empfangen, dass ein Nutzer ein Grafikdesign in ein PDF (PDF = Portable Document Format) exportieren möchte. Der Export-RPC-Dienst 810 kann eine entsprechende Work- bzw. Arbeitsanfrage in die Nachrichtenschlangen 842 verschieben. Ein Export-Worker (beispielsweise der Export-Worker 870 mit mittlerer/hoher Priorität) kann auf die Arbeitsanfrage antworten, indem er das Grafikdesign zu einem PDF rendert bzw. umwandelt. Das PDF (oder ein Link zu dem PDF, das in einem Cloud-Speichersystem gespeichert ist), kann dann zurück zu dem anfragenden Nutzer geleitet werden. Als ein weiteres Beispiel kann der Ordner-RPC-Dienst 828 eine Anfrage empfangen, die anzeigt, dass ein Nutzer einen Ordner mit Grafikdesigns mit einem anderen Nutzer gemeinsam verwendet. Der Ordner-RPC-Dienst 828 kann die Nachrichtenschlangen 842 verwenden, um anzufragen, dass der Ordner-Worker 850 die entsprechenden Berechtigungen bei dem Ordner und bei jedem der Elemente in diesem Ordner einstellt. Als ein noch anderes Beispiel können asynchrone Worker verwendet werden, um Routinehintergrundaufgaben in dem System 800 auszuführen, wie beispielsweise die tägliche Überprüfung von Abonnementniveaus.
  • Während gewisser Betriebsvorgänge bei dem System 800 können die veranschaulichten Dienste auf eine oder mehrere Datenbanken oder Datenspeicher zugreifen. Beispielsweise kann eine Dokumentendatenbank 884 Dateien speichern, welche von Nutzern erzeugten Grafikdesigns entsprechen, und eine Mediendatenbank 885 kann heraufgeladene Bilder, Schriftarten und Layouts speichern, die über die Grafikdesign-Website zugänglich sind. Bei einem veranschaulichenden Aspekt kann durch den Dokumenten-Worker 846 auf die Dokumentendatenbank 884 zugegriffen werden, wenn ein Nutzer ein Grafikdesign öffnet oder speichert. Bei einem weiteren veranschaulichenden Aspekt kann durch den Medien-RPC-Dienst 816 auf die Mediendatenbank 885 zugegriffen werden, wenn ein Nutzer ein Bild, ein Layout oder eine Schriftart hochlädt oder aufruft.
  • Das System 800 kann auch eines oder mehrere von Folgendem aufweisen: Eine Lizenzdatenbank 868, eine Share- bzw. Freigabedatenbank 887, eine Export-Datenbank 888, eine Profildatenbank 889 oder eine Sozialdatenbank 890. Die Lizenzdatenbank 886 kann von dem Lizenz-RPC-Dienst 814 verwendet werden, um Lizenzen (beispielsweise Lizenzen für eine einmalige Nutzung von Bildern) nachzuverfolgen, die von einem Nutzer erlangt worden sind. Die Freigabedatenbank 887 kann von dem Freigabe-RPC-Dienst 820 oder dem Freigabe-Worker 854 verwendet werden, um das Freigeben bzw. gemeinsame Verwenden von Grafikdesigns mit anderen Nutzern zu verwalten (beispielsweise über ein oder mehrere soziale Netzwerke). Die Export-Datenbank 888 kann von dem Export-RPC-Dienst 810, dem Export-Worker 848, dem Export-Worker 874 mit niedriger Priorität oder dem Export-Worker 870 mit mittlerer/hoher Priorität verwendet werden, um Exporte des Nutzers seiner Grafikdesigns in unterschiedliche Ausgabeformate nachzuverfolgen. Die Profildatenbank 889 kann das Durchsuchen von Nutzerprofilen basierend auf unterschiedlichen Kriterien unterstützen. Die Sozialdatenbank 890 kann Aspekte bezüglich sozialer Medien der Website unterstützen.
  • Das System 800 kann auch Datenbanken oder Datenspeicher aufweisen, welche Suchfunktionalität unterstützen. Beispielsweise kann auf eine Mediensuchdatenbank 891 durch den Suche-RPC-Dienst 836 oder den Suche-Worker 852 zugegriffen werden, wenn ein Nutzer nach Bildern, Layouts oder Schriftarten sucht. Als ein weiteres Beispiel kann auf eine Profilsuchdatenbank 892 durch den Profil-RPC-Dienst 834 zugegriffen werden, wenn ein Nutzer die Profilinformation editiert, die mit seinem Konto assoziiert ist. Als noch ein weiteres Beispiel kann auf eine Dokumentensuchdatenbank 893 durch den Dokumenten-Worker 846 zugegriffen werden, wenn ein Nutzer nach einem zuvor gespeicherten Grafikdesign sucht.
  • Gewisse Operationen bei dem System 800 können das Zugreifen auf „externe“ Dienste aufweisen, die kein Teil der auf Kerndienst orientierten Plattform der Website sind. Beispiele von solchen externen Diensten können Folgende aufweisen, sind jedoch nicht darauf eingeschränkt: Einen Analytikdienst 878, einen Metrikdienst 879, einen Rechnungsbestellungsdienst 880, einen E-Mail-Dienst 881, einen OAuth-Dienst 882 (OAuth = Open Authorization = offene Autorisierung) oder einen Logging- bzw. Aufzeichnungsdienst 883. Der Analytikdienst 878 kann Analytikereignisse (z.B. Nachrichten) jedes Mal dann empfangen, wenn ein Nutzer eine Aktion auf der Website ausführt, und er kann eine Analyse pro Nutzer und auf Makroniveau des Arbeitsflusses der Website, der Operationen und der Leistung ermöglichen. Der Metrikdienst 879 kann Leistungsinformation bezüglich der verschiedenen Komponenten des Systems 800 sammeln und liefern. Der Rechnungsstellungsdienst 880 kann eine Schnittstelle zu einem oder mehreren externen Bezahlungs-Providern herstellen, wie beispielsweise für eine Kreditkartenverarbeitung, eine Verarbeitung von Mobiltelefonbezahlung usw. Der E-Mail-Dienst 881 kann das Erzeugen und/oder Senden von E-Mails an Nutzer ermöglichen (beispielsweise für Benachrichtigungen, Passwortrücksetzungen usw.). Der OAuth-Dienst 882 kann gemeinsame bzw. übergreifende Logins bzw. Einbuchungen in die Website unter Verwendung von Berechtigungsnachweisen eines sozialen Netzwerkes ermöglichen. Der Aufzeichnungsdienst 883 kann Ereignisse/Nachrichten indexieren bzw. aufzeichnen, die durch die Komponenten des Systems 800 erzeugt wurden, und zwar zum späteren Durchsuchen zur Diagnose.
  • Ein Beispiel eines Betriebsvorgangs, der von dem System 800 unterstützt werden kann, ist das Einloggen bzw. Einbuchen in die Grafikdesign-Website über einen Internet-Browser oder eine mobile Anwendung. Eine Log-In-Anfrage kann von dem Web-Front-End 802 von dem Internet-Browser oder der mobilen Anwendung empfangen werden. Die Log-In-Anfrage kann die Last-Balanceeinrichtungen 806 zu einer Instanz des Profil-RPC-Dienstes 834 weitergeleitet werden, welcher den Nutzer in der Profil-Datenbank 889 „nachschauen“ kann und den Nutzer authentifizieren kann (ein übergreifender Log-In- bzw. Einbuchungsvorgang mittels sozialer Netzwerke kann den OAuth-Dienst 882 mit einbeziehen). Sobald der Nutzer authentifiziert ist, kann die Website eine angepasste Homepage bzw. Startseite für den Nutzer laden, was Operationen mit einschließen kann, die durch eine Instanz des Ordner-RPC-Dienstes 828, des Dokumenten-Workers 846 usw. ausgeführt werden. Die angepasste Startseite kann dann zu dem Internet-Browser oder der mobilen Anwendung des Nutzers zurückgeleitet werden.
  • Ein weiteres Beispiel eines Betriebsvorgangs, der von dem System 800 unterstützt werden kann, ist das Beginnen eines neuen Designs oder das Öffnen eines existierenden Designs. Wenn ein Nutzer auf eine neue Design-Vorlage klickt, kann das Web-Front-End 802 dem Internet-Browser oder der mobilen Anwendung des Nutzers eine Grafikdesignschnittstelle (beispielsweise einen HTML-Code) liefern, der ausführbar ist, um das neue oder existierende Design zu editieren. Im Fall des Ladens eines existierenden Designs können der Dokumenten-RPC-Dienst 826 und/oder der Dokumenten-Worker 846 auf die Dokumentendatenbank 884 zugreifen, um das existierende Design aufzurufen und der Medien-RPC-Dienst 816 kann Medienelemente, die in dem Design enthalten sind, aus der Mediendatenbank 885 laden.
  • Ein weiteres Beispiel eines Betriebsvorgangs, der von dem System 800 unterstützt werden kann, ist, wenn ein Nutzer ein Design unter Verwendung der Grafikdesignschnittstelle aktualisiert, die von der Website bedient wird. Wenn der Nutzer das Design aktualisiert, können die Aktualisierungen durch den Dokumenten-RPC-Dienst 826 und/oder den Dokumenten-Worker 846 verarbeitet werden. Beispielsweise kann der Dienst (können die Dienste) Bild- oder Textbewegung, Einfügen, Löschen, Ändern der Größe, Ändern der Farbe usw. verarbeiten.
  • Ein weiteres Beispiel eines Betriebsvorgangs, der durch das System 800 unterstützt werden kann, ist, wenn ein Nutzer ein Bild importiert. In diesem Fall können der Import-RPC-Dienst 812 und/oder einer der Import-Worker 860, 866 ein von einem Nutzer hochgeladenes Bild empfangen, das Bild verarbeiten und das Bild in die Mediendatenbank 885 zum darauffolgenden Aufrufen durch den Medien-RPC-Dienst 816 integrieren.
  • Ein weiteres Beispiel eines Betriebsvorgangs, der durch das System 800 unterstützt werden kann, ist, wenn ein Nutzer ein Layout auf ein Design anwendet. In diesem Fall kann die Mediensuchdatenbank 891 über den Medien-RPC-Dienst 816 Medienelemente liefern, welche dem Layout entsprechen. Das Einfügen der Medienelemente in das Design kann dann durch den Dokumenten-RPC-Dienst 826 und/oder den Dokumenten-Worker 846 als eine Aktualisierung für das Design des Nutzers verarbeitet werden.
  • Ein weiteres Beispiel eines Betriebsvorgangs, der durch das System 800 unterstützt werden kann, ist, wenn ein Nutzer nach einem Medienelement sucht, und dann das Medienelement in das Design mittels Drag-and-Drop bzw. Ziehen-und-Fallenlassen einfügt. Wenn ein Nutzer beispielsweise eine Suchanfrage „Hund“ eingibt, können der Suche-RPC-Dienst 836 und/oder der Suche-Worker 852 auf die Mediensuchdatenbank 891 zugreifen, um Suchergebnisse für „Hund“ aufzurufen. Die Suchergebnisse können durch den Internet-Browser oder die mobile Anwendung des Nutzers präsentiert werden. Wenn der Nutzer ein spezielles Suchergebnis, beispielsweise ein spezielles Bild eines Hundes, zu seinem Design hinzufügt, können der Dokumenten-RCP-Dienst 826 oder der Dokumenten-Worker 846 die entsprechende Aktualisierung für das Design verarbeiten.
  • Bei einem speziellen Aspekt kann das System 800 das Zuordnen von Stilattributen unterstützen. Wenn ein Design (beispielsweise das Design 140) aktualisiert wird, können der Dokumenten-RPC-Dienst 826 und/oder der Dokumenten-Worker 846 ein Stildokument (beispielsweise das Stildokument 210) erzeugen, welches Stilattribute beschreibt, die bei dem Design in Verwendung sind. Das Stildokument kann ein Teil des Designs sein oder kann separat von dem Design gespeichert sein. Das Stildokument kann dann verwendet werden, um Suchergebnisse zu „unterstützen“, die von einer Suche zurückgebracht werden. Beispielsweise kann das ganze Stildokument oder ein Teil des Stildokumentes an eine Suchanfrage angehängt werden, die von dem Nutzer eingegeben wird.
  • Um einen solchen verbesserten Suchvorgang zu unterstützen, können die Medien in der Mediendatenbank 885 bezüglich Stilattributen indexiert werden. Das Indexieren kann manuell und/oder automatisch unter Verwendung von auf Computervision basierenden Algorithmen und/oder Maschinenlernalgorithmen (beispielsweise basierend auf einem Classifier bzw. Klassifikationselement mit neuralem Netzwerk) ausgeführt werden, und kann Metadaten zur Folge haben, die zusammen mit den Medienelementen gespeichert werden. Bei einem speziellen Aspekt wird ein asynchroner Indexierungsdienst ausgeführt, um solche Indexierungsfunktionen auszuführen. Wenn der Nutzer eine Suchanfrage eingibt, kann das Verfahren 900 der 9 ausgeführt werden, um Suchergebnisse zu erzeugen.
  • Das Verfahren 900 weist auf, eine erste Suchanfrage während des Editierens eines Designs zu empfangen, wobei die erste Suchanfrage zumindest einen ersten Suchausdruck aufweist, und zwar bei 902. Mit Bezug auf 8 können das Web-Front-End 802 und/oder das CDN bzw. Content-Delivery-Netzwerk 801 eine Grafikdesign-Website (beispielsweise die Website 130 der 1) für ein Nutzergerät bedienen (beispielsweise für die Berechnungs- bzw. Computervorrichtung 110 der 1). Während der Nutzer ein Design (beispielsweise das Design 140) auf der Website editiert, kann der Dokumenten-RPC-Dienst 826 die Editierungsvorgänge an dem Design speichern und kann ein Stildokument (beispielsweise das Stildokument 210) aktualisieren, welches mit dem Design assoziiert ist. Während des Editierungsvorgangs kann der Nutzer eine erste Suchanfrage eingeben, die durch den Suche-RPC-Dienst 836 und/oder den Suche-Worker 852 empfangen wird. In einem veranschaulichenden Beispiel kann die erste Suchanfrage einen ersten Suchausdruck „Katze“ aufweisen, wie in den 4 - 6 gezeigt.
  • Das Verfahren 900 weist auch auf, zumindest ein Stilattribut zu identifizieren, welches mit dem Design assoziiert ist, und zwar bei 904. Mit Bezug auf 8 kann der Dokumenten-RPC-Dienst 826 beispielsweise die Stilattribute bestimmen, die mit dem Design assoziiert sind, und zwar aus dem Stildokument, welches mit dem Design assoziiert ist, und kann die Stilattribute an den Suche-RPC-Dienst 836 und/oder den Suche-Worker 852 liefern.
  • Das Verfahren 900 weist weiter auf, zumindest eine Datenbank basierend auf dem ersten Suchausdruck, dem mindestens einen Stilattribut oder einer Kombination davon zu durchsuchen, um Suchergebnisse zu erzeugen, und zwar bei 906. Mit Bezug auf 8 können der Suche-RPC-Dienst 836 und/oder der Suche-Worker 852 beispielsweise die Mediensuchdatenbank 891 basierend auf dem ersten Suchausdruck, dem mindestens einen Stilattribut oder beidem durchsuchen. Bei einer veranschaulichenden Ausführung können der Suche-RPC-Dienst 836 und/oder der Suche-Worker 852 eine zweite Suchanfrage durch Verbessern der ersten Suchanfrage mit einem oder mehreren Stilattributen erzeugen, wie mit Bezugnahme auf die 5 - 6 beschrieben, und sie können die Mediensuchdatenbank 891 basierend auf der zweiten Suchanfrage durchsuchen. Alternativ kann die Mediensuchdatenbank 891 unter Verwendung der ersten Suchanfrage durchsucht werden.
  • Das Verfahren 900 weist auf, die Suchergebnisse bei 908 auszugeben. Ein erstes Suchergebnis der Suchergebnisse wird höher als ein zweites Suchergebnis der Suchergebnisse im Rang eingeordnet, und zwar basierend auf der Bestimmung, dass das erste Suchergebnis besser zu dem mindestens einen Stilattribut passt, welches mit dem Design assoziiert ist, als das zweite Suchergebnis. Beispielsweise können der Suche-RPC-Dienst 836 und/oder der Suche-Worker 852 die Suchergebnisse über das Web-Front-End 802 und/oder das CDN 801 zu der Computervorrichtung 110 der 1 zur Anzeige liefern. Wie in 4 gezeigt, können, wenn das Design ein Bild eines Hundes aufweist, der einen Schal trägt, Bilder von Katzen, die einen Schal tragen, in den Suchergebnissen höher im Rang eingeordnet werden als andere Bilder von Katzen. Bei einer veranschaulichenden Ausführung können der Suche-RPC-Dienst 835 und/oder der Suche-Worker 852 einen Vergleich von Attribut-zu-Attribut zwischen den Stilattributen der Suchergebnisse und den Stilattributen des Designs ausführen, wie in 5 gezeigt. Alternativ können der Suche-RPC-Dienst 836 und/oder der Suche-Worker 852 Hash-Funktionen bewerten, um zu bestimmen, wie genau die Stilattribute des Suchergebnisses zu den Stilattributen des Designs passen, wie in 6 gezeigt.
  • Verfahren und Vorrichtungen, welche ein oder mehrere Ausführungsbeispiele der verschiedenen Merkmale der vorliegenden Offenbarung implementieren, sind mit Bezugnahme auf die Zeichnungen beschrieben worden. Die Zeichnungen und die assoziierten Beschreibungen sind vorgesehen, um Ausführungsbeispiele zu veranschaulichen und nicht um den Umfang der vorliegenden Offenbarung einzuschränken. Eine Bezugnahme auf irgendeinen speziellen Aspekt, auf ein Ausführungsbeispiel oder auf Ausführungen soll anzeigen, dass ein spezielles Merkmal, eine Struktur oder eine Charakteristik, die in Verbindung damit beschrieben worden ist, in mindestens einem Aspekt, einem Ausführungsbeispiel oder einer Ausführung der vorliegenden Offenbarung enthalten ist. Jedoch beziehen sich die verschiedenen Verwendungen der Ausdrücke „Aspekt“, „Ausführungsbeispiel“, oder „Ausführung“ nicht notwendigerweise alle auf den gleichen einzelnen Aspekt, das einzelne Ausführungsbeispiel oder die einzelne Ausführung.
  • In der vorangegangenen Beschreibung werden spezielle Details dargelegt, um ein vollständiges Verständnis der vorliegenden Offenbarung vorzusehen. Es wird dem Fachmann jedoch verständlich sein, dass die vorliegende Offenbarung ohne diese speziellen Details praktisch ausgeführt werden kann. Wohlbekannte Strukturen und Techniken sind möglicherweise nicht im Detail gezeigt, um zu vermeiden, die veranschaulichten Ausführungsbeispiele undeutlich zu machen. Beispielsweise können Algorithmen im Blockdiagramm gezeigt sein.
  • Es sei bemerkt, dass Ausführungsbeispiele als ein Verfahren beschrieben sein können, welches als ein Flussdiagramm, eine Flussdarstellung, ein Strukturdiagramm oder ein Blockdiagramm abgebildet ist. Obwohl ein Flussdiagramm Betriebsvorgänge als einen sequentiellen Prozess beschreiben kann, können viele der Operationen parallel oder zumindest teilweise gleichzeitig ausgeführt werden. Außerdem kann die Reihenfolge der Operationen anders angeordnet sein. Ein Prozess ist beendet, wenn seine Operationen beendet sind. Ein Prozess kann einem Verfahren, einer Funktion, einer Prozedur, einer Unterroutine oder einem Unterprogramm usw. entsprechen. Wenn ein Prozess einer Funktion entspricht, entspricht ihre Beendigung einer Rückgabe bzw. Rückkehr der Funktion zur aufrufenden Funktion oder zur Hauptfunktion.
  • Darüber hinaus kann Speicher eine oder mehrere Einrichtungen darstellen, die Daten speichern, einschließlich jedoch nicht eingeschränkt auf einen Speicher mit wahlfreiem Zugriff bzw. RAM (RAM = Random Access Memory), einen Flash-Speicher, einen Lesespeicher bzw. ROM (ROM = Read Only Memory), einen programmierbaren Lesespeicher bzw. PROM (PROM = Programmable Read Only Memory), einen löschbaren programmierbaren Lesespeicher bzw. EPROM (EPROM = Erasable Programmable Read Only Memory), einen elektrisch löschbaren programmierbaren Lesespeicher bzw. EEPROM (EEPROM = Electrically Erasable Programmable Read Only Memory), Register, eine Festplatte, eine entfernbare Platte, einen scheibenbasierten Speicher (beispielsweise einen CD-Lesespeicher bzw. CD-ROM (CD-ROM = Compactdisk Read Only Memory)), eine Flash-Speicher-Einrichtung und/oder irgendein anderes computerlesbares oder von einem Prozessor lesbares Medium zum Speichern von Information. Wie hier verwendet, ist ein computerlesbares oder prozessorlesbares Speichermedium/-gerät nicht ein Signal.
  • Weiterhin können Ausführungsbeispiele in Hardware bzw. Komponenten, Software bzw. Programmen, Firmware, Middelware, Microcode oder irgendeiner Kombination davon implementiert sein. Wenn sie in Software, Firmware, Middleware oder Microcode implementiert sind, können Programmcode-oder Codesegmente zum Ausführen der Aufgaben in einem Speicher oder einem anderen Speichergerät gespeichert sein. Ein Prozessor oder mehr als ein Prozessor kann bzw. können in Reihe, verteilt, gleichzeitig oder parallel Aufgaben ausführen. In einigen Beispielen kann ein virtuelles Computersystem aufgebaut sein, um eines oder mehrere der Verfahren oder der Funktionalitäten zu implementieren, die hier beschrieben wurden. Ein Codesegment kann eine Prozedur, eine Funktion, ein Unterprogramm, ein Programm, eine Routine, eine Unterroutine, ein Modul, eine Software-Packung, eine Klasse oder eine Kombination von Instruktionen, Datenstrukturen oder Programm-Statements bzw. Programmausdrücken darstellen. Ein Codesegment kann mit anderen Codesegmenten oder einer Hardware-Schaltung gekoppelt sein durch Weiterleiten und/oder Empfangen von Informationen, Daten, Argumenten, Parametern oder Speicherinhalten. Eine Information, Argumente, Parameter, Daten usw. können durch ein geeignetes Mittel geleitet, weitergeleitet oder übertragen werden, was gemeinsame Speicherverwendung bzw. Memory-Sharing, Nachrichtenweiterleitung, Token-Weiterleitung, Netzwerkübertragung usw. mit einschließt.
  • Obwohl die vorliegende Offenbarung mit einem gewissen Grad an spezieller Darstellung beschrieben worden ist, sei bemerkt, dass die vorliegende Offenbarung beispielhaft gemacht bzw. ausgeführt worden ist, und dass andere Versionen möglich sind. Da verschiedene Veränderungen an der obigen Beschreibung vorgenommen werden könnten, ohne vom Umfang der Offenbarung abzuweichen, ist beabsichtigt, dass jeglicher Gegenstand, der in der obigen Beschreibung enthalten ist oder in den beigefügten Zeichnungen gezeigt ist, veranschaulichend sein soll und nicht im einschränkenden Sinne verwendet wird.
  • Alle Merkmale, die in der Beschreibung, einschließlich der Einsprüche, der Zusammenfassung und den Zeichnungen offenbart sind, und alle Schritte in jedem offenbarten Verfahren oder Prozess, können in irgendeiner Kombination kombiniert werden, außer Kombinationen, wo zumindest einige von diesen Merkmalen und/oder Schritten gegenseitig exklusiv sind. Jedes Merkmal, welches in der Beschreibung einschließlich der Ansprüche, der Zusammenfassung und der Zeichnungen offenbart wird, kann durch alternative Merkmale ersetzt werden, welche zu dem gleichen, einem äquivalenten oder ähnlichen Zweck dienen, außer, wenn dies ausdrücklich in anderer Weise gesagt wird.
  • Außer, wenn dies ausdrücklich in anderer Weise gesagt wird, ist jedes offenbarte Merkmal nur ein Beispiel einer allgemeinen Reihe von äquivalenten oder ähnlichen Merkmalen. Der oben offenbarte Gegenstand soll als veranschaulichend und nicht als einschränkend angesehen werden, und die angehängten Ansprüche sollen alle solche Modifikationen, Verbesserungen und andere Ausführungsbeispiele abdecken, die in den wahren Umfang der vorliegenden Offenbarung fallen. Somit soll der Umfang der vorliegenden Offenbarung im maximalen Ausmaß, welches vom Gesetz zugestanden wird, durch die breitest mögliche Interpretation der folgenden Ansprüche und ihrer äquivalenten Ausführungen bestimmt werden und soll nicht durch die vorangegangene Beschreibung eingeschränkt oder begrenzt sein.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 15499698 [0001]

Claims (20)

  1. Verfahren, welches Folgendes aufweist: Empfangen, und zwar bei einem Prozessor einer Computervorrichtung, einer ersten Suchanfrage während des Editierens eines Designs, wobei die erste Suchanfrage zumindest einen ersten Suchausdruck aufweist; Identifizieren von mindestens einem Stilattribut, welches mit dem Design assoziiert ist; Durchsuchen von mindestens einer Datenbank basierend auf dem ersten Suchausdruck, dem mindestens einen Stilattribut oder einer Kombination davon, um Suchergebnisse zu erzeugen; und Ausgeben der Suchergebnisse, wobei das erste Suchergebnis der Suchergebnisse höher als ein zweites Suchergebnis der Suchergebnisse im Rang eingeordnet wird, und zwar basierend auf einer Bestimmung, dass das erste Suchergebnis besser zu dem mindestens einen Stilattribut, welches mit dem Design assoziiert ist, passt als das zweite Suchergebnis.
  2. Verfahren nach Anspruch 1, wobei das mindestens eine Stilattribut eine Farbe, eine Anzahl von Farben, eine Farbpalette, eine Linienfarbe, eine Liniendicke, eine Anzahl von Linien, eine Anzahl von Kanten, einen Umriss, eine Umrissfarbe, eine Anwesenheit oder eine Abwesenheit eines Gradienten, eine Größe, eine Schriftart, ein Schriftstil, ein Verhältnis von Transparenten zu vollen Pixeln, eine Anwesenheit oder eine Abwesenheit von Vektor- oder Rasterbildern, eine Anwesenheit oder eine Abwesenheit von vollen Objekten oder Linienobjekten, ein Seitenverhältnis, eine Ansicht, ein Schlüsselwort, eine Stimmung, eine Information bezüglich eines Autors oder eines Beitragenden eines Bildes oder irgendeine Kombination davon anzeigt.
  3. Verfahren nach Anspruch 1, wobei das mindestens eine Stilattribut basierend auf einem Stildokument identifiziert wird, welches mit dem Design assoziiert ist.
  4. Verfahren nach Anspruch 3, wobei das Stildokument separat von dem Design gespeichert ist und separat von dem Design zugänglich ist.
  5. Verfahren nach Anspruch 3, welches weiter aufweist, das Stildokument ansprechend auf einen Editierungsvorgang des Designs hin zu aktualisieren.
  6. Verfahren nach Anspruch 1, wobei die mindestens eine Datenbank basierend auf einer zweiten Suchanfrage durchsucht wird, die erzeugt wird durch Verbessern der ersten Suchanfrage basierend auf dem mindestens einen Stilattribut.
  7. Verfahren nach Anspruch 1, welches weiter aufweist, die Suchergebnisse basierend darauf, im Rang einzuordnen, ob ein Stilattribut von jedem Suchergebnis zu dem mindestens einem Stilattribut passt, welches mit dem Design assoziiert ist.
  8. Verfahren nach Anspruch 1, wobei zumindest eines der Suchergebnisse mit einem Stilattribut assoziiert ist, welches über eine Nutzereingabe eingegeben wurde.
  9. Verfahren nach Anspruch 1, wobei zumindest eines der Suchergebnisse mit einem Stilattribut assoziiert ist, welches automatisch basierend auf einem oder mehreren von Folgendem bestimmt wurde: Computervisionsprozesse, auf neuralen Netzwerken basierendem Classifier bzw. Klassifizierungselement, Maschinenlernalgorithmus oder Kombinationen davon.
  10. Verfahren nach Anspruch 1, wobei das Bestimmen, dass das erste Suchergebnis besser zu dem mindestens einen Stilattribut passt, welches mit dem Design assoziiert ist, als das zweite Suchergebnis, Folgendes aufweist: Erzeugen eines ersten Hash-Wertes basierend auf einem oder mehreren Stilattributen, das bzw. die mit dem ersten Suchergebnis assoziiert ist bzw. sind; Erzeugen eines zweiten Hash-Wertes basierend auf einem oder mehreren Stilattributen, das bzw. die mit dem zweiten Suchergebnis assoziiert ist bzw. sind; Erzeugen eines dritten Hash-Wertes basierend auf dem mindestens einen Stilattribut, welches mit dem Design assoziiert ist; und Bestimmen, dass eine erste Distanz zwischen dem ersten Hash-Wert und dem dritten Hash-Wert geringer ist als eine zweite Distanz zwischen dem zweiten Hash-Wert und dem dritten Hash-Wert.
  11. Verfahren nach Anspruch 1, wobei eine Vielzahl von Stilattributen mit dem Design assoziiert ist, wobei eine erste Anzahl von Stilattributen, die mit dem ersten Suchergebnis assoziiert sind, zu der Vielzahl von Stilattributen passt, wobei eine zweite Anzahl von Stilattributen, die mit dem zweiten Suchergebnis assoziiert sind, zu der Vielzahl von Stilattributen passt, und wobei die erste Anzahl größer ist als die zweite Anzahl.
  12. Vorrichtung, die Folgendes aufweist: zumindest einen Prozessor; einen Speicher, der Instruktionen speichert, die durch den Prozessor ausgeführt werden können, um Operationen auszuführen, welche Folgendes aufweisen: Empfangen einer ersten Suchanfrage während des Editierens eines Designs, wobei die erste Suchanfrage zumindest einen ersten Suchausdruck aufweist; Identifizieren von mindestens einem Stilattribut, welches mit dem Design assoziiert ist; Durchsuchen von mindestens einer Datenbank basierend auf dem ersten Suchausdruck, dem mindestens einen Stilattribut oder einer Kombination davon, um Suchergebnisse zu erzeugen; und Ausgeben der Suchergebnisse, wobei das erste Suchergebnis der Suchergebnisse höher als ein zweites Suchergebnis der Suchergebnisse im Rang eingeordnet wird, und zwar basierend auf einer Bestimmung, dass das erste Suchergebnis besser zu dem mindestens einen Stilattribut, welches mit dem Design assoziiert ist, passt als das zweite Suchergebnis.
  13. Vorrichtung nach Anspruch 12, die weiter zumindest eine Datenspeichervorrichtung aufweist, die konfiguriert ist, um das Design zu speichern.
  14. Vorrichtung nach Anspruch 13, wobei die mindestens eine Datenspeichervorrichtung weiter konfiguriert ist, um ein Stildokument zu speichern, welches mit dem Design assoziiert ist, wobei das Stildokument das mindestens eine Stilattribut identifiziert, und wobei das Stildokument separat vom Design zugänglich ist.
  15. Vorrichtung nach Anspruch 12, welche weiter mindestens eine Netzwerkschnittstelle aufweist, die konfiguriert ist, um die erste Suchanfrage von einer Berechnungs- bzw. Computervorrichtung zu empfangen und die Suchergebnisse an die Computervorrichtung auszugeben.
  16. Computerlesbare Speichervorrichtung, welche Instruktionen speichert, die, wenn sie ausgeführt werden, einen Prozessor veranlassen, Operationen auszuführen, welche Folgendes aufweisen: Empfangen einer ersten Suchanfrage während des Editierens eines Designs, wobei die erste Suchanfrage zumindest einen ersten Suchausdruck aufweist; Identifizieren von mindestens einem Stilattribut, welches mit dem Design assoziiert ist; Durchsuchen von mindestens einer Datenbank basierend auf dem ersten Suchausdruck, dem mindestens einen Stilattribut oder einer Kombination davon, um Suchergebnisse zu erzeugen; und Ausgeben der Suchergebnisse, wobei das erste Suchergebnis der Suchergebnisse höher als ein zweites Suchergebnis der Suchergebnisse im Rang eingeordnet wird, und zwar basierend auf einer Bestimmung, dass das erste Suchergebnis besser zu dem mindestens einen Stilattribut, welches mit dem Design assoziiert ist, passt als das zweite Suchergebnis.
  17. Prozessorlesbare Speichervorrichtung nach Anspruch 16, wobei das zumindest eine Stilattribut basierend auf einem Stildokument identifiziert wird, welches mit dem Design assoziiert ist, und wobei die Operationen weiter aufweisen, das Stildokument ansprechend auf einen Editiervorgang des Designs zu aktualisieren.
  18. Prozessorlesbare Speichervorrichtung nach Anspruch 16, wobei das Bestimmen, dass das erste Suchergebnis besser zu dem mindestens einen Stilattribut, welches mit dem Design assoziiert ist, passt als das zweite Suchergebnis, Folgendes aufweist: Erzeugen eines ersten Hash-Wertes basierend auf einem oder mehreren Stilattributen, das bzw. die mit dem ersten Suchergebnis assoziiert ist bzw. sind; Erzeugen eines zweiten Hash-Wertes basierend auf einem oder mehreren Stilattributen, das bzw. die mit dem zweiten Suchergebnis assoziiert ist bzw. sind; Erzeugen eines dritten Hash-Wertes basierend auf dem mindestens einen Stilattribut, welches mit dem Design assoziiert ist; und Bestimmen, dass eine erste Distanz zwischen dem ersten Hash-Wert und dem dritten Hash-Wert geringer ist als eine zweite Distanz zwischen dem zweiten Hash-Wert und dem dritten Hash-Wert.
  19. Prozessorlesbare Speichervorrichtung nach Anspruch 16, wobei eine Vielzahl von Stilattributen mit dem Design assoziiert ist, wobei eine erste Anzahl von Stilattributen, die mit dem ersten Suchergebnis assoziiert sind, zu der Vielzahl von Stilattributen passt, wobei eine zweite Anzahl von Stilattributen, die mit dem zweiten Suchergebnis assoziiert sind, zu der Vielzahl von Stilattributen passt, und wobei die erste Anzahl größer ist als die zweite Anzahl.
  20. Prozessorlesbare Speichervorrichtung nach Anspruch 16, wobei ein drittes Suchergebnis der Suchergebnisse höher im Rang eingeordnet ist als das zweite Suchergebnis der Suchergebnisse, und zwar basierend auf der Bestimmung, dass das dritte Suchergebnis ein Stilattribut hat, welches komplementär zu dem mindestens einen Stilattribut ist, welches mit dem Design assoziiert ist.
DE112018002208.0T 2017-04-27 2018-04-27 System und Verfahren zum Zuordnen von Stilattributen Pending DE112018002208T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/499,698 2017-04-27
US15/499,698 US10042935B1 (en) 2017-04-27 2017-04-27 Systems and methods of matching style attributes
PCT/IB2018/052922 WO2018198080A1 (en) 2017-04-27 2018-04-27 Systems and methods of matching style attributes

Publications (1)

Publication Number Publication Date
DE112018002208T5 true DE112018002208T5 (de) 2020-11-26

Family

ID=63013966

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112018002208.0T Pending DE112018002208T5 (de) 2017-04-27 2018-04-27 System und Verfahren zum Zuordnen von Stilattributen

Country Status (6)

Country Link
US (2) US10042935B1 (de)
CN (1) CN110537179B (de)
AU (1) AU2018260500B2 (de)
DE (1) DE112018002208T5 (de)
GB (1) GB2574969A (de)
WO (1) WO2018198080A1 (de)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10685057B1 (en) * 2016-12-30 2020-06-16 Shutterstock, Inc. Style modification of images in search results
US10430455B2 (en) * 2017-06-09 2019-10-01 Adobe Inc. Sketch and style based image retrieval
CN107562805B (zh) * 2017-08-08 2020-04-03 浙江大华技术股份有限公司 一种以图搜图的方法及装置
US20190279084A1 (en) * 2017-08-15 2019-09-12 Toonimo, Inc. System and method for element detection and identification of changing elements on a web page
USD896248S1 (en) * 2018-05-12 2020-09-15 Canva Pty Ltd. Display screen or portion thereof with an animated graphical user interface
US11120070B2 (en) * 2018-05-21 2021-09-14 Microsoft Technology Licensing, Llc System and method for attribute-based visual search over a computer communication network
WO2020055733A1 (en) * 2018-09-10 2020-03-19 Rewyndr, Llc Image management with region-based metadata indexing
US11436764B2 (en) * 2019-08-06 2022-09-06 Oracle International Corporation Dynamic generation and delivery of scalable graphic images in web applications
CN111986083A (zh) * 2020-07-29 2020-11-24 上海阿几网络技术有限公司 一种图像自动组合的方法和装置
US11423028B2 (en) 2020-08-21 2022-08-23 Cyborg Inc. System and method for encrypted search using hash vectorization models
US11720651B2 (en) 2021-01-28 2023-08-08 Adobe Inc. Text-conditioned image search based on transformation, aggregation, and composition of visio-linguistic features
US11874902B2 (en) * 2021-01-28 2024-01-16 Adobe Inc. Text conditioned image search based on dual-disentangled feature composition
US12003525B2 (en) * 2021-04-02 2024-06-04 Siemens Aktiengesellschaft Development security operations on the edge of the network
US11734496B2 (en) * 2021-11-16 2023-08-22 Canva Pty Ltd Systems and methods for generating webpage data for rendering a design
WO2024064103A1 (en) * 2022-09-19 2024-03-28 Shutterstock, Inc. Media file recommendations for a search engine
CN116204091A (zh) * 2023-05-04 2023-06-02 北京尽微致广信息技术有限公司 一种样式设置方法及装置、存储介质及电子设备

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5802361A (en) * 1994-09-30 1998-09-01 Apple Computer, Inc. Method and system for searching graphic images and videos
GB2381340A (en) * 2001-10-27 2003-04-30 Hewlett Packard Co Document generation in a distributed information network
US20070250501A1 (en) * 2005-09-27 2007-10-25 Grubb Michael L Search result delivery engine
US8661012B1 (en) * 2006-12-29 2014-02-25 Google Inc. Ensuring that a synonym for a query phrase does not drop information present in the query phrase
US10210179B2 (en) * 2008-11-18 2019-02-19 Excalibur Ip, Llc Dynamic feature weighting
US8406573B2 (en) * 2008-12-22 2013-03-26 Microsoft Corporation Interactively ranking image search results using color layout relevance
US8181106B2 (en) * 2009-03-18 2012-05-15 Microsoft Corporation Use of overriding templates associated with customizable elements when editing a web page
US8417585B2 (en) * 2009-09-04 2013-04-09 Cafepress.Com Search methods for creating designs for merchandise
US8352494B1 (en) * 2009-12-07 2013-01-08 Google Inc. Distributed image search
WO2011136766A1 (en) * 2010-04-28 2011-11-03 Hewlett-Packard Development Company, L.P. System and method for automatically providing a graphical layout based on an example graphic layout
US9595298B2 (en) * 2012-07-18 2017-03-14 Microsoft Technology Licensing, Llc Transforming data to create layouts
CN105488068B (zh) * 2014-09-19 2018-11-16 阿里巴巴集团控股有限公司 搜索音乐和建立索引的方法及装置、搜索结果判断方法
US10068179B2 (en) * 2015-07-29 2018-09-04 Adobe Systems Incorporated Positioning text in digital designs based on an underlying image

Also Published As

Publication number Publication date
AU2018260500B2 (en) 2022-12-08
CN110537179A (zh) 2019-12-03
GB2574969A (en) 2019-12-25
GB201913838D0 (en) 2019-11-06
US10042935B1 (en) 2018-08-07
AU2018260500A1 (en) 2019-10-17
US20180329996A1 (en) 2018-11-15
WO2018198080A1 (en) 2018-11-01
US10726081B2 (en) 2020-07-28
CN110537179B (zh) 2023-09-12

Similar Documents

Publication Publication Date Title
DE112018002208T5 (de) System und Verfahren zum Zuordnen von Stilattributen
AU2020230268B2 (en) Systems and methods of generating a design based on a design template and another design
US11461348B2 (en) Automated presentation of information using infographics
US9639780B2 (en) System and method for improved classification
DE102013017085A1 (de) System für eine tiefe Verknüpfung und Suchmaschinenunterstützung für Webseiten, in die eine Drittanwendung und Komponenten integriert sind
DE202020106393U1 (de) Datenaustausch
DE202013005878U1 (de) Elektronisches Nachrichtenübermittlungssystem unter Verwendung von sozialen Klassifizierungsregeln
DE112016001453T5 (de) Navigieren von Ereignisinformation
US9483740B1 (en) Automated data classification
DE102010023691A1 (de) Gemeinsame Nutzung von dynamischen Inhaltsvoreinstellungen und Verhalten von EDV-Geräten
DE202015009283U1 (de) Klassifizierung und Speicherung von Dokumenten
DE112016000851T5 (de) Algorithmisches Identifizieren von kindgerechten Inhalten ohne menschliches Zutun
US9516089B1 (en) Identifying and processing a number of features identified in a document to determine a type of the document
US20200073925A1 (en) Method and system for generating a website from collected content
DE112017000039T5 (de) Erzeugen von Deeplinks für Anwendungen auf Basis von mehrstufigen Verweisdaten
AU2020301722B2 (en) Systems and methods of generating a design based on a user search query
US11328030B2 (en) Systems and methods of generating or updating a design based on a universal resource locator (URL)
DE112008001807T5 (de) Betrachten von Internet-Inhalt
JP5096997B2 (ja) 類似配色生成装置、類似配色生成方法、類似配色生成プログラム
WO2013075745A1 (de) Verfahren und system zum erstellen von nutzermodellen
DE112021002152T5 (de) Systeme und verfahren zum verwalten digitaler designformate bei einer vielzahl von onlinediensten
DE202022101222U1 (de) Ein automatisch skalierbares System für optimierte Arbeitsempfehlungen
DE202023105431U1 (de) Informationsverarbeitungsvorrichtung
DE102013007748A1 (de) Verfahren zum Erstellen elektronisch portierbarer Dokumente zum E-Book ähnlichen Durchblättern auf marktüblichen Browsern in anwendungsoptimierter Ausprägung für Online-, Offline-, und Print-Anwendungen
DE102023120666A1 (de) Inhaltsgeschwindigkeit und hyper-personalisierung vermittels generativer ki

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0017300000

Ipc: G06F0016500000