- From: Dan Brickley <danbri@danbri.org>
- Date: Wed, 10 May 2006 08:58:55 -0400
- To: "Seaborne, Andy" <andy.seaborne@hp.com>
- Cc: Dan Brickley <danbri@danbri.org>, Steve Harris <S.W.Harris@ecs.soton.ac.uk>, public-sparql-dev@w3.org, public-swbp-wg@w3.org
Thanks all. Here's what I have now: [[ # List the undocumented FOAF properties used by some FOAF description PREFIX foaf: <http://xmlns.com/foaf/0.1/> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX danbri: <http://danbri.org/foaf.rdf> SELECT DISTINCT ?p FROM <http://danbri.org/foaf.rdf> FROM NAMED foaf: WHERE { ?s ?p ?o . OPTIONAL { GRAPH foaf: { ?p rdf:type rdf:Property ; rdf:type ?type . } } FILTER ( ! bound(?type) ) FILTER REGEX( str(?p), "^http://xmlns.com/foaf/0.1/" ) # ignore 3rd-party namespaces } ]] Running it now, I get the following: ---------------------- | p | ====================== | foaf:wife | | foaf:pubkeyAddress | | foaf:dateOfBirth | | foaf:archnemesis | ---------------------- It doesn't feel 100% great having the namespace URI in a regex like that, ...but it does at least work perfectly :) So this little query lets me find out which properties I've used in my FOAF file but which don't really exist in the schema. Kinda handy :) Something quite similar should be able to check for fictional properties such as dc:author (instead of dc:creator). I guess to check all namespaces would need a bit of application code since we can't decide which graphs to load in mid-query (otherwise we could write a web crawler in sparql maybe?)... cheers, Dan
Received on Wednesday, 10 May 2006 12:59:10 UTC