Wydaje mi się, że mam problem z użyciem HTML::HTML5::Microdata::Parser
lub RDF::Query
lub ze składnią i semantyką SPARQL. Jestem zainteresowany tym bitem z news site page.zapytanie o metadane ze strony HTML za pomocą SPARQL nie zwraca niczego
<div class="authors">
Autoři: <span itemprop="author" itemscope itemtype="http://schema.org/Person"><a rel="author" itemprop="url" class="name" href="http://vice.idnes.cz/novinari.aspx?idnov=2504" ><span itemprop="name">Zdeňka Trachtová</span></a></span>
,
<span itemprop="author" itemscope itemtype="http://schema.org/Person"><a rel="author" itemprop="url" href="http://vice.idnes.cz/novinari.aspx?idnov=3495" ><span itemprop="additionalName">san</span></a><span class="h" itemprop="name">Sabina Netrvalová</span></span>
</div>
Tu jest mój kodu testu:
#! env perl
use strict;
use Data::Dumper;
use HTML::HTML5::Microdata::Parser;
use RDF::Query;
use IO::Handle;
use LWP::Simple;
STDOUT->binmode(":utf8");
STDERR->binmode(":utf8");
my $htmldoc = LWP::Simple::get(
"http://zpravy.idnes.cz/zacinaji-zapisy-do-prvnich-trid-dn3-/domaci.aspx?c=A160114_171615_domaci_zt");
die "Could not fetch URL. [email protected]" unless defined $htmldoc;
my $microdata = HTML::HTML5::Microdata::Parser->new (
$htmldoc, $ARGV[0],
{auto_config => 1, tdb_service => 1, xhtml_meta => 1, xhtml_rel => 1});
print STDERR "microdata->graph:\n", Dumper($microdata->graph), "\n";
my $query = RDF::Query->new(<<'SPARQL');
PREFIX schema: <http://schema.org/>
SELECT *
WHERE {
?author a schema:Person .
}
SPARQL
my $people = $query->execute($microdata->graph);
print STDERR "authors from RDF:\n", Dumper($people), "\n";
while (my $person = $people->next) {
print STDERR "people: ", $person, "\n";
}
opcje do HTML::HTML5::Microdata::Parser
były po prostu mój ostatni wysiłek rowu do tej pracy. (W zasadzie nie mam pojęcia, co robię.)
Jakieś pomysły, jak to zrobić i uzyskać nazwiska autorów?
W końcu skończyłem używając zamiast tego 'HTML :: Microdata'. Działa na to, co chcę z tym zrobić. Jednak nadal jestem zainteresowany tym, jak sprawić, aby działał "HTML :: HTML5 :: Microdata :: Parser" i SPARQL. – wilx