I used "ja:rules" and "ja:ruleSet" instead of "ja:rule" and I could create
a repository with no error.

However, my rules don't work. I think that at least triples from OWLMicro
should be in the repository. Therefore, I think the problem is in "@include
<owlmicro>" .


At.te,

Marcelo de Oliveira Costa Machado


Em seg., 12 de out. de 2020 às 06:30, Marcelo Machado <
[email protected]> escreveu:

> I don't know what is going on anymore =(
>
> First, It is important to note that I am reading the rule content from a
> file that I already tested using "ja:rulesFrom", thus I believe the
> syntax inside is ok. I mean, there are no problems like you mentioned about
> the columns (it was a copy and paste problem).
>
> Now I am using """ to enclose the rules. So my code is as follows:
>
> :model_inf a ja:InfModel ;
> ja:baseModel :tdbGraph ;
> ja:reasoner [
> ja:reasonerURL <${reasonerURL}> ;
> ja:rule """
> ${rules}
> """ ;
> ]
> .
>
> And ${rules} has the file content (that has more than one rules):
>
> #-*-mode: conf-unix-*-
> @prefix time: <http://www.w3.org/2006/time#>
> @include <owlmicro>
>
> -> table(owl:sameAs).
>
>
> #---------------------------------------------------------------------------
> # Equality
>
> #---------------------------------------------------------------------------
>
> sameAs_symmetry:
> (?x owl:sameAs ?y)
> -> (?y owl:sameAs ?x).
>
> sameAs_transitivity:
> (?x owl:sameAs ?y)
> (?y owl:sameAs ?z)
> -> (?x owl:sameAs ?x).
>
> sameAs_Thing1:
> -> [(?x rdf:type owl:Thing) <- (?x owl:sameAs ?y)].
>
> sameAs_Thing2:
> -> [(?x owl:sameAs ?x) <- (?x rdf:type owl:Thing)].
>
> The error persists expecting '(':
>
> 06:23:01 WARN  Admin           :: [4] RC = 500 : caught: Expected '(' at
> start of clause, found @prefix
>
> At '#-*-mode: conf-unix-*- @prefix '
>
> org.apache.jena.assembler.exceptions.AssemblerException: caught: Expected
> '(' at start of clause, found @prefix
>
> At '#-*-mode: conf-unix-*- @prefix '
>
> at
> org.apache.jena.assembler.assemblers.AssemblerGroup$PlainAssemblerGroup.openBySpecificType(AssemblerGroup.java:165)
> ~[fuseki-server.jar:3.17.0-SNAPSHOT]
>
> at
> org.apache.jena.assembler.assemblers.AssemblerGroup$PlainAssemblerGroup.open(AssemblerGroup.java:144)
> ~[fuseki-server.jar:3.17.0-SNAPSHOT]
>
> ...
>
>
> FYI I am using this version:
> https://repository.apache.org/content/groups/snapshots/org/apache/jena/apache-jena-fuseki/3.17.0-SNAPSHOT/apache-jena-fuseki-3.17.0-20201005.074744-28.tar.gz
>
> At.te,
>
> Marcelo de Oliveira Costa Machado
>
>
> Em seg., 12 de out. de 2020 às 05:34, Andy Seaborne <[email protected]>
> escreveu:
>
>>
>>
>> On 12/10/2020 01:02, Marcelo Machado wrote:
>> > Thank you Andy, however the error persists.
>> >
>> > Let me send you a part of the data I'm trying to upload:
>> >
>> > :model_inf a ja:InfModel ;
>> >      ja:baseModel :tdbGraph ;
>> >      ja:reasoner [
>> >      ja:reasonerURL <http://jena.hpl.hp.com/2003/GenericRuleReasoner> ;
>> >      ja:rule "[
>> >          #-*-mode: conf-unix-*-
>> >          @prefix time: <http://www.w3.org/2006/time#>
>> >          @include <owlmicro>
>> >
>> >          -> table(owl:sameAs).
>> >
>> >
>> >
>> #---------------------------------------------------------------------------
>> >          # Equality
>> >
>> >
>> #---------------------------------------------------------------------------
>> >
>> >          sameAs_symmetry:
>> >          (?x owl:sameAs ?y)
>> >          -> (?y owl:sameAs ?x) .
>> >      ]";
>> > ]
>> > .
>>
>> There are a couple of things wrong with the syntax:
>>
>>
>> 1/ Use """ to enclose the rules because it is a multiple line string in
>> Turtle.
>>
>> 2/ Comments in rules are # in column 1 and the
>> "# Equality" and "#-*-mode: conf-unix-*-" are not in col 1.
>>
>> 3/ ....] go round a single rule
>>
>> this works for me:
>>
>> ===== Extract ====================
>>   ja:reasoner [
>>      ja:reasonerURL <http://jena.hpl.hp.com/2003/GenericRuleReasoner> ;
>>      ja:rule """
>>          @prefix time: <http://www.w3.org/2006/time#>
>>          @include <owlmicro>
>>
>>          -> table(owl:sameAs) .
>>
>> # Equality
>>          [sameAsSymmetry: (?x owl:sameAs ?y) -> (?y owl:sameAs ?x) ]
>>
>>      """;
>> ]
>> .
>> ==================================
>>
>>      Andy
>>
>>
>> >
>> > The error:
>> >
>> > 20:52:05 WARN  Admin           :: [2] RC = 500 : caught: Expected '(' at
>> > start of clause, found @prefix
>> >
>> > At '[ #-*-mode: conf-unix-*- @prefix '
>> >
>> > org.apache.jena.assembler.exceptions.AssemblerException: caught:
>> Expected
>> > '(' at start of clause, found @prefix
>> >
>> > At '[ #-*-mode: conf-unix-*- @prefix '
>> >
>> > at
>> >
>> org.apache.jena.assembler.assemblers.AssemblerGroup$PlainAssemblerGroup.openBySpecificType(AssemblerGroup.java:165)
>> > ~[fuseki-server.jar:3.17.0-SNAPSHOT]
>> >
>> >
>> > At.te,
>> >
>> > Marcelo de Oliveira Costa Machado
>> >
>> >
>> > Em dom., 11 de out. de 2020 às 07:52, Andy Seaborne <[email protected]>
>> > escreveu:
>> >
>> >>
>> >>
>> >> On 09/10/2020 18:42, Marcelo Machado wrote:
>> >>> I just downloaded the binary distribution of Fuseki2 and used the
>> >>> ./fuseki_server command to start a server. But I will get the
>> development
>> >>> build.
>> >>
>> >> Build ready:
>> >>
>> >>
>> >>
>> https://repository.apache.org/content/groups/snapshots/org/apache/jena/apache-jena-fuseki/3.17.0-SNAPSHOT/
>> >>
>> >> look for the latest
>> >>
>> >> At least dated:
>> >>
>> >> Sun Oct 11
>> >>
>> >> apache-jena-fuseki-3.17.0-20201011
>> >>
>> >>
>> >>>
>> >>> Just pointing out, I believe that the problem is not only with prefix
>> but
>> >>> with any directives other than the rules, for example, @include
>> >> <owlmicro>
>> >>
>> >> That's covered as well.
>> >>
>> >>       Andy
>> >>
>> >>>
>> >>> Thank you very much.
>> >>>
>> >>> At.te,
>> >>>
>> >>> Marcelo de Oliveira Costa Machado
>> >>>
>> >>>
>> >>> Em sex., 9 de out. de 2020 às 11:11, Andy Seaborne <[email protected]>
>> >>> escreveu:
>> >>>
>> >>>>
>> >>>>
>> >>>> On 09/10/2020 13:46, Marcelo Machado wrote:
>> >>>>> Yes, that is the problem, ja:rule does not accept some directives.
>> If
>> >> the
>> >>>>> problem was just prefixes I could resolve that by parsing the entire
>> >>>>> content, however, I use some directives like @include to add other
>> owl
>> >>>>> rules.
>> >>>>>
>> >>>>> If I use ja:rulesFrom with <file://...> everything works fine. But
>> in
>> >>>> that
>> >>>>> case, I have to save the file in my server and I would not like to
>> do
>> >>>> that.
>> >>>>> If not ja:rule I don't know what to do so, I didn't find any doc
>> about
>> >>>> that
>> >>>>> (actually seams that what I want is not possible with fuseki).
>> >>>>
>> >>>> I've created a ticket
>> >>>> https://issues.apache.org/jira/browse/JENA-1977
>> >>>>
>> >>>> and also a tried a quick hack that didn't cause the test suite to
>> >>>> complain so it may be possible to add the header @-directs (and
>> >>>> incidently comments) processing.
>> >>>>
>> >>>> How are you getting Fuseki? If it is one of the downloads, could you
>> >>>> test a development build which would speed getting a fix done in time
>> >>>> for the next release.
>> >>>>
>> >>>>        Andy
>> >>>>
>> >>>>>
>> >>>>>
>> >>>>> At.te,
>> >>>>>
>> >>>>> Marcelo de Oliveira Costa Machado
>> >>>>>
>> >>>>>
>> >>>>> Em sex., 9 de out. de 2020 às 08:47, Andy Seaborne <[email protected]
>> >
>> >>>>> escreveu:
>> >>>>>
>> >>>>>>
>> >>>>>>
>> >>>>>> On 08/10/2020 19:22, Marcelo Machado wrote:
>> >>>>>>> Hello Andy,
>> >>>>>>>
>> >>>>>>> I manually escaped \n and " characters and some errors were
>> >> corrected,
>> >>>>>>> thanks.  However, consider that I want to use the following string
>> >>>> rules
>> >>>>>> (
>> >>>>>>> string_rules_variable):
>> >>>>>>
>> >>>>>> I think (maybe someone can confirm) ja:rule is one or more rules,
>> but
>> >>>>>> not a full rules file with features of prefixes and other
>> directives.
>> >>>>>>
>> >>>>>> Does a rule if you use URIs?
>> >>>>>>
>> >>>>>>         Andy
>> >>>>>>
>> >>>>>>>
>> >>>>>>> #-*-mode: conf-unix-*-
>> >>>>>>> @prefix time: <http://www.w3.org/2006/time#>
>> >>>>>>> @include <owlmicro>
>> >>>>>>>
>> >>>>>>> -> table(owl:sameAs).
>> >>>>>>>
>> >>>>>>> #-----------------------------
>> >>>>>>>
>> >>>>>>> sameAs_symmetry:
>> >>>>>>> (?x owl:sameAs ?y)
>> >>>>>>> -> (?y owl:sameAs ?x).
>> >>>>>>>
>> >>>>>>> And as I said before this is how I am using in fuseki:
>> >>>>>>>> :model_inf a ja:InfModel ;
>> >>>>>>>>          ja:baseModel :tdbGraph ;
>> >>>>>>>>          ja:reasoner [
>> >>>>>>>>              ja:reasonerURL <
>> >>>>>> http://jena.hpl.hp.com/2003/GenericRuleReasoner> ;
>> >>>>>>>>              ja:rule "[string_rules_variable]"`;
>> >>>>>>>
>> >>>>>>> But Fuseki is not recognizing prefix:
>> >>>>>>>
>> >>>>>>>
>> >>>>>>> org.apache.jena.assembler.exceptions.AssemblerException: caught:
>> >>>>>>> Expected '(' at start of clause, found @prefix
>> >>>>>>>
>> >>>>>>>
>> >>>>>>>
>> >>>>>>> Do you have any thoughts on how to solve this?
>> >>>>>>>
>> >>>>>>> Thanks in advance!
>> >>>>>>>
>> >>>>>>>
>> >>>>>>>
>> >>>>>>>
>> >>>>>>>
>> >>>>>>>
>> >>>>>>> At.te,
>> >>>>>>>
>> >>>>>>> Marcelo de Oliveira Costa Machado
>> >>>>>>>
>> >>>>>>>
>> >>>>>>> Em qui., 8 de out. de 2020 às 05:47, Andy Seaborne <
>> [email protected]>
>> >>>>>>> escreveu:
>> >>>>>>>
>> >>>>>>>>
>> >>>>>>>>
>> >>>>>>>> On 08/10/2020 07:41, Marcelo Machado wrote:
>> >>>>>>>>> I am trying to create my own property rules in fuseki. To do so
>> I
>> >> am
>> >>>>>>>> using
>> >>>>>>>>> the Generic Rule Reasoning that allows me to use my own rules.
>> >> When I
>> >>>>>> use
>> >>>>>>>>> this strategy with my rules in a file everything works fine:
>> >>>>>>>>>
>> >>>>>>>>> :model_inf a ja:InfModel ;
>> >>>>>>>>>          ja:baseModel :tdbGraph ;
>> >>>>>>>>>          ja:reasoner [
>> >>>>>>>>>              ja:reasonerURL <
>> >>>>>> http://jena.hpl.hp.com/2003/GenericRuleReasoner>
>> >>>>>>>> ;
>> >>>>>>>>>              ja:rulesFrom <file://...> ;
>> >>>>>>>>>          ] .
>> >>>>>>>>>
>> >>>>>>>>> However, I would not want to use a file but add the rules
>> directly
>> >>>> as a
>> >>>>>>>>> string. I tried just to copy the content of the rule files that
>> >>>> worked
>> >>>>>> in
>> >>>>>>>>> the example above, but the repository was not created,
>> apparently
>> >> due
>> >>>>>> to
>> >>>>>>>>> special characters (e.g. #, \n...):
>> >>>>>>>>>
>> >>>>>>>>> :model_inf a ja:InfModel ;
>> >>>>>>>>>          ja:baseModel :tdbGraph ;
>> >>>>>>>>>          ja:reasoner [
>> >>>>>>>>>              ja:reasonerURL <
>> >>>>>> http://jena.hpl.hp.com/2003/GenericRuleReasoner>
>> >>>>>>>> ;
>> >>>>>>>>>              ja:rule "[${string_rules_variable}]"`;
>> >>>>>>>>
>> >>>>>>>> At a minimum that will need Turtle escapes for newlines. A
>> >>>> NodeFormatter
>> >>>>>>>>       formst outout - the Turtle rules are available directly via
>> >>>>>>>> EscapeStr.stringEsc(string).
>> >>>>>>>>
>> >>>>>>>> The full grammar details are here:
>> >>>>>> https://www.w3.org/TR/turtle/#terminals
>> >>>>>>>>
>> >>>>>>>> If you need to be it your self, it'll need newline  and "
>> handling,
>> >>>> two
>> >>>>>>>> character \n and \"
>> >>>>>>>>
>> >>>>>>>>          Andy
>> >>>>>>>>
>> >>>>>>>>>          ] .
>> >>>>>>>>> where ${string_rules_variable} (javascript string interpolation)
>> >>>>>> contains
>> >>>>>>>>> the rules read from the file.
>> >>>>>>>>>
>> >>>>>>>>> So, what am I doing wrong? I believe this is about escaping
>> special
>> >>>>>>>>> characters, if so, what would be the way to resolve it?
>> >>>>>>>>>
>> >>>>>>>>> At.te,
>> >>>>>>>>>
>> >>>>>>>>> Marcelo de Oliveira Costa Machado
>> >>>>>>>>>
>> >>>>>>>>
>> >>>>>>>
>> >>>>>>
>> >>>>>
>> >>>>
>> >>>
>> >>
>> >
>>
>

Reply via email to