αααα»ααααα»αααααΆααα’αααααΈαααα·αααααααααΆαααααα½αα’αααΈα’αααΈαααααΆααααααααααα
ααααααααΆ αα·ααααααΆα ααΆααΆαα·αααααΆαααΌαα
αα·ααα·ααααααα ααΌα
ααααααΆα
αααΆααααΆα’αααΈ αα·ααααααααααα’αααα’αΆα
ααΈαααααααααα - ααα»αααααα
ααΈααααααα»αααΆααααα·αααααααααΆαααααα½αααΆαααααα»α αααα ααααΆα’αααΈααααααααΆαααΊαα»αααααΆααΆαααααα»ααααααΆααα’αααα
α ααα»α’αααΈα αΆαααΆα αααααΌαααΉα αα·αα’αΆα ααααΎααΆααΆαααα½α? ααΆααααΌαααααααΆ αα·ααααΆααΆααααααα·ααααααααΆαααααΆααααΆαααααΆαααααΆα αααΎαααααΆαααΆα α αΎαααααΌααααα»α αα·αααααΆαααααα»α (ααΎααααΆαααΆαα ααααΆααααΆααααΆαα’αααΈααααΎαααΆααα!) ααΊααΆαααα½αααΆα α¬ααΆααααα·ααααααα ααΆαα αααΎαααΆααΉαααΆαα αα·αααααααααα»αα’αααα»ααα ααααααααΆαα½ααααα»ααααααααααα α αΎαααααΌαααΆα "ααΆααα" ααΈααΈαααα
ααΆααΆαααα½αα’αα»ααααΆαα±ααα’αααααΆααααα·ααααααααααααΆαααααΆαα! α αΎαααααααααααα»αααΉαααααΆααα’αααα’αααΈααΆααΆαααα½αααΆααααααααααΆααααααααααααααΆαααααα»α α αΎααααα»αααΉαααααΆααα’ααα αα·ααααα αΆαα’αααααΈαααααα αα·ααααααα·αααααΆαα - α ααα»α’αααΈα αΆαααΆα αααααΌααα·ααααΆα
ααΆααΉαααΆααααα»αααααΆαααα ααα½αααΈαααααααααααα½ααα·αααααα αααααΎαααΉααα·ααΆααααΆαααα»αα’ααααααααα
- ααΆααΆαααα½α "αααααααΆα" ααΊααΆα’αααΈαααααααΌαααΆααααααΆααΌαα αα ααααα·ααΆαα’αααΈααΆααΆαααα½α ααΌα ααΆαα·αααα·αααααΆαααααα α¬ SQL α
- ααααααΈαααΆααΆαααα½αα α§ααΆα ααα Python things pandas, numpy α¬ shell scriptingα
- ααΆααΆαααα½ααααααΆααααααΆα ααα ααααααΉα αα·αααΌαααααΆααα·ααααααααααΆα ααα
α’αααΈααααααααΆααααααΆαααααααα
ααΈαααααΊααααΆααααααΆαααα·αααααααααΆαααααα½α α’αααΈαααααΆααααααααα ααΆαα½αααΉαααΆααα·αααααΆα’αααΈααααΆαααΆα αα·α "α ααα»α’αααΈααΆαααΆααΆααααΌαααΆα" - α’ααααααααααααΆα’αΆα
ααΆαααααααΈαααααααααααΆαααΆαααααααααααΆα’αΆα
ααααΆαααααΌαααααα’ααα α αΎαααααΆααΆααααα
ααααααΆαααα½αααααΆαα»ααααααΆααααααΉαα’αααΈααΆααΆααΆαααααα αα»αβαααβαααβα’αααβααααΌαβααΆααβααΆααα (ααΆβαααααΆαα) ααΎβααααααβαα½α α¬βααΌααααΈβααβαα
βααΆααβααααααβαααβαα½αααβααααΌαβααΆαα
"αααααααΆα" ααΆααΆαααα½α
ααΆααΆαααα½ααααααααΆαααΊα αααΆααααΆαααααα»ααααααΆααΆααααααΆααΎααα·αα’αααΈαα½ααααα αααααΎααα·ααΆαα’αααΈαααα½αα
αα·αααα·αααααΆαααααα
α ααα»βα’αααΈβααΆαβααΆβααααΌαβααΆαβαα·αααα·αβααααΆααβααααβααααβαααα? ααΎααααΈααΆαααΆααααααΉαααα’α’αααΈααΌαα ααα»αααααΆααΆαααα½αααααΌαααΆααααα αα‘αΎαααΆαααααααΆααααΆαααα½α α αΎαααααΎααααΆααααΆααααααα·ααΆα α’αααααααΌααααα’αααΈααααΌαααααΌαααααΆαααααααΆα
ααΎαα·αααα·αααααΆααααααααΊααΆα’αααΈ?
αα·αααααααααΌαααΆαααΆαααΌα ααΆααααααα αα·αααα·αααααΆααααααααΊααΆαααααααααα·ααα·αααααααα·ααααα·ααΆαααΎααααΆαααααααααα»αααααΌαα·ααααααααααΆααααααα ααΎααααΈααΆααααΆα±ααααΆαααααααααα»αααααααα·α αααααΊααΆααααααααααααααα·ααααα·ααΆααα ααΎαα» αααααααααααΊαααααααΆααΆααΆαα
ααΎαααααα·ααααα·ααΆαααααΆααααααααΆααα’αααα
αααα»α
α ααα»α’αααΈ?
ααΆαα αΆααααααΎααααααΈα’αααΈαααααΆααΆαααα½αααΊα’αααΈα’αααΈ αα·αααααα·ααααα·ααΆαα’αααΈαα ααΈααααααααααααα αααα»αααΆααΆαααα½αααΆααααΆαα ααΆααΉαααΆαααααααααΌαααΆααααααΉαααΆαααααααΈααααα α’αααΈα’αααΈαααααααΎαααΆααα αααα»αααΆααΆαααα½α αα·αααααα
ααααΈ
αααααΆαααα·ααααΆα
SQL αα½α
ααααΈ
SQL ααΊααΆααΆαα’αα»ααααααααααΆαααααα·αααα·αααααΆαααααα - ααΆαα½αααΉαααΆααααααΆαααααααΆαααα½α SQL ααΊααΆααΆααααααΆα! αααααΊαα
αααααααααααα½αααΆααΆααΆαααα·αααα·αααααΆαααααα α’ααααα·αααΆαα·ααΆαααΈααααααααΆ - ααα»ααααααΆαα½αααΉα SQL α’ααααααααΆααααΈα’αααΈαααα’αααα
αααααααα
αα α αΎααααααΆαααα DBMS ααΆααααααΎααααααα (ααΆαααααα·αααα·ααΆα) αα½α
α αΎααα
αααα»αααΆααΆαααα·αααα·αααααΆαααααα (αααααα½ααα ααααΌαααααΌαααΆαααααααΆααααΆααΆ
ααααΈ
α ααα»α’αααΈ?
DBMSs ααααΆααααααα Oracle, Postgres, SQL Server ααΆααΎα αα ααααΆαααααΎααααααααααΈαααααα α αΎαααΆαα±ααΆαααααααα·ααα½αα±ααααΏαααα’αααααΉαααααΌαααααΎα’ααααααααααΆαα½ααα½ααα αααααΆααααααΆα’αααααΉαααααΌαα’αΆα SQL (αααααααααΆαα) α¬αααααααΆ ( αααα·αααααααα)α
α’αααΈαααααααΌαα’αΆααα·ααα·ααααΆ
αααααΆααααααααΆααααΌα
ααααΆααΆαααΎ (α’αααΈαα·αααα·αααααΆαααααα) ααΆαααα·ααΆααα·ααα½αα±ααααΏαααααααΆααα§ααΆα αααα
αα·ααΆαα’ααα αΉαααΎ NoSQL ααΆα’αααΈ?
"ααΆααΆααααααααααααααααααααααααααΆααΆααα "NoSQL" ααΆααααααααΎααααα―αα―αα αΎααα·αααΆααα·ααααααααααα½αααααΆααΌαα
α¬ααααΆααααα·ααααΆααΆααααααα
ααΈαααααααΆααα αααααααΌαααααΆα
ααΆααΆααα·α ααα»αααααΆαααΉαααΆααααΌααααΆααααααααααααααΊαα·αα αΆαααΆα αααΎααααΈαααααααΆααααα αΆααΆα αααΎα ααΆαα·ααααααααΆααα’ααααααα§ααΆα ααα ααΆαα’αα»ααααααΆαααΆααααααΆαα α αΎααααα½αααΆαααααα½αα ααα½αααΆαα½αααΉαααΆααααααΌααααα»ααααααααααα - αααααΆαααααααααααΆααΆαααΆααααααΆαααααα»αααΆαααααΆαααααααααΆαααΆαααα αα α αΎααααααααΆαα ααΌαααααΆααα·αααααα α αΎααααααααα·αααααΆαα αααΎαααΊααΆααααααααΆααΆαααααααααΆαααΆαα·αααααΉααααα·αα αΆαααΆα αααα»ααααααα ααα»αααααααααΆαααααααααααααααΆααααααα - α ααα»α’αααΈααΆαααΆααααΎα±ααα’αααΈαα½αααΆαααααααααααααΆααααα·αααΎααΆααΉαααααΎα±ααααΌα α’αααΈαααααααΆαααααα»ααααααΆααααΎα (αααααΆαααα·α αα ααΆαααΆααααΆαααα½αα ααα½α) - ααα·αααΆα?
ααΌα ααααΆαααααααα αααααααΆααααααα’αΆα ααααααααΆαααΆααΉαααΆααααααΌαααΆαααααΌαααΆααααα½αα±αααααααααΆαααααα·ααα·ααααΆαααααααααΌααααΆαααααααα»ααΆα - α αΎαααααα½αααααα½ααααααΆαα’αα·αααααααααααα·ααΈαα ααααααααΆααΆαααΆααααααΆαααααα»αααΆαααΆααα±ααααααΎααααΆαααααααααα α αΎαα αΆααααααΎαααααΎαααΆααααΆαααΆαααα αα ααααΎαααΆααααααα α¬αααααααΆααα αα·ααααααααααα·αααααααααααΆααααααΆαα»αα αα·αααΌαααααΆααααα
α§ααΆα ααα ααΎααααα»ααααααΎαααααααααα’αααααααΆα α αΎαα αααααααΆαα»αααααααΆααα ααΎαααααΆααααΆαααα½α αα½αααΆαα½αααΉαααααααΆαααααΆαα½αα ααα½α - ααΎααααα ααααΆαα·αααααΆααααΆαααΆααα’αα α αΎαααααΆαααααααααΆαα»α JSON αααααΆαααααααααααΆααΈαα½αα - ααΆαααααα±ααααΎαααΌαααα·ααΆααΆααααα’αΆα ααααααααΆααααααΆααααΆααααααΈααα·ααααααα ααααΌ αα·αααααΎααααααααααΆαααΆαααα αα - ααΌα αααααααα»αααααΈααα NoSQL ααΉαααΆααααα αΌαα α·ααα αα·αα’αΆα α’αΆαααΆαααΆααααα αααΎαα ααΆαα»α§ααΆα ααα (ααΈαααααααααααααα»ααα½αααα NoSQL ααααΉαααααΌααα αααααααααααααΌαααΆα) α
{"en_wikipedia_url":"https://en.wikipedia.org/wiki/Johnny_Cash",
"ru_wikipedia_url":"https://ru.wikipedia.org/wiki/?curid=301643",
"ru_wiki_pagecount":149616,
"entity":[42775,"ΠΠΆΠΎΠ½Π½ΠΈ ΠΡΡ","ru"],
"en_wiki_pagecount":2338861}
α’αααα’αΆα
α’αΆααααααα
ααΎααααΌααα·ααααΆα’αααΈ?
αα ααΈααα α’αααααααΆααααααααΌαααΆααα·ααΆαα±ααααΆαα ααααα ααααΌααα·α αα ααΆαααααα’ααα αααααααααααααα·αααααΆααΆα αα·ααααααααα NoSQL ααΆαααα’αΆα ααααΎααΆα αααααΉαααααΉαααΆααα·αααααΆααα - α αΎααααααΆααααα αΆααααααΎααα·ααααΆαααααααααααα
ααΆααΆαααα½αααααααΈα
ααααΌα ααΆα αΆααααΈααΌα ααΆα’αααΈααα Python ααααΌαααααΎααΆαα½αααΆααΆααΌαα - ααΆααΆααΆααΆααααααααααα·ααΈ α αΎααα·ααααα’αααΈαααα½αα’αααΈααΆααα’ααα
- Pandas ααΊααΆααΆααα·ααααααααααααααΈααααα·ααααΆααΆααααααα·αααααα ααα·ααΆαααα αααΎαααααΆαααααααααα·αααααα ααΆααααααΌααααα»αααΆααΎαα
- ααα - ααΆαααααΆααα·α ααα αααΆααααΈα αα·ααα·αααα·αααΈααα’ααααα ααΈαααα
- Scipy - ααΆαααα·ααα·ααααΆααΆα αααΎααα αααα»ααααα ααααα ααΆαα·ααααααα·αα·α
- αααααΈααα·ααααα Jupyter - ααΆααα·ααΆααα·αααααααα»αααααΆα αααΎαααααΉααα»αααααΌααααα½ααα - ααΆααααααααααααα»αααΆαααΉαα
- ααααΎ - ααααΎααΆαααΆαα½ααααααΆαα
- Pyspark ααΊααΆααααααΆαααα·αααΆααααΆαααααΆαααααα»αα αααααα·ααααααα·αααααα αααααΆαα αααΎαααααααΆα’αααααΉαααααΌαααααΎα’ααααααααααΆαα½αααΆ α¬ Spark αααααααΆαααααααααΆααααααααΆαααα·αααΆααααααα½αααα
- * αααααααΌα - ααΆαααααααααααααΆααααΆαααααααΆααααΆααααααΌααα·ααααααααΈααα ααααα αα·αααααΆα ααααααααα·αααΆααα·ααΈααααααααααΎααααΈααα½αααΆααα·αααααααααααα
ααααΌααααΆαααααΆαααααααααα»αα ααα Python!
αααααΆα
αααααααΌαααΆααααααααΆα§ααΆα αααα
import pandas as pd
df = pd.read_csv(βdata/dataset.csvβ)
# Calculate and rename aggregations
all_together = (df[df[βtrip_typeβ] == βreturnβ]
.groupby(['start_station_name','end_station_name'])
.agg({'trip_duration_seconds': [np.size, np.mean, np.min, np.max]})
.rename(columns={'size': 'num_trips',
'mean': 'avg_duration_seconds',
'amin': min_duration_seconds',
βamax': 'max_duration_seconds'}))
ααααΆααααΎαααΎαααΆααΌααααααααΉαααααΆα SQL αα»ααΆαα
SELECT start_station_name, end_station_name, count(trip_duration_seconds) as size, β¦..
FROM dataset
WHERE trip_type = βreturnβ
GROUPBY start_station_name, end_station_name
ααα»αααααααααααααΆααααΊααΆ ααΌααααααΊααΆαααααααααααααΈα αα·αααααααααα αΌαααααα ααΆααα·αααΎααααα»ααααα αΌααααα½ααα αααα»αααααα Python α αααα»αααααΆαααΆαααα ααΆααΆαααα½αααΆαααααααΎαααΈαααααΆαααααΌα ααΆ Pandas α¬ pySpark α
ααΆααΌαα αα αααα»α pySpark ααΎαααΎαααααααααααΆαααααΆααααααΌααα·ααααααααααααααααΆααΆααααααΆααΆαααα½ααα αααα»αααααΆαααΈαα:
df.filter(df.trip_type = βreturnβ)
.groupby(βdayβ)
.agg({duration: 'mean'})
.sort()
ααααααααΆαα·αα’αααΈαααααααΌαα’αΆα
αα
ααΎ Python αααα½αααΆααΆααΌαα
αααααΆααΆααΆαααα½α
ααααααααααΎαααΆα αα·ααα·ααΆααα·αααααααα½αα ααα½αααααααα»αααΆαααααΎααΆαααΆαα½α ααΆααα·ααα ααααααΈαααα αααα α ααΌααα αααα»α Python, Java αα·αααααααααΆααααααα½αα―αα ααΌα αααα ααΆααΌαα α’αααα’αΆα αα·α αΆαααΆααααααααα αΌαααααααααα»α bash/zsh/etc ααΆαααααααααααα½αααααα·αααααααα½αα ααα½α (ααΆααΆααα·αααΆαα α’αααα’αΆα ααααΎααΆα ααααα»ααααα·ααα»ααα ααΈααα ααα»ααααααΆαα·αααΆαααααααααααααΆαααααΆααααΌα DS ααΆααΆααΆααααα) ααΌααααααα±αα α§ααΆα αααααΆαααααα½α - αααα»αααααΌαααααΎαααααΈ QID αα wikidata αα·ααααααααΆαααααααααα ααΈααΈαα»αααααΈαα·αα’ααααααααααααΆααααΏαααααααα»αααΆααααααααααΎααΆαααααα½αααΈααΆααααααααΆαα αααα»α bash αα·ααααααΆαααααααααααα»αααΆααααααααααααΈαααΆαααααα αααα»α Python ααααααα»α ααΆαααααα αΌαααααΆααΌα αααα
pv βdata/latest-all.json.gzβ |
unpigz -c |
jq --stream $JQ_QUERY |
python3 scripts/post_process.py "output.csv"
αααααΆααααααααα
JQ_QUERY = 'select((.[0][1] == "sitelinks" and (.[0][2]=="enwiki" or .[0][2] =="ruwiki") and .[0][3] =="title") or .[0][1] == "id")'
αααααΆααΆααα·α ααααααααα αΌααααααααΆααααΌαααααααααΎααααααΈαααααααΌαααΆα ααΌα αααααΎαααΎα α’αααΈαααααΎαααΆααααα»αααααααααααΈαα
- pv filepath - ααααααααΆααααααααΆααααααα’ααααΎααα αα―αααΆα αα·αααααααΆααααΆαα·ααΆααααααΆαααα
- unpigz -c α’αΆαααααααααααααααΆα α αΎαααααααααΆαα jq
- jq ααΆαα½ααααααΉα - ααααααΈαααααΆααααΆααααααΎαααααααα αΎααααααΌαααΆαα postprocessor (ααΌα ααααΆααΉαα§ααΆα αααααααΌα) αα αααα»α Python
- ααΆααααα»α αααΆαααΈαααααΎαααΆααααααααΊααΆαααΆαααΈαααααααΆαααααααααααΎαααααααααΆααααααα
ααα»ααα ααααααααα»αααααααΆααααααααΎαααΆααααα»αααααααα αΌαααΎαα·αααααααα (0.5TB) αααααααΆαααααΆαααααΆααα αα·αααα·αα ααααΈαααααααααααΆ αα·αα§ααααααα½αα ααα½αα
αααααΉαααααΆαααα½ααααα α’αΆα ααααΎαααΆαααΆαααα’ αα·αααΆαααααα·αααααΆααα αααα»αααααΆααΈα αα·αααααα bash/zsh/etc α
ααΎααΆααΉαααΆααααααααααα
α―ααΆ? ααΆα / α
αΆαααααΎααααααααααΈαααααα - ααΆααααΈαααααααααΆααααααΆααααΆα
αααΎααααααΆαααα·ααααΆαα
ααΎα’ααΈαααΊαα·αα ααΆαα·ααααα
ααΈααα
ααΆααααααα’αααα R
ααΆααααΈααααααα α’αααα’αΆαα’αΆα α§ααΆα - ααΆα αααααΆααΆααΆααααααααααα·ααΈααΆααααΌα! α αΎαααΆααΆααα·αααΆααααΆααααΉαααααΉαααααΌαα ααααααΆαααΆααααα ααΆααααααΆαααα»ααα½α R αααα»αααα·αααααααΆααα·αααΆαααααααα ααΉαααΆααΆαααα½αα
R ααΊααΆααα·ααααΆαααααΆαααααΆαααα·αα· αα·αααΆααΆαααααΆααααΆαααααΆαα·αα·αααα αα·αααΆαααΎαααΎα (ααααα
ααΆα
ααΆααα
α ααα»α’αααΈααΆαααΆα’ααααα·ααααΆααΆααααααα·ααααααα αΆαααΆα αααααΌαααΉα R? αααΆαα αα ααΆαα αααααΆαααααΆααααααΆααααααααα’ααααα·αααα IT ααααα·ααΆααα·αααααααα αααα»α R. αααα»αααΆαααααααΆααααΆαα ααααααααΌα ααΆααααααα
- αα·αααα±ααα
- ααΈααα·ααΌα
- αα·αααα α·ααααααααα»α
- ααα»ααααααααΆαααΆαα’ααααααα·ααα·ααααΆαα»αααααΆααααααΆααααααΉααααα·αα·α
- ααααΌαααα·αα·α―αααα αα·αααααΌαα·ααααΆαααΆαααΈα (αααααΆααΉαααΆααα’αΆα ααααΎααααα αααα»αααααααααα’ααααα·ααααααΆαααα αα R)α
α ααα»α’αααΈααΆαααΆααΆααΆααΆααΆαααα½α? αα αααα»ααααααααααααΆααααΌαααΆαααααΎαααΆααΉαααΆαα ααΆααΊααΆααααΎααΎααααΈαααααΎαααααΌ αα½αααΆααααΆαα’αΆααα·αααααα αα·αααΆααα½ααα»ααααΆαααΆαααααααααα½α (ααααΌ) ααααΌα ααΆααΆαααΎαααΎααα·αααααααα αααα»ααααα ααααΌα ααΆ ggplot2 - αααααααΆααααααααααΆαααααααααα½ααααααα .
α§ααΆα ααααααα½ααααααΆααααΆαααΎαααΎα
ggplot(data = beav,
aes(x = id, y = temp,
group = activ, color = activ)) +
geom_line() +
geom_point() +
scale_color_manual(values = c("red", "blue"))
ααΆααΌαα αααα·αααΆα αααΎαααΈ R ααΆαααααΆααααααΌααα ααΆαααα αα python ααΌα ααΆ pandas numpy α¬ scipy ααΌα ααΆ dataframes αα·α data vectorization - ααΌα ααααααΆααΌαα α’αααΈαααΆα αααΎααα αααα»α R ααΉαα αΆααααΌα ααΆαααΆα αα·αααΆααααα½ααααααΆααα’αααα
ααΆααααααααΆα
αααΎααααααααΌααα·ααααΆ α§ααΆα αααα
ααααΆα ααα ααααααΉα
αα ααΈααααααα»αααΆααααα·ααααααα·αααααααΆααααα·α ααααααααα»αα αααΎαααααααΌαααααΎααΆαααΆαα½αααααΆα ααα ααααααΉα αα·αααΆααΆαααα½ααααααΆααααααΆα ααα ααΌα ααααβααΌαβαα·ααΆαβαααβααααααβα’αααΈβααΌαααααΆα αααααβαααααβαααβααααβαααααβααΆαβαααβααααα·α α
αα αααα»αααΌαααααΆααα·ααααααααααΆαααααααα»ααΆα ααΎαααΆααααααααΆαααααα ααα»αααααα ααΈααα αααααααΆαααααΊα’αΆα ααααααααΆα ααΆαααααΆααααααΈαα½αααα·αααΆ "αα½ααα" αα·αααΌααααΈααα αααΎααααα
αααααααΆα’ααααααα»αααααααΌααΆαααα»αααααααΆαα α αΎαα αααααααΆα’αααΈααΏαααααΆααα α§ααΆα ααα α αΌαααΎαααααα»αααααΆααααΆαααα½αααΊ Douglas Adams α αΎαααααΎααΆααα·αααααΆαααααΆααΌαααααΆαα
ααααα·αααΎβααΎαβααααΎβααΌαααααΆαβαα·ααααααβαααβααΆααααβααααΆ ααΎαβααΉαβααααΌαβαααααΎαβααΆααΆα α¬βααΆααΆαβααβααβαα½αβαααβααΆαβα ααα½αβαα½αβααβααβα αααΎα αααβααΆαβα αααΎαβααΆ NULL α¬βαααααβαααβαααααβαα·αβαα·αβααααΆαααΎαβαα½αβα ααα½α ααΆβα§ααΆα ααα ααΆβαα·αβααααβααΆβααΎαβααΆβα αααΎαβααΆα ααΆαα»α αΌααααααΆαααααΆαα·ααΌααα - ααΆααΆααα·αααΆαα ααΎαα’αΆα ααΆαααα½αααΆαααα»αααΆααΆαααΆα ααααα‘αα ααα»ααααα α»αααααααααααΉαααααΆαααΆααΆαααα»ααααααΎααααΈααααΎααααΌααααααΈα‘αΌααΈαααααα’αΆα ααααααααΆαααΆαα½αααΉαααααααααΆααααααααΎααααΆααααααααααα½αα
ααΌα
αααα αααααααΆαα·ααααααααΆααα’ααααααΌαααΆααααααΆαα»αααΆααααΆα αα α¬ααΆαααααα binary αα·α unary α
ααΎα’αααα’αΆα
αα½ααααααααΏαααααα
α―ααΆ? ααΈαα½αααααΎααΆαααΆαα½α
ααΆαβαααααβαααβααΊβααΆβααΆααΆβαααα½αβα ααααβαααβαααα»αβααΆαβααααΎβαα·αβααααΎβααΆαβααΆαα½αα
SPARQL
ααΈααΈ:
SPARQL (α’ααααααΆαα recursive ααΈα’ααα αα·ααΈααΆα SPARQL αα·αααΆααΆαααα½α RDF) -ααΆααΆαααα½ααα·αααααα ααααΆααααααααΌRDF , ααααΌα ααΆαα·ααΈααΆα ααΎααααΈαααααΌαααααΎααΆααααα αα·αααααΎααααα αα½αααα SPARQL ααΊααΆααΆαααααΆααααααααα W3C αα·ααα αα αααα·ααααΆαα½ααααα»αα αααααα αα αααα·ααααΆαααααΆαααααα·ααααΆ .
ααα»ααααααΆααα·α ααΆααΊααΆααΆααΆαααα½ααααααΆαααααααα·ααααΆ unary αα·α binary predicates α α’αααααααΆαααααααααΆααααΆαααααααααααΆα’αααΈαααααααΌαααΆααα½ααα»ααα αααα»ααααααα Boolean αα·αα’αααΈααααα·αααα (ααΆααααααΆαα)α
ααΌαααααΆα RDF (Resource Description Framework) αααα½αααΆααααΆαα ααααααα½α SPARQL ααααΌαααΆαααααα·ααααα· ααΊααΈαα object, predicate, subject
- α αΎααααα½αααααΎαααΎαααΈαααααααααΌαααΆαααααα
ααΆαααΆαααΉααααααΉααααααΆααααααΆαααα
αααα»αααααΆαααΈα ααααααα X ααα p_55 (X, q_33) ααΊαα·α - αααααΆααΆααα·α p_55 ααΊααΆααααααααααααΆαααααααα½αα
ααα½αααΆαα½α ID 55 α αΎα q_33 ααΊααΆ ααααα»αααααΆαααααααααΆαα 33 (αα
ααΈααα αα·αααΏαααΆααααΌα ααΆααααΈααααααααα»αα
ααααΆααααααααααααααααΆααααα’α·α)α
α§ααΆα αααααααΆααααα αΆααα·ααααααα
ααΌαααΆα αα·αα§ααΆα αααααΆαα½ααααααααα
ααΈααα
α§ααΆα ααααααα½αααΌαααααΆα
ααΆαααΆααα·α ααΎαα
ααααααααααααααααα’ααα ?αααααα ααΌα
ααααααααΆααααααααααΆα
member_of ααΆααΆααΆααα·ααααααΆ member_of(?country,q458) αα·α q458 ααΊααΆααααααααΆαααααααα ααΆαα’αΊααα»αα
α§ααΆα ααααααααα½α SPARQL αα·αααααΆαααα αααα»ααααΆαααΈα pythonα
ααΆααααααΆ αααα»αααααΌαα’αΆα SPARQL ααΆααΆααααααααΆ - αααα»αααααΆαααΆαααα ααΆααααααΆααααΆαααααΆααααααααααααα»αααΆααααααΆααΆαααΆαα αα ααΆαααααα»αααααα·αααΌαααααΆα ααΎααααΈαααα αααΆααα’αααΈααααααααα·ααααααααααΌαααΆαααΆαααα
ααΆααααααΆααααΆα
αααΎααααααΆαααα·ααααΆααΆαα’ααΈαααΊαα·αα α§ααΆα ααααα
ααΈααα
ααΆααΆαααα½αα‘αΌααΈαα
α’αααα’αΆα
α’αΆαααααααααΎαααααΆααααα
αααα»αα’ααααααααααααα»α
output(X) :- country(X), member_of(X,βEUβ).
αα ααΈαααααΎααααα»ααα·ααΆαα’αααΈααΆααααααΎαααααααααααΆααααααααΈ / 1 (/1 ααΆααααααΆ unary) ααΆααααααααΆαααααΆαα X ααΆααΆααΆααα·αααααααααα (X) - αααααΊ X ααΊααΆαααααααα½α α αΎαααααΆαααΆαα·ααα (X "EU") αααααα
αααααΊαααα»αααααΈααα ααΆαααα·αααααα αα·αα αααΆααααααΌαααΆααααα αΆαααΆαααααααΌα ααααΆ αααααααΎα±ααααΆα’αΆα ααααΎααααΌαααα αΆααΆααααΆαααΆα αα·αααα’α
ααΎα’αααααΆααα½ααα α―ααΆαααα»αα§ααααΆα ααααααα?α ααααααααααΆααααΌαααΆαα½ααααα»αα αα»ααααααααααααα½αααΆααΆααΆαααααα ααααΌα ααΆαααααααα αα α»αααααααα αααα»αααααΌααααααααααα - ααΆα αΆααααΌα ααΆααΆαααααΆααΏααααααα·αα’ααααα ααα»αααααααααααααΆααΎαα‘αΎαα
α§ααΆα ααααααααααααΌααα αααα»α wikidata ααααΎαααΆαααΆααΆα‘αΌααΈααα
αααααΆααα αααα»αααΉααααααα±αααα ααΈαααααΌααααααααΆααααΈαααΈαα ααΆααΆαααααα·ααΈα‘αΌααΈααααααΎα α ααααΎαααααααααααα·ααΈ - αααα»αααΌαααααΆαα±αααα·ααααΆααΆα
http://peace.eas.asu.edu/aaai12tutorial/asp-tutorial-aaai.pdf http://ceur-ws.org/Vol-1145/tutorial1.pdf https://www.youtube.com/watch?v=gVQ0bP8zyHw https://www.youtube.com/watch?v=kdcd7Je2glc https://potassco.org/book/ http://potassco.sourceforge.net/teaching.html https://www.cs.uni-potsdam.de/~torsten/Potassco/Tutorials/fmcad12.pdf
ααααα: www.habr.com