Neuron®
The Neuron® is the basis for the creation of open and secure federated networks for smart societies.
Loading...
Searching...
No Matches
UnionPattern.cs
2using System.Threading.Tasks;
5
7{
12 {
19 : base(Left, Right)
20 {
21 }
22
31 public override async Task<IEnumerable<Possibility>> Search(ISemanticCube Cube, Variables Variables,
32 IEnumerable<Possibility> ExistingMatches, SparqlQuery Query)
33 {
34 IEnumerable<Possibility> Matches1 = await this.Left.Search(Cube, Variables, ExistingMatches, Query);
35 IEnumerable<Possibility> Matches2 = await this.Right.Search(Cube, Variables, ExistingMatches, Query);
36
37 if (Matches1 is null)
38 return Matches2;
39 else if (Matches2 is null)
40 return Matches1;
41
42 if (!(Matches1 is ChunkedList<Possibility> Result))
43 {
44 Result = new ChunkedList<Possibility>();
45 Result.AddRange(Matches1);
46 }
47
48 Result.AddRange(Matches2);
49
50 return Result;
51 }
52 }
53}
A chunked list is a linked list of chunks of objects of type T .
Definition: ChunkedList.cs:54
UnionPattern(ISparqlPattern Left, ISparqlPattern Right)
Union of two patterns.
Definition: UnionPattern.cs:18
override async Task< IEnumerable< Possibility > > Search(ISemanticCube Cube, Variables Variables, IEnumerable< Possibility > ExistingMatches, SparqlQuery Query)
Searches for the pattern on information in a semantic cube.
Definition: UnionPattern.cs:31
Collection of variables.
Definition: Variables.cs:25
Interface for semantic cubes.
Task< IEnumerable< Possibility > > Search(ISemanticCube Cube, Variables Variables, IEnumerable< Possibility > ExistingMatches, SparqlQuery Query)
Searches for the pattern on information in a semantic cube.