- From: Markus Lanthaler <markus.lanthaler@gmx.net>
- Date: Sun, 28 Apr 2013 10:25:08 +0200
- To: "'Marian, Radu'" <radu.marian@baml.com>, <public-linked-json@w3.org>
- Cc: "'Anil Saldhana'" <Anil.Saldhana@redhat.com>
Hi Radu, > At OASIS we have started a CloudAuthZ TC which is creating an access > control model. We would like to leverage RDFa and JSON-LD for our > work. That's great! Thanks for letting us know. > However we are realizing that we need an access control vocabulary > defined - similar to http://schema.org. We do have a draft model > ontology for access control - however we need to move from ontology > design into vocabulary registration. I'm not sure I understand you correctly but I interpret this as "we have modeled our ontology, now we need to define that ontology in a (JSON-LD) vocabulary". Is this correct? > So the question is where do we start? What is the simplest way to > build such a vocabulary Assuming that my interpretation above is correct, the first step would be to mint URLs for your concepts. For example if you have an "Entitlement" class in your ontology you would assign it a unique URL, maybe something like: http://www.oasis-open.org/ns/cloudauthz#Entitlement The next step is to describe in a machine-readable way what that URL means. The standard way to describe vocabularies is to use RDF Schema [1] or OWL [2]. I would suggest you start with RDF Schema as it is much simpler. Lets first define some prefixes to shorten the long URLs. Let's say we use ca to refer to the beginning of all CloudAuthZ URLs: http://www.oasis-open.org/ns/cloudauthz# This allows us to shorten the long URL http://www.oasis-open.org/ns/cloudauthz#Entitlement to just ca:entitlement. We do the same for RDF Schema, rdfs: http://www.w3.org/2000/01/rdf-schema# In JSON-LD you would define a context as follows for these abbreviations: { "@context": { "ca": "http://www.oasis-open.org/ns/cloudauthz#", "rdfs": "http://www.w3.org/2000/01/rdf-schema#" } } Then you can start defining your concepts. Using the "Entitlement" class as an example again, you would end up with something like { "@context": { "ca": "http://www.oasis-open.org/ns/cloudauthz#", "rdfs": "http://www.w3.org/2000/01/rdf-schema#" }, "@graph": [ { "@id": "ca:Entitlement", "@type": "rdfs:Class", "rdfs:label": "Entitlement", "rdfs:comment": "A short description of the Entitlement class", ... } ] } You would then repeat that for all your classes and properties in your ontology. Just add a JSON object for every concept to the @graph array. I hope this helps to get you started. If you have further questions please don't hesitate to ask. Cheers, Markus [1] http://www.w3.org/TR/rdf-schema/ [2] http://www.w3.org/TR/owl-guide/ -- Markus Lanthaler @markuslanthaler
Received on Sunday, 28 April 2013 08:25:42 UTC