コード例 #1
0
ファイル: RDFStore.cs プロジェクト: Mozes96/IBH
 /// <summary>
 /// Checks if the store contains the given quadruple
 /// </summary>
 public virtual Boolean ContainsQuadruple(RDFQuadruple quadruple)
 {
     if (quadruple != null)
     {
         if (quadruple.TripleFlavor == RDFModelEnums.RDFTripleFlavors.SPO)
         {
             return((this.SelectQuadruples((RDFContext)quadruple.Context,
                                           (RDFResource)quadruple.Subject,
                                           (RDFResource)quadruple.Predicate,
                                           (RDFResource)quadruple.Object,
                                           null)).QuadruplesCount > 0);
         }
         else
         {
             return((this.SelectQuadruples((RDFContext)quadruple.Context,
                                           (RDFResource)quadruple.Subject,
                                           (RDFResource)quadruple.Predicate,
                                           null,
                                           (RDFLiteral)quadruple.Object)).QuadruplesCount > 0);
         }
     }
     return(false);
 }
コード例 #2
0
ファイル: RDFStore.cs プロジェクト: Mozes96/IBH
 /// <summary>
 /// Removes the given quadruples from the store
 /// </summary>
 public abstract RDFStore RemoveQuadruple(RDFQuadruple quadruple);
コード例 #3
0
ファイル: RDFStore.cs プロジェクト: Mozes96/IBH
 /// <summary>
 /// Adds the given quadruple to the store, avoiding duplicate insertions
 /// </summary>
 public abstract RDFStore AddQuadruple(RDFQuadruple quadruple);
コード例 #4
0
        /// <summary>
        /// Adds the given quadruple to the CSPOL index
        /// </summary>
        internal RDFStoreIndex AddIndex(RDFQuadruple quadruple)
        {
            if (quadruple != null)
            {
                //Context
                if (!this.Contexts.ContainsKey(quadruple.Context.PatternMemberID))
                {
                    this.Contexts.Add(quadruple.Context.PatternMemberID, new HashSet <Int64>()
                    {
                        quadruple.QuadrupleID
                    });
                }
                else
                {
                    if (!this.Contexts[quadruple.Context.PatternMemberID].Contains(quadruple.QuadrupleID))
                    {
                        this.Contexts[quadruple.Context.PatternMemberID].Add(quadruple.QuadrupleID);
                    }
                }

                //Subject
                if (!this.Subjects.ContainsKey(quadruple.Subject.PatternMemberID))
                {
                    this.Subjects.Add(quadruple.Subject.PatternMemberID, new HashSet <Int64>()
                    {
                        quadruple.QuadrupleID
                    });
                }
                else
                {
                    if (!this.Subjects[quadruple.Subject.PatternMemberID].Contains(quadruple.QuadrupleID))
                    {
                        this.Subjects[quadruple.Subject.PatternMemberID].Add(quadruple.QuadrupleID);
                    }
                }

                //Predicate
                if (!this.Predicates.ContainsKey(quadruple.Predicate.PatternMemberID))
                {
                    this.Predicates.Add(quadruple.Predicate.PatternMemberID, new HashSet <Int64>()
                    {
                        quadruple.QuadrupleID
                    });
                }
                else
                {
                    if (!this.Predicates[quadruple.Predicate.PatternMemberID].Contains(quadruple.QuadrupleID))
                    {
                        this.Predicates[quadruple.Predicate.PatternMemberID].Add(quadruple.QuadrupleID);
                    }
                }

                //Object
                if (quadruple.TripleFlavor == RDFModelEnums.RDFTripleFlavors.SPO)
                {
                    if (!this.Objects.ContainsKey(quadruple.Object.PatternMemberID))
                    {
                        this.Objects.Add(quadruple.Object.PatternMemberID, new HashSet <Int64>()
                        {
                            quadruple.QuadrupleID
                        });
                    }
                    else
                    {
                        if (!this.Objects[quadruple.Object.PatternMemberID].Contains(quadruple.QuadrupleID))
                        {
                            this.Objects[quadruple.Object.PatternMemberID].Add(quadruple.QuadrupleID);
                        }
                    }
                }

                //Literal
                else
                {
                    if (!this.Literals.ContainsKey(quadruple.Object.PatternMemberID))
                    {
                        this.Literals.Add(quadruple.Object.PatternMemberID, new HashSet <Int64>()
                        {
                            quadruple.QuadrupleID
                        });
                    }
                    else
                    {
                        if (!this.Literals[quadruple.Object.PatternMemberID].Contains(quadruple.QuadrupleID))
                        {
                            this.Literals[quadruple.Object.PatternMemberID].Add(quadruple.QuadrupleID);
                        }
                    }
                }
            }
            return(this);
        }
