It might not be the ideal solution, but you can explore the basics using SPARQL.
eg. something like
SELECT DISTINCT ?prop WHERE {
?x ?prop ?val .
}
In http://services.data.gov.uk/education/sparql I get a nice list of
properties. Well, OK not *nice*, it is raw SPARQL result format, but
the basic information is there.
To find classes, you'd ask
SELECT DISTINCT ?class WHERE {
?x a ?class .
}
To find which properties and classes go together, .... hmm that
depends on whether the store also includes the relevant schema. Let's
see.
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT DISTINCT ?class ?prop WHERE {
?x a ?class .
?prop rdfs:range ?class .
}
Ok that seems to do something useful. It finds things that are
instances of some class, and then finds properties whose "range" (ie.
expected values) are members of that class.
Changing the rdfs:range to rdfs:domain, we get
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT DISTINCT ?class ?prop WHERE {
?x a ?class .
?prop rdfs:domain ?class .
}
...which finds properties whose "domain" is those classes, ie. the
kinds of entity the property is used with.
Note that this is very raw data and doesn't involve reasoning about
any complex hierarchies. But it should give you an idea what's going
on in there...
Hope this helps!
Dan