RDF, Sparql query with python

A simple query to test rdf and sparql.

[codesyntax lang="python"]
import sys
import rdflib
from rdflib.Graph import ConjunctiveGraph

g = ConjunctiveGraph()

g.parse(sys.argv[1], format="xml")

fbns = rdflib.Namespace("http://rdf.freebase.com/ns/")

player_refs = g.query("""SELECT ?player
        WHERE {
            ?root fb:soccer.football_roster_position.player ?player .
        }""", initNs={'fb':fbns})
players = []
for player in player_refs:
    gp = ConjunctiveGraph()
    gp.parse(player[0], format="xml")
    results = gp.query("""SELECT ?player_name ?player_position
        WHERE {
            ?player fb:type.object.name ?player_name .
            ?player fb:soccer.football_player.position_s ?player_position .
        }""", initNs={'fb':fbns})
    l = list(results)
    for r in l:
        if r[0].language == 'en':
            players.append(r)

for player in players:
    print player

[/codesyntax]

The query will return all player-position tuple from freebase’s db for specified resource.
To query for players of AC Milan, execute the script with resource location:
python rdfquery.py http://rdf.freebase.com/rdf/en/ac_milan
got:
(rdflib.Literal(‘Yoann Gourcuff’, language=u’en’, datatype=None), rdflib.URIRef(‘http://rdf.freebase.com/ns/en.midfielder’))
(rdflib.Literal(‘Andrea Pirlo’, language=u’en’, datatype=None), rdflib.URIRef(‘http://rdf.freebase.com/ns/en.midfielder’))
(rdflib.Literal(‘Paolo Maldini’, language=u’en’, datatype=None), rdflib.URIRef(‘http://rdf.freebase.com/ns/en.defender’))
(rdflib.Literal(‘Gianluca Zambrotta’, language=u’en’, datatype=None), rdflib.URIRef(‘http://rdf.freebase.com/ns/en.defender’))
(rdflib.Literal(‘Davide Facchin’, language=u’en’, datatype=None), rdflib.URIRef(‘http://rdf.freebase.com/ns/guid.9202a8c04000641f8000000000c75e75′))
(rdflib.Literal(‘Marcus Plinio Diniz Paixao’, language=u’en’, datatype=None), rdflib.URIRef(‘http://rdf.freebase.com/ns/en.defender’))

All resources are stored as rdf:resource references. If you are also Milan fan like me, take a quick look at the players, well, the data is not up to date:)

I have also tried to fetch data for my favorite local team.
python rdfquery.py http://rdf.freebase.com/rdf/en/jiangsu_shuntian
(rdflib.Literal(‘Yao Hanlin’, language=u’en’, datatype=None), rdflib.URIRef(‘http://rdf.freebase.com/ns/en.midfielder’))

烧饭

首先再祝标题中的人生日快乐。

虽说daf同学做菜好看好吃(看出奉承意思的读者请可以买棒棒糖奖励自己),但是这不能成为本人自甘堕落自甘刷碗停滞不前的理由。况且,作为一个口味疑似诡异的人,如果不练好技术,掌握一技之长,将来很难在厨房立足,更不要提取得话语权。甚至没有在饭前进厨房的机会,下场会很惨。

以上是关于烧饭必要性的论述。入正题,今天迎着正午的朝阳,从超市买回了青椒芹菜牛肉鸡肉,为了能让才华体现得淋漓尽致,做了两个菜。简述过程的话大抵是以下update体流程:

  1. 洗菜;
  2. 牛肉切丝(个中坎坷不作赘述),加料酒、淀粉、盐;
  3. 鸡肉切片(个中曲折不必了解),加蛋清、盐、淀粉;
  4. 芹菜切段;
  5. 小碗调酱油、醋、糖、料酒,备用;
  6. 葱姜切末备用;
  7. 开火倒油,油热了加葱姜末和辣椒酱(家里没有正经辣椒酱了,就用辣椒豆豉代替,此决定终遗千古恨),牛肉丝下锅,变色,取出;
  8. 炒芹菜;
  9. 牛肉芹菜混合,再炒,把第5步的混合液体倒进锅里,搅搅,加味精装盘;
  10. 洗锅;
  11. 开火倒油,油热了加葱姜末,鸡肉下锅,待变色后变糊前取出;
  12. 青椒撕碎下锅,不时加水,炒到上一步油烟被吸得差不多为止;
  13. 混合,加味精,出锅。
  14. #

留张照片有图有真相:

关于照片中出现的“暗物质”,绝对不是因为鸡肉片切得太不均匀导致有的糊了有的还没熟,最后葱姜通通糊掉油烟满厨房的结果。还有为什么只有一张照片呢?原因是另一盘菜拍照构图的时候发现需要的曝光时间比较长,没有带三脚架所以拍不出理想的效果,故而没有把照片发上来。画外音:就是酱油放多了太黑了,画外音毕。画外音:把刚才那个画外音的拖出去砍了,画外音毕。

最后引用一句名人名言,你永远不会知道自己的下一盘菜到底是什么味道。