GithubHelp home page GithubHelp logo

brightstardb / brightstardb Goto Github PK

View Code? Open in Web Editor NEW
459.0 459.0 81.0 63.65 MB

This is the core development repository for BrightstarDB.

Home Page: http://brightstardb.com/

License: MIT License

HTML 8.30% XSLT 0.02% C# 66.88% CSS 1.32% Ruby 0.72% Batchfile 0.01% JavaScript 21.90% Smalltalk 0.01% Rich Text Format 0.64% ASP.NET 0.21%
csharp dotnet rdf sparql triplestore

brightstardb's Introduction

BrightstarDB

Build status

BrightstarDB is a native .NET RDF triple store. It uses dotNetRDF to provide support for a wide range of RDF syntaxes as well as SPARQL query support. In addition to providing a raw RDF-based API, BrightstarDB also provides support for binding RDF resources to .NET dynamic objects; and a contract-first entity framework that enables the use of LINQ rather than SPARQL for query purposes.

For details and documentation, please see our website at http://brightstardb.com/

To get started with BrightstarDB you may want to check out the following resources:

If you want a binary installer that includes BrightstarDB, the BrightstarDB service and the Polaris management tool, please get them from the releases page

Licensing

BrightstarDB is provided under the MIT license. It is free to use for both commercial and non-commercial purposes.

Questions ?

If you have questions please raise them on StackOverflow and tag your question brightstardb

Bugs ?

Please report any bugs you find here on the GitHub issue tracker.

brightstardb's People

Contributors

dgerding avatar emperorxlii avatar feugen24 avatar gra-moore avatar iainsproat avatar itmeze avatar jjchiw avatar kal avatar kentcb avatar marknuzz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

brightstardb's Issues

Tidy up the doc folder

Now that the sphinx documentation sources are ahead of the old Help and Manual, remove H&M docs and move the sphinx docs up to the doc/src directory. The build settings on readthedocs.org will need updating too.

Remove obsolete / unsupported code

Azure and cluster code are not being actively maintained at the moment.
Dotnetrdf patches are no longer necessary.
Server directory is obsolete.

Delete the azure and cluster code. They have not been modified since the last release so if they are ever needed it will be possible to retrieve them from the 1.3 or 1.4 release tags.

Delete the dotnetrdf patches - same reasoning, and they are no longer needed in any form.

Delete server directory entirely.

Entity deletion does not update InverseProperty collection

