From 7576910e9bc3bc4ca3f86bcfb1b59143505104fe Mon Sep 17 00:00:00 2001 From: Jonas Smedegaard Date: Sat, 17 Jun 2017 21:49:17 +0200 Subject: Add trip to Montreal. --- data/2017/montreal.ttl | 572 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 572 insertions(+) create mode 100644 data/2017/montreal.ttl diff --git a/data/2017/montreal.ttl b/data/2017/montreal.ttl new file mode 100644 index 0000000..c05e6f4 --- /dev/null +++ b/data/2017/montreal.ttl @@ -0,0 +1,572 @@ +@base . +@prefix : <#> . +@prefix dbpedia: . +@prefix dc: . +@prefix dcterms: . +@prefix event: . +@prefix foaf: . +@prefix geo: . +@prefix gr: . +#FIXME: create grx - gr extension allowing unit for non-range price +#TODO: get grx adopted into gr +@prefix grx: . +@prefix org: . +@prefix owl: . +@prefix payment: . +@prefix pc: . +#FIXME: create pcx - pc extension allowing unit-based exact price +@prefix pcx: . +@prefix prog: . +@prefix rail: . +#FIXME: create railx - rail extension defining Trainbus +#TODO: get railx adopted into rail +@prefix rail-dk: . +@prefix rail-dk-train: . +@prefix rail-in: . +@prefix rail-in-train: . +@prefix railx: . +@prefix rdfs: . +@prefix skos: . +@prefix service: . +@prefix spacerel: . +@prefix tio: . +#FIXME: create tiox - gr extension allowing unit for Person (C62) +#TODO: get tiox adopted into tio +@prefix tiox: . +@prefix tl: . +@prefix unit: . +@prefix transit: . +@prefix travel: . +#@prefix travel: . +#FIXME: create travelx - travel extension bridging transit and tio with vehicle +#TODO: get travelx adopted into travel or create e.g. vehicle +@prefix travelx: . +@prefix xsd: . + +<> foaf:primaryTopic :trip . + +:trip a event:Event ; + rdfs:label "Siri and Jonas Montreal trip" ; + event:agent + :person-jonas , + :person-siri ; + foaf:based_near + dbpedia:Reykjavik , + dbpedia:Montreal ; + event:time [ a tl:Interval ; + tl:start "2017-07-23T12:00:00+02:00"^^xsd:dateTime ; + tl:end "2017-08-14T20:30:00+02:00"^^xsd:dateTime ; + tl:onTimeLine ] . + +:programme a prog:Programme ; + prog:describes :trip ; + prog:streamed_by_subject + :journey-both ; + prog:has_streamed_event + :ride-orø-reykjavik , + :departure-copenhagen , + :arrival-keflavik , + :sleep-0724 , + :sleep-0725 , + :sleep-0726 , + :sleep-0727 , + :ride-keflavik-montreal , + :departure-keflavik , + :arrival-montreal , + :sleep-0728 , + :sleep-0729 , + :sleep-0730 , + :sleep-0731 , + :sleep-0801 , + :sleep-0802 , + :sleep-0803 , + :sleep-0804 , + :sleep-0805 , + :sleep-0806 , + :sleep-0807 , + :sleep-0808 , + :sleep-0809 , + :sleep-0810 , + :sleep-0811 , + :sleep-0812 , + :sleep-0813 , + :ride-montreal-orø , + :departure-montreal , + :sleep-0814 , + :ride-montreal-orø-b , + :arrival-copenhagen . + +# Pas foto: 125,- x 2 +# Visa: 370,- x 2 +# Tog retur visa-ansøgning: 111.- x 2 + +:ride-orø-reykjavik a event:Event ; + rdfs:label "ferry+train+flight+bus Orø→Reykjavik"@en ; + dcterms:subject :journey-both ; + event:time [ a tl:Interval ; + tl:start "2017-07-01T12:00:00+02:00"^^xsd:dateTime ; + tl:end "2017-07-01T14:00:00+00:00"^^xsd:dateTime ; + tl:onTimeLine ] . + +:ferry-orø-holbæk a travel:Ferry ; + rdfs:label "Orøfærgen"@en ; + tio:operatedBy :org-orøfærgen ; + tio:from [ a tio:Stop ; + tio:departs "2017-07-23T08:10:00+02:00"^^xsd:dateTime ; + tio:at :harbour-orø ] ; + tio:to [ a tio:Stop ; + tio:arrives "2017-07-07T08:45:00+02:00"^^xsd:dateTime ; + tio:at :harbour-holbæk ] . + +:offer-holbæk-copenhagen-airport a gr:Offering ; + gr:hasBusinessFunction gr:Sell ; +# grx:hasPrice "99"^^unit:DanishKrone ; + gr:includes :ticket-holbæk-copenhagen-airport . + +:ticket-holbæk-copenhagen-airport a tio:Ticket ; + tio:scope [ a tio:scopeOfAccess ; + tio:eligibleServiceLevel tio:Economy ; + tiox:participants "2"^^unit:Person ; + tio:accessTo + :train-holbæk-copenhagen , + :train-copenhagen-copenhagen-airport ] . + +:train-holbæk-copenhagen a rail:Train ; + rdfs:label "Re 4720"@en ; + tio:operatedBy :org-dsb ; + tio:from [ a tio:Stop ; + tio:departs "2017-07-23T09:28:00+02:00"^^xsd:dateTime ; + tio:at rail-dk:station-holbæk ] ; + tio:to [ a tio:Stop ; + tio:arrives "2017-07-23T10:12:00+02:00"^^xsd:dateTime ; + tio:at rail-dk:station-copenhagen ] . + +:train-copenhagen-copenhagen-airport a rail:Train ; + rdfs:label "Re 19140"@en ; + tio:operatedBy :org-dsb ; + tio:from [ a tio:Stop ; + tio:departs "2017-07-23T10:28:00+02:00"^^xsd:dateTime ; + tio:at rail-dk:station-copenhagen ] ; + tio:to [ a tio:Stop ; + tio:arrives "2017-07-23T10:43:00+02:00"^^xsd:dateTime ; + tio:at rail-dk:station-copenhagen-airport ] . + +:offer-copenhagen-reykjavik-montreal-copenhagen a gr:Offering ; + gr:hasBusinessFunction gr:Sell ; + gr:serialNumber "TWZPF1" ; + grx:hasPrice "10677.00"^^unit:Danish_Krone ; + gr:includes :ticket-copenhagen-delhi-copenhagen . + +:ticket-copenhagen-reykjavik-montreal-copenhagen a tio:Ticket ; +# tio:ticketID +# "105-9734713492" , +# "105-9734713506" , +# "4Z9FRY" ; + tio:scope [ a tio:scopeOfAccess ; + tio:eligibleServiceLevel tio:Economy ; + tiox:participants "2"^^unit:Person ; + tio:accessTo + :flight-copenhagen-reykjavik , + :flight-reykjavik-montreal , + :flight-montreal-reykjavik , + :flight-reykjavik-copenhagen ] . + +:departure-copenhagen a event:Event ; + rdfs:label "Departure from Copenhagen Airport"@en ; + dcterms:subject :journey-both ; + event:based_near dbpedia:Copenhagen_Airport ; + event:time [ a tl:Interval ; + tl:onTimeLine ; + tl:start "2017-07-23T10:45:00+02:00"^^xsd:dateTime ; + tl:end "2017-07-23T12:35:00+02:00"^^xsd:dateTime ] . + +:flight-copenhagen-reykjavik a tio:Flight ; + tio:flightNo "WW903" ; + tio:operatedBy :org-wowair ; + tio:from [ a tio:Stop ; + tio:departs "2017-07-23T12:35:00+02:00"^^xsd:dateTime ; + tio:at :airport-copenhagen ] ; + tio:to [ a tio:Stop ; + tio:arrives "2017-07-23T14:00:00+00:00"^^xsd:dateTime ; + tio:at :airport-keflavik ] . + +:arrival-keflavik a event:Event ; + rdfs:label "Arrival at Keflavik International Airport"@en ; + dcterms:subject :journey-both ; + event:based_near dbpedia:Keflavik_International_Airport ; + event:time [ a tl:Interval ; + tl:onTimeLine ; + tl:start "2017-07-23T14:00:00+05:30"^^xsd:dateTime ; + tl:end "2017-07-23T15:00:00+05:30"^^xsd:dateTime ] . + +:sleep-0724 a event:Event ; + rdfs:label "Sleep in Reykjavik"@en ; + dcterms:subject :journey-both ; + event:based_near + dbpedia:Reykjavik ; + event:time [ a tl:Interval ; + tl:onTimeLine ; + tl:start "2017-07-24T00:00:00+00:00"^^xsd:dateTime ; + tl:end "2017-07-24T09:00:00+00:00"^^xsd:dateTime ] . + +:sleep-0725 a event:Event ; + rdfs:label "Sleep in Reykjavik"@en ; + dcterms:subject :journey-both ; + event:based_near + dbpedia:Reykjavik ; + event:time [ a tl:Interval ; + tl:onTimeLine ; + tl:start "2017-07-25T00:00:00+00:00"^^xsd:dateTime ; + tl:end "2017-07-25T09:00:00+00:00"^^xsd:dateTime ] . + +:sleep-0726 a event:Event ; + rdfs:label "Sleep in Reykjavik"@en ; + dcterms:subject :journey-both ; + event:based_near + dbpedia:Reykjavik ; + event:time [ a tl:Interval ; + tl:onTimeLine ; + tl:start "2017-07-26T00:00:00+00:00"^^xsd:dateTime ; + tl:end "2017-07-26T09:00:00+00:00"^^xsd:dateTime ] . + +:sleep-0727 a event:Event ; + rdfs:label "Sleep in Reykjavik"@en ; + dcterms:subject :journey-both ; + event:based_near + dbpedia:Reykjavik ; + event:time [ a tl:Interval ; + tl:onTimeLine ; + tl:start "2017-07-27T00:00:00+00:00"^^xsd:dateTime ; + tl:end "2017-07-27T09:00:00+00:00"^^xsd:dateTime ] . + +:departure-keflavik a event:Event ; + rdfs:label "Departure from Keflavik International Airport"@en ; + dcterms:subject :journey-both ; + event:based_near dbpedia:Keflavik_International_Airport ; + event:time [ a tl:Interval ; + tl:onTimeLine ; + tl:start "2017-07-27T15:20:00+00:00"^^xsd:dateTime ; + tl:end "2017-07-27T17:20:00+00:00"^^xsd:dateTime ] . + +:flight-reykjavik-montreal a tio:Flight ; + tio:flightNo "WW251" ; + tio:operatedBy :org-wowair ; + tio:from [ a tio:Stop ; + tio:departs "2017-07-27T17:20:00+00:00"^^xsd:dateTime ; + tio:at :airport-keflavik ] ; + tio:to [ a tio:Stop ; + tio:arrives "2017-07-27T18:50:00+00:00"^^xsd:dateTime ; + tio:at :airport-dorval ] . + +:arrival-dorval a event:Event ; + rdfs:label "Arrival at Montréal–Pierre Elliott Trudeau International Airport"@en ; + dcterms:subject :journey-both ; + event:based_near dbpedia:Montreal-Trudeau_International_Airport ; + event:time [ a tl:Interval ; + tl:onTimeLine ; + tl:start "2017-07-23T18:50:00-04:00"^^xsd:dateTime ; + tl:end "2017-07-23T19:50:00-03:00"^^xsd:dateTime ] . + +:sleep-0728 a event:Event ; + rdfs:label "Sleep in Montreal"@en ; + dcterms:subject :journey-both ; + event:based_near + dbpedia:Montreal ; + event:time [ a tl:Interval ; + tl:onTimeLine ; + tl:start "2017-07-28T00:00:00-04:00"^^xsd:dateTime ; + tl:end "2017-07-28T09:00:00-04:00"^^xsd:dateTime ] . + +:sleep-0729 a event:Event ; + rdfs:label "Sleep in Montreal"@en ; + dcterms:subject :journey-both ; + event:based_near + dbpedia:Montreal ; + event:time [ a tl:Interval ; + tl:onTimeLine ; + tl:start "2017-07-29T00:00:00-04:00"^^xsd:dateTime ; + tl:end "2017-07-29T09:00:00-04:00"^^xsd:dateTime ] . + +:sleep-0730 a event:Event ; + rdfs:label "Sleep in Montreal"@en ; + dcterms:subject :journey-both ; + event:based_near + dbpedia:Montreal ; + event:time [ a tl:Interval ; + tl:onTimeLine ; + tl:start "2017-07-30T00:00:00-04:00"^^xsd:dateTime ; + tl:end "2017-07-30T09:00:00-04:00"^^xsd:dateTime ] . + +:sleep-0731 a event:Event ; + rdfs:label "Sleep in Montreal"@en ; + dcterms:subject :journey-both ; + event:based_near + dbpedia:Montreal ; + event:time [ a tl:Interval ; + tl:onTimeLine ; + tl:start "2017-07-31T00:00:00-04:00"^^xsd:dateTime ; + tl:end "2017-07-31T09:00:00-04:00"^^xsd:dateTime ] . + +:sleep-0801 a event:Event ; + rdfs:label "Sleep at Collège de Maisonneuve in Montreal"@en ; + dcterms:subject :journey-both ; + event:based_near + dbpedia:Collège_de_Maisonneuve ; + event:time [ a tl:Interval ; + tl:onTimeLine ; + tl:start "2017-08-01T00:00:00-04:00"^^xsd:dateTime ; + tl:end "2017-08-01T09:00:00-04:00"^^xsd:dateTime ] . + +:sleep-0802 a event:Event ; + rdfs:label "Sleep at Collège de Maisonneuve in Montreal"@en ; + dcterms:subject :journey-both ; + event:based_near + dbpedia:Collège_de_Maisonneuve ; + event:time [ a tl:Interval ; + tl:onTimeLine ; + tl:start "2017-08-02T00:00:00-04:00"^^xsd:dateTime ; + tl:end "2017-08-02T09:00:00-04:00"^^xsd:dateTime ] . + +:sleep-0803 a event:Event ; + rdfs:label "Sleep at Collège de Maisonneuve in Montreal"@en ; + dcterms:subject :journey-both ; + event:based_near + dbpedia:Collège_de_Maisonneuve ; + event:time [ a tl:Interval ; + tl:onTimeLine ; + tl:start "2017-08-03T00:00:00-04:00"^^xsd:dateTime ; + tl:end "2017-08-03T09:00:00-04:00"^^xsd:dateTime ] . + +:sleep-0804 a event:Event ; + rdfs:label "Sleep at Collège de Maisonneuve in Montreal"@en ; + dcterms:subject :journey-both ; + event:based_near + dbpedia:Collège_de_Maisonneuve ; + event:time [ a tl:Interval ; + tl:onTimeLine ; + tl:start "2017-08-04T00:00:00-04:00"^^xsd:dateTime ; + tl:end "2017-08-04T09:00:00-04:00"^^xsd:dateTime ] . + +:sleep-0805 a event:Event ; + rdfs:label "Sleep at Collège de Maisonneuve in Montreal"@en ; + dcterms:subject :journey-both ; + event:based_near + dbpedia:Collège_de_Maisonneuve ; + event:time [ a tl:Interval ; + tl:onTimeLine ; + tl:start "2017-08-05T00:00:00-04:00"^^xsd:dateTime ; + tl:end "2017-08-05T09:00:00-04:00"^^xsd:dateTime ] . + +:sleep-0806 a event:Event ; + rdfs:label "Sleep at Collège de Maisonneuve in Montreal"@en ; + dcterms:subject :journey-both ; + event:based_near + dbpedia:Collège_de_Maisonneuve ; + event:time [ a tl:Interval ; + tl:onTimeLine ; + tl:start "2017-08-06T00:00:00-04:00"^^xsd:dateTime ; + tl:end "2017-08-06T09:00:00-04:00"^^xsd:dateTime ] . + +:sleep-0807 a event:Event ; + rdfs:label "Sleep at Collège de Maisonneuve in Montreal"@en ; + dcterms:subject :journey-both ; + event:based_near + dbpedia:Collège_de_Maisonneuve ; + event:time [ a tl:Interval ; + tl:onTimeLine ; + tl:start "2017-08-07T00:00:00-04:00"^^xsd:dateTime ; + tl:end "2017-08-07T09:00:00-04:00"^^xsd:dateTime ] . + +:sleep-0808 a event:Event ; + rdfs:label "Sleep at Collège de Maisonneuve in Montreal"@en ; + dcterms:subject :journey-both ; + event:based_near + dbpedia:Collège_de_Maisonneuve ; + event:time [ a tl:Interval ; + tl:onTimeLine ; + tl:start "2017-08-08T00:00:00-04:00"^^xsd:dateTime ; + tl:end "2017-08-08T09:00:00-04:00"^^xsd:dateTime ] . + +:sleep-0809 a event:Event ; + rdfs:label "Sleep at Collège de Maisonneuve in Montreal"@en ; + dcterms:subject :journey-both ; + event:based_near + dbpedia:Collège_de_Maisonneuve ; + event:time [ a tl:Interval ; + tl:onTimeLine ; + tl:start "2017-08-09T00:00:00-04:00"^^xsd:dateTime ; + tl:end "2017-08-09T09:00:00-04:00"^^xsd:dateTime ] . + +:sleep-0810 a event:Event ; + rdfs:label "Sleep at Collège de Maisonneuve in Montreal"@en ; + dcterms:subject :journey-both ; + event:based_near + dbpedia:Collège_de_Maisonneuve ; + event:time [ a tl:Interval ; + tl:onTimeLine ; + tl:start "2017-08-10T00:00:00-04:00"^^xsd:dateTime ; + tl:end "2017-08-10T09:00:00-04:00"^^xsd:dateTime ] . + +:sleep-0811 a event:Event ; + rdfs:label "Sleep at Collège de Maisonneuve in Montreal"@en ; + dcterms:subject :journey-both ; + event:based_near + dbpedia:Collège_de_Maisonneuve ; + event:time [ a tl:Interval ; + tl:onTimeLine ; + tl:start "2017-08-11T00:00:00-04:00"^^xsd:dateTime ; + tl:end "2017-08-11T09:00:00-04:00"^^xsd:dateTime ] . + +:sleep-0812 a event:Event ; + rdfs:label "Sleep at Collège de Maisonneuve in Montreal"@en ; + dcterms:subject :journey-both ; + event:based_near + dbpedia:Collège_de_Maisonneuve ; + event:time [ a tl:Interval ; + tl:onTimeLine ; + tl:start "2017-08-12T00:00:00-04:00"^^xsd:dateTime ; + tl:end "2017-08-12T09:00:00-04:00"^^xsd:dateTime ] . + +:sleep-0813 a event:Event ; + rdfs:label "Sleep at Collège de Maisonneuve in Montreal"@en ; + dcterms:subject :journey-both ; + event:based_near + dbpedia:Collège_de_Maisonneuve ; + event:time [ a tl:Interval ; + tl:onTimeLine ; + tl:start "2017-08-13T00:00:00-04:00"^^xsd:dateTime ; + tl:end "2017-08-13T09:00:00-04:00"^^xsd:dateTime ] . + +:ride-montreal-orø a event:Event ; + rdfs:label "flight+train+ferry Montreal→Orø"@en ; + dcterms:subject :journey-both ; + event:time [ a tl:Interval ; + tl:onTimeLine ; + tl:start "2017-08-13T17:50:00-04:00"^^xsd:dateTime ; + tl:end "2017-08-09T20:30:00+02:00"^^xsd:dateTime ] . + +:departure-montreal a event:Event ; + rdfs:label "Departure from Montréal–Pierre Elliott Trudeau International Airport"@en ; + dcterms:subject :journey-both ; + event:based_near dbpedia:Montreal-Trudeau_International_Airport ; + event:time [ a tl:Interval ; + tl:onTimeLine ; + tl:start "2017-08-13T17:50:00-04:00"^^xsd:dateTime ; + tl:end "2017-08-13T19:50:00-04:00"^^xsd:dateTime ] . + +:flight-montreal-reykjavik a tio:Flight ; + tio:flightNo "WW252" ; + tio:operatedBy :org-wowair ; + tio:from [ a tio:Stop ; + tio:at :airport-montreal ; + tio:departs "2017-08-13T19:50:00-04:00"^^xsd:dateTime ] ; + tio:to [ a tio:Stop ; + tio:at :airport-reykjavik ; + tio:arrives "2017-08-14T05:00:00+00:00"^^xsd:dateTime ] . + +:sleep-0814 a event:Event ; + rdfs:label "Sleep during flight towards Iceland"@en ; + dcterms:subject :journey-both ; + event:based_near + dbpedia:Canada , + dbpedia:Atlantic_Ocean , + dbpedia:Iceland ; + event:time [ a tl:Interval ; + tl:onTimeLine ; + tl:start "2017-08-14T00:00:00+00:00"^^xsd:dateTime ; + tl:end "2017-08-14T04:30:00+00:00"^^xsd:dateTime ] . + +:flight-reykjavik-copenhagen a tio:Flight ; + tio:flightNo "WW902" ; + tio:operatedBy :org-wowair ; + tio:from [ a tio:Stop ; + tio:at :airport-reykjavik ; + tio:departs "2017-08-14T06:30:00+00:00"^^xsd:dateTime ] ; + tio:to [ a tio:Stop ; + tio:at :airport-copenhagen ; + tio:arrives "2017-08-14T11:45:00+02:00"^^xsd:dateTime ] . + +:arrival-copenhagen a event:Event ; + rdfs:label "Arrival at Copenhagen Airport"@en ; + dcterms:subject :journey-both ; + event:based_near dbpedia:Copenhagen_Airport ; + event:time [ a tl:Interval ; + tl:onTimeLine ; + tl:start "2017-08-14T11:45:00+02:00"^^xsd:dateTime ; + tl:end "2017-08-14T12:45:00+02:00"^^xsd:dateTime ] . + +:offer-copenhagen-airport-holbæk a gr:Offering ; + gr:hasBusinessFunction gr:Sell ; +# grx:hasPrice "99"^^unit:DanishKrone ; + gr:includes :ticket-copenhagen-airport-holbæk . + +:ticket-copenhagen-airport-holbæk a tio:Ticket ; + tio:scope [ a tio:scopeOfAccess ; + tio:eligibleServiceLevel tio:Economy ; + tiox:participants "2"^^unit:Person ; + tio:accessTo + :train-copenhagen-airport-copenhagen , + :train-copenhagen-holbæk ] . + +:train-copenhagen-airport-copenhagen a rail:Train ; + rdfs:label "IC 149"@en ; + tio:operatedBy :org-dsb ; + tio:from [ a tio:Stop ; + tio:departs "2017-08-14T12:38:00+02:00"^^xsd:dateTime ; + tio:at rail-dk:station-copenhagen-airport ] ; + tio:to [ a tio:Stop ; + tio:arrives "2017-08-14T12:51:00+02:00"^^xsd:dateTime ; + tio:at rail-dk:station-copenhagen ] . + +:train-copenhagen-holbæk a rail:Train ; + rdfs:label "Re 4549"@en ; + tio:operatedBy :org-dsb ; + tio:from [ a tio:Stop ; + tio:departs "2017-08-14T13:57:00+02:00"^^xsd:dateTime ; + tio:at rail-dk:station-copenhagen ] ; + tio:to [ a tio:Stop ; + tio:arrives "2017-08-14T13:55:00+02:00"^^xsd:dateTime ; + tio:at rail-dk:station-holbæk ] . + +:ferry-holbæk-orø a travel:Ferry ; + rdfs:label "Orøfærgen"@en ; + tio:operatedBy :org-orøfærgen ; + tio:from [ a tio:Stop ; + tio:departs "2017-08-14T14:30:00+02:00"^^xsd:dateTime ; + tio:at :harbour-holbæk ] ; + tio:to [ a tio:Stop ; + tio:arrives "2017-08-14T15:00:00+02:00"^^xsd:dateTime ; + tio:at :harbour-orø ] . + + a tl:Timeline ; + rdfs:title "FLOSS events jointly involving Siri and Jonas"@en ; + event:agent :person-jonas, :person-siri . + +:journey-both a skos:Concept ; + skos:prefLabel "Siri and Jonas journey"@en . + +:journey-jonas a skos:Concept ; + skos:prefLabel "Jonas journey"@en . + +:journey-siri a skos:Concept ; + skos:prefLabel "Siri journey"@en . + +:org-wowair a gr:BusinessEntity ; + foaf:name "WOW air" ; + foaf:Homepage ; + transit:iataCode "WW" ; + owl:sameAs dbpedia:WOW_air . + +:person-jonas a foaf:Person ; + foaf:name "Jonas Smedegaard" ; + foaf:mbox ; + foaf:Homepage ; + owl:sameAs . + +:person-siri a foaf:Person ; + foaf:name "Siri Reiter" ; + foaf:mbox ; + foaf:Homepage ; + owl:sameAs + , + . -- cgit v1.2.3