There isn't an all function as such.
That's the notation for a structured value in the rule system. The rule
system supports structured values which are essentially named tuples,
using the syntax:
name(value1, value2, ... valuen)
Think of them as like prolog predicates but limited to a single level.
Since "predicate" means something else in RDF land, and "tuple" would
also have been confusing we called these structures functors, which may
or may not have been a good choice of name.
Internally they are represented as a special kind of structured literal
but they are not supposed to escape out into query results. They are
just used to pass information between sets of rules.
So the allID rule is gathering all the information from the triples that
make up an allValues restriction into one data structure, then the later
allX rules are triggered off that data structure. Basically helps with
performance and readability.
Dave
On 13/01/2023 01:38, L B wrote:
In the official document, there are some example code shown as below.
https://jena.apache.org/documentation/inference/
My question is where the all() function defined?
[allID: (?C rdf:type owl:Restriction), (?C owl:onProperty ?P),
(?C owl:allValuesFrom ?D) -> (?C owl:equivalentClass all(?P, ?D)) ]
[all2: (?C rdfs:subClassOf all(?P, ?D)) -> print(‘Rule for ‘, ?C)
[all1b: (?Y rdf:type ?D) <- (?X ?P ?Y), (?X rdf:type ?C) ] ]
[max1: (?A rdf:type max(?P, 1)), (?A ?P ?B), (?A ?P ?C)
-> (?B owl:sameAs ?C) ]