3 ms·
Completely earnest question, and I hope you have the time to answer -- How do you effectively use SemWeb tech? Obviously you can't build your whole system with
by possibilistic 15y ago
Completely earnest question, and I hope you have the time to answer --
How do you effectively use SemWeb tech? Obviously you can't build your whole system with a triple store backend; that would be too slow. Especially if you have a data explosion of millions and millions of facts.
I've thought of a neat little distributed p2p research project that exchanges news items like HN/Reddit with your interest graph as determined by the nodes you share upvotes with (or weighed by some scheme you can tweak). Do you simply use RDF/OWL ontologies like FOAF, SIOC, etc. as the data transport format and then actually store information in relational databases internally?
I want to do this so people can curate their own interest graphs, essentially; it's like prismatic, but software under your own control. Such a platform would be extensible since you can add new ontologies to support new needs. The Slashdot crowd, for instance, might moderate with tags such as 'insightful' rather than simply 'upvoting'.
And can you use these graph databases like Prolog systems? And can we make that intuitive for the end user?
Or as a more practical example, what about a molecule database? I'd need to store representations, properties, etc. There's a potentially limitless amount of factual information that I could store on one particular molecule. How do you make your software flexible enough to "know" what data you have on any given molecule and decide which "context" to portray it? (ie. if it's of medicinal use, synthetic chemistry use, is simply a common reagent, etc.) Is some of this just inherently kept in a relational database for fast querying with the graph database backing an asynchronously updating view?
- bkirkbri 15y agoHave you looked into http://datomic.com http://datomic.com yet? It seems to address a lot of the concerns you have (triple-store-like, high performance, Prolog-like queries).
- akollegger 15y agoFor the applications you are describing, they could be modeled as well in a "property graph" as in a triple-store. The thing about Neo4j is that it is a raw graph data structure, with nodes, edges and properties on both. With a query language like Cypher it is easy to then traverse the graph to find information. And Neo4j isn't just a graph abstraction, it's purpose built database down to the file system, designed for fast graph traversals. The RDF/OWL approach has a nice advantage with a built-in notion of logical relationships between things, while being a bit more verbose in storage. Ontologies are a mixed blessing. For the flexibility you mention, it's common with Neo4j to "organically grow" your data by simply elaborating the structures and relationships. This allows, for instance, multiple domains to be intermingled across a common base set of data, differentiated by the relationships they establish to the common data. Cheers, Andreas
- th0ma5 15y agoI have another viewpoint, and that might be that perhaps the millions of facts don't originate on this machine, and hence, the places where the facts originate could have a SPARQL query node... any other query node could then aggregate the results, and you would then in effect have a distributed cluster.