рдирдорд╕реНрддреЗ
рдПрдХ рд╕рдореНрдореЗрд▓рди рдореЗрдВ рднрд╛рдЧ рд▓реЗрдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдПрдХ рд╡рд┐рдЪрд╛рд░ рдорд┐рд▓рд╛, рдЬрд┐рд╕рдХреЗ рдЕрд╡рддрд╛рд░ рдореИрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реВрдВред
рдпрд╣ рдкреЛрд╕реНрдЯ
рдЧреНрд░реИрдм рдФрд░
rdflib рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рд╡реЗрдм рдкреГрд╖реНрдареЛрдВ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЗ рд▓рд┐рдП
SPARQL рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рддреИрдпрд╛рд░ рд╡рд░реНрдЧ рднреА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
рдпрд╣ рдЗрд╕ рдЙрдкрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрди рд╕рд╛рдЗрдЯреЛрдВ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдЪрд╛рд▓реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдЗрд╕реЗ рд╕рдВрд░рдЪрд┐рдд рд░реВрдк (rdf-triples, xml, json) рдореЗрдВ рдПрдХ рдРрд╕реЗ рд░реВрдк рдореЗрдВ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ "рдорд╢реАрдиреЛрдВ" рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред
Html рд╕рд╛рдордЧреНрд░реА рдореЗрдВ SPARQL рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рд╕реНрдерд╛рдиреАрдп rdf рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕реЗ html рдкреЗрдЬ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рд╣рдбрд╝рдкрдиреЗ рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рднрд░реЗрдВред
рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдЖрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ SPARQL рдкреНрд▓рдЧрдЗрди рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рднреА рдкрдВрдЬреАрдХреГрдд рдХрд░рддреЗ рд╣реИрдВред
рд╣рдорд╛рд░реА рдХрдХреНрд╖рд╛ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ, рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рд░реНрдорд╛рддрд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВред
рдбрд┐рдЬрд╛рдЗрдирд░ рдЙрд╕ рдкреГрд╖реНрда рдХреЗ url рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдФрд░ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдирд╛рдо рд╕реНрдерд╛рди рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рдЧреИрд░-рдорд╛рдирдХ рд╕реНрдерд╛рди рдХреЛ рднреА рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред
class SQtHD(): ''' sparql query to html documents ''' def __init__(self,url=None,htmlNamespace='http://localhost/rdf/html#'): ''' Constructor ''' self.__grab__=grab.Grab()
рдЕрдЧрд▓рд╛, рдЖрдкрдХреЛ рдкреГрд╖реНрда рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде рднрдВрдбрд╛рд░ рдХреЛ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
def __store__(self,url): self.__storage__.remove((None,None,None))
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд╕реНрддреБ рдЬрд╛рдирдХрд╛рд░реА рд╕реНрдерд╛рдиреАрдп рднрдВрдбрд╛рд░рдг рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИ:
- рддрддреНрд╡ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА (рдЬреЛ html рдЯреИрдЧ)
- рдЬрдирдХ рдЬрд╛рдирдХрд╛рд░реА
- рднрд╛рдЗрдпреЛрдВ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рддрддреНрд╡ рдХреА рд╕реНрдерд┐рддрд┐ рдкрд░ рдЬрд╛рдирдХрд╛рд░реА
- рддрддреНрд╡ рдиреЗрд╕реНрдЯрд┐рдВрдЧ рдЬрд╛рдирдХрд╛рд░реА
- рддрддреНрд╡ рдореЗрдВ рдирд┐рд╣рд┐рдд рдкрд░реАрдХреНрд╖рдг
- рдмрдЪреНрдЪреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкрд░ рдЬрд╛рдирдХрд╛рд░реА
- рдмрд╛рд▓ рддрддреНрд╡реЛрдВ рдХрд╛ рд╕рдВрджрд░реНрдн
- рд╡рд╕реНрддреБ рдХреЗ рд▓рд┐рдП рдЧреБрдг рдорд╛рди
рдЕрдЧрд▓реА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдлрд╝рдВрдХреНрд╢рди рдкреБрдирд░рд╛рд╡рд░реНрддреА рд░реВрдк рд╕реЗ рдЖрд╡рд╢реНрдпрдХ рдЬрд╛рдирдХрд╛рд░реА рдПрдХрддреНрд░ рдХрд░рдиреЗ рдФрд░ рдЗрд╕реЗ рднрдВрдбрд╛рд░ рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рд╡рд╛рд▓реЗ рддрддреНрд╡реЛрдВ рдХреЗ рдкреЗрдбрд╝ рд╕реЗ рдЧреБрдЬрд░рддреА рд╣реИред
def __parse__(self,element,parent=None,children_position=None,children_level=0): current_element=BNode() children_elements=element.getchildren() if str(element.tag)=='<built-in function Comment>': self.__storage__.add((current_element, RDF.type, self.__namespace__['comment'])) else: self.__storage__.add((current_element, RDF.type, self.__namespace__[element.tag])) if not parent==None: self.__storage__.add((current_element,self.__namespace__['parent'],parent)) self.__storage__.add((parent,self.__namespace__['children'], current_element)) self.__storage__.add((current_element,self.__namespace__['children_position'], Literal(children_position))) self.__storage__.add((current_element,self.__namespace__['children_level'], Literal(children_level))) if element.text and len(element.text.strip())>0: self.__storage__.add((current_element,self.__namespace__['text'], Literal(element.text.strip()))) if element.text_content() and len(element.text_content().strip())>0: self.__storage__.add((current_element,self.__namespace__['text_content'], Literal(element.text_content().strip()))) self.__storage__.add((current_element,self.__namespace__['children_count'], Literal(len(children_elements)))) for i in element.attrib: self.__storage__.add((current_element,self.__namespace__[i], Literal(element.attrib[i]))) for i in range(len(children_elements)): self.__parse__(children_elements[i],current_element,i,children_level+1)
рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рд╕реНрдерд╛рдиреАрдп рд╕рдВрдЧреНрд░рд╣рдг рдореЗрдВ SPARQL рдХреНрд╡реЗрд░реА рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИред
def executeQuery(self,query,url=None): ''' execute query on storadge ''' if url:
рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреГрд╖реНрда рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде рднрдВрдбрд╛рд░ рднрд░рддрд╛ рд╣реИред
def loadStoradge(self,url): ''' load and parse html page to local rdf storadge ''' self.__store__(url)
рдФрд░ рдЕрдВрдд рдореЗрдВ, рдХреБрдЫ рд╕рд░рд▓ рдХреНрд╡реЗрд░реА рдЙрджрд╛рд╣рд░рдгред
if __name__ == "__main__": endPoint = SQtHD()
рд╕рднреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдВрдХ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рдЕрдиреБрд░реЛрдз рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкрд░рд┐рдгрд╛рдо:
All script srcs: /javascripts/1341931979/all.js /javascripts/1341931979/_parts/posts.js /javascripts/1341931979/_parts/to_top.js /javascripts/1341931979/_parts/shortcuts.js /javascripts/1341931979/libs/jquery.form.js /javascripts/1341931979/facebook_reader.js /js/1341931979/adriver.core.2.js /javascripts/1341931979/libs/highlight.js /javascripts/1341931979/hubs/all.js /javascripts/1341931979/posts/all.js
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рднрдВрдбрд╛рд░ рдХреЛ рднрд░рдиреЗ рдХреЗ 3 рддрд░реАрдХреЗ рд╣реИрдВ:
- рдХреНрд▓рд╛рд╕ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдореЗрдВ
- LoadStoradge рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ
- рд╣рд░ рднрдВрдбрд╛рд░рдг рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП
GIST рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ xml рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдирд╛рдо рд╕реНрдерд╛рди рдкрд░рд┐рднрд╛рд╖рд╛ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИред рдирд╛рдо рд╕реНрдерд╛рди рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдЯреИрдЧ рдХреНрдпрд╛ рд╣реИ, рдЖрд╡рд╢реНрдпрдХ рдЧреБрдгреЛрдВ рдФрд░ рд╕рдВрдмрдВрдзреЛрдВ рдХреЛ рджреЗрддрд╛ рд╣реИ, рдФрд░ html 4 рдЯреИрдЧ рдХреЛ рднреА рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред
рдЕрдиреБрд╢рдВрд╕рд┐рдд рдкрдврд╝рдиреЗ:
рдЯреЛрдмреА рд╕реЗрдЧрд░рд╛рди, рдХреЙрд▓рд┐рди рдЗрд╡рд╛рдВрд╕, рдЬреЗрдореА рдЯреЗрд▓рд░ рджреНрд╡рд╛рд░рд╛ "рд╕рд┐рдореЗрдВрдЯрд┐рдХ рд╡реЗрдм рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ"