[libcatmandu-rdf-perl] 11/20: Fixing method names to reflect parsing type

Jonas Smedegaard dr at jones.dk
Sat Oct 28 03:10:21 UTC 2017


This is an automated email from the git hooks/post-receive script.

js pushed a commit to annotated tag upstream/0.32
in repository libcatmandu-rdf-perl.

commit adf63e796771afe52b242ff01a4d83e54dae0004
Author: Patrick Hochstenbach <patrick.hochstenbach at ugent.be>
Date:   Sat Jul 29 11:11:00 2017 +0200

    Fixing method names to reflect parsing type
---
 lib/Catmandu/Importer/RDF.pm | 42 +++++++++++-------------------------------
 1 file changed, 11 insertions(+), 31 deletions(-)

diff --git a/lib/Catmandu/Importer/RDF.pm b/lib/Catmandu/Importer/RDF.pm
index b71b06d..39a3517 100644
--- a/lib/Catmandu/Importer/RDF.pm
+++ b/lib/Catmandu/Importer/RDF.pm
@@ -148,7 +148,7 @@ sub sparql_generator {
 sub rdf_generator {
     my ($self) = @_;
     sub {
-        state $stream = $self->_aref_stream;
+        state $stream = $self->_hashref_stream;
         return unless $stream;
 
         my $aref = { };
@@ -247,36 +247,9 @@ sub _sparql_stream {
     }
 }
 
-# sub _rdf_stream {
-#     my ($self) = @_;
-#
-#     my $model  = RDF::Trine::Model->new;
-#     my $parser = $self->type
-#                ? RDF::Trine::Parser->new( $self->type ) : 'RDF::Trine::Parser';
-#
-#     if ($self->url) {
-#         $parser->parse_url_into_model( $self->url, $model );
-#     } else {
-#         my $from_scalar = (ref $self->file // '') eq 'SCALAR';
-#         if (!$self->type and $self->file and !$from_scalar) {
-#             $parser = $parser->guess_parser_by_filename($self->file);
-#         }
-#         if ($from_scalar) {
-#             $parser->parse_into_model( $self->base, ${$self->file}, $model );
-#         } else {
-#             $parser->parse_file_into_model( $self->base, $self->file // $self->fh, $model );
-#         }
-#     }
-#
-#     return $model->as_stream;
-# }
-
-sub _aref_stream {
+sub _hashref_stream {
   my ($self) = @_;
 
-  my $parser = $self->type
-             ? RDF::Trine::Parser->new( $self->type ) : 'RDF::Trine::Parser';
-
   my $pipe = IO::Pipe->new();
 
   if (my $pid = fork()) {
@@ -301,12 +274,19 @@ sub _aref_stream {
 
     binmode($pipe,':encoding(UTF-8)');
 
+    my $parser = $self->type
+               ? RDF::Trine::Parser->new( $self->type ) : 'RDF::Trine::Parser';
+
     my $handler = sub {
         my $triple = shift;
 
         my $subject   = $triple->subject->value;
         my $predicate = $triple->predicate->value;
-        my $value     = $triple->object->is_literal ? $triple->object->literal_value : $triple->object->uri_value;
+        my $value     = $triple->object->is_literal ?
+                            $triple->object->literal_value :
+                            $triple->object->is_blank ?
+                              $triple->object->blank_identifier :
+                              $triple->object->uri_value;
         my $type      = lc $triple->object->type;
         my $lang      = $triple->object->is_literal ? $triple->object->literal_value_language : undef;
         my $datatype  = $triple->object->is_literal ? $triple->object->literal_datatype : undef;
@@ -328,7 +308,7 @@ sub _aref_stream {
         my $from_scalar = (ref $self->file // '') eq 'SCALAR';
 
         if (!$self->type and $self->file and !$from_scalar) {
-            $parser = $parser->guess_parser_by_filename($self->file);
+            $parser = $parser->guess_parser_by_filename($self->file)->new;
         }
 
         if ($from_scalar) {

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-perl/packages/libcatmandu-rdf-perl.git



More information about the Pkg-perl-cvs-commits mailing list