Issue from the Google group (https://groups.google.com/forum/#!topic/brightstardb-users/e9NahY7bf3k).

I have an entity A containing a collection of entities B.
Entity A has an inverse property pointing to a property in entity B.

I have tried two methods for removing an entity B object.

  1. Call the DeleteObject method on the context followed by SaveChanges.

This removes the desired entity from the B entity set in the DB, but does not
remove it from the A entity set to which it was linked - the fields are set to null
but the Id still exists.
This means when I test the count of objects has reduced, it fails.

  1. If I explicitly call Remove on the collection of B entities within the A object
    and then call SaveChanges, the item is removed from the A object in the DB,
    but still exists in the B entity set in the DB.

(2) is expected behaviour. (1) sounds like an issue with the deleted B entity object not getting removed from the collection (possibly because the collection is generated from an inverse property relationship).

Website has lost the link to the Google Group

In tidying up and simplifying the site I managed to remove the only link through to the BrighstarDB Users google group. This definitely needs to be reinstated - maybe as a link on the docs page, but also as a footer link. It might be nice if latest questions on the group could get displayed in the blog sidebar too...

Bug in NerdDinner example

User has reported that in Step 6: Creating a context class it is too early to hit f5 and get a full site up and running - as there are new views created yet. It looks like the two sub-sections of step 6 are out of order.

Fix installers build

The build for the MSI installer and nuget packages has been thoroughly broken by the recent changes to the project.

Entity not deleted from entity collection

From fiatluxph on the codeplex mailing list:

I know that the following code will delete an object:

var country = Data.Instance.Context.Countries.FirstOrDefault(d => d.Id == id);
Data.Instance.Context.DeleteObject(country);
Data.Instance.Context.SaveChanges();

However, the next time I query the Countries collection, I find that the element
with that id is still in the Countries collection, all be it with its properties set to their
default values.

Create a REST implementation of IBrightstarService

Provide a full implementation of the BrightstarDB service interface using RESTful principles.

Should have pluggable authentication on both client and server so that the application programmer is in control of how REST calls are authenticated and authorized for particular actions.

SPARQL query should support an ordered list of preferred formats

Currently only one SparqlResultsFormat instance can be passed through. It would make sense to support passing through an ordered list of formats, perhaps as mime type strings. This would allow applications to specify a format for SPARQL results sets and another format for graphs.

Polaris hangs on local import of .nt.gz file

Tried to import a smallish GZipped NTriples file (91801_M_UK_NMM_oilpaintings_dc.nt.gz) using the local import option in Polaris. The user interface became unresponsive almost immediately and could only be killed through task manager.

Unzipping the file and importing the .nt file worked without a problem, so its probably not a data issue.

Add support for RDF plain literals in entity framework

An RDF plain literal is a literal consisting of a string and an optional language tag (http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#section-Literals). In entity framework to access the language tag on a plain literal property we will need a wrapper class with properties for the language tag and the value.

This should be optional - existing applications of entity framework should not be required to convert all string properties to plain literal properties and it should be possible to mix and match in an entity definition.

The plain literal type needs to also be supported in LINQ to SPARQL

Can't run transformations

I am currently a student and I have no experienced contributing in open sourced projects (I,ve never worked on a project like this).This is my first time in GitHub, sorry if this is not the right place to post this.

I want to try BrightstarDB because I am considering it for a windows phone app that I want to start next month. I follow this doc (http://brightstardb.readthedocs.org/en/latest/Developer_Quick_Start/) but there are problems in my solution that can't use it, I have installed BrightstarDB from Nuget in Visual Studio 2012 (and there is not Entity Context/Definition in the item list), and set the target framework to 4.0 and Any CPU setting. But errors are raised when I try it. Below is a image from VS with the errors displayed.
screenshot 5

How I can solve this?

Manage some store statistics

It would be nice to have a Brightstar store manage some basic statistics. Useful triple-level statistics might be:

  • Total # Triples
  • Total # distinct predicates
  • Map of {predicate id => Total # triples for that predicate}

But it might also be good to track B-Tree and database statistics e.g.

  • Active Pages (ones that are part of the current indexes)

  • Total Pages (includes all pages)

  • Average leaf node utilization
  • Average branch node utilization

It may be harder to track the internal structure stats but they could be periodically updated in a background thread or at the end of a big update.

Licensing

Hi

We are considering using Brighstar for a project whereby we need to have an embedded database - that supports Entity Framework - for offline scenarios. However going through the documentation there seem to be various places that mention the purchasing of a licence in order to use Brightstar in this way. Their are a number of URL's mentioned for obtaining this licence, but do not seem to resolve:

http://brightstardb.com/buy/
http://brightstardb.com/customer/

...could you possibly confirm whether we do in fact need to purchase a licence and how much it is?

Thanks!

James

Review and fix sample code

Go through the existing samples, check that they all compile and update code and connection strings where necessary.

Use NUnit instead of MSTest Framework

The main reason is that the deployment approach of MSTest is slowing down the running of individual unit tests / subsets of tests during development. There are also some nice features in NUnit that we could make use of.

Update installer build

In particular now that docs are online we can just ship the API documentation and instead point to readthedocs.org

Improve memory management when importing large files

The import process consumes increasing amounts of memory when importing a large file, leading eventually to an out of memory error.

Memory management needs to be improved so that it is possible to import large files without having to chunk them up into smaller pieces.

Add graph support to DataObjects API

Need to decide the best way to support graphs. Probably the simplest is to allow a collection of graph URIs to define the source dataset and a single graph URI that will be the target graph for all inserts. The downside of this simple approach would be that an update of a property could conceivably remove a statement from one graph and add its replacement to a different graph.

However, keeping track of graph sources for different properties introduces its own problems as it is possible for a single property to have values that come from multiple different source graphs.

Add support for creating store snapshots

For append-only stores it is currently possible to use the consolidate option to shrink the database in-place. It would be good to have another option that works like consolidate but copies the data into a new store.

This would enable the concept of having a master store and replicas that are periodically created by snapshotting the master.

Error when deleting from EF context.

Very basic case of creating a context and deleting an entity I just added.

Getting this exception:

No Entity Found for Subject http://www.brightstardb.com/.well-known/model/wildcard

Code to reproduce:

[Entity]
public interface IWeb
{   
    string Title { get; set; }

    string AbsoluteUrl { get; set; }
}

public void Test()
{
    var connectionString = @"Type=embedded;StoresDirectory=d:\temp\BrightstarTest;StoreName=test1";

    var context = new MyEntityContext(connectionString, true);

    var web = context.Webs.Create();
    web.Title = "Some Test";
    web.AbsoluteUrl = "http://www.google.com";

    context.SaveChanges();

    context.DeleteObject(web);
    context.SaveChanges();
}

WCF client cannot be used in IIS7 applications

This is because the generated WCF client includes task-based async methods which .NET 4.0 doesn't know how to process (but .NET 4.5 does). As a result the app runs fine in IIS 8, but breaks in IIS 7 as it tries to interpret a Task return value as something that should be serializable.

Fix is to generate the WCF client without the async methods.

Update NuGet packaging

When we were IL merging all the required libraries into BrightstarDB.dll it was fine to have nuspec files with no dependencies. From 1.3 we should explicitly call out our dependencies instead. This requires some updates to the nuspec files and some local testing to ensure installation into a project goes smoothly.

Create a Mono build

Targetting Mono 3.0.
Include basic library and a service/service runner stack plus relevant unit tests at a minimum.

Possible unicode escaping bug in NTriples parser

Question from the User's group:

I have this SPARQL Update query, which works in Polaris and in the nuget library:

INSERT DATA {
urn:a urn:is "c:\users\r\nbla"
}

But when I use ExecuteTransaction (or the transaction feature in Polaris), and I enter > following to the "Triples to Add" field, I get a "Transaction failed" message

urn:a urn:is "c:\users\r\nbla"

The problem is with \u apparently. If I enter "c:users", it works.

It looks like the explanation is that the parser is not treating \ as an escaped backslash character and is instead treating the \u as the start of a unicode character code. This will be a problem in our NTriples/NQuads parser implementation (which is used by ExecuteTransaction) and not in the dotNetRDF parser implementation (which is used by SPARQL Update).

License

Since BrightStar is now open source, is there still a need for a license?

If so, I'm confused as to when and why a license is needed in some areas and not others.

The Quick Start foe Entity Framework needs a license, and I don't understand why.

If this is not the right place to ask this question, please direct me to an appropriate location.

Thanks!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.