RDFS/OWL Model-First Design

Mar 11, 2015 at 8:08 PM
We here at InKnowWorks love using BrightStar DB; it is great for the type of work we do. It would be a much better fit for us if we could leverage all of the Knowledge Modeling we do. As we machine generate RDF Schema models and RDF Vocabularies it would a huge advantage and convenience if we could generate C# objects from our schema. Right now we have invested in our own RDFS/OWL to C# code generators; do you have plans to build Model-First Design into the Visual Studio experience and if so what is the timeline look like.


Tavi Truman
CTO InKnowWorks, Corp.
Mar 12, 2015 at 11:30 AM
Right now we don't have a plan to introduce RDFS/OWL to C# code generators. Though it is an interesting idea to explore. It should be possible to create something using dotNetRDF to load a local OWL file and then CodeDom to generate interface files - I'm guessing that is the route you guys have taken?

I want to revisit the whole code generation thing in a 2.0 release to see if there is a way to better support platforms other than VisualStudio/Windows (right now the .tt files don't work in Mono/MonoDevelop). This may (possibly) mean going down a totally different route from the current compile-time code generation and looking instead at runtime code generation with Roslyn. Hence I'm a bit wary of spending time now on writing schema-based code generators for a compile-time approach when this might all change in 2.0.

Having said that, if this is something you guys would like to contribute to the project (or maybe release as a separate package that builds on top of B*) it would be great to see what we can achieve!


Mar 12, 2015 at 2:57 PM
Hey Kal, thanks for getting back to me so quickly. Yes, we have built a number of engines and materializes to generate RDF vocabularies (Dublin Core, SKOS, RDF, RDFS, OWL/DL and our own custom productions) from C#, WSDL and XSD sources; we can also go the other way.

As our meta programming frameworks are designed to operate at runtime and function at high speeds in a multi core environment, Visual Studio Design Time does not work for us; we tried .tt files but its not what we need. We are working with Roslyn but its a steep learning curve; difficult to instrument code generation for out needs. Looks like Rosyln is not quite what we need in the way of a full featured dynamic runtime metaprogramming framework.

Right now we are machine generating RDF (schema, vocabularies, data) content on the fly and we batch load it into Brightstar - works great! I've written a full round trip code generator so we can go both ways from C# to RDF productions and RDF to C#.

At present the code is part of our new commercial offerings so we can't release all of what we are doing in the wild right now but we are looking to refactor the engines so they are add-one to the .dotnetrdf and Brightstar packages.

Our other need is to combine our Reasoners with BrightStar; we are still testing our RDFS Closure and DL Reasoners that run with our Ontology-based Workflow engine. Brightstar is our choice for graph storage so we are interested in seeing the technology evolve and grow.


Sent from my Windows Phone