Provided by: librdf-closure-perl_0.001-5_all bug

NAME

       RDF::Closure - pure Perl RDF inferencing

SYNOPSIS

        use RDF::Trine::Iterator qw[sgrep];
        use RDF::Closure qw[iri mk_filter FLT_NONRDF FLT_BORING];

        my $data = iri('http://bloggs.example.com/foaf.rdf');
        my $foaf = iri('http://xmlns.com/foaf/0.1/index.rdf');

        my $model = RDF::Trine::Model->temporary_model;
        my $p     = 'RDF::Trine::Parser';
        $p->parse_url_into_model($data->uri, $model, context => $data->uri);
        $p->parse_url_into_model($foaf->uri, $model, context => $foaf->uri);

        my $cl = RDF::Closure::Engine->new('rdfs', $model);
        $cl->closure;

        my $filter = mk_filter(FLT_NONRDF|FLT_BORING, [$foaf]);
        my $output = &sgrep($filter, $model->as_stream);

        print RDF::Trine::Serializer
          ->new('RDFXML')
          ->serialize_iterator_to_string($output);

DESCRIPTION

       This distribution is a pure Perl RDF inference engine designed as an add-in for RDF::Trine. It is largely
       a port of Ivan Herman's Python RDFClosure library, though there has been some restructuing, and there are
       a few extras thrown in.

       Where one of the Perl modules has a direct equivalent in Ivan's library, this is noted in the POD.

   Functions
       This package inherits from RDF::Trine and exports the same functions, plus:

       •   "mk_filter($basic_filters, $ignore_contexts)"

           Creates a filter (coderef) suitable for use with "sgrep" from RDF::Trine::Iterator.

           $basic_filters  is an integer which can be assembled by bitwise-OR-ing the constants "FLT_NONRDF" and
           "FLT_BORING".

           $ignore_contexts is an arrayref of RDF::Trine::Node objects, each of which represents a context  that
           should be filtered out.

             use RDF::Trine::Iterator qw[sgrep];
             use RDF::Closure qw[iri mk_filter FLT_NONRDF FLT_BORING];

             my $foaf   = iri('http://xmlns.com/foaf/0.1/index.rdf');
             my $filter = mk_filter(FLT_NONRDF|FLT_BORING, [$foaf]);

             my $remaining = &sgrep($filter, $model->as_stream);

             # $remaining is now an iterator which will return all triples
             # from $model except: those in the FOAF named graph, those which
             # are non-RDF (e.g. literal subject) and those which are boring.

           Which  triples  are boring? Any triple of the form { ?x owl:sameAs ?x .}, { ?x owl:equivalentProperty
           ?x .}, { ?x owl:equivalentClass ?x .}, { ?x rdfs:subPropertyOf ?x .} or { ?x rdfs:subClassOf ?x .} is
           boring (i.e. where these statements have the same term in subject and object  position).  Any  triple
           where  the  subject,  predicate  and  object nodes are all in the RDF, RDFS, OWL or XSD namespaces is
           boring. Other triples are not boring.

       For convenience, "RDF::Closure" also exports variables called  $RDF,  $RDFS,  $OWL  and  $XSD  which  are
       RDF::Trine::Namespace objects.

SEE ALSO

       RDF::Closure::Engine, RDF::Closure::Model, RDF::Trine::Parser::OwlFn.

       RDF::Trine, RDF::Query.

       <http://www.perlrdf.org/>.

       <http://www.ivan-herman.net/Misc/2008/owlrl/>.

AUTHOR

       Toby Inkster <tobyink@cpan.org>.

COPYRIGHT

       Copyright 2011-2012 Toby Inkster

       This  library  is  free  software;  you  can  redistribute it and/or modify it under any of the following
       licences:

       •   The Artistic License 1.0 <http://www.perlfoundation.org/artistic_license_1_0>.

       •   The GNU General Public License Version 1  <http://www.gnu.org/licenses/old-licenses/gpl-1.0.txt>,  or
           (at your option) any later version.

       •   The               W3C              Software              Notice              and              License
           <http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231>.

       •   The Clarified Artistic License <http://www.ncftp.com/ncftp/doc/LICENSE.txt>.

DISCLAIMER OF WARRANTIES

       THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT  ANY  EXPRESS  OR  IMPLIED  WARRANTIES,  INCLUDING,  WITHOUT
       LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.

perl v5.32.1                                       2021-09-24                                  RDF::Closure(3pm)