>>> import rdflib
>>> from rdflib import ConjunctiveGraph
>>> graph = ConjunctiveGraph()
>>> graph.parse("http://semantictweet.com/ecolix"))>
>>> for triple in graph:
... print triple
Antoine Logean's bookmarks
Some links about Linked Data, Semantic and Ontology
Wednesday, December 28, 2011
Introduction to RDFLib
Monday, September 12, 2011
Some unsorted facts about RDF
Here some facts taken from the book "practical RDF" of Shelley Powers
about RDF
- RDF provides a standard way of expressing graphs of data and sharing them with other people and with machines.
- RDF is a language for expressing data models using statements expressed as triples. Each statements is composed of a subject, a predicate, and an object.
- RDF conceptualizes anything (and everything) in the universe as a resource. A resource is simply anything that can be identified with a Universal Resource Identifier (URI). And by design, anything we can talk about can be assigned a URI.
- URLs are a subset of URIs that identify where digital information can be retrieved.
- Because URIs uniquely identify resources (things in the world), we consider them strong identifiers. There is no ambiguity about what they represent, and they always represent the same thing, regardless of the context we find them in.
about RDF graph model
- the RDF data model is best represented by a directed labeled graph
- the RDF directed graph consists of a set of nodes connected by arcs, forming a pattern of node-arc-node. Additionally, the nodes come in three varieties: uriref, blank nodes, and literals.
- there are RDF data models that can be represented in RDF graphs, but not in RDF/XML. The addition of rdf:nodeIDs provided some of the necessary syntactic elements that allow RDF/XML to record all RDF graphs. However, RDF/XML still can't encode graphs whose properties (predicates) cannot be recorded as namespace-qualified XML names, or QNames.
- the components of the RDF graph - the uriref, bnode, literal, and arc - are the only components used to document a specific instance of an RDF data model.
- there is no rule or regulation within the RDF graph that insists that all nodes be somehow connected with one another.
- an RDF graph is considered grounded if there are no blank nodes.
- an instance of an RDF graph is a graph in which each blank node has been replaced by an identifier, becoming a named node.
about RDF tiple
- each RDF triple is a complete and unique fact
- each RDF triple can be joined with other RDF triples, but it still retains its own unique meaning, regardless of the complexity of the model in which it is included
- regardless of how complex an RDF graph, it still consists of only a grouping of unique, simple RDF triples, and each is made upof a subject, predicate and object.
about urirefs
- uriref within a RDF model has not to be resolvable (point to something that is accessible on the web). RDF is designed to be a generic means of recording data, it can't restrict urirefs to being "real" data sources.
- URIs provide a common syntax for naming a resource regardless of the protocol used to access the resource.
- A URI is only an identifier. A specific protocol does not need to be specified, nor must the object identified physically exist on the Web
- you could use as URI a UUID (Universally Unique Identifier) referencing a COM or other technology components.
- URL is a location of an object, while a URI can function as a name or a location.
about blank nodes
- blank nodes are also called bnodes or anonymous nodes
- blank nodes are nodes that did not have a URI
- most RDF parsers generate an unique identifier (genid:xxxxx) for each blank nodes. This is needed to distinguish blank nodes from each others within the single instance of the graph.
- blank nodes are never merged in a graph because there is no way of determining whether two nodes are the same.
about literals
- a literal consist of three parts: a character string and an optional language tag and data type.
- literals represent RDF objects only, never subjects or predicates
about predicates
- every arc (predicate), without exception, must be labeled within the graph.
Saturday, August 13, 2011
Molecular substructure & similarity search
- http://depth-first.com/articles/2008/10/02/fast-substructure-search-using-open-source-tools-part-1-fingerprints-and-databases
- http://merian.pch.univie.ac.at/~nhaider/cheminf/moldb.html
- http://books.google.ch/books?id=pTrwTKzECOsC&dq=Chord+cartridge&source=gbs_navlinks_s
Fingerprint
- http://www.daylight.com/dayhtml/doc/theory/theory.finger.html#RTFToC80
- http://chemhack.com/archives/tag/fingerprint/
- http://chemhack.com/archives/2008/11/110/
- http://depth-first.com/articles/2008/10/02/fast-substructure-search-using-open-source-tools-part-1-fingerprints-and-databases
- http://depth-first.com/articles/2008/10/03/fast-substructure-search-using-open-source-tools-part-2-fingerprint-screen-with-sql
- http://depth-first.com/articles/2008/10/06/fast-substructure-search-using-open-source-tools-part-3-a-crud-api-for-fingerprints-in-ruby
Substructure Search
- http://depth-first.com/articles/2008/10/02/fast-substructure-search-using-open-source-tools-part-1-fingerprints-and-databases
- http://www.ebi.ac.uk/chebi/userManualForward.do#Advanced%20Search
- http://www.eyesopen.com/docs/html/javaprog/MaximumCommonSubstructureSearch.html
- http://www.ebi.ac.uk/thornton-srv/software/SMSD/
- http://www.jcheminf.com/content/1/1/12
Structure Editorts
Markush Suche (R-Gruppe)
- http://www.indiana.edu/~cheminfo/C571/c571_Barnard5.ppt
- http://www.daylight.com/meetings/mug97/Barnard/970227JB.html#SIANI95
- http://www.documentarea.com/qsar/GeoffDowns.pdf
- http://www.ambinter.com/jchem/doc/user/query_combinatorial_markush.html
Chemistry Databases
- http://depth-first.com/articles/2007/01/24/thirty-two-free-chemistry-databases
- PubChem ftp : ftp://ftp.ncbi.nih.gov/pubchem/Compound/CURRENT-Full/SDF/
Chemoinformatics Libs
LOD Visualisation using JavaScript
jQuery Sparkline
jQuery plugin generates sparklines (small inline charts) directly in the browser using data supplied either inline in the HTML, or via javascript.
Protovis
D3.js
gRaphaƫl
smoothiecharts
Processing.js
Geo Information :
http://openlayers.org/
Javascript mapping abstraction library mapstraction
Javascript 3D Engine
three.js
SVG
Polymaps
Tuesday, July 19, 2011
Word Bank is giving public access to 7000 data sets
Schema.org: Spoonfeeding Library Data to Search Engines
The internet of thinks
Tuesday, July 12, 2011
Semantic Wiki with Referata
Data.gov catalogs
Friday, May 20, 2011
DNS entries caching by Windows
This command shows all the dns domain name of the web servers web sites that a user has been visited.
ipconfig /flushdns:
removes that lists.
The Berlin SPARQL Benchmark
Query 1: Find products for a given set of generic features
SELECT DISTINCT ?product ?label
WHERE {
?product rdfs:label ?label .
?product rdf:type %ProductType% .
?product bsbm:productFeature %ProductFeature1% .
?product bsbm:productFeature %ProductFeature2% .
?product bsbm:productPropertyNumeric1 ?value1 .
FILTER (?value1 > %x%)}
ORDER BY ?label
LIMIT 10
Query 2: Retrieve basic information about a specific product for display purposes
SELECT ?label ?comment ?producer ?productFeature ?propertyTextual1
?propertyTextual2 ?propertyTextual3 ?propertyNumeric1
?propertyNumeric2 ?propertyTextual4 ?propertyTextual5
?propertyNumeric4
WHERE {
%ProductXYZ% rdfs:label ?label .
%ProductXYZ% rdfs:comment ?comment .
%ProductXYZ% bsbm:producer ?p .
?p rdfs:label ?producer .
%ProductXYZ% dc:publisher ?p .
%ProductXYZ% bsbm:productFeature ?f .
?f rdfs:label ?productFeature .
%ProductXYZ% bsbm:productPropertyTextual1 ?propertyTextual1 .
%ProductXYZ% bsbm:productPropertyTextual2 ?propertyTextual2 .
%ProductXYZ% bsbm:productPropertyTextual3 ?propertyTextual3 .
%ProductXYZ% bsbm:productPropertyNumeric1 ?propertyNumeric1 .
%ProductXYZ% bsbm:productPropertyNumeric2 ?propertyNumeric2 .
OPTIONAL { %ProductXYZ% bsbm:productPropertyTextual4 ?propertyTextual4 }
OPTIONAL { %ProductXYZ% bsbm:productPropertyTextual5 ?propertyTextual5 }
OPTIONAL { %ProductXYZ% bsbm:productPropertyNumeric4 ?propertyNumeric4 }}
Query 3: Find products having some specific features and not having one feature
SELECT ?product ?label
WHERE {
?product rdfs:label ?label .
?product rdf:type %ProductType% .
?product bsbm:productFeature %ProductFeature1% .
?product bsbm:productPropertyNumeric1 ?p1 .
FILTER ( ?p1 > %x% )
?product bsbm:productPropertyNumeric3 ?p3 .
FILTER (?p3 Query 4: Find products matching two different sets of features
SELECT ?product ?label
WHERE {
{ ?product rdfs:label ?label .
?product rdf:type %ProductType% .
?product bsbm:productFeature %ProductFeature1% .
?product bsbm:productFeature %ProductFeature2% .
?product bsbm:productPropertyNumeric1 ?p1 .
FILTER ( ?p1 > %x% )
} UNION {
?product rdfs:label ?label .
?product rdf:type %ProductType% .
?product bsbm:productFeature %ProductFeature1% .
?product bsbm:productFeature %ProductFeature3% .
?product bsbm:productPropertyNumeric2 ?p2 .
FILTER ( ?p2> %y% ) }}
ORDER BY ?label
LIMIT 10 OFFSET 10
Query 5: Find products that are similar to a given product
SELECT DISTINCT ?product ?productLabel
WHERE {
?product rdfs:label ?productLabel .
FILTER (%ProductXYZ% != ?product)
%ProductXYZ% bsbm:productFeature ?prodFeature .
?product bsbm:productFeature ?prodFeature .
%ProductXYZ% bsbm:productPropertyNumeric1 ?origProperty1 .
?product bsbm:productPropertyNumeric1 ?simProperty1 .
FILTER (?simProperty1
(?origProperty1 - 120))
%ProductXYZ% bsbm:productPropertyNumeric2 ?origProperty2 .
?product bsbm:productPropertyNumeric2 ?simProperty2 .
FILTER (?simProperty2
(?origProperty2 - 170)) }
ORDER BY ?productLabel
LIMIT 5
Query 6: Find products having a label that contains a specific string
SELECT ?product ?label
WHERE {
?product rdfs:label ?label .
?product rdf:type bsbm:Product .
FILTER regex(?label, "%word1%")}
Query 7: Retrieve in-depth information about a product including offers and reviews
SELECT ?productLabel ?offer ?price ?vendor ?vendorTitle ?review
?revTitle ?reviewer ?revName ?rating1 ?rating2
WHERE {
%ProductXYZ% rdfs:label ?productLabel .
OPTIONAL {
?offer bsbm:product %ProductXYZ% .
?offer bsbm:price ?price .
?offer bsbm:vendor ?vendor .
?vendor rdfs:label ?vendorTitle .
?vendor bsbm:country
?offer dc:publisher ?vendor .
?offer bsbm:validTo ?date .
FILTER (?date > %currentDate% ) }
OPTIONAL {
?review bsbm:reviewFor %ProductXYZ% .
?review rev:reviewer ?reviewer .
?reviewer foaf:name ?revName .
?review dc:title ?revTitle . OPTIONAL { ?review bsbm:rating1 ?rating1 . }
OPTIONAL { ?review bsbm:rating2 ?rating2 . } } }
Query 8: Give me recent English language reviews for a specific product
SELECT ?title ?text ?reviewDate ?reviewer ?reviewerName ?rating1
?rating2 ?rating3 ?rating4
WHERE {
?review bsbm:reviewFor %ProductXYZ% .
?review dc:title ?title .
?review rev:text ?text .
FILTER langMatches( lang(?text), "EN" )
?review bsbm:reviewDate ?reviewDate .
?review rev:reviewer ?reviewer .
?reviewer foaf:name ?reviewerName .
OPTIONAL { ?review bsbm:rating1 ?rating1 . }
OPTIONAL { ?review bsbm:rating2 ?rating2 . }
OPTIONAL { ?review bsbm:rating3 ?rating3 . }
OPTIONAL { ?review bsbm:rating4 ?rating4 . } }
ORDER BY DESC(?reviewDate) LIMIT 20
Query 9: Get information about a reviewer.
DESCRIBE ?x
WHERE {
%ReviewXYZ% rev:reviewer ?x }
Query 10: Get cheap offers which fulfill the consumer’s delivery requirements.
SELECT DISTINCT ?offer ?price
WHERE {
?offer bsbm:product %ProductXYZ% .
?offer bsbm:vendor ?vendor .
?offer dc:publisher ?vendor .
?vendor bsbm:country %CountryXYZ% .
?offer bsbm:deliveryDays ?deliveryDays .
FILTER (?deliveryDays %currentDate% ) }
ORDER BY xsd:double(str(?price))
LIMIT 10
Query 11: Get all information about an offer.
SELECT ?property ?hasValue ?isValueOf
WHERE {
{ %OfferXYZ% ?property ?hasValue }
UNION
{ ?isValueOf ?property %OfferXYZ% } }
Query 12: Export information about an offer into another schema.
CONSTRUCT {
%OfferXYZ% bsbm-export:product ?productURI .
%OfferXYZ% bsbm-export:productlabel ?productlabel .
%OfferXYZ% bsbm-export:vendor ?vendorname .
%OfferXYZ% bsbm-export:vendorhomepage ?vendorhomepage .
%OfferXYZ% bsbm-export:offerURL ?offerURL .
%OfferXYZ% bsbm-export:price ?price .
%OfferXYZ% bsbm-export:deliveryDays ?deliveryDays .
%OfferXYZ% bsbm-export:validuntil ?validTo }
WHERE {
%OfferXYZ% bsbm:product ?productURI .
?productURI rdfs:label ?productlabel .
%OfferXYZ% bsbm:vendor ?vendorURI .
?vendorURI rdfs:label ?vendorname .
?vendorURI foaf:homepage ?vendorhomepage .
%OfferXYZ% bsbm:offerWebpage ?offerURL .
%OfferXYZ% bsbm:price ?price .
%OfferXYZ% bsbm:deliveryDays ?deliveryDays .
%OfferXYZ% bsbm:validTo ?validTo }
Tuesday, May 17, 2011
Monday, May 16, 2011
Mac Keyboard Shortcuts
| switch to black and white | ctrl + alt + cmd + 8 |
| Take picture of the entire screen | cmd + shift + 3 |