microsoft / GraphEngine

Microsoft Graph Engine
http://www.graphengine.io/
MIT License
2.2k stars 329 forks source link

freebase-likq build #182

Open PhilPJL opened 6 years ago

PhilPJL commented 6 years ago

To get the latest source to build I had to reinstall some packages

update-package -reinstall graphengine.core on the -tsl projects update-package -reinstall graphengine.like on the -likq projects

then remove all the assemblyBinding statements from the app.config's

yatli commented 6 years ago

hi @PhilPJL!

Thanks for reporting (again)! I'll fix this problem. Perhaps it's a better idea to switch to the new project format as well, to support .net core and Linux.

PhilPJL commented 6 years ago

Hi, no problem. I'm embarrassed/frustrated to have not got any further than building your code yet. If I run freebase-film-likq (freebase-likq needs more RAM than I have) then I run a simple client like this:

        static void Main(string[] args)
        {
            TrinityClient client = new TrinityClient("localhost:80");

            client.RegisterCommunicationModule<FanoutSearchModule>();
            client.Start();
        }

I get

image

It would be useful if you added some simple test clients to the freebase sample.

yatli commented 6 years ago

@PhilPJL you should start a TrinityClient pointing at port 5304, not 80. Port 80 greets the client with a http message but it's really looking forward to a trinity handshake :)

PhilPJL commented 6 years ago

ah ha :)

I also needed to add

server.RegisterCommunicationModule<TrinityClientModule>();

to the freebase-likq server sample.

Do you have an example query for the film sample?

I assume the sample queries should use KnowledgeGraph not Freebase, e.g

var result = KnowledgeGraph.StartFrom(297095894548906, select: new[] { "type_object_name" })
    .VisitNode(_ => _.continue_if(_.dice(0.02)) & _.return_if(_.dice(0.1)), select: new[] { "type_object_name" })
    .VisitNode(_ => _.continue_if(_.dice(0.02)) & _.return_if(_.dice(0.1)), select: new[] { "type_object_name" })
    .VisitNode(FanoutSearch.Action.Return);
yatli commented 6 years ago

@PhilPJL I think the query example in the readme is compatible with the film dataset:

Freebase
    .StartFrom(530972568887245, select: new[]{"type_object_name"})
    .FollowEdge("people_person_spouse_s")
    .VisitNode(Action.Continue)
    .FollowEdge("people_marriage_spouse")
    .VisitNode(Action.Return, select: new[]{"type_object_name"});
PhilPJL commented 6 years ago

@yatli

Thanks, I did try a while back but just got exceptions, so I gave up. Too much other work to do. When I get a moment I'll grab the latest source code and try again. It would be good to get the LIKQ sample working so I can start looking at what sparked our interest in your engine in the first place - I now have some initial requirements from a manager.

Also, what would you say is the minimum amount of RAM required to support the full LIKQ sample? Is 32GB enough? Just about to order bits for a new dev-box build.

PhilPJL commented 6 years ago

@yatli

Also, is the UI shown here https://www.graphengine.io/video/likq.video.html available in any form?

PhilPJL commented 6 years ago

@yatli Freebase-likq now builds but has warnings, and then fails when run.

Warning:

image

Run failure:

image

Dependencies:

image

yatli commented 6 years ago

@PhilPJL oops, looks like I broke the SQLite part.. I was working on cross-platform and wasn't sure about the dependencies... Will look into this today!

yatli commented 6 years ago

We're discussing about the UI part. I'll let you know when more information is available.

PhilPJL commented 6 years ago

@yatli I've changed the likq sample to use EntityFrameworkCore.Sqlite so that works for me. I can try to do a pull request or send you the code if you want. My test client is still failing though:

image

The code is simple

image