### Xholon Wikipedia tutorial5

Ken Webb 2011-11-21T02:56:41Z

Each instance of a class has its own value for each property. The mass of the planet Jupiter is much greater than the mass of the planet Earth (Jupiter is much bigger). The semi-major axis of Venus is much less than the semi-major axis of Mars (Venus is closer to the Sun).

## jQuery for radius and mass

```function print(x) {
console.log(x);
}
function fix(node) {
var str = node.contents().filter(function(){ return(this.nodeType == 3); }).text();
// remove all non-numeric characters (leave digits and decimal point)
var x = str.replace(/[^0-9\.]+/g, '');
// every number must have a decimal point
if (x.indexOf('.') == -1) {
x += '.0';
}
return x;
}
print('<?xml version="1.0" encoding="UTF-8"?>\n');
print('<!--\n');
print('Automatically generated using WkSolarSystemObjects.js\n');
var d = new Date();
print(d.toLocaleString() + ' ' + d.getTime() + '\n');
print('www.primordion.com/Xholon\n');
print('URL: ' + window.location.href + '\n');
print('Units: radius in meters(m), mass in kilograms(kg)\n');
print('-->\n');
print('<InstanceDetails>\n');
\$('table:eq(2) > tbody > tr').each( function() {
\$(this).children('td').each( function(index) {
if (index == 0) {
print('<Instance id="' + \$(this).find('a:first').text() + '">\n');
}
else if (index == 2) { // radius
print('  <Attribute_double roleName="' + th[index] + '">'
+ (fix(\$(this))*1000).toFixed(1)
+ '</Attribute_double>\n');
}
else if (index == 6) { // mass
print('  <Attribute_double roleName="' + th[index] + '">'
+ fix(\$(this))
+ 'e21</Attribute_double>\n');
}
});
print('</Instance>\n');
});
print('</InstanceDetails>\n');
```
• Copy and paste the Firebug console result to a file, for example id.xml (id meaning instance details).

## dbpedia and sparql

DBpedia is a community effort to extract structured information from Wikipedia and to make this information available on the Web. SPARQL is a query language for data stored in RDF format, such as the data stored at dbpedia.

The dbpedia snorql site allows querying for data from Wikipedia pages, using SPARQL syntax. Enter the following query:

```PREFIX planet: <http://dbpedia.org/resource/Mars>
SELECT ?name, ?mass, ?radius, ?temperature, ?semimajorAxis
WHERE {
planet:<http://dbpedia.org/property/name> ?name .
planet:<http://dbpedia.org/ontology/mass> ?mass .
planet:<http://dbpedia.org/ontology/meanTemperature> ?temperature .
planet:<http://dbpedia.org/property/semimajor> ?semimajorAxis .
}
```

The result should be something like this:

```name	mass	radius	temperature	semimajorAxis
"Mars"@en	6418.5	1	210	2
"Mars"@en	6418.5	1	336.15	2
"Mars"@en	6418.5	1	210	"2.279391E8"^^dbpedia:datatype/kilometre
"Mars"@en	6418.5	1	336.15	"2.279391E8"^^dbpedia:datatype/kilometre
```

Alternatively, you can ask for results in XML.

Because the properties captured by dbpedia differ from one planet to another, the query may need to be more flexible. Try this:

```PREFIX p:<http://dbpedia.org/property/>
PREFIX o:<http://dbpedia.org/ontology/>