Re: RDF validation of vocabulary

Just thinking out loud here...

You should be able to make a SPARQL ASK query to see if you have any 
unknown types in your graph.  But if your instance used terms from 
several large vocabularies it would be a nuisance to compose such a query.

I've wondered about using a schematron-like schema to make assertions 
about an RDF graph.  You could assert not only the presence or absence 
of subgraphs, but also the use of foreign terms.  The assertion schema 
could be composed by querying an RDFS or OWL declaration file.  How 
would a Schematron implementation with queryBinding="sparql" work?  This 
is a topic for the schematron-love-in list.

You could use XSLT to directly compose a SPARQL ASK query from RDFS or 
OWL, but because of the variability of RDF/XML this might be tricky.

Ivan Mikhailov wrote:

>Hello Karl,
>
>I'd like to have a smart "closed world" validator, too. With SPARQL
>things become even more funny: we should try to validate names in
>queries as well as names in data.
>
>I don't know how to minimize the amount of false positives / false
>negatives of the test on real "open world" data. Maybe the validator
>should guess that the difference in single character is probably a typo
>whereas major difference with any known name may mean unknown
>vocabulary?
>
>Best Regards,
>Ivan Mikhailov
>OpenLink Software.
>
>On Mon, 2007-11-26 at 12:06 +0900, Karl Dubost wrote:
>  
>
>>Hi,
>>
>>I was trying to validate an RDF document and I just realized that the  
>>RDF validator, was just checking
>>the document is well-formed and that is a graph, but not that the  
>>vocabulary is used appropriately.
>>
>><?xml version="1.0"?>
>><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
>>   xmlns:dc="http://purl.org/dc/elements/1.1/"
>>   xmlns:myvocab="http:example.org/">
>>   <rdf:Description rdf:about="http://www.w3.org/">
>>     <dc:title>World Wide Web Consortium</dc:title>
>>     <dc:foobar>a foreign element to Dublin Core Vocabulary</dc:foobar>
>>     <myvocab:foo>an unknown vocab</myvocab:foo>
>>   </rdf:Description>
>></rdf:RDF>
>>
>>
>>The vocabulary which is not part of Dublin Core for example will not  
>>be detected.
>><dc:foobar>a foreign element to Dublin Core Vocabulary</dc:foobar>
>>
>>Is there a way to check that your vocabulary is consistent.  The  
>>answer could be:
>>
>>Your document is RDF valid but contains
>>
>>* an unknown vocabulary: vocab,
>>* an element which is not part of dc vocabulary: foobar
>>
>>
>>
>>--
>>Karl Dubost - W3C
>>http://www.w3.org/QA/
>>Be Strict To Be Cool
>>
>>
>>
>>
>>
>>
>>    
>>
>
>
>
>  
>

Received on Monday, 26 November 2007 11:43:28 UTC