Test Suite thoughts

Dear all,

During last week's meeting, I volunteered to start collecting examples 
that can go into a test suite.

Good news - the vocabulary document already includes 12 examples, each 
of which is available in multiple serialisations (JSON-LD, TTL, NT, HTML 
and XML).

First question - can someone kindly walk me through how these are being 
generated? I see tools in the directory. Can I start from any serialisation?

Presumably, given that these files all exist, the plan is to include 
them as external files with the vocabulary document? That can certainly 
be done, with content negotiation all set up.

To show one possible method using ReSpec, I've set up an example at
https://philarcher1.github.io/poe/vocab/#targetAsset

The relevant markup is:

<pre class="example  hljs xquery" title='(<a 
href="examples/example1">Canonical</a>, <a 
href="examples/example1.xml">XML</a>, <a 
href="examples/example1.json">JSON-LD</a>, <a 
href="examples/example1.ttl">Turtle</a>, <a 
href="examples/example1.nt">NT</a>, <a 
href="examples/example1.html">HTML</a>)'>

Turning to the Model document, it has a lot of examples - 27 in all. 
These have not yet been turned into discrete files AFAICT.

Looking at Example 1, I see

{
"@context": {
     "odrl": "http://www.w3.org/ns/odrl/2/"
     },
     "@type": "odrl:Set",
     "@id": "http://example.com/policy:1010",
     "permission": [{
         "target": "http://example.com/asset:9898",
         "action": "odrl:read"
     }],
     "prohibition": [{
         "target": "http://example.com/asset:9898",
         "action": "odrl:reproduce"
     }]
}

If I put that through a converter, I get just one triple:

<http://example.com/policy:1010> a odrl:Set .

All the permissions appear to be absent. So there's an error somewhere 
and I fiddled around and, well, first I need to go back to Turtle so I 
can see what I'm doing. I get this:

@prefix odrl: <http://www.w3.org/ns/odrl/2/> .

<http://example.com/policy:0231>
 a odrl:Set ;
 odrl:permission [
    a odrl:Permission;
    odrl:target <http://example.com/asset:9898>;
    odrl:action odrl:read
   ];
   odrl:prohibition [
     a odrl:Prohibition;
    odrl:target <http://example.com/asset:9898>;
    odrl:action odrl:reproduce
   ] .


Which converts to JSON-LD as

{
   "@context": {
     "odrl": "http://www.w3.org/ns/odrl/2/",
     "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#",
     "rdfs": "http://www.w3.org/2000/01/rdf-schema#",
     "xsd": "http://www.w3.org/2001/XMLSchema#"
   },
   "@graph": [
     {
       "@id": "http://example.com/policy:0231",
       "@type": "odrl:Set",
       "odrl:permission": {
         "@id": "_:ub6bL4C18"
       },
       "odrl:prohibition": {
         "@id": "_:ub6bL9C20"
       }
     },
     {
       "@id": "_:ub6bL9C20",
       "@type": "odrl:Prohibition",
       "odrl:action": {
         "@id": "odrl:reproduce"
       },
       "odrl:target": {
         "@id": "http://example.com/asset:9898"
       }
     },
     {
       "@id": "_:ub6bL4C18",
       "@type": "odrl:Permission",
       "odrl:action": {
         "@id": "odrl:read"
       },
       "odrl:target": {
         "@id": "http://example.com/asset:9898"
       }
     }
   ]
}


I'll see if I can simplify that into something more readable but the my 
basic question is do the 27 examples in the model document and the 12 in 
the vocab document give a good spread and therefore can provide the 
basis of a test suite?

This also addresses my action-43 which is about invalid JSON-LD examples.

Phil


-- 


Phil Archer
Data Strategist, W3C
http://www.w3.org/

http://philarcher.org
+44 (0)7887 767755
@philarcher1

Received on Monday, 10 April 2017 12:22:21 UTC