Π‘Π°Π»ΡΡ, Ρ
Π°Π±ΡΠΎΠ²ΡΠ°Π½Π΅. Π ΠΏΡΠ΅Π΄Π΄Π²Π΅ΡΠΈΠΈ ΡΡΠ°ΡΡΠ° ΠΊΡΡΡΠ°
ΠΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ
ΡΠ·ΠΊΠ΅ΠΉΡΠ°Ρ
, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ, ΠΊΠ°ΠΊ
ΠΠ»Ρ ΡΠ΅Π³ΠΎ Π½Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΠ»ΡΡ Amazon Neptune
ΠΡΠ°ΡΠΎΠ²ΡΠ΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
ΠΎΠ±Π΅ΡΠ°ΡΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π½Π°Π±ΠΎΡΡ Π΄Π°Π½Π½ΡΡ
Ρ Π²ΡΡΠΎΠΊΠΎΠΉ ΡΠ²ΡΠ·Π½ΠΎΡΡΡΡ Π»ΡΡΡΠ΅, ΡΠ΅ΠΌ ΠΈΡ
ΡΠ΅Π»ΡΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΡ. Π ΡΠ°ΠΊΠΈΡ
Π½Π°Π±ΠΎΡΠ°Ρ
Π΄Π°Π½Π½ΡΡ
ΡΠ΅Π»Π΅Π²Π°Π½ΡΠ½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ±ΡΡΠ½ΠΎ Ρ
ΡΠ°Π½ΠΈΡΡΡ Π² ΡΠ²ΡΠ·ΡΡ
ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ. ΠΠ»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Neptune ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΡΠ΄ΠΈΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ Ρ ΠΎΡΠΊΡΡΡΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ
ΠΠ°Π±ΠΎΡ Π΄Π°Π½Π½ΡΡ MusicBrainz ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π² Π²ΠΈΠ΄Π΅ Π΄Π°ΠΌΠΏΠ° CSV ΡΠ΅Π»ΡΡΠΈΠΎΠ½Π½ΠΎΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ . ΠΡΠ΅Π³ΠΎ Π΄Π°ΠΌΠΏ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΎΠΊΠΎΠ»ΠΎ 93 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² ΡΡΡΠΎΠΊ Π² 157 ΡΠ°Π±Π»ΠΈΡΠ°Ρ . Π ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· ΡΡΠΈΡ ΡΠ°Π±Π»ΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΠΈ, ΡΠΎΠ±ΡΡΠΈΡ, Π·Π°ΠΏΠΈΡΠΈ, ΡΠ΅Π»ΠΈΠ·Ρ ΠΈΠ»ΠΈ ΡΡΠ΅ΠΊΠΈ, Π΄ΡΡΠ³ΠΈΠ΅ β ΡΠ°Π±Π»ΠΈΡΡ ΡΠ²ΡΠ·Π΅ΠΉ β Ρ ΡΠ°Π½ΡΡ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠΌΠΈ ΠΈ Π·Π°ΠΏΠΈΡΡΠΌΠΈ, Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠΌΠΈ ΠΈΠ»ΠΈ ΡΠ΅Π»ΠΈΠ·Π°ΠΌΠΈ ΠΈ Ρ.Π΄β¦ ΠΠ½ΠΈ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΡΡ Π³ΡΠ°ΡΠΎΠ²ΡΡ ΡΡΡΡΠΊΡΡΡΡ Π½Π°Π±ΠΎΡΠ° Π΄Π°Π½Π½ΡΡ . ΠΡΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠΈ Π½Π°Π±ΠΎΡΠ° Π΄Π°Π½Π½ΡΡ Π² RDF-ΡΡΠΎΠΉΠΊΠΈ ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ 500 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ².
ΠΡΠ½ΠΎΠ²ΡΠ²Π°ΡΡΡ Π½Π° ΠΎΠΏΡΡΠ΅ ΠΈ Π²ΠΏΠ΅ΡΠ°ΡΠ»Π΅Π½ΠΈΡΡ ΠΎΡ ΠΏΠ°ΡΡΠ½Π΅ΡΠΎΠ² ΠΏΡΠΎΠ΅ΠΊΡΠ°, Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΌΡ ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ, ΠΌΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅ΠΌ ΡΠ΅ΡΡΠΈΠ½Π³, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΡΠ° Π±Π°Π·Π° Π·Π½Π°Π½ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΌΡ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌ, ΡΡΠΎ ΠΎΠ½Π° Π±ΡΠ΄Π΅Ρ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΡΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π½ΠΎΠ²ΡΡ ΡΠ΅Π»ΠΈΠ·ΠΎΠ² ΠΈΠ»ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠΎΠ² Π³ΡΡΠΏΠΏ.
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ°
ΠΠ°ΠΊ ΠΈ ΠΎΠΆΠΈΠ΄Π°Π»ΠΎΡΡ, ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Amazon Neptune ΠΏΡΠΎΡΡΠ°. ΠΠ½Π° Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ
Π‘ΠΊΡΠΈΠ½ΡΠΎΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π΄Π»Ρ Π³ΡΡΠΏΠΏ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²
Amazon ΡΡΠ²Π΅ΡΠΆΠ΄Π°Π΅Ρ, ΡΡΠΎ Neptune ΡΠΎΠΊΡΡΠΈΡΡΠ΅ΡΡΡ Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΎΠ½Π½ΡΡ
ΡΠ°Π±ΠΎΡΠΈΡ
Π½Π°Π³ΡΡΠ·ΠΊΠ°Ρ
Ρ Π½ΠΈΠ·ΠΊΠΎΠΉ Π·Π°Π΄Π΅ΡΠΆΠΊΠΎΠΉ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π²ΡΠ΅ΠΌΡ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ Π·Π°ΠΏΡΠΎΡΠ° ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ 120 ΡΠ΅ΠΊΡΠ½Π΄. ΠΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ, ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π»ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π°Π½Π°Π»ΠΈΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΡΠ·ΠΊΠ΅ΠΉΡΠΎΠ², Π² ΠΊΠΎΡΠΎΡΡΡ
ΠΌΡ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎ Π΄ΠΎΡΡΠΈΠ³Π°Π»ΠΈ ΡΡΠΎΠ³ΠΎ Π»ΠΈΠΌΠΈΡΠ°. ΠΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ, ΡΠΎΠ·Π΄Π°Π² Π½ΠΎΠ²ΡΡ Π³ΡΡΠΏΠΏΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π΄Π»Ρ Neptune ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ² Π΄Π»Ρ neptune_query_timeout
ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅.
ΠΠ°Π³ΡΡΠ·ΠΊΠ° Π΄Π°Π½Π½ΡΡ
ΠΠΈΠΆΠ΅ ΠΌΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΎΠ±ΡΡΠ΄ΠΈΠΌ, ΠΊΠ°ΠΊ ΠΌΡ Π·Π°Π³ΡΡΠΆΠ°Π»ΠΈ Π΄Π°Π½Π½ΡΠ΅ MusicBrainz Π² Neptune.
ΠΡΠ½ΠΎΡΠ΅Π½ΠΈΡ Π² ΡΡΠΎΠΉΠΊΠΈ
ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , ΠΌΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π»ΠΈ Π΄Π°Π½Π½ΡΠ΅ MusicBrainz Π² RDF-ΡΡΠΎΠΉΠΊΠΈ. ΠΠΎΡΡΠΎΠΌΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΡ ΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ»ΠΈ ΡΠ°Π±Π»ΠΎΠ½, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΠΊΠ°ΠΊ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΡΠΎΠ»Π±Π΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ Π² ΡΡΠΎΠΉΠΊΠ΅. Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΊΠ°ΠΆΠ΄Π°Ρ ΡΡΡΠΎΠΊΠ° ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π΅ΠΉ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π° Ρ Π΄Π²Π΅Π½Π°Π΄ΡΠ°ΡΡΡ RDF-ΡΡΠΎΠΉΠΊΠ°ΠΌΠΈ.
<http://musicbrainz.foo/artist/${id}> <http://musicbrainz.foo/gid> "${gid}"^^<http://www.w3.org/2001/XMLSchema#string> .
<http://musicbrainz.foo/artist/${id}> <http://musicbrainz.foo/name> "${name}"^^<http://www.w3.org/2001/XMLSchema#string> .
<http://musicbrainz.foo/artist/${id}> <http://musicbrainz.foo/sort-name> "${sort_name}"^^<http://www.w3.org/2001/XMLSchema#string> .
<http://musicbrainz.foo/artist/${id}> <http://musicbrainz.foo/begin-date> "${begin_date_year}-${begin_date_month}-${begin_date_day}"^^xsd:<http://www.w3.org/2001/XMLSchema#date> .
<http://musicbrainz.foo/artist/${id}> <http://musicbrainz.foo/end-date> "${end_date_year}-${end_date_month}-${end_date_day}"^^xsd:<http://www.w3.org/2001/XMLSchema#date> .
<http://musicbrainz.foo/artist/${id}> <http://musicbrainz.foo/type> <http://musicbrainz.foo/artist-type/${type}> .
<http://musicbrainz.foo/artist/${id}> <http://musicbrainz.foo/area> <http://musicbrainz.foo/area/${area}> .
<http://musicbrainz.foo/artist/${id}> <http://musicbrainz.foo/gender> <http://musicbrainz.foo/gender/${gender}> .
<http://musicbrainz.foo/artist/${id}> <http://musicbrainz.foo/comment> "${comment}"^^<http://www.w3.org/2001/XMLSchema#string> .
<http://musicbrainz.foo/artist/${id}> <http://musicbrainz.foo/edits-pending> "${edits_pending}"^^<http://www.w3.org/2001/XMLSchema#int> .
<http://musicbrainz.foo/artist/${id}> <http://musicbrainz.foo/last-updated> "${last_updated}"^^<http://www.w3.org/2001/XMLSchema#dateTime> .
<http://musicbrainz.foo/artist/${id}> <http://musicbrainz.foo/ended> "${ended}"^^<http://www.w3.org/2001/XMLSchema#boolean> .
ΠΠ°ΡΡΠΎΠ²Π°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ°
ΠΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌΡΠΉ ΡΠΏΠΎΡΠΎΠ± Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π±ΠΎΠ»ΡΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΌΠΎΠ² Π΄Π°Π½Π½ΡΡ Π² Neptune β ΡΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡ ΠΌΠ°ΡΡΠΎΠ²ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠ΅ΡΠ΅Π· S3. ΠΠΎΡΠ»Π΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π²Π°ΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΡΠΎΠ΅ΠΊ Π½Π° S3 Π²Ρ Π½Π°ΡΠΈΠ½Π°Π΅ΡΠ΅ Π·Π°Π³ΡΡΠ·ΠΊΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ POST-Π·Π°ΠΏΡΠΎΡΠ°. Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎ Π·Π°Π½ΡΠ»ΠΎ ΠΎΠΊΠΎΠ»ΠΎ 24 ΡΠ°ΡΠΎΠ² Π΄Π»Ρ 500 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² ΡΡΠΎΠ΅ΠΊ. ΠΡ ΠΎΠΆΠΈΠ΄Π°Π»ΠΈ, ΡΡΠΎ Π±ΡΠ΄Π΅Ρ Π±ΡΡΡΡΠ΅Π΅.
curl -X POST -H 'Content-Type: application/json' http://your-neptune-cluster:8182/loader -d '{
"source" : "s3://your-s3-bucket",
"format" : "ntriples",
"iamRoleArn" : "arn:aws:iam::your-iam-user:role/NeptuneLoadFromS3",
"region" : "eu-west-1",
"failOnError" : "FALSE"
}'
Π§ΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΡΡΠΎΠ³ΠΎ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° ΠΌΡ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ Neptune, ΠΌΡ ΡΠ΅ΡΠΈΠ»ΠΈ Π²ΠΎΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΠΈΠ½ΡΡΠ°Π½Ρ ΠΈΠ· ΡΠ½Π°ΠΏΡΠΎΡΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΡΠΈ ΡΡΠΎΠΉΠΊΠΈ ΡΠΆΠ΅ Π·Π°Π³ΡΡΠΆΠ΅Π½Ρ. ΠΠ°ΠΏΡΡΠΊ ΡΠΎ ΡΠ½Π°ΠΏΡΠΎΡΠ° ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π±ΡΡΡΡΠ΅Π΅, Π½ΠΎ Π²ΡΠ΅ Π΅ΡΠ΅ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΠΎΠΊΠΎΠ»ΠΎ ΡΠ°ΡΠ°, ΠΏΠΎΠΊΠ° Neptune Π½Π΅ ΡΡΠ°Π½Π΅Ρ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π΄Π»Ρ Π·Π°ΠΏΡΠΎΡΠΎΠ².
ΠΡΠΈ ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ ΡΡΠΎΠ΅ΠΊ Π² Neptune, ΠΌΡ ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΠΈΡΡ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌΠΈ.
{
"errorCode" : "PARSING_ERROR",
"errorMessage" : "Content after '.' is not allowed",
"fileName" : [...],
"recordNum" : 25
}
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π½ΠΈΡ Π±ΡΠ»ΠΈ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌΠΈ ΠΏΠ°ΡΡΠΈΠ½Π³Π°, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π²ΡΡΠ΅. ΠΠ° ΡΠ΅Π³ΠΎΠ΄Π½ΡΡΠ½ΠΈΠΉ Π΄Π΅Π½Ρ ΠΌΡ Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ Π½Π΅ Π²ΡΡΡΠ½ΠΈΠ»ΠΈ, ΡΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΡΠ»ΠΎ Π½Π΅ ΡΠ°ΠΊ Π² ΡΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ. ΠΠ΅ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»ΡΡΠ΅ Π΄Π΅ΡΠ°Π»Π΅ΠΉ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎ ΠΏΠΎΠΌΠΎΠ³Π»ΠΈ Π±Ρ Π·Π΄Π΅ΡΡ. ΠΡΠ° ΠΎΡΠΈΠ±ΠΊΠ° ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»Π° ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ Π΄Π»Ρ 1% Π²ΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ ΡΡΠΎΠ΅ΠΊ. ΠΠΎ, ΡΡΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Neptune, ΠΌΡ ΠΏΡΠΈΠ½ΡΠ»ΠΈ ΡΠΎΡ ΡΠ°ΠΊΡ, ΡΡΠΎ ΠΌΡ ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ ΡΠΎΠ»ΡΠΊΠΎ Ρ 99% ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΈΠ· MusicBrainz.
ΠΠ°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΡΡΠΎ Π½Π΅ ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΡΠ΄Π° Π΄Π»Ρ Π»ΡΠ΄Π΅ΠΉ, Π·Π½Π°ΠΊΠΎΠΌΡΡ Ρ SPARQL, ΠΈΠΌΠ΅ΠΉΡΠ΅ Π² Π²ΠΈΠ΄Ρ, ΡΡΠΎ RDF-ΡΡΠΎΠΉΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π°Π½Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½Ρ Ρ ΡΠ²Π½ΡΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ , ΡΡΠΎ ΠΎΠΏΡΡΡ-ΡΠ°ΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ.
ΠΠΎΡΠΎΠΊΠΎΠ²Π°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ°
ΠΠ°ΠΊ ΡΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡ Π²ΡΡΠ΅, ΠΌΡ Π½Π΅ Ρ ΠΎΡΠΈΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Neptune Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° Π΄Π°Π½Π½ΡΡ , Π° ΡΠΊΠΎΡΠ΅Π΅ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π³ΠΈΠ±ΠΊΠΎΠΉ ΠΈ ΡΠ°Π·Π²ΠΈΠ²Π°ΡΡΠ΅ΠΉΡΡ Π±Π°Π·Ρ Π·Π½Π°Π½ΠΈΠΉ. ΠΠΎΡΡΠΎΠΌΡ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π½Π°ΠΉΡΠΈ ΡΠΏΠΎΡΠΎΠ±Ρ Π²Π²ΠΎΠ΄Π° Π½ΠΎΠ²ΡΡ ΡΡΠΎΠ΅ΠΊ ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π±Π°Π·Ρ Π·Π½Π°Π½ΠΈΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠ±Π»ΠΈΠΊΡΠ΅ΡΡΡ Π½ΠΎΠ²ΡΠΉ Π°Π»ΡΠ±ΠΎΠΌ ΠΈΠ»ΠΈ ΠΊΠΎΠ³Π΄Π° ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΠ΅ Π·Π½Π°Π½ΠΈΡ.
Neptune ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ Π²Π²ΠΎΠ΄Π° ΡΠ΅ΡΠ΅Π· SPARQL-Π·Π°ΠΏΡΠΎΡΡ, ΠΊΠ°ΠΊ Ρ Π½Π΅ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ, ΡΠ°ΠΊ ΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π²ΡΠ±ΠΎΡΠΎΠΊ. ΠΠΈΠΆΠ΅ ΠΌΡ ΠΎΠ±ΡΡΠ΄ΠΈΠΌ ΠΎΠ±Π° ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π°.
ΠΠ΄Π½ΠΎΠΉ ΠΈΠ· Π½Π°ΡΠΈΡ ΡΠ΅Π»Π΅ΠΉ Π±ΡΠ»ΠΎ Π²Π²ΠΎΠ΄ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ Π² ΠΏΠΎΡΠΎΠΊΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ Π²ΡΠΏΡΡΠΊ Π°Π»ΡΠ±ΠΎΠΌΠ° Π² Π½ΠΎΠ²ΠΎΠΉ ΡΡΡΠ°Π½Π΅. Π‘ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ MusicBrainz ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π΄Π»Ρ Π²ΡΠΏΡΡΠΊΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ Π°Π»ΡΠ±ΠΎΠΌΡ, ΡΠΈΠ½Π³Π»Ρ, EP ΠΈ Ρ. Π΄., Π½ΠΎΠ²Π°Ρ Π·Π°ΠΏΠΈΡΡ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ Π² ΡΠ°Π±Π»ΠΈΡΡ release-country. Π RDF ΠΌΡ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌ ΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Ρ Π΄Π²ΡΠΌΡ Π½ΠΎΠ²ΡΠΌΠΈ ΡΡΠΎΠΉΠΊΠ°ΠΌΠΈ.
INSERT DATA { <http://musicbrainz.foo/release-country/737041> <http://musicbrainz.foo/release> <http://musicbrainz.foo/release/435759> };INSERT DATA { <http://musicbrainz.foo/release-country/737041> <http://musicbrainz.foo/date-year> "2018"^^<http://www.w3.org/2001/XMLSchema#int> };
ΠΡΡΠ³ΠΎΠΉ ΡΠ΅Π»ΡΡ Π±ΡΠ»ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π½ΠΎΠ²ΡΠ΅ Π·Π½Π°Π½ΠΈΡ ΠΈΠ· Π³ΡΠ°ΡΠ°. ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅Π»ΠΈΠ·ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π°ΡΡΠΈΡΡ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π» Π² ΡΠ²ΠΎΠ΅ΠΉ ΠΊΠ°ΡΡΠ΅ΡΠ΅. Π’Π°ΠΊΠΎΠΉ Π·Π°ΠΏΡΠΎΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ΅Π½ ΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ Π±ΠΎΠ»Π΅Π΅ 20 ΠΌΠΈΠ½ΡΡ Π² Neptune, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΈ Π½ΠΎΠ²ΡΠ΅ Π·Π½Π°Π½ΠΈΡ Π² ΠΊΠ°ΠΊΠΎΠΌ-ΡΠΎ Π΄ΡΡΠ³ΠΎΠΌ Π·Π°ΠΏΡΠΎΡΠ΅. ΠΠΎΡΡΠΎΠΌΡ ΠΌΡ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΡΡΠΎΠΉΠΊΠΈ Ρ ΡΡΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π² Π³ΡΠ°Ρ, Π²Π²ΠΎΠ΄Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΏΠΎΠ΄Π·Π°ΠΏΡΠΎΡΠ°.
INSERT {
?artist_credit <http://musicbrainz.foo/number-of-releases> ?number_of_releases
} WHERE {
SELECT ?artist_credit (COUNT(*) as ?number_of_releases)
WHERE {
?artist_credit <http://musicbrainz.foo/rdftype> <http://musicbrainz.foo/artist-credit> .
?release_group <http://musicbrainz.foo/artist-credit> ?artist_credit .
?release_group <http://musicbrainz.foo/rdftype> <http://musicbrainz.foo/release-group> .
?release_group <http://musicbrainz.foo/name> ?release_group_name .
}
GROUP BY ?artist_credit
}
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΠ΄ΠΈΠ½ΠΎΡΠ½ΡΡ ΡΡΠΎΠ΅ΠΊ Π² Π³ΡΠ°Ρ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄Π»Ρ Π²ΡΡΠ°Π²ΠΊΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΠΏΠΎΠ΄Π·Π°ΠΏΡΠΎΡΠ° Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΏΠΎΠ΄Π·Π°ΠΏΡΠΎΡΠ°.
ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΌΡ Π½Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈΡΡ ΡΡΠΈΠΌ ΡΠ°ΡΡΠΎ, Neptune ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ΄Π°Π»ΡΡΡ ΡΡΠΎΠΉΠΊΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π²ΡΠ±ΠΎΡΠΎΠΊ ΠΈΠ»ΠΈ ΡΠ²Π½ΡΡ Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ.
SPARQL-Π·Π°ΠΏΡΠΎΡΡ
ΠΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΡΡ ΠΏΠΎΠ΄Π²ΡΠ±ΠΎΡΠΊΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅Π»ΠΈΠ·ΠΎΠ² Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Ρ, ΠΌΡ ΡΠΆΠ΅ Π²Π²Π΅Π»ΠΈ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠΈΠΏ Π·Π°ΠΏΡΠΎΡΠ°, Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΠΎΡΠ²Π΅ΡΠΈΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Neptune. ΠΠΎΡΡΡΠΎΠΈΡΡ Π·Π°ΠΏΡΠΎΡ Π² Neptune Π½Π΅ΡΠ»ΠΎΠΆΠ½ΠΎ β ΠΎΡΠΏΡΠ°Π²ΡΡΠ΅ POST-Π·Π°ΠΏΡΠΎΡ Π² SPARQL-ΡΠ½Π΄ΠΏΠΎΠΈΠ½Ρ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅:
curl -X POST --data-binary 'query=SELECT ?artist ?p ?o where {?artist <http://musicbrainz.foo/name> "Elton John" . ?artist ?p ?o . }' http://your-neptune-cluster:8182/sparql
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΌΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π»ΠΈ Π·Π°ΠΏΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΏΡΠΎΡΠΈΠ»Ρ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π΅ΠΉ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΠΈΡ ΠΈΠΌΠ΅Π½ΠΈ, Π²ΠΎΠ·ΡΠ°ΡΡΠ΅ ΠΈΠ»ΠΈ ΡΡΡΠ°Π½Π΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ. ΠΠΌΠ΅ΠΉΡΠ΅ Π² Π²ΠΈΠ΄Ρ, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠΌΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π»ΡΠ΄ΠΈ, Π³ΡΡΠΏΠΏΡ ΠΈΠ»ΠΈ ΠΎΡΠΊΠ΅ΡΡΡΡ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΌΡ Π΄ΠΎΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π΅ ΡΠ΅Π»ΠΈΠ·ΠΎΠ², Π²ΡΠΏΡΡΠ΅Π½Π½ΡΡ Π°ΡΡΠΈΡΡΠ°ΠΌΠΈ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π³ΠΎΠ΄Π°. ΠΠ»Ρ ΡΠΎΠ»ΡΠ½ΡΡ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π΅ΠΉ ΠΌΡ ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π³ΡΡΠΏΠΏΠ°Ρ , Π² ΠΊΠΎΡΠΎΡΡΡ ΡΡΠΈ Π°ΡΡΠΈΡΡΡ ΡΡΠ°ΡΡΠ²ΠΎΠ²Π°Π» Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π³ΠΎΠ΄Ρ.
SELECT
?artist_name ?year
?releases_in_year ?releases_up_year
?artist_type_name ?releases
?artist_gender ?artist_country_name
?artist_begin_date ?bands
?bands_in_year
WHERE {
# Bands for each artist
{
SELECT
?year
?first_artist
(group_concat(DISTINCT ?second_artist_name;separator=",") as ?bands)
(COUNT(DISTINCT ?second_artist_name) AS ?bands_in_year)
WHERE {
VALUES ?year {
1960 1961 1962 1963 1964 1965 1966 1967 1968 1969
1970 1971 1972 1973 1974 1975 1976 1977 1978 1979
1980 1981 1982 1983 1984 1985 1986 1987 1988 1989
1990 1991 1992 1993 1994 1995 1996 1997 1998 1999
2000 2001 2002 2003 2004 2005 2006 2007 2008 2009
2010 2011 2012 2013 2014 2015 2016 2017 2018
}
?first_artist <http://musicbrainz.foo/name> "Elton John" .
?first_artist <http://musicbrainz.foo/rdftype> <http://musicbrainz.foo/artist> .
?first_artist <http://musicbrainz.foo/type> ?first_artist_type .
?first_artist <http://musicbrainz.foo/name> ?first_artist_name .
?second_artist <http://musicbrainz.foo/rdftype> <http://musicbrainz.foo/artist> .
?second_artist <http://musicbrainz.foo/type> ?second_artist_type .
?second_artist <http://musicbrainz.foo/name> ?second_artist_name .
optional { ?second_artist <http://musicbrainz.foo/begin-date-year> ?second_artist_begin_date_year . }
optional { ?second_artist <http://musicbrainz.foo/end-date-year> ?second_artist_end_date_year . }
?l_artist_artist <http://musicbrainz.foo/entity0> ?first_artist .
?l_artist_artist <http://musicbrainz.foo/entity1> ?second_artist .
?l_artist_artist <http://musicbrainz.foo/link> ?link .
optional { ?link <http://musicbrainz.foo/begin-date-year> ?link_begin_date_year . }
optional { ?link <http://musicbrainz.foo/end-date-year> ?link_end_date_year . }
FILTER (!bound(?link_begin_date_year) || ?link_begin_date_year <= ?year)
FILTER (!bound(?link_end_date_year) || ?link_end_date_year >= ?year)
FILTER (!bound(?second_artist_begin_date_year) || ?second_artist_begin_date_year <= ?year)
FILTER (!bound(?second_artist_end_date_year) || ?second_artist_end_date_year >= ?year)
FILTER (?first_artist_type NOT IN (<http://musicbrainz.foo/artist-type/2>, <http://musicbrainz.foo/artist-type/5>, <http://musicbrainz.foo/artist-type/6>))
FILTER (?second_artist_type IN (<http://musicbrainz.foo/artist-type/2>, <http://musicbrainz.foo/artist-type/5>, <http://musicbrainz.foo/artist-type/6>))
}
GROUP BY ?first_artist ?year
}
# Releases up to a year
{
SELECT
?artist
?year
(group_concat(DISTINCT ?release_name;separator=",") as ?releases)
(COUNT(*) as ?releases_up_year)
WHERE {
VALUES ?year {
1960 1961 1962 1963 1964 1965 1966 1967 1968 1969
1970 1971 1972 1973 1974 1975 1976 1977 1978 1979
1980 1981 1982 1983 1984 1985 1986 1987 1988 1989
1990 1991 1992 1993 1994 1995 1996 1997 1998 1999
2000 2001 2002 2003 2004 2005 2006 2007 2008 2009
2010 2011 2012 2013 2014 2015 2016 2017 2018
}
?artist <http://musicbrainz.foo/name> "Elton John" .
?artist_credit_name <http://musicbrainz.foo/artist-credit> ?artist_credit .
?artist_credit_name <http://musicbrainz.foo/rdftype> <http://musicbrainz.foo/artist-credit-name> .
?artist_credit_name <http://musicbrainz.foo/artist> ?artist .
?artist_credit <http://musicbrainz.foo/rdftype> <http://musicbrainz.foo/artist-credit> .
?release_group <http://musicbrainz.foo/artist-credit> ?artist_credit .
?release_group <http://musicbrainz.foo/rdftype> <http://musicbrainz.foo/release-group> .
?release_group <http://musicbrainz.foo/name> ?release_group_name .
?release <http://musicbrainz.foo/release-group> ?release_group .
?release <http://musicbrainz.foo/name> ?release_name .
?release_country <http://musicbrainz.foo/release> ?release .
?release_country <http://musicbrainz.foo/date-year> ?release_country_year .
FILTER (?release_country_year <= ?year)
}
GROUP BY ?artist ?year
}
# Releases in a year
{
SELECT ?artist ?year (COUNT(*) as ?releases_in_year)
WHERE {
VALUES ?year {
1960 1961 1962 1963 1964 1965 1966 1967 1968 1969
1970 1971 1972 1973 1974 1975 1976 1977 1978 1979
1980 1981 1982 1983 1984 1985 1986 1987 1988 1989
1990 1991 1992 1993 1994 1995 1996 1997 1998 1999
2000 2001 2002 2003 2004 2005 2006 2007 2008 2009
2010 2011 2012 2013 2014 2015 2016 2017 2018
}
?artist <http://musicbrainz.foo/name> "Elton John" .
?artist_credit_name <http://musicbrainz.foo/artist-credit> ?artist_credit .
?artist_credit_name <http://musicbrainz.foo/rdftype> <http://musicbrainz.foo/artist-credit-name> .
?artist_credit_name <http://musicbrainz.foo/artist> ?artist .
?artist_credit <http://musicbrainz.foo/rdftype> <http://musicbrainz.foo/artist-credit> .
?release_group <http://musicbrainz.foo/artist-credit> ?artist_credit .
?release_group <http://musicbrainz.foo/rdftype> <http://musicbrainz.foo/release-group> .
?release_group <http://musicbrainz.foo/name> ?release_group_name .
?release <http://musicbrainz.foo/release-group> ?release_group .
?release_country <http://musicbrainz.foo/release> ?release .
?release_country <http://musicbrainz.foo/date-year> ?release_country_year .
FILTER (?release_country_year = ?year)
}
GROUP BY ?artist ?year
}
# Master data
{
SELECT DISTINCT ?artist ?artist_name ?artist_gender ?artist_begin_date ?artist_country_name
WHERE {
?artist <http://musicbrainz.foo/name> ?artist_name .
?artist <http://musicbrainz.foo/name> "Elton John" .
?artist <http://musicbrainz.foo/gender> ?artist_gender_id .
?artist_gender_id <http://musicbrainz.foo/name> ?artist_gender .
?artist <http://musicbrainz.foo/area> ?birth_area .
?artist <http://musicbrainz.foo/begin-date-year> ?artist_begin_date.
?birth_area <http://musicbrainz.foo/name> ?artist_country_name .
FILTER(datatype(?artist_begin_date) = xsd:int)
}
ΠΠ·-Π·Π° ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠ°ΠΊΠΎΠ³ΠΎ Π·Π°ΠΏΡΠΎΡΠ° ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΡΠ΅ΡΠ½ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ Π΄Π»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΠ»ΡΠΎΠ½Π° ΠΠΆΠΎΠ½Π°, Π½ΠΎ Π½Π΅ Π΄Π»Ρ Π²ΡΠ΅Ρ Π°ΡΡΠΈΡΡΠΎΠ². Neptune, ΠΏΠΎΡ ΠΎΠΆΠ΅, Π½Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΡΠ΅Ρ ΡΠ°ΠΊΠΎΠΉ Π·Π°ΠΏΡΠΎΡ, ΠΎΠΏΡΡΠΊΠ°Ρ ΡΠΈΠ»ΡΡΡΡ Π² ΠΏΠΎΠ΄Π²ΡΠ±ΠΎΡΠΊΠΈ. ΠΠΎΡΡΠΎΠΌΡ ΠΊΠ°ΠΆΠ΄ΡΡ Π²ΡΠ±ΠΎΡΠΊΡ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΡΠΈΠ»ΡΡΡΠΎΠ²Π°ΡΡ Π²ΡΡΡΠ½ΡΡ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Ρ.
Neptune ΠΈΠΌΠ΅Π΅Ρ ΠΊΠ°ΠΊ ΠΏΠΎΡΠ°ΡΠΎΠ²ΡΡ, ΡΠ°ΠΊ ΠΈ ΠΎΠΏΠ»Π°ΡΡ Π·Π° ΠΊΠ°ΠΆΠ΄ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π°. ΠΠ»Ρ Π½Π°ΡΠ΅Π³ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΡΠ°ΠΌΡΠΉ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ½ΡΡΠ°Π½Ρ Neptune, ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΠΎΠΈΡ $0,384/ΡΠ°Ρ. Π ΡΠ»ΡΡΠ°Π΅ Π·Π°ΠΏΡΠΎΡΠ° Π²ΡΡΠ΅, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΡΠΈΡΠ»ΡΠ΅Ρ ΠΏΡΠΎΡΠΈΠ»Ρ Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Ρ, Amazon Π²Π·ΠΈΠΌΠ°Π΅Ρ Ρ Π½Π°Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄Π΅ΡΡΡΠΊΠΎΠ² ΡΡΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π°, ΡΡΠΎ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅Ρ Π·Π°ΡΡΠ°ΡΡ Π² ΡΠ°Π·ΠΌΠ΅ΡΠ΅ $0.02.
ΠΡΠ²ΠΎΠ΄
ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , Amazon Neptune Π΄Π΅ΡΠΆΠΈΡ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΠ²ΠΎΠΈΡ ΠΎΠ±Π΅ΡΠ°Π½ΠΈΠΉ. ΠΡΠ΄ΡΡΠΈ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΠΌ ΡΠ΅ΡΠ²ΠΈΡΠΎΠΌ, ΡΡΠΎ Π³ΡΠ°ΡΠΎΠ²Π°Ρ Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΠ°Ρ ΡΡΠ΅Π·Π²ΡΡΠ°ΠΉΠ½ΠΎ ΠΏΡΠΎΡΡΠ° Π² ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°ΠΏΡΡΠ΅Π½Π° Π±Π΅Π· Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° Π½Π°ΡΡΡΠΎΠ΅ΠΊ. ΠΠΎΡ Π½Π°ΡΠΈ ΠΏΡΡΡ ΠΊΠ»ΡΡΠ΅Π²ΡΡ Π²ΡΠ²ΠΎΠ΄ΠΎΠ²:
- ΠΠ°ΡΡΠΎΠ²Π°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΏΡΠΎΡΡΠ°Ρ, Π½ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π°Ρ. ΠΠΎ ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ ΡΡΠ»ΠΎΠΆΠ½ΠΈΡΡΡΡ ΠΈΠ·-Π·Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ
- ΠΠΎΡΠΎΠΊΠΎΠ²Π°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π²ΡΠ΅, ΡΡΠΎ ΠΌΡ ΠΎΠΆΠΈΠ΄Π°Π»ΠΈ, ΠΈ Π±ΡΠ»Π° Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π±ΡΡΡΡΠΎΠΉ
- ΠΠ°ΠΏΡΠΎΡΡ ΠΏΡΠΎΡΡΡ, Π½ΠΎ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½Ρ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π°Π½Π°Π»ΠΈΡΠΈΡΠ΅ΡΠΊΠΈΡ Π·Π°ΠΏΡΠΎΡΠΎΠ²
- SPARQL-Π·Π°ΠΏΡΠΎΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Ρ Π²ΡΡΡΠ½ΡΡ
- ΠΠ»Π°ΡΠ΅ΠΆΠΈ Amazon ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΎΡΠ΅Π½ΠΈΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΎΡΠ΅Π½ΠΈΡΡ ΠΎΠ±ΡΠ΅ΠΌ Π΄Π°Π½Π½ΡΡ , ΠΎΡΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΏΠΎ SPARQL-Π·Π°ΠΏΡΠΎΡΡ.
ΠΠ° ΡΡΠΎΠΌ Π²ΡΠ΅. ΠΠ°ΠΏΠΈΡΡΠ²Π°ΠΉΡΠ΅ΡΡ Π½Π°
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com