The vocabulary is published by the W3C Notation-3 Community Group.
Any statement mentioning anything in this class is considered boring and purged by the cwm --purge option. This is a convenience, and does not have any value when published as a general fact on the web.
The class of Notation-3 Formulae
A Notation-3 List, as a resource. A sub-class of an RDF List.
A document which, which parsed as Notation3 as defined in general by http://www.w3.org/DesignIssues/Notation3.html and this schema, conveys the intent of the author by the semantics defined on those specifications, and the semantics defined by the specifications of any other identifiers used in the document.
Some other Notation-3 type
An RDF Literal
Something which is true: believe it as you would believe this.
Understood natively by cwm in that it will execute rules in a formula declared a Truth within a formula it is already taking rules from.
The class of Notation3-specifiec resource types.
Built-in to perform RDF linear implication i.e. retracting the subject graph and asserting the object graph.
All possible conclusions which can be drawn from a formula.
schema:
$a_1 log:conclusion $a_2
definition:
$a_2
is the set of conclusions which can be
drawn from $a_1
, by successively applying any
rules it contains to the data it contains.
requires:
$a_1
is a formula
$a_2
is unbound or a formula.
note: This is equivalent to cwm's "--think" command line function. It does use built-ins, so it may for example indirectly invoke other documents, validate signatures, etc.
A function to merge formulae: logical AND.
schema:
($a_1 .. $a_n) log:conjunction $a_s
definition:
$a_s
, which can be generated, is a formula containing a copy
of each of the formulae $a_1 .. $a_n
.
requires:
all $a_1, .., $a_n
to be formulae.
This connects a document and a string that represents it. (Cwm knows how to go get a document in order to evaluate this.)
schema:
$a_1 log:content $a_2
requires:
$a_1
must be an IRI.
$a_2
must be either unbound or a string.
note: The content-type of the information is not given and so must be known or guessed.
When document D is the definitiveDocument for property P, any statement X P Y is true iff the semantics of document D include that statement.
For example, there may be a definitive document for the zipcode of airports by airport code, and so on. This is useful to let a reasoner know that it can extend its query to the given document. (Cwm will do this if its mode includes "r").
When service S is the definitiveService for property P,
any statement X P Y is true iff and only if a query to S returns
that it is. The protocol for the service S depends on the scheme.
For mysql protocol, the URI of the service is like
sql://user:password@host.domain/database/
.
For example, there may be a definitive service for the zipcode of airports by airport code, and so on. This is useful to let a reasoner know that it can help resolve a query by delegating it to the service in question. (Cwm will do this if its mode includes "r").
Takes a list of a string and a URI and creates a datatyped literal.
schema:
($a_1 $a_2) log:dtlit $a_3
definition:
true
if and only if the datatyped literal formed of $a_1
and $a_1
equals $a_3
.
The subject is a list composed of a string and an IRI, and the object
is a datatyped literal with the value $a_1
and datatype $a_2
.
requires:
$a_1
and $a_2
to be bound.
$a_1
to be a xs:string
(see note on casting to string).
$a_2
to be an IRI.
example:
`{ ("2005-03-30T11:00:00" :tz) log:dtlit ?X } => { ?X a :Answer } .
will produce "2005-03-30T11:00:00"^^:tz a :Answer .
Determines if two RDF resources are the same.
schema:
$a_1 log:equalTo $a_2
definition:
true
if and only if $a_1
and $a_2
are the same RDF node (symbol or literal).
Do not confuse with owl:sameAs.
Built-in used as ?SCOPE e:findall (?SELECT ?WHERE ?ANSWER).
Within the subject ?SCOPE
it unifies ?ANSWER
with a list that contains
all the instantiations of ?SELECT
satisfying the ?WHERE
clause.
Built-in for implementing a scoped universal quantification.
Built-in for implementing a scoped universal quantification.
Logical implication.
This is the relation between the antecedent (subject) and conclusion (object) of a rule.
schema:
$a_1 log:implies $a_2
definition:
The application of a rule to a knowledge-base is as follows.
For every substitution which, applied to the antecedent ($a_1
),
gives a formula ($a_2
) which is a subset of the knowledge-base,
then the result of applying that same substitution to the
conclusion may be added to the knowledge-base.
requires:
$a_1
and $a_2
must be formulae.
related:
See log:conclusion
.
The subject formula includes the object formula.
schema:
$a_1 log:includes $a_2
definition:
$a_1
includes $a_2
if there exists some substitution
which when applied to $a_2
creates a formula B' such that for
every statement in B' is also in $a_1
, every variable
universally (or existentially) quantified in B' is quantified in
the same way in $a_1
.
Variable substitution is applied recursively to nested compound terms such as formulae, lists and sets.
requires:
$a_1
and $a_2
must be formulae.
note: You can use this to peer inside nested formulae.
The subject formula, expressed as N3, gives this string.
schema:
$a_1 log:n3String $a_2
definition:
$a_1
, serialized as N3, gives $a_2
.
requires:
$a_1
is a formula.
related:
See log:parsedAsN3
.
Determines if two RDF resources are not the same.
schema:
$a_1 log:notEqualTo $a_2
definition:
true
if and only if $a_1
and $a_2
are not the same RDF node (symbol or literal).
Custom built-in for implementing scoped negation-as-failure (SNAF).
Custom built-in for implementing scoped negation-as-failure (SNAF).
The object formula is NOT a subset of subject.
schema:
$a_1 log:notIncludes $a_2
definition:
true
if and only if log:includes
is false
. The converse of log:includes.
related:
See log:includes
.
The subject is a key and the object is a string, where the strings are to be output in the order of the keys. See cwm --strings in cwm --help.
The subject string, parsed as N3, gives this formula.
schema:
$a_1 log:parsedAsN3 $a_2
definition:
$a_1
, parsed as N3, gives $a_2
.
requires:
$a_1
is a syntactically valid string in N3 format.
related:
See log:n3String
.
For anything identified by a URI with a fragid, this is the thing identified by the same URI without a hash or fragid. For anything else, it is itself.
Returns an identifier based on the type of the RDF Resource.
schema:
$a_1 log:rawType $a_2
definition:
true
if the type of $a_1
is the same as $a_2
, or binds the type to $a_2
.
requires:
$a_2
is unbound or one of log:Formula
, log:Literal
,
log:List
, log:Set
or log:Other
.
example:
log:semanticsOrError
returns either a formula or a string, and you can check which using log:rawType
.
This allows one to look at the actual string of the URI which identifies this, for anything, even a blank node or a formula. This peeks into the internal workings of cwm, and so is not normally used. Use log:uri instead.
The log:semantics of a document is the formula achieved by parsing representation of the document.
schema:
$a_1 log:semantics $a_2
definition:
For a document in Notation3, log:semantics
is the
log:parsedAsN3
of the log:content
of the document.
For a document in another RDF syntax, it is parsed according to the
appropriate specification to yield an RDF formula
(a subclass of N3 log:Formula
).
Evaluates to false
if an unrecognized document format is retrieved.
requires:
$a_1
must be an IRI.
aside: Philosophers will be distracted here into worrying about the meaning of meaning. At least we didn't call this function "meaning"! In as much as N3 is used as an interlingua for interoperability for different systems, this for an N3 based system is the meaning expressed by a document.
related:
See log:parsedAsN3
and log:content
.
This connects a document and either the formula it parses to, or an error message explaining what went wrong with trying.
schema:
$a_1 log:semanticsOrError $a_2
requires:
$a_1
must be an IRI.
related:
See log:semantics
.
Built-in to generate a Skolem IRI object which is a function of the arguments in the subject list
This allows one to look at the actual string of the URI which identifies this.
(Cwm can get the URI of a resource or get the resource from the URI.) This is a level breaker, breaking the rule of not looking inside a URI. Use (eg with string:match) to replace RDF's old "aboutEach" functionality. Use to implement the URI spec and protocol specs, etc.
The class log:N3 is the class of N3 literal values. log:N3 is an instance of rdfs:Datatype and a subclass of rdfs:Literal. The value of log:content of a log:N3Document is a literal with datatype log:N3.
These raise the level above RDF's pure relational data, and Web Ontology's ontological level, to allow rules to be expressed and inference done. They connect the inference to the web, allowing data to be fetched from resources elsewhere, and remote servers to be queried.