You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@jena.apache.org by Hélio Azevedo <ha...@usp.br> on 2017/11/28 20:08:03 UTC
Fuseki Reasoner
Hi
I have an ontology that was elaborated with the support of the Protégé tool.
In this ontology I use a data property, named "objectId". This property was
flagged as "Functional". If I insert two "objectId" for the same concept
and activate the Pellet reasoner the Protégé tool signals an error.
When loading the same ontology in Fuseki environment and inserting two
"objectId" for the same concept, Fuseki does not acknowledge an error!
The new objectId is inserted with the use of a Sparql endpoint.
How should I proceed ?
The reasoner activation on Fuseki is done by the configuration below:
@prefix : <http://base/#> .
@prefix tdb: <http://jena.hpl.hp.com/2008/tdb#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix ja: <http://jena.hpl.hp.com/2005/11/Assembler#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix fuseki: <http://jena.apache.org/fuseki#> .
@prefix ontsense: <http://example.org/sense#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
:service1 a fuseki:Service ;
fuseki:dataset :dataset ;
fuseki:name "ontsense" ;
fuseki:serviceQuery "query" , "sparql" ;
fuseki:serviceReadGraphStore "get" ;
fuseki:serviceReadWriteGraphStore
"data" ;
fuseki:serviceUpdate "update" ;
fuseki:serviceUpload "upload" .
:dataset a ja:DatasetTxnMem ;
ja:defaultGraph <#model_inf_1> ;
.
<#model_inf_1> rdfs:label "Inf-1" ;
ja:reasoner
[ ja:reasonerURL
<http://jena.hpl.hp.com/2003/OWLFBRuleReasoner>];
--
PhD Student
Robot Learning Laboratory LAR
ICMC - USP São Carlos - Brazil
Re: Fuseki Reasoner
Posted by ajs6f <aj...@apache.org>.
I'm not sure if it was clear from Andy's reply, but that is not really a supported functionality right now.
What is more, using OWL is not really a great way to do that. Reasoners for OWL (or RDFS) are meant to create new inferred triples, not constrain graphs. You would want to look at SHACL or ShEx for constraint languages.
ajs6f
> On Nov 30, 2017, at 10:18 AM, Hélio Azevedo <ha...@usp.br> wrote:
>
> Hi
>
> I understand that this is a high level discussion that involves changes to
> the Fuseki interface.
>
> However, my need is very basic: when sending a sparql command that breaks
> an axiom of my ontology, I would like to receive a simple error indication.
>
> Thankful.
>
> Helio
>
> On Wed, Nov 29, 2017 at 8:13 AM, Andy Seaborne <an...@apache.org> wrote:
>
>>
>>
>> On 29/11/17 08:13, Dave Reynolds wrote:
>>
>>> With the Jena API there's a separate validate() call on InfModel (and
>>> thus on OntModel) which will return a list of validation error reports.
>>>
>>> I don't think there's any way to invoke that from Fuseki.
>>>
>>
>> Thread drift ....
>>
>> Pull request 316 [1] is an addition to Fuseki (service side) to allow
>> extension services to be added - like an "invoke inference" service or
>> "validation report" service.
>>
>> "/datasets/query" is the query service on /dataset - an extension service
>> would be "/datasets/validation-report" and it can have an HTTP query string.
>>
>> PR#316 is not an implementation of any new services but it means code can
>> be added and wired into Fuseki for features not in the core system.
>>
>> If there are customization features that don't fit into the "add a
>> service" style, do please give a use case and describe what is required.
>>
>> Andy
>>
>> [1] https://github.com/apache/jena/pull/316
>>
>>
>> Whether the builtin rule reasoners would detect your specific issue I'm
>>> not sure but probably. However, in general if you want complete DL level
>>> validation you need to use a DL reasoner such as Pellet which is not
>>> included in Jena.
>>>
>>> Dave
>>>
>>>
>>> On 28/11/17 20:08, Hélio Azevedo wrote:
>>>
>>>> Hi
>>>>
>>>> I have an ontology that was elaborated with the support of the Protégé
>>>> tool.
>>>> In this ontology I use a data property, named "objectId". This property
>>>> was
>>>> flagged as "Functional". If I insert two "objectId" for the same concept
>>>> and activate the Pellet reasoner the Protégé tool signals an error.
>>>>
>>>> When loading the same ontology in Fuseki environment and inserting two
>>>> "objectId" for the same concept, Fuseki does not acknowledge an error!
>>>> The new objectId is inserted with the use of a Sparql endpoint.
>>>>
>>>> How should I proceed ?
>>>>
>>>> The reasoner activation on Fuseki is done by the configuration below:
>>>>
>>>> @prefix : <http://base/#> .
>>>> @prefix tdb: <http://jena.hpl.hp.com/2008/tdb#> .
>>>> @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
>>>> @prefix ja: <http://jena.hpl.hp.com/2005/11/Assembler#> .
>>>> @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
>>>> @prefix fuseki: <http://jena.apache.org/fuseki#> .
>>>>
>>>>
>>>> @prefix ontsense: <http://example.org/sense#> .
>>>> @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
>>>> @prefix owl: <http://www.w3.org/2002/07/owl#> .
>>>>
>>>>
>>>>
>>>> :service1 a fuseki:Service ;
>>>> fuseki:dataset :dataset ;
>>>> fuseki:name "ontsense" ;
>>>> fuseki:serviceQuery "query" , "sparql" ;
>>>> fuseki:serviceReadGraphStore "get" ;
>>>> fuseki:serviceReadWriteGraphStore
>>>> "data" ;
>>>> fuseki:serviceUpdate "update" ;
>>>> fuseki:serviceUpload "upload" .
>>>>
>>>> :dataset a ja:DatasetTxnMem ;
>>>> ja:defaultGraph <#model_inf_1> ;
>>>> .
>>>>
>>>> <#model_inf_1> rdfs:label "Inf-1" ;
>>>> ja:reasoner
>>>> [ ja:reasonerURL
>>>> <http://jena.hpl.hp.com/2003/OWLFBRuleReasoner>];
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>
>
> --
> PhD Student
> Robot Learning Laboratory LAR
> ICMC - USP São Carlos - Brazil
Re: Fuseki Reasoner
Posted by Hélio Azevedo <ha...@usp.br>.
Hi
I understand that this is a high level discussion that involves changes to
the Fuseki interface.
However, my need is very basic: when sending a sparql command that breaks
an axiom of my ontology, I would like to receive a simple error indication.
Thankful.
Helio
On Wed, Nov 29, 2017 at 8:13 AM, Andy Seaborne <an...@apache.org> wrote:
>
>
> On 29/11/17 08:13, Dave Reynolds wrote:
>
>> With the Jena API there's a separate validate() call on InfModel (and
>> thus on OntModel) which will return a list of validation error reports.
>>
>> I don't think there's any way to invoke that from Fuseki.
>>
>
> Thread drift ....
>
> Pull request 316 [1] is an addition to Fuseki (service side) to allow
> extension services to be added - like an "invoke inference" service or
> "validation report" service.
>
> "/datasets/query" is the query service on /dataset - an extension service
> would be "/datasets/validation-report" and it can have an HTTP query string.
>
> PR#316 is not an implementation of any new services but it means code can
> be added and wired into Fuseki for features not in the core system.
>
> If there are customization features that don't fit into the "add a
> service" style, do please give a use case and describe what is required.
>
> Andy
>
> [1] https://github.com/apache/jena/pull/316
>
>
> Whether the builtin rule reasoners would detect your specific issue I'm
>> not sure but probably. However, in general if you want complete DL level
>> validation you need to use a DL reasoner such as Pellet which is not
>> included in Jena.
>>
>> Dave
>>
>>
>> On 28/11/17 20:08, Hélio Azevedo wrote:
>>
>>> Hi
>>>
>>> I have an ontology that was elaborated with the support of the Protégé
>>> tool.
>>> In this ontology I use a data property, named "objectId". This property
>>> was
>>> flagged as "Functional". If I insert two "objectId" for the same concept
>>> and activate the Pellet reasoner the Protégé tool signals an error.
>>>
>>> When loading the same ontology in Fuseki environment and inserting two
>>> "objectId" for the same concept, Fuseki does not acknowledge an error!
>>> The new objectId is inserted with the use of a Sparql endpoint.
>>>
>>> How should I proceed ?
>>>
>>> The reasoner activation on Fuseki is done by the configuration below:
>>>
>>> @prefix : <http://base/#> .
>>> @prefix tdb: <http://jena.hpl.hp.com/2008/tdb#> .
>>> @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
>>> @prefix ja: <http://jena.hpl.hp.com/2005/11/Assembler#> .
>>> @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
>>> @prefix fuseki: <http://jena.apache.org/fuseki#> .
>>>
>>>
>>> @prefix ontsense: <http://example.org/sense#> .
>>> @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
>>> @prefix owl: <http://www.w3.org/2002/07/owl#> .
>>>
>>>
>>>
>>> :service1 a fuseki:Service ;
>>> fuseki:dataset :dataset ;
>>> fuseki:name "ontsense" ;
>>> fuseki:serviceQuery "query" , "sparql" ;
>>> fuseki:serviceReadGraphStore "get" ;
>>> fuseki:serviceReadWriteGraphStore
>>> "data" ;
>>> fuseki:serviceUpdate "update" ;
>>> fuseki:serviceUpload "upload" .
>>>
>>> :dataset a ja:DatasetTxnMem ;
>>> ja:defaultGraph <#model_inf_1> ;
>>> .
>>>
>>> <#model_inf_1> rdfs:label "Inf-1" ;
>>> ja:reasoner
>>> [ ja:reasonerURL
>>> <http://jena.hpl.hp.com/2003/OWLFBRuleReasoner>];
>>>
>>>
>>>
>>>
>>>
>>>
>>>
--
PhD Student
Robot Learning Laboratory LAR
ICMC - USP São Carlos - Brazil
Re: Fuseki Reasoner
Posted by Andy Seaborne <an...@apache.org>.
On 29/11/17 08:13, Dave Reynolds wrote:
> With the Jena API there's a separate validate() call on InfModel (and
> thus on OntModel) which will return a list of validation error reports.
>
> I don't think there's any way to invoke that from Fuseki.
Thread drift ....
Pull request 316 [1] is an addition to Fuseki (service side) to allow
extension services to be added - like an "invoke inference" service or
"validation report" service.
"/datasets/query" is the query service on /dataset - an extension
service would be "/datasets/validation-report" and it can have an HTTP
query string.
PR#316 is not an implementation of any new services but it means code
can be added and wired into Fuseki for features not in the core system.
If there are customization features that don't fit into the "add a
service" style, do please give a use case and describe what is required.
Andy
[1] https://github.com/apache/jena/pull/316
> Whether the builtin rule reasoners would detect your specific issue I'm
> not sure but probably. However, in general if you want complete DL level
> validation you need to use a DL reasoner such as Pellet which is not
> included in Jena.
>
> Dave
>
>
> On 28/11/17 20:08, Hélio Azevedo wrote:
>> Hi
>>
>> I have an ontology that was elaborated with the support of the Protégé
>> tool.
>> In this ontology I use a data property, named "objectId". This
>> property was
>> flagged as "Functional". If I insert two "objectId" for the same concept
>> and activate the Pellet reasoner the Protégé tool signals an error.
>>
>> When loading the same ontology in Fuseki environment and inserting two
>> "objectId" for the same concept, Fuseki does not acknowledge an error!
>> The new objectId is inserted with the use of a Sparql endpoint.
>>
>> How should I proceed ?
>>
>> The reasoner activation on Fuseki is done by the configuration below:
>>
>> @prefix : <http://base/#> .
>> @prefix tdb: <http://jena.hpl.hp.com/2008/tdb#> .
>> @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
>> @prefix ja: <http://jena.hpl.hp.com/2005/11/Assembler#> .
>> @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
>> @prefix fuseki: <http://jena.apache.org/fuseki#> .
>>
>>
>> @prefix ontsense: <http://example.org/sense#> .
>> @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
>> @prefix owl: <http://www.w3.org/2002/07/owl#> .
>>
>>
>>
>> :service1 a fuseki:Service ;
>> fuseki:dataset :dataset ;
>> fuseki:name "ontsense" ;
>> fuseki:serviceQuery "query" , "sparql" ;
>> fuseki:serviceReadGraphStore "get" ;
>> fuseki:serviceReadWriteGraphStore
>> "data" ;
>> fuseki:serviceUpdate "update" ;
>> fuseki:serviceUpload "upload" .
>>
>> :dataset a ja:DatasetTxnMem ;
>> ja:defaultGraph <#model_inf_1> ;
>> .
>>
>> <#model_inf_1> rdfs:label "Inf-1" ;
>> ja:reasoner
>> [ ja:reasonerURL
>> <http://jena.hpl.hp.com/2003/OWLFBRuleReasoner>];
>>
>>
>>
>>
>>
>>
Re: Fuseki Reasoner
Posted by Dave Reynolds <da...@gmail.com>.
With the Jena API there's a separate validate() call on InfModel (and
thus on OntModel) which will return a list of validation error reports.
I don't think there's any way to invoke that from Fuseki.
Whether the builtin rule reasoners would detect your specific issue I'm
not sure but probably. However, in general if you want complete DL level
validation you need to use a DL reasoner such as Pellet which is not
included in Jena.
Dave
On 28/11/17 20:08, Hélio Azevedo wrote:
> Hi
>
> I have an ontology that was elaborated with the support of the Protégé tool.
> In this ontology I use a data property, named "objectId". This property was
> flagged as "Functional". If I insert two "objectId" for the same concept
> and activate the Pellet reasoner the Protégé tool signals an error.
>
> When loading the same ontology in Fuseki environment and inserting two
> "objectId" for the same concept, Fuseki does not acknowledge an error!
> The new objectId is inserted with the use of a Sparql endpoint.
>
> How should I proceed ?
>
> The reasoner activation on Fuseki is done by the configuration below:
>
> @prefix : <http://base/#> .
> @prefix tdb: <http://jena.hpl.hp.com/2008/tdb#> .
> @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
> @prefix ja: <http://jena.hpl.hp.com/2005/11/Assembler#> .
> @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
> @prefix fuseki: <http://jena.apache.org/fuseki#> .
>
>
> @prefix ontsense: <http://example.org/sense#> .
> @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
> @prefix owl: <http://www.w3.org/2002/07/owl#> .
>
>
>
> :service1 a fuseki:Service ;
> fuseki:dataset :dataset ;
> fuseki:name "ontsense" ;
> fuseki:serviceQuery "query" , "sparql" ;
> fuseki:serviceReadGraphStore "get" ;
> fuseki:serviceReadWriteGraphStore
> "data" ;
> fuseki:serviceUpdate "update" ;
> fuseki:serviceUpload "upload" .
>
> :dataset a ja:DatasetTxnMem ;
> ja:defaultGraph <#model_inf_1> ;
> .
>
> <#model_inf_1> rdfs:label "Inf-1" ;
> ja:reasoner
> [ ja:reasonerURL
> <http://jena.hpl.hp.com/2003/OWLFBRuleReasoner>];
>
>
>
>
>
>