Yes. Please use RDF.
And please use a common vocabulary.
If you want to know how to do this? Have a look at the UK governments open data portal (which uses RDF): data.gov.uk
And their SPARQL (query) endpoint: http://data.gov.uk/sparql
Yes. Please use RDF.
And please use a common vocabulary.
If you want to know how to do this? Have a look at the UK governments open data portal (which uses RDF): data.gov.uk
And their SPARQL (query) endpoint: http://data.gov.uk/sparql
I have tried for many, many years to learn to appreciate RDF and semantic technologies in general, but everytime I get involved it screams of a problem desperately looking for a solution, and whose general case of the problem (reasoning about relations) was already solved better decades ago (and with the recent revived interested in logic/relational programming seems likely to improve soon).
If you want to represent a graph structure in your data why not sets of json objects? Sure you end up with an ad hoc vocabulary, but I've never seen a successful project make use of the RDF ideal of massively shared vocabularies.
Pity you haven't gotten to like it. It's being tested on a lot of stuff, some sticks some doesn't.
And OWL has a number of subsets for whatever complexity you feel like enjoying.
http://en.wikipedia.org/wiki/SPARQL
My personal preference is, whenever there's a lot of records to be processed, a tab separated UTF-8 text file. (I admit I am biased as I like to use Perl for first passes).
The number one difference between RDF and CSV (TSV in you case) is that it's understandable by a computer. CSV is simple parsable, while RDF comes with all the meta data the computer needs.
For non-tabular data, why not using JSON?
RDF is understandable by computers. It brings it's semantics along.
CSV is only syntax. It doesn't even support datatypes.
JSON is simply a data format serialisation. RDF can be serialised to JSON or to XML if you wish.
http://en.wikipedia.org/wiki/Resource_Description_Framework
I'm interested in knowing a little more about why you like it so much.
To query RDF, we use the graph query language SPARQL. You create a graph with variables in it, and the query engine will find subgraphs that match the graph.
On top of this we can do reasoning (based on 1st order logics and datalog). With RDFS (simple) and OWL (advanced).
And to bring all this together there are many open vocabularies and open data sets linked together. One notable one: DBpedia (based on wikipedia).
A grand view of linked data: http://lod-cloud.net/versions/2011-09-19/lod-cloud.html
A sample SPARQL query on DBpedia listing software by date:
http://dbpedia.org/sparql?default-graph-uri=http%3A%2F%2Fdbp...
The actual query:
select ?a min(?b) (min(?date) as ?date2) where {
?a a dbpedia-owl:Software;
rdfs:label ?b;
dbpedia-owl:latestReleaseDate ?date.
}
group by ?a
order by ?date2
LIMIT 100