コード例 #5
0
        /// <summary>
        /// Removes the given quadruple from the CSPOL index
        /// </summary>
        internal RDFStoreIndex RemoveIndex(RDFQuadruple quadruple)
        {
            if (quadruple != null)
            {
                //Context
                if (this.Contexts.ContainsKey(quadruple.Context.PatternMemberID))
                {
                    if (this.Contexts[quadruple.Context.PatternMemberID].Contains(quadruple.QuadrupleID))
                    {
                        this.Contexts[quadruple.Context.PatternMemberID].Remove(quadruple.QuadrupleID);
                        if (this.Contexts[quadruple.Context.PatternMemberID].Count == 0)
                        {
                            this.Contexts.Remove(quadruple.Context.PatternMemberID);
                        }
                    }
                }

                //Subject
                if (this.Subjects.ContainsKey(quadruple.Subject.PatternMemberID))
                {
                    if (this.Subjects[quadruple.Subject.PatternMemberID].Contains(quadruple.QuadrupleID))
                    {
                        this.Subjects[quadruple.Subject.PatternMemberID].Remove(quadruple.QuadrupleID);
                        if (this.Subjects[quadruple.Subject.PatternMemberID].Count == 0)
                        {
                            this.Subjects.Remove(quadruple.Subject.PatternMemberID);
                        }
                    }
                }

                //Predicate
                if (this.Predicates.ContainsKey(quadruple.Predicate.PatternMemberID))
                {
                    if (this.Predicates[quadruple.Predicate.PatternMemberID].Contains(quadruple.QuadrupleID))
                    {
                        this.Predicates[quadruple.Predicate.PatternMemberID].Remove(quadruple.QuadrupleID);
                        if (this.Predicates[quadruple.Predicate.PatternMemberID].Count == 0)
                        {
                            this.Predicates.Remove(quadruple.Predicate.PatternMemberID);
                        }
                    }
                }

                //Object
                if (quadruple.TripleFlavor == RDFModelEnums.RDFTripleFlavors.SPO)
                {
                    if (this.Objects.ContainsKey(quadruple.Object.PatternMemberID))
                    {
                        if (this.Objects[quadruple.Object.PatternMemberID].Contains(quadruple.QuadrupleID))
                        {
                            this.Objects[quadruple.Object.PatternMemberID].Remove(quadruple.QuadrupleID);
                            if (this.Objects[quadruple.Object.PatternMemberID].Count == 0)
                            {
                                this.Objects.Remove(quadruple.Object.PatternMemberID);
                            }
                        }
                    }
                }

                //Literal
                else
                {
                    if (this.Literals.ContainsKey(quadruple.Object.PatternMemberID))
                    {
                        if (this.Literals[quadruple.Object.PatternMemberID].Contains(quadruple.QuadrupleID))
                        {
                            this.Literals[quadruple.Object.PatternMemberID].Remove(quadruple.QuadrupleID);
                            if (this.Literals[quadruple.Object.PatternMemberID].Count == 0)
                            {
                                this.Literals.Remove(quadruple.Object.PatternMemberID);
                            }
                        }
                    }
                }
            }
            return(this);
        }
コード例 #6
0
ファイル: RDFStore.cs プロジェクト: ruo2012/RDFSharp
 /// <summary>
 /// Checks if the store contains the given quadruple
 /// </summary>
 public abstract Boolean ContainsQuadruple(RDFQuadruple quadruple);