Update on the Faroo website and API service interruption.

Share onTweet about this on TwitterShare on FacebookShare on Google+Share on RedditBuffer this pageShare on LinkedIn

Both Faroo website (www.faroo.com) and API are unavailable since 26/05/2016 03:26:05. We are working to fix it.

The server is up, but not reachable from internet, even if booted from a fresh rescue OS with default configuration. Therefore we suspect there is a problem with the network, network adapter, hardware firewall or IP filtering.

After hours on the phone with their support staff our hosting company 1und1 was not yet able to fix the problem. They agreed to reopen a ticket for their server admins and keep us updated.

Currently it does not look like a quick fix, but setting up the whole system from scratch at a different hosting company.

Visit https://twitter.com/faroo_p2p for updates.

We are aware that the API outage is affecting both you and your users and we are working to resolve the issue and bring the service back on as soon as possible.

Share onTweet about this on TwitterShare on FacebookShare on Google+Share on RedditBuffer this pageShare on LinkedIn

Very fast Data cleaning of product names, company names & street names

Share onTweet about this on TwitterShare on FacebookShare on Google+Share on RedditBuffer this pageShare on LinkedIn

The correction of product names, company names, street names & addresses is a frequent task of data cleaning and deduplication. Often those names are misspelled, either due to OCR errors or mistakes of the human data collectors.

The difference is that those names often consist of multiple words, white space and punctuation. For large data or even Big data applications also speed is very important.

Our algorithm supports both requirements and is up to 1 million times faster compared to conventional approaches (see benchmark). The C# source code is available as Open Source in another Blog post and GitHub). A simple modification of the original source code will add support of names with multiple words, white space and punctuation:

Instead of 357 CreateDictionary("big.txt",""); which parses the a given text file into single words simply use CreateDictionaryEntry("company/street/product name", "") to add company, street & product names to the dictionary.

Then with Correct("misspelled street",""); you will get the correct street name from the dictionary. In line 35..38 you may specify whether you want only the best match or all matches within a certain edit distance (number of character operations difference):

35 private static int verbose = 0;
36 //0: top suggestion
37 //1: all suggestions of smallest edit distance
38 //2: all suggestions <= editDistanceMax (slower, no early termination)

For every similar term (or phrase) found in the dictionary the algorithm gives you the Damerau-Levenshtein edit distance to your input term (look for suggestion.distance in the source code). The edit distance describes how many characters have been added, deleted, altered or transposed between the input term and the dictionary term. This is a measure of similarity between the input term (or phrase) and similar terms (or phrases) found in the dictionary.

Share onTweet about this on TwitterShare on FacebookShare on Google+Share on RedditBuffer this pageShare on LinkedIn

Fast approximate string matching with large edit distances in Big Data

Share onTweet about this on TwitterShare on FacebookShare on Google+Share on RedditBuffer this pageShare on LinkedIn

1000x faster

1 million times faster spelling correction for edit distance 3
After my blog post 1000x times faster spelling correction got more than 50.000 views I revisited both algorithm and implementation to see if it could be further improved.

While the basic idea of Symmetric Delete spelling correction algorithm remains unchanged the implementation has been significantly improved to unleash the full potential of the algorithm.

This results in a 10 times faster spelling correction and 5 times faster dictionary generation and 2…7 times less memory consumption in v3.0 compared to v1.6 .

Compared to Peter Norvig’s algorithm it is now 1,000,000 times faster for edit distance=3 and 10,000 times faster for edit distance=2.

In Norvig’s tests 76% of spelling errors had an edit distance 1. 98.9% of spelling errors got covered with edit distance 2. For simple spelling correction of natural language with edit distance 2 the accuracy is good enough and the performance Norvig’s algorithm is sufficient.

The speed of our algorithm enables edit distance 3 for spell checking and thus improves the accuracy by 1%. Beyond the accuracy improvement the speed advantage of our algorithm is useful for automatic spelling correction in large corpora as well as in search engines, where many requests in parallel need to be processed.

Billion times faster approximate string matching for edit distance > 4
But the true potential of the algorithm lies in edit distances > 3 and beyond spell checking.

The many orders of magnitude faster algorithm opens up new application fields for approximate string matching and a scaling sufficient for big data and real-time. Our algorithm enables fast approximate string and pattern matching with long strings or feature vectors, huge alphabets, large edit distances, in very large data bases, with many concurrent processes and real time requirements.

Application fields:

  • Spelling correction in search engines, with many parallel requests
  • Automatic Spelling correction in large corpora
  • Genome data analysis,
  • Matching DNA sequences
  • Browser fingerprint analysis
  • Realtime Image recognition (search by image, autonomous cars, medicine)
  • Face recognition
  • Iris recognition
  • Speech recognition
  • Voice recognition
  • Feature recognition
  • Fingerprint identification
  • Signature Recognition
  • Plagiarism detection (in music /in text)
  • Optical character recognition
  • Audio fingerprinting
  • Fraud detection
  • Address deduplication
  • Misspelled names recognition
  • Spectroscopy based chemical and biological material identification
  • File revisioning
  • Spam detection
  • Similarity search,
  • Similarity matching
  • Approximate string matching,
  • Fuzzy string matching,
  • Fuzzy string comparison,
  • Fuzzy string search,
  • Pattern matching,
  • Data cleaning
  • and many more

Edit distance metrics
While we are using the Damerau-Levenshtein distance for spelling correction for other applications it could be easily exchanged with the Levenshtein distance or similar other edit distances by simply modifying the respective function.

