diff options
author | Jonas Smedegaard <dr@jones.dk> | 2013-05-20 23:37:32 +0200 |
---|---|---|
committer | Jonas Smedegaard <dr@jones.dk> | 2013-05-20 23:37:32 +0200 |
commit | c2f6227e773263be2aeaf65057c01aac9d1b101b (patch) | |
tree | b0f72764b5b29c5760a41e4a05bf4040acc0ef1e |
Initial commit.
38 files changed, 1890 insertions, 0 deletions
@@ -0,0 +1,23 @@ + * Tilføje noter om opdateringsdato og kilde. + * Checke at "sommerhalvåret" for Galleri ArtDoor er maj-august. + * Checke om Orø_Camping_Ishuset er årstidsbegrænset + * Checke kilde for Dagli'Brugsen#mail + * Tilføje kategorier: interesseområde, institutionelt/kommercielt/frivilligt, etc. + + * join hours for related entities (e.g. church + church office) + * include data from surrounding mainland + + * scrape from <http://www.virk.dk/soeg.html?x=orø> + * scrape from <http://openhours.dk/spots?q=orø> + * scrape/verify from <http://www.oroe.s-10.dk/> + * scrape/verify from <http://www.kulturholbaek.dk/> + * scrape/verify from <http://holbaekonline.dk/> + + * verify Orø_Bibliotek saturday hours from <http://www.holbaek.dk/Service/Nyheder/2013/Kommunikationssekretariatet/OroBibliotekErAabent.aspx> + + * fix tie only gr:location (not gr:BusinessEntity) directly to gr:hasOpeningHourSpecification + * fix use gr:description instead of rdfs:comment + + * encode output as RDFa + * add CSS styling + * publish data as LOD site. diff --git a/bin/rdf2events b/bin/rdf2events new file mode 100755 index 0000000..865afe9 --- /dev/null +++ b/bin/rdf2events @@ -0,0 +1,213 @@ +#!/usr/bin/perl +# +# Copyright © 2013 Jonas Smedegaard <dr@jones.dk> +# Description: render events webpage from RDF data +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +use 5.010; +use strictures 1; +use utf8::all; +#use DDP alias => 'Dumper'; + +use DateTimeX::Easy; +use DateTime::Format::W3CDTF; +use Carp; +use Try::Tiny; +use URI; +use RDF::Query; +use RDF::TrineX::Functions qw[curie model parse]; +use HTML::HTML5::Builder qw[:standard]; +use HTML::HTML5::Writer; + +# TODO: add options --verbose and --debug + +# TODO: add override options --from, --through and --theme +#my $globalfrom = DateTimeX::Easy->new('now'); +# TODO: teach DTX::Easy / DT::F::Natural DT::F::Flexible words "current" and "present" (as alternatives to this) +my $globalfrom = DateTimeX::Easy->new('first day of this month'); +# TODO: teach DTX::Easy / DT::F::Natural DT::F::Flexible these: +# last day of month three months from now +# last day of month in three months +# last day of (the) month three months ahead +# ... in the future +# ... into the future +# ... from now +# ... later <- this last one for changing object, not create new +#my $globalthrough = DateTimeX::Easy->new('last day of month in 3 months'); +my $globalthrough = DateTimeX::Easy->new($globalfrom); +$globalthrough->add( months => 4 )->subtract( days => 1 ); + +# TODO: add Getopt option --preset as shortcut to --category, --from and --through + +my $parser = RDF::Trine::Parser::Turtle->new; +my $model = model(); + +# TODO: throw sensible error if no (non-opt) args provided +while (my $data = shift @ARGV) { + try { + parse($data, using => $parser, into => $model); + } catch { + say STDERR "Failed to parse file \"$data\": $_"; + die; + } +} + +# TODO: handle multi-site events-in-events (e.g. Orødagen) + +# compose query for hourspec data at least partly within a "window" of time +# (yes, comparing global dates against opposite spec dates is deliberate) +my $w3c = DateTime::Format::W3CDTF->new; +my $globalfrom_w3c = $w3c->format_datetime($globalfrom); +my $globalthrough_w3c = $w3c->format_datetime($globalthrough); +# TODO: restructure SPARQL query to only need injecting each date once +my $query = qurie( sprintf(<<'SPARQL', $globalfrom_w3c, $globalthrough_w3c, $globalfrom_w3c, $globalthrough_w3c )); +SELECT * +WHERE { + ?event + a schema:SocialEvent ; + schema:name ?eventname ; + schema:location ?place ; + schema:startDate ?start . + ?place + a schema:Place ; + gr:name|schema:name ?placename . + OPTIONAL { + ?event schema:endDate ?end . + } + OPTIONAL { + ?event foaf:Homepage ?eventpage . + } + OPTIONAL { + { ?organizer a schema:Organization } + UNION + { ?organizer a gr:BusinessEntity } + ?organizer + gr:name|schema:name ?organizername ; + schema:event ?event . + OPTIONAL { + ?organizer foaf:Homepage ?organizerpage . + } + } + OPTIONAL { + { ?host a schema:Organization } + UNION + { ?host a gr:BusinessEntity } + ?host + gr:name|schema:name ?hostname ; + schema:location ?place . + OPTIONAL { + ?host foaf:Homepage ?hostpage . + } + } . + FILTER ( + ( ! bound(?end) && ?start >= "%s"^^xsd:dateTime && ?start <= "%s"^^xsd:dateTime ) + || + ( ?start < ?end && ?end > "%s"^^xsd:dateTime && ?start <= "%s"^^xsd:dateTime ) + ) +} +ORDER BY ?start ?eventname ?placename +SPARQL +# FILTER ( ?start > "%s"^^xsd:dateTime && ?start <= "%s"^^xsd:dateTime ) + +my $title = 'Begivenheder'; +my $intro = sprintf( + 'Begivenheder på Orø i perioden %s.', + daterangedescribe($globalfrom, $globalthrough), +); + +# TODO: make simplified html (preferred for Scribus) optional +#push my @content, "\n", h1($title), p($intro); +push my @content, "\n", h1($title), $intro; + +my $iterator = $query->execute($model); +while ( my $row = $iterator->next ) { + + # TODO: iterate over potentially plural entries + # TODO: include also foaf:page, and support multiple pages + # TODO: handle dcterms:audience (including lack thereof) + push @content, "\n", h2($row->{eventname}->literal_value); + push @content, thingdescribe( 'Begivenhed', daterangedescribe( $row->{start}->datetime, $row->{end} ? $row->{end}->datetime : '' ), node2uri($row->{eventpage}) ); + push @content, objectdescribe( 'Sted', $row->{placename}, $row->{placepage} ); + push @content, objectdescribe( 'Vært', $row->{hostname}, $row->{hostpage} ); + push @content, objectdescribe( 'Arrangør', $row->{organizername}, $row->{organizerpage} ); +} + +my $writer = HTML::HTML5::Writer->new; +say $writer->document( html( + -lang => 'da', + head( + title($title), + Meta(-charset => 'utf-8'), + ), + body( + @content + ), +)); + +# create query object from curied SPARQL string +sub qurie { + my $sparql = shift; + $sparql =~ s/\b([a-z]+):([a-zA-Z]+)\b/curie("$1_$2")/eg; + my $query = RDF::Query->new( $sparql ); + if (!$query) { + say STDERR $sparql; + say STDERR RDF::Query->error; + croak "failed to prepare SPARQL query"; + } + return $query; +} + +sub daterangedescribe { + my ($from, $through) = @_; + + return $from->format_cldr('d/M') + unless ($through); + return sprintf( '%s - %s', + $from->format_cldr('d/M'), + $through->format_cldr('d/M'), + ); +} + +sub thingdescribe { + my ($title, $thing, $uri) = @_; + my $string; + + return undef unless ($thing); + + $string = ($uri) + ? a('-href', $uri, $thing) + : $thing; + + return "\n", br, div( "$title: ", $string ); +} + +sub objectdescribe { + my ($title, $thing, $uri) = @_; + + return undef unless ($thing); + return thingdescribe( $title, $thing->literal_value, undef ) + unless ($uri); + return thingdescribe( $title, $thing->literal_value, node2uri($uri) ); +} + +# TODO: report as bug against RDF::Trine RDF::Trine::Node->uri_value not utf8 +# i.e. choking on punycode if fed to HTML::HTML5::Builder +sub node2uri { + my $node = shift; + + return ($node) ? URI->new($node->uri_value)->as_string : undef; +} + +1; diff --git a/bin/rdf2hours b/bin/rdf2hours new file mode 100755 index 0000000..dea675a --- /dev/null +++ b/bin/rdf2hours @@ -0,0 +1,336 @@ +#!/usr/bin/perl +# +# Copyright © 2013 Jonas Smedegaard <dr@jones.dk> +# Description: render opening hours webpage from RDF data +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +use 5.010; +use strictures 1; +use utf8::all; +#use DDP alias => 'Dumper'; + +use DateTimeX::Easy; +use DateTime::Format::W3CDTF; +use Carp; +use Try::Tiny; +use RDF::Query; +use RDF::TrineX::Functions qw[curie model parse]; +use HTML::HTML5::Builder qw[:standard]; +use HTML::HTML5::Writer; + +# TODO: add options --verbose and --debug + +# TODO: add override options --theme and (multivalued) --category +my @category = <<LIST =~ m/(\S.*\S)/g; + restaurant + groceries + attraction + transport + public service +LIST + +# TODO: add override options --from, --through and --theme +#my $globalfrom = DateTimeX::Easy->new('now'); +# TODO: teach DTX::Easy / DT::F::Natural DT::F::Flexible words "current" and "present" (as alternatives to this) +my $globalfrom = DateTimeX::Easy->new('first day of this month'); +# TODO: teach DTX::Easy / DT::F::Natural DT::F::Flexible these: +# last day of month three months from now +# last day of month in three months +# last day of (the) month three months ahead +# ... in the future +# ... into the future +# ... from now +# ... later <- this last one for changing object, not create new +#my $globalthrough = DateTimeX::Easy->new('last day of month in 3 months'); +my $globalthrough = DateTimeX::Easy->new($globalfrom); +$globalthrough->add( months => 4 )->subtract( days => 1 ); + +# TODO: add Getopt option --preset as shortcut to --category, --from and --through + +my $parser = RDF::Trine::Parser::Turtle->new; +my $model = model(); + +# TODO: throw sensible error if no (non-opt) args provided +while (my $data = shift @ARGV) { + try { + parse($data, using => $parser, into => $model); + } catch { + say STDERR "Failed to parse file \"$data\": $_"; + die; + } +} + +# compose query for hourspec data at least partly within a "window" of time +# (yes, comparing global dates against opposite spec dates is deliberate) +my $w3c = DateTime::Format::W3CDTF->new; +my $query = qurie( sprintf(<<'SPARQL', $w3c->format_datetime($globalthrough), $w3c->format_datetime($globalfrom) )); +SELECT * +WHERE { + { + ?location + a schema:Place ; + gr:category ?category ; + gr:name ?name ; + gr:hasOpeningHourSpecification ?spec . + ?spec + gr:opens ?opens ; + gr:closes ?closes ; + rdfs:label ?speclabel ; + gr:validFrom ?specfrom ; + gr:validThrough ?specthrough . + OPTIONAL { ?spec rdfs:comment ?speccomment } . + OPTIONAL { ?location gr:description ?locationcomment } . + FILTER ( ?specfrom <= "%s"^^xsd:dateTime ) . + FILTER ( ?specthrough > "%s"^^xsd:dateTime ) + } UNION { + ?location + gr:category ?category ; + gr:name ?name ; + gr:hasOpeningHourSpecification ?spec . + ?spec + gr:opens ?opens ; + gr:closes ?closes . + OPTIONAL { + ?spec + rdfs:label ?speclabel ; + gr:validFrom ?specfrom ; + gr:validThrough ?specthrough . + } . + OPTIONAL { ?spec rdfs:comment ?speccomment } . + OPTIONAL { ?location gr:description ?locationcomment } . + FILTER (!bound(?specfrom)) . + FILTER (!bound(?specthrough)) + } +} +SPARQL +# TODO: sort using SPARQL instead of perl +# ORDER BY ?category ?name ?specfrom ?specthrough ?opens ?closes + +my %data; +my $iterator = $query->execute($model); +while ( my $row = $iterator->next ) { + my $category = $row->{category}->literal_value; + my $name = $row->{name}->literal_value; + my $locationcomment = $row->{locationcomment} ? $row->{locationcomment}->literal_value : ''; + + my $speclabel = $row->{speclabel} ? $row->{speclabel}->literal_value : ''; + + # merge identically named locations, tying varying descriptions to spec instead +# my $name_key = titledescribe( $name, $locationcomment ); +# my $specbundle_key = $speclabel; + my $name_key = $name; + my $specbundle_key = titledescribe( $speclabel, $locationcomment ); + + my $specfrom = $row->{specfrom} ? $row->{specfrom}->datetime : ''; + my $specthrough = $row->{specthrough} ? $row->{specthrough}->datetime : ''; + + my $speccomment = $row->{speccomment} ? $row->{speccomment}->literal_value : ''; + + # TODO: use DateTime objects instead. + my $opens = $row->{opens}->literal_value; + $opens =~ s/:\d\d$//; + my $closes = $row->{closes}->literal_value; + $closes =~ s/:\d\d$//; + $closes =~ s/^23:59/24/; + + my @weekdays; + my $iterator = $model->get_statements($row->{spec}, curie('gr_hasOpeningHoursDayOfWeek'), undef); + while (my $statement = $iterator->next) { + my $label = $statement->object; + + given ($label->as_string) { + when (/Monday/) { push @weekdays, 1 }; + when (/Tuesday/) { push @weekdays, 2 }; + when (/Wednesday/) { push @weekdays, 3 }; + when (/Thursday/) { push @weekdays, 4 }; + when (/Friday/) { push @weekdays, 5 }; + when (/Saturday/) { push @weekdays, 6 }; + when (/Sunday/) { push @weekdays, 7 }; + when (/PublicHolidays/) { push @weekdays, 8 }; + default { die "failed to parse weekday: ", $label->as_string }; + } + } + my $weekdays = join ', ', sort @weekdays; + $weekdays = 0 unless ($weekdays); + my $weekdays_key = titledescribe( $weekdays, $speccomment ); + +# FIXME: support multiple specbundles on same days (e.g. Gaardstronomi sommer siesta) +# $weekdays_key .= daterangedescribe($specfrom, $specthrough) +# if ( ($specfrom) and ($specthrough) ); + + $data{$category}{$name_key}{name} = $name; + $data{$category}{$name_key}{specbundle}{$specbundle_key}{locationcomment} = $locationcomment; + $data{$category}{$name_key}{specbundle}{$specbundle_key}{speclabel} = $speclabel; + $data{$category}{$name_key}{specbundle}{$specbundle_key}{specfrom} = $specfrom; + $data{$category}{$name_key}{specbundle}{$specbundle_key}{specthrough} = $specthrough; + $data{$category}{$name_key}{specbundle}{$specbundle_key}{spec}{$weekdays_key}{weekdays} = $weekdays; + # TODO: extend SPARQL to cover specs without opens/closes, or drop below check + if ($opens and $closes) { + $data{$category}{$name_key}{specbundle}{$specbundle_key}{spec}{$weekdays_key}{spec} = "$opens - $closes"; + $data{$category}{$name_key}{specbundle}{$specbundle_key}{spec}{$weekdays_key}{speccomment} = $speccomment; + } +} + +my $title = 'Åbningstider'; +my $intro = sprintf( + 'Åbningstider på Orø indenfor udvalgte kategorier, dækkende perioden %s.', + daterangedescribe($globalfrom, $globalthrough), +); + +# TODO: make simplified html (preferred for Scribus) optional +#push my @content, h1($title), "\n", p($intro); +push my @content, h1($title), "\n", $intro; + +for my $category ( @category ) { + push @content, "\n", h2( categorydescribe($category) ), "\n"; + for my $name ( sort keys %{ $data{$category} } ) { + push @content, "\n", h3($name); + my @bundle = keys %{ $data{$category}{$name}{specbundle} }; + # FIXME: respect locale when sorting (Galleri before Gaardstronomi) + for my $specbundle ( sort { + $data{$category}{$name}{specbundle}{$a}{specfrom} + <=> $data{$category}{$name}{specbundle}{$b}{specfrom} + || $a cmp $b + } @bundle ) { + # TODO: when global limits shown, show only speclabel plural spec bundles + my $speclabel = speclabeldescribe( + $data{$category}{$name}{specbundle}{$specbundle}{speclabel}, + $data{$category}{$name}{specbundle}{$specbundle}{locationcomment}, + $data{$category}{$name}{specbundle}{$specbundle}{specfrom}, + $data{$category}{$name}{specbundle}{$specbundle}{specthrough}, + scalar @bundle, + ); + push @content, "\n", h4($speclabel) if ($speclabel); + my @specbundle; + for my $weekdays ( sort keys %{ $data{$category}{$name}{specbundle}{$specbundle}{spec} } ) { + my $specdescription = specdescribe( + $data{$category}{$name}{specbundle}{$specbundle}{spec}{$weekdays}{weekdays}, + $data{$category}{$name}{specbundle}{$specbundle}{spec}{$weekdays}{speccomment}, + ); + push @specbundle, br if (@specbundle); + push @specbundle, "\n", span( + span($specdescription, ":"), + "\t", + span($data{$category}{$name}{specbundle}{$specbundle}{spec}{$weekdays}{spec}), + ); + } + # TODO: make simplified html (preferred for Scribus) optional +# push @content, p("\n", @specbundle) if (@specbundle); + push @content, @specbundle if (@specbundle); + } + } +} + +#Dumper %data; +#die; + +my $writer = HTML::HTML5::Writer->new; +say $writer->document( html( + -lang => 'da', + head( + title($title), + Meta(-charset => 'utf-8'), + ), + body( + "\n", @content + ), +)); + +# create query object from curied SPARQL string +sub qurie { + my $sparql = shift; + $sparql =~ s/(?<=\s|\^)([a-z]+):([a-zA-Z]+)(?=\s)/curie("$1_$2")/eg; + my $query = RDF::Query->new( $sparql ); + if (!$query) { + say STDERR $sparql; + say STDERR RDF::Query->error; + croak "failed to prepare SPARQL query"; + } + return $query; +} + +sub daterangedescribe { + my ($from, $through) = @_; + + return sprintf( '%s - %s', + $from->format_cldr('d/M'), + $through->format_cldr('d/M'), + ); +} + +sub categorydescribe { + my $cat = shift; + + $cat =~ s/restaurant/spisesteder/; + $cat =~ s/groceries/dagligvarer/; + $cat =~ s/attraction/attraktioner og museer/; + $cat =~ s/public service/offentlige services/; + + return ucfirst($cat); +} + +sub titledescribe { + my ($title, $comment) = @_; + + return ($comment) ? "$title ($comment)" : $title; +} + +sub speclabeldescribe { + my ($label, $comment, $from, $through, $size) = @_; + + # TODO: support optionally enabling descriptive label + my $compact = 1; + + return '' if ( ($compact) and ( $size == 1 ) ); + + my $daterange = daterangedescribe($from, $through); + if (($from) and ($through)) { + return titledescribe( $daterange, $comment ) + if ($compact); + return $label, ' (', $daterange, ' - ', $comment, ')' + if ($comment); + return $label, ' (', $daterange, ')'; + } + warn "gr:validFrom and gr:validThrough missing for label \"$label\""; + return ($compact) ? '' : titledescribe( $label, $comment ); +} + +sub specdescribe { + my ($weekdays, $comment) = @_; + + # TODO: translate properly + $weekdays =~ s/1, 2, 3, 4, 5, 6, 7/alle ugedage/; + $weekdays =~ s/1, 2, 3, 4, 5/mandag-fredag/; + $weekdays =~ s/1, 2, 3, 4/mandag-torsdag/; + $weekdays =~ s/2, 3, 4, 5, 6, 7/tirsdag-søndag/; + $weekdays =~ s/3, 4, 5/onsdag-fredag/; + $weekdays =~ s/^2, 3, 4(|, [^5].*)$/tirsdag-torsdag$1/; + $weekdays =~ s/^(|.*?[\d^5], |.*?(?!fredag, ))6, 7(.*)$/$1weekend$2/; + $weekdays =~ s/1/mandag/; + $weekdays =~ s/2/tirsdag/; + $weekdays =~ s/3/onsdag/; + $weekdays =~ s/4/torsdag/; + $weekdays =~ s/5/fredag/; + $weekdays =~ s/6/lørdag/; + $weekdays =~ s/7/søndag/; + $weekdays =~ s/8/helligdage/; + + if ( $weekdays eq "0" and ($comment) ) { + return $comment; + } + return titledescribe( $weekdays, $comment ); +} + +1; diff --git a/data/2013/dronning.ttl b/data/2013/dronning.ttl new file mode 100644 index 0000000..3a48925 --- /dev/null +++ b/data/2013/dronning.ttl @@ -0,0 +1,10 @@ +@prefix hestebedgaard: <http://data.biks.dk/hestebedgård/> . +@prefix foaf: <http://xmlns.com/foaf/0.1/> . +@prefix schema: <http://schema.org/> . +@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . + +[] + a schema:SocialEvent ; + schema:name "Dronningevisit"@da ; + schema:startDate "2013-06-03T00:00:00Z"^^xsd:dateTime ; + schema:event hestebedgaard:dronning . diff --git a/data/2013/kunstneruge.ttl b/data/2013/kunstneruge.ttl new file mode 100644 index 0000000..166599d --- /dev/null +++ b/data/2013/kunstneruge.ttl @@ -0,0 +1,11 @@ +@prefix marliese: <http://data.biks.dk/marliese/> . +@prefix foaf: <http://xmlns.com/foaf/0.1/> . +@prefix schema: <http://schema.org/> . +@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . + +[] + a schema:SocialEvent ; + schema:name "Kunstneruge 2013"@da ; + schema:startDate "2013-06-30T00:00:00Z"^^xsd:dateTime ; + schema:endDate "2013-07-06T00:00:00Z"^^xsd:dateTime ; + schema:location marliese:home . diff --git a/data/2013/oroedag.ttl b/data/2013/oroedag.ttl new file mode 100644 index 0000000..f325a28 --- /dev/null +++ b/data/2013/oroedag.ttl @@ -0,0 +1,12 @@ +@prefix hestebedgaard: <http://data.biks.dk/hestebedgård/> . +@prefix kirke: <http://data.biks.dk/kirke/> . +@prefix marliese: <http://data.biks.dk/marliese/> . +@prefix foaf: <http://xmlns.com/foaf/0.1/> . +@prefix schema: <http://schema.org/> . +@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . + +[] + a schema:SocialEvent ; + schema:name "Orødagen"@da ; + schema:startDate "2013-06-02T00:00:00Z"^^xsd:dateTime ; + schema:event hestebedgaard:oroedag2013, kirke:oroedag2013, marliese:oroedag2013 . diff --git a/data/2013/togtet.ttl b/data/2013/togtet.ttl new file mode 100644 index 0000000..1d4a618 --- /dev/null +++ b/data/2013/togtet.ttl @@ -0,0 +1,12 @@ +@prefix marliese: <http://data.biks.dk/marliese/> . +@prefix foaf: <http://xmlns.com/foaf/0.1/> . +@prefix schema: <http://schema.org/> . +@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . + +[] + a schema:SocialEvent ; + schema:name "Da Danmark blev til - Togtet"@da ; + foaf:Homepage <http://dadanmarkblevtil.dk/oplev/togtet-2013/> ; + schema:startDate "2013-07-22T00:00:00Z"^^xsd:dateTime ; + schema:endDate "2013-07-24T00:00:00Z"^^xsd:dateTime . +# schema:event marliese:togtet . diff --git a/data/org/2012/folkedans.ttl b/data/org/2012/folkedans.ttl new file mode 100644 index 0000000..2e1ad6f --- /dev/null +++ b/data/org/2012/folkedans.ttl @@ -0,0 +1,68 @@ +@prefix : <http://data.biks.dk/folkedans/> . +@prefix hal: <http://data.biks.dk/hal/> . +@prefix dcterms: <http://purl.org/dc/terms/> . +@prefix foaf: <http://xmlns.com/foaf/0.1/> . +@prefix schema: <http://schema.org/> . +@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . + +:staevne2013 + a schema:SocialEvent, schema:DanceEvent, schema:Festival ; +# dcterms:audience :members ; + schema:name "Sommerstævne"@da ; + foaf:Homepage <http://www.orøfolkedansere.dk/8835/Stævne 2013> ; + schema:startDate "2013-05-31T00:00:00Z"^^xsd:dateTime ; + schema:endDate "2013-06-02T00:00:00Z"^^xsd:dateTime ; + schema:location hal:home . + +:dans + a schema:SocialEvent, schema:DanceEvent ; + dcterms:audience :members ; + schema:name "Danseaften"@da ; + foaf:page <http://www.orøfolkedansere.dk/8842/Kalender 2012-13> ; + schema:startDate + "2012-10-08T19:30:00Z"^^xsd:dateTime, + "2012-11-05T19:30:00Z"^^xsd:dateTime, + "2012-12-03T19:30:00Z"^^xsd:dateTime, + "2013-01-07T19:30:00Z"^^xsd:dateTime, + "2013-02-04T19:30:00Z"^^xsd:dateTime, + "2013-03-04T19:30:00Z"^^xsd:dateTime, + "2013-03-18T19:30:00Z"^^xsd:dateTime ; + schema:location hal:home . + +:dansogkaffe + a schema:SocialEvent, schema:DanceEvent ; + dcterms:audience :members ; + schema:name "Danseaften og kaffe"@da ; + foaf:page <http://www.orøfolkedansere.dk/8842/Kalender 2012-13> ; + schema:startDate + "2012-10-22T19:30:00Z"^^xsd:dateTime, + "2012-11-19T19:30:00Z"^^xsd:dateTime, + "2013-01-21T19:30:00Z"^^xsd:dateTime ; + schema:location hal:home . + +:juleafslutning + a schema:SocialEvent, schema:DanceEvent ; + dcterms:audience :members ; + schema:name "Juleafslutning"@da ; + foaf:page <http://www.orøfolkedansere.dk/8842/Kalender 2012-13> ; + schema:startDate "2013-12-14T18:00:00Z"^^xsd:dateTime ; + schema:location hal:home . + +:generalformsaling + a schema:SocialEvent, schema:DanceEvent ; + dcterms:audience :members ; + schema:name "Danseaften, generalforsamling og kaffe"@da ; + foaf:page <http://www.orøfolkedansere.dk/8842/Kalender 2012-13> ; + schema:startDate "2013-02-18T19:30:00Z"^^xsd:dateTime ; + schema:location hal:home . + +:afslutning + a schema:SocialEvent, schema:DanceEvent ; + dcterms:audience :members ; + schema:name "Afslutning"@da ; + foaf:page <http://www.orøfolkedansere.dk/8842/Kalender 2012-13> ; + schema:startDate "2013-03-22T18:00:00Z"^^xsd:dateTime ; + schema:location hal:home . + +:org + schema:event :staevne2013, :dans, :dansogkaffe, :juleafslutning, :generalforsamling, :afslutning . diff --git a/data/org/2013/cykelklub.ttl b/data/org/2013/cykelklub.ttl new file mode 100644 index 0000000..4f294fc --- /dev/null +++ b/data/org/2013/cykelklub.ttl @@ -0,0 +1,19 @@ +@prefix foaf: <http://xmlns.com/foaf/0.1/> . +@prefix gr: <http://purl.org/goodrelations/v1#> . +@prefix schema: <http://schema.org/> . +@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . + +_:cykelklubOrg + a schema:Organization ; + schema:name "Orø Cykelklub"@da ; + foaf:Homepage <http://orøcykelklub.dk/> ; + schema:event [ + a schema:SocialEvent ; + schema:name "Store Cykeldag"@da ; + foaf:Homepage <http://orøcykelklub.dk/program.html> ; + schema:startDate "2013-06-09T10:15:00Z"^^xsd:dateTime ; + schema:location [ + a schema:Place ; + schema:name "P-pladsen v/ Orø Kirke"@da ; + ] ; + ] . diff --git a/data/org/2013/hestebedgaard.ttl b/data/org/2013/hestebedgaard.ttl new file mode 100644 index 0000000..a4e55f1 --- /dev/null +++ b/data/org/2013/hestebedgaard.ttl @@ -0,0 +1,50 @@ +@prefix : <http://data.biks.dk/hestebedgård/> . +@prefix foaf: <http://xmlns.com/foaf/0.1/> . +@prefix schema: <http://schema.org/> . +@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . + +:org + schema:event :dronning, :oroedag2013, [ + a schema:SocialEvent ; + schema:name "Kulturaften - vikingetidens levevilkår"@da ; + schema:comment "Grillaften og fortæller Ole Nielsen fortæller om vikingetidens levevilkår" ; + schema:startDate "2013-07-12T19:00:00Z"^^xsd:dateTime ; + schema:location :home ; + ], [ + a schema:SocialEvent ; + schema:name "Kulturaften - kvindearbejde i Afrika"@da ; + schema:comment "Forsøges arrangeret et foredrag om kvindearbejde i Afrika syd for Sahara" ; + schema:startDate "2013-07-17T19:00:00Z"^^xsd:dateTime ; + schema:location :home ; + ], [ + a schema:SocialEvent ; + schema:name "Kulturaften - kvindearbejde i Vietnam"@da ; + schema:comment "Katrine Dolleris fortæller om kvindearbejde i landbruget i Vietnam" ; + schema:startDate "2013-08-01T19:00:00Z"^^xsd:dateTime ; + schema:location :home ; + ], [ + a schema:SocialEvent ; + schema:name "Pileflet"@da ; + schema:startDate "2013-08-17T10:00:00Z"^^xsd:dateTime ; + schema:endDate "2013-08-17T14:00:00Z"^^xsd:dateTime ; + schema:location :home ; + ], [ + a schema:SocialEvent ; + schema:name "Høstfet"@da ; + schema:startDate "2013-09-14T10:00:00Z"^^xsd:dateTime ; + schema:location :home ; + ] . + +:dronning + a schema:SocialEvent ; + schema:name "Dronningevisit - folkedans"@da ; + foaf:page <http://hestebedgård.dk/html/Aktuelt.html> ; + schema:startDate "2013-06-03T11:20:00Z"^^xsd:dateTime ; + schema:endDate "2013-06-03T11:40:00Z"^^xsd:dateTime ; + schema:location :home . + +:oroedag2013 + a schema:SocialEvent ; + foaf:page <http://hestebedgård.dk/html/Orødagen.html> ; + schema:startDate "2013-06-02T00:00:00Z"^^xsd:dateTime ; + schema:location :home . diff --git a/data/org/2013/kirke.ttl b/data/org/2013/kirke.ttl new file mode 100644 index 0000000..ce6a4ac --- /dev/null +++ b/data/org/2013/kirke.ttl @@ -0,0 +1,14 @@ +@prefix : <http://data.biks.dk/kirke/> . +@prefix foaf: <http://xmlns.com/foaf/0.1/> . +@prefix schema: <http://schema.org/> . +@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . + +:oroedag2013 + a schema:SocialEvent ; + schema:name "Orødagen - folkedans"@da ; + foaf:page <http://www.oroekirke.dk/html/Arrangementer.htm> ; + schema:startDate "2013-06-02T10:00:00Z"^^xsd:dateTime ; + schema:location :home . + +:org + schema:event :oroedag2013 . diff --git a/data/org/2013/marlieses.ttl b/data/org/2013/marlieses.ttl new file mode 100644 index 0000000..b74957e --- /dev/null +++ b/data/org/2013/marlieses.ttl @@ -0,0 +1,20 @@ +@prefix : <http://data.biks.dk/marliese/> . +@prefix foaf: <http://xmlns.com/foaf/0.1/> . +@prefix schema: <http://schema.org/> . +@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . + +:org + schema:event :oroedag2013, [ + a schema:SocialEvent ; + schema:name "Vinsmagning"@da ; + foaf:Homepage <http://marliesesgaardcafe.dk/vinsmagning/> ; + schema:startDate "2013-07-11T00:00:00Z"^^xsd:dateTime, "2013-07-25T00:00:00Z"^^xsd:dateTime, "2013-08-08T00:00:00Z"^^xsd:dateTime ; + schema:location :home ; + ] . + +:oroedag2013 + a schema:SocialEvent ; + foaf:page <http://marliesesgaardcafe.dk/aktiviteter/> ; + schema:startDate "2013-06-02T11:00:00Z"^^xsd:dateTime ; + schema:endDate "2013-06-02T00:17:00Z"^^xsd:dateTime ; + schema:location <http://data.biks.dk/marliese/home> . diff --git a/data/org/2013/mc.ttl b/data/org/2013/mc.ttl new file mode 100644 index 0000000..fde57b2 --- /dev/null +++ b/data/org/2013/mc.ttl @@ -0,0 +1,15 @@ +@prefix : <http://data.biks.dk/mcisland/> . +@prefix foaf: <http://xmlns.com/foaf/0.1/> . +@prefix schema: <http://schema.org/> . +@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . + +:rally + a schema:SocialEvent ; + schema:name "Motorcykeltræf"@da ; + foaf:Homepage <http://www.mcisland.dk/da/rally.php> ; + schema:startDate "2013-08-30T00:00:00Z"^^xsd:dateTime ; + schema:endDate "2013-09-01T00:00:00Z"^^xsd:dateTime ; + schema:location :home . + +:org + schema:event :rally . diff --git a/data/org/artdoor.ttl b/data/org/artdoor.ttl new file mode 100644 index 0000000..dba7446 --- /dev/null +++ b/data/org/artdoor.ttl @@ -0,0 +1,24 @@ +@prefix foaf: <http://xmlns.com/foaf/0.1/> . +@prefix gr: <http://purl.org/goodrelations/v1#> . +@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . +@prefix schema: <http://schema.org/> . +@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . + +[] + a gr:BusinessEntity . + +_:artdoorGallery + a schema:Place; + gr:category "shop", "gallery", "restaurant" ; + gr:name "Galleri ArtDoor"@da; + foaf:Homepage <http://www.galleriartdoor.dk/>; + gr:hasOpeningHourSpecification _:artdoorHours . + +_:artdoorHours + a gr:OpeningHourSpecification ; + rdfs:label "sommerhalvår" ; + gr:validFrom "2013-05-01T00:00:00Z"^^xsd:dateTime ; + gr:validThrough "2013-08-31T00:00:00Z"^^xsd:dateTime ; + gr:hasOpeningHoursDayOfWeek gr:Saturday, gr:Sunday ; + gr:opens "12:00:00"^^xsd:time ; + gr:closes "18:00:00"^^xsd:time . diff --git a/data/org/bibliotek.ttl b/data/org/bibliotek.ttl new file mode 100644 index 0000000..fb40faa --- /dev/null +++ b/data/org/bibliotek.ttl @@ -0,0 +1,30 @@ +@prefix foaf: <http://xmlns.com/foaf/0.1/> . +@prefix gr: <http://purl.org/goodrelations/v1#> . +@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . +@prefix schema: <http://schema.org/> . +@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . + +[] + a schema:Place; + gr:category "public service"; + gr:name "Orø Bibliotek"; + foaf:Homepage <https://bibliotek.holbaek.dk/web/arena/aabningstider>; + schema:email "holbib@holb.dk"; + schema:telephone "+45-72367519"; + schema:address [ + a schema:PostalAddress; + schema:streetAddress "Bygaden 50, Orø"@da; + schema:postalCode "4300"; + schema:addressLocality "Holbæk, Danmark"@da; + ]; + gr:hasOpeningHourSpecification [ + a gr:OpeningHourSpecification ; + gr:hasOpeningHoursDayOfWeek gr:Wednesday ; + gr:opens "16:00:00"^^xsd:time ; + gr:closes "18:00:00"^^xsd:time ; + ], [ + a gr:OpeningHourSpecification ; + rdfs:comment "første lørdag i måneden"@da; + gr:opens "10:00:00"^^xsd:time ; + gr:closes "12:00:00"^^xsd:time ; + ] . diff --git a/data/org/brugsen.ttl b/data/org/brugsen.ttl new file mode 100644 index 0000000..90e54a2 --- /dev/null +++ b/data/org/brugsen.ttl @@ -0,0 +1,50 @@ +@prefix foaf: <http://xmlns.com/foaf/0.1/> . +@prefix gr: <http://purl.org/goodrelations/v1#> . +@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . +@prefix schema: <http://schema.org/> . +@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . + +[] + a gr:BusinessEntity, schema:Place; + gr:category "groceries"; + gr:name "Dagli'Brugsen"; + foaf:page <https://om.coop.dk/om+coop/vores+butikker/find+butik.aspx?id=4369> ; + schema:address [ + a schema:PostalAddress; + schema:streetAddress "Brøndevej 34 C, Orø"@da; + schema:postalCode "4300"; + schema:addressLocality "Holbæk, Danmark"@da; + ]; + schema:telephone "+45-59470053"; + gr:hasOpeningHourSpecification [ + a gr:OpeningHourSpecification ; + gr:hasOpeningHoursDayOfWeek gr:Monday, gr:Tuesday, gr:Wednesday, gr:Thursday ; + gr:opens "7:30:00"^^xsd:time ; + gr:closes "18:00:00"^^xsd:time ; + ], [ + a gr:OpeningHourSpecification ; + gr:hasOpeningHoursDayOfWeek gr:Friday ; + gr:opens "7:30:00"^^xsd:time ; + gr:closes "19:00:00"^^xsd:time ; + ], [ + a gr:OpeningHourSpecification ; + gr:hasOpeningHoursDayOfWeek gr:Saturday, gr:Sunday ; + gr:opens "7:30:00"^^xsd:time ; + gr:closes "16:30:00"^^xsd:time ; + ] . + +_:mail + a schema:Place; + gr:category "public service"; + gr:name "Dagli'Brugsen - Postbutik"; + gr:hasOpeningHourSpecification [ + a gr:OpeningHourSpecification ; + gr:hasOpeningHoursDayOfWeek gr:Monday, gr:Tuesday, gr:Wednesday, gr:Thursday, gr:Friday ; + gr:opens "7:30:00"^^xsd:time ; + gr:closes "18:00:00"^^xsd:time ; + ], [ + a gr:OpeningHourSpecification ; + gr:hasOpeningHoursDayOfWeek gr:Saturday ; + gr:opens "7:30:00"^^xsd:time ; + gr:closes "14:00:00"^^xsd:time ; + ] . diff --git a/data/org/camping.ttl b/data/org/camping.ttl new file mode 100644 index 0000000..d260665 --- /dev/null +++ b/data/org/camping.ttl @@ -0,0 +1,24 @@ +@prefix foaf: <http://xmlns.com/foaf/0.1/> . +@prefix gr: <http://purl.org/goodrelations/v1#> . +@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . +@prefix schema: <http://schema.org/> . +@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . + +[] + a gr:BusinessEntity; + gr:category "accomodation"; + gr:name "Orø Camping"@da; + foaf:Homepage <http://www.oroecamping.dk/>. + +_:ishuset + a schema:Place; + gr:category "restaurant"; + schema:telephone "+45-23353458"; + gr:name "Orø Camping - Ishuset"@da; + foaf:page <http://www.oroecamping.dk/50-ishus.htm>; + gr:hasOpeningHourSpecification [ + a gr:OpeningHourSpecification ; + gr:hasOpeningHoursDayOfWeek gr:Saturday, gr:Sunday, gr:PublicHolidays ; + gr:opens "12:00:00"^^xsd:time ; + gr:closes "20:00:00"^^xsd:time ; + ] . diff --git a/data/org/faergeHoebaek.ttl b/data/org/faergeHoebaek.ttl new file mode 100644 index 0000000..f4a4ddf --- /dev/null +++ b/data/org/faergeHoebaek.ttl @@ -0,0 +1,169 @@ +@prefix foaf: <http://xmlns.com/foaf/0.1/> . +@prefix gr: <http://purl.org/goodrelations/v1#> . +@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . +@prefix schema: <http://schema.org/> . +@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . + +[] + a gr:BusinessEntity; + gr:category "transport"; + gr:name "Færgen Orø-Holbæk"; + foaf:page <http://www.holbaek.dk/Kommunen/TransportOgVeje/FaergenOro-Holbaek.aspx>; + schema:telephone "+45-72362300"; + schema:email "hopp@golbaek.dk". + +_:oroe + gr:category "transport"; + a schema:Place; + gr:name "Færgen Orø-Holbæk"; + gr:description "afgang fra Orø"@da ; + gr:hasOpeningHourSpecification [ + a gr:OpeningHourSpecification ; + rdfs:label "vinter og forår"@da ; + gr:validFrom "2013-01-01T00:00:00Z"^^xsd:dateTime ; + gr:validThrough "2013-05-31T00:00:00Z"^^xsd:dateTime ; + gr:hasOpeningHoursDayOfWeek gr:Monday, gr:Tuesday, gr:Wednesday, gr:Thursday, gr:Friday ; + gr:opens "6:00:00"^^xsd:time ; + gr:closes "21:50:00"^^xsd:time ; + ], [ + a gr:OpeningHourSpecification ; + rdfs:label "vinter og forår"@da ; + gr:validFrom "2013-01-01T00:00:00Z"^^xsd:dateTime ; + gr:validThrough "2013-05-31T00:00:00Z"^^xsd:dateTime ; + gr:hasOpeningHoursDayOfWeek gr:Saturday, gr:Sunday ; + gr:opens "8:30:00"^^xsd:time ; + gr:closes "20:50:00"^^xsd:time ; + ], [ + a gr:OpeningHourSpecification ; + rdfs:label "sommer"@da ; + gr:validFrom "2013-06-01T00:00:00Z"^^xsd:dateTime ; + gr:validThrough "2013-08-31T00:00:00Z"^^xsd:dateTime ; + gr:hasOpeningHoursDayOfWeek gr:Monday, gr:Tuesday, gr:Wednesday, gr:Thursday, gr:Friday ; + gr:opens "6:00:00"^^xsd:time ; + gr:closes "21:50:00"^^xsd:time ; + ], [ + a gr:OpeningHourSpecification ; + rdfs:label "sommer"@da ; + gr:validFrom "2013-06-01T00:00:00Z"^^xsd:dateTime ; + gr:validThrough "2013-08-31T00:00:00Z"^^xsd:dateTime ; + gr:hasOpeningHoursDayOfWeek gr:Saturday, gr:Sunday ; + gr:opens "8:50:00"^^xsd:time ; + gr:closes "21:20:00"^^xsd:time ; + ], [ + a gr:OpeningHourSpecification ; + rdfs:label "efterår og vinter"@da ; + rdfs:comment "undtagen 24/12 - 26/12 og 31/12"@da; + gr:validFrom "2013-09-01T00:00:00Z"^^xsd:dateTime ; + gr:validThrough "2013-12-31T00:00:00Z"^^xsd:dateTime ; + gr:hasOpeningHoursDayOfWeek gr:Monday, gr:Tuesday, gr:Wednesday, gr:Thursday, gr:Friday ; + gr:opens "6:00:00"^^xsd:time ; + gr:closes "21:50:00"^^xsd:time ; + ], [ + a gr:OpeningHourSpecification ; + rdfs:label "efterår og vinter"@da ; + rdfs:comment "undtagen 24/12 - 26/12 og 31/12"@da; + gr:validFrom "2013-09-01T00:00:00Z"^^xsd:dateTime ; + gr:validThrough "2013-12-31T00:00:00Z"^^xsd:dateTime ; + gr:hasOpeningHoursDayOfWeek gr:Saturday, gr:Sunday ; + gr:opens "8:30:00"^^xsd:time ; + gr:closes "20:50:00"^^xsd:time ; + ], [ + a gr:OpeningHourSpecification ; + rdfs:label "24/12"@da ; + gr:validFrom "2013-12-24T00:00:00Z"^^xsd:dateTime ; + gr:validThrough "2013-12-24T00:00:00Z"^^xsd:dateTime ; + gr:opens "6:00:00"^^xsd:time ; + gr:closes "16:20:00"^^xsd:time ; + ], [ + a gr:OpeningHourSpecification ; + rdfs:label "25/12 og 26/12"@da ; + gr:validFrom "2013-12-25T00:00:00Z"^^xsd:dateTime ; + gr:validThrough "2013-12-26T00:00:00Z"^^xsd:dateTime ; + gr:opens "8:50:00"^^xsd:time ; + gr:closes "21:20:00"^^xsd:time ; + ], [ + a gr:OpeningHourSpecification ; + rdfs:label "31/12"@da ; + gr:validFrom "2013-12-31T00:00:00Z"^^xsd:dateTime ; + gr:validThrough "2013-05-31T00:00:00Z"^^xsd:dateTime ; + gr:opens "6:00:00"^^xsd:time ; + gr:closes "16:20:00"^^xsd:time ; + ] . + +_:holbaek + gr:category "transport"; + a schema:Place; + gr:name "Færgen Orø-Holbæk"; + gr:description "afgang fra Holbæk"@da ; + gr:hasOpeningHourSpecification [ + a gr:OpeningHourSpecification ; + rdfs:label "vinter og forår"@da ; + gr:validFrom "2013-01-01T00:00:00Z"^^xsd:dateTime ; + gr:validThrough "2013-05-31T00:00:00Z"^^xsd:dateTime ; + gr:hasOpeningHoursDayOfWeek gr:Monday, gr:Tuesday, gr:Wednesday, gr:Thursday, gr:Friday ; + gr:opens "6:35:00"^^xsd:time ; + gr:closes "22:20:00"^^xsd:time ; + ], [ + a gr:OpeningHourSpecification ; + rdfs:label "vinter og forår"@da ; + gr:validFrom "2013-01-01T00:00:00Z"^^xsd:dateTime ; + gr:validThrough "2013-05-31T00:00:00Z"^^xsd:dateTime ; + gr:hasOpeningHoursDayOfWeek gr:Saturday, gr:Sunday ; + gr:opens "9:50:00"^^xsd:time ; + gr:closes "21:50:00"^^xsd:time ; + ], [ + a gr:OpeningHourSpecification ; + rdfs:label "sommer"@da ; + gr:validFrom "2013-06-01T00:00:00Z"^^xsd:dateTime ; + gr:validThrough "2013-08-31T00:00:00Z"^^xsd:dateTime ; + gr:hasOpeningHoursDayOfWeek gr:Monday, gr:Tuesday, gr:Wednesday, gr:Thursday, gr:Friday ; + gr:opens "6:35:00"^^xsd:time ; + gr:closes "22:20:00"^^xsd:time ; + ], [ + a gr:OpeningHourSpecification ; + rdfs:label "sommer"@da ; + gr:validFrom "2013-06-01T00:00:00Z"^^xsd:dateTime ; + gr:validThrough "2013-08-31T00:00:00Z"^^xsd:dateTime ; + gr:hasOpeningHoursDayOfWeek gr:Saturday, gr:Sunday ; + gr:opens "9:35:00"^^xsd:time ; + gr:closes "21:50:00"^^xsd:time ; + ], [ + a gr:OpeningHourSpecification ; + rdfs:label "efterår og vinter"@da ; + rdfs:comment "undtagen 24/12 - 26/12 og 31/12"@da; + gr:validFrom "2013-09-01T00:00:00Z"^^xsd:dateTime ; + gr:validThrough "2013-12-31T00:00:00Z"^^xsd:dateTime ; + gr:hasOpeningHoursDayOfWeek gr:Monday, gr:Tuesday, gr:Wednesday, gr:Thursday, gr:Friday ; + gr:opens "6:35:00"^^xsd:time ; + gr:closes "22:20:00"^^xsd:time ; + ], [ + a gr:OpeningHourSpecification ; + rdfs:label "efterår og vinter"@da ; + rdfs:comment "undtagen 24/12 - 26/12 og 31/12"@da; + gr:validFrom "2013-09-01T00:00:00Z"^^xsd:dateTime ; + gr:validThrough "2013-12-31T00:00:00Z"^^xsd:dateTime ; + gr:hasOpeningHoursDayOfWeek gr:Saturday, gr:Sunday ; + gr:opens "9:50:00"^^xsd:time ; + gr:closes "21:50:00"^^xsd:time ; + ], [ + a gr:OpeningHourSpecification ; + rdfs:label "24/12"@da ; + gr:validFrom "2013-12-24T00:00:00Z"^^xsd:dateTime ; + gr:validThrough "2013-12-24T00:00:00Z"^^xsd:dateTime ; + gr:opens "6:35:00"^^xsd:time ; + gr:closes "16:55:00"^^xsd:time ; + ], [ + a gr:OpeningHourSpecification ; + rdfs:label "25/12 og 26/12"@da ; + gr:validFrom "2013-12-25T00:00:00Z"^^xsd:dateTime ; + gr:validThrough "2013-12-26T00:00:00Z"^^xsd:dateTime ; + gr:opens "9:25:00"^^xsd:time ; + gr:closes "21:50:00"^^xsd:time ; + ], [ + a gr:OpeningHourSpecification ; + rdfs:label "31/12"@da ; + gr:validFrom "2013-12-31T00:00:00Z"^^xsd:dateTime ; + gr:validThrough "2013-05-31T00:00:00Z"^^xsd:dateTime ; + gr:opens "6:35:00"^^xsd:time ; + gr:closes "16:55:00"^^xsd:time ; + ] . diff --git a/data/org/faergeOest.ttl b/data/org/faergeOest.ttl new file mode 100644 index 0000000..cf480e6 --- /dev/null +++ b/data/org/faergeOest.ttl @@ -0,0 +1,23 @@ +@prefix foaf: <http://xmlns.com/foaf/0.1/> . +@prefix gr: <http://purl.org/goodrelations/v1#> . +@prefix schema: <http://schema.org/> . +@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . + +[] + a gr:BusinessEntity, schema:Place; + gr:category "transport"; + gr:name "Østre Færge"; + foaf:page <http://www.oestrefaerge.dk/>; + schema:telephone "+45-59470015", "+45-40467013"; + schema:email "mail@oestrefaerge.dk"; + gr:hasOpeningHourSpecification [ + a gr:OpeningHourSpecification ; + gr:hasOpeningHoursDayOfWeek gr:Monday, gr:Tuesday, gr:Wednesday, gr:Thursday, gr:Friday ; + gr:opens "5:30:00"^^xsd:time ; + gr:closes "23:59:00"^^xsd:time ; + ], [ + a gr:OpeningHourSpecification ; + gr:hasOpeningHoursDayOfWeek gr:Saturday, gr:Sunday ; + gr:opens "6:00:00"^^xsd:time ; + gr:closes "23:59:00"^^xsd:time ; + ] . diff --git a/data/org/folkedans.ttl b/data/org/folkedans.ttl new file mode 100644 index 0000000..741f678 --- /dev/null +++ b/data/org/folkedans.ttl @@ -0,0 +1,29 @@ +@prefix : <http://data.biks.dk/folkedans/> . +@prefix foaf: <http://xmlns.com/foaf/0.1/> . +@prefix gr: <http://purl.org/goodrelations/v1#> . +@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . +@prefix schema: <http://schema.org/> . +@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . + +:org + a gr:BusinessEntity ; + gr:name "Orø Folkedansere" ; + foaf:Homepage <http://www.orøfolkedansere.dk/> ; + schema:location <http://data.biks.dk/hal/home> ; + schema:location :formandHome . + +:formand + a gr:Person ; + gr:name "Knud Noppenau" ; + schema:telephone "+45-59470084" ; + schema:location :formandHome . + +:formandHome + a schema:Place; + schema:address :address . + +:address + a schema:PostalAddress; + schema:streetAddress "Syvvejen 15, Orø"@da; + schema:postalCode "4300"; + schema:addressLocality "Holbæk, Danmark"@da . diff --git a/data/org/gaardstronomi.ttl b/data/org/gaardstronomi.ttl new file mode 100644 index 0000000..fac9286 --- /dev/null +++ b/data/org/gaardstronomi.ttl @@ -0,0 +1,94 @@ +@prefix foaf: <http://xmlns.com/foaf/0.1/> . +@prefix gr: <http://purl.org/goodrelations/v1#> . +@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . +@prefix schema: <http://schema.org/> . +@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . + +[] + a gr:BusinessEntity, schema:Place; + gr:category "restaurant"; + gr:name "Gaardstronomi"; + foaf:Homepage <http://www.gaardstronomi.dk/> ; + schema:address [ + a schema:PostalAddress; + schema:streetAddress "Langdalgård, Næsbyvej 13, Orø, Orø"@da; + schema:postalCode "4300"; + schema:addressLocality "Holbæk, Danmark"@da ; + ]; + schema:telephone "+45-22366555"; + schema:email "kontakt@gaardstronomi.dk"; + gr:taxID "33336217"; + gr:hasOpeningHourSpecification [ + a gr:OpeningHourSpecification ; + rdfs:label "tidlig sommer" ; + gr:validFrom "2013-05-24T00:00:00Z"^^xsd:dateTime ; + gr:validThrough "2013-07-06T00:00:00Z"^^xsd:dateTime ; + gr:hasOpeningHoursDayOfWeek gr:Friday ; + gr:opens "17:00:00"^^xsd:time ; + gr:closes "20:00:00"^^xsd:time ; + ], [ + a gr:OpeningHourSpecification ; + rdfs:label "tidlig sommer" ; + gr:validFrom "2013-05-24T00:00:00Z"^^xsd:dateTime ; + gr:validThrough "2013-07-06T00:00:00Z"^^xsd:dateTime ; + gr:hasOpeningHoursDayOfWeek gr:Saturday ; + gr:opens "9:00:00"^^xsd:time ; + gr:closes "20:00:00"^^xsd:time ; + ], [ + a gr:OpeningHourSpecification ; + rdfs:label "midsommer" ; + rdfs:comment "kræver forudbestilling" ; + gr:validFrom "2013-07-10T00:00:00Z"^^xsd:dateTime ; + gr:validThrough "2013-08-11T00:00:00Z"^^xsd:dateTime ; + gr:hasOpeningHoursDayOfWeek gr:Wednesday ; + gr:opens "18:00:00"^^xsd:time ; + gr:closes "19:00:00"^^xsd:time ; + ], [ + a gr:OpeningHourSpecification ; + rdfs:label "midsommer" ; + gr:validFrom "2013-07-10T00:00:00Z"^^xsd:dateTime ; + gr:validThrough "2013-08-11T00:00:00Z"^^xsd:dateTime ; + gr:hasOpeningHoursDayOfWeek gr:Thursday, gr:Friday ; + gr:opens "9:00:00"^^xsd:time ; + gr:closes "14:00:00"^^xsd:time ; + ], [ + a gr:OpeningHourSpecification ; + rdfs:label "midsommer" ; + gr:validFrom "2013-07-10T00:00:00Z"^^xsd:dateTime ; + gr:validThrough "2013-08-11T00:00:00Z"^^xsd:dateTime ; + gr:hasOpeningHoursDayOfWeek gr:Thursday, gr:Friday ; + gr:opens "17:00:00"^^xsd:time ; + gr:closes "20:00:00"^^xsd:time ; + ], [ + a gr:OpeningHourSpecification ; + rdfs:label "midsommer" ; + gr:validFrom "2013-07-10T00:00:00Z"^^xsd:dateTime ; + gr:validThrough "2013-08-11T00:00:00Z"^^xsd:dateTime ; + gr:hasOpeningHoursDayOfWeek gr:Saturday, gr:Sunday ; + gr:opens "9:00:00"^^xsd:time ; + gr:closes "20:00:00"^^xsd:time ; + ], [ + a gr:OpeningHourSpecification ; + rdfs:label "sensommer" ; + gr:validFrom "2013-08-16T00:00:00Z"^^xsd:dateTime ; + gr:validThrough "2013-08-31T00:00:00Z"^^xsd:dateTime ; + gr:hasOpeningHoursDayOfWeek gr:Friday ; + gr:opens "17:00:00"^^xsd:time ; + gr:closes "20:00:00"^^xsd:time ; + ], [ + a gr:OpeningHourSpecification ; + rdfs:label "sensommer" ; + gr:validFrom "2013-08-16T00:00:00Z"^^xsd:dateTime ; + gr:validThrough "2013-08-31T00:00:00Z"^^xsd:dateTime ; + gr:hasOpeningHoursDayOfWeek gr:Saturday ; + gr:opens "9:00:00"^^xsd:time ; + gr:closes "20:00:00"^^xsd:time ; + ], [ + a gr:OpeningHourSpecification ; + rdfs:label "efterår" ; + gr:validFrom "2013-10-12T00:00:00Z"^^xsd:dateTime ; + gr:validThrough "2013-10-19T00:00:00Z"^^xsd:dateTime ; + gr:hasOpeningHoursDayOfWeek gr:Friday, gr:Saturday ; + gr:opens "9:00:00"^^xsd:time ; + gr:closes "20:00:00"^^xsd:time ; + ] . diff --git a/data/org/genbrugsplads.ttl b/data/org/genbrugsplads.ttl new file mode 100644 index 0000000..06f7b42 --- /dev/null +++ b/data/org/genbrugsplads.ttl @@ -0,0 +1,56 @@ +@prefix foaf: <http://xmlns.com/foaf/0.1/> . +@prefix gr: <http://purl.org/goodrelations/v1#> . +@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . +@prefix schema: <http://schema.org/> . +@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . + +[] + a gr:BusinessEntity; + gr:category "public service"; + gr:legalName "Holbæk Forsyning A/S"; + foaf:Homepage <http://www.holfor.dk/>; + schema:email "kundeservice@holfor.dk"; + schema:telephone "+45-70111250"; + schema:address [ + a schema:PostalAddress; + schema:streetAddress "Kalvemosevej 1"@da; + schema:postalCode "4300"; + schema:addressLocality "Holbæk, Danmark"@da; + ]. + +_:genbrugspladsen + a schema:Place; + gr:category "public service"; + gr:name "Genbrugspladsen - Orø"; + foaf:page <http://www.holfor.dk/affald/genbrugspladser>; + schema:address [ + a schema:PostalAddress; + schema:streetAddress "Nørrestængevej, Orø"@da; + schema:postalCode "4300"; + schema:addressLocality "Holbæk, Danmark"@da; + ]; + gr:hasOpeningHourSpecification [ + a gr:OpeningHourSpecification ; + rdfs:label "forår, sommer og efterår" ; + gr:validFrom "2013-04-01T00:00:00Z"^^xsd:dateTime ; + gr:validThrough "2013-10-31T00:00:00Z"^^xsd:dateTime ; + gr:hasOpeningHoursDayOfWeek gr:Wednesday ; + gr:opens "13:00:00"^^xsd:time ; + gr:closes "15:00:00"^^xsd:time ; + ], [ + a gr:OpeningHourSpecification ; + rdfs:label "forår, sommer og efterår" ; + gr:validFrom "2013-04-01T00:00:00Z"^^xsd:dateTime ; + gr:validThrough "2013-10-31T00:00:00Z"^^xsd:dateTime ; + gr:hasOpeningHoursDayOfWeek gr:Saturday ; + gr:opens "10:00:00"^^xsd:time ; + gr:closes "12:00:00"^^xsd:time ; + ], [ + a gr:OpeningHourSpecification ; + rdfs:label "vinter" ; + gr:validFrom "2013-11-01T00:00:00Z"^^xsd:dateTime ; + gr:validThrough "2014-03-31T00:00:00Z"^^xsd:dateTime ; + gr:hasOpeningHoursDayOfWeek gr:Saturday ; + gr:opens "10:00:00"^^xsd:time ; + gr:closes "12:00:00"^^xsd:time ; + ] . diff --git a/data/org/hal.ttl b/data/org/hal.ttl new file mode 100644 index 0000000..5eadd2b --- /dev/null +++ b/data/org/hal.ttl @@ -0,0 +1,25 @@ +@prefix : <http://data.biks.dk/hal/> . +@prefix foaf: <http://xmlns.com/foaf/0.1/> . +@prefix gr: <http://purl.org/goodrelations/v1#> . +@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . +@prefix schema: <http://schema.org/> . +@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . + +:home + a schema:Place; +# gr:category "" ; + gr:name "Orø Hallen" ; + foaf:Homepage <http://www.oroehallen.dk/html/Hallen.htm> ; + schema:address :address . + +:org + a gr:BusinessEntity ; + gr:name "Orø Hallen" ; + foaf:Homepage <http://www.oroehallen.dk/> ; + schema:location :home . + +:address + a schema:PostalAddress; + schema:streetAddress "Brøndevej 15, Orø"@da; + schema:postalCode "4300"; + schema:addressLocality "Holbæk, Danmark"@da . diff --git a/data/org/havnegrill.ttl b/data/org/havnegrill.ttl new file mode 100644 index 0000000..49cc5b1 --- /dev/null +++ b/data/org/havnegrill.ttl @@ -0,0 +1,22 @@ +@prefix foaf: <http://xmlns.com/foaf/0.1/> . +@prefix gr: <http://purl.org/goodrelations/v1#> . +@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . +@prefix schema: <http://schema.org/> . +@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . + +[] + a gr:BusinessEntity, schema:Place ; + gr:category "restaurant" ; + gr:name "Havnegrillen Orø Havn"@da ; + foaf:page <http://cvr.dk/Site/Forms/CompanySearch/CompanySearch.aspx?cvrnr=29437386> ; + gr:hasOpeningHourSpecification [ + a gr:OpeningHourSpecification ; + gr:hasOpeningHoursDayOfWeek gr:Monday, gr:Tuesday, gr:Wednesday, gr:Thursday ; + gr:opens "12:00:00"^^xsd:time ; + gr:closes "18:00:00"^^xsd:time ; + ], [ + a gr:OpeningHourSpecification ; + gr:hasOpeningHoursDayOfWeek gr:Saturday, gr:Sunday ; + gr:opens "12:00:00"^^xsd:time ; + gr:closes "24:00:00"^^xsd:time ; + ] . diff --git a/data/org/hestebedgaard.ttl b/data/org/hestebedgaard.ttl new file mode 100644 index 0000000..d179793 --- /dev/null +++ b/data/org/hestebedgaard.ttl @@ -0,0 +1,42 @@ +@prefix : <http://data.biks.dk/hestebedgård/> . +@prefix foaf: <http://xmlns.com/foaf/0.1/> . +@prefix gr: <http://purl.org/goodrelations/v1#> . +@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . +@prefix schema: <http://schema.org/> . +@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . + +:home + a schema:Place; + gr:category "museum", "attraction" ; + gr:name "Hestebedgård" ; + foaf:Homepage <http://hestebedgård.dk/> ; + schema:email "kontakt@xn--hestebedgrd-58a.dk" ; + schema:telephone "+45-59470225" ; + schema:address :address ; + gr:hasOpeningHourSpecification [ + a gr:OpeningHourSpecification ; + gr:validFrom "2013-03-01T00:00:00Z"^^xsd:dateTime ; + gr:validThrough "2013-10-31T00:00:00Z"^^xsd:dateTime ; + gr:hasOpeningHoursDayOfWeek gr:Wednesday ; + gr:opens "14:00:00"^^xsd:time ; + gr:closes "16:00:00"^^xsd:time ; + ], [ + a gr:OpeningHourSpecification ; + gr:validFrom "2013-03-01T00:00:00Z"^^xsd:dateTime ; + gr:validThrough "2013-10-31T00:00:00Z"^^xsd:dateTime ; + gr:hasOpeningHoursDayOfWeek gr:Saturday ; + gr:opens "10:00:00"^^xsd:time ; + gr:closes "12:00:00"^^xsd:time ; + ] . + +:org + a gr:BusinessEntity ; + gr:name "Hestebedgårds Venneforening" ; + foaf:Homepage <http://hestebedgård.dk/html/Selvejende_institution.html> ; + schema:location :home . + +:address + a schema:PostalAddress; + schema:streetAddress "Kattekærstrædet 10, Orø"@da; + schema:postalCode "4300"; + schema:addressLocality "Holbæk, Danmark"@da . diff --git a/data/org/kirke.ttl b/data/org/kirke.ttl new file mode 100644 index 0000000..264e825 --- /dev/null +++ b/data/org/kirke.ttl @@ -0,0 +1,24 @@ +@prefix : <http://data.biks.dk/kirke/> . +@prefix foaf: <http://xmlns.com/foaf/0.1/> . +@prefix gr: <http://purl.org/goodrelations/v1#> . +@prefix schema: <http://schema.org/> . +@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . + +:home + a schema:Place; + gr:category "public service"; + gr:name "Orø Kirke"@da; + foaf:Homepage <http://www.oroekirke.dk/>; + schema:email "kontakt@oroekirke.dk"; + gr:hasOpeningHourSpecification [ + a gr:OpeningHourSpecification ; + gr:hasOpeningHoursDayOfWeek gr:Tuesday, gr:Wednesday, gr:Thursday, gr:Friday, gr:Saturday, gr:Sunday ; + gr:opens "8:00:00"^^xsd:time ; + gr:closes "16:00:00"^^xsd:time ; + ] . + +:org + a schema:Organization ; + gr:name "Orø Kirkes menighedsråd"@da ; + foaf:Homepage <http://www.oroekirke.dk/html/Menighedsråd.htm> ; + schema:email "menighedsraad@oroekirke.dk" . diff --git a/data/org/kro.ttl b/data/org/kro.ttl new file mode 100644 index 0000000..207c65c --- /dev/null +++ b/data/org/kro.ttl @@ -0,0 +1,24 @@ +@prefix foaf: <http://xmlns.com/foaf/0.1/> . +@prefix gr: <http://purl.org/goodrelations/v1#> . +@prefix schema: <http://schema.org/> . +@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . + +[] + a gr:BusinessEntity; + gr:category "restaurant", "accomodation"; + gr:name "Hotel Orø Kro"; + foaf:page <http://www.oroekro.dk/>; + schema:address [ + a schema:PostalAddress; + schema:streetAddress "Bygaden 57, Orø"@da; + schema:postalCode "4300"; + schema:addressLocality "Holbæk, Danmark"@da; + ]; + schema:telephone "+45-59470006"; + schema:email "reception@oroekro.dk"; + gr:hasOpeningHourSpecification [ + a gr:OpeningHourSpecification ; + gr:hasOpeningHoursDayOfWeek gr:Monday, gr:Tuesday, gr:Wednesday, gr:Thursday, gr:Friday, gr:Saturday, gr:Sunday ; + gr:opens "12:00:00"^^xsd:time ; + gr:closes "21:00:00"^^xsd:time ; + ] . diff --git a/data/org/kunst.ttl b/data/org/kunst.ttl new file mode 100644 index 0000000..785307a --- /dev/null +++ b/data/org/kunst.ttl @@ -0,0 +1,10 @@ +@prefix foaf: <http://xmlns.com/foaf/0.1/> . +@prefix gr: <http://purl.org/goodrelations/v1#> . +@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . +@prefix schema: <http://schema.org/> . +@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . + +[] + a gr:BusinessEntity; + gr:name "Kunst på Orø"@da; + foaf:Homepage <http://kunstpåorø.dk/>. diff --git a/data/org/marlieses.ttl b/data/org/marlieses.ttl new file mode 100644 index 0000000..6f497ea --- /dev/null +++ b/data/org/marlieses.ttl @@ -0,0 +1,43 @@ +@prefix : <http://data.biks.dk/marliese/> . +@prefix foaf: <http://xmlns.com/foaf/0.1/> . +@prefix gr: <http://purl.org/goodrelations/v1#> . +@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . +@prefix schema: <http://schema.org/> . +@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . + +:home + a schema:Place; + gr:category "restaurant"; + schema:telephone "+45-59470744"; + gr:name "Marliese’s Gårdcafé"@da; + foaf:Homepage <http://marliesesgaardcafe.dk/>; + gr:hasOpeningHourSpecification [ + a gr:OpeningHourSpecification ; + rdfs:label "tidlig sommer" ; + gr:validFrom "2013-05-04T00:00:00Z"^^xsd:dateTime ; + gr:validThrough "2013-06-30T00:00:00Z"^^xsd:dateTime ; + gr:hasOpeningHoursDayOfWeek gr:Saturday, gr:Sunday ; + gr:opens "13:00:00"^^xsd:time ; + gr:closes "17:00:00"^^xsd:time ; + ], [ + a gr:OpeningHourSpecification ; + rdfs:label "midsommer" ; + gr:validFrom "2013-07-01T00:00:00Z"^^xsd:dateTime ; + gr:validThrough "2013-08-11T00:00:00Z"^^xsd:dateTime ; + gr:hasOpeningHoursDayOfWeek gr:Monday, gr:Tuesday, gr:Wednesday, gr:Thursday, gr:Friday, gr:Saturday, gr:Sunday ; + gr:opens "13:00:00"^^xsd:time ; + gr:closes "17:00:00"^^xsd:time ; + ], [ + a gr:OpeningHourSpecification ; + rdfs:label "sensommer" ; + gr:validFrom "2013-08-12T00:00:00Z"^^xsd:dateTime ; + gr:validThrough "2013-09-15T00:00:00Z"^^xsd:dateTime ; + gr:hasOpeningHoursDayOfWeek gr:Saturday, gr:Sunday ; + gr:opens "13:00:00"^^xsd:time ; + gr:closes "17:00:00"^^xsd:time ; + ] . + +:org + a gr:BusinessEntity ; + gr:name "Marliese’s Gårdcafé"@da ; + schema:location :home . diff --git a/data/org/mc.ttl b/data/org/mc.ttl new file mode 100644 index 0000000..f3414a1 --- /dev/null +++ b/data/org/mc.ttl @@ -0,0 +1,14 @@ +@prefix : <http://data.biks.dk/mcisland/> . +@prefix foaf: <http://xmlns.com/foaf/0.1/> . +@prefix schema: <http://schema.org/> . +@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . + +:home + a schema:Place ; + schema:name "MC Island" . + +:org + a schema:Organization ; + schema:name "MC Island"@da ; + foaf:Homepage <http://www.mcisland.dk/> ; + schema:location :home . diff --git a/data/org/oreokontor.ttl b/data/org/oreokontor.ttl new file mode 100644 index 0000000..00b0bc0 --- /dev/null +++ b/data/org/oreokontor.ttl @@ -0,0 +1,22 @@ +@prefix foaf: <http://xmlns.com/foaf/0.1/> . +@prefix gr: <http://purl.org/goodrelations/v1#> . +@prefix schema: <http://schema.org/> . +@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . + +[] + a schema:Place; + gr:category "public service"; + gr:name "OrØkontoret"@da; + foaf:Homepage <http://www.oroe.dk/orokontoret.html>; + schema:email "info@oroe.dk"; + gr:hasOpeningHourSpecification [ + a gr:OpeningHourSpecification ; + gr:hasOpeningHoursDayOfWeek gr:Wednesday, gr:Thursday, gr:Friday ; + gr:opens "12:00:00"^^xsd:time ; + gr:closes "14:00:00"^^xsd:time ; + ], [ + a gr:OpeningHourSpecification ; + gr:hasOpeningHoursDayOfWeek gr:Saturday ; + gr:opens "11:00:00"^^xsd:time ; + gr:closes "13:00:00"^^xsd:time ; + ] . diff --git a/data/org/oroestrand.ttl b/data/org/oroestrand.ttl new file mode 100644 index 0000000..35e8b47 --- /dev/null +++ b/data/org/oroestrand.ttl @@ -0,0 +1,30 @@ +@prefix foaf: <http://xmlns.com/foaf/0.1/> . +@prefix gr: <http://purl.org/goodrelations/v1#> . +@prefix schema: <http://schema.org/> . +@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . + +[] + a gr:BusinessEntity; + gr:category "school"; + gr:name "Skole- og Behandlingshjemmet Orøstrand"; + foaf:Homepage <http://oroestrand.dk/>; + schema:address [ + a schema:PostalAddress; + schema:streetAddress "Stænget 6, Orø"@da; + schema:postalCode "4300"; + schema:addressLocality "Holbæk, Danmark"@da; + ]; + schema:telephone "+45-59470004", "+45-40214130"; + schema:email "post@oroestrand.dk". + +_:dyreparken + a schema:Place; + gr:category "attraction"; + gr:name "Orøstrand - Dyreparken"@da; + foaf:Homepage <http://oroestrand.dk/dyreparken/>; + gr:hasOpeningHourSpecification [ + a gr:OpeningHourSpecification ; + gr:hasOpeningHoursDayOfWeek gr:Monday, gr:Tuesday, gr:Wednesday, gr:Thursday, gr:Friday, gr:Saturday, gr:Sunday ; + gr:opens "10:00:00"^^xsd:time ; + gr:closes "16:00:00"^^xsd:time ; + ] . diff --git a/data/org/ouroeminder.ttl b/data/org/ouroeminder.ttl new file mode 100644 index 0000000..6a3fb37 --- /dev/null +++ b/data/org/ouroeminder.ttl @@ -0,0 +1,21 @@ +@prefix foaf: <http://xmlns.com/foaf/0.1/> . +@prefix gr: <http://purl.org/goodrelations/v1#> . +@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . +@prefix schema: <http://schema.org/> . +@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . + +[] + a schema:Place; + gr:category "museum", "attraction"; + schema:telephone "+45-59470068", "+45-59470024", "+45-59470225"; + gr:name "Ourø Minder"@da; + foaf:page <http://www.oroe.dk/museet-ouro-minder.html>; + gr:hasOpeningHourSpecification [ + a gr:OpeningHourSpecification ; + rdfs:label "sommer" ; + gr:validFrom "2013-06-01T00:00:00Z"^^xsd:dateTime ; + gr:validThrough "2013-08-31T00:00:00Z"^^xsd:dateTime ; + gr:hasOpeningHoursDayOfWeek gr:Tuesday, gr:Wednesday, gr:Thursday, gr:Saturday, gr:Sunday ; + gr:opens "14:00:00"^^xsd:time ; + gr:closes "17:00:00"^^xsd:time ; + ] . diff --git a/data/org/spisestedet.ttl b/data/org/spisestedet.ttl new file mode 100644 index 0000000..9c96c5e --- /dev/null +++ b/data/org/spisestedet.ttl @@ -0,0 +1,124 @@ +@prefix foaf: <http://xmlns.com/foaf/0.1/> . +@prefix gr: <http://purl.org/goodrelations/v1#> . +@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . +@prefix schema: <http://schema.org/> . +@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . + +[] + a schema:Place; + gr:category "restaurant"; + gr:name "Spisestedet Orø"; + foaf:Homepage <http://www.spisestedet-orø.dk/> ; + schema:address [ + a schema:PostalAddress; + schema:streetAddress "Esmosevej 11, Orø"@da; + schema:postalCode "4300"; + schema:addressLocality "Holbæk, Danmark"@da; + ]; + schema:telephone "+45-59474796"; + schema:email "kontakt@xn--spisestedet-or-3qb.dk"; + gr:hasOpeningHourSpecification [ + a gr:OpeningHourSpecification ; + rdfs:label "forår og sommer" ; + gr:validFrom "2013-04-29T00:00:00Z"^^xsd:dateTime ; + gr:validThrough "2013-06-30T00:00:00Z"^^xsd:dateTime ; + gr:hasOpeningHoursDayOfWeek gr:Wednesday, gr:Thursday ; + gr:opens "12:00:00"^^xsd:time ; + gr:closes "20:00:00"^^xsd:time ; + ], [ + a gr:OpeningHourSpecification ; + rdfs:label "forår og sommer" ; + gr:validFrom "2013-04-29T00:00:00Z"^^xsd:dateTime ; + gr:validThrough "2013-06-30T00:00:00Z"^^xsd:dateTime ; + gr:hasOpeningHoursDayOfWeek gr:Friday, gr:Saturday ; + gr:opens "12:00:00"^^xsd:time ; + gr:closes "21:00:00"^^xsd:time ; + ], [ + a gr:OpeningHourSpecification ; + rdfs:label "forår og sommer" ; + gr:validFrom "2013-04-29T00:00:00Z"^^xsd:dateTime ; + gr:validThrough "2013-06-30T00:00:00Z"^^xsd:dateTime ; + gr:hasOpeningHoursDayOfWeek gr:Sunday ; + gr:opens "10:00:00"^^xsd:time ; + gr:closes "19:00:00"^^xsd:time ; + ], [ + a gr:OpeningHourSpecification ; + rdfs:label "midsommer" ; + gr:validFrom "2013-07-01T00:00:00Z"^^xsd:dateTime ; + gr:validThrough "2013-08-11T00:00:00Z"^^xsd:dateTime ; + gr:hasOpeningHoursDayOfWeek gr:Wednesday, gr:Thursday ; + gr:opens "12:00:00"^^xsd:time ; + gr:closes "20:00:00"^^xsd:time ; + ], [ + a gr:OpeningHourSpecification ; + rdfs:label "midsommer" ; + gr:validFrom "2013-07-01T00:00:00Z"^^xsd:dateTime ; + gr:validThrough "2013-08-11T00:00:00Z"^^xsd:dateTime ; + gr:hasOpeningHoursDayOfWeek gr:Friday, gr:Saturday ; + gr:opens "12:00:00"^^xsd:time ; + gr:closes "21:00:00"^^xsd:time ; + ], [ + a gr:OpeningHourSpecification ; + rdfs:label "midsommer" ; + gr:validFrom "2013-07-01T00:00:00Z"^^xsd:dateTime ; + gr:validThrough "2013-08-11T00:00:00Z"^^xsd:dateTime ; + gr:hasOpeningHoursDayOfWeek gr:Sunday ; + gr:opens "10:00:00"^^xsd:time ; + gr:closes "20:00:00"^^xsd:time ; + ], [ + a gr:OpeningHourSpecification ; + rdfs:label "sensommer" ; + gr:validFrom "2013-08-12T00:00:00Z"^^xsd:dateTime ; + gr:validThrough "2013-09-01T00:00:00Z"^^xsd:dateTime ; + gr:hasOpeningHoursDayOfWeek gr:Wednesday, gr:Thursday ; + gr:opens "12:00:00"^^xsd:time ; + gr:closes "20:00:00"^^xsd:time ; + ], [ + a gr:OpeningHourSpecification ; + rdfs:label "sensommer" ; + gr:validFrom "2013-08-12T00:00:00Z"^^xsd:dateTime ; + gr:validThrough "2013-09-01T00:00:00Z"^^xsd:dateTime ; + gr:hasOpeningHoursDayOfWeek gr:Friday, gr:Saturday ; + gr:opens "12:00:00"^^xsd:time ; + gr:closes "21:00:00"^^xsd:time ; + ], [ + a gr:OpeningHourSpecification ; + rdfs:label "sensommer" ; + gr:validFrom "2013-08-12T00:00:00Z"^^xsd:dateTime ; + gr:validThrough "2013-09-01T00:00:00Z"^^xsd:dateTime ; + gr:hasOpeningHoursDayOfWeek gr:Sunday ; + gr:opens "10:00:00"^^xsd:time ; + gr:closes "19:00:00"^^xsd:time ; + ], [ + a gr:OpeningHourSpecification ; + rdfs:label "efterår og vinter" ; + gr:validFrom "2013-09-02T00:00:00Z"^^xsd:dateTime ; + gr:validThrough "2013-12-31T00:00:00Z"^^xsd:dateTime ; + gr:hasOpeningHoursDayOfWeek gr:Wednesday, gr:Thursday ; + gr:opens "15:00:00"^^xsd:time ; + gr:closes "20:00:00"^^xsd:time ; + ], [ + a gr:OpeningHourSpecification ; + rdfs:label "efterår og vinter" ; + gr:validFrom "2013-09-02T00:00:00Z"^^xsd:dateTime ; + gr:validThrough "2013-12-31T00:00:00Z"^^xsd:dateTime ; + gr:hasOpeningHoursDayOfWeek gr:Friday ; + gr:opens "15:00:00"^^xsd:time ; + gr:closes "21:00:00"^^xsd:time ; + ], [ + a gr:OpeningHourSpecification ; + rdfs:label "efterår og vinter" ; + gr:validFrom "2013-09-02T00:00:00Z"^^xsd:dateTime ; + gr:validThrough "2013-12-31T00:00:00Z"^^xsd:dateTime ; + gr:hasOpeningHoursDayOfWeek gr:Saturday ; + gr:opens "12:00:00"^^xsd:time ; + gr:closes "21:00:00"^^xsd:time ; + ], [ + a gr:OpeningHourSpecification ; + rdfs:label "efterår og vinter" ; + gr:validFrom "2013-09-02T00:00:00Z"^^xsd:dateTime ; + gr:validThrough "2013-12-31T00:00:00Z"^^xsd:dateTime ; + gr:hasOpeningHoursDayOfWeek gr:Sunday ; + gr:opens "10:00:00"^^xsd:time ; + gr:closes "18:00:00"^^xsd:time ; + ] . diff --git a/data/org/urtehaven.ttl b/data/org/urtehaven.ttl new file mode 100644 index 0000000..d7eaff3 --- /dev/null +++ b/data/org/urtehaven.ttl @@ -0,0 +1,36 @@ +@prefix foaf: <http://xmlns.com/foaf/0.1/> . +@prefix gr: <http://purl.org/goodrelations/v1#> . +@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . +@prefix schema: <http://schema.org/> . +@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . + +[] + a gr:BusinessEntity; + gr:category "accomodation"; + gr:name "ORØ B&B bo-i-haven"; + foaf:page <http://www.langdal5.dk/>; + schema:email "jensjohan@langdal5.dk"; + schema:telephone "+45-59474705"; + schema:address [ + a schema:PostalAddress; + schema:streetAddress "Langdal 5, Orø"@da; + schema:postalCode "4300"; + schema:addressLocality "Holbæk, Danmark"@da; + ]; + gr:taxID "35012672". + +_:urtehaven + a schema:Place; + gr:category "attraction"; + gr:name "Urtehaven på Orø"; + schema:latitude "55.784417"; + schema:longitude "11.78553"; + gr:hasOpeningHourSpecification [ + a gr:OpeningHourSpecification ; + rdfs:label "sommer og efterår" ; + gr:validFrom "2013-05-01T00:00:00Z"^^xsd:dateTime ; + gr:validThrough "2013-10-31T00:00:00Z"^^xsd:dateTime ; + gr:hasOpeningHoursDayOfWeek gr:Monday, gr:Tuesday, gr:Wednesday, gr:Thursday, gr:Friday, gr:Saturday, gr:Sunday ; + gr:opens "10:00:00"^^xsd:time ; + gr:closes "17:00:00"^^xsd:time ; + ] . diff --git a/data/person/JonasSmedegaard.ttl b/data/person/JonasSmedegaard.ttl new file mode 100644 index 0000000..9467eef --- /dev/null +++ b/data/person/JonasSmedegaard.ttl @@ -0,0 +1,23 @@ +@prefix foaf: <http://xmlns.com/foaf/0.1/> . +@prefix gr: <http://purl.org/goodrelations/v1#> . +@prefix hcard: <http://purl.org/uF/hCard/terms/> . +@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . +@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . +@prefix s: <http://schema.org/> . +@prefix vcard: <http://www.w3.org/2006/vcard/ns#> . +@prefix vcardx: <http://buzzword.org.uk/rdf/vcardx#> . +@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . + +[] + a foaf:Person; + foaf:mbox <mailto:dr@jones.dk>; + foaf:name "Jonas Smedegaard"; + foaf:Homepage <http://dr.jones.dk/>; + s:address [ + a s:PostalAddress; + s:streetAddress "Stauninggårdsvej 25, Orø"@da; + s:postalCode "4300"; + s:addressLocality "Holbæk, Danmark"@da + ]; + s:telephone "+45-40843136"; + s:email "dr@jones.dk". diff --git a/examples/mkevents b/examples/mkevents new file mode 100755 index 0000000..0c25233 --- /dev/null +++ b/examples/mkevents @@ -0,0 +1,64 @@ +#!/bin/sh +# +# Copyright © 2013 Jonas Smedegaard <dr@jones.dk> +# Description: render and publish event webpage from RDF data +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +set -e + +# defaults sensible for the author when invoked from project root +outfile=events.html +infiles="data/*/*.ttl data/*/*/*.ttl" +rsync_credentials=coreander +rsync_path=/home/jonas/public_websites/data.biks.dk/events/index.html +script=bin/rdf2events + +# make backup of eventual existing output +if [ -f $outfile~ ]; then + echo >&2 "ERROR: old tempfile $outfile~ exist!" + echo >&2 "Check that script isn't already running, remove the file, and try again." + exit 1 +fi + +echo "Rendering $outfile..." +$script $infiles > $outfile~ + +if [ -f $outfile ]; then + echo "Comparing $outfile against older version..." + errorcode=0 + diff -ruN $outfile $outfile~ || errorcode=$? + case $errorcode in + 0) echo "No changes from previous version"; exit;; + 1) printf "Above are changes from previous version. ";; + *) echo >&2 "ERROR: internal diff error!"; exit $errorcode;; + esac +fi + +# ask, publish, and update on-disk file for later comparison +printf "OK to publish (y/N)? " +read do_update +case $do_update in + y|Y) + echo "Publishing $outfile..." + rsync -a $outfile~ $rsync_credentials:$rsync_path + mv -f $outfile~ $outfile + echo "Done: $outfile published succesfully!" + ;; + *) + rm $outfile~ + echo "Cancelled, as requested." + exit + ;; +esac diff --git a/examples/mkhours b/examples/mkhours new file mode 100755 index 0000000..1e0168a --- /dev/null +++ b/examples/mkhours @@ -0,0 +1,64 @@ +#!/bin/sh +# +# Copyright © 2013 Jonas Smedegaard <dr@jones.dk> +# Description: render and publish opening hours webpage from RDF data +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +set -e + +# defaults sensible for the author when invoked from project root +outfile=hours.html +infiles="data/*/*.ttl data/*/*/*.ttl" +rsync_credentials=coreander +rsync_path=/home/jonas/public_websites/data.biks.dk/hours/index.html +script=bin/rdf2hours + +# make backup of eventual existing output +if [ -f $outfile~ ]; then + echo >&2 "ERROR: old tempfile $outfile~ exist!" + echo >&2 "Check that script isn't already running, remove the file, and try again." + exit 1 +fi + +echo "Rendering $outfile..." +$script $infiles > $outfile~ + +if [ -f $outfile ]; then + echo "Comparing $outfile against older version..." + errorcode=0 + diff -ruN $outfile $outfile~ || errorcode=$? + case $errorcode in + 0) echo "No changes from previous version"; exit;; + 1) printf "Above are changes from previous version. ";; + *) echo >&2 "ERROR: internal diff error!"; exit $errorcode;; + esac +fi + +# ask, publish, and update on-disk file for later comparison +printf "OK to publish (y/N)? " +read do_update +case $do_update in + y|Y) + echo "Publishing $outfile..." + rsync -a $outfile~ $rsync_credentials:$rsync_path + mv -f $outfile~ $outfile + echo "Done: $outfile published succesfully!" + ;; + *) + rm $outfile~ + echo "Cancelled, as requested." + exit + ;; +esac |