class RDF::N3::Algebra::Log::Semantics
The log:semantics of a document is the formula. achieved by parsing representation of the document. For a document in Notation3, log:semantics is the log:parsedAsN3 of the log:contents of the document. For a document in RDF/XML, it is parsed according to the RDF/XML specification to yield an RDF
formula (a subclass of N3
log:Formula).
- 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 anN3
based system is the meaning expressed by a document. -
(Cwm knows how to go get a document and parse
N3
and RDF/XML it in order to evaluate this. Other languages for web documents may be defined whoseN3
semantics are therefore also calculable, and so they could be added in due course. See for example GRDDL, RDFa, etc)
Constants
- NAME
- URI
Public Instance Methods
Source
# File lib/rdf/n3/algebra/log/semantics.rb, line 19 def resolve(resource, position: :subject) case position when :subject return nil unless resource.literal? || resource.uri? begin repo = RDF::N3::Repository.new repo << RDF::Reader.open(resource, **@options.merge(list_terms: true, base_uri: resource, logger: false)) content_hash = repo.statements.hash # used as name of resulting formula form = RDF::N3::Algebra::Formula.from_enumerable(repo, graph_name: RDF::Node.intern(content_hash)) log_debug(NAME) {"form hash (#{resource}): #{form.hash}"} form rescue IOError, RDF::ReaderError => e log_error(NAME) {"error loading #{resource}: #{e}"} nil end when :object return nil unless resource.literal? || resource.variable? resource end end
Parses the subject into a new formula.
Returns nil if resource does not validate, given its position
@param [RDF::N3::List] resource @return [RDF::Term]