In our algorithm the speed of the edit distance calculation has only a very small influence on the overall lookup speed. That’s why we are using only a basic implementation rather than a more sophisticated variant.

Benchmark
Because of all the applications for approximate string matching beyond spell check we extended the benchmark to lookups with higher edit distances. That’s where the power of the symmetric delete algorithm truly shines and excels other solutions. With previous spell checking algorithms the required time explodes with larger edit distances.

Below are the results of a benchmark of our Symmetric Delete algorithm and Peter Norvig’s algorithm for different edit distances, each with 1000 lookups:

input term best correction edit distance maximum edit distance SymSpell
ms per 1000 lookups
Peter Norvig
ms per 1000 lookups
factor
marsupilamimarsupilami no correction* >20 9 568,568,000
marsupilamimarsupilami no correction >20 8 161,275,000
marsupilamimarsupilami no correction >20 7 37,590,000
marsupilamimarsupilami no correction >20 6 5,528,000
marsupilamimarsupilami no correction >20 5 679,000
marsupilamimarsupilami no correction >20 4 46,592
marsupilami no correction >4 4 459
marsupilami no correction >4 3 159 159,421,000 1:1,000,000
marsupilami no correction >4 2 31 257,597 1:8,310
marsupilami no correction >4 1 4 359 1:90
hzjuwyzacamodation accomodation 10 10 7,598,000
otuwyzacamodation accomodation 9 9 1,727,000
tuwyzacamodation accomodation 8 8 316,023
uwyzacamodation accomodation 7 7 78,647
wyzacamodation accomodation 6 6 19,599
yzacamodation accomodation 5 5 2,963
zacamodation accomodation 4 4 727
acamodation accomodation 3 3 180 173,232,000 1:962,000
acomodation accomodation 2 2 33 397,271 1:12,038
hous hous 1 1 24 161 1:7
house house 0 1 1 3 1:3

*Correct or unknown word, which is not in the dictionary and there are also no suggestions within an edit distance of <=maximum edit distance. This is a quite common case (e.g. rare words, new words, domain specific words, foreign words, names), in applications beyond spelling correction (e.g. fingerprint recognition) it might be the default case.

For the benchmark we used the C# implementation of our SymSpell as well as a faithful C# port from Lorenzo Stoakes of Peter Norvig’s algorithm, which has been extended to support edit distance 3. The use of C# implementations for both cases allows to focus solely on the algorithm and should exclude language specific bias.

Dictionary corpus:
The English text corpus used to generate the dictionary used in the above benchmarks has a size 6.18 MByte, 1,105,286 terms, 29,157 unique terms, longest term with 18 characters.
The dictionary size and the number of indexed terms have almost no influence on the average lookup time of o(1).

Speed gain
The speed advantage grows exponentially with the edit distance:

  • For an edit distance=1 it’s 1 order of magnitude faster,
  • for an edit distance=2 it’s 4 orders of magnitude faster,
  • for an edit distance=3 it’s 6 orders of magnitude faster.
  • for an edit distance=4 it’s 8 orders of magnitude faster.

Computational complexity and findings from benchmark
Our algorithm is constant time ( O(1) time ), i.e. independent of the dictionary size (but depending on the average term length and maximum edit distance), because our index is based on a Hash Table which has an average search time complexity of O(1).

Precalculation cost
In our algorithm we need auxiliary dictionary entries with precalculated deletes and their suggestions. While the number of the auxiliary entries is significant compared to the 29,157 original entries the dictionary size grows only sub-linear with edit distance: log(ed)

maximum edit distance number of dictionary entries (including precalculated deletes)
20 11,715,602
15 11,715,602
10 11,639,067
9 11,433,097
8 10,952,582
7 10,012,557
6 8,471,873
5 6,389,913
4 4,116,771
3 2,151,998
2 848,496
1 223,134

The precalculation costs consist of additional memory usage and creation time for the auxiliary delete entries in the dictionary:

cost maximum edit distance SymSpell Peter Norvig factor
memory usage 1 32 MB 229 MB 1:7.2
memory usage 2 87 MB 229 MB 1:2.6
memory usage 3 187 MB 230 MB 1:1.2
dictionary creation time 1 3341 ms 3640 ms 1:1.1
dictionary creation time 2 4293 ms 3566 ms 1:0.8
dictionary creation time 3 7962 ms 3530 ms 1:0.4

Due to an efficient implementation those costs are negligible for edit distances <=3:

  • 7 times less memory requirement and a similar dictionary creation time (ed=1).
  • 2 times less memory requirement and a similar dictionary creation time (ed=2).
  • similar memory requirement and a 2 times higher dictionary creation time (ed=3).

Source code
The C# implementation of our Symmetric Delete Spelling Correction algorithm is released on GitHub as Open Source under the GNU Lesser General Public License (LGPL).

C# (original)
https://github.com/wolfgarbe/symspell

Ports
The following third party ports to other programming languages have not been tested by myself whether they are an exact port, error free, provide identical results or are as fast as the original algorithm:

Java (third party port)
https://github.com/gpranav88/symspell

Javascript (third party port)
https://github.com/itslenny/SymSpell.js
https://github.com/dongyuwei/SymSpell
https://github.com/IceCreamYou/SymSpell

Swift (third party port)
https://github.com/Archivus/SymSpell

Ruby (third party port)
https://github.com/PhilT/symspell

Python (third party port)
https://github.com/dominedo/spark-n-spell/blob/master/symspell_python.py

Comparison to other approaches and common misconceptions

A Trie as standalone spelling correction
Why don’t you use a Trie instead of your algorithm?
Tries have a comparable search performance to our approach. But a Trie is a prefix tree, which requires a common prefix. This makes it suitable for autocomplete or search suggestions, but not applicable for spell checking. If your typing error is e.g. in the first letter, than you have no common prefix, hence the Trie will not work for spelling correction.

A Trie as replacement for the hash table
Why don’t you use a Trie for the dictionary instead of the hash table?
Of course you could replace the hash table with a Trie (that is just a arbitrary lookup component of O(1) speed for a *single* lookup) at the cost of added code complexity, but without performance gain.
A HashTable is slower than a Trie only if there are collisions, which are unlikely in our case. For a maximum edit distance of 2 and an average word length of 5 and 100,000 dictionary entries we need to additionally store (and hash) 1,500,000 deletes. With a 32 bit hash (4,294,967,296 possible distinct hashes) the collision probability seems negligible.
With a good hash function even a similarity of terms (locality) should not lead to increased collisions, if not especially desired e.g. with Locality sensitive hashing.

BK-Trees
Would be BK-Trees an alternative option?
Yes, but BK-Trees have a search time of O(log dictionary_size), whereas our algorithm is constant time ( O(1) time ), i.e. independent of the dictionary size.

Ternary search tree
Why don’t you use a ternary search tree?
The lookup time in a Ternary Search Tree is O(log n), while it is only 0(1) in our solution. Also, while a Ternary Search Tree could be used for the dictionary lookup instead of a hash table, it doesn’t address the spelling error candidate generation. And the tremendous reduction of the number of spelling error candidates to be looked-up in the dictionary is the true innovation of our Symmetric Delete Spelling Correction algorithm.

Precalculation
Does the speed advantage simply comes from precalulation of candidates?
No! The speed is a result of the combination of all three components outlined below:

  • Pre-calculation, i.e. the generation of possible spelling error variants (deletes only) and storing them at index time is just the first precondition.
  • A fast index access at search time by using a hash table with an average search time complexity of O(1) is the second precondition.
  • But only our Symmetric Delete Spelling Correction on top of this allows to bring this O(1) speed to spell checking, because it allows a tremendous reduction of the number of spelling error candidates to be pre-calculated (generated and indexed).
  • Applying pre-calculation to Norvig’s approach would not be feasible because pre-calculating all possible delete + transpose + replace + insert candidates of all terms would result in a huge time and space consumption.

Correction vs. Completion
How can I add auto completion similar to Google’s Autocompletion?
There is a difference between correction and suggestion/completion!

Correction: Find the correct word for a word which contains errors. Missing letters/errors can be on start/middle/end of the word. We can find only words equal/below the maximum edit distance, as the computational complexity is dependent from the edit distance.

Suggestion/completion: Find the complete word for an already typed substring (prefix!). Missing letters can be only at the end of the word. We can find words/word combinations of any length, as the computational complexity is independent from edit distance and word length.

The code above implements only correction, but not suggestion/completion!
It still finds suggestions/completions equal/below the maximum edit distance, i.e. it starts to show words only if there are <= 2 letters missing (for maximum edit distance=2). Nevertheless the code can be extended to handle both correction and suggestion/completion. During the process of dictionary creation you have to add also all substrings (prefixes only!) of a word to the dictionary, when you are adding a new word to the dictionary. All substring entries of a specific term then have to contain a link to the complete term. Alternatively, for suggestion/completion you could use a completely different algorithm/structure like a Trie, which inherently lists all complete words for a given prefix.

Share onTweet about this on TwitterShare on FacebookShare on Google+Share on RedditBuffer this pageShare on LinkedIn

How 1000 Apps are using the FAROO Search API

Share onTweet about this on TwitterShare on FacebookShare on Google+Share on RedditBuffer this pageShare on LinkedIn

 
During the last 9 months more than 1000 companies and developers subscribed to our API, with more than 100 new applications every month.

API subscriptions

Today we want to share what are the typical use cases for our search API:

commercial_use_by_segment

commercial_use_by_region

academic_use_by_region

An interesting discovery is the fact that our search API is mainly used to data mine the big data of the web, instead of plain web search.

We turn the whole web into a giant database which is queried and analyzed by AI services, Data mining and Business intelligence applications. Big data becomes accessible and can be queried within milliseconds. Apps save the lead time for crawling the vast amount of pages themselves.

Share onTweet about this on TwitterShare on FacebookShare on Google+Share on RedditBuffer this pageShare on LinkedIn

FAROO introduces API keys

Share onTweet about this on TwitterShare on FacebookShare on Google+Share on RedditBuffer this pageShare on LinkedIn

keyWith 1 million free queries per months we offer a really ample API rate limit. Three orders of magnitude of what the incumbents provide.

But some users still use multiple servers, fake user agents & referers to circumvent the already generous rate limit. Unfortunately it seems that abuse is proportional to freedom and goodwill. This is not only unfair, but also impacts reliability, performance and long term perspective of our free service for all users.

While the API stays free, from 1. July 2013 we are introducing API keys for better service protection. The new API key registration adds an extra step before using the API, but it offers also some benefits:

  • Better prevention of API abuse, ensuring a reliable service for everyone.
  • We can inform you whenever the API is about to change.
  • We can inform you when you are exceeding the rate limit, instead of blocking.
  • We can inform you about syntax or encoding problems of your query.
  • As reference for support requests.

If your application is using the FAROO API, and you do not have an API key yet, please register as soon as possible to ensure an uninterrupted service.

We hope you continue to enjoy our API and build the search you want!

Share onTweet about this on TwitterShare on FacebookShare on Google+Share on RedditBuffer this pageShare on LinkedIn

Leistungsschutzrecht aus Sicht einer Suchmaschine

Share onTweet about this on TwitterShare on FacebookShare on Google+Share on RedditBuffer this pageShare on LinkedIn

Lex Google from a search engines perspective – a German law threatening the internet as we know it.

Go directly to the robots.txt extension proposal ‘Freedom of Citation License v1.0″
disarm
Worum gehts

Leistungsschutzrecht für Presseverlage durch das Achte Gesetz zur Änderung des Urheberrechtsgesetzes

Hier die entscheidenden Passagen:

§ 87f (1) Der Hersteller eines Presseerzeugnisses (Presseverleger) hat das ausschließliche Recht, das Presseerzeugnis oder Teile hiervon zu gewerblichen Zwecken öffentlich zugänglich zu machen, es sei denn, es handelt sich um einzelne Wörter oder kleinste Textausschnitte. Ist das Presseerzeugnis in einem Unternehmen hergestellt worden, so gilt der Inhaber des Unternehmens als Hersteller.

§ 87g (2) Das Recht erlischt ein Jahr nach der Veröffentlichung des Presseerzeugnisses.

§ 87g (4) Zulässig ist die öffentliche Zugänglichmachung von Presseerzeugnissen oder Teilen hiervon, soweit sie nicht durch gewerbliche Anbieter von
Suchmaschinen oder gewerbliche Anbieter von Diensten erfolgt, die Inhalte entsprechend aufbereiten.

Dieses Gesetz tritt am … [einsetzen: erster Tag des dritten auf die Verkündung im Bundesgesetzblatt folgenden Kalendermonats] in Kraft.

Als Begründung für die Ausnahme einzelner Wörter oder kleinster Textausschnitte von der Vergütungspflicht (§ 87f – fett markiert) wurde das Grundrecht auf Information genannt und darauf verwiesen, dass der Bundesgerichtshof 2011 entschieden hatte, dass Google „Thumbnails“ genannte Vorschaubilder in Suchergebnissen zeigen darf.

Update Juni 2014
Trotzdem klagt die VG Media gegen Google auf Zahlungen nach dem Leistungschutzrecht. Laut Heise werden Forderungen auch gegenüber der Deutsche Telekom, Microsoft, Yahoo sowie 1&1 erhoben. An der VG Media sind die Verlage Springer (Bild, Welt), Burda (Focus), Funke (WAZ, Hamburger Abendblatt), Madsack (Hannoversche Allgemeine, Leipziger Volkszeitung), M. DuMont Schauberg (Kölner Stadtanzeiger, Express) und Aschendorff (Westfälische Nachrichten) beteiligt.
Dieser zu erwartende Rechtsstreit ist Folge der von uns kritisierten Unklarheit des Gesetzes bezüglich der vergütungsfreien Anzahl von Worten/Zeichen.

Unklarheit mit Methode

Ein Gesetz sollte Rechtssicherheit schaffen und nicht Unsicherheit und Grauzonen.
Rahmenbedingungen müssen klar definiert sein, und Angebote die darunter fallen gekennzeichnet werden, und zwar maschinenlesbar:

• Was ist ein Presseerzeugnis und wer ist damit ein Presseverleger (zählen Blogs dazu? Wenn ja, dann lehnt die Mehrheit der Presseverleger das Gesetz zu ihrem vermeintlichen Schutz ab, wenn nein weshalb wird dann eine Minderheit privilegiert und das gesamte Internet als Geisel zur Durchsetzung ihrer Interessen genommen)
• Welche Angebote stammen von einem Presseverleger und fallen damit unter das Gesetz, wenn deren Kennzeichnung nicht vorgeschrieben ist
• Wie viele Worte/Zeichen sind zulässig (ohne diese Angabe ist alles was länger als zwei Worte ist Russisch Roulette)
• Fallen Worte in einem Link (sprechende URL) auch unter die Beschränkung? Eventuell wird dadurch eine Verlinkung unmöglich.
• Dürfen Sprechende URL auch angezeigt werden, oder müssen sie vor dem Nutzer verborgen werden (der weiß dann nicht auf was er klickt)
• Werden Worte in einem Link (Sprechende URL) auch gezählt, wenn Titel und sprechende URL identisch sind, wird doppelt gezählt?
• Wann ist ein Jahr vorbei (wie erfährt man das Veröffentlichungsdatum, wenn dessen Angabe nicht vorgeschrieben ist)
• Was ist gewerbliche Nutzung? Ist der Blog eines Unternehmens eine solche, oder ein Blog mit Werbung? Oder definiert sich gewerbliche Nutzung über eine große Anzahl von Nutzern oder veröffentlichten Zitaten (analog Filesharing Urteilen)

Eine zentrale Clearingstelle sollte Angaben über Veröffentlichungsdatum und ob eine Seite dem Leistungsschutzrecht unterliegt manipulationssicher verwalten, um Abmahnfallen zu vermeiden.

Die Mär vom Parasiten

Die offizielle Begründung: „Der Presseverleger wird so vor der systematischen Nutzung seiner verlegerischen Leistung durch gewerbliche Anbieter von Suchmaschinen und von gewerblichen Diensten, die Inhalte entsprechend aufbereiten, geschützt, die ihr spezifisches Geschäftsmodell gerade auf diese Nutzung ausgerichtet haben.“

Nun, Suchmaschinen haben ihr Geschäftsmodell nicht auf die systematische Nutzung verlegerischer Leistung aufgebaut. Suchmaschinen gab es lange bevor die Presseverleger das Internet für sich entdeckt haben. Sie erbringen eine eigenständige Leistung der Indizierung von Informationen um deren quellenübergreifende Auffindbarkeit sicherzustellen. Die Mehrzahl der Suchergebnisse stammt eben nicht von den Presseverlegern, sondern von Blogs, Foren, Unternehmenswebseiten, Wikipedia, Quora, Stackoverflow, Linkedin, Amazon, Social Networks, Open Source Projekten, akademische Seiten, privaten Homepages¸ Vereinen, Schulen, Städten und Gemeinden um nur einige zu nennen.

Warum ist Google so erfolgreich? Weil es sich auf Kosten der Presseverleger bereichert? Nein, weil Millionen von Firmen so sehr von einer Auflistung in den Suchergebnissen profitieren, das sie bereit sind dafür viel Geld zu bezahlen. Sowohl für Adwords um in der Werbung aufzutauchen als auch für SEO, um in den organischen Ergebnissen vordere Plätze einzunehmen. Auch die Presseverleger profitieren so sehr von Google, den zusätzlichen Besuchern und Werbeerlösen, dass sie bisher die robots.txt nicht geändert haben, um Google an der „systematischen Nutzung ihrer verlegerischen Leistung“ zu hindern.

Ein alternatives Geschäftsmodell von Suchmaschinen ist übrigens „Paid Inclusion“, also die bezahlte Aufnahme einer Webseite in den Index einer Suchmaschine. Ein Geschäftsmodell das Suchmaschinen vor der systematischen Nutzung ihres Traffics durch gewerbliche Presseverleger schützt, die ihr spezifisches Geschäftsmodell gerade auf diese Nutzung ausgerichtet haben 😉

Suchmaschinen und Aggregatoren sind nicht parasitär, sondern von allen Bürgern in einer Informationsgesellschaft dringend benötigte Tools um die Informationsflut beherrschen zu können, Vielfalt zu sichern und Bias zu vermeiden.

Presseverleger geben Geld aus um Content zu erstellen. Ein großer Teil der Besucher / des Umsatzes kommen über Suchmaschinen (Quelle: Verband Deutscher Zeitschriftenverleger)

Suchmaschinen geben Geld aus um Content durchsuchbar zu machen. Nur ein kleiner Teil der Suchergebnisse / des Umsatzes kommen von Presseverlegern.

Es gibt also eine Symbiose, bei der die Presseverleger von Suchmaschinen deutlich mehr profitieren als umgekehrt:
• wenn der Presseverleger an den Umsätzen der Suchmaschinen beteiligt werden will, müsste er die Suchmaschinen auch an seinen Umsätzen beteiligen
• wenn ein Presseverleger die Suchmaschinen an seinen Kosten beteiligen will, müssten die Suchmaschinen ihn auch an ihren Kosten beteiligen.
• wenn der Presseverleger eine Gebühr für Zitate erhebt, müsste er eine für das Listing seiner Seiten in der Suchmaschine bezahlen.

Wo bleibt das Leistungsschutzrecht für Suchmaschinen?

Entwicklung und Betrieb von Suchmaschinen kosten Geld. Viel Geld. Suchmaschinen sind für die Gesellschaft mindestens so systemrelevant wie Presseverleger, um Transparenz und Vielfalt von Informationen und die Auffindbarkeit vorhandenen Wissens zu sichern.
Warum sollen Presseverleger von den Investitionen der Suchmaschinen kostenlos profitieren, die Suchmaschinen von denen der Presseverleger aber nicht?
Nun gibt es in Deutschland mehr Presseverleger als Suchmaschinen. Werden deshalb Gesetze für Presseverleger und nicht für Suchmaschinen oder gar den Bürger gemacht?

Der Kuckuck im fremden Netz.

Das Internet wurde nicht von den Presseverlegern erfunden. Es wurde erfolgreich durch Offenheit, Austausch und Verlinkung. Den Walled-Garden Gegenentwurf Compuserve kennt heute kaum jemand mehr. Suchmaschinen gab es lange bevor die Presseverleger das Internet für sich entdeckt haben.
An den vielen Besuchern im Internet im Allgemeinen, und an den durch die Suchmaschinen generierten im Speziellen ist man natürlich interessiert, aber die Offenheit die dazu geführt hat will man beseitigen. Fail.

Der Effekt

Alle verlieren. Presseverleger, Suchmaschinen und vor allen die Nutzer.

Es ist kaum zu erwarten das die Suchmaschinen auf Basis eines einseitigen Gesetzes jetzt die Wirtschaftsförderung für Verlage und überholte Geschäftsmodelle übernehmen werden.

Möglicherweise werden jedoch Publikationen deutscher Presseverleger aus dem Index der Suchmaschinen verschwinden, und damit weiter an Bedeutung verlieren. Andererseits ist dies eine Chance für non-mainstream Medien und internationale Player, die Filter Bubble zu durchbrechen und die Informationsvielfalt zu stärken.

Oder Suchmaschinen ziehen sich aus Deutschland zurück, und betreiben den Service zukünftig aus Ländern mit liberaler Gesetzgebung. Wird dann der Zugang zu Google aus Deutschland blockiert wie in China, Nord Korea oder Iran? Endet Freiheit da, wo sie mit Lobbyinteressen kollidiert?

Durch deutsche Politik wird so Suchmaschinen-Innovation aus Deutschland behindert, und damit die Vormachtstellung von US Diensten in Deutschland zementiert.
Startups werden die Aufbürdung zusätzlicher Kosten und das finanzielle Risiko durch Abmahnungen vermeiden und Länder mit freiem Internet wählen. Wenn schon kein Hightech, dann wenigstens Wirtschaftsförderung für Anwälte, Gerichte und Abmahnindustrie.

Die Bundeskanzlerin eröffnet die CeBIT unter dem Motto “Shareconomy”, nachdem gerade ein Gesetz beschlossen wurde dass das Gegenteil bewirkt.

Das Ziel

Neben den ohnehin erheblichen Entwicklungs- und Betriebskosten sollen Suchmaschinen zukünftig auch noch dafür bezahlen, dass sie den Content der Presseverleger indizieren, ihnen Besucher zuführen, und damit deren Werbeumsätze erhöhen.

In einer Marktwirtschaft würden die Suchmaschinen dies zukünftig nur noch für den Großteil der Inhalte tun, die das Leistungsschutzrecht nicht betrifft (Blogs, Foren, Unternehmenswebseiten, Wikipedia, Amazon, Social Networks, Open Source, akademische Seiten, private Homepages¸ Vereine, Schulen, Städte und Gemeinden etc. ).
Die Verlagsangebote würden aus den Suchergebnissen verschwinden, und durch freie Inhalte ersetzt werden.

Die Schwammigkeit des Gesetzes führt jedoch zu Rechtsunsicherheit, die verhindert vom Gesetz betroffene Inhalte eindeutig zu identifizieren und auszuschließen.
Diese Unsicherheit zwingt die Suchmaschinen entweder zur vollständigen Aufgabe, macht sie zum permanenten Ziel der Abmahnindustrie, oder zwingt sie eben doch eine Art Schutzgebühr zu zahlen, selbst um unbehelligt auch nur den Großteil der vom Gesetz nicht berührten (aber als solche nicht identifizierbaren) Inhalte zu indizieren.

Natürlich sollte jeder das Verfügungsrecht über seine Inhalte haben. Dazu gibt es seit vielen Jahren die robots.txt, die von allen großen Suchmaschinen respektiert wird.
Die Presseverleger die sich gegen die kostenlose Nutzung ihrer Inhalte sträuben, haben also ein einfaches Mittel dieses zu verhindern, ganz ohne Gesetz. Sie setzen es jedoch nicht ein, da sie sich bewusst sind in welchem Maße sie von den Suchmaschinen profitieren.
Stattdessen nutzt diese kleine Minderheit der Inhaltsanbieter ihren Einfluss auf Politik und Gesetzgebung, um zusätzlich zum Besucherstrom auch noch einen Revenuestream von den Suchmaschinen zu erzwingen. Kollateralschäden, die die Grundfesten des Internets erschüttern werden dabei billigend in Kauf genommen. Im Ergebnis leiden alle User und Inhaltsanbieter unter der Beschränkung aller Suchergebnisse auf den Titel.

Das dies nicht nur die einseitige Sichtweise einer betroffen Suchmaschine ist zeigen die folgenden Pressestimmen:

Die Tageszeitung Grafschafter Nachrichten schreibt, im Streit mit Google “gehe es im Kern darum, dass der amerikanische Konzern ein Geschäftsmodell gefunden habe, das den deutschen Verlagen bislang fehle. Und anstatt sich selbst kreativ und mutig auf die gewaltigen Herausforderungen einzustellen, die der Medienwandel mit sich bringe, machten es sich viele Verlage und ihr Verband allzu leicht, indem sie sich zurücklehnen, die Hand aufhalten und vom Erfolg anderer profitieren wollen” .

Die ZEIT ONLINE schreibt “Um dieses Verbot [Presseerzeugnis oder Teile hiervon zu gewerblichen Zwecken öffentlich zugänglich zu machen] geht es den Verlagen gar nicht. Sie wollen ein anderes. Denn Verlage machen ihre Artikel und Geschichten im Internet bewusst jedem zugänglich und verdienen damit Geld. Allerdings gibt es jemanden, der noch viel mehr Geld verdient, da er anders als irgendwelche deutschen Medien weltweit agiert, mit einer Suchmaschine einen ziemlich sinnvollen Dienst bietet und Milliarden Menschen erreicht: Google. Von dem Geld dieses Unternehmens wollen Verlage etwas abhaben, auch wenn ihr Geschäftsmodell ein anderes ist als das der Suchmaschine.”

Ohne dass die Presseverleger gezwungen sind ihre Inhalte die unter das Leistungsschutzrecht fallen zu kennzeichnen wird das gesamte Internet als Geisel genommen.

Das dunkle Geheimnis

Die eigentliche Problematik des Leistungsschutzrechts bleibt bisher weitgehend unbemerkt. Die Unterscheidung der mehrheitlichen kostenlosen Inhalte von den kostenpflichtigen Inhalten ist nicht möglich.

Natürlich sollen Urheber oder Eigentümer über die Verwertung ihres Content entscheiden dürfen. Selbst wenn sie die Nutzung verbieten, und dies den Nutzern und der Gesellschaft schadet. Die Alternative ist ja nur einen Link entfernt. Selbst wenn sie einen Preis festlegen, der ungerechtfertigt oder zu hoch ist. Dann wird eben nicht gekauft. Schön wärs.

Das Leistungsschutzrecht legt zwar die Kostenpflicht bestimmter Angebote fest, nicht aber deren Kennzeichnung. Eine manuelle Abfrage der Kostenpflicht oder Vertragsverhandlung ist bei Millionen Anbietern (100 Milliarden Seiten von 200 Millionen Domains im Web) unmöglich. Und sich über einen Preis zu einigen bevor überhaupt bekannt ist wie häufig der Content in einem Suchergebnis auftaucht ist kaum möglich. Ein Großteil der potentiellen Suchergebnisse gehört zum Long Tail, wird also sehr selten oder nie angezeigt. Trotzdem soll dafür gezahlt werden.

Dadurch wird der rechtssichere Betrieb von Suchmaschinen unmöglich gemacht, sei denn man unterwirft sich einer pauschalen Zahlung, egal ob und in welchem Umfang man vom Gesetz betroffene Inhalte nutzt. Die naheliegende und legale Variante sich auf kostenfreie Angebote zu beschränken, wird durch deren fehlende Identifizierbarkeit verhindert. Sicher ein Versehen. Oder „ein Angebot, das man nicht ablehnen kann“™

Der Ausweg

Da die Presseverleger nicht die unter das Leistungsschutzrecht fallenden Inhalte markieren, hilft nur die maschinenlesbare Kennzeichnung nicht unter das Leistungsschutzrecht fallender Inhalte, durch eine Koalition von Inhaltanbietern und Suchmaschinen im Interesse aller Nutzer.

Die Anbieter können in einer maschinenlesbaren Lizenz die kostenlose Nutzung von Überschriften und Textausschnitten einer definierbaren Länge gestatten.

Maschinenlesbare Kennzeichnung durch Erweiterung der robots.txt:

Title-lenght: 80

Snippet-length: 160

Image-size: 200x200

SpeakingUrl-display: yes

Copyright: 'Freedom of Citation License v1.0: Free manual and/or 
automatized citation is granted for the content hosted on this 
domain, within the restrictions defined in disallowed,
titleLength, snippetLength, imageSize, speakingUrlDisplay as long 
as there is a link to the original source. 
All rights from the German Leistungsschutzrecht are waived.'
Ranking

Die Aufgabe einer Suchmaschine besteht darin, den Nutzer bei der Suche nach für Ihn relevanten Webseiten zu unterstützen. Die Suchmaschine übernimmt dabei einerseits eine Vorauswahl durch die angezeigte Ergebnisliste, andererseits entscheidet der Nutzer dann auf Basis der in Title, Snippet, Url und Thumbnail enthaltenen Informationen ob er einen Link aufruft.
Die Aufgabe der Suchmaschine besteht also auch darin den Nutzer bei seiner Entscheidung durch die Anzeige ausreichender Information über die Webseite zu unterstützen.

Webseiten, die nur begrenzte Information zur Verfügung stellen und damit eine informierte Entscheidung des Nutzers erschweren, und deren Relevanz für den Nutzer schwer ersichtlich ist, werden deshalb im Ranking abgewertet. An der Spitze der Suchergebnisseite werden Seiten angezeigt, bei denen der Anbieter die Suchmaschine dabei unterstützt, dass der Nutzer die für ihn relevantesten Informationen auszuwählen kann.

Was macht FAROO?

Wir haben unsere Suche kostenneutral an das Leistungsschutzrecht angepasst:

  • Es werden nur noch Suchergebnisse angezeigt, deren Quellen nicht unter das Leistungsschutzrecht fallen oder die eine kostenfreie Nutzung gestatten.
  • Suchergebnisse, deren Quellen unter das Leistungsschutzrecht fallen werden nicht mehr angezeigt.
  • Für Quellen die unter das Leistungsschutzrecht fallen, und eine Anzeige in den Suchergebnissen wünschen, erheben wir eine Listungsgebühr in Höhe der dadurch im Rahmen des Leistungsschutzrechts entstehenden Kosten.
Nicht unter das Leistungsschutzrecht fallenden Quellen werden wie folgt identifiziert:

  • eine manuell erstellte Whitelist
  • eine Erweiterung der robots.txt
Update: Inzwischen beziehen die ersten Verlage und Publikationen Stellung zum Leistungsschutzrecht und gestatten ausdrücklich die Nutzung von Snippets: Heise, Golem, Gamona, Winfuture, Techstage, PC-Welt, t3n, iBusiness, l-iz.
Dies ist ein erster wichtiger Schritt, aber für Dienste die Web-Scale arbeiten führt kein Weg an einer maschinenlesbaren Lizenz/Freigabe vorbei. Jeden Tag werden zwei Millionen neue Domains registriert. Die in Newsmeldungen enthaltenen Freigaben einiger Quellen sind da nur ein Tropfen auf den heißen Stein.

FAROO unterstützt IGEL, die Inititive gegen Leistungsschutzrecht.

Share onTweet about this on TwitterShare on FacebookShare on Google+Share on RedditBuffer this pageShare on LinkedIn

DLD13: Next Generation Search

Share onTweet about this on TwitterShare on FacebookShare on Google+Share on RedditBuffer this pageShare on LinkedIn

DLD13 Conference

Wolf Garbe (FAROO), Philip Inghelbrecht (Rockmelt) and Albert Wenger (Union Square Ventures) are discussing “Next Generation Search” at DLD13, moderated by Henry Blodget (Business Insider). Free Press Photo © Hubert Burda Media / picture alliance / Jan Haas.

While originally I was to talk about distributed search (you can see the slides here), our moderator suggested to focus on the recent developments of the big search brands instead.

So, what can we expect from the future of search?

From text to facts
Search will move from conventional text search towards understanding and combining facts.
Today’s search engines do a plain text search, returning links to documents. Future search will be able to identify entities (locations, dates, persons, companies, products). It then can use all known properties of those entities (price, date of birth, coordinates …), even if they are not stated in the current document.
This is the Semantic search we have been promised for quite some time. But that’s not the end. Combining facts scattered over different documents, deduction und predicate logic allows the search engine to come up with answers, which are not contained in any of the indexed documents, perhaps even not yet known to mankind.
Search assistants will do call backs to the user to clarify ambiguity, and automatically initiate follow up queries to gather, compare and combine additional information.

Implicit search
If we thinking of search today we have that search box in mind, where we type our keywords in. But tomorrow that will be dominated by implicit search.
Search engines, that see what we see (Google Glass), read what we read, and hear what we hear (Mindmeld). Which know our location, our interests, habits through the day, our calendar, and our personal preferences. Which come up automatically with the contextual information and warnings before we even know we will need that answer.
Imagine you are talking to somebody and you are presented his/her profile and calendar in your augmented reality glasses or you look at a product in a shop, and you are presented with information and price comparisons.

Augmented data
Today search engines are indexing existing documents. But in the future, search engines will control a global net of sensors, which for the first time also creates huge streams of additional data to be indexed.
This can be images and videos from augmented reality glasses, user location data from moving people and cars, usage data from video sites and web site statistics. Early forerunners might be Google Now & Google Goggles integrated into Google Glasses or a crowd sourced Streetview.
And more and more data which are isolated today will be incorporated to search: Crime and pollution data, medical records and income statistics, economics data, stock and weather data and much more.
This brings search closer to the real world. Those augmented date combined with reasoning, correlation, early-warning and prediction technologies will let pale the Delphic Sibyl.

Decentralization
Decentralization has been the foundation of the Internet. It fostered diversity and freedom of information. FAROO focuses on the decentralization of the search infrastructure.
But to the same extend the decentralization of data is important. A single instance owning and controlling the world’s data is infeasible and undesirable. With decentralized data sources like Google Glass and Smartphone GPS the creation and collection of data becomes decentralized. And perhaps the more sophisticated processing of data will be carried out in a worldwide distributed artificial brain.

Interoperability and ownership of data
People want more and more data to be integrated und utilized for search. They want to simplify their life. Flight data, hotel data, weather data, event data, recommendation, satisfaction and price data and much more.
Collecting, normalizing organizing and updating data is complex and comes with cost. But also integrating data, creating a unified marketplace and providing search has a price. So while the user really wants and needs the integration, data owner want to stay in control of the data and their monetization models.
We need not only to solve complexity and interoperability of data but also the interoperability of business models and monetization streams. Every party involved needs to be recompensated fairly. Even for relatively simple cases like a single music catalog, we had to wait for Apple to persuade all the market participants to agree to a user friendly model. The music is still owned by several labels, but there is a unified search and payment option available, and this made online music a success story.
The same will happen for search, companies pioneering a fair exchange model will win, while others staying isolated become obsolete.

Transparency, openness and neutrality
While the integration of data from many sources is desirable, it is important to prevent discrimination.
Sources shouldn’t be blocked or biased in ranking, nor search engines blocked or confronted with unreasonable access conditions.
Full integration is possible already today in web search, app stores and music catalogues.
This is a win-win model with more simplicity, diversity, transparency and more business. Let’s do it for the remaining data sources too.

Smart assistants
Just an example: Coordinating travel, hotel, meetings, events from different data sources, with multiple people and their calendars involved, reacting on flight delays and changing prices while giving the user a choice with different scenarios is possible only with a fully bidirectional data integration.
The user just can’t enter the same data again and again for different providers and different scenarios and fighting with different layouts.
Implicit search is only possible when data can flow freely and be automatically processed, without manual interaction required.
On the long run only those businesses can be only successful which adapt to the needs of the user. He wants to simplify his life and outsource tasks to smart assistant systems, which are the successors of today web search and much more.

Some echo in the press:
Focus: Die Zukunft der Internetsuche
Meedia: Suchexperten über die Zukunft von Search Engines
Futurezone: 6 Trends, die die Tech-Konferenz DLD aufzeigt
digital:next: DLD: Welche Websuche wird ein Hit?
internet world: Die nächste Generation der Suche
Deutschlandradio Kultur: Was tun mit Big Data?

Share onTweet about this on TwitterShare on FacebookShare on Google+Share on RedditBuffer this pageShare on LinkedIn

Spelling correction, Query completion and Instant search

Share onTweet about this on TwitterShare on FacebookShare on Google+Share on RedditBuffer this pageShare on LinkedIn

In the previous posts we described our new spelling correction algorithm, announced the release of the c# code as Open Source and presented some pretty compelling benchmark results.

FAROO: Spelling Correction and Query completion

Today we are introducing spelling correction, query completion and an improved instant search as integral part of our FAROO search service:

Spelling correction
For a misspelled term the suggested corrections are displayed in a dropdown list.

Query completion (aka query suggestions, autocomplete)
As you type a dropdown list of popular terms and combinations is displayed, which start with the letters you typed so far.

Improved instant search
Results are automatically displayed for the best suggestion/correction, “Enter” searches always for originally entered term.

 

Opposite to traditional implementations we are not using a predefined dictionary:

  • The whole web serves as a corpus, from which we automatically derive the spelling and completion dictionary.
  • The dictionary is automatically updated as part of the indexing process and learns new terms as they appear on the web.
  • The whole process is fully automated, no manual auditing steps are involved.

The algorithm is completely language independent (pure statistics, no linguistic knowledge).
Of course corrections and suggestions are given only within the scope of the selected search language.

 

Try it out at faroo.com

Share onTweet about this on TwitterShare on FacebookShare on Google+Share on RedditBuffer this pageShare on LinkedIn