ααΌαααααΆααα½αα’ααααααα»α Khabrovsk α αα
αααα»αααΆαααααΉααα»αααααΆαα
αΆααααααΎααααααααα·ααααΆ
αααα»αααααΈααΆα
αααΎααααααΎαα
αΌαα
α·ααα
α ααα»α’αααΈααΆαααΆααΎαααααΌαααΆα 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 ααΆααααααΆααααααΎα
αα αααα αΆααααααΎααααα»αααΈαααα αααα»ααααα·αααΌα ααΎαααΆααα½αααααααααα αΆααααααα
{
"errorCode" : "PARSING_ERROR",
"errorMessage" : "Content after '.' is not allowed",
"fileName" : [...],
"recordNum" : 25
}
αα½ααααα½αα ααα½αααΆαααα α»ααααα»αααΆααα·ααΆα ααΌα ααΆααααα αΆαααΆαααΎα ααβαααβαααβααα ααΎαβαα βαα·αβααΆααβααΉαβααΆβααΆαβα’αααΈβαα»αβαααααβα ααα»α βαααβααα ααααααΆααααα’α·αααααα·α αααααααΆααααΆα’αΆα αα½ααα ααΈαααα ααα α»ααααααΆαααΎαα‘αΎααααα αα 1% ααααΆααααα αΌαααΈααα ααα»ααααβααΎβααΆαβααΆαβααΆαααααβ Neptune ααΎαβααΆαβααα½αβααβααΆαβαα·αβαααβααΆβααΎαβααααΎβααΆαβααΆαβαα 99% ααβααααααΆαβααΈ MusicBrainz ααα»αααααα
αααααΈααΆααΆααΆααααα½ααααααΆααα’ααααααααααΆαα SPARQL ααααα ααααααΌαααΉαααΆ RDF ααΈααααααΌαααααααΌαααΆαααααααααΆααααΆαα½αααΉααααααααα·ααααααα αααΆααααΆαα αααα’αΆα αααααΆαα±ααααΆαααα α»ααααααααα
ααΆαααΆαααααααααΈα
ααΌα αααααΆααααααΆααααΆαααΎ ααΎααα·αα ααααααΎ Neptune ααΆααααΆαααα·αααααααα·αα·αααααα ααα»ααααααΆααΌαααααΆαα ααααααΉααααα’αΆα ααααααααΆα αα·ααα·ααααααα ααΌα αααα ααΎαααααΌαααααααααα·ααΈααΎααααΈααααΆαααΈααααααΈ αα ααααααααΌαααααΆαα ααααααΉαααααΆααααααΌα α§ααΆα ααααα ααααααα’αΆααααα»αααααΈααααΌαααΆαααααα»ααα α¬αα ααααααααΎαα αααααααΎαα ααααααΉααααααα½αααΆαα
Neptune ααΆααααααααα·ααααα·αααααα αΌαααΆαααααααα½α SPARQL ααΆαααα αα·αααααΌααα’ααααΎα ααΎαααΉααα·ααΆααααΆα’αααΈαα·ααΈααΆαααααααΆααααΈαααΆααααααα
ααααα αα½ααααα»αα ααααααααα ααααααΎαααΊαααα αΌααα·αααααααααα»αααααααααααααΈαα αα·α αΆαααΆβα ααβα’αΆααααα»αβαααα»αβααααααβααααΈα ααΆααααααααααα MusicBrainz αααααΆααααααΆαααααΆααααΆαα ααααααΆαααααα½ααααα αΌαα’αΆααααα»α ααα ααααα EPs ααΆααΎαα ααΆαα»ααααΈααααΌαααΆααααααααα αααα»αααΆααΆαα αααααααααααα. αα αααα»α 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
}
ααΆαααααααααΈαααααα½ααα ααααΆα ααααααΌαα αααΆααααααΈαααΈαα·ααααΈαα·ααΆααΈ αααααααααααααΆααααα·ααααα·αααααΆααααΆααααα αΌααααααααααααα½αααααΊα’αΆαααααααΎαααααααΆααααα·ααααα·αααααα½αααααααααα½αα―αα
αααααΈααΆααΎααα·αααΆαααααΎααΆααΉαααΆααααααα Neptune ααα’αα»ααααΆαα±ααα’ααααα»α triplets αααααα’ααααΎααααΌ α¬αα·ααααααα αααΆααααΆαα αααα’αΆα ααααΌαααΆαααααΎααΎααααΈααααΎαα αα α»ααααααααΆαααααααΆαα
αααα½α 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)
}
αααααΆαααααΆααααα»αααααΆααααααα½ααααααα ααΎαα’αΆα α’αα»αααααααα½ααααααΆαααααα·αααααααΆααααΆαααα½αααα»ααααα ααΌα ααΆ Elton John ααα»αααααα·αααααααααΆαααα·αααααααΆααα’αααααααα Neptune α αΆααααΌα ααΆαα·ααααααΎαααααα·αααααΆααααα½αααααααααααααααααΆααααααααα αααα»ααααααΎαααα ααΌα ααααααΆαααααΎαααΎαααΈαα½ααααααΌαααααααααααααααααααααα·αααααα
Neptune ααΆαααΆααα·ααααααααααΆαααααα αα·ααααα»ααα½α I/O α αααααΆααααΆαααααΎαααααααααααΎα ααΎαααΆαααααΎα§ααΆα ααα Neptune α’αααααααΆααα αααααΆαααααα $0,384/ααααα αα αααα»αααααΈαααααα½αααΆαααΎ αααααααΆαααααααααααΆαααααααααααα½α αααα»αα αα»α Amazon αα·αααααααααα·ααααα·ααΆα I/O ααΆαααααΊααα»ααααΆα αααααΆααααααΆααΆαααααα 0.02 αα»ααααΆαα
ααα ααααΈααααα·ααααΆα
ααααΌα Amazon Neptune αααααΆααΆααααααΆααΆαα αααΎααααααααα½αα αααα»αααΆαααΆααααΆααααααααααααα ααΆααΊααΆααΌαααααΆααα·ααααααααααΆα αααααααΆαααΆαααΆααααα½ααααα»αααΆαααα‘αΎα α αΎαα’αΆα ααααΎαααΆαααΆαααααα·αα αΆαααΆα αααααααα ααΆααααααααα αααΎαα αααααΊααΆααΆαααααΎαααααΆαααα ααα½αααααΆαααααααΎαα
- ααΆαβαααα»αβα‘αΎαβααΆβα αααΎαβααΊβααΆαβαααα½αβααα»ααααβααΊαα ααα»ααααβααΆβα’αΆα βαααα»αααααΆαβααΆαα½αβααΉαβααΆαβααα α»αβαααβαα·αβααΆαβααααααααβααααΆααα
- ααΆαααΆαααααααααΈαααΆααααα’αααΈααααααααΆααααααΎαααααΉααα»α αα·αααΏαααΆααα
- αααα½αααΊααΆαααα ααα»αααααα·αααΆαα’αααααααααααααααααΆααααΎααααΈααααΎαααΆααααα½ααα·ααΆα
- αααα½α SPARQL ααααΌαααααααΎα±αααααααΎαααααα
- ααΆαααΌααΆαααααα Amazon ααΊαα·ααΆααααα»αααΆααααΆααααααΆααααααααΆαα·ααΆααααα»αααΆααααΆαααααααΆαα ααα½ααα·αααααααααααΆααααααααααααα½α SPARQL α
α’ααα αΎαα α
α»ααααααβαααααΆαα
ααααα: www.habr.com