- slightly different painting of web structure picture:

hosts that have many own connections are painted farer away (this is not yet cato's idea, this will be implemented in another step)

- doc update

git-svn-id: https://svn.berlios.de/svnroot/repos/yacy/trunk@3796 6c8d7289-2bf4-0310-a012-ef5d649a1542
pull/1/head
orbiter 18 years ago
parent b955f29f70
commit 52cb033f01

@ -52,19 +52,26 @@ globalheader();
<p>Here you can find links to documents that had been published about YaCy by YaCy-Authors</p><br>
<p>Deutsche Dokumentation / German-only documents
<p>Documentation / Talks (in German language)
<ul>
<li><a href="http://www.yacy.net/yacy/material/YaCy-FlyerD.pdf"><b>Flyer "Das Wichtigste zu YaCy im &Uuml;berblick"</b></a></li>
<li><a href="http://www.yacy.net/yacy/material/YaCy-Entwicklungen2005-2006.pdf"><b>Vortrag zum 3. SuMa-eV Forum: "Suchmaschinen: In Technik, Wirtschaft und Medienkunst" (pdf)</b></a></li>
<li><a href="http://www.yacy.net/yacy/material/YaCy-Entwicklungen2005-2006.html"><b>Vortrag zum 3. SuMa-eV Forum: "Suchmaschinen: In Technik, Wirtschaft und Medienkunst" (html)</b></a></li>
<li><a href="http://www.yacy.net/yacy/material/YaCy-PracticalLinuxForumLT2006.pdf"><b>Speech paper "YaCy Peer-to-Peer Web-Suche: Informationsfreiheit und freie Information Retrieval Software" for the 'Practical Linux Forum' at the LinuxTag 2006 Expo in Wiesbaden</b></a></li>
<li><a href="http://www.yacy.net/yacy/material/YaCy-22C3Speech.pdf"><b>Speech paper "Distributed Web Search with YaCy" for the 22nd Chaos Communication Congress</b></a></li>
<li><a href="http://www.yacy.net/yacy/material/YaCy-nichtMonopolisierbar.pdf"><b>Vortrag zum 2. SuMa-eV Forum: "Portale/Suchmaschinen - und ihre Grenzen"</b></a></li>
<li><a href="http://www.yacy.net/yacy/material/YaCy-Datenschleuder086.pdf"><b>"YaCy -- Peer-to-Peer Web-Suchmaschine"</b></a> - Ver&ouml;ffentlichung in der Datenschleuder #086; technische Details zur Funktionsweise</li>
</ul></p><br>
<p>Documentation / Talks (in English language)
<ul>
<li><a href="http://www.yacy.net/yacy/material/YaCy-22C3Speech.pdf"><b>Speech paper "Distributed Web Search with YaCy" for the 22nd Chaos Communication Congress</b></a></li>
</ul></p><br>
<p>YaCy in the press (in German language)
<ul>
<li>
<li><a href="http://podcast.moenk.de/index.php?id=10"><b>moenk's podcast #6: LinuxTag 2007 (Teil 2)</b> - Videocast vom Linuxtag</a></li>
</ul></p><br>
<!-- ----- HERE ENDS CONTENT PART ----- -->
<SCRIPT LANGUAGE="JavaScript1.1"><!--

@ -95,24 +95,30 @@ public class WebStructurePicture_p {
if (center == null) center = graph.addPoint(centerhost, x, y, nextlayer);
if (nextlayer == maxlayer) return;
nextlayer++;
double radius = 1.0 / ((double) (1 << nextlayer));
Map next = structure.references(centerhash);
Map.Entry entry;
String targethash, targethost;
// first set points to next hosts
Iterator i = next.entrySet().iterator();
ArrayList targets = new ArrayList();
int maxrefs = 8;
int refcount;
double rr;
while (i.hasNext()) {
entry = (Map.Entry) i.next();
targethash = (String) entry.getKey();
targethost = structure.resolveDomHash2DomString(targethash);
if (targethost == null) continue;
refcount = structure.referencesCount(targethash);
maxrefs = Math.max(refcount, maxrefs);
targets.add(new String[] {targethash, targethost});
if (graph.getPoint(targethost) != null) continue;
// set a new point. It is placed on a circle around the host point
double angle = ((double) kelondroBase64Order.enhancedCoder.cardinal((targethash + "____").getBytes())) / maxlongd * 2 * Math.PI;
//System.out.println("ANGLE = " + angle);
double radius = 1.0 / ((double) (1 << nextlayer));
graph.addPoint(targethost, x + radius * Math.cos(angle), y + radius * Math.sin(angle), nextlayer);
rr = radius / 4 * (1 - refcount / maxrefs);
graph.addPoint(targethost, x + (radius - rr) * Math.cos(angle), y + (radius - rr) * Math.sin(angle), nextlayer);
}
// recursively set next hosts
i = targets.iterator();

@ -148,12 +148,17 @@ public class plasmaWebStructure {
}
}
private static int refstr2count(String refs) {
if ((refs == null) || (refs.length() <= 8)) return 0;
assert (refs.length() - 8) % 10 == 0;
return (refs.length() - 8) / 10;
}
private static TreeMap refstr2map(String refs) {
if ((refs == null) || (refs.length() <= 8)) return new TreeMap();
TreeMap map = new TreeMap();
String c;
assert (refs.length() - 8) % 10 == 0;
int refsc = (refs.length() - 8) / 10;
int refsc = refstr2count(refs);
for (int i = 0; i < refsc; i++) {
c = refs.substring(8 + i * 10, 8 + (i + 1) * 10);
map.put(c.substring(0, 6), new Integer(Integer.parseInt(c.substring(6), 16)));
@ -201,6 +206,19 @@ public class plasmaWebStructure {
}
}
public int referencesCount(String domhash) {
// returns the number of domains that are referenced by this domhash
assert domhash.length() == 6 : "domhash = " + domhash;
SortedMap tailMap = structure.tailMap(domhash);
if ((tailMap == null) || (tailMap.size() == 0)) return 0;
String key = (String) tailMap.firstKey();
if (key.startsWith(domhash)) {
return refstr2count((String) tailMap.get(key));
} else {
return 0;
}
}
public String resolveDomHash2DomString(String domhash) {
// returns the domain as string, null if unknown
assert domhash.length() == 6;

Loading…
Cancel
Save