@prefix schema: .
@prefix xsd: .
@prefix rr: .
@prefix rml: .
@prefix ql: .
@prefix rdfs: .
@prefix dcterms: .
@prefix ex: .
<#InvoiceLine>
rml:logicalSource [
rml:source "https://raw.githubusercontent.com/w3c/csvw/gh-pages/examples/tests/scenarios/chinook/csv/InvoiceLine.csv";
rml:referenceFormulation ql:CSV
];
rr:subjectMap [
rr:template "http://example.com/invoiceline/{InvoiceLineId}";
];
rr:predicateObjectMap [
rr:predicate dcterms:identifier;
rr:objectMap [
rml:reference "InvoiceLineId"
]
];
rr:predicateObjectMap [
rr:predicate ex:invoice;
rr:objectMap [
rr:parentTriplesMap <#Invoice>;
rr:joinCondition [
rr:child "InvoiceId" ;
rr:parent "InvoiceId"
]
]
];
rr:predicateObjectMap [
rr:predicate ex:track;
rr:objectMap [
rr:parentTriplesMap <#Track>;
rr:joinCondition [
rr:child "TrackId" ;
rr:parent "TrackId"
]
]
];
rr:predicateObjectMap [
rr:predicate schema:priceSpecification;
rr:objectMap [
rr:parentTriplesMap <#Price>;
]
].
<#Price>
rml:logicalSource [
rml:source "https://raw.githubusercontent.com/w3c/csvw/gh-pages/examples/tests/scenarios/chinook/csv/InvoiceLine.csv";
rml:referenceFormulation ql:CSV
];
rr:subjectMap [
rr:template "http://example.com/price/{UnitPrice}";
rr:class schema:PriceSpecification;
];
rr:predicateObjectMap [
rr:predicate schema:price;
rr:objectMap [
rml:reference "UnitPrice"
]
];
rr:predicateObjectMap [
rr:predicate ex:quantity;
rr:objectMap [
rml:reference "Quantity"
]
].
<#Invoice>
rml:logicalSource [
rml:source "https://raw.githubusercontent.com/w3c/csvw/gh-pages/examples/tests/scenarios/chinook/csv/Invoice.csv";
rml:referenceFormulation ql:CSV
];
rr:subjectMap [
rr:template "http://example.com/invoice/{InvoiceId}";
];
rr:predicateObjectMap [
rr:predicate dcterms:identifier;
rr:objectMap [
rml:reference "InvoiceId"
]
];
rr:predicateObjectMap [
rr:predicate schema:customer;
rr:objectMap [
rr:parentTriplesMap <#Customer>;
rr:joinCondition [
rr:child "CustomerId" ;
rr:parent "CustomerId"
]
]
];
rr:predicateObjectMap [
rr:predicate ex:invoiceDate;
rr:objectMap [
rml:reference "InvoiceDate";
rr:datatype xsd:dateTime
]
];
rr:predicateObjectMap [
rr:predicate schema:billingAddress;
rr:objectMap [
rr:parentTriplesMap <#BillingAddress>;
]
];
rr:predicateObjectMap [
rr:predicate ex:total;
rr:objectMap [
rml:reference "Total";
rr:datatype xsd:decimal
]
].
<#BillingAddress>
rml:logicalSource [
rml:source "https://raw.githubusercontent.com/w3c/csvw/gh-pages/examples/tests/scenarios/chinook/csv/Invoice.csv";
rml:referenceFormulation ql:CSV
];
rr:subjectMap [
rr:template "http://example.com/address/{BillingAddress}_{BillingCity}_{BillingPostalCode}_{BillingCountry}";
rr:class schema:PostalAddress
];
rr:predicateObjectMap [
rr:predicate schema:streetAddress;
rr:objectMap [
rml:reference "BillingAddress"
]
];
rr:predicateObjectMap [
rr:predicate schema:addressLocality;
rr:objectMap [
rml:reference "BillingCity"
]
];
rr:predicateObjectMap [
rr:predicate schema:addressRegion;
rr:objectMap [
rml:reference "BillingState"
]
];
rr:predicateObjectMap [
rr:predicate schema:addressCountry;
rr:objectMap [
rml:reference "BillingCountry"
]
];
rr:predicateObjectMap [
rr:predicate schema:postalCode;
rr:objectMap [
rml:reference "BillingPostalCode"
]
].
<#Customer>
rml:logicalSource [
rml:source "https://raw.githubusercontent.com/w3c/csvw/gh-pages/examples/tests/scenarios/chinook/csv/Customer.csv";
rml:referenceFormulation ql:CSV
];
rr:subjectMap [
rr:template "http://example.com/customer/{CustomerId}";
rr:class schema:Person
];
rr:predicateObjectMap [
rr:predicate dcterms:identifier;
rr:objectMap [
rml:reference "CustomerId"
]
];
rr:predicateObjectMap [
rr:predicate schema:familyName;
rr:objectMap [
rml:reference "LastName"
]
];
rr:predicateObjectMap [
rr:predicate schema:givenName;
rr:objectMap [
rml:reference "FirstName"
]
];
rr:predicateObjectMap [
rr:predicate schema:address;
rr:objectMap [
rr:parentTriplesMap <#CustomerAddress>;
]
].
<#CustomerAddress>
rml:logicalSource [
rml:source "https://raw.githubusercontent.com/w3c/csvw/gh-pages/examples/tests/scenarios/chinook/csv/Customer.csv";
rml:referenceFormulation ql:CSV
];
rr:subjectMap [
rr:template "http://example.com/address/{Address}_{City}_{PostalCode}_{Country}";
rr:predicate schema:streetAdress;
rr:objectMap [
rr:class schema:PostalAddress
];
rr:predicateObjectMap [
rr:predicate schema:streetAddress;
rr:objectMap [
rml:reference "Address"
]
];
rr:predicateObjectMap [
rr:predicate schema:addressLocality;
rr:objectMap [
rml:reference "City"
]
];
rr:predicateObjectMap [
rr:predicate schema:addressRegion;
rr:objectMap [
rml:reference "State"
]
];
rr:predicateObjectMap [
rr:predicate schema:addressCountry;
rr:objectMap [
rml:reference "Country"
]
];
rr:predicateObjectMap [
rr:predicate schema:postalCode;
rr:objectMap [
rml:reference "PostalCode"
]
];
rr:predicateObjectMap [
rr:predicate schema:telephone;
rr:objectMap [
rml:reference "Phone"
]
];
rr:predicateObjectMap [
rr:predicate schema:faxNumber;
rr:objectMap [
rml:reference "Fax"
]
];
rr:predicateObjectMap [
rr:predicate schema:email;
rr:objectMap [
rml:reference "Email"
]
].
<#Playlist>
rml:logicalSource [
rml:source "https://raw.githubusercontent.com/w3c/csvw/gh-pages/examples/tests/scenarios/chinook/csv/Playlist.csv";
rml:referenceFormulation ql:CSV
];
rr:subjectMap [
rr:template "http://example.com/playlist/{PlaylistId}";
rr:class schema:MusicPlaylist;
];
rr:predicateObjectMap [
rr:predicate dcterms:identifier;
rr:objectMap [
rml:reference "PlaylistId"
]
];
rr:predicateObjectMap [
rr:predicate schema:name;
rr:objectMap [
rml:reference "Name"
]
].
<#PlaylistTrack>
rml:logicalSource [
rml:source "https://raw.githubusercontent.com/w3c/csvw/gh-pages/examples/tests/scenarios/chinook/csv/PlaylistTrack.csv";
rml:referenceFormulation ql:CSV
];
rr:subjectMap [
rr:template "http://example.com/playlist/{PlaylistId}";
];
rr:predicateObjectMap [
rr:predicate schema:track;
rr:objectMap [
rr:parentTriplesMap <#Track>;
rr:joinCondition [
rr:child "TrackId" ;
rr:parent "TrackId"
]
]
].
<#Track>
rml:logicalSource [
rml:source "https://raw.githubusercontent.com/w3c/csvw/gh-pages/examples/tests/scenarios/chinook/csv/Track.csv";
rml:referenceFormulation ql:CSV
];
rr:subjectMap [
rr:template "http://example.com/track/{TrackId}";
rr:class schema:MusicRecording;
];
rr:predicateObjectMap [
rr:predicate dcterms:identifier;
rr:objectMap [
rml:reference "TrackId"
]
];
rr:predicateObjectMap [
rr:predicate schema:name;
rr:objectMap [
rml:reference "Name"
]
];
rr:predicateObjectMap [
rr:predicate schema:inAlbum;
rr:objectMap [
rr:parentTriplesMap <#Album>;
rr:joinCondition [
rr:child "AlbumId" ;
rr:parent "AlbumId"
]
]
];
rr:predicateObjectMap [
rr:predicate schema:associatedMedia;
rr:objectMap [
rr:parentTriplesMap <#MediaType>;
rr:joinCondition [
rr:child "MediaTypeId" ;
rr:parent "MediaTypeId"
]
]
];
rr:predicateObjectMap [
rr:predicate schema:genre;
rr:objectMap [
rr:parentTriplesMap <#Genre>;
rr:joinCondition [
rr:child "GenreId" ;
rr:parent "GenreId"
]
]
];
rr:predicateObjectMap [
rr:predicate schema:recordingOf;
rr:objectMap [
rr:parentTriplesMap <#Composer>
]
];
rr:predicateObjectMap [
rr:predicate schema:duration;
rr:objectMap [
rr:parentTriplesMap <#Duration>
]
];
rr:predicateObjectMap [
rr:predicate schema:priceSpecification;
rr:objectMap [
rr:parentTriplesMap <#TrackPrice>;
]
].
<#TrackPrice>
rml:logicalSource [
rml:source "https://raw.githubusercontent.com/w3c/csvw/gh-pages/examples/tests/scenarios/chinook/csv/Track.csv";
rml:referenceFormulation ql:CSV
];
rr:subjectMap [
rr:template "http://example.com/price/{UnitPrice}";
rr:class schema:PriceSpecification;
];
rr:predicateObjectMap [
rr:predicate schema:price;
rr:objectMap [
rml:reference "UnitPrice"
]
].
<#Composer>
rml:logicalSource [
rml:source "https://raw.githubusercontent.com/w3c/csvw/gh-pages/examples/tests/scenarios/chinook/csv/Track.csv";
rml:referenceFormulation ql:CSV
];
rr:subjectMap [
rr:template "http://example.com/composer/{Composer}";
rr:class schema:MusicComposition;
].
<#Duration>
rml:logicalSource [
rml:source "https://raw.githubusercontent.com/w3c/csvw/gh-pages/examples/tests/scenarios/chinook/csv/Track.csv";
rml:referenceFormulation ql:CSV
];
rr:subjectMap [
rr:template "http://example.com/duration/{Milliseconds}";
rr:class schema:Duration;
];
rr:predicateObjectMap [
rr:predicate schema:name;
rr:objectMap [
rml:reference "Milliseconds"
]
].
<#Album>
rml:logicalSource [
rml:source "https://raw.githubusercontent.com/w3c/csvw/gh-pages/examples/tests/scenarios/chinook/csv/Album.csv";
rml:referenceFormulation ql:CSV
];
rr:subjectMap [
rr:template "http://example.com/album/{AlbumId}";
rr:class schema:MusicAlbum;
];
rr:predicateObjectMap [
rr:predicate dcterms:identifier;
rr:objectMap [
rml:reference "AlbumId"
]
];
rr:predicateObjectMap [
rr:predicate schema:name;
rr:objectMap [
rml:reference "Title"
]
];
rr:predicateObjectMap [
rr:predicate schema:byArtist;
rr:objectMap [
rr:parentTriplesMap <#Artist>;
rr:joinCondition [
rr:child "ArtistId" ;
rr:parent "ArtistId"
]
]
].
<#Artist>
rml:logicalSource [
rml:source "https://raw.githubusercontent.com/w3c/csvw/gh-pages/examples/tests/scenarios/chinook/csv/Artist.csv";
rml:referenceFormulation ql:CSV
];
rr:subjectMap [
rr:template "http://example.com/artist/{ArtistId}";
rr:class schema:MusicGroup;
];
rr:predicateObjectMap [
rr:predicate dcterms:identifier;
rr:objectMap [
rml:reference "ArtistId"
]
];
rr:predicateObjectMap [
rr:predicate rdfs:label;
rr:objectMap [
rml:reference "Name"
]
].
<#MediaType>
rml:logicalSource [
rml:source "https://raw.githubusercontent.com/w3c/csvw/gh-pages/examples/tests/scenarios/chinook/csv/MediaType.csv";
rml:referenceFormulation ql:CSV
];
rr:subjectMap [
rr:template "http://example.com/mediatype/{MediaTypeId}";
rr:class schema:MusicObject;
];
rr:predicateObjectMap [
rr:predicate dcterms:identifier;
rr:objectMap [
rml:reference "MediaTypeId"
]
];
rr:predicateObjectMap [
rr:predicate schema:name;
rr:objectMap [
rml:reference "Name"
]
].
<#Genre>
rml:logicalSource [
rml:source "https://raw.githubusercontent.com/w3c/csvw/gh-pages/examples/tests/scenarios/chinook/csv/Genre.csv";
rml:referenceFormulation ql:CSV
];
rr:subjectMap [
rr:template "http://example.com/genre/{GenreId}";
rr:class schema:MusicGroup;
];
rr:predicateObjectMap [
rr:predicate dcterms:identifier;
rr:objectMap [
rml:reference "GenreId"
]
];
rr:predicateObjectMap [
rr:predicate schema:name;
rr:objectMap [
rml:reference "Name"
]
].
<#Employee>
rml:logicalSource [
rml:source "https://raw.githubusercontent.com/w3c/csvw/gh-pages/examples/tests/scenarios/chinook/csv/Employee.csv";
rml:referenceFormulation ql:CSV
];
rr:subjectMap [
rr:template "http://example.com/employee/{EmployeeId}";
rr:class schema:Person
];
rr:predicateObjectMap [
rr:predicate schema:familyName;
rr:objectMap [
rml:reference "LastName"
]
];
rr:predicateObjectMap [
rr:predicate schema:givenName;
rr:objectMap [
rml:reference "FirstName"
]
];
rr:predicateObjectMap [
rr:predicate ex:reportsTo;
rr:objectMap [
rml:reference "ReportsTo"
]
];
rr:predicateObjectMap [
rr:predicate schema:birthDate;
rr:objectMap [
rml:reference "BirthDate"
]
];
rr:predicateObjectMap [
rr:predicate schema:address;
rr:objectMap [
rr:parentTriplesMap <#EmployeeAddress>;
]
].
<#EmployeeAddress>
rml:logicalSource [
rml:source "https://raw.githubusercontent.com/w3c/csvw/gh-pages/examples/tests/scenarios/chinook/csv/Employee.csv";
rml:referenceFormulation ql:CSV
];
rr:subjectMap [
rr:template "http://example.com/address/{Address}_{City}_{PostalCode}_{Country}" ;
rr:class schema:PostalAddress
];
rr:predicateObjectMap [
rr:predicate schema:streetAddress;
rr:objectMap [
rml:reference "Address"
]
];
rr:predicateObjectMap [
rr:predicate schema:addressLocality;
rr:objectMap [
rml:reference "City"
]
];
rr:predicateObjectMap [
rr:predicate schema:addressRegion;
rr:objectMap [
rml:reference "State"
]
];
rr:predicateObjectMap [
rr:predicate schema:addressCountry;
rr:objectMap [
rml:reference "Country"
]
];
rr:predicateObjectMap [
rr:predicate schema:postalCode;
rr:objectMap [
rml:reference "PostalCode"
]
];
rr:predicateObjectMap [
rr:predicate schema:telephone;
rr:objectMap [
rml:reference "Phone"
]
];
rr:predicateObjectMap [
rr:predicate schema:faxNumber;
rr:objectMap [
rml:reference "Fax"
]
];
rr:predicateObjectMap [
rr:predicate schema:email;
rr:objectMap [
rml:reference "Email"
]
].