oslc-core message
[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
| [List Home]
Subject: Re: [oslc-core] Fw: OSLC Resource Shapes implemented with SPIN
- From: Steve K Speicher <sspeiche@us.ibm.com>
- To: Lonnie VanZandt <lvanzandt@sodius.com>
- Date: Fri, 1 Aug 2014 13:18:09 -0400
Lonnie,
As SPIN does allow for some nice cases,
especially when an application authors its own classes and constraints
on it (case you were highlighting with domain-specific model). OSLC
typically has different use cases. We've seen where the constraints
apply to the context of the class, not just the existence of it. In
fact, which class a resource is could also be a constraint. Take
for example when you need create a resource, whose class is defined out
of a vocabulary from OMG or another group, and we need to apply tool-specific
constraints on it. There could always be some late binding (creating
a union of RDF) based on statements about a class. We'll have
to continue to articulate our use cases and ensure the direction the shape/constraint
work goes allows for a simple solution.
Thanks,
Steve Speicher
IBM Rational Software
OSLC - Lifecycle integration inspired by the web -> http://open-services.net
<oslc-core@lists.oasis-open.org> wrote on 07/30/2014
06:11:40 PM:
> From: Lonnie VanZandt <lvanzandt@sodius.com>
> To: Steve K Speicher/Raleigh/IBM@IBMUS
> Cc: OASIS OSLC Core TC Discussion List <oslc-core@lists.oasis-open.org>
> Date: 07/30/2014 06:12 PM
> Subject: Re: [oslc-core] Fw: OSLC Resource Shapes
implemented with SPIN
> Sent by: <oslc-core@lists.oasis-open.org>
>
> Very nice. Also, thank you to Holger for this 2009 posting on SPIN. http://
> composing-the-semantic-web.blogspot.com/2009/01/object-oriented-semantic-
> web-with-spin.html
>
> Now in the midst of constructing a domain-specific model with just
OWL,
> Protege, and numerous subClass of property-restricting anonymous class
> statements, I find the SPIN capability to be very attractive.
>
> I especially like how one can encapsulate the constraint within the
> specification for a class and then inherit that constraint in derived
> subclasses of the class. I agree with the argument that this really
can
> simplify the management of a large collection of constraints.
>
> On Fri, Jul 25, 2014 at 5:46 AM, Steve K Speicher
<sspeiche@us.ibm.com> wrote:
> OASIS OSLC Core TC,
>
> FYI, I thought this would be of interest to this group. This
is being done
> within the charter discussion [1] for a new W3C WG around RDF Shapes
[2].
>
> [1]: lists.w3.org/Archives/Public/public-rdf-shapes/
> [2]: http://www.w3.org/2014/data-shapes/charter
>
> Thanks,
> Steve Speicher
> IBM Rational Software
> OSLC - Lifecycle integration inspired by the web -> http://open-services.net
>
> ---------- Forwarded message ----------
> From: Holger Knublauch <holger@topquadrant.com>
> Date: Fri, Jul 25, 2014 at 2:49 AM
> Subject: OSLC Resource Shapes implemented with SPIN
> To: "public-rdf-shapes@w3.org" <public-rdf-shapes@w3.org>
> Cc: ryman@ca.ibm.com
>
>
> Dear RDF Shapes list,
>
> as a proof-of-concept, I have taken the OSLC Resource Shapes submission
[1]
> and implemented it using SPIN. I believe this demonstrates nicely
that SPIN
> and Resource Shapes are *complementary* technologies, and that Shapes
can be
> implemented as one "instance" of the SPIN constraint language.
This combines
> the beauty of a high-level vocabulary with the flexibility of a SPARQL-based
> fall-back mechanism. It works today, and the Shapes have proper executable
semantics.
>
> The actual OSLC vocabulary and its SPIN constraint templates can be
found at
> [2]. I took the little bug database example from the spec and implemented
it
> using two different approaches:
>
>
> 1) [3] is syntactically almost identical to the OSLC example from
[5] (only
> that it uses spin:constraint instead of oslc:property). For this version
I
> had to tweak the current SPIN engine a bit so that it also executes
> "inherited" spin:body queries. I plan to add this tweak
to future SPIN API
> (and TopBraid) versions. Here is an example snippet in Turtle:
>
> oslc_cm:ChangeRequest
> spin:constraint <http://example.com/shape/oslc-change-request#dcterms-title>
;
> spin:constraint <http://example.com/shape/oslc-change-request#oslc_cm-status>
.
>
> <http://example.com/shape/oslc-change-request#dcterms-title>
> rdf:type oslc:Property ;
> oslc:name "title"^^xsd:string ;
> oslc:occurs oslc:Exactly-one ;
> oslc:propertyDefinition dcterms:title .
>
> <http://example.com/shape/oslc-change-request#oslc_cm-status>
> rdf:type oslc:Property ;
> oslc:allowedValues oslc_cm:status-allowed-values ;
> oslc:name "status"^^xsd:string ;
> oslc:occurs oslc:Zero-or-one ;
> oslc:propertyDefinition oslc_cm:status .
>
>
> 2) [4] is using individual bnode constraints instead of the "bundle"
> oslc:Property. You can load that version into the current SPIN API
version,
> or into TopBraid Composer Free Edition 4.4. Navigate to <http://example.com/bugs/2>
> and press the "Display constraint violation warnings" button
in the toolbar.
> It will display a small warning symbol with information on the actual
> violation. You can make edits and see the violations updated in real
time.
> It "just works".
>
> [image removed]
>
> Other shape libraries beside the specific OSLC version can be implemented
in
> a similar manner.
>
> Regards,
> Holger
>
> [1] http://www.w3.org/Submission/2014/SUBM-shapes-20140211/
> [2] http://knublauch.com/oslc/oslc.spin.ttl
> [3] http://knublauch.com/oslc/oslc_cm1.ttl
> [4] http://knublauch.com/oslc/oslc_cm2.ttl
> [5] http://www.w3.org/Submission/2014/SUBM-shapes-20140211/#examples
[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
| [List Home]