Attean

 view release on metacpan or  search on metacpan

lib/Attean/API/Model.pm  view on Meta::CPAN

		$ua->default_headers->push_header( 'Accept' => $accept );
		
		foreach my $u (@urls) {
			my $url		= blessed($u) ? $u->value : $u;
			my $resp	= $ua->get($url);
			if ($resp->is_success) {
				my $ct		= $resp->header('Content-Type');
				my $pclass = Attean->get_parser( media_type => $ct, filename => $url ) // Attean->get_parser('ntriples');
				if ($pclass) {
					my $p		= $pclass->new(base => iri($url));
					my $str		= $resp->decoded_content;
					my $bytes	= encode('UTF-8', $str, Encode::FB_CROAK);
					my $iter	= eval { $p->parse_iter_from_bytes( $bytes ) };
					if ($@) {
						die "Failed to parse URL $url: $@";
					}
					$self->add_iter($iter->as_quads($graph));
				} else {
					die "No parser found for content type $ct: $url";
				}
			} else {

lib/Attean/Plan.pm  view on Meta::CPAN

		my $ua		= LWP::UserAgent->new();
		my $silent	= $self->silent;
		my $accept	= Attean->acceptable_parsers( handles => 'Attean::API::Triple' );
		$ua->default_headers->push_header( 'Accept' => $accept );
		return sub {
			my $resp	= $ua->get( $url );
			if ($resp->is_success) {
				my $ct		= $resp->header('Content-Type');
				if (my $pclass = Attean->get_parser( media_type => $ct )) {
					my $p		= $pclass->new();
					my $str		= $resp->decoded_content;
					my $bytes	= encode('UTF-8', $str, Encode::FB_CROAK);
					my $iter	= $p->parse_iter_from_bytes( $bytes );
					return $iter;
				}
			}
			
			if ($silent) {
				return Attean::ListIterator->new(values => [], item_type => 'Attean::API::Triple');
			} else {
				die "Failed to load url: " . $resp->status_line;

lib/Attean/SPARQLClient.pm  view on Meta::CPAN

			}
			if (not($pclass)) {
				if ($silent) {
					my $b	= Attean::Result->new( bindings => {} );
					return Attean::ListIterator->new(variables => [], values => [$b], item_type => 'Attean::API::Result');
				} else {
					die "No parser found for type [$type]";
				}
			}
			my $parser	= $pclass->new();
			my $xml		= $response->decoded_content;
			my $bytes	= encode('UTF-8', $xml, Encode::FB_CROAK);
			return $parser->parse_iter_from_bytes($bytes);
		} elsif ($silent) {
			my $b	= Attean::Result->new( bindings => {} );
			return Attean::ListIterator->new(variables => [], values => [$b], item_type => 'Attean::API::Result');
		} else {
			die "SPARQL Protocol error: " . $response->status_line;
		}
	}
}



( run in 0.306 second using v1.01-cache-2.11-cpan-26ccb49234f )