The first thing to check is always your stardog.log file.
It's also a bit simpler to use our "inline rules" syntax by writing your rule directly in the TTL file, not as a string. You can find an example in the docs.
Let us know if you have an issue downloading. The upgrade should be seamless if you placed your Stardog home directory outside the binary distribution.
You said “it doesn’t seem to work” in your original post. Can you further explain how you came to that conclusion? Rules are evaluated at query time when reasoning is enabled for the query. Did you see any messages in your stardog.log file?
Jess
edit: Sorry just noticed you said no messages in the log file.
I just ran a query to use the rule and I got the following in the log file,
WARN 2018-02-25 10:20:19,552 [XNIO-1 task-17] com.complexible.stardog.reasoning.rule.RuleExtractor:parseRule(157): Ignoring invalid rule:
IF {
?e a carnot:Employee .
?e carnot:employeeDepartment ?d .
?a carnot:assignmentEmployees ?e .
?a carnot:assignmentPairs ?p
}
THEN {
?p carnot:pairDepartment ?d
}
Parse error was: com.complexible.common.rdf.query.parser.sparql.ast.VisitorException: QName ‘carnot:Employee’ uses an undefined prefix
So I added the carnot namespace to the database, and now it works.
Why wasn’t the carnot prefix that I used to define the rule used? Why did I need to add carnot to the database?
Are you trying to post an image? Our anti-spam measures are a little aggressive for new users. I will have to check into it. Are you able to describe the problem with text?
For a prefix to be recognized in a rule string, it must be in the rule string itself, or defined in the database. The prefixes in the containing TTL file are not used. The inline rules syntax simplifies this. Here's the relevant section from the docs:
However, the namespace URIs used by the literal embedded rules can be defined in two places: the string that contains the rule—in the example above, you can see the default namespace is urn:test:--or in the Stardog database in which the rules are stored. Either place will work; if there are conflicts, the "closest definition wins", that is, if foo:Example is defined in both the rule content and in the Stardog database, the definition in the rule content is the one that Stardog will use.
What is not working with the browser? Can you explain it in more detail please?