The difference is most likely that sml:ImportRDFFromWorkspace does not  
include the system triples into the graph - only the imports. Then  
some code in the SWRL parser currently fails. As a work-around (which  
I did not confirm yet) please try adding sml:ImportSystemTriples as  
well, so that the inferencing module has two predecessors as input.

I will meanwhile see how to make the code more robust in that case.

Thanks for the report.
Holger


On Apr 2, 2009, at 10:49 AM, Kevin Matthews wrote:

>
> OK, I simplified the SparqlMotion script so it includes an
> ImportFromRDF module and an ApplyJenaRules module.  When I run it the
> first time after opening the SparqlMotion script, it executes
> successfully but still does not include any inferred triples in the
> results.  When I look at the Error log, there is a warning message for
> each of my rules.
>
> The title of the warning is:  Warning:  Ignoring SWRL rule .....<rule
> text>...
>
> The stack trace for the warning is:
>
> java.lang.NullPointerException
> at com.hp.hpl.jena.ontology.impl.OntResourceImpl.getRDFType
> (OntResourceImpl.java:781)
> at com.hp.hpl.jena.ontology.impl.OntResourceImpl.getRDFType
> (OntResourceImpl.java:758)
> at org.topbraid.rules.swrl.SWRL2Jena.appendAtomList(SWRL2Jena.java:42)
> at org.topbraid.rules.swrl.SWRL2Jena.appendLabel(SWRL2Jena.java:134)
> at org.topbraid.rules.swrl.SWRL2Jena.getRule(SWRL2Jena.java:180)
> at org.topbraid.rules.inference.AllRulesProvider.getSWRLImps
> (AllRulesProvider.java:91)
> at org.topbraid.rules.inference.AllRulesProvider.getRules
> (AllRulesProvider.java:79)
> at
> org 
> .topbraid 
> .sparqlmotion.lib.applyJenaRules.ApplyJenaRulesModule.createGraph
> (ApplyJenaRulesModule.java:27)
> at org.topbraid.sparqlmotion.modules.impl.AbstractModule.getRDFOutput
> (AbstractModule.java:592)
> at org.topbraid.sparqlmotion.engine.impl.ExecutionEngine.executeModule
> (ExecutionEngine.java:112)
> at org.topbraid.sparqlmotion.engine.impl.ExecutionEngine.execute
> (ExecutionEngine.java:74)
> at
> org 
> .topbraidcomposer 
> .sparqlmotion.views.console.SPARQLMotionConsole.execute
> (SPARQLMotionConsole.java:41)
> at
> org 
> .topbraidcomposer 
> .sparqlmotion.actions.AbstractExecuteSPARQLMotionAction
> $1.run(AbstractExecuteSPARQLMotionAction.java:141)
> at org.topbraidcomposer.core.util.ThreadUtil$1$1.run(ThreadUtil.java:
> 59)
> at java.lang.Thread.run(Thread.java:613)
>
>
> If I attempt to run it a second time, it fails with the following
> error:
>
> Could not execut SPARQLMotion script:
>
> java.lang.reflect.InvocationTargetException
>       at
> org 
> .topbraidcomposer 
> .sparqlmotion.actions.AbstractExecuteSPARQLMotionAction
> $1.run(AbstractExecuteSPARQLMotionAction.java:150)
>       at org.topbraidcomposer.core.util.ThreadUtil$1$1.run(ThreadUtil.java:
> 59)
>       at java.lang.Thread.run(Thread.java:613)
> Caused by: java.lang.NullPointerException
>       at com.hp.hpl.jena.ontology.impl.OntResourceImpl.getRDFType
> (OntResourceImpl.java:781)
>       at com.hp.hpl.jena.ontology.impl.OntResourceImpl.getRDFType
> (OntResourceImpl.java:758)
>       at org.topbraid.rules.swrl.SWRLLabelsPlugin.appendAtomList
> (SWRLLabelsPlugin.java:48)
>       at org.topbraid.rules.swrl.SWRLLabelsPlugin.appendLabel
> (SWRLLabelsPlugin.java:108)
>       at org.topbraid.strings.LabelsPlugins.appendLabel(LabelsPlugins.java:
> 40)
>       at org.topbraid.strings.Labels.append(Labels.java:179)
>       at org.topbraid.strings.Labels.getLabel(Labels.java:525)
>       at org.topbraid.strings.Labels.getLabel(Labels.java:499)
>       at org.topbraid.rules.inference.AllRulesProvider.getSWRLImps
> (AllRulesProvider.java:96)
>       at org.topbraid.rules.inference.AllRulesProvider.getRules
> (AllRulesProvider.java:79)
>       at
> org 
> .topbraid 
> .sparqlmotion.lib.applyJenaRules.ApplyJenaRulesModule.createGraph
> (ApplyJenaRulesModule.java:27)
>       at org.topbraid.sparqlmotion.modules.impl.AbstractModule.getRDFOutput
> (AbstractModule.java:592)
>       at  
> org.topbraid.sparqlmotion.engine.impl.ExecutionEngine.executeModule
> (ExecutionEngine.java:112)
>       at org.topbraid.sparqlmotion.engine.impl.ExecutionEngine.execute
> (ExecutionEngine.java:74)
>       at
> org 
> .topbraidcomposer 
> .sparqlmotion.views.console.SPARQLMotionConsole.execute
> (SPARQLMotionConsole.java:41)
>       at
> org 
> .topbraidcomposer 
> .sparqlmotion.actions.AbstractExecuteSPARQLMotionAction
> $1.run(AbstractExecuteSPARQLMotionAction.java:141)
>       ... 2 more
>
>
>
>
> Any idea why this would fail in SparqlMotion yet work fine when I run
> the rules when I'm viewing the Owl file directly?
>
>
> Thanks,
>
> Kev
>
>
>
>
> On Apr 2, 11:19 am, Holger Knublauch <[email protected]> wrote:
>> Hi Kevin,
>>
>> it should work if you just use sml:ApplyJenaRules - this includes  
>> Jena
>> rules and SWRL rules. The sml:ApplyJenaInferencing is for the built- 
>> in
>> Jena inference configurations such as OWL and RDFS.
>>
>> Note that even after you run this script, it will - by default - not
>> affect the current Inferences View of TBC. You will simply get the  
>> new
>> triples as result of the script, and can then determine what to do
>> next, e.g. stream it to a new file, or display them and infer them
>> temporarily.
>>
>> Holger
>>
>> On Apr 2, 2009, at 7:48 AM, Kevin Matthews wrote:
>>
>>
>>
>>> I have an owl file that contains many SWRL rules.  When I open the
>>> file, configure inferencing to run "SWRL and Jena Rules", and run
>>> inferencing, it generates a series of inferred triples in the
>>> Inferences window as expected.
>>
>>> However, I cannot figure out how to replicate this functionality  
>>> in a
>>> SparqlMotion script.
>>
>>> I currently have a SparqlMotion script that contains 2 modules.  The
>>> first module imports the RDF from the owl file.  The second module  
>>> is
>>> an ApplyJenaInferencing module with all default values.  When I run
>>> the script, the SparqlMotionResults window is populated with all the
>>> triples of the OWL file, but no inferred triples.  The Inferences
>>> window remains empty.  I have configured inferencing for the
>>> SparqlMotion script to use "SWRL and Jena Rules".
>>
>>> How do I get the ApplyJenaInferencing module to add the inferred
>>> triples to the output?  Can I query the inferred triples any other
>>> way?  Do I need to add an ApplyJenaRules module to the mix?  If so,
>>> does it belong before or after the ApplyJenaInferencing module?
>>
>>> Any help would be greatly appreciated.
>>
>>> Thanks,
>>
>>> Kevin
> >


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"TopBraid Composer Users" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/topbraid-composer-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to