ืืฆืืขื, ืชืืฉืื ืืืจืืืกืง. ืืงืจืืช ืชืืืืช ืืงืืจืก
ืืืงืจืื ืจืืื ืฉื ืฉืืืืฉ ืฉืื ืื ื ืืืืืื
ืืื ืืืื ื ืฆืจืืืื ืืช ืืืืื ื ืคืืื
ืืกืื ื ืชืื ืื ืฉื ืืจืคืื ืืืืืืื ืืืชืืืื ืขื ืืขืจืื ื ืชืื ืื ืืืืืจืื ืืฆืืจื ืืืื ืืืชืจ ืืืฉืจ ืืืงืืืืืช ืืืืกืืืช ืฉืืื. ืืืขืจืืื ืืืื, ืืืืข ืจืืืื ืื ืืืืืกื ืืืจื ืืื ืืงืฉืจืื ืืื ืืืืืืงืืื. ืืฉืชืืฉื ื ืืคืจืืืงื ื ืชืื ืื ืคืชืื ืืืืื ืืื ืืืืืง ืืช ื ืคืืื
ืืขืจื ืื ืชืื ืื ืฉื MusicBrainz ืืกืืคืง ื-CSV dump ืฉื ืืกื ื ืชืื ืื ืืืกื. ืืกื ืืื, ืืืืืื ืืืืื ื-93 ืืืืืื ืฉืืจืืช ื-157 ืืืืืืช. ืืขืื ืฉืืืง ืืืืืืืืช ืืืื ืืืืืืช ื ืชืื ืื ืืกืืกืืื ืืืื ืืื ืื, ืืืจืืขืื, ืืงืืืืช, ืืืืืจืืช ืื ืจืฆืืขืืช, ืืืืจืืช ืืืืืืช ืงืืฉืืจ - ืืืกืื ืืืกืื ืืื ืืื ืื ืืืงืืืืช, ืืื ืื ืืืจืื ืื ืืืืืจืืช ืืื'... ืื ืืืืืืื ืืช ืืื ื ืืืจืคืื ืฉื ืืขืจื ื ืชืื ืื. ืืืฉืจ ืืืจืช ืืขืจื ืื ืชืื ืื ืืฉืืฉืืช RDF, ืืฉืื ื ื-500 ืืืืืื ืืืคืขืื.
ืืืชืืกืก ืขื ืื ืืกืืื ืืืืชืจืฉืืืช ืฉื ืฉืืชืคื ืืคืจืืืงื ืืืชื ืื ื ืขืืืืื, ืื ื ืืฆืืืื ืืกืืจืช ืฉืื ืืกืืก ืืืข ืื ืืฉืืฉ ืืืฉืืช ืืืืข ืืืฉ. ืื ืืกืฃ, ืื ื ืืฆืคืื ืฉืืื ืืชืขืืื ืืืืคื ืงืืืข, ืืืฉื ืขื ืืื ืืืกืคืช ืืืืืจืืช ืืืฉืืช ืื ืขืืืื ืืืจื ืืงืืืฆื.
ืืชืืื
ืืฆืคืื, ืืชืงื ืช Amazon Neptune ืืื ืคืฉืืื. ืืื ืื ืืคืืจืืช
ืฆืืืื ืืกื ืชืฆืืจื ืขืืืจ ืงืืืฆืืช ืคืจืืืจืื
ืืืืื ืืืืจืช ืฉ-Neptune ืืชืืงืืช ืืขืืืกื ืขืืืื ืฉื ืขืกืงืืืช ืขื ืืื ืืืืืจ ื ืืื, ืืื ืืกืืื ืฉืืื ืงืฆืื ืืจืืจืช ืืืืื ืฉื ืืืงืฉื ืืื 120 ืฉื ืืืช. ืขื ืืืช, ืืืงื ื ืืงืจื ืฉืืืืฉ ืื ืืืืืื ืจืืื ืฉืืื ืืืขื ื ืืืืคื ืงืืืข ืืืืื ืืื. ื ืืชื ืืฉื ืืช ืืช ืืืื ืืงืฆืื ืืื ืขื ืืื ืืฆืืจืช ืงืืืฆืช ืคืจืืืจืื ืืืฉื ืขืืืจ Neptune ืืืืืจื neptune_query_timeout
ืืืืื ืืชืืืื.
ืืืขื ื ืชืื ืื
ืืืื ื ืืื ืืคืืจืื ืืืฆื ืืขื ื ืืช ื ืชืื ื MusicBrainz ืืชืื Neptune.
ืืขืจืืืช ืืืกืื ืืฉืืฉืืช
ืจืืฉืืช, ืืืจื ื ืืช ื ืชืื ื MusicBrainz ืืฉืืฉืืช RDF. ืืื, ืขืืืจ ืื ืืืื, ืืืืจื ื ืชืื ืืช ืืืืืืจื ืืืฆื ืื ืขืืืื ืืืืฆืืช ืืืจืืคื. ืืืืืื ืื, ืื ืฉืืจื ืืืืืช ืืืืฆืขืื ืืืืคื ื-XNUMX ืฉืืฉืืช 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 ืืืื ืืืงืฉืืช.
ืืขืช ืืขืื ืช ืฉืืืฉืืืช ืื ืคืืื, ื ืชืงืื ื ืืฉืืืืืช ืฉืื ืืช.
{
"errorCode" : "PARSING_ERROR",
"errorMessage" : "Content after '.' is not allowed",
"fileName" : [...],
"recordNum" : 25
}
ืืืง ืืื ืืื ืฉืืืืืช ื ืืชืื, ืืคื ืฉืืืฆื ืืขืื. ืขื ืืืื, ืขืืืื ืื ืืื ื ืื ืืืืืง ืืฉืชืืฉ ืืฉืื ืื. ืงืฆืช ืืืชืจ ืคืืจืื ืืืืื ืืขืืืจ ืืื. ืฉืืืื ืื ืืชืจืืฉื ืขืืืจ ื-1% ืืืฉืืฉืืช ืฉืืืื ืกื. ืืื ืืื ืื ืืืข ืืืืืงืช ื ืคืืื, ืงืืืื ื ืืช ืืขืืืื ืฉืื ืื ื ืขืืืืื ืจืง ืขื 99% ืืืืืืข ื-MusicBrainz.
ืืืจืืช ืฉืื ืงื ืืื ืฉืื ืฉืืืืจืื ืืช SPARQL, ืฉืืื ืื ืฉืืฉ ืืืืกืืฃ ืืขืจืืช ื-RDF ืฉืืฉืืช ืขื ืกืืื ื ืชืื ืื ืืคืืจืฉืื, ืื ืฉืฉืื ืขืืื ืืืจืื ืืฉืืืืืช.
ืืืจืืช ืกืืจืืืื ื
ืืคื ืฉืืืืืจ ืืขืื, ืืื ื ื ืจืืฆืื ืืืฉืชืืฉ ื-Neptune ืืืืืจ ื ืชืื ืื ืกืืื, ืืื ืืืกืืก ืืืข ืืืืฉ ืืืชืคืชื. ืื ืืืื ื ืฆืจืืืื ืืืฆืื ืืจืืื ืืืฆืื ืฉืืฉืืช ืืืฉืืช ืืืฉืจ ืืกืืก ืืืืข ืืฉืชื ื, ืืืฉื ืืืฉืจ ืืืืื ืืืฉ ืืชืคืจืกื ืื ืืืฉืจ ืื ื ืจืืฆืื ืืืืฉ ืืืข ื ืืืจ.
Neptune ืชืืื ืืืืคืจืืืจืื ืฉื ืงืื ืืืืฆืขืืช ืฉืืืืชืืช SPARQL, ืื ืืืืืืืช ืืื ืืืืกืกืืช ืืืื. ื ืืื ืืฉืชื ืืืืฉืืช ืืืื.
ืืืช ืืืืจืืช ืฉืื ื ืืืืชื ืืืืื ื ืชืื ืื ืืฆืืจื ืกืืจืืืื ื. ืฉืงืื ืืืืฆืื ืืืืื ืืืืื ื ืืืฉื. ืื ืงืืืช ืืืื ืฉื MusicBrainz, ืื ืืืืจ ืฉืขืืืจ ืืืืืจื ืืืืืืช ืืืืืืื, ืกืื ืืืื, EP ืืื', ืืชืืืกืฃ ืขืจื ืืืฉ ืืืืื ืืจืฅ ืฉืืจืืจ. ื-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 ืืงืืช ืื ืคืืื, ืื ืื ืื ื ืฆืจืืืื ืืืืฉ ืืช ืืชืืฆืื ืืื ืืืฉืชืืฉ ืืืืฉ ืืืืข ืืืืฉ ืืื ืืฉืืืืชื ืืืจืช. ืื ืื ืื ื ืืืกืืคืื ืฉืืฉืืช ืขื ืืืืืข ืืื ืืืืจื ืืืจืฃ, ืืืื ืืกืื ืืช ืืชืืฆืื ืฉื ืฉืืืืชืช ืืืฉื ื.
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
}
ืืืกืคืช ืฉืืฉืืช ืืืืืืช ืืืจืฃ ืืืจืืช ืืื ืืืคืืืช ืฉื ืืืช, ืืขืื ืฉืืื ืืืืฆืืข ืืืื ืกืช ืืชืืฆืื ืฉื ืฉืืืืชืช ืืฉื ื ืชืืื ืืืื ืืืืฆืืข ืฉื ืฉืืืืชืช ืืืฉื ื ืขืฆืื.
ืืืจืืช ืฉืื ืืฉืชืืฉื ื ืื ืืขืชืื ืงืจืืืืช, ื ืคืืื ืื ืืืคืฉืจ ืืืกืืจ ืฉืืืฉืืืช ืขื ืกืื ืืืืืืืช ืื ื ืชืื ืื ืืคืืจืฉืื, ืฉื ืืชื ืืืฉืชืืฉ ืืื ืืื ืืขืืื ืืืืข.
ืฉืืืืชืืช SPARQL
ืขื ืืื ืืฆืืช ืชืช-ืืืืืื ืืงืืืืช, ืืืืืืจื ืืช ืืกืคืจ ืืืคืฆืืช ืืื ืืื, ืืืจ ืืฆืื ื ืืช ืืกืื ืืจืืฉืื ืฉื ืฉืืืืชื ืฉืื ื ืจืืฆืื ืืขื ืืช ืขืืื ืืืืฆืขืืช 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 ืืฉ ืืขืื ื ืืคื ืฉืขื ืืื ืืคื I/O. ืืฆืืจื ืืืืืงื ืฉืื ื, ืืฉืชืืฉื ื ืืืืคืข ืืืื ืืืื ืฉื ื ืคืืื, ืฉืขืืื $0,384 ืืฉืขื. ืืืงืจื ืฉื ืืฉืืืืชื ืืืขืื, ืืืืฉืืช ืืช ืืคืจืืคืื ืขืืืจ ืขืืื ืืืื, ืืืืื ืืืื ืืืืชื ื ืขืฉืจืืช ืืืคื ืคืขืืืืช I/O, ืื ืฉืืจืื ืขื ืขืืืช ืฉื 0.02$.
ืคืื
ืจืืฉืืช, ืืืืื ื ืคืืื ืืงืืืืช ืืช ืจืื ืืืืืืชืื. ืืฉืืจืืช ืื ืืื, ืืื ืืกื ื ืชืื ืื ืืจืคืื ืฉืงื ืืืื ืืืชืงื ื ืืืืื ืืืืืช ืคืืขื ืืื ืืจืื ืืืืจืืช. ืืืื ืืืฉืช ืืืืฆืืื ืืขืืงืจืืื ืฉืื ื:
- ืืขืืื ืืืืืช ืืืืื ืืื ืงืื ืื ืืืืืช. ืืื ืื ืืืื ืืืกืชืื ืขื ืืืืขืืช ืฉืืืื ืฉืืื ื ืืืขืืืืช ืืืืืื.
- ืืืจืืช ืกืืจืืืื ื ืชืืืืช ืืื ืื ืฉืฆืืคืื ื ืืืืืชื ืื ืืืืจื
- ืฉืืืืชืืช ืื ืคืฉืืืืช, ืื ืืื ื ืืื ืืจืืงืืืืืืช ืืกืคืืง ืืื ืืืคืขืื ืฉืืืืชืืช ืื ืืืืืืช
- ืืฉ ืืืฆืข ืืืคืืืืืืฆืื ืืื ืืช ืฉื ืฉืืืืชืืช SPARQL
- ืงืฉื ืืืขืจืื ืืช ืชืฉืืืื ืืืืื ืืืืืื ืฉืงืฉื ืืืขืจืื ืืช ืืืืช ืื ืชืื ืื ืฉื ืกืจืงื ืขื ืืื ืฉืืืืชืช SPARQL.
ืื ืืื. ืืืืจืฉื
ืืงืืจ: www.habr.com