On 16/08/2016 10:07, Jack Hodges wrote:
I removed the SPIN content from my validation.
I removed the instances from my graphs to a new graph.
I changed the validateShapes flag to false.

Locally in TBC I am still seeing different response (albeit a bit different now that validateShapes is set to false. For one file I get no response at all, but that file, when run in TBC, produces 64K results. The other file, which produces about 200 results in TBC, produces 1 in the project. Attached is a screen shot of the TBC results for the latter file.

TBC and the SHACL API are out of synch right now. Syntax has changed etc. This makes comparing results quite hard right now. I also don't have a complete picture of what you are doing. When running SHACL in TBC, are your SPIN functions registered globally (e.g. stored in .spin.ttl) files so that they are known? Could you try to make some test queries using the SPARQL view, with only the SHACL file open in TBC?

Holger



Looking at these results they appear very different, for several reasons. The most notable now is that only the sh: validations are being run in my jena case. Perhaps this is related to the fact that I can no longer run SPINModuleRegistry.get().init(); because connection is refused. Since many of my SHACL templates are defined in my SPIN graph, if I cannot get them registered they may not be available.

Here is my initializeSPIN method, glomed together from various examples, which is called first in my main for the ModelConstraintValidator:

    /**
* initializeSPIN: Get all of the related SPIN modules and our SPIN stuff and load
     *                 them into the SPINModuleRegistry
     */

    private static void initializeSPIN() {
        SPINModuleRegistry.get().init();

        // Create an empty OntModel importing SP
        System.out.println("Loading EDDL SPIN ontology...");
        Model eddlSPINModel = JenaUtil.createMemoryModel();
eddlSPINModel.read(ValidationExample.class.getResourceAsStream("/sh/eddl/spin/SPIN_SSF_eddl-v1.0.spin.ttl"), null, FileUtils.langTurtle);

        // Load OWL RL library from the web
        System.out.println("Loading OWL RL ontology...");
OntModel owlrlModel = loadModelWithImports("http://topbraid.org/spin/owlrl-all";);

        // Register any new functions defined in OWL RL
        SPINModuleRegistry.get().registerAll(owlrlModel, null);
        // Build one big union Model of everything
System.out.println("Creating MultiUnion model from eddlSPIN, owlrlModel, SPL, SPIN, and SP...");
        MultiUnion multiUnion = JenaUtil.createMultiUnion(new Graph[] {
            eddlSPINModel.getGraph(),
            owlrlModel.getGraph(),
SPL.getModel().getGraph(),
SPIN.getModel().getGraph(),
SP.getModel().getGraph()
});

System.out.println("Assigning into spinModel the MultiUnion model...");
spinModel = ModelFactory.createModelForGraph(multiUnion);

// Register locally defined functions (none exist, but may in the future)
System.out.println("Registering everything in spinModel into the SPIN Module Registry...");
SPINModuleRegistry.get().registerAll(spinModel, null);
return;
    }


On Wednesday, August 10, 2016 at 6:47:46 AM UTC-7, Jack Hodges wrote:

    Right, I forgot about that. I always hit the blue button. I'll try
    setting validateShapes to false. Thank you!

    Jack

    Sent from my iPad

    > On Aug 10, 2016, at 12:34 AM, Holger Knublauch
    <[email protected] <mailto:[email protected]>> wrote:
    >
    >
    >
    >> On 10/08/2016 12:53, Jack Hodges wrote:
    >> That is what I am saying. The validation example is reporting
    violations on classes (focus nodes are all classes) while TBC is
    reporting violations on instances. I am trying to reproduce the
    results that TBC shows.
    >
    > TBC has a green and a blue button in the SHACL Validation view.
    The green will validate everything including the shapes and
    classes. The blue only the instances. In the API this corresponds
    roughly to the validateShapes boolean flag.
    >
    > I cannot tell more since I don't know your shapes file, and
    which violations you expected.
    >
    > Holger
    >
    >
    >
    >>
    >> Jack
    >>
    >> Sent from my iPad
    >>
    >>> On Aug 9, 2016, at 6:17 PM, Holger Knublauch
    <[email protected] <mailto:[email protected]>> wrote:
    >>>
    >>>
    >>>
    >>>> On 10/08/2016 2:51, Jack Hodges wrote:
    >>>> I need SPIN because my SHACL sh:constraint sh:sparql SPARQL
    query calls SPIN functions (some stock and some custom).
    >>> The SPIN functions can be registered with the SPARQL engine
    separately and do not need to be in the same graph as the SHACL
    data. The two worlds interact only via the ARQ SPARQL engine's
    functions registry.
    >>>
    >>>> I flattened as suggested into a single turtle file.
    >>>>
    >>>> I had some test values in the schema so I piped the schema
    back in as the test data and got some results (yay!).
    >>>>
    >>>> Now the issue is that the results don't match what I am
    seeing in the TBC SHACL Validation tab. In TBC the SHACL
    Validation tab shows: Shape, Constraint, Message, Focus Node,
    Subject, Predicate, and Object. The Shape data is similar to the
    result in the test case, but none of the other SHACL property
    values are the same, most notably the Message and Focus Node
    values. In TBC the Focus Node (which seems to be the same as
    sh:subject) is bound to instances, and the Message (sh:message)
    value is bound to the message I defined and bound to the values my
    SPARQL query returns. And example of the results I am seeing from
    the test case is:
    >>>>
    >>>> [ a sh:ValidationResult ;
    >>>>  sh:focusNode                  eddl:BlockB ;
    >>>>  sh:message                    "Value does not have class
    sh:PropertyConstraint" ;
    >>>>  sh:path                       sh:property ;
    >>>>  sh:severity                   sh:Violation ;
    >>>>  sh:sourceConstraint           _:b0 ;
    >>>>  sh:sourceConstraintComponent  sh:ClassConstraintComponent ;
    >>>>  sh:sourceShape                sh:Shape ;
    >>>>  sh:value                      []
    >>>> ] .
    >>>>
    >>>> So now I am thinking that maybe I am using the wrong
    validator. Is it possible that I should be using the
    ResourceConstraintValidator instead of the
    ModelConstraintValidator? And if so, it takes a resource as the
    first argument unlike TBC which traverses the current graph.
    >>> So are you saying the result instances are different, i.e.
    they report different violations? Or is just the format (e.g.
    sh:focusNode vs. sh:subject) different? The latter is easy to
    explain: the SHACL API is ahead of the TBC release cycle, and only
    the API follows the very latest syntax changes to SHACL.
    >>>
    >>> Holger
    >>>
    >>> --
    >>> You received this message because you are subscribed to the
    Google Group "TopBraid Suite Users", the topics of which include
    the TopBraid Suite family of products and its base technologies
    such as SPARQLMotion, SPARQL Web Pages and SPIN.
    >>> To post to this group, send email to
    [email protected]
    <mailto:[email protected]>
    >>> --- You received this message because you are subscribed to a
    topic in the Google Groups "TopBraid Suite Users" group.
    >>> To unsubscribe from this topic, visit
    https://groups.google.com/d/topic/topbraid-users/4suqs8RewM0/unsubscribe
    <https://groups.google.com/d/topic/topbraid-users/4suqs8RewM0/unsubscribe>.

    >>> To unsubscribe from this group and all its topics, send an
    email to [email protected]
    <mailto:topbraid-users%[email protected]>.
    >>> For more options, visit https://groups.google.com/d/optout
    <https://groups.google.com/d/optout>.
    >
    > --
    > You received this message because you are subscribed to the
    Google Group "TopBraid Suite Users", the topics of which include
    the TopBraid Suite family of products and its base technologies
    such as SPARQLMotion, SPARQL Web Pages and SPIN.
    > To post to this group, send email to
    [email protected]
    <mailto:[email protected]>
    > --- You received this message because you are subscribed to a
    topic in the Google Groups "TopBraid Suite Users" group.
    > To unsubscribe from this topic, visit
    https://groups.google.com/d/topic/topbraid-users/4suqs8RewM0/unsubscribe
    <https://groups.google.com/d/topic/topbraid-users/4suqs8RewM0/unsubscribe>.

    > To unsubscribe from this group and all its topics, send an email
    to [email protected]
    <mailto:topbraid-users%[email protected]>.
    > For more options, visit https://groups.google.com/d/optout
    <https://groups.google.com/d/optout>.

--
You received this message because you are subscribed to the Google Group "TopBraid Suite Users", the topics of which include the TopBraid Suite family of products and its base technologies such as SPARQLMotion, SPARQL Web Pages and SPIN.
To post to this group, send email to [email protected]
---
You received this message because you are subscribed to the Google Groups "TopBraid Suite Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected] <mailto:[email protected]>.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Group "TopBraid 
Suite Users", the topics of which include the TopBraid Suite family of products and 
its base technologies such as SPARQLMotion, SPARQL Web Pages and SPIN.
To post to this group, send email to [email protected]
--- You received this message because you are subscribed to the Google Groups "TopBraid Suite Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to