diff --git a/Examples/FirstSteps/Ontologies/Ontologies.g.cs b/Examples/FirstSteps/Ontologies/Ontologies.g.cs index 03b2fa7..52a7dbc 100644 --- a/Examples/FirstSteps/Ontologies/Ontologies.g.cs +++ b/Examples/FirstSteps/Ontologies/Ontologies.g.cs @@ -1,5 +1,5 @@ // Attention: This file is generated. Any modifications will eventually be overwritten. -// Date: 02.09.2019 18:16:54 +// Date: 07.10.2019 16:01:20 using System; using System.Collections.Generic; diff --git a/Examples/FirstSteps/bin/Debug/netcoreapp2.1/FirstSteps.deps.json b/Examples/FirstSteps/bin/Debug/netcoreapp2.1/FirstSteps.deps.json new file mode 100644 index 0000000..a23a56d --- /dev/null +++ b/Examples/FirstSteps/bin/Debug/netcoreapp2.1/FirstSteps.deps.json @@ -0,0 +1,1491 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v2.1", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v2.1": { + "FirstSteps/1.0.0": { + "dependencies": { + "Semiodesk.Trinity": "1.0.0-rc007" + }, + "runtime": { + "FirstSteps.dll": {} + } + }, + "AngleSharp/0.9.9.2": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Dynamic.Runtime": "4.0.11", + "System.IO": "4.3.0", + "System.Linq": "4.3.0", + "System.Net.Primitives": "4.3.0", + "System.Net.Requests": "4.3.0", + "System.Reflection": "4.3.0", + "System.Reflection.Extensions": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Text.Encoding.Extensions": "4.3.0", + "System.Text.RegularExpressions": "4.3.0", + "System.Threading": "4.3.0", + "System.Threading.Tasks": "4.3.0" + }, + "runtime": { + "lib/netstandard1.0/AngleSharp.dll": { + "assemblyVersion": "0.9.9.0", + "fileVersion": "0.9.9.0" + } + } + }, + "dotNetRDF/2.2.0": { + "dependencies": { + "AngleSharp": "0.9.9.2", + "HtmlAgilityPack": "1.8.2", + "Microsoft.Extensions.Configuration": "2.0.0", + "Newtonsoft.Json": "11.0.2", + "System.Collections.Specialized": "4.3.0", + "System.ComponentModel.TypeConverter": "4.3.0", + "System.Configuration.ConfigurationManager": "4.4.1", + "System.Globalization.Extensions": "4.3.0", + "System.Net.Requests": "4.3.0", + "System.Reflection.TypeExtensions": "4.4.0", + "System.Threading.Thread": "4.3.0", + "VDS.Common": "1.10.0" + }, + "runtime": { + "lib/netstandard2.0/dotNetRDF.dll": { + "assemblyVersion": "2.2.0.0", + "fileVersion": "2.2.0.0" + } + } + }, + "HtmlAgilityPack/1.8.2": { + "dependencies": { + "System.Net.Http": "4.3.2", + "System.Xml.XPath": "4.3.0", + "System.Xml.XPath.XmlDocument": "4.3.0", + "System.Xml.XmlDocument": "4.3.0" + }, + "runtime": { + "lib/netstandard2.0/HtmlAgilityPack.dll": { + "assemblyVersion": "1.8.2.0", + "fileVersion": "1.8.2.0" + } + } + }, + "Microsoft.Extensions.Configuration/2.0.0": { + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "2.0.0" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Extensions.Configuration.dll": { + "assemblyVersion": "2.0.0.0", + "fileVersion": "2.0.0.17205" + } + } + }, + "Microsoft.Extensions.Configuration.Abstractions/2.0.0": { + "dependencies": { + "Microsoft.Extensions.Primitives": "2.0.0" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Extensions.Configuration.Abstractions.dll": { + "assemblyVersion": "2.0.0.0", + "fileVersion": "2.0.0.17205" + } + } + }, + "Microsoft.Extensions.Primitives/2.0.0": { + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "4.4.0" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Extensions.Primitives.dll": { + "assemblyVersion": "2.0.0.0", + "fileVersion": "2.0.0.17205" + } + } + }, + "Newtonsoft.Json/11.0.2": { + "runtime": { + "lib/netstandard2.0/Newtonsoft.Json.dll": { + "assemblyVersion": "11.0.0.0", + "fileVersion": "11.0.2.21924" + } + } + }, + "Remotion.Linq/2.2.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Linq": "4.3.0", + "System.Linq.Expressions": "4.1.0", + "System.Linq.Queryable": "4.0.1", + "System.ObjectModel": "4.0.12", + "System.Reflection": "4.3.0", + "System.Reflection.Extensions": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0" + }, + "runtime": { + "lib/netstandard1.0/Remotion.Linq.dll": { + "assemblyVersion": "2.2.0.0", + "fileVersion": "2.2.0.30000" + } + } + }, + "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.native.System/4.3.0": {}, + "runtime.native.System.Net.Http/4.3.0": {}, + "runtime.native.System.Security.Cryptography.Apple/4.3.0": { + "dependencies": { + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0" + } + }, + "runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "dependencies": { + "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" + } + }, + "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple/4.3.0": {}, + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "Semiodesk.Trinity/1.0.0-rc007": { + "dependencies": { + "Newtonsoft.Json": "11.0.2", + "Remotion.Linq": "2.2.0", + "System.Composition": "1.1.0", + "dotNetRDF": "2.2.0" + }, + "runtime": { + "lib/netstandard2.0/Semiodesk.Trinity.dll": { + "assemblyVersion": "1.0.0.7", + "fileVersion": "1.0.0.7" + } + } + }, + "System.Collections/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0" + } + }, + "System.Collections.Concurrent/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Diagnostics.Tracing": "4.3.0", + "System.Globalization": "4.3.0", + "System.Reflection": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0", + "System.Threading.Tasks": "4.3.0" + } + }, + "System.Collections.NonGeneric/4.3.0": { + "dependencies": { + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0" + } + }, + "System.Collections.Specialized/4.3.0": { + "dependencies": { + "System.Collections.NonGeneric": "4.3.0", + "System.Globalization": "4.3.0", + "System.Globalization.Extensions": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0" + } + }, + "System.ComponentModel/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0" + } + }, + "System.ComponentModel.Primitives/4.3.0": { + "dependencies": { + "System.ComponentModel": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.ComponentModel.TypeConverter/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Collections.NonGeneric": "4.3.0", + "System.Collections.Specialized": "4.3.0", + "System.ComponentModel": "4.3.0", + "System.ComponentModel.Primitives": "4.3.0", + "System.Globalization": "4.3.0", + "System.Linq": "4.3.0", + "System.Reflection": "4.3.0", + "System.Reflection.Extensions": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Reflection.TypeExtensions": "4.4.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0" + } + }, + "System.Composition/1.1.0": { + "dependencies": { + "System.Composition.AttributedModel": "1.1.0", + "System.Composition.Convention": "1.1.0", + "System.Composition.Hosting": "1.1.0", + "System.Composition.Runtime": "1.1.0", + "System.Composition.TypedParts": "1.1.0" + } + }, + "System.Composition.AttributedModel/1.1.0": { + "runtime": { + "lib/netstandard2.0/System.Composition.AttributedModel.dll": { + "assemblyVersion": "1.0.32.0", + "fileVersion": "4.6.25519.3" + } + } + }, + "System.Composition.Convention/1.1.0": { + "dependencies": { + "System.Composition.AttributedModel": "1.1.0" + }, + "runtime": { + "lib/netstandard2.0/System.Composition.Convention.dll": { + "assemblyVersion": "1.0.32.0", + "fileVersion": "4.6.25519.3" + } + } + }, + "System.Composition.Hosting/1.1.0": { + "dependencies": { + "System.Composition.Runtime": "1.1.0" + }, + "runtime": { + "lib/netstandard2.0/System.Composition.Hosting.dll": { + "assemblyVersion": "1.0.32.0", + "fileVersion": "4.6.25519.3" + } + } + }, + "System.Composition.Runtime/1.1.0": { + "runtime": { + "lib/netstandard2.0/System.Composition.Runtime.dll": { + "assemblyVersion": "1.0.32.0", + "fileVersion": "4.6.25519.3" + } + } + }, + "System.Composition.TypedParts/1.1.0": { + "dependencies": { + "System.Composition.AttributedModel": "1.1.0", + "System.Composition.Hosting": "1.1.0", + "System.Composition.Runtime": "1.1.0" + }, + "runtime": { + "lib/netstandard2.0/System.Composition.TypedParts.dll": { + "assemblyVersion": "1.0.32.0", + "fileVersion": "4.6.25519.3" + } + } + }, + "System.Configuration.ConfigurationManager/4.4.1": { + "dependencies": { + "System.Security.Cryptography.ProtectedData": "4.4.0" + }, + "runtime": { + "lib/netstandard2.0/System.Configuration.ConfigurationManager.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "4.6.25921.2" + } + } + }, + "System.Diagnostics.Debug/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0" + } + }, + "System.Diagnostics.DiagnosticSource/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Tracing": "4.3.0", + "System.Reflection": "4.3.0", + "System.Runtime": "4.3.0", + "System.Threading": "4.3.0" + } + }, + "System.Diagnostics.Tracing/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0" + } + }, + "System.Dynamic.Runtime/4.0.11": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.Linq": "4.3.0", + "System.Linq.Expressions": "4.1.0", + "System.ObjectModel": "4.0.12", + "System.Reflection": "4.3.0", + "System.Reflection.Emit": "4.0.1", + "System.Reflection.Emit.ILGeneration": "4.0.1", + "System.Reflection.Primitives": "4.3.0", + "System.Reflection.TypeExtensions": "4.4.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0" + } + }, + "System.Globalization/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0" + } + }, + "System.Globalization.Calendars/4.3.0": { + "dependencies": { + "System.Globalization": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Globalization.Extensions/4.3.0": { + "dependencies": { + "System.Globalization": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.InteropServices": "4.3.0" + } + }, + "System.IO/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading.Tasks": "4.3.0" + } + }, + "System.IO.FileSystem/4.3.0": { + "dependencies": { + "System.IO": "4.3.0", + "System.IO.FileSystem.Primitives": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading.Tasks": "4.3.0" + } + }, + "System.IO.FileSystem.Primitives/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0" + } + }, + "System.Linq/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0" + } + }, + "System.Linq.Expressions/4.1.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Linq": "4.3.0", + "System.ObjectModel": "4.0.12", + "System.Reflection": "4.3.0", + "System.Reflection.Emit": "4.0.1", + "System.Reflection.Emit.ILGeneration": "4.0.1", + "System.Reflection.Emit.Lightweight": "4.0.1", + "System.Reflection.Extensions": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Reflection.TypeExtensions": "4.4.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0" + } + }, + "System.Linq.Queryable/4.0.1": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Linq": "4.3.0", + "System.Linq.Expressions": "4.1.0", + "System.Reflection": "4.3.0", + "System.Reflection.Extensions": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Net.Http/4.3.2": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Diagnostics.DiagnosticSource": "4.3.0", + "System.Diagnostics.Tracing": "4.3.0", + "System.Globalization": "4.3.0", + "System.Globalization.Extensions": "4.3.0", + "System.IO": "4.3.0", + "System.IO.FileSystem": "4.3.0", + "System.Net.Primitives": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.OpenSsl": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Security.Cryptography.X509Certificates": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading": "4.3.0", + "System.Threading.Tasks": "4.3.0", + "runtime.native.System": "4.3.0", + "runtime.native.System.Net.Http": "4.3.0", + "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" + } + }, + "System.Net.Primitives/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0", + "System.Runtime.Handles": "4.3.0" + } + }, + "System.Net.Requests/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Diagnostics.Tracing": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Net.Http": "4.3.2", + "System.Net.Primitives": "4.3.0", + "System.Net.WebHeaderCollection": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Threading": "4.3.0", + "System.Threading.Tasks": "4.3.0" + } + }, + "System.Net.WebHeaderCollection/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0" + } + }, + "System.ObjectModel/4.0.12": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Threading": "4.3.0" + } + }, + "System.Reflection/4.3.0": { + "dependencies": { + "System.IO": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Reflection.Emit/4.0.1": { + "dependencies": { + "System.IO": "4.3.0", + "System.Reflection": "4.3.0", + "System.Reflection.Emit.ILGeneration": "4.0.1", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Reflection.Emit.ILGeneration/4.0.1": { + "dependencies": { + "System.Reflection": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Reflection.Emit.Lightweight/4.0.1": { + "dependencies": { + "System.Reflection": "4.3.0", + "System.Reflection.Emit.ILGeneration": "4.0.1", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Reflection.Extensions/4.3.0": { + "dependencies": { + "System.Reflection": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Reflection.Primitives/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0" + } + }, + "System.Reflection.TypeExtensions/4.4.0": {}, + "System.Resources.ResourceManager/4.3.0": { + "dependencies": { + "System.Globalization": "4.3.0", + "System.Reflection": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Runtime/4.3.0": {}, + "System.Runtime.CompilerServices.Unsafe/4.4.0": { + "runtime": { + "lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll": { + "assemblyVersion": "4.0.3.0", + "fileVersion": "0.0.0.0" + } + } + }, + "System.Runtime.Extensions/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0" + } + }, + "System.Runtime.Handles/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0" + } + }, + "System.Runtime.InteropServices/4.3.0": { + "dependencies": { + "System.Reflection": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Handles": "4.3.0" + } + }, + "System.Runtime.Numerics/4.3.0": { + "dependencies": { + "System.Globalization": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0" + } + }, + "System.Security.Cryptography.Algorithms/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Runtime.Numerics": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "runtime.native.System.Security.Cryptography.Apple": "4.3.0", + "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" + } + }, + "System.Security.Cryptography.Cng/4.3.0": { + "dependencies": { + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0" + } + }, + "System.Security.Cryptography.Csp/4.3.0": { + "dependencies": { + "System.IO": "4.3.0", + "System.Reflection": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading": "4.3.0" + } + }, + "System.Security.Cryptography.Encoding/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Collections.Concurrent": "4.3.0", + "System.Linq": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" + } + }, + "System.Security.Cryptography.OpenSsl/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Runtime.Numerics": "4.3.0", + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" + } + }, + "System.Security.Cryptography.Primitives/4.3.0": { + "dependencies": { + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Threading": "4.3.0", + "System.Threading.Tasks": "4.3.0" + } + }, + "System.Security.Cryptography.ProtectedData/4.4.0": { + "runtime": { + "lib/netstandard2.0/System.Security.Cryptography.ProtectedData.dll": { + "assemblyVersion": "4.0.2.0", + "fileVersion": "4.6.25519.3" + } + }, + "runtimeTargets": { + "runtimes/win/lib/netstandard2.0/System.Security.Cryptography.ProtectedData.dll": { + "rid": "win", + "assetType": "runtime", + "assemblyVersion": "4.0.2.0", + "fileVersion": "4.6.25519.3" + } + } + }, + "System.Security.Cryptography.X509Certificates/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.Globalization.Calendars": "4.3.0", + "System.IO": "4.3.0", + "System.IO.FileSystem": "4.3.0", + "System.IO.FileSystem.Primitives": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Runtime.Numerics": "4.3.0", + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Cng": "4.3.0", + "System.Security.Cryptography.Csp": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.OpenSsl": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading": "4.3.0", + "runtime.native.System": "4.3.0", + "runtime.native.System.Net.Http": "4.3.0", + "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" + } + }, + "System.Text.Encoding/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0" + } + }, + "System.Text.Encoding.Extensions/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0", + "System.Text.Encoding": "4.3.0" + } + }, + "System.Text.RegularExpressions/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0" + } + }, + "System.Threading/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0", + "System.Threading.Tasks": "4.3.0" + } + }, + "System.Threading.Tasks/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0" + } + }, + "System.Threading.Tasks.Extensions/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Runtime": "4.3.0", + "System.Threading.Tasks": "4.3.0" + } + }, + "System.Threading.Thread/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0" + } + }, + "System.Xml.ReaderWriter/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.IO.FileSystem": "4.3.0", + "System.IO.FileSystem.Primitives": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Text.Encoding.Extensions": "4.3.0", + "System.Text.RegularExpressions": "4.3.0", + "System.Threading.Tasks": "4.3.0", + "System.Threading.Tasks.Extensions": "4.3.0" + } + }, + "System.Xml.XmlDocument/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading": "4.3.0", + "System.Xml.ReaderWriter": "4.3.0" + } + }, + "System.Xml.XPath/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0", + "System.Xml.ReaderWriter": "4.3.0" + } + }, + "System.Xml.XPath.XmlDocument/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0", + "System.Xml.ReaderWriter": "4.3.0", + "System.Xml.XPath": "4.3.0", + "System.Xml.XmlDocument": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Xml.XPath.XmlDocument.dll": { + "assemblyVersion": "4.0.2.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "VDS.Common/1.10.0": { + "runtime": { + "lib/netstandard2.0/VDS.Common.dll": { + "assemblyVersion": "1.10.0.0", + "fileVersion": "1.10.0.0" + } + } + } + } + }, + "libraries": { + "FirstSteps/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "AngleSharp/0.9.9.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-yIjaAylBwAuwUTIqE2lzJdM4faJWQKPDK6M8IAJT9BTcloNB46PkgTEcU9m7cBceVvFT75LIlumhz4czvhc5CQ==", + "path": "anglesharp/0.9.9.2", + "hashPath": "anglesharp.0.9.9.2.nupkg.sha512" + }, + "dotNetRDF/2.2.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-kouMB67EzsE1CwmifEvkwznMTtbNPk2wW/gLq5LP3NzNG+LLu2Y2sBHOTM5dP8IkxjtmAZ5JgfDvur8x8s3cyw==", + "path": "dotnetrdf/2.2.0", + "hashPath": "dotnetrdf.2.2.0.nupkg.sha512" + }, + "HtmlAgilityPack/1.8.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-6eZx+QMxghcaVurr3QSa5FT0P5EgqxZBcalj5LpEEW3X72mKbbAuyaIaNUCifk467R68KgJA6x/W1VnYxBlT0Q==", + "path": "htmlagilitypack/1.8.2", + "hashPath": "htmlagilitypack.1.8.2.nupkg.sha512" + }, + "Microsoft.Extensions.Configuration/2.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-SsI4RqI8EH00+cYO96tbftlh87sNUv1eeyuBU1XZdQkG0RrHAOjWgl7P0FoLeTSMXJpOnfweeOWj2d1/5H3FxA==", + "path": "microsoft.extensions.configuration/2.0.0", + "hashPath": "microsoft.extensions.configuration.2.0.0.nupkg.sha512" + }, + "Microsoft.Extensions.Configuration.Abstractions/2.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-rHFrXqMIvQNq51H8RYTO4IWmDOYh8NUzyqGlh0xHWTP6XYnKk7Ryinys2uDs+Vu88b3AMlM3gBBSs78m6OQpYQ==", + "path": "microsoft.extensions.configuration.abstractions/2.0.0", + "hashPath": "microsoft.extensions.configuration.abstractions.2.0.0.nupkg.sha512" + }, + "Microsoft.Extensions.Primitives/2.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ukg53qNlqTrK38WA30b5qhw0GD7y3jdI9PHHASjdKyTcBHTevFM2o23tyk3pWCgAV27Bbkm+CPQ2zUe1ZOuYSA==", + "path": "microsoft.extensions.primitives/2.0.0", + "hashPath": "microsoft.extensions.primitives.2.0.0.nupkg.sha512" + }, + "Newtonsoft.Json/11.0.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-IvJe1pj7JHEsP8B8J8DwlMEx8UInrs/x+9oVY+oCD13jpLu4JbJU2WCIsMRn5C4yW9+DgkaO8uiVE5VHKjpmdQ==", + "path": "newtonsoft.json/11.0.2", + "hashPath": "newtonsoft.json.11.0.2.nupkg.sha512" + }, + "Remotion.Linq/2.2.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-fK/76UmpC0FXBlGDFVPLJHQlDLYnGC+XY3eoDgCgbtrhi0vzbXDQ3n/IYHhqSKqXQfGw/u04A1drWs7rFVkRjw==", + "path": "remotion.linq/2.2.0", + "hashPath": "remotion.linq.2.2.0.nupkg.sha512" + }, + "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-HdSSp5MnJSsg08KMfZThpuLPJpPwE5hBXvHwoKWosyHHfe8Mh5WKT0ylEOf6yNzX6Ngjxe4Whkafh5q7Ymac4Q==", + "path": "runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-+yH1a49wJMy8Zt4yx5RhJrxO/DBDByAiCzNwiETI+1S4mPdCu0OY4djdciC7Vssk0l22wQaDLrXxXkp+3+7bVA==", + "path": "runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-c3YNH1GQJbfIPJeCnr4avseugSqPrxwIqzthYyZDN6EuOyNOzq+y2KSUfRcXauya1sF4foESTgwM5e1A8arAKw==", + "path": "runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.native.System/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==", + "path": "runtime.native.system/4.3.0", + "hashPath": "runtime.native.system.4.3.0.nupkg.sha512" + }, + "runtime.native.System.Net.Http/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ZVuZJqnnegJhd2k/PtAbbIcZ3aZeITq3sj06oKfMBSfphW3HDmk/t4ObvbOk/JA/swGR0LNqMksAh/f7gpTROg==", + "path": "runtime.native.system.net.http/4.3.0", + "hashPath": "runtime.native.system.net.http.4.3.0.nupkg.sha512" + }, + "runtime.native.System.Security.Cryptography.Apple/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-DloMk88juo0OuOWr56QG7MNchmafTLYWvABy36izkrLI5VledI0rq28KGs1i9wbpeT9NPQrx/wTf8U2vazqQ3Q==", + "path": "runtime.native.system.security.cryptography.apple/4.3.0", + "hashPath": "runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512" + }, + "runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-NS1U+700m4KFRHR5o4vo9DSlTmlCKu/u7dtE5sUHVIPB+xpXxYQvgBgA6wEIeCz6Yfn0Z52/72WYsToCEPJnrw==", + "path": "runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-b3pthNgxxFcD+Pc0WSEoC0+md3MyhRS6aCEeenvNE3Fdw1HyJ18ZhRFVJJzIeR/O/jpxPboB805Ho0T3Ul7w8A==", + "path": "runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-KeLz4HClKf+nFS7p/6Fi/CqyLXh81FpiGzcmuS8DGi9lUqSnZ6Es23/gv2O+1XVGfrbNmviF7CckBpavkBoIFQ==", + "path": "runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ==", + "path": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple/4.3.0", + "hashPath": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512" + }, + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-X7IdhILzr4ROXd8mI1BUCQMSHSQwelUlBjF1JyTKCjXaOGn2fB4EKBxQbCK2VjO3WaWIdlXZL3W6TiIVnrhX4g==", + "path": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-nyFNiCk/r+VOiIqreLix8yN+q3Wga9+SE8BCgkf+2BwEKiNx6DyvFjCgkfV743/grxv8jHJ8gUK4XEQw7yzRYg==", + "path": "runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ytoewC6wGorL7KoCAvRfsgoJPJbNq+64k2SqW6JcOAebWsFUvCCYgfzQMrnpvPiEl4OrblUlhF2ji+Q1+SVLrQ==", + "path": "runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-I8bKw2I8k58Wx7fMKQJn2R8lamboCAiHfHeV/pS65ScKWMMI0+wJkLYlEKvgW1D/XvSl/221clBoR2q9QNNM7A==", + "path": "runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-VB5cn/7OzUfzdnC8tqAIMQciVLiq2epm2NrAm1E9OjNRyG4lVhfR61SMcLizejzQP8R8Uf/0l5qOIbUEi+RdEg==", + "path": "runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "Semiodesk.Trinity/1.0.0-rc007": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3dOF4IEXCrUYK0FVzUz9uFgS1cH6grWLoqAFotUIFUteebPEXnkH42cYs8vPvFPwOwtlaJqm3mwSeyPRqbJZ2A==", + "path": "semiodesk.trinity/1.0.0-rc007", + "hashPath": "semiodesk.trinity.1.0.0-rc007.nupkg.sha512" + }, + "System.Collections/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==", + "path": "system.collections/4.3.0", + "hashPath": "system.collections.4.3.0.nupkg.sha512" + }, + "System.Collections.Concurrent/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ztl69Xp0Y/UXCL+3v3tEU+lIy+bvjKNUmopn1wep/a291pVPK7dxBd6T7WnlQqRog+d1a/hSsgRsmFnIBKTPLQ==", + "path": "system.collections.concurrent/4.3.0", + "hashPath": "system.collections.concurrent.4.3.0.nupkg.sha512" + }, + "System.Collections.NonGeneric/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-prtjIEMhGUnQq6RnPEYLpFt8AtLbp9yq2zxOSrY7KJJZrw25Fi97IzBqY7iqssbM61Ek5b8f3MG/sG1N2sN5KA==", + "path": "system.collections.nongeneric/4.3.0", + "hashPath": "system.collections.nongeneric.4.3.0.nupkg.sha512" + }, + "System.Collections.Specialized/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Epx8PoVZR0iuOnJJDzp7pWvdfMMOAvpUo95pC4ScH2mJuXkKA2Y4aR3cG9qt2klHgSons1WFh4kcGW7cSXvrxg==", + "path": "system.collections.specialized/4.3.0", + "hashPath": "system.collections.specialized.4.3.0.nupkg.sha512" + }, + "System.ComponentModel/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-VyGn1jGRZVfxnh8EdvDCi71v3bMXrsu8aYJOwoV7SNDLVhiEqwP86pPMyRGsDsxhXAm2b3o9OIqeETfN5qfezw==", + "path": "system.componentmodel/4.3.0", + "hashPath": "system.componentmodel.4.3.0.nupkg.sha512" + }, + "System.ComponentModel.Primitives/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-j8GUkCpM8V4d4vhLIIoBLGey2Z5bCkMVNjEZseyAlm4n5arcsJOeI3zkUP+zvZgzsbLTYh4lYeP/ZD/gdIAPrw==", + "path": "system.componentmodel.primitives/4.3.0", + "hashPath": "system.componentmodel.primitives.4.3.0.nupkg.sha512" + }, + "System.ComponentModel.TypeConverter/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-16pQ6P+EdhcXzPiEK4kbA953Fu0MNG2ovxTZU81/qsCd1zPRsKc3uif5NgvllCY598k6bI0KUyKW8fanlfaDQg==", + "path": "system.componentmodel.typeconverter/4.3.0", + "hashPath": "system.componentmodel.typeconverter.4.3.0.nupkg.sha512" + }, + "System.Composition/1.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-rLsB/X6sp4cLPPlyPVuTBQbtG2IdSdKc6tFImxopz9s5po4Og5sQ8rA7GPxpTsrQ5UXS1IxdaqFwxtse4eLolw==", + "path": "system.composition/1.1.0", + "hashPath": "system.composition.1.1.0.nupkg.sha512" + }, + "System.Composition.AttributedModel/1.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-S7Ybny/58VGS+5uanotm7f2k7Iv3ufdv0eDA8adZ345pE27zr+9bxhHw/rXXMVltRdoUuyB1O4YpYT1lVwkM0w==", + "path": "system.composition.attributedmodel/1.1.0", + "hashPath": "system.composition.attributedmodel.1.1.0.nupkg.sha512" + }, + "System.Composition.Convention/1.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-lqiuITNCKJ/JlXzmum0mr+1HDCJ6mN/+1C4ouXpvLKpUA+zal7EsRvfHxy+kVVPrPMaFU9dLQkBxV/GFVnJoXA==", + "path": "system.composition.convention/1.1.0", + "hashPath": "system.composition.convention.1.1.0.nupkg.sha512" + }, + "System.Composition.Hosting/1.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-D5M3oBOxCeHe4WVNtqKnFA3UMt53uIdUMGgustecwh7kmzE7k+Co+CFPLpQVPdyBhmB8WxicaESa41QLZ0ZlgA==", + "path": "system.composition.hosting/1.1.0", + "hashPath": "system.composition.hosting.1.1.0.nupkg.sha512" + }, + "System.Composition.Runtime/1.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-dLbtnVmOiD4k1/YA4LfV2nEZX4jdgizvSzvVIffOp3AXU468n5IsDbwwbCHSUmnfqoJ5unYR+hEmN1U3gBmDRg==", + "path": "system.composition.runtime/1.1.0", + "hashPath": "system.composition.runtime.1.1.0.nupkg.sha512" + }, + "System.Composition.TypedParts/1.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-SlACsoBPQpeL8dAjQXttv9d5Y/790UmxnlP2yk1w94T2vMcHOa7i9XGUKCB81BGMWstR2FF9ZEftm8rIdhMEvg==", + "path": "system.composition.typedparts/1.1.0", + "hashPath": "system.composition.typedparts.1.1.0.nupkg.sha512" + }, + "System.Configuration.ConfigurationManager/4.4.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-jz3TWKMAeuDEyrPCK5Jyt4bzQcmzUIMcY9Ud6PkElFxTfnsihV+9N/UCqvxe1z5gc7jMYAnj7V1COMS9QKIuHQ==", + "path": "system.configuration.configurationmanager/4.4.1", + "hashPath": "system.configuration.configurationmanager.4.4.1.nupkg.sha512" + }, + "System.Diagnostics.Debug/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==", + "path": "system.diagnostics.debug/4.3.0", + "hashPath": "system.diagnostics.debug.4.3.0.nupkg.sha512" + }, + "System.Diagnostics.DiagnosticSource/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-tD6kosZnTAGdrEa0tZSuFyunMbt/5KYDnHdndJYGqZoNy00XVXyACd5d6KnE1YgYv3ne2CjtAfNXo/fwEhnKUA==", + "path": "system.diagnostics.diagnosticsource/4.3.0", + "hashPath": "system.diagnostics.diagnosticsource.4.3.0.nupkg.sha512" + }, + "System.Diagnostics.Tracing/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==", + "path": "system.diagnostics.tracing/4.3.0", + "hashPath": "system.diagnostics.tracing.4.3.0.nupkg.sha512" + }, + "System.Dynamic.Runtime/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-db34f6LHYM0U0JpE+sOmjar27BnqTVkbLJhgfwMpTdgTigG/Hna3m2MYVwnFzGGKnEJk2UXFuoVTr8WUbU91/A==", + "path": "system.dynamic.runtime/4.0.11", + "hashPath": "system.dynamic.runtime.4.0.11.nupkg.sha512" + }, + "System.Globalization/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==", + "path": "system.globalization/4.3.0", + "hashPath": "system.globalization.4.3.0.nupkg.sha512" + }, + "System.Globalization.Calendars/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-GUlBtdOWT4LTV3I+9/PJW+56AnnChTaOqqTLFtdmype/L500M2LIyXgmtd9X2P2VOkmJd5c67H5SaC2QcL1bFA==", + "path": "system.globalization.calendars/4.3.0", + "hashPath": "system.globalization.calendars.4.3.0.nupkg.sha512" + }, + "System.Globalization.Extensions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-FhKmdR6MPG+pxow6wGtNAWdZh7noIOpdD5TwQ3CprzgIE1bBBoim0vbR1+AWsWjQmU7zXHgQo4TWSP6lCeiWcQ==", + "path": "system.globalization.extensions/4.3.0", + "hashPath": "system.globalization.extensions.4.3.0.nupkg.sha512" + }, + "System.IO/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==", + "path": "system.io/4.3.0", + "hashPath": "system.io.4.3.0.nupkg.sha512" + }, + "System.IO.FileSystem/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==", + "path": "system.io.filesystem/4.3.0", + "hashPath": "system.io.filesystem.4.3.0.nupkg.sha512" + }, + "System.IO.FileSystem.Primitives/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-6QOb2XFLch7bEc4lIcJH49nJN2HV+OC3fHDgsLVsBVBk3Y4hFAnOBGzJ2lUu7CyDDFo9IBWkSsnbkT6IBwwiMw==", + "path": "system.io.filesystem.primitives/4.3.0", + "hashPath": "system.io.filesystem.primitives.4.3.0.nupkg.sha512" + }, + "System.Linq/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==", + "path": "system.linq/4.3.0", + "hashPath": "system.linq.4.3.0.nupkg.sha512" + }, + "System.Linq.Expressions/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-I+y02iqkgmCAyfbqOmSDOgqdZQ5tTj80Akm5BPSS8EeB0VGWdy6X1KCoYe8Pk6pwDoAKZUOdLVxnTJcExiv5zw==", + "path": "system.linq.expressions/4.1.0", + "hashPath": "system.linq.expressions.4.1.0.nupkg.sha512" + }, + "System.Linq.Queryable/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Yn/WfYe9RoRfmSLvUt2JerP0BTGGykCZkQPgojaxgzF2N0oPo+/AhB8TXOpdCcNlrG3VRtsamtK2uzsp3cqRVw==", + "path": "system.linq.queryable/4.0.1", + "hashPath": "system.linq.queryable.4.0.1.nupkg.sha512" + }, + "System.Net.Http/4.3.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-y7hv0o0weI0j0mvEcBOdt1F3CAADiWlcw3e54m8TfYiRmBPDIsHElx8QUPDlY4x6yWXKPGN0Z2TuXCTPgkm5WQ==", + "path": "system.net.http/4.3.2", + "hashPath": "system.net.http.4.3.2.nupkg.sha512" + }, + "System.Net.Primitives/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-qOu+hDwFwoZPbzPvwut2qATe3ygjeQBDQj91xlsaqGFQUI5i4ZnZb8yyQuLGpDGivEPIt8EJkd1BVzVoP31FXA==", + "path": "system.net.primitives/4.3.0", + "hashPath": "system.net.primitives.4.3.0.nupkg.sha512" + }, + "System.Net.Requests/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-OZNUuAs0kDXUzm7U5NZ1ojVta5YFZmgT2yxBqsQ7Eseq5Ahz88LInGRuNLJ/NP2F8W1q7tse1pKDthj3reF5QA==", + "path": "system.net.requests/4.3.0", + "hashPath": "system.net.requests.4.3.0.nupkg.sha512" + }, + "System.Net.WebHeaderCollection/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-XZrXYG3c7QV/GpWeoaRC02rM6LH2JJetfVYskf35wdC/w2fFDFMphec4gmVH2dkll6abtW14u9Rt96pxd9YH2A==", + "path": "system.net.webheadercollection/4.3.0", + "hashPath": "system.net.webheadercollection.4.3.0.nupkg.sha512" + }, + "System.ObjectModel/4.0.12": { + "type": "package", + "serviceable": true, + "sha512": "sha512-tAgJM1xt3ytyMoW4qn4wIqgJYm7L7TShRZG4+Q4Qsi2PCcj96pXN7nRywS9KkB3p/xDUjc2HSwP9SROyPYDYKQ==", + "path": "system.objectmodel/4.0.12", + "hashPath": "system.objectmodel.4.0.12.nupkg.sha512" + }, + "System.Reflection/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==", + "path": "system.reflection/4.3.0", + "hashPath": "system.reflection.4.3.0.nupkg.sha512" + }, + "System.Reflection.Emit/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-P2wqAj72fFjpP6wb9nSfDqNBMab+2ovzSDzUZK7MVIm54tBJEPr9jWfSjjoTpPwj1LeKcmX3vr0ttyjSSFM47g==", + "path": "system.reflection.emit/4.0.1", + "hashPath": "system.reflection.emit.4.0.1.nupkg.sha512" + }, + "System.Reflection.Emit.ILGeneration/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Ov6dU8Bu15Bc7zuqttgHF12J5lwSWyTf1S+FJouUXVMSqImLZzYaQ+vRr1rQ0OZ0HqsrwWl4dsKHELckQkVpgA==", + "path": "system.reflection.emit.ilgeneration/4.0.1", + "hashPath": "system.reflection.emit.ilgeneration.4.0.1.nupkg.sha512" + }, + "System.Reflection.Emit.Lightweight/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-sSzHHXueZ5Uh0OLpUQprhr+ZYJrLPA2Cmr4gn0wj9+FftNKXx8RIMKvO9qnjk2ebPYUjZ+F2ulGdPOsvj+MEjA==", + "path": "system.reflection.emit.lightweight/4.0.1", + "hashPath": "system.reflection.emit.lightweight.4.0.1.nupkg.sha512" + }, + "System.Reflection.Extensions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==", + "path": "system.reflection.extensions/4.3.0", + "hashPath": "system.reflection.extensions.4.3.0.nupkg.sha512" + }, + "System.Reflection.Primitives/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==", + "path": "system.reflection.primitives/4.3.0", + "hashPath": "system.reflection.primitives.4.3.0.nupkg.sha512" + }, + "System.Reflection.TypeExtensions/4.4.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-dkmh/ySlwnXJp/1qYP9uyKkCK1CXR/REFzl7abHcArxBcV91mY2CgrrzSRA5Z/X4MevJWwXsklGRdR3A7K9zbg==", + "path": "system.reflection.typeextensions/4.4.0", + "hashPath": "system.reflection.typeextensions.4.4.0.nupkg.sha512" + }, + "System.Resources.ResourceManager/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==", + "path": "system.resources.resourcemanager/4.3.0", + "hashPath": "system.resources.resourcemanager.4.3.0.nupkg.sha512" + }, + "System.Runtime/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==", + "path": "system.runtime/4.3.0", + "hashPath": "system.runtime.4.3.0.nupkg.sha512" + }, + "System.Runtime.CompilerServices.Unsafe/4.4.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-9dLLuBxr5GNmOfl2jSMcsHuteEg32BEfUotmmUkmZjpR3RpVHE8YQwt0ow3p6prwA1ME8WqDVZqrr8z6H8G+Kw==", + "path": "system.runtime.compilerservices.unsafe/4.4.0", + "hashPath": "system.runtime.compilerservices.unsafe.4.4.0.nupkg.sha512" + }, + "System.Runtime.Extensions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==", + "path": "system.runtime.extensions/4.3.0", + "hashPath": "system.runtime.extensions.4.3.0.nupkg.sha512" + }, + "System.Runtime.Handles/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==", + "path": "system.runtime.handles/4.3.0", + "hashPath": "system.runtime.handles.4.3.0.nupkg.sha512" + }, + "System.Runtime.InteropServices/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==", + "path": "system.runtime.interopservices/4.3.0", + "hashPath": "system.runtime.interopservices.4.3.0.nupkg.sha512" + }, + "System.Runtime.Numerics/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-yMH+MfdzHjy17l2KESnPiF2dwq7T+xLnSJar7slyimAkUh/gTrS9/UQOtv7xarskJ2/XDSNvfLGOBQPjL7PaHQ==", + "path": "system.runtime.numerics/4.3.0", + "hashPath": "system.runtime.numerics.4.3.0.nupkg.sha512" + }, + "System.Security.Cryptography.Algorithms/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==", + "path": "system.security.cryptography.algorithms/4.3.0", + "hashPath": "system.security.cryptography.algorithms.4.3.0.nupkg.sha512" + }, + "System.Security.Cryptography.Cng/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-03idZOqFlsKRL4W+LuCpJ6dBYDUWReug6lZjBa3uJWnk5sPCUXckocevTaUA8iT/MFSrY/2HXkOt753xQ/cf8g==", + "path": "system.security.cryptography.cng/4.3.0", + "hashPath": "system.security.cryptography.cng.4.3.0.nupkg.sha512" + }, + "System.Security.Cryptography.Csp/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-X4s/FCkEUnRGnwR3aSfVIkldBmtURMhmexALNTwpjklzxWU7yjMk7GHLKOZTNkgnWnE0q7+BCf9N2LVRWxewaA==", + "path": "system.security.cryptography.csp/4.3.0", + "hashPath": "system.security.cryptography.csp.4.3.0.nupkg.sha512" + }, + "System.Security.Cryptography.Encoding/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==", + "path": "system.security.cryptography.encoding/4.3.0", + "hashPath": "system.security.cryptography.encoding.4.3.0.nupkg.sha512" + }, + "System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-h4CEgOgv5PKVF/HwaHzJRiVboL2THYCou97zpmhjghx5frc7fIvlkY1jL+lnIQyChrJDMNEXS6r7byGif8Cy4w==", + "path": "system.security.cryptography.openssl/4.3.0", + "hashPath": "system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "System.Security.Cryptography.Primitives/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-7bDIyVFNL/xKeFHjhobUAQqSpJq9YTOpbEs6mR233Et01STBMXNAc/V+BM6dwYGc95gVh/Zf+iVXWzj3mE8DWg==", + "path": "system.security.cryptography.primitives/4.3.0", + "hashPath": "system.security.cryptography.primitives.4.3.0.nupkg.sha512" + }, + "System.Security.Cryptography.ProtectedData/4.4.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-cJV7ScGW7EhatRsjehfvvYVBvtiSMKgN8bOVI0bQhnF5bU7vnHVIsH49Kva7i7GWaWYvmEzkYVk1TC+gZYBEog==", + "path": "system.security.cryptography.protecteddata/4.4.0", + "hashPath": "system.security.cryptography.protecteddata.4.4.0.nupkg.sha512" + }, + "System.Security.Cryptography.X509Certificates/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==", + "path": "system.security.cryptography.x509certificates/4.3.0", + "hashPath": "system.security.cryptography.x509certificates.4.3.0.nupkg.sha512" + }, + "System.Text.Encoding/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==", + "path": "system.text.encoding/4.3.0", + "hashPath": "system.text.encoding.4.3.0.nupkg.sha512" + }, + "System.Text.Encoding.Extensions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-YVMK0Bt/A43RmwizJoZ22ei2nmrhobgeiYwFzC4YAN+nue8RF6djXDMog0UCn+brerQoYVyaS+ghy9P/MUVcmw==", + "path": "system.text.encoding.extensions/4.3.0", + "hashPath": "system.text.encoding.extensions.4.3.0.nupkg.sha512" + }, + "System.Text.RegularExpressions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-RpT2DA+L660cBt1FssIE9CAGpLFdFPuheB7pLpKpn6ZXNby7jDERe8Ua/Ne2xGiwLVG2JOqziiaVCGDon5sKFA==", + "path": "system.text.regularexpressions/4.3.0", + "hashPath": "system.text.regularexpressions.4.3.0.nupkg.sha512" + }, + "System.Threading/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==", + "path": "system.threading/4.3.0", + "hashPath": "system.threading.4.3.0.nupkg.sha512" + }, + "System.Threading.Tasks/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==", + "path": "system.threading.tasks/4.3.0", + "hashPath": "system.threading.tasks.4.3.0.nupkg.sha512" + }, + "System.Threading.Tasks.Extensions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-npvJkVKl5rKXrtl1Kkm6OhOUaYGEiF9wFbppFRWSMoApKzt2PiPHT2Bb8a5sAWxprvdOAtvaARS9QYMznEUtug==", + "path": "system.threading.tasks.extensions/4.3.0", + "hashPath": "system.threading.tasks.extensions.4.3.0.nupkg.sha512" + }, + "System.Threading.Thread/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-OHmbT+Zz065NKII/ZHcH9XO1dEuLGI1L2k7uYss+9C1jLxTC9kTZZuzUOyXHayRk+dft9CiDf3I/QZ0t8JKyBQ==", + "path": "system.threading.thread/4.3.0", + "hashPath": "system.threading.thread.4.3.0.nupkg.sha512" + }, + "System.Xml.ReaderWriter/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-GrprA+Z0RUXaR4N7/eW71j1rgMnEnEVlgii49GZyAjTH7uliMnrOU3HNFBr6fEDBCJCIdlVNq9hHbaDR621XBA==", + "path": "system.xml.readerwriter/4.3.0", + "hashPath": "system.xml.readerwriter.4.3.0.nupkg.sha512" + }, + "System.Xml.XmlDocument/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-lJ8AxvkX7GQxpC6GFCeBj8ThYVyQczx2+f/cWHJU8tjS7YfI6Cv6bon70jVEgs2CiFbmmM8b9j1oZVx0dSI2Ww==", + "path": "system.xml.xmldocument/4.3.0", + "hashPath": "system.xml.xmldocument.4.3.0.nupkg.sha512" + }, + "System.Xml.XPath/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-v1JQ5SETnQusqmS3RwStF7vwQ3L02imIzl++sewmt23VGygix04pEH+FCj1yWb+z4GDzKiljr1W7Wfvrx0YwgA==", + "path": "system.xml.xpath/4.3.0", + "hashPath": "system.xml.xpath.4.3.0.nupkg.sha512" + }, + "System.Xml.XPath.XmlDocument/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-A/uxsWi/Ifzkmd4ArTLISMbfFs6XpRPsXZonrIqyTY70xi8t+mDtvSM5Os0RqyRDobjMBwIDHDL4NOIbkDwf7A==", + "path": "system.xml.xpath.xmldocument/4.3.0", + "hashPath": "system.xml.xpath.xmldocument.4.3.0.nupkg.sha512" + }, + "VDS.Common/1.10.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-lvqLezZHYcgBfhNDcRKTICuvRQGhYaFrITqhTbqDp4mli1SES2iwlGI3TxLxygcAiyRUJ/ieHCmX1WsF+PGMNg==", + "path": "vds.common/1.10.0", + "hashPath": "vds.common.1.10.0.nupkg.sha512" + } + } +} \ No newline at end of file diff --git a/Examples/FirstSteps/bin/Debug/netcoreapp2.1/FirstSteps.runtimeconfig.dev.json b/Examples/FirstSteps/bin/Debug/netcoreapp2.1/FirstSteps.runtimeconfig.dev.json new file mode 100644 index 0000000..980e6de --- /dev/null +++ b/Examples/FirstSteps/bin/Debug/netcoreapp2.1/FirstSteps.runtimeconfig.dev.json @@ -0,0 +1,9 @@ +{ + "runtimeOptions": { + "additionalProbingPaths": [ + "C:\\Users\\Moritz Eberl\\.dotnet\\store\\|arch|\\|tfm|", + "C:\\Users\\Moritz Eberl\\.nuget\\packages", + "C:\\Program Files\\dotnet\\sdk\\NuGetFallbackFolder" + ] + } +} \ No newline at end of file diff --git a/Examples/FirstSteps/bin/Debug/netcoreapp2.1/FirstSteps.runtimeconfig.json b/Examples/FirstSteps/bin/Debug/netcoreapp2.1/FirstSteps.runtimeconfig.json new file mode 100644 index 0000000..7994936 --- /dev/null +++ b/Examples/FirstSteps/bin/Debug/netcoreapp2.1/FirstSteps.runtimeconfig.json @@ -0,0 +1,9 @@ +{ + "runtimeOptions": { + "tfm": "netcoreapp2.1", + "framework": { + "name": "Microsoft.NETCore.App", + "version": "2.1.0" + } + } +} \ No newline at end of file diff --git a/Examples/FirstSteps/bin/Release/netcoreapp2.1/FirstSteps.deps.json b/Examples/FirstSteps/bin/Release/netcoreapp2.1/FirstSteps.deps.json index 300e9f6..a23a56d 100644 --- a/Examples/FirstSteps/bin/Release/netcoreapp2.1/FirstSteps.deps.json +++ b/Examples/FirstSteps/bin/Release/netcoreapp2.1/FirstSteps.deps.json @@ -1,7 +1,7 @@ { "runtimeTarget": { "name": ".NETCoreApp,Version=v2.1", - "signature": "85cc9d87e268686ad0ded2788dce5b62f088c953" + "signature": "" }, "compilationOptions": {}, "targets": { @@ -139,30 +139,9 @@ } } }, - "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "runtimeTargets": { - "runtime/debian.8-x64/native/_._": { - "rid": "debian.8-x64", - "assetType": "native" - } - } - }, - "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "runtimeTargets": { - "runtime/fedora.23-x64/native/_._": { - "rid": "fedora.23-x64", - "assetType": "native" - } - } - }, - "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "runtimeTargets": { - "runtime/fedora.24-x64/native/_._": { - "rid": "fedora.24-x64", - "assetType": "native" - } - } - }, + "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, "runtime.native.System/4.3.0": {}, "runtime.native.System.Net.Http/4.3.0": {}, "runtime.native.System.Security.Cryptography.Apple/4.3.0": { @@ -184,70 +163,14 @@ "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, - "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "runtimeTargets": { - "runtime/opensuse.13.2-x64/native/_._": { - "rid": "opensuse.13.2-x64", - "assetType": "native" - } - } - }, - "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "runtimeTargets": { - "runtime/opensuse.42.1-x64/native/_._": { - "rid": "opensuse.42.1-x64", - "assetType": "native" - } - } - }, - "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple/4.3.0": { - "runtimeTargets": { - "runtime/osx.10.10-x64/native/_._": { - "rid": "osx.10.10-x64", - "assetType": "native" - } - } - }, - "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "runtimeTargets": { - "runtime/osx.10.10-x64/native/_._": { - "rid": "osx.10.10-x64", - "assetType": "native" - } - } - }, - "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "runtimeTargets": { - "runtime/rhel.7-x64/native/_._": { - "rid": "rhel.7-x64", - "assetType": "native" - } - } - }, - "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "runtimeTargets": { - "runtime/ubuntu.14.04-x64/native/_._": { - "rid": "ubuntu.14.04-x64", - "assetType": "native" - } - } - }, - "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "runtimeTargets": { - "runtime/ubuntu.16.04-x64/native/_._": { - "rid": "ubuntu.16.04-x64", - "assetType": "native" - } - } - }, - "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "runtimeTargets": { - "runtime/ubuntu.16.10-x64/native/_._": { - "rid": "ubuntu.16.10-x64", - "assetType": "native" - } - } - }, + "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple/4.3.0": {}, + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, "Semiodesk.Trinity/1.0.0-rc007": { "dependencies": { "Newtonsoft.Json": "11.0.2", @@ -460,16 +383,6 @@ "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.InteropServices": "4.3.0" - }, - "runtimeTargets": { - "runtime/unix/lib/_._": { - "rid": "unix", - "assetType": "runtime" - }, - "runtime/win/lib/_._": { - "rid": "win", - "assetType": "runtime" - } } }, "System.IO/4.3.0": { @@ -563,16 +476,6 @@ "runtime.native.System": "4.3.0", "runtime.native.System.Net.Http": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" - }, - "runtimeTargets": { - "runtime/unix/lib/_._": { - "rid": "unix", - "assetType": "runtime" - }, - "runtime/win/lib/_._": { - "rid": "win", - "assetType": "runtime" - } } }, "System.Net.Primitives/4.3.0": { @@ -595,16 +498,6 @@ "System.Runtime": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0" - }, - "runtimeTargets": { - "runtime/unix/lib/_._": { - "rid": "unix", - "assetType": "runtime" - }, - "runtime/win/lib/_._": { - "rid": "win", - "assetType": "runtime" - } } }, "System.Net.WebHeaderCollection/4.3.0": { @@ -724,20 +617,6 @@ "System.Text.Encoding": "4.3.0", "runtime.native.System.Security.Cryptography.Apple": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" - }, - "runtimeTargets": { - "runtime/osx/lib/_._": { - "rid": "osx", - "assetType": "runtime" - }, - "runtime/unix/lib/_._": { - "rid": "unix", - "assetType": "runtime" - }, - "runtime/win/lib/_._": { - "rid": "win", - "assetType": "runtime" - } } }, "System.Security.Cryptography.Cng/4.3.0": { @@ -752,16 +631,6 @@ "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0" - }, - "runtimeTargets": { - "runtime/unix/lib/_._": { - "rid": "unix", - "assetType": "runtime" - }, - "runtime/win/lib/_._": { - "rid": "win", - "assetType": "runtime" - } } }, "System.Security.Cryptography.Csp/4.3.0": { @@ -778,16 +647,6 @@ "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0" - }, - "runtimeTargets": { - "runtime/unix/lib/_._": { - "rid": "unix", - "assetType": "runtime" - }, - "runtime/win/lib/_._": { - "rid": "win", - "assetType": "runtime" - } } }, "System.Security.Cryptography.Encoding/4.3.0": { @@ -803,16 +662,6 @@ "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" - }, - "runtimeTargets": { - "runtime/unix/lib/_._": { - "rid": "unix", - "assetType": "runtime" - }, - "runtime/win/lib/_._": { - "rid": "win", - "assetType": "runtime" - } } }, "System.Security.Cryptography.OpenSsl/4.3.0": { @@ -830,12 +679,6 @@ "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" - }, - "runtimeTargets": { - "runtime/unix/lib/_._": { - "rid": "unix", - "assetType": "runtime" - } } }, "System.Security.Cryptography.Primitives/4.3.0": { @@ -891,16 +734,6 @@ "runtime.native.System": "4.3.0", "runtime.native.System.Net.Http": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" - }, - "runtimeTargets": { - "runtime/unix/lib/_._": { - "rid": "unix", - "assetType": "runtime" - }, - "runtime/win/lib/_._": { - "rid": "win", - "assetType": "runtime" - } } }, "System.Text.Encoding/4.3.0": { diff --git a/Semiodesk.Trinity.sln b/Semiodesk.Trinity.sln index 0e726fe..91ff047 100644 --- a/Semiodesk.Trinity.sln +++ b/Semiodesk.Trinity.sln @@ -29,6 +29,12 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Examples", "Examples", "{C0 EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FirstSteps", "Examples\FirstSteps\FirstSteps.csproj", "{FCD5CA84-CDFB-4826-9C56-CA722091B935}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{8F810E3F-1005-4D95-BF82-E903B9DF4F5E}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Trinity.Tests.Stardog", "tests\Trinity.Tests.Stardog\Trinity.Tests.Stardog.csproj", "{6F9E0B39-3076-4CE4-8E58-97C688EE2C6B}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Trinity.Tests.Virtuoso", "tests\Trinity.Tests.Virtuoso\Trinity.Tests.Virtuoso.csproj", "{47A2749D-25BB-4C4D-BAFD-E0B02549A016}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -92,12 +98,31 @@ Global {FCD5CA84-CDFB-4826-9C56-CA722091B935}.Release|Any CPU.Build.0 = Release|Any CPU {FCD5CA84-CDFB-4826-9C56-CA722091B935}.Release|x86.ActiveCfg = Release|Any CPU {FCD5CA84-CDFB-4826-9C56-CA722091B935}.Release|x86.Build.0 = Release|Any CPU + {6F9E0B39-3076-4CE4-8E58-97C688EE2C6B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6F9E0B39-3076-4CE4-8E58-97C688EE2C6B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6F9E0B39-3076-4CE4-8E58-97C688EE2C6B}.Debug|x86.ActiveCfg = Debug|Any CPU + {6F9E0B39-3076-4CE4-8E58-97C688EE2C6B}.Debug|x86.Build.0 = Debug|Any CPU + {6F9E0B39-3076-4CE4-8E58-97C688EE2C6B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6F9E0B39-3076-4CE4-8E58-97C688EE2C6B}.Release|Any CPU.Build.0 = Release|Any CPU + {6F9E0B39-3076-4CE4-8E58-97C688EE2C6B}.Release|x86.ActiveCfg = Release|Any CPU + {6F9E0B39-3076-4CE4-8E58-97C688EE2C6B}.Release|x86.Build.0 = Release|Any CPU + {47A2749D-25BB-4C4D-BAFD-E0B02549A016}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {47A2749D-25BB-4C4D-BAFD-E0B02549A016}.Debug|Any CPU.Build.0 = Debug|Any CPU + {47A2749D-25BB-4C4D-BAFD-E0B02549A016}.Debug|x86.ActiveCfg = Debug|Any CPU + {47A2749D-25BB-4C4D-BAFD-E0B02549A016}.Debug|x86.Build.0 = Debug|Any CPU + {47A2749D-25BB-4C4D-BAFD-E0B02549A016}.Release|Any CPU.ActiveCfg = Release|Any CPU + {47A2749D-25BB-4C4D-BAFD-E0B02549A016}.Release|Any CPU.Build.0 = Release|Any CPU + {47A2749D-25BB-4C4D-BAFD-E0B02549A016}.Release|x86.ActiveCfg = Release|Any CPU + {47A2749D-25BB-4C4D-BAFD-E0B02549A016}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(NestedProjects) = preSolution + {5E1FCE3C-9436-44F8-8DB6-18F6282DE70C} = {8F810E3F-1005-4D95-BF82-E903B9DF4F5E} {FCD5CA84-CDFB-4826-9C56-CA722091B935} = {C03B571D-B545-4384-849B-A1CD4CC145AA} + {6F9E0B39-3076-4CE4-8E58-97C688EE2C6B} = {8F810E3F-1005-4D95-BF82-E903B9DF4F5E} + {47A2749D-25BB-4C4D-BAFD-E0B02549A016} = {8F810E3F-1005-4D95-BF82-E903B9DF4F5E} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {01F0E2D7-A253-4F8E-9D8D-8C6EFF35CCF5} diff --git a/Trinity.CilGenerator/Properties/AssemblyInfo.cs b/Trinity.CilGenerator/Properties/AssemblyInfo.cs index 555aef5..26c7ed2 100644 --- a/Trinity.CilGenerator/Properties/AssemblyInfo.cs +++ b/Trinity.CilGenerator/Properties/AssemblyInfo.cs @@ -32,6 +32,6 @@ // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] +[assembly: AssemblyVersion("1.0.0.8")] +[assembly: AssemblyFileVersion("1.0.0.8")] [assembly: AssemblyInformationalVersion("1.0.0.0")] diff --git a/Trinity.Tests/Cilg/CilgResourceMappingTest.cs b/Trinity.Tests/Cilg/CilgResourceMappingTest.cs index 2984cb1..3777090 100644 --- a/Trinity.Tests/Cilg/CilgResourceMappingTest.cs +++ b/Trinity.Tests/Cilg/CilgResourceMappingTest.cs @@ -38,7 +38,7 @@ namespace Semiodesk.Trinity.Test { [TestFixture] - public class CilgResourceMappingTest + public class CilgResourceMappingTest : SetupClass { public static bool RegisteredOntology = false; diff --git a/Trinity.Tests/Configuration/ConfigurationTest.cs b/Trinity.Tests/Configuration/ConfigurationTest.cs index 92833a2..472609b 100644 --- a/Trinity.Tests/Configuration/ConfigurationTest.cs +++ b/Trinity.Tests/Configuration/ConfigurationTest.cs @@ -33,7 +33,7 @@ namespace Semiodesk.Trinity.Test { [TestFixture] - class ConfigurationTest + class ConfigurationTest : SetupClass { [Test] public void TestAppConfig() diff --git a/Trinity.Tests/Configuration/LegacyConfigurationTest.cs b/Trinity.Tests/Configuration/LegacyConfigurationTest.cs index adec49f..b34a2ce 100644 --- a/Trinity.Tests/Configuration/LegacyConfigurationTest.cs +++ b/Trinity.Tests/Configuration/LegacyConfigurationTest.cs @@ -32,7 +32,7 @@ namespace Semiodesk.Trinity.Test { [TestFixture] - class LegacyConfigurationTest + class LegacyConfigurationTest : SetupClass { [Test] public void TestAppConfig() @@ -49,14 +49,5 @@ public void TestAppConfig() Assert.IsNotNull(x.First().Data); } - - [Test] - public void TestInitialize() - { - string connectionString = SetupClass.ConnectionString; - - var store = StoreFactory.CreateStore(string.Format("{0};rule=urn:semiodesk/test/ruleset", connectionString)); - store.InitializeFromConfiguration(); - } } } diff --git a/Trinity.Tests/Linq/LinqTestBase.cs b/Trinity.Tests/Linq/LinqTestBase.cs index 2a2226c..5db901f 100644 --- a/Trinity.Tests/Linq/LinqTestBase.cs +++ b/Trinity.Tests/Linq/LinqTestBase.cs @@ -35,7 +35,7 @@ namespace Semiodesk.Trinity.Test.Linq { [TestFixture] - public abstract class LinqTestBase + public abstract class LinqTestBase : SetupClass { protected IStore Store; diff --git a/Trinity.Tests/MappingDiscoveryTest.cs b/Trinity.Tests/MappingDiscoveryTest.cs index b2c594d..44f4146 100644 --- a/Trinity.Tests/MappingDiscoveryTest.cs +++ b/Trinity.Tests/MappingDiscoveryTest.cs @@ -68,8 +68,11 @@ public override IEnumerable GetTypes() } } + /// + /// This class should test more, if we don't derive from SetupClass we can compare before and after discovery also. + /// [TestFixture] - public class MappingDiscoveryTest + public class MappingDiscoveryTest : SetupClass { [SetUp] public void SetUp() diff --git a/Trinity.Tests/MappingTestClasses.cs b/Trinity.Tests/MappingTestClasses.cs new file mode 100644 index 0000000..70fe20a --- /dev/null +++ b/Trinity.Tests/MappingTestClasses.cs @@ -0,0 +1,655 @@ + +using Semiodesk.Trinity.Ontologies; +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; + +namespace Semiodesk.Trinity.Test +{ + public abstract class AbstractMappingClass : Resource + { + protected PropertyMapping stringTestMapping = + new PropertyMapping("stringTest", TestOntology.stringTest); + + public string stringTest + { + get { return GetValue(stringTestMapping); } + set { SetValue(stringTestMapping, value); } + } + + protected AbstractMappingClass(Uri uri) : base(uri) { } + } + + public class ConcreteMappingClass : AbstractMappingClass + { + public override IEnumerable GetTypes() + { + yield return TestOntology.SingleMappingTestClass; + } + + public ConcreteMappingClass(Uri uri) : base(uri) { } + } + + public class SingleMappingTestClass : Resource + { + #region Mapping + + public override IEnumerable GetTypes() + { + yield return TestOntology.SingleMappingTestClass; + } + + protected PropertyMapping> stringTestMapping = + new PropertyMapping>("stringTest", TestOntology.stringTest, new ObservableCollection()); + + public ObservableCollection stringTest + { + get { return GetValue(stringTestMapping); } + set { SetValue(stringTestMapping, value); } + } + + #endregion + + #region Constructors + + public SingleMappingTestClass(Uri uri) : base(uri) { } + + #endregion + } + + public class SingleResourceMappingTestClass : Resource + { + #region Constructors + + public SingleResourceMappingTestClass(Uri uri) : base(uri) { } + + #endregion + + #region Mapping + + public override IEnumerable GetTypes() + { + return new List { TestOntology.SingleResourceMappingTestClass }; + } + + protected PropertyMapping> resourceTestMapping = + new PropertyMapping>("ResourceTest", TestOntology.resourceTest, new ObservableCollection()); + + public ObservableCollection ResourceTest + { + get { return GetValue(resourceTestMapping); } + set { SetValue(resourceTestMapping, value); } + } + + #endregion + } + + public class ResourceMappingTestClass : Resource + { + #region Members + + protected PropertyMapping IntegerValueMapping = new PropertyMapping("IntegerValue", TestOntology.intTest); + + public int IntegerValue + { + get { return GetValue(IntegerValueMapping); } + set { SetValue(IntegerValueMapping, value); } + } + + protected PropertyMapping ResourceMapping = new PropertyMapping("Resource", TestOntology.resourceTest); + + public ResourceMappingTestClass Resource + { + get { return GetValue(ResourceMapping); } + set { SetValue(ResourceMapping, value); } + } + + #endregion + + #region Constructors + + public ResourceMappingTestClass(Uri uri) : base(uri) { } + + #endregion + + #region Methods + + public override IEnumerable GetTypes() + { + yield return TestOntology.ResourceMappingTestClass; + } + + #endregion + } + + public class MappingTestClass : Resource + { + #region Constructors + + public MappingTestClass(Uri uri) : base(uri) { } + + #endregion + + #region Mapping + + public override IEnumerable GetTypes() + { + return new List { TestOntology.TestClass }; + } + + protected PropertyMapping> intTestMapping = + new PropertyMapping>("intTest", TestOntology.intTest, new ObservableCollection()); + + public ObservableCollection intTest + { + get { return GetValue(intTestMapping); } + set { SetValue(intTestMapping, value); } + } + + protected PropertyMapping uniqueIntTestMapping = + new PropertyMapping("uniqueIntTest", TestOntology.uniqueIntTest); + + public int uniqueIntTest + { + get { return GetValue(uniqueIntTestMapping); } + set { SetValue(uniqueIntTestMapping, value); } + } + + protected PropertyMapping> uintTestMapping = + new PropertyMapping>("uintTest", TestOntology.uintTest, new ObservableCollection()); + + public ObservableCollection uintTest + { + get { return GetValue(uintTestMapping); } + set { SetValue(uintTestMapping, value); } + } + + + protected PropertyMapping uniqueUintTestMapping = + new PropertyMapping("uniqueUintTest", TestOntology.uniqueUintTest); + + public uint uniqueUintTest + { + get { return GetValue(uniqueUintTestMapping); } + set { SetValue(uniqueUintTestMapping, value); } + } + + protected PropertyMapping> stringTestMapping = + new PropertyMapping>("stringTest", TestOntology.stringTest, new ObservableCollection()); + + public ObservableCollection stringTest + { + get { return GetValue(stringTestMapping); } + set { SetValue(stringTestMapping, value); } + } + + protected PropertyMapping uniqueStringTestMapping = + new PropertyMapping("uniqueStringTest", TestOntology.uniqueStringTest); + + public string uniqueStringTest + { + get { return GetValue(uniqueStringTestMapping); } + set { SetValue(uniqueStringTestMapping, value); } + } + + protected PropertyMapping> boolTestMapping = + new PropertyMapping>("boolTest", TestOntology.boolTest, new ObservableCollection()); + + public ObservableCollection boolTest + { + get { return GetValue(boolTestMapping); } + set { SetValue(boolTestMapping, value); } + } + + protected PropertyMapping uniqueBoolTestMapping = + new PropertyMapping("uniqueBoolTest", TestOntology.uniqueBoolTest); + + public bool uniqueBoolTest + { + get { return GetValue(uniqueBoolTestMapping); } + set { SetValue(uniqueBoolTestMapping, value); } + } + + protected PropertyMapping uniqueFloatTestMapping = + new PropertyMapping("uniqueFloatTest", TestOntology.uniqueFloatTest); + + public float uniqueFloatTest + { + get { return GetValue(uniqueFloatTestMapping); } + set { SetValue(uniqueFloatTestMapping, value); } + } + + protected PropertyMapping uniqueDoubleTestMapping = + new PropertyMapping("uniqueDoubleTest", TestOntology.uniqueDoubleTest); + + public double uniqueDoubleTest + { + get { return GetValue(uniqueDoubleTestMapping); } + set { SetValue(uniqueDoubleTestMapping, value); } + } + + protected PropertyMapping> doubleTestMapping = + new PropertyMapping>("doubleTest", TestOntology.doubleTest); + + public ObservableCollection DoubleTest + { + get { return GetValue(doubleTestMapping); } + set { SetValue(doubleTestMapping, value); } + } + + protected PropertyMapping uniqueDecimalTestMapping = + new PropertyMapping("uniqueDecimalTest", TestOntology.uniqueDecimalTest); + + public decimal uniqueDecimalTest + { + get { return GetValue(uniqueDecimalTestMapping); } + set { SetValue(uniqueDecimalTestMapping, value); } + } + + protected PropertyMapping> _genericPropertyMapping = + new PropertyMapping>("genericProperty", TestOntology.genericTest); + + public ObservableCollection genericProperty + { + get { return GetValue(_genericPropertyMapping); } + set { SetValue(_genericPropertyMapping, value); } + } + + protected PropertyMapping uniqueDateTimeTestMapping = + new PropertyMapping("uniqueDateTimeTest", TestOntology.uniqueDatetimeTest); + + public DateTime uniqueDateTimeTest + { + get { return GetValue(uniqueDateTimeTestMapping); } + set { SetValue(uniqueDateTimeTestMapping, value); } + } + + protected PropertyMapping> dateTimeTestMapping = + new PropertyMapping>("dateTimeTest", TestOntology.datetimeTest, new ObservableCollection()); + + public ObservableCollection dateTimeTest + { + get { return GetValue(dateTimeTestMapping); } + set { SetValue(dateTimeTestMapping, value); } + } + + + protected PropertyMapping> resourceTestMapping = + new PropertyMapping>("resourceTest", TestOntology.resourceTest, new ObservableCollection()); + + public ObservableCollection resourceTest + { + get { return GetValue(resourceTestMapping); } + set { SetValue(resourceTestMapping, value); } + } + + protected PropertyMapping uniqueResourceTestMapping = + new PropertyMapping("uniqueResourceTest", TestOntology.uniqueResourceTest); + + public MappingTestClass2 uniqueResourceTest + { + get { return GetValue(uniqueResourceTestMapping); } + set { SetValue(uniqueResourceTestMapping, value); } + } + + protected PropertyMapping resPropertyMapping = + new PropertyMapping("resProperty", TestOntology.resTest); + + public Resource resProperty + { + get { return (Resource)GetValue(resPropertyMapping); } + set { SetValue(resPropertyMapping, value); } + } + + protected PropertyMapping> uriTestMapping = + new PropertyMapping>("uriTest", TestOntology.uriTest, new ObservableCollection()); + + public ObservableCollection uriTest + { + get { return GetValue(uriTestMapping); } + set { SetValue(uriTestMapping, value); } + } + + protected PropertyMapping uniqueUriTestMapping = + new PropertyMapping("uniqueUriTest", TestOntology.uniqueUriTest); + + public Uri uniqueUriTest + { + get { return GetValue(uniqueUriTestMapping); } + set { SetValue(uniqueUriTestMapping, value); } + } + + + #endregion + + } + + public class MappingTestClass2 : Resource + { + #region Constructors + + public MappingTestClass2(Uri uri) : base(uri) { } + + #endregion + + #region Mapping + + public override IEnumerable GetTypes() + { + return new List { TestOntology.TestClass2 }; + } + + protected PropertyMapping uniqueStringTestMapping = + new PropertyMapping("uniqueStringTest", TestOntology.uniqueStringTest); + + public string uniqueStringTest + { + get { return GetValue(uniqueStringTestMapping); } + set { SetValue(uniqueStringTestMapping, value); } + } + + #endregion + } + + public class MappingTestClass3 : MappingTestClass2 + { + #region Constructors + + public MappingTestClass3(Uri uri) : base(uri) { } + + #endregion + + #region Mapping + + public override IEnumerable GetTypes() + { + return new List { TestOntology.TestClass3 }; + } + + #endregion + } + + public class MappingTestClass4 : MappingTestClass3 + { + #region Constructors + + public MappingTestClass4(Uri uri) : base(uri) { } + + #endregion + + #region Mapping + + public override IEnumerable GetTypes() + { + return new List { TestOntology.TestClass3 }; + } + + #endregion + } + public class MappingTestClass5 : MappingTestClass3 + { + #region Constructors + + public MappingTestClass5(Uri uri) : base(uri) { } + + #endregion + + #region Mapping + + public override IEnumerable GetTypes() + { + return new List { TestOntology.TestClass4 }; + } + + #endregion + } + + public class StringMappingTestClass : Resource + { + #region Constructors + + public StringMappingTestClass(Uri uri) : base(uri) { } + + #endregion + + #region Mapping + + public override IEnumerable GetTypes() + { + return new List { TestOntology.TestClass3 }; + } + + public PropertyMapping randomPropertyTestMapping = + new PropertyMapping("RandomProperty", "http://www.example.com/property"); + + public string RandomProperty + { + get { return GetValue(randomPropertyTestMapping); } + set { SetValue(randomPropertyTestMapping, value); } + } + + public PropertyMapping uniqueStringTestMapping = + new PropertyMapping("uniqueStringTest", TestOntology.uniqueStringTest.Uri.OriginalString); + + public string uniqueStringTest + { + get { return GetValue(uniqueStringTestMapping); } + set { SetValue(uniqueStringTestMapping, value); } + } + + public PropertyMapping> stringListTestMapping = + new PropertyMapping>("stringListTest", TestOntology.stringTest); + + public List stringListTest + { + get { return GetValue(stringListTestMapping); } + set { SetValue(stringListTestMapping, value); } + } + + public PropertyMapping> intTestMapping = + new PropertyMapping>("intTest", "semio:test:intTest", new ObservableCollection()); + + public ObservableCollection intTest + { + get { return GetValue(intTestMapping); } + set { SetValue(intTestMapping, value); } + } + + #endregion + } + + public class JsonMappingTestClass : Resource + { + #region Mapping + + public override IEnumerable GetTypes() + { + yield return TestOntology.JsonTestClass; + } + + protected PropertyMapping> stringTestMapping = + new PropertyMapping>("stringTest", TestOntology.stringTest, new ObservableCollection()); + + public ObservableCollection stringTest + { + get { return GetValue(stringTestMapping); } + set { SetValue(stringTestMapping, value); } + } + + #endregion + + #region Constructors + + public JsonMappingTestClass(Uri uri) : base(uri) { } + + #endregion + } + + public class ContactList : Resource + { + #region Constructors + public ContactList(Uri uri) : base(uri) { } + #endregion + + public override IEnumerable GetTypes() + { + return new List { nco.ContactList }; + } + + protected PropertyMapping> containsContactProperty = new PropertyMapping>("ContainsContact", nco.containsContact, new ObservableCollection()); + + public ObservableCollection ContainsContact + { + get { return GetValue(containsContactProperty); } + set { SetValue(containsContactProperty, value); } + } + } + + public class EmailAddress : Resource + { + #region Constructors + public EmailAddress(Uri uri) : base(uri) { } + #endregion + + public override IEnumerable GetTypes() + { + return new List { nco.EmailAddress }; + } + + protected PropertyMapping addressProperty = new PropertyMapping("Address", nco.emailAddress); + + public string Address + { + get { return GetValue(addressProperty); } + set { SetValue(addressProperty, value); } + } + } + + public class PostalAddress : Resource + { + #region Constructors + public PostalAddress(Uri uri) : base(uri) { } + #endregion + + public override IEnumerable GetTypes() + { + return new List { nco.PostalAddress }; + } + + protected PropertyMapping countryProperty = new PropertyMapping("Country", nco.country); + public string Country + { + get { return GetValue(countryProperty); } + set { SetValue(countryProperty, value); } + } + + protected PropertyMapping postalCodeProperty = new PropertyMapping("PostalCode", nco.postalcode); + public string PostalCode + { + get { return GetValue(postalCodeProperty); } + set { SetValue(postalCodeProperty, value); } + } + + protected PropertyMapping localityProperty = new PropertyMapping("City", nco.locality); + public string City + { + get { return GetValue(localityProperty); } + set { SetValue(localityProperty, value); } + } + + protected PropertyMapping streetAddressProperty = new PropertyMapping("StreetAddress", nco.postalcode); + public string StreetAddress + { + get { return GetValue(streetAddressProperty); } + set { SetValue(streetAddressProperty, value); } + } + } + + public class Contact : Resource + { + #region Constructors + public Contact(Uri uri) : base(uri) { } + #endregion + + public override IEnumerable GetTypes() + { + return new List { nco.Contact }; + } + + protected PropertyMapping fullnameProperty = new PropertyMapping("Fullname", nco.fullname, true); + + public string Fullname + { + get { return GetValue(fullnameProperty); } + set { SetValue(fullnameProperty, value); } + } + + protected PropertyMapping birthDateProperty = new PropertyMapping("BirthDate", nco.birthDate); + + public DateTime BirthDate + { + get { return GetValue(birthDateProperty); } + set { SetValue(birthDateProperty, value); } + } + + protected PropertyMapping> emailAddressProperty = new PropertyMapping>("EmailAddresses", nco.hasEmailAddress, new ObservableCollection()); + public ObservableCollection EmailAddresses + { + get { return GetValue(emailAddressProperty); } + set { SetValue(emailAddressProperty, value); } + } + + protected PropertyMapping> postalAddressProperty = new PropertyMapping>("PostalAddresses", nco.hasPostalAddress, new ObservableCollection()); + public ObservableCollection PostalAddresses + { + get { return GetValue(postalAddressProperty); } + set { SetValue(postalAddressProperty, value); } + } + + } + + public class PersonContact : Contact + { + #region Constructors + public PersonContact(Uri uri) : base(uri) { } + #endregion + + public override IEnumerable GetTypes() + { + return new List { nco.PersonContact }; + } + + protected PropertyMapping nameGivenProperty = new PropertyMapping("NameGiven", nco.nameGiven, true); + + public string NameGiven + { + get { return GetValue(nameGivenProperty); } + set { SetValue(nameGivenProperty, value); } + } + + protected PropertyMapping> nameAdditonalProperty = new PropertyMapping>("NameAdditional", nco.nameAdditional, new ObservableCollection(), true); + + public ObservableCollection NameAdditional + { + get { return GetValue(nameAdditonalProperty); } + set { SetValue(nameAdditonalProperty, value); } + } + + protected PropertyMapping nameFamilyProperty = new PropertyMapping("NameFamily", nco.nameFamily, true); + + public string NameFamily + { + get { return GetValue(nameFamilyProperty); } + set { SetValue(nameFamilyProperty, value); } + } + + private bool _isSelected; + + public bool IsSelected + { + get { return _isSelected; } + set { _isSelected = value; RaisePropertyChanged("IsSelected"); } + } + } + +} diff --git a/Trinity.Tests/Net35/TinyVirtuoso/virtuoso/doc/AUTHORS b/Trinity.Tests/Net35/TinyVirtuoso/virtuoso/doc/AUTHORS deleted file mode 100644 index a250a0f..0000000 --- a/Trinity.Tests/Net35/TinyVirtuoso/virtuoso/doc/AUTHORS +++ /dev/null @@ -1,14 +0,0 @@ -# -# $Id$ -# -# List of Authors/Contributors -# -# Virtuoso Open-Source (VOS) project - -Current Maintainer ------------------- -Virtuoso Maintainer - - -Contributors ------------- diff --git a/Trinity.Tests/Net35/TinyVirtuoso/virtuoso/doc/COPYING b/Trinity.Tests/Net35/TinyVirtuoso/virtuoso/doc/COPYING deleted file mode 100644 index d159169..0000000 --- a/Trinity.Tests/Net35/TinyVirtuoso/virtuoso/doc/COPYING +++ /dev/null @@ -1,339 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Lesser General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. diff --git a/Trinity.Tests/Net35/TinyVirtuoso/virtuoso/doc/CREDITS b/Trinity.Tests/Net35/TinyVirtuoso/virtuoso/doc/CREDITS deleted file mode 100644 index df48065..0000000 --- a/Trinity.Tests/Net35/TinyVirtuoso/virtuoso/doc/CREDITS +++ /dev/null @@ -1,249 +0,0 @@ -# -# $Id$ -# -# CREDITS -# -# This file is part of the OpenLink Software Virtuoso Open-Source (VOS) -# project. -# -# Copyright (C) 1998-2015 OpenLink Software -# - -Included Functionality -====================== - -The OpenLink Software Virtuoso Open-Source Edition (VOS) project wishes to -acknowledge incorporation of code from the following projects: - -OpenSSL - - - This product includes software developed by the OpenSSL Project for use - in the OpenSSL Toolkit. - - This product includes cryptographic software written by Eric Young - (eay@cryptsoft.com). - - This product includes software written by Tim Hudson - (tjh@cryptsoft.com) - - OpenSSL is distributed under the terms of the OpenSSL License: - - - As cryptographic software, OpenSSL may be subject to export - restrictions: - - -Tidy - HTML parser and pretty printer - - - This product includes Tidy developed by the World Wide Web Consortium. - - Tidy is distributed under the terms of the W3C License: - - - -Zlib - compression library - - - This product includes the Zlib library developed by Jean-loup Gailly - and Mark Adler. - - Zlib is distributed under the terms of the Zlib/PNG license: - - - -PCRE - - - This product includes the Perl-Compatible Regular-Expression Library - (PCRE) by Phillip Hazel. - - PCRE is distributed under the terms of the BSD license: - - - -OAT - - - Virtuoso uses the OpenLink AJAX Toolkit (OAT) in the Data Space - application suite. - - OAT is distributed under the terms of the GNU Public License v2: - - - -CKEditor - - - Virtuoso uses the CKEditor, a WYSIWYG editor in javascript in the - Data Space application suite. - - CKEditor is distributed under the terms of the GNU Public License, - the Lesser GNU Public License or the Mozilla Public License: - - - -SHA1 Javascript - - Virtuoso uses a Javsscript implementation of the Secure Hash Algoritm - (SHA1) as defined in FIPS PUB 180-1, written by Paul Johnston - - SHA1 is distributed under the terms of the BSD license - - - -MD5 Java - - Virtuoso uses a Java implementation of the MD5 hash algorithm - as defined in RFC1231, written Santeri Paavolainen - - MD5.java is distributed under the terms of the GNU Lesser General - Public License (LGPL): . - - -DocBook stylesheets - - - Virtuoso uses the DocBook stylesheets to generate HTML based documentation. - - DocBook is distributable under the terms of the MIT/X Consortium License. - - -Optional functionality -====================== - -OpenLink Software Virtuoso Open-Source Edition contains optional -functionality that may require libraries from some of the following -projects: - - -Perl - - - Virtuoso may be linked against libperl.so to provide a Perl hosting - environment. - - Perl is distributed under the terms of the Artistic License: - - - -Python - - - Virtuoso may be linked against libpython.so to provide a Python hosting - environment. - - Python is distributed under the terms of the Python License: - - - -Ruby - - - Virtuoso may be linked against libruby.so to provide a Ruby hosting - environment. - - Ruby is distributed under the terms of the Ruby License: - - - -PHP - - - Virtuoso may be linked against libphp5.so to provide a PHP hosting - environment. - - PHP is distributed under the terms of the PHP License: - - - -Java - - - Virtuoso may be linked against libjvm.so to provide a Java hosting - environment. - - Use of this module requires a JVM to be installed such as one from - - - -Readline - - - Virtuoso Open-Source Edition may be compiled against the readline - library. - - Readline is distributed under the terms of the GNU Public License - version 2 or later: - - - This library is not present in OpenLink Virtuoso (commercial edition). - - -OpenLDAP - - - Virtuoso may be linked against OpenLdap to provide dynamic - authentication lookups against existing LDAP servers. - - OpenLDAP is distributed under the terms of the OpenLDAP Public License: - - - -GTK+ - - - Parts of Virtuoso may be linked against the Gimp Toolkit graphical - library (GTK+). - - GTK+ is distributed under the terms of the GNU Lesser General Public - License (LGPL): . - - -iODBC - - - Virtuoso may be linked against the iODBC driver manager library. - - iODBC is distributed under the terms of either the LGPL or BSD license: - - - -WBXML2 - - - Parts of Virtuoso may be linked against the WBXML2 library. - - WBXML2 is distributed under the terms of the GNU Lesser General Public - License (LGPL): . - - -Handle System Client Library - - - Parts of Virtuoso may be linked against the Handle System Client library. - - The Handle System Client Library is distributed under the terms of - the Handle.NET Software Client Library (VER. 5) -- C Version License: - - - -Rendezvous - - - Virtuoso may be linked against the Rendezvous network-discovery - library by Apple Computer, Inc. - - Rendezvous is distributed under the terms of the Apple Public Source - License: - - -ImageMagick - - - Parts of Virtuoso may be linked against the ImageMagick graphics library. - - ImageMagick is distributed under the terms of the ImageMagick license: - which is compatible - with GPL. diff --git a/Trinity.Tests/Net35/TinyVirtuoso/virtuoso/doc/INSTALL b/Trinity.Tests/Net35/TinyVirtuoso/virtuoso/doc/INSTALL deleted file mode 100644 index 56b077d..0000000 --- a/Trinity.Tests/Net35/TinyVirtuoso/virtuoso/doc/INSTALL +++ /dev/null @@ -1,236 +0,0 @@ -Installation Instructions -************************* - -Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free -Software Foundation, Inc. - -This file is free documentation; the Free Software Foundation gives -unlimited permission to copy, distribute and modify it. - -Basic Installation -================== - -These are generic installation instructions. - - The `configure' shell script attempts to guess correct values for -various system-dependent variables used during compilation. It uses -those values to create a `Makefile' in each directory of the package. -It may also create one or more `.h' files containing system-dependent -definitions. Finally, it creates a shell script `config.status' that -you can run in the future to recreate the current configuration, and a -file `config.log' containing compiler output (useful mainly for -debugging `configure'). - - It can also use an optional file (typically called `config.cache' -and enabled with `--cache-file=config.cache' or simply `-C') that saves -the results of its tests to speed up reconfiguring. (Caching is -disabled by default to prevent problems with accidental use of stale -cache files.) - - If you need to do unusual things to compile the package, please try -to figure out how `configure' could check whether to do them, and mail -diffs or instructions to the address given in the `README' so they can -be considered for the next release. If you are using the cache, and at -some point `config.cache' contains results you don't want to keep, you -may remove or edit it. - - The file `configure.ac' (or `configure.in') is used to create -`configure' by a program called `autoconf'. You only need -`configure.ac' if you want to change it or regenerate `configure' using -a newer version of `autoconf'. - -The simplest way to compile this package is: - - 1. `cd' to the directory containing the package's source code and type - `./configure' to configure the package for your system. If you're - using `csh' on an old version of System V, you might need to type - `sh ./configure' instead to prevent `csh' from trying to execute - `configure' itself. - - Running `configure' takes awhile. While running, it prints some - messages telling which features it is checking for. - - 2. Type `make' to compile the package. - - 3. Optionally, type `make check' to run any self-tests that come with - the package. - - 4. Type `make install' to install the programs and any data files and - documentation. - - 5. You can remove the program binaries and object files from the - source code directory by typing `make clean'. To also remove the - files that `configure' created (so you can compile the package for - a different kind of computer), type `make distclean'. There is - also a `make maintainer-clean' target, but that is intended mainly - for the package's developers. If you use it, you may have to get - all sorts of other programs in order to regenerate files that came - with the distribution. - -Compilers and Options -===================== - -Some systems require unusual options for compilation or linking that the -`configure' script does not know about. Run `./configure --help' for -details on some of the pertinent environment variables. - - You can give `configure' initial values for configuration parameters -by setting variables in the command line or in the environment. Here -is an example: - - ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix - - *Note Defining Variables::, for more details. - -Compiling For Multiple Architectures -==================================== - -You can compile the package for more than one kind of computer at the -same time, by placing the object files for each architecture in their -own directory. To do this, you must use a version of `make' that -supports the `VPATH' variable, such as GNU `make'. `cd' to the -directory where you want the object files and executables to go and run -the `configure' script. `configure' automatically checks for the -source code in the directory that `configure' is in and in `..'. - - If you have to use a `make' that does not support the `VPATH' -variable, you have to compile the package for one architecture at a -time in the source code directory. After you have installed the -package for one architecture, use `make distclean' before reconfiguring -for another architecture. - -Installation Names -================== - -By default, `make install' will install the package's files in -`/usr/local/bin', `/usr/local/man', etc. You can specify an -installation prefix other than `/usr/local' by giving `configure' the -option `--prefix=PREFIX'. - - You can specify separate installation prefixes for -architecture-specific files and architecture-independent files. If you -give `configure' the option `--exec-prefix=PREFIX', the package will -use PREFIX as the prefix for installing programs and libraries. -Documentation and other data files will still use the regular prefix. - - In addition, if you use an unusual directory layout you can give -options like `--bindir=DIR' to specify different values for particular -kinds of files. Run `configure --help' for a list of the directories -you can set and what kinds of files go in them. - - If the package supports it, you can cause programs to be installed -with an extra prefix or suffix on their names by giving `configure' the -option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. - -Optional Features -================= - -Some packages pay attention to `--enable-FEATURE' options to -`configure', where FEATURE indicates an optional part of the package. -They may also pay attention to `--with-PACKAGE' options, where PACKAGE -is something like `gnu-as' or `x' (for the X Window System). The -`README' should mention any `--enable-' and `--with-' options that the -package recognizes. - - For packages that use the X Window System, `configure' can usually -find the X include and library files automatically, but if it doesn't, -you can use the `configure' options `--x-includes=DIR' and -`--x-libraries=DIR' to specify their locations. - -Specifying the System Type -========================== - -There may be some features `configure' cannot figure out automatically, -but needs to determine by the type of machine the package will run on. -Usually, assuming the package is built to be run on the _same_ -architectures, `configure' can figure that out, but if it prints a -message saying it cannot guess the machine type, give it the -`--build=TYPE' option. TYPE can either be a short name for the system -type, such as `sun4', or a canonical name which has the form: - - CPU-COMPANY-SYSTEM - -where SYSTEM can have one of these forms: - - OS KERNEL-OS - - See the file `config.sub' for the possible values of each field. If -`config.sub' isn't included in this package, then this package doesn't -need to know the machine type. - - If you are _building_ compiler tools for cross-compiling, you should -use the `--target=TYPE' option to select the type of system they will -produce code for. - - If you want to _use_ a cross compiler, that generates code for a -platform different from the build platform, you should specify the -"host" platform (i.e., that on which the generated programs will -eventually be run) with `--host=TYPE'. - -Sharing Defaults -================ - -If you want to set default values for `configure' scripts to share, you -can create a site shell script called `config.site' that gives default -values for variables like `CC', `cache_file', and `prefix'. -`configure' looks for `PREFIX/share/config.site' if it exists, then -`PREFIX/etc/config.site' if it exists. Or, you can set the -`CONFIG_SITE' environment variable to the location of the site script. -A warning: not all `configure' scripts look for a site script. - -Defining Variables -================== - -Variables not defined in a site shell script can be set in the -environment passed to `configure'. However, some packages may run -configure again during the build, and the customized values of these -variables may be lost. In order to avoid this problem, you should set -them in the `configure' command line, using `VAR=value'. For example: - - ./configure CC=/usr/local2/bin/gcc - -causes the specified `gcc' to be used as the C compiler (unless it is -overridden in the site shell script). Here is a another example: - - /bin/bash ./configure CONFIG_SHELL=/bin/bash - -Here the `CONFIG_SHELL=/bin/bash' operand causes subsequent -configuration-related scripts to be executed by `/bin/bash'. - -`configure' Invocation -====================== - -`configure' recognizes the following options to control how it operates. - -`--help' -`-h' - Print a summary of the options to `configure', and exit. - -`--version' -`-V' - Print the version of Autoconf used to generate the `configure' - script, and exit. - -`--cache-file=FILE' - Enable the cache: use and save the results of the tests in FILE, - traditionally `config.cache'. FILE defaults to `/dev/null' to - disable caching. - -`--config-cache' -`-C' - Alias for `--cache-file=config.cache'. - -`--quiet' -`--silent' -`-q' - Do not print messages saying which checks are being made. To - suppress all normal output, redirect it to `/dev/null' (any error - messages will still be shown). - -`--srcdir=DIR' - Look for the package's source code in directory DIR. Usually - `configure' can determine that directory automatically. - -`configure' also accepts some other, not widely useful, options. Run -`configure --help' for more details. - diff --git a/Trinity.Tests/Net35/TinyVirtuoso/virtuoso/doc/LICENSE b/Trinity.Tests/Net35/TinyVirtuoso/virtuoso/doc/LICENSE deleted file mode 100644 index 934e5d7..0000000 --- a/Trinity.Tests/Net35/TinyVirtuoso/virtuoso/doc/LICENSE +++ /dev/null @@ -1,34 +0,0 @@ -OpenLink Software's Virtuoso Open-Source (VOS) project -Copyright (C) 1998-2015 OpenLink Software - -This software is licensed under the GNU General Public License (see -COPYING). - -Note that the only valid version of the GPL license as far as this project -is concerned is the original GNU General Public License Version 2, dated -June 1991. - - -OpenSSL exemption ------------------ -This project may be compiled/linked with the OpenSSL library. If so, the -following exemption is added to the above license: - - In addition, as a special exemption, OpenLink Software gives - permission to link the code of its release of Virtuoso with the - OpenSSL project's "OpenSSL" library (or with modified versions - of it that use the same license as the "OpenSSL" library), and - distribute the linked executables. You must obey the GNU General - Public License in all respects for all of the code used other - than "OpenSSL". - - -Client Protocol Driver exemptions ---------------------------------- - - In addition, as a special exemption, OpenLink Software gives - permission to use the unmodified client libraries (ODBC, JDBC, - ADO.NET, OleDB, Jena, Sesame and Redland providers) in your own - application whether open-source or not, with no obligation to use - the GPL on the resulting application. In all other respects you - must abide by the terms of the GPL. diff --git a/Trinity.Tests/Net35/TinyVirtuoso/virtuoso/doc/NEWS b/Trinity.Tests/Net35/TinyVirtuoso/virtuoso/doc/NEWS deleted file mode 100644 index 68575cf..0000000 --- a/Trinity.Tests/Net35/TinyVirtuoso/virtuoso/doc/NEWS +++ /dev/null @@ -1,234 +0,0 @@ -February 17, 2015, V7.2.0: - * Virtuoso Engine - - Added new threadsafe / reentrant SQL parser - - Added support for using TLSF library for page-maps - - Added support for setting SSL Protocols and Ciphers - - Added support for new Unicode-3 based collations - - Added support for custom HTTPLogFormat - - Added support for quality factor in accept headers - - Added rate limiter for bad connections - - Added ODBC 3.x alias for current_date, current_time and current_timestamp - - Improved cost based optimizer - - Improved LDP support - - Improved XPER support - - Improved CSV support - - Fixed handling of regexp cache size and pcre_match depth limit - - Fixed handling of multibyte strings - - Fixed handling of nvarchar data with zeroes in the middle - - Fixed handling of values in 10 day gap between Julian and Gregorian dates - - Fixed if expr in rdf o range condition, set super so they get placed once - - Fixed issue possibly reading freed block - - Fixed issue with TZ field without separator - - Fixed issue with duplicate hashes - - Fixed issue with invariant preds - - Fixed issue with non chash distinct gby with nulls - - Fixed issue with user aggregates and chash flush - - Fixed issues with outer join, order by and group by - - Fixed sending IRI IDs to remotes when using 'where 0' - - Fixed use SHA256 as default for certificate signing - - Fixed memory leaks and memory fragmentation - - Fixed ssl read/write error condition - - Fixed windows build - - * GEO functions - - Added support for SPARQL INSERT with GEO literals - - Added support for upcoming proj4 plugin - - Fixed issue with rdf box with a geometry rdf type and a non geometry content - - Fixed calculation of serialization lengths for geo boxes - - Fixed compilation of a query with bif:st_intersects inside service {} - - Fixed serialization of geo boxes - - Fixed intersect to working with other geo shapes - - * SPARQL - - Added new SPARQL pragma: define sql:comment 0/1 - - Added indicator when max rows is returned on /sparql endpoint - - Added new role SPARQL_LOAD_SERVICE_DATA - - Added new client callable graph ins/del/replace functions - - Added support for __tag of UNAME - - Added support for multiple sparql update commands - - Added support for xsd:gYear and the like - - Added support for CASE x WHEN ... and CASE when in SPARQL - - Added support for 'HTML with nice turtle' output format - - Added TransStepMode option to virtuoso.ini - - Improved handling of floats and doubles in SPARQL compiler - - Improved Turtle parser - - Fixed SPARQL DELETE DATA when a complete RDF box w/o RO_ID is passed as obj - - Fixed URI() is synonym for IRI() - - Fixed equality of unames and strings, iri strings - - Fixed issue eliminating empty {} in VALUE join - - Fixed issue with R2RML - - Fixed issue with XMLA - - Fixed issue with base graph when using 'with_delete' in bulkloader - - Fixed issue with multiple OPTIONAL - - Fixed issue with sparql ... with delete on certain datatypes - - Fixed issue with varbinary in rdf views - - Fixed printing optimized-away data rows of VALUES in sparql_explain() dump - - Fixed propagation of limits if SPART_VARR_EXTARNAL/GLOBAL variables present - - Fixed regression for SPARQL 1.1 VALUES bindings - - Fixed sort accented letters from "ORDER BY" in alphabetical order - - Fixed startup speed with many graph group members - - * Jena & Sesame - - Upgraded to Jena 2.12.0 - - Added support for Bulk Loading - - Added support for Dataset method using defaultInsertGraph and defaultRemoveGraph - - Fixed handling of blank nodes - - Fixed transaction handling - - Fixed NullPointerException for sparql with OPTIONAL - - Fixed issue with statement leaks in older Virtuoso JDBC driver - - Fixed issue with class definitions and classcast exceptions - - Fixed issue with large datasets like Uniprot - - * JDBC Driver - - Enhanced Connection Pool implementation - - Added support for arrays for RDF Bulk loader - - Added JDBC4 compliant metadata required by JBOSS - - Fixed issue with statement leaks - - Fixed issue with RoundRobin if server out of license - - Fixed issue with stored procedures returning multiple resultsets - - Fixed issue with rewind on Virtuoso blob - - Fixed issue with batch procedure execution - - Fixed issue with dates - - Fixed issue with SQL_UTF8_EXECS=1 - - Fixed issue with JDBC testsuite - - * Faceted Browser - - Added support for graph selection and persist in fct state - - Added support for link out icons on certain doc and image links - - Added new description and sponger options as entity link types - - Added option for json output to fct service - - Added group by to speed up distinct - - Added precompiled queries to speed up usage.vsp - - Fixed base uri for crawlers - - Fixed color scheme - - Fixed graph perm check - - Fixed handling of foaf:depiction - - Fixed handling of iframe - - Fixed issue when lang is missing to fct service - - Fixed issue with dateTime - - Fixed issue with double quotes in literals - - Fixed issue with nodeID - - Fixed issue with null graphs - - Fixed labels - - Fixed links - -February 17, 2014, V7.1.0: - * Engine - - Enhancements to cost based optimizer - - Added optimization when splitting on scattered inserts - - Added optimization on fetching col seg - - Added support for multithreaded sync/flush - - Added support for ordered count distinct and exact p stat - - Added new settings EnableMonitor - - Added BIFs key_delete_replay(), set_by_graph_keywords(), - tweak_by_graph_keywords, vec_length(), vec_ref(), - x509_verify_array(), xenc_x509_cert_verify_array() - - Added new functions bif_list_names() and bif_metadata() - - Added new general-purpose HTTP auth procedure - - Added support for local dpipes - - Added support for session pool - - Added option to allow restricting number of id ranges for new IRIs - - Added support for execution profile in xml format - - Added support for PL-as-BIFs in SPARQL - - Improved I/O for geometries in SQL - - Fixed geo cost of non point geos where no explicit prec - - Fixed reentrant lexer - - Fixed rpc argument checks - - Fixed memory leaks - - Fixed compiler warnings - - Treat single db file as a single segment with one stripe - - Updated testsuite - - * GEO functions - - Added initial support for geoc_epsilon(), geometrytype(), - st_affine() (2D trans nly), st_geometryn(), st_get_bounding_box_n(), - st_intersects(), st_linestring(), st_numgeometries(), - st_transform_by_custom_projection(), st_translate() , - st_transscale(), st_contains() , st_may_contain(), - st_may_intersect() - - Added new BIFs for getting Z and M coords - - Added support for <(type,type,...)type::sql:function> trick - in order to eliminate conversion of types on function call - - Optimization in calculation of gcb steps to make number of - chained blocks close to square root of lenght of the shape - - Fixed geo box support for large polygons - - Fixed mp_box_copy() of long shapes - - Fixed range checks for coordinates - - Fixed calculation of lat/long ratio for proximity checks - - Fixed bboxes in geo_deserialize - - Fixed check for NAN and INF in float valued geo inx - - Fixed check for NULL arguments - - Minor fixes to other geo BIFs - - * SPARQL - - Added initial support for list of quad maps in SPARQL BI - - Added initial support for vectored iri to id - - Added initial support for sparql valid() - - Added new codegen for initial fill of RDB2RDF - - Added new settings CreateGraphKeywords, QueryGraphKeywords - - Added new SPARQL triple/group/subqery options - - Added missing function rdf_vec_ins_triples - - Added support for application/x-nice-microdata SPARQL format - - Added support for buildin inverse functions - - Added support for geosparql wkt type literal as synonym - - Added support for the '-' operator for datetime data types - - Fixed issues in handling geo predicates in SPARQL - - Fixed RDF view to use multiple quad maps - - Fixed issues with UNION and BREAKUP - - Fixed dynamic local for vectored - - Fixed support for combination of T_DIRECTION 3 and T_STEP (var) - - Fixed handle 30x redirects when calling remote endpoint - - Fixed support for MALLOC_DEBUG inside SPARQL compiler - - Fixed TriG parser - - * Jena & Sesame - - Improved speed of batch delete - - Removed unnesessary check that graph exists after remove - - Removed unnesessary commits - - Replaced n.getLiteralValue().toString() with n.getLiteralLexicalForm() - - * JDBC Driver - - Added staticstics for Connection Pool - - Fixed speed of finalize - - * Conductor and DAV - - Added trigger for delete temporary graphs used for WebID verification - - Added new CONFIGURE methods to DETs to unify folder creation - - Added new page for managing CA root certificates - - Added new pages for graph level security - - Added verify for WebDAV DET folders - - Added creation of shared DET folders - - Fixed creation of ETAGs for DET resources - - Fixed DAV rewrite issue - - Fixed dav to use proper escape for graphs when uploading - - Fixed issue deleting graphs - - Fixed issue uploading bad .TTL files - - Fixed issue with DAV QoS re-write rule for text/html - - Fixed issue with user dba when creating DET folders - - Fixed normalize paths procedure in WebDAV - - Fixed reset connection variable before no file error - - * Faceted Browser - - Added missing grants - - Added graph param in FCT permalink - - Changed labels in LD views - - Changed default sort order to date (desc) - - Copied virt_rdf_label.sql locally - - Fixed escape double quote in literals - - Fixed FCT datatype links - - Fixed the curie may contain UTF-8, so mark string accordingly - - Changed describe mode for PivotViewer link - - -August 02, 2013, V7.0.0: - * First official release of Virtuoso Open Source Edition v7.0 - - NOTE: At this point in time the engine is only buildable in 64bit mode - - -July 12, 2011, V7.0.0-alpha1: - * First release of the experimental V7 branch. - - NOTE: This version is unstable and should not be used for any production - data. The database format may still change during the next couple - of cycles and we do not guarantee any upgrading at this point. diff --git a/Trinity.Tests/Net35/TinyVirtuoso/virtuoso/doc/README b/Trinity.Tests/Net35/TinyVirtuoso/virtuoso/doc/README deleted file mode 100644 index 4d7175a..0000000 --- a/Trinity.Tests/Net35/TinyVirtuoso/virtuoso/doc/README +++ /dev/null @@ -1,501 +0,0 @@ -Virtuoso Open-Source Edition: Building -====================================== - -Copyright (C) 1998-2015 OpenLink Software - - -Table of Contents ------------------ - -* Building Virtuoso Open-Source Edition - * .. Introduction - * .. Package Dependencies - * .. Diskspace Requirements - * .. Make FAQ - * .... Generic build environment - * .... AIX 4.x 32-bit - * .... AIX 4.x 64-bit - * .... AIX 5.x 32-bit - * .... AIX 5.x 32-bit - * .... Digital Unix/OSF1 V5.0 64-bit - * .... HP/UX 11.00 32-bit - * .... HP/UX 11.00 64-bit - * .... HP/UX 11.23 Itanium 32-bit - * .... HP/UX 11.23 Itanium 64-bit - * .... Linux 32-bit - * .... Linux 64-bit - * .... Mac OS X 10.2 and 10.3 PPC 32-bit - * .... Mac OS X 10.4 PPC 32-bit - * .... Mac OS X 10.4 PPC 64-bit - * .... Mac OS X 10.4 Universal 32-bit - * .... Mac OS X 10.5 32-bit - * .... Mac OS X 10.5 64-bit - * .... Mac OS X 10.5 Universal - * .... Mac OS X 10.6 32-bit - * .... Mac OS X 10.6 64-bit - * .... Mac OS X 10.6 Universal - * .... Mac OS X 10.7 32-bit - * .... Mac OS X 10.7 64-bit - * .... Mac OS X 10.7 Universal - * .... Solaris 2.x i386 32-bit - * .... Solaris 2.10 Opteron 32-bit - * .... Solaris 2.10 Opteron 64-bit - * .... Solaris 2.8 and above SPARC 32-bit - * .... Solaris 2.8 and above SPARC 32-bit - * .. Installation - * .... Test Suite - * .. Getting Started - * .... VAD Packages - - -Introduction -============ - -This document explains steps to take after obtaining a Virtuoso source -snapshot or git clone. - -These sections explain how to compile, test and install and what -components are produced by the make process and how one can interact -with them. - - -Package Dependencies -==================== - -To generate the configure script and all other build files necessary, -please make sure the following packages and recommended versions are -installed on your system. - - Package Version From - ------- ------- ---- - autoconf 2.57 http://www.gnu.org/software/autoconf/ - automake 1.9 http://www.gnu.org/software/automake/ - libtool 1.5.16 http://www.gnu.org/software/libtool/ - flex 2.5.33 (was 2.5.4) http://www.gnu.org/software/non-gnu/flex/ - bison 2.3 (was 1.35) http://www.gnu.org/software/bison/ - gperf 2.7.2 http://www.gnu.org/software/gperf/ - gawk 3.1.1 http://www.gnu.org/software/gawk/ - m4 1.4.1 http://www.gnu.org/software/m4/ - make 3.79.1 http://www.gnu.org/software/make/ - OpenSSL 0.9.7i http://www.openssl.org/ - -and any GNU packages required by these. The autogen.sh and configure -scripts check for the presence and right version of some of the required -components. - -The above version are the minimum recommended versions of these packages. -Older version of these packages can sometimes be used, but could cause -build problems. - -To check the version number of the tools installed on your system, -use one of the following commands: - - $ autoconf --version - $ automake --version - $ libtoolize --version - $ flex --version - $ bison --version - $ gperf --version - $ gawk --version - $ m4 --version - $ make --version - $ openssl version - -If you have an older version than automake version 1.9 you can edit -the configure.in script around line 47 using the examples provided for -each version. - -Note that uptodate operating systems (particularly all Linux distibutions) -split some of these packages into runtime and development -packages, so users of these platforms may need to run e.g.: - - apt-get install libssl-dev - -or - - yum install openssl-devel - -to get development headers & libraries for OpenSSL. - - -Diskspace Requirements -====================== - -The build produces a demo database and Virtuoso application packages -that are quite large. At least 800 MB of free space should be available -in the build file system. - -When running `make install', the target file system should have about 460 -MB free. By default, the install target directories are under /usr/local/, -but you can specify - - ./configure --prefix=/path/to/dir - -instead. - -The minimum working configuration consists of the server executable -and config files plus database, no more than a few MB for the server -executable, depending on platform and options. - - -Make FAQ -======== - -In the root directory of the checkout perform the following commands: - - ./autogen.sh # should only be needed in git clone - ./configure - make - -to produce the default binaries, VAD packages and demo database. This -takes some time, principally due to building and filling the demo -database, rendering the XML documentation into several target formats -and composing various Virtuoso application packages. It takes about 30 -minutes on a 2GHz machine. - -The default configure does not enable most of the runtime-hosting and -extension features. See the links on the building page for instructions -on how to enable these and what additional software is required. - -Some builds require additional C compiler and other environment flags to -be set before running the configure command, especially when building -64-bit versions of the server. If your system is not in this list, -please try to run the configure command without any environment settings. - -Warning: if VAD or other packages fail to be built, especially on -64-bit Linux platforms, ensure you're not using excessive optimization. -CFLAGS="-O2" is known to work but there are reports of -O3 failing. - -If your system requires additional flags not listed below, please contact -us at . - -Generic build environment -------------------------- - CC=cc - CFLAGS="-O" - export CFLAGS CC - ./configure - make - make install - -AIX 4.x 32-bit --------------- - CC=cc_r7 - CFLAGS="-O -q32" - LDFLAGS="-brtl" - OBJECT_MODE=32 - export CC CFLAGS LDFLAGS OBJECT_MODE - ./configure ... - -AIX 4.x 64-bit --------------- - CC=cc_r7 - CFLAGS="-O -q64" - LDFLAGS="-brtl" - OBJECT_MODE=64 - export CC CFLAGS LDFLAGS OBJECT_MODE - ./configure ... - -AIX 5.x 32-bit --------------- - CC=cc_r - CFLAGS="-O -q32" - LDFLAGS="-brtl" - OBJECT_MODE=32 - export CC CFLAGS LDFLAGS OBJECT_MODE - ./configure ... - -AIX 5.x 32-bit --------------- - CC=cc_r - CFLAGS="-O -q64" - LDFLAGS="-brtl" - OBJECT_MODE=64 - export CC CFLAGS LDFLAGS OBJECT_MODE - ./configure ... - -Digital Unix/OSF1 V5.0 64-bit ------------------------------ - CFLAGS="-O" - export CFLAGS - ./configure ... - -HP/UX 11.00 32-bit ------------------- - CFLAGS="-O -Ae +DA1.1" - export CFLAGS - ./configure ... - -HP/UX 11.00 64-bit ------------------- - CFLAGS="-O -Ae +DA2.0W" - export CFLAGS - ./configure ... - -HP/UX 11.23 Itanium 32-bit --------------------------- - CFLAGS="-O -Ae +DD32" - export CFLAGS - ./configure ... - -HP/UX 11.23 Itanium 64-bit --------------------------- - CFLAGS="-O -Ae +DD64" - export CFLAGS - ./configure ... - -Linux 32-bit ------------- - CFLAGS="-O2" - export CFLAGS - ./configure ... - -Linux 64-bit ------------- - CFLAGS="-O2 -m64" - export CFLAGS - ./configure ... - -Mac OS X 10.2 and 10.3 PPC 32-bit ---------------------------------- - CFLAGS="-O -m32 -mmacosx-version-min=10.4" - export CFLAGS - ./configure ... - -Mac OS X 10.4 PPC 32-bit ------------------------- - CFLAGS="-O -m32 -mmacosx-version-min=10.4" - export CFLAGS - ./configure ... - -Mac OS X 10.4 PPC 64-bit ------------------------- - CFLAGS="-O -m64 -mmacosx-version-min=10.4" - export CFLAGS - ./configure ... - -Mac OS X 10.4 Universal 32-bit ------------------------------- - CFLAGS="-O -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch ppc -arch i386 -mmacosx-version-min=10.4" - export CFLAGS - ./configure --disable-dependency-tracking ... - -Mac OS X 10.5 32-bit --------------------- - CFLAGS="-O -m32 -mmacosx-version-min=10.5" - export CFLAGS - ./configure ... - -Mac OS X 10.5 64-bit --------------------- - CFLAGS="-O -m64 -mmacosx-version-min=10.5" - export CFLAGS - ./configure ... - -Mac OS X 10.5 Universal ------------------------ - CFLAGS="-O -isysroot /Developer/SDKs/MacOSX10.5.sdk -arch ppc -arch i386 -arch ppc64 -arch x86_64 -mmacosx-version-min=10.5" - export CFLAGS - ./configure --disable-dependency-tracking ... - -Mac OS X 10.6 32-bit --------------------- - CFLAGS="-O -m32 -mmacosx-version-min=10.6" - export CFLAGS - ./configure ... - -Mac OS X 10.6 64-bit --------------------- - CFLAGS="-O -m64 -mmacosx-version-min=10.6" - export CFLAGS - ./configure ... - -Mac OS X 10.6 Universal ------------------------ - CFLAGS="-O -isysroot /Developer/SDKs/MacOSX10.6.sdk -arch i386 -arch x86_64 -mmacosx-version-min=10.6" - export CFLAGS - ./configure --disable-dependency-tracking ... - -Mac OS X 10.7 32-bit --------------------- - CFLAGS="-O -m32 -mmacosx-version-min=10.7" - export CFLAGS - ./configure ... - -Mac OS X 10.7 64-bit --------------------- - CFLAGS="-O -m64 -mmacosx-version-min=10.7" - export CFLAGS - ./configure ... - -Mac OS X 10.7 Universal ------------------------ - CFLAGS="-O -arch i386 -arch x86_64 -mmacosx-version-min=10.7" - export CFLAGS - ./configure --disable-dependency-tracking ... - -Solaris 2.x i386 32-bit ------------------------ -Note: on Solaris or Open Solaris we recommend you use gmake either from -/usr/ sfw/bin/ or install it from sunfreeware, as long as it's version -3.80 or better. - - CC=cc - CFLAGS="-O" - PATH=/opt/SUNWspro/bin:/usr/ccs/bin:$PATH - export CFLAGS CC PATH - ./configure ... - -Solaris 2.10 Opteron 32-bit ---------------------------- - CC=cc - CFLAGS="-O -xtarget=opteron" - PATH=/opt/SUNWspro/bin:/usr/ccs/bin:$PATH - export CFLAGS CC PATH - ./configure ... - -Solaris 2.10 Opteron 64-bit ---------------------------- - CC=cc - CFLAGS="-O -xtarget=opteron -xarch=amd64" - PATH=/opt/SUNWspro/bin:/usr/ccs/bin:$PATH - export CFLAGS CC PATH - ./configure ... - -Solaris 2.8 and above SPARC 32-bit ----------------------------------- - CC=cc - CFLAGS="-O" - PATH=/opt/SUNWspro/bin:/usr/ccs/bin:$PATH - export CFLAGS CC PATH - ./configure ... - -Solaris 2.8 and above SPARC 32-bit ----------------------------------- - CC=cc - CFLAGS="-O -xtarget=ultra -xarch=v9" - PATH=/opt/SUNWspro/bin:/usr/ccs/bin:$PATH - export CFLAGS CC PATH - ./configure ... - -Installation -============ - -After running configure && make, - - make install - -at the root of the build tree copies the files to the locations -specified by the --prefix option to configure. The default of --prefix -is /usr/local/. You can override this by specifying `make install -prefix=/home/virtuoso' instead, for example. - -These subdirectories are all appended to the specified prefix, -i.e. /usr/local/ by default: - - * share/virtuoso/doc/html - * share/virtuoso/doc/pdf - * share/virtuoso/vad - VAD packages BPEL, Conductor, tutorials, documentation - * var/lib/virtuoso/db - Empty database - * var/lib/virtuoso/demo - Demo database - obsolete as of version 5.0.3 - * bin/ - The virtuoso-t, isql, isqlw, virt_mail, virtuoso-sample-t, inifile - executables - * lib/ - libvirtuoso-t.a libvirtuoso-t.la virtodbc32.a virtodbc32.la - virtodbc32 r.a virtodbc32_r.la virtodbc_r.so wikiv.so, plus any plugins - that may be enabled. - * lib/virtuoso - hosting sample.a hosting_sample.la hosting_sample.so - plugin_sample.a plugin_sample.so - -Note: as of version 5.0.2, the ./configure script supports different -subdirectory structures with the --with-layout= parameter. If you've -specified something other than the default, the above may differ -accordingly. - -As of version 5.0.3, the demo is a VAD package, not a separate directory. - - -Test Suite -========== - -Optionally, you can run - - make check - -at the root of the build tree to start the automated test suite. This -takes about an hour on a 2GHz machine and requires approximately 1 GB -of free disk space. - - -Getting Started -=============== - -Run - - cd var/lib/virtuoso/db - virtuoso-t -f & - -to start the server in the background. It will not detach from the shell, -so you see the startup messages. - -By default, when no -c parameter is specified, virtuoso will use the -virtuoso.ini file in this directory, which is generated as part of -`make install'. - -The first time it's run, it will create the empty database (no special -commands required) and install the Conductor VAD package. From here, you -can access http://localhost:8890/ and http://localhost:8890/conductor/ and -use the System Administration / Packages page to install other packages -such as Demo and the ODS suite (addressbook, weblog, feeds manager and -other applications) etc. - -The default login is `dba' with a password of `dba' for the Conductor and -isql (for DAV functions, the default login is `dav' with a password of -`dav'). - -You will see a checkpoint in the terminal for each package selected: - - 15:33:54 INFO: Checkpoint made, log reused - -To connect with the command line SQL tool, - - isql 1112 dba dba - -gives a SQL> prompt. - -If you've installed the demo VAD above, type - SQL> use Demo; - -to switch to the demo database, containing the Microsoft Northwind sample -tables. The `help' command in isql gives further instructions. - - -To use the web admin interface, point the browser to: - - http://localhost:8890/conductor - -To read the documents online: - - http://localhost:8890/doc/html - -To experiment with online tutorials you can use the conductor to install -the Tutorial vad package into your database, then point the browser to: - - http://localhost:8890/tutorial - - -VAD Packages -============ - -The different VAD packages can be installed via ISQL using the following -command (if the installation packages reside in the filesystem): - - SQL> vad_install ('file/system/path/package-name.vad', 0); - -Alternatively, you can copy VAD packages to Virtuoso's DAV repository -and then execute the following command (also from ISQL): - - SQL> vad_install ('webdav/path>/package-name.vad', 1); - -at the isql command line. Note that the DirsAllowed parameter of the -Parameters section of the ini-file must allow access to the directory -where the package file is located. diff --git a/Trinity.Tests/Net35/Trinity.Tests.csproj b/Trinity.Tests/Net35/Trinity.Tests.csproj deleted file mode 100644 index b6e3abe..0000000 --- a/Trinity.Tests/Net35/Trinity.Tests.csproj +++ /dev/null @@ -1,226 +0,0 @@ - - - - Debug - x86 - 8.0.30703 - 2.0 - {5E1FCE3C-9436-44F8-8DB6-18F6282DE70C} - Library - Properties - Semiodesk.Trinity.Test - Trinity.Test - v3.5 - - - 512 - ..\ - true - - - true - full - false - ..\..\Build\Debug\ - TRACE;DEBUG;NET_3_5 - prompt - 4 - - - pdbonly - true - ..\Build\NET35\Release\ - TRACE;NET_3_5 - prompt - 4 - x86 - - - - - - - ..\..\Build\NET35\Debug\ - x86 - - - true - ..\..\Build\Net35\Debug\ - TRACE;DEBUG;NET_3_5 - full - x86 - prompt - MinimumRecommendedRules.ruleset - - - ..\..\Build\Net35\Release\ - TRACE;NET_3_5 - true - pdbonly - x86 - prompt - MinimumRecommendedRules.ruleset - - - - ..\..\Net35\packages\ini-parser.2.2.2\lib\net20\INIFileParser.dll - True - - - ..\..\Net35\packages\Newtonsoft.Json.9.0.1\lib\net35\Newtonsoft.Json.dll - - - ..\..\Net35\packages\NUnit.3.9.0\lib\net35\nunit.framework.dll - True - - - - - - - - - ..\..\Net35\packages\TinyVirtuoso.0.3.29\lib\Net35\TinyVirtuoso.dll - True - - - - - - - - - SetupClass.cs - - - - - - - - - - SparqlSerializerTest.cs - - - - - - - - - - - - - Ontologies\dces.ttl - PreserveNewest - - - Ontologies\fo af.rdf - PreserveNewest - - - Ontologies\foaf.rdf - PreserveNewest - - - Ontologies\nco.trig - PreserveNewest - - - Ontologies\owl.n3 - PreserveNewest - - - Ontologies\rdf.rdf - PreserveNewest - - - Ontologies\rdfs.n3 - PreserveNewest - - - PreserveNewest - - - - - - - - - - - - Models\rdf-schema.rdf - PreserveNewest - - - Models\rdf-syntax.rdf - PreserveNewest - - - Models\test-ntriples.nt - PreserveNewest - - - Models\test-ppo.rdf - PreserveNewest - - - Models\test-tmo.trig - PreserveNewest - - - Models\test-vocab.rdf - PreserveNewest - - - App.config - PreserveNewest - Designer - - - - - - {0d10d2ad-ca61-46e3-88c8-0ab8318647ba} - Trinity - - - - - - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - - - \ No newline at end of file diff --git a/Trinity.Tests/Net35/packages.config b/Trinity.Tests/Net35/packages.config deleted file mode 100644 index 705da24..0000000 --- a/Trinity.Tests/Net35/packages.config +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/Trinity.Tests/OntologyTest.cs b/Trinity.Tests/OntologyTest.cs index 643828b..3f1dbcd 100644 --- a/Trinity.Tests/OntologyTest.cs +++ b/Trinity.Tests/OntologyTest.cs @@ -30,6 +30,9 @@ namespace Semiodesk.Trinity.Test { + /// + /// This test needs A LOT work! + /// [TestFixture] public class OntologyTest { diff --git a/Trinity.Tests/SetupClass.cs b/Trinity.Tests/SetupClass.cs index 3a31f77..f436b3c 100644 --- a/Trinity.Tests/SetupClass.cs +++ b/Trinity.Tests/SetupClass.cs @@ -1,5 +1,5 @@ using Semiodesk.TinyVirtuoso; -using Semiodesk.Trinity.Store.Virtuoso; + using System.Reflection; using System.IO; using NUnit.Framework; @@ -11,12 +11,6 @@ public class SetupClass { #region Members - Virtuoso _instance; - - public static string ConnectionString; - - public static string HostAndPort; - #endregion #region Methods @@ -26,31 +20,15 @@ public void Setup() { Directory.SetCurrentDirectory(TestContext.CurrentContext.TestDirectory); - StoreFactory.LoadProvider(Assembly.GetAssembly(typeof(VirtuosoStoreProvider))); OntologyDiscovery.AddAssembly(Assembly.GetExecutingAssembly()); MappingDiscovery.RegisterAssembly(Assembly.GetExecutingAssembly()); - FileInfo location = new FileInfo(Assembly.GetExecutingAssembly().Location); - DirectoryInfo folder = new DirectoryInfo(Path.Combine(location.DirectoryName, "nunit")); - - if (folder.Exists) - { - folder.Delete(true); - } - - folder.Create(); - - _instance = new TinyVirtuoso.TinyVirtuoso(folder).GetOrCreateInstance("NUnit"); - _instance.Start(true); - - ConnectionString = _instance.GetTrinityConnectionString(); - HostAndPort = _instance.Configuration.Parameters.ServerPort; } [OneTimeTearDown] public void TearDown() { - _instance.Stop(); + } #endregion diff --git a/Trinity.Tests/StoreFactoryTest.cs b/Trinity.Tests/StoreFactoryTest.cs index 4232389..6fe8f19 100644 --- a/Trinity.Tests/StoreFactoryTest.cs +++ b/Trinity.Tests/StoreFactoryTest.cs @@ -30,7 +30,7 @@ namespace Semiodesk.Trinity.Test { [TestFixture] - class StoreFactoryTest + class StoreFactoryTest : SetupClass { [Test] public void TestConnectionStringTest() diff --git a/Trinity.Tests/StoreProviderTest.cs b/Trinity.Tests/StoreProviderTest.cs index 065062c..e5d81d3 100644 --- a/Trinity.Tests/StoreProviderTest.cs +++ b/Trinity.Tests/StoreProviderTest.cs @@ -60,16 +60,5 @@ public void DotNetRDFConfigTest() p.GetStore(StoreFactory.ParseConfiguration("provider=dotnetrdf;schema=Models/rdf-schema.rdf,Models/rdf-syntax.rdf")); } - [Test] - public void VirtuosoConfigurationStringTest() - { - string[] components = SetupClass.HostAndPort.Split(':'); - string host = components[0]; - string port = components[1]; - string connectionString = string.Format("provider=virtuoso;host={0};port={1};uid=dba;pw=dba;rule=urn:semiodesk/test/ruleset", host, port); - IStore anObject = StoreFactory.CreateStore(connectionString); - Assert.IsNotNull(anObject); - anObject.Dispose(); - } } } diff --git a/Trinity.Tests/TinyVirtuoso/virtuoso/doc/AUTHORS b/Trinity.Tests/TinyVirtuoso/virtuoso/doc/AUTHORS deleted file mode 100644 index a250a0f..0000000 --- a/Trinity.Tests/TinyVirtuoso/virtuoso/doc/AUTHORS +++ /dev/null @@ -1,14 +0,0 @@ -# -# $Id$ -# -# List of Authors/Contributors -# -# Virtuoso Open-Source (VOS) project - -Current Maintainer ------------------- -Virtuoso Maintainer - - -Contributors ------------- diff --git a/Trinity.Tests/TinyVirtuoso/virtuoso/doc/COPYING b/Trinity.Tests/TinyVirtuoso/virtuoso/doc/COPYING deleted file mode 100644 index d159169..0000000 --- a/Trinity.Tests/TinyVirtuoso/virtuoso/doc/COPYING +++ /dev/null @@ -1,339 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Lesser General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. diff --git a/Trinity.Tests/TinyVirtuoso/virtuoso/doc/CREDITS b/Trinity.Tests/TinyVirtuoso/virtuoso/doc/CREDITS deleted file mode 100644 index df48065..0000000 --- a/Trinity.Tests/TinyVirtuoso/virtuoso/doc/CREDITS +++ /dev/null @@ -1,249 +0,0 @@ -# -# $Id$ -# -# CREDITS -# -# This file is part of the OpenLink Software Virtuoso Open-Source (VOS) -# project. -# -# Copyright (C) 1998-2015 OpenLink Software -# - -Included Functionality -====================== - -The OpenLink Software Virtuoso Open-Source Edition (VOS) project wishes to -acknowledge incorporation of code from the following projects: - -OpenSSL - - - This product includes software developed by the OpenSSL Project for use - in the OpenSSL Toolkit. - - This product includes cryptographic software written by Eric Young - (eay@cryptsoft.com). - - This product includes software written by Tim Hudson - (tjh@cryptsoft.com) - - OpenSSL is distributed under the terms of the OpenSSL License: - - - As cryptographic software, OpenSSL may be subject to export - restrictions: - - -Tidy - HTML parser and pretty printer - - - This product includes Tidy developed by the World Wide Web Consortium. - - Tidy is distributed under the terms of the W3C License: - - - -Zlib - compression library - - - This product includes the Zlib library developed by Jean-loup Gailly - and Mark Adler. - - Zlib is distributed under the terms of the Zlib/PNG license: - - - -PCRE - - - This product includes the Perl-Compatible Regular-Expression Library - (PCRE) by Phillip Hazel. - - PCRE is distributed under the terms of the BSD license: - - - -OAT - - - Virtuoso uses the OpenLink AJAX Toolkit (OAT) in the Data Space - application suite. - - OAT is distributed under the terms of the GNU Public License v2: - - - -CKEditor - - - Virtuoso uses the CKEditor, a WYSIWYG editor in javascript in the - Data Space application suite. - - CKEditor is distributed under the terms of the GNU Public License, - the Lesser GNU Public License or the Mozilla Public License: - - - -SHA1 Javascript - - Virtuoso uses a Javsscript implementation of the Secure Hash Algoritm - (SHA1) as defined in FIPS PUB 180-1, written by Paul Johnston - - SHA1 is distributed under the terms of the BSD license - - - -MD5 Java - - Virtuoso uses a Java implementation of the MD5 hash algorithm - as defined in RFC1231, written Santeri Paavolainen - - MD5.java is distributed under the terms of the GNU Lesser General - Public License (LGPL): . - - -DocBook stylesheets - - - Virtuoso uses the DocBook stylesheets to generate HTML based documentation. - - DocBook is distributable under the terms of the MIT/X Consortium License. - - -Optional functionality -====================== - -OpenLink Software Virtuoso Open-Source Edition contains optional -functionality that may require libraries from some of the following -projects: - - -Perl - - - Virtuoso may be linked against libperl.so to provide a Perl hosting - environment. - - Perl is distributed under the terms of the Artistic License: - - - -Python - - - Virtuoso may be linked against libpython.so to provide a Python hosting - environment. - - Python is distributed under the terms of the Python License: - - - -Ruby - - - Virtuoso may be linked against libruby.so to provide a Ruby hosting - environment. - - Ruby is distributed under the terms of the Ruby License: - - - -PHP - - - Virtuoso may be linked against libphp5.so to provide a PHP hosting - environment. - - PHP is distributed under the terms of the PHP License: - - - -Java - - - Virtuoso may be linked against libjvm.so to provide a Java hosting - environment. - - Use of this module requires a JVM to be installed such as one from - - - -Readline - - - Virtuoso Open-Source Edition may be compiled against the readline - library. - - Readline is distributed under the terms of the GNU Public License - version 2 or later: - - - This library is not present in OpenLink Virtuoso (commercial edition). - - -OpenLDAP - - - Virtuoso may be linked against OpenLdap to provide dynamic - authentication lookups against existing LDAP servers. - - OpenLDAP is distributed under the terms of the OpenLDAP Public License: - - - -GTK+ - - - Parts of Virtuoso may be linked against the Gimp Toolkit graphical - library (GTK+). - - GTK+ is distributed under the terms of the GNU Lesser General Public - License (LGPL): . - - -iODBC - - - Virtuoso may be linked against the iODBC driver manager library. - - iODBC is distributed under the terms of either the LGPL or BSD license: - - - -WBXML2 - - - Parts of Virtuoso may be linked against the WBXML2 library. - - WBXML2 is distributed under the terms of the GNU Lesser General Public - License (LGPL): . - - -Handle System Client Library - - - Parts of Virtuoso may be linked against the Handle System Client library. - - The Handle System Client Library is distributed under the terms of - the Handle.NET Software Client Library (VER. 5) -- C Version License: - - - -Rendezvous - - - Virtuoso may be linked against the Rendezvous network-discovery - library by Apple Computer, Inc. - - Rendezvous is distributed under the terms of the Apple Public Source - License: - - -ImageMagick - - - Parts of Virtuoso may be linked against the ImageMagick graphics library. - - ImageMagick is distributed under the terms of the ImageMagick license: - which is compatible - with GPL. diff --git a/Trinity.Tests/TinyVirtuoso/virtuoso/doc/INSTALL b/Trinity.Tests/TinyVirtuoso/virtuoso/doc/INSTALL deleted file mode 100644 index 56b077d..0000000 --- a/Trinity.Tests/TinyVirtuoso/virtuoso/doc/INSTALL +++ /dev/null @@ -1,236 +0,0 @@ -Installation Instructions -************************* - -Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free -Software Foundation, Inc. - -This file is free documentation; the Free Software Foundation gives -unlimited permission to copy, distribute and modify it. - -Basic Installation -================== - -These are generic installation instructions. - - The `configure' shell script attempts to guess correct values for -various system-dependent variables used during compilation. It uses -those values to create a `Makefile' in each directory of the package. -It may also create one or more `.h' files containing system-dependent -definitions. Finally, it creates a shell script `config.status' that -you can run in the future to recreate the current configuration, and a -file `config.log' containing compiler output (useful mainly for -debugging `configure'). - - It can also use an optional file (typically called `config.cache' -and enabled with `--cache-file=config.cache' or simply `-C') that saves -the results of its tests to speed up reconfiguring. (Caching is -disabled by default to prevent problems with accidental use of stale -cache files.) - - If you need to do unusual things to compile the package, please try -to figure out how `configure' could check whether to do them, and mail -diffs or instructions to the address given in the `README' so they can -be considered for the next release. If you are using the cache, and at -some point `config.cache' contains results you don't want to keep, you -may remove or edit it. - - The file `configure.ac' (or `configure.in') is used to create -`configure' by a program called `autoconf'. You only need -`configure.ac' if you want to change it or regenerate `configure' using -a newer version of `autoconf'. - -The simplest way to compile this package is: - - 1. `cd' to the directory containing the package's source code and type - `./configure' to configure the package for your system. If you're - using `csh' on an old version of System V, you might need to type - `sh ./configure' instead to prevent `csh' from trying to execute - `configure' itself. - - Running `configure' takes awhile. While running, it prints some - messages telling which features it is checking for. - - 2. Type `make' to compile the package. - - 3. Optionally, type `make check' to run any self-tests that come with - the package. - - 4. Type `make install' to install the programs and any data files and - documentation. - - 5. You can remove the program binaries and object files from the - source code directory by typing `make clean'. To also remove the - files that `configure' created (so you can compile the package for - a different kind of computer), type `make distclean'. There is - also a `make maintainer-clean' target, but that is intended mainly - for the package's developers. If you use it, you may have to get - all sorts of other programs in order to regenerate files that came - with the distribution. - -Compilers and Options -===================== - -Some systems require unusual options for compilation or linking that the -`configure' script does not know about. Run `./configure --help' for -details on some of the pertinent environment variables. - - You can give `configure' initial values for configuration parameters -by setting variables in the command line or in the environment. Here -is an example: - - ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix - - *Note Defining Variables::, for more details. - -Compiling For Multiple Architectures -==================================== - -You can compile the package for more than one kind of computer at the -same time, by placing the object files for each architecture in their -own directory. To do this, you must use a version of `make' that -supports the `VPATH' variable, such as GNU `make'. `cd' to the -directory where you want the object files and executables to go and run -the `configure' script. `configure' automatically checks for the -source code in the directory that `configure' is in and in `..'. - - If you have to use a `make' that does not support the `VPATH' -variable, you have to compile the package for one architecture at a -time in the source code directory. After you have installed the -package for one architecture, use `make distclean' before reconfiguring -for another architecture. - -Installation Names -================== - -By default, `make install' will install the package's files in -`/usr/local/bin', `/usr/local/man', etc. You can specify an -installation prefix other than `/usr/local' by giving `configure' the -option `--prefix=PREFIX'. - - You can specify separate installation prefixes for -architecture-specific files and architecture-independent files. If you -give `configure' the option `--exec-prefix=PREFIX', the package will -use PREFIX as the prefix for installing programs and libraries. -Documentation and other data files will still use the regular prefix. - - In addition, if you use an unusual directory layout you can give -options like `--bindir=DIR' to specify different values for particular -kinds of files. Run `configure --help' for a list of the directories -you can set and what kinds of files go in them. - - If the package supports it, you can cause programs to be installed -with an extra prefix or suffix on their names by giving `configure' the -option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. - -Optional Features -================= - -Some packages pay attention to `--enable-FEATURE' options to -`configure', where FEATURE indicates an optional part of the package. -They may also pay attention to `--with-PACKAGE' options, where PACKAGE -is something like `gnu-as' or `x' (for the X Window System). The -`README' should mention any `--enable-' and `--with-' options that the -package recognizes. - - For packages that use the X Window System, `configure' can usually -find the X include and library files automatically, but if it doesn't, -you can use the `configure' options `--x-includes=DIR' and -`--x-libraries=DIR' to specify their locations. - -Specifying the System Type -========================== - -There may be some features `configure' cannot figure out automatically, -but needs to determine by the type of machine the package will run on. -Usually, assuming the package is built to be run on the _same_ -architectures, `configure' can figure that out, but if it prints a -message saying it cannot guess the machine type, give it the -`--build=TYPE' option. TYPE can either be a short name for the system -type, such as `sun4', or a canonical name which has the form: - - CPU-COMPANY-SYSTEM - -where SYSTEM can have one of these forms: - - OS KERNEL-OS - - See the file `config.sub' for the possible values of each field. If -`config.sub' isn't included in this package, then this package doesn't -need to know the machine type. - - If you are _building_ compiler tools for cross-compiling, you should -use the `--target=TYPE' option to select the type of system they will -produce code for. - - If you want to _use_ a cross compiler, that generates code for a -platform different from the build platform, you should specify the -"host" platform (i.e., that on which the generated programs will -eventually be run) with `--host=TYPE'. - -Sharing Defaults -================ - -If you want to set default values for `configure' scripts to share, you -can create a site shell script called `config.site' that gives default -values for variables like `CC', `cache_file', and `prefix'. -`configure' looks for `PREFIX/share/config.site' if it exists, then -`PREFIX/etc/config.site' if it exists. Or, you can set the -`CONFIG_SITE' environment variable to the location of the site script. -A warning: not all `configure' scripts look for a site script. - -Defining Variables -================== - -Variables not defined in a site shell script can be set in the -environment passed to `configure'. However, some packages may run -configure again during the build, and the customized values of these -variables may be lost. In order to avoid this problem, you should set -them in the `configure' command line, using `VAR=value'. For example: - - ./configure CC=/usr/local2/bin/gcc - -causes the specified `gcc' to be used as the C compiler (unless it is -overridden in the site shell script). Here is a another example: - - /bin/bash ./configure CONFIG_SHELL=/bin/bash - -Here the `CONFIG_SHELL=/bin/bash' operand causes subsequent -configuration-related scripts to be executed by `/bin/bash'. - -`configure' Invocation -====================== - -`configure' recognizes the following options to control how it operates. - -`--help' -`-h' - Print a summary of the options to `configure', and exit. - -`--version' -`-V' - Print the version of Autoconf used to generate the `configure' - script, and exit. - -`--cache-file=FILE' - Enable the cache: use and save the results of the tests in FILE, - traditionally `config.cache'. FILE defaults to `/dev/null' to - disable caching. - -`--config-cache' -`-C' - Alias for `--cache-file=config.cache'. - -`--quiet' -`--silent' -`-q' - Do not print messages saying which checks are being made. To - suppress all normal output, redirect it to `/dev/null' (any error - messages will still be shown). - -`--srcdir=DIR' - Look for the package's source code in directory DIR. Usually - `configure' can determine that directory automatically. - -`configure' also accepts some other, not widely useful, options. Run -`configure --help' for more details. - diff --git a/Trinity.Tests/TinyVirtuoso/virtuoso/doc/LICENSE b/Trinity.Tests/TinyVirtuoso/virtuoso/doc/LICENSE deleted file mode 100644 index 934e5d7..0000000 --- a/Trinity.Tests/TinyVirtuoso/virtuoso/doc/LICENSE +++ /dev/null @@ -1,34 +0,0 @@ -OpenLink Software's Virtuoso Open-Source (VOS) project -Copyright (C) 1998-2015 OpenLink Software - -This software is licensed under the GNU General Public License (see -COPYING). - -Note that the only valid version of the GPL license as far as this project -is concerned is the original GNU General Public License Version 2, dated -June 1991. - - -OpenSSL exemption ------------------ -This project may be compiled/linked with the OpenSSL library. If so, the -following exemption is added to the above license: - - In addition, as a special exemption, OpenLink Software gives - permission to link the code of its release of Virtuoso with the - OpenSSL project's "OpenSSL" library (or with modified versions - of it that use the same license as the "OpenSSL" library), and - distribute the linked executables. You must obey the GNU General - Public License in all respects for all of the code used other - than "OpenSSL". - - -Client Protocol Driver exemptions ---------------------------------- - - In addition, as a special exemption, OpenLink Software gives - permission to use the unmodified client libraries (ODBC, JDBC, - ADO.NET, OleDB, Jena, Sesame and Redland providers) in your own - application whether open-source or not, with no obligation to use - the GPL on the resulting application. In all other respects you - must abide by the terms of the GPL. diff --git a/Trinity.Tests/TinyVirtuoso/virtuoso/doc/NEWS b/Trinity.Tests/TinyVirtuoso/virtuoso/doc/NEWS deleted file mode 100644 index 68575cf..0000000 --- a/Trinity.Tests/TinyVirtuoso/virtuoso/doc/NEWS +++ /dev/null @@ -1,234 +0,0 @@ -February 17, 2015, V7.2.0: - * Virtuoso Engine - - Added new threadsafe / reentrant SQL parser - - Added support for using TLSF library for page-maps - - Added support for setting SSL Protocols and Ciphers - - Added support for new Unicode-3 based collations - - Added support for custom HTTPLogFormat - - Added support for quality factor in accept headers - - Added rate limiter for bad connections - - Added ODBC 3.x alias for current_date, current_time and current_timestamp - - Improved cost based optimizer - - Improved LDP support - - Improved XPER support - - Improved CSV support - - Fixed handling of regexp cache size and pcre_match depth limit - - Fixed handling of multibyte strings - - Fixed handling of nvarchar data with zeroes in the middle - - Fixed handling of values in 10 day gap between Julian and Gregorian dates - - Fixed if expr in rdf o range condition, set super so they get placed once - - Fixed issue possibly reading freed block - - Fixed issue with TZ field without separator - - Fixed issue with duplicate hashes - - Fixed issue with invariant preds - - Fixed issue with non chash distinct gby with nulls - - Fixed issue with user aggregates and chash flush - - Fixed issues with outer join, order by and group by - - Fixed sending IRI IDs to remotes when using 'where 0' - - Fixed use SHA256 as default for certificate signing - - Fixed memory leaks and memory fragmentation - - Fixed ssl read/write error condition - - Fixed windows build - - * GEO functions - - Added support for SPARQL INSERT with GEO literals - - Added support for upcoming proj4 plugin - - Fixed issue with rdf box with a geometry rdf type and a non geometry content - - Fixed calculation of serialization lengths for geo boxes - - Fixed compilation of a query with bif:st_intersects inside service {} - - Fixed serialization of geo boxes - - Fixed intersect to working with other geo shapes - - * SPARQL - - Added new SPARQL pragma: define sql:comment 0/1 - - Added indicator when max rows is returned on /sparql endpoint - - Added new role SPARQL_LOAD_SERVICE_DATA - - Added new client callable graph ins/del/replace functions - - Added support for __tag of UNAME - - Added support for multiple sparql update commands - - Added support for xsd:gYear and the like - - Added support for CASE x WHEN ... and CASE when in SPARQL - - Added support for 'HTML with nice turtle' output format - - Added TransStepMode option to virtuoso.ini - - Improved handling of floats and doubles in SPARQL compiler - - Improved Turtle parser - - Fixed SPARQL DELETE DATA when a complete RDF box w/o RO_ID is passed as obj - - Fixed URI() is synonym for IRI() - - Fixed equality of unames and strings, iri strings - - Fixed issue eliminating empty {} in VALUE join - - Fixed issue with R2RML - - Fixed issue with XMLA - - Fixed issue with base graph when using 'with_delete' in bulkloader - - Fixed issue with multiple OPTIONAL - - Fixed issue with sparql ... with delete on certain datatypes - - Fixed issue with varbinary in rdf views - - Fixed printing optimized-away data rows of VALUES in sparql_explain() dump - - Fixed propagation of limits if SPART_VARR_EXTARNAL/GLOBAL variables present - - Fixed regression for SPARQL 1.1 VALUES bindings - - Fixed sort accented letters from "ORDER BY" in alphabetical order - - Fixed startup speed with many graph group members - - * Jena & Sesame - - Upgraded to Jena 2.12.0 - - Added support for Bulk Loading - - Added support for Dataset method using defaultInsertGraph and defaultRemoveGraph - - Fixed handling of blank nodes - - Fixed transaction handling - - Fixed NullPointerException for sparql with OPTIONAL - - Fixed issue with statement leaks in older Virtuoso JDBC driver - - Fixed issue with class definitions and classcast exceptions - - Fixed issue with large datasets like Uniprot - - * JDBC Driver - - Enhanced Connection Pool implementation - - Added support for arrays for RDF Bulk loader - - Added JDBC4 compliant metadata required by JBOSS - - Fixed issue with statement leaks - - Fixed issue with RoundRobin if server out of license - - Fixed issue with stored procedures returning multiple resultsets - - Fixed issue with rewind on Virtuoso blob - - Fixed issue with batch procedure execution - - Fixed issue with dates - - Fixed issue with SQL_UTF8_EXECS=1 - - Fixed issue with JDBC testsuite - - * Faceted Browser - - Added support for graph selection and persist in fct state - - Added support for link out icons on certain doc and image links - - Added new description and sponger options as entity link types - - Added option for json output to fct service - - Added group by to speed up distinct - - Added precompiled queries to speed up usage.vsp - - Fixed base uri for crawlers - - Fixed color scheme - - Fixed graph perm check - - Fixed handling of foaf:depiction - - Fixed handling of iframe - - Fixed issue when lang is missing to fct service - - Fixed issue with dateTime - - Fixed issue with double quotes in literals - - Fixed issue with nodeID - - Fixed issue with null graphs - - Fixed labels - - Fixed links - -February 17, 2014, V7.1.0: - * Engine - - Enhancements to cost based optimizer - - Added optimization when splitting on scattered inserts - - Added optimization on fetching col seg - - Added support for multithreaded sync/flush - - Added support for ordered count distinct and exact p stat - - Added new settings EnableMonitor - - Added BIFs key_delete_replay(), set_by_graph_keywords(), - tweak_by_graph_keywords, vec_length(), vec_ref(), - x509_verify_array(), xenc_x509_cert_verify_array() - - Added new functions bif_list_names() and bif_metadata() - - Added new general-purpose HTTP auth procedure - - Added support for local dpipes - - Added support for session pool - - Added option to allow restricting number of id ranges for new IRIs - - Added support for execution profile in xml format - - Added support for PL-as-BIFs in SPARQL - - Improved I/O for geometries in SQL - - Fixed geo cost of non point geos where no explicit prec - - Fixed reentrant lexer - - Fixed rpc argument checks - - Fixed memory leaks - - Fixed compiler warnings - - Treat single db file as a single segment with one stripe - - Updated testsuite - - * GEO functions - - Added initial support for geoc_epsilon(), geometrytype(), - st_affine() (2D trans nly), st_geometryn(), st_get_bounding_box_n(), - st_intersects(), st_linestring(), st_numgeometries(), - st_transform_by_custom_projection(), st_translate() , - st_transscale(), st_contains() , st_may_contain(), - st_may_intersect() - - Added new BIFs for getting Z and M coords - - Added support for <(type,type,...)type::sql:function> trick - in order to eliminate conversion of types on function call - - Optimization in calculation of gcb steps to make number of - chained blocks close to square root of lenght of the shape - - Fixed geo box support for large polygons - - Fixed mp_box_copy() of long shapes - - Fixed range checks for coordinates - - Fixed calculation of lat/long ratio for proximity checks - - Fixed bboxes in geo_deserialize - - Fixed check for NAN and INF in float valued geo inx - - Fixed check for NULL arguments - - Minor fixes to other geo BIFs - - * SPARQL - - Added initial support for list of quad maps in SPARQL BI - - Added initial support for vectored iri to id - - Added initial support for sparql valid() - - Added new codegen for initial fill of RDB2RDF - - Added new settings CreateGraphKeywords, QueryGraphKeywords - - Added new SPARQL triple/group/subqery options - - Added missing function rdf_vec_ins_triples - - Added support for application/x-nice-microdata SPARQL format - - Added support for buildin inverse functions - - Added support for geosparql wkt type literal as synonym - - Added support for the '-' operator for datetime data types - - Fixed issues in handling geo predicates in SPARQL - - Fixed RDF view to use multiple quad maps - - Fixed issues with UNION and BREAKUP - - Fixed dynamic local for vectored - - Fixed support for combination of T_DIRECTION 3 and T_STEP (var) - - Fixed handle 30x redirects when calling remote endpoint - - Fixed support for MALLOC_DEBUG inside SPARQL compiler - - Fixed TriG parser - - * Jena & Sesame - - Improved speed of batch delete - - Removed unnesessary check that graph exists after remove - - Removed unnesessary commits - - Replaced n.getLiteralValue().toString() with n.getLiteralLexicalForm() - - * JDBC Driver - - Added staticstics for Connection Pool - - Fixed speed of finalize - - * Conductor and DAV - - Added trigger for delete temporary graphs used for WebID verification - - Added new CONFIGURE methods to DETs to unify folder creation - - Added new page for managing CA root certificates - - Added new pages for graph level security - - Added verify for WebDAV DET folders - - Added creation of shared DET folders - - Fixed creation of ETAGs for DET resources - - Fixed DAV rewrite issue - - Fixed dav to use proper escape for graphs when uploading - - Fixed issue deleting graphs - - Fixed issue uploading bad .TTL files - - Fixed issue with DAV QoS re-write rule for text/html - - Fixed issue with user dba when creating DET folders - - Fixed normalize paths procedure in WebDAV - - Fixed reset connection variable before no file error - - * Faceted Browser - - Added missing grants - - Added graph param in FCT permalink - - Changed labels in LD views - - Changed default sort order to date (desc) - - Copied virt_rdf_label.sql locally - - Fixed escape double quote in literals - - Fixed FCT datatype links - - Fixed the curie may contain UTF-8, so mark string accordingly - - Changed describe mode for PivotViewer link - - -August 02, 2013, V7.0.0: - * First official release of Virtuoso Open Source Edition v7.0 - - NOTE: At this point in time the engine is only buildable in 64bit mode - - -July 12, 2011, V7.0.0-alpha1: - * First release of the experimental V7 branch. - - NOTE: This version is unstable and should not be used for any production - data. The database format may still change during the next couple - of cycles and we do not guarantee any upgrading at this point. diff --git a/Trinity.Tests/TinyVirtuoso/virtuoso/doc/README b/Trinity.Tests/TinyVirtuoso/virtuoso/doc/README deleted file mode 100644 index 4d7175a..0000000 --- a/Trinity.Tests/TinyVirtuoso/virtuoso/doc/README +++ /dev/null @@ -1,501 +0,0 @@ -Virtuoso Open-Source Edition: Building -====================================== - -Copyright (C) 1998-2015 OpenLink Software - - -Table of Contents ------------------ - -* Building Virtuoso Open-Source Edition - * .. Introduction - * .. Package Dependencies - * .. Diskspace Requirements - * .. Make FAQ - * .... Generic build environment - * .... AIX 4.x 32-bit - * .... AIX 4.x 64-bit - * .... AIX 5.x 32-bit - * .... AIX 5.x 32-bit - * .... Digital Unix/OSF1 V5.0 64-bit - * .... HP/UX 11.00 32-bit - * .... HP/UX 11.00 64-bit - * .... HP/UX 11.23 Itanium 32-bit - * .... HP/UX 11.23 Itanium 64-bit - * .... Linux 32-bit - * .... Linux 64-bit - * .... Mac OS X 10.2 and 10.3 PPC 32-bit - * .... Mac OS X 10.4 PPC 32-bit - * .... Mac OS X 10.4 PPC 64-bit - * .... Mac OS X 10.4 Universal 32-bit - * .... Mac OS X 10.5 32-bit - * .... Mac OS X 10.5 64-bit - * .... Mac OS X 10.5 Universal - * .... Mac OS X 10.6 32-bit - * .... Mac OS X 10.6 64-bit - * .... Mac OS X 10.6 Universal - * .... Mac OS X 10.7 32-bit - * .... Mac OS X 10.7 64-bit - * .... Mac OS X 10.7 Universal - * .... Solaris 2.x i386 32-bit - * .... Solaris 2.10 Opteron 32-bit - * .... Solaris 2.10 Opteron 64-bit - * .... Solaris 2.8 and above SPARC 32-bit - * .... Solaris 2.8 and above SPARC 32-bit - * .. Installation - * .... Test Suite - * .. Getting Started - * .... VAD Packages - - -Introduction -============ - -This document explains steps to take after obtaining a Virtuoso source -snapshot or git clone. - -These sections explain how to compile, test and install and what -components are produced by the make process and how one can interact -with them. - - -Package Dependencies -==================== - -To generate the configure script and all other build files necessary, -please make sure the following packages and recommended versions are -installed on your system. - - Package Version From - ------- ------- ---- - autoconf 2.57 http://www.gnu.org/software/autoconf/ - automake 1.9 http://www.gnu.org/software/automake/ - libtool 1.5.16 http://www.gnu.org/software/libtool/ - flex 2.5.33 (was 2.5.4) http://www.gnu.org/software/non-gnu/flex/ - bison 2.3 (was 1.35) http://www.gnu.org/software/bison/ - gperf 2.7.2 http://www.gnu.org/software/gperf/ - gawk 3.1.1 http://www.gnu.org/software/gawk/ - m4 1.4.1 http://www.gnu.org/software/m4/ - make 3.79.1 http://www.gnu.org/software/make/ - OpenSSL 0.9.7i http://www.openssl.org/ - -and any GNU packages required by these. The autogen.sh and configure -scripts check for the presence and right version of some of the required -components. - -The above version are the minimum recommended versions of these packages. -Older version of these packages can sometimes be used, but could cause -build problems. - -To check the version number of the tools installed on your system, -use one of the following commands: - - $ autoconf --version - $ automake --version - $ libtoolize --version - $ flex --version - $ bison --version - $ gperf --version - $ gawk --version - $ m4 --version - $ make --version - $ openssl version - -If you have an older version than automake version 1.9 you can edit -the configure.in script around line 47 using the examples provided for -each version. - -Note that uptodate operating systems (particularly all Linux distibutions) -split some of these packages into runtime and development -packages, so users of these platforms may need to run e.g.: - - apt-get install libssl-dev - -or - - yum install openssl-devel - -to get development headers & libraries for OpenSSL. - - -Diskspace Requirements -====================== - -The build produces a demo database and Virtuoso application packages -that are quite large. At least 800 MB of free space should be available -in the build file system. - -When running `make install', the target file system should have about 460 -MB free. By default, the install target directories are under /usr/local/, -but you can specify - - ./configure --prefix=/path/to/dir - -instead. - -The minimum working configuration consists of the server executable -and config files plus database, no more than a few MB for the server -executable, depending on platform and options. - - -Make FAQ -======== - -In the root directory of the checkout perform the following commands: - - ./autogen.sh # should only be needed in git clone - ./configure - make - -to produce the default binaries, VAD packages and demo database. This -takes some time, principally due to building and filling the demo -database, rendering the XML documentation into several target formats -and composing various Virtuoso application packages. It takes about 30 -minutes on a 2GHz machine. - -The default configure does not enable most of the runtime-hosting and -extension features. See the links on the building page for instructions -on how to enable these and what additional software is required. - -Some builds require additional C compiler and other environment flags to -be set before running the configure command, especially when building -64-bit versions of the server. If your system is not in this list, -please try to run the configure command without any environment settings. - -Warning: if VAD or other packages fail to be built, especially on -64-bit Linux platforms, ensure you're not using excessive optimization. -CFLAGS="-O2" is known to work but there are reports of -O3 failing. - -If your system requires additional flags not listed below, please contact -us at . - -Generic build environment -------------------------- - CC=cc - CFLAGS="-O" - export CFLAGS CC - ./configure - make - make install - -AIX 4.x 32-bit --------------- - CC=cc_r7 - CFLAGS="-O -q32" - LDFLAGS="-brtl" - OBJECT_MODE=32 - export CC CFLAGS LDFLAGS OBJECT_MODE - ./configure ... - -AIX 4.x 64-bit --------------- - CC=cc_r7 - CFLAGS="-O -q64" - LDFLAGS="-brtl" - OBJECT_MODE=64 - export CC CFLAGS LDFLAGS OBJECT_MODE - ./configure ... - -AIX 5.x 32-bit --------------- - CC=cc_r - CFLAGS="-O -q32" - LDFLAGS="-brtl" - OBJECT_MODE=32 - export CC CFLAGS LDFLAGS OBJECT_MODE - ./configure ... - -AIX 5.x 32-bit --------------- - CC=cc_r - CFLAGS="-O -q64" - LDFLAGS="-brtl" - OBJECT_MODE=64 - export CC CFLAGS LDFLAGS OBJECT_MODE - ./configure ... - -Digital Unix/OSF1 V5.0 64-bit ------------------------------ - CFLAGS="-O" - export CFLAGS - ./configure ... - -HP/UX 11.00 32-bit ------------------- - CFLAGS="-O -Ae +DA1.1" - export CFLAGS - ./configure ... - -HP/UX 11.00 64-bit ------------------- - CFLAGS="-O -Ae +DA2.0W" - export CFLAGS - ./configure ... - -HP/UX 11.23 Itanium 32-bit --------------------------- - CFLAGS="-O -Ae +DD32" - export CFLAGS - ./configure ... - -HP/UX 11.23 Itanium 64-bit --------------------------- - CFLAGS="-O -Ae +DD64" - export CFLAGS - ./configure ... - -Linux 32-bit ------------- - CFLAGS="-O2" - export CFLAGS - ./configure ... - -Linux 64-bit ------------- - CFLAGS="-O2 -m64" - export CFLAGS - ./configure ... - -Mac OS X 10.2 and 10.3 PPC 32-bit ---------------------------------- - CFLAGS="-O -m32 -mmacosx-version-min=10.4" - export CFLAGS - ./configure ... - -Mac OS X 10.4 PPC 32-bit ------------------------- - CFLAGS="-O -m32 -mmacosx-version-min=10.4" - export CFLAGS - ./configure ... - -Mac OS X 10.4 PPC 64-bit ------------------------- - CFLAGS="-O -m64 -mmacosx-version-min=10.4" - export CFLAGS - ./configure ... - -Mac OS X 10.4 Universal 32-bit ------------------------------- - CFLAGS="-O -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch ppc -arch i386 -mmacosx-version-min=10.4" - export CFLAGS - ./configure --disable-dependency-tracking ... - -Mac OS X 10.5 32-bit --------------------- - CFLAGS="-O -m32 -mmacosx-version-min=10.5" - export CFLAGS - ./configure ... - -Mac OS X 10.5 64-bit --------------------- - CFLAGS="-O -m64 -mmacosx-version-min=10.5" - export CFLAGS - ./configure ... - -Mac OS X 10.5 Universal ------------------------ - CFLAGS="-O -isysroot /Developer/SDKs/MacOSX10.5.sdk -arch ppc -arch i386 -arch ppc64 -arch x86_64 -mmacosx-version-min=10.5" - export CFLAGS - ./configure --disable-dependency-tracking ... - -Mac OS X 10.6 32-bit --------------------- - CFLAGS="-O -m32 -mmacosx-version-min=10.6" - export CFLAGS - ./configure ... - -Mac OS X 10.6 64-bit --------------------- - CFLAGS="-O -m64 -mmacosx-version-min=10.6" - export CFLAGS - ./configure ... - -Mac OS X 10.6 Universal ------------------------ - CFLAGS="-O -isysroot /Developer/SDKs/MacOSX10.6.sdk -arch i386 -arch x86_64 -mmacosx-version-min=10.6" - export CFLAGS - ./configure --disable-dependency-tracking ... - -Mac OS X 10.7 32-bit --------------------- - CFLAGS="-O -m32 -mmacosx-version-min=10.7" - export CFLAGS - ./configure ... - -Mac OS X 10.7 64-bit --------------------- - CFLAGS="-O -m64 -mmacosx-version-min=10.7" - export CFLAGS - ./configure ... - -Mac OS X 10.7 Universal ------------------------ - CFLAGS="-O -arch i386 -arch x86_64 -mmacosx-version-min=10.7" - export CFLAGS - ./configure --disable-dependency-tracking ... - -Solaris 2.x i386 32-bit ------------------------ -Note: on Solaris or Open Solaris we recommend you use gmake either from -/usr/ sfw/bin/ or install it from sunfreeware, as long as it's version -3.80 or better. - - CC=cc - CFLAGS="-O" - PATH=/opt/SUNWspro/bin:/usr/ccs/bin:$PATH - export CFLAGS CC PATH - ./configure ... - -Solaris 2.10 Opteron 32-bit ---------------------------- - CC=cc - CFLAGS="-O -xtarget=opteron" - PATH=/opt/SUNWspro/bin:/usr/ccs/bin:$PATH - export CFLAGS CC PATH - ./configure ... - -Solaris 2.10 Opteron 64-bit ---------------------------- - CC=cc - CFLAGS="-O -xtarget=opteron -xarch=amd64" - PATH=/opt/SUNWspro/bin:/usr/ccs/bin:$PATH - export CFLAGS CC PATH - ./configure ... - -Solaris 2.8 and above SPARC 32-bit ----------------------------------- - CC=cc - CFLAGS="-O" - PATH=/opt/SUNWspro/bin:/usr/ccs/bin:$PATH - export CFLAGS CC PATH - ./configure ... - -Solaris 2.8 and above SPARC 32-bit ----------------------------------- - CC=cc - CFLAGS="-O -xtarget=ultra -xarch=v9" - PATH=/opt/SUNWspro/bin:/usr/ccs/bin:$PATH - export CFLAGS CC PATH - ./configure ... - -Installation -============ - -After running configure && make, - - make install - -at the root of the build tree copies the files to the locations -specified by the --prefix option to configure. The default of --prefix -is /usr/local/. You can override this by specifying `make install -prefix=/home/virtuoso' instead, for example. - -These subdirectories are all appended to the specified prefix, -i.e. /usr/local/ by default: - - * share/virtuoso/doc/html - * share/virtuoso/doc/pdf - * share/virtuoso/vad - VAD packages BPEL, Conductor, tutorials, documentation - * var/lib/virtuoso/db - Empty database - * var/lib/virtuoso/demo - Demo database - obsolete as of version 5.0.3 - * bin/ - The virtuoso-t, isql, isqlw, virt_mail, virtuoso-sample-t, inifile - executables - * lib/ - libvirtuoso-t.a libvirtuoso-t.la virtodbc32.a virtodbc32.la - virtodbc32 r.a virtodbc32_r.la virtodbc_r.so wikiv.so, plus any plugins - that may be enabled. - * lib/virtuoso - hosting sample.a hosting_sample.la hosting_sample.so - plugin_sample.a plugin_sample.so - -Note: as of version 5.0.2, the ./configure script supports different -subdirectory structures with the --with-layout= parameter. If you've -specified something other than the default, the above may differ -accordingly. - -As of version 5.0.3, the demo is a VAD package, not a separate directory. - - -Test Suite -========== - -Optionally, you can run - - make check - -at the root of the build tree to start the automated test suite. This -takes about an hour on a 2GHz machine and requires approximately 1 GB -of free disk space. - - -Getting Started -=============== - -Run - - cd var/lib/virtuoso/db - virtuoso-t -f & - -to start the server in the background. It will not detach from the shell, -so you see the startup messages. - -By default, when no -c parameter is specified, virtuoso will use the -virtuoso.ini file in this directory, which is generated as part of -`make install'. - -The first time it's run, it will create the empty database (no special -commands required) and install the Conductor VAD package. From here, you -can access http://localhost:8890/ and http://localhost:8890/conductor/ and -use the System Administration / Packages page to install other packages -such as Demo and the ODS suite (addressbook, weblog, feeds manager and -other applications) etc. - -The default login is `dba' with a password of `dba' for the Conductor and -isql (for DAV functions, the default login is `dav' with a password of -`dav'). - -You will see a checkpoint in the terminal for each package selected: - - 15:33:54 INFO: Checkpoint made, log reused - -To connect with the command line SQL tool, - - isql 1112 dba dba - -gives a SQL> prompt. - -If you've installed the demo VAD above, type - SQL> use Demo; - -to switch to the demo database, containing the Microsoft Northwind sample -tables. The `help' command in isql gives further instructions. - - -To use the web admin interface, point the browser to: - - http://localhost:8890/conductor - -To read the documents online: - - http://localhost:8890/doc/html - -To experiment with online tutorials you can use the conductor to install -the Tutorial vad package into your database, then point the browser to: - - http://localhost:8890/tutorial - - -VAD Packages -============ - -The different VAD packages can be installed via ISQL using the following -command (if the installation packages reside in the filesystem): - - SQL> vad_install ('file/system/path/package-name.vad', 0); - -Alternatively, you can copy VAD packages to Virtuoso's DAV repository -and then execute the following command (also from ISQL): - - SQL> vad_install ('webdav/path>/package-name.vad', 1); - -at the isql command line. Note that the DirsAllowed parameter of the -Parameters section of the ini-file must allow access to the directory -where the package file is located. diff --git a/Trinity.Tests/Trinity.Tests.csproj b/Trinity.Tests/Trinity.Tests.csproj index 425b083..a3f4fa6 100644 --- a/Trinity.Tests/Trinity.Tests.csproj +++ b/Trinity.Tests/Trinity.Tests.csproj @@ -1,7 +1,7 @@  - net40 + net472 Trinity.Test Copyright © Semiodesk GmbH 2018 @@ -11,12 +11,14 @@ 1.0.0.0 Semiodesk.Trinity.Tests Semiodesk.Trinity.Tests - Library + Exe ..\Build\$(Configuration)\test false + + @@ -29,7 +31,6 @@ - @@ -62,6 +63,9 @@ PreserveNewest + + PreserveNewest + PreserveNewest @@ -86,30 +90,6 @@ PreserveNewest - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - PreserveNewest diff --git a/Trinity.Tests/dotnetrdf/StoreTest.cs b/Trinity.Tests/dotnetrdf/StoreTest.cs index c970d8a..82022b6 100644 --- a/Trinity.Tests/dotnetrdf/StoreTest.cs +++ b/Trinity.Tests/dotnetrdf/StoreTest.cs @@ -35,7 +35,7 @@ namespace dotNetRDFStore.Test { [TestFixture] - class StoreTest + class StoreTest : SetupClass { IStore Store; diff --git a/Trinity.Virtuoso/Dependencies/Net40/dotNetRDF.Data.Virtuoso.dll b/Trinity.Virtuoso/Dependencies/Net40/dotNetRDF.Data.Virtuoso.dll deleted file mode 100644 index 04bd85d..0000000 Binary files a/Trinity.Virtuoso/Dependencies/Net40/dotNetRDF.Data.Virtuoso.dll and /dev/null differ diff --git a/Trinity.Virtuoso/Dependencies/OpenLink.Data.Virtuoso.dll b/Trinity.Virtuoso/Dependencies/OpenLink.Data.Virtuoso.dll index 553e830..d2853f7 100644 Binary files a/Trinity.Virtuoso/Dependencies/OpenLink.Data.Virtuoso.dll and b/Trinity.Virtuoso/Dependencies/OpenLink.Data.Virtuoso.dll differ diff --git a/Trinity.Virtuoso/Trinity.Virtuoso.csproj b/Trinity.Virtuoso/Trinity.Virtuoso.csproj index 5c7e01a..88efe87 100644 --- a/Trinity.Virtuoso/Trinity.Virtuoso.csproj +++ b/Trinity.Virtuoso/Trinity.Virtuoso.csproj @@ -1,62 +1,71 @@ - - - - net40 - Semiodesk.Trinity.Virtuoso - Copyright © Semiodesk GmbH 2018 - This library allows Semiodesk.Trinity to use the OpenLink Virtuoso store directly through the ODBC interface. It is also necessary if you want to use Semiodesk.Trinity with TinyVirtuoso. - Semiodesk GmbH - 1.0.0.0-rc001 - 1.0.0.0 - 1.0.0.0 - Semiodesk.Trinity.Virtuoso - Semiodesk.Trinity.Store.Virtuoso - - - - - ..\Build\$(Configuration)\stores\virtuoso - true - https://bitbucket.org/semiodesk/trinity/wiki/License - https://bitbucket.org/semiodesk/trinity - http://static.semiodesk.com/images/trinity_logo.png - https://bitbucket.org/semiodesk/trinity - RDF SPARQL Database Semantic Object Mapping Linked Data Virtuoso - true - - - - - - Dependencies\Net40\dotNetRDF.Data.Virtuoso.dll - false - - - - + + + + netstandard2.0 + Semiodesk.Trinity.Virtuoso + Copyright © Semiodesk GmbH 2015-2019 + This library allows Semiodesk.Trinity to use the OpenLink Virtuoso store directly through the ODBC interface. + Semiodesk GmbH + 1.0.0-rc008 + 1.0.0.8 + 1.0.0.8 + Semiodesk.Trinity.Virtuoso + Semiodesk.Trinity.Store.Virtuoso + + + + + ..\Build\$(Configuration)\stores\virtuoso + true + + https://trinity-rdf.net + trinity-logo.png + https://github.com/semiodesk/trinity-rdf + RDF SPARQL Database Semantic Object Mapping Linked Data Virtuoso + true + + + - - - + + + + + + + + + + + + + + + + + + Dependencies\OpenLink.Data.Virtuoso.dll - false + true - - - - - $(TargetsForTfmSpecificContentInPackage);CustomContentTarget - - - - - - lib/net40 - - - - - + + + + + $(TargetsForTfmSpecificContentInPackage);CustomContentTarget + MIT + git + + + + + + lib/netstandard2.0 + + + + + \ No newline at end of file diff --git a/Trinity.Virtuoso/VirtuosoManager.cs b/Trinity.Virtuoso/VirtuosoManager.cs new file mode 100644 index 0000000..7769413 --- /dev/null +++ b/Trinity.Virtuoso/VirtuosoManager.cs @@ -0,0 +1,1553 @@ +/* +// +// dotNetRDF is free and open source software licensed under the MIT License +// ------------------------------------------------------------------------- +// +// Copyright (c) 2009-2017 dotNetRDF Project (http://dotnetrdf.org/) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is furnished +// to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +*/ + +using System; +using System.Collections.Generic; +using System.Data; +using System.IO; +using System.Linq; +using System.Text; +using System.Text.RegularExpressions; +using OpenLink.Data.Virtuoso; +using VDS.RDF; +using VDS.RDF.Parsing; +using VDS.RDF.Parsing.Handlers; +using VDS.RDF.Query; +using VDS.RDF.Query.Algebra; +using VDS.RDF.Storage; +using VDS.RDF.Update; +using VDS.RDF.Writing; +using VDS.RDF.Writing.Formatting; + +namespace Semiodesk.Trinity.Store.Virtuoso +{ + + + /// + /// Formatter for use in writing data to Virtuoso + /// + /// + /// Uses Virtuoso function calls for communicating BNodes back to Virtuoso + /// + class VirtuosoFormatter + : SparqlFormatter + { + /// + /// Formats a Blank Node by using the sql:rdf_make_iid_of_qname() function + /// + /// Blank Node + /// Triple Segment + /// + protected override string FormatBlankNode(IBlankNode b, TripleSegment? segment) + { + //Use the sql:rdf_make_iid_of_qname('nodeID://bnode') function + // VIRT-399 - Previously we used the bif: prefix but more recent Virtuoso releases don't support that + // According to Virtuoso support using the sql: prefix is both forwards and backwards compatible + return "`sql:rdf_make_iid_of_qname('nodeID://" + b.InternalID + "')`"; + } + } + + /// + /// A Manager for accessing the Native Virtuoso Quad Store + /// + /// + /// + /// This class implements IStorageProvider allowing it to be used with any of the general classes that support this interface as well as the Virtuoso specific classes. + /// + /// + /// Although this class takes a Database Name to ensure compatability with any Virtuoso installation (i.e. this allows for the Native Quad Store to be in a non-standard database) generally you should always specify DB as the Database Name parameter + /// + /// + /// Virtuoso automatically assigns IDs to Blank Nodes input into it, these IDs are not based on the actual Blank Node ID so inputting a Blank Node with the same ID multiple times will result in multiple Nodes being created in Virtuoso. This means that data containing Blank Nodes which is stored to Virtuoso and then retrieved will have different Blank Node IDs to those input. In addition there is no guarentee that when you save a Graph containing Blank Nodes into Virtuoso that retrieving it will give the same Blank Node IDs even if the Graph being saved was originally retrieved from Virtuoso. Finally please see the remarks on the UpdateGraph() method which deal with how insertion and deletion of triples containing blank nodes into existing graphs operates. + /// + /// + /// You can use a null Uri or an empty String as a Uri to indicate that operations should affect the Default Graph. Where the argument is only a Graph a null BaseUri property indicates that the Graph affects the Default Graph + /// + /// + public class VirtuosoManager + : BaseAsyncSafeConnector, IUpdateableStorage + { + /// + /// Default Port for Virtuoso Servers + /// + public const int DefaultPort = 1111; + + /// + /// Default Database for Virtuoso Server Quad Store + /// + public const String DefaultDB = "DB"; + + private const String SubjectColumn = "S", PredicateColumn = "P", ObjectColumn = "O"; + private const String VirtuosoRelativeBaseString = "virtuoso-relative:"; + private readonly Uri VirtuosoRelativeBase = new Uri(VirtuosoRelativeBaseString); + + #region Variables & Constructors + + private readonly VirtuosoConnection _db; + private OpenLink.Data.Virtuoso.VirtuosoTransaction _dbtrans; + private readonly ITripleFormatter _formatter = new VirtuosoFormatter(); + + private readonly String _dbserver, _dbname, _dbuser, _dbpwd; + private readonly int _dbport, _timeout = 0; + + /// + /// Indicates whether the Database Connection is currently being kept open + /// + private bool _keepOpen = false; + + private readonly bool _customConnString = false; + + /// + /// Creates a Manager for a Virtuoso Native Quad Store + /// + /// Server + /// Port + /// Database Name + /// Username + /// Password + /// Connection Timeout in Seconds + /// + /// Timeouts less than equal to zero are ignored and treated as using the default timeout which is dictated by the underlying Virtuoso ADO.Net provider + /// + public VirtuosoManager(String server, int port, String db, String user, String password, int timeout) + { + //Set the Connection Properties + this._dbserver = server; + this._dbname = db; + this._dbuser = user; + this._dbpwd = password; + this._dbport = port; + this._timeout = timeout; + + StringBuilder connString = new StringBuilder(); + connString.Append("Server="); + connString.Append(this._dbserver); + connString.Append(":"); + connString.Append(this._dbport); + connString.Append(";Database="); + connString.Append(this._dbname); + connString.Append(";uid="); + connString.Append(this._dbuser); + connString.Append(";pwd="); + connString.Append(this._dbpwd); + connString.Append(";Charset=utf-8"); + if (this._timeout > 0) + { + connString.Append(";Connection Timeout=" + this._timeout); + } + + //Create the Connection Object + this._db = new VirtuosoConnection(connString.ToString()); + } + + /// + /// Creates a Manager for a Virtuoso Native Quad Store + /// + /// Server + /// Port + /// Database Name + /// Username + /// Password + public VirtuosoManager(String server, int port, String db, String user, String password) + : this(server, port, db, user, password, 0) + { + } + + /// + /// Creates a Manager for a Virtuoso Native Quad Store + /// + /// Database Name + /// Username + /// Password + /// Connection Timeout in Seconds + /// + /// Assumes the Server is on the localhost and the port is the default installation port of 1111 + /// + public VirtuosoManager(String db, String user, String password, int timeout) + : this("localhost", VirtuosoManager.DefaultPort, db, user, password, timeout) + { + } + + /// + /// Creates a Manager for a Virtuoso Native Quad Store + /// + /// Database Name + /// Username + /// Password + /// + /// Assumes the Server is on the localhost and the port is the default installation port of 1111 + /// + public VirtuosoManager(String db, String user, String password) + : this("localhost", VirtuosoManager.DefaultPort, db, user, password, 0) + { + } + + /// + /// Creates a Manager for a Virtuoso Native Quad Store + /// + /// Connection String + /// + /// Allows the end user to specify a customised connection string + /// + public VirtuosoManager(String connectionString) + { + this._db = new VirtuosoConnection(connectionString); + this._customConnString = true; + } + + #endregion + + #region Triple Loading & Saving + + /// + /// Loads a Graph from the Quad Store + /// + /// Graph to load into + /// URI of the Graph to Load + public override void LoadGraph(IGraph g, Uri graphUri) + { + if (g.IsEmpty && graphUri != null) + { + g.BaseUri = graphUri; + } + this.LoadGraph(new GraphHandler(g), graphUri); + } + + /// + /// Loads a Graph from the Quad Store + /// + /// RDF Handler + /// URI of the Graph to Load + public override void LoadGraph(IRdfHandler handler, Uri graphUri) + { + if (graphUri == null) throw new RdfStorageException("Cannot load an unnamed Graph from Virtuoso as this would require loading the entirety of the Virtuoso Quad Store into memory!"); + + try + { + handler.StartRdf(); + + //Need to keep Database Open as Literals require extra trips to the Database to get additional + //information about Language and Type + this.Open(false); + + DataTable data = this.LoadTriples(graphUri); + + foreach (DataRow row in data.Rows) + { + Object s, p, o; + INode subj, pred, obj; + + //Get Data + s = row["S"]; + p = row["P"]; + o = row["O"]; + + //Create Nodes + subj = this.LoadNode(handler, s); + pred = this.LoadNode(handler, p); + obj = this.LoadNode(handler, o); + + //Assert Triple + if (!handler.HandleTriple(new Triple(subj, pred, obj))) ParserHelper.Stop(); + } + handler.EndRdf(true); + this.Close(false); + } + catch (RdfParsingTerminatedException) + { + handler.EndRdf(true); + this.Close(false); + } + catch + { + handler.EndRdf(false); + this.Close(true); + throw; + } + } + + /// + /// Loads a Graph from the Quad Store + /// + /// Graph to load into + /// URI of the Graph to Load + public override void LoadGraph(IGraph g, String graphUri) + { + if (graphUri == null || graphUri.Equals(String.Empty)) + { + this.LoadGraph(g, (Uri)null); + } + else + { + this.LoadGraph(g, UriFactory.Create(graphUri)); + } + } + + /// + /// Loads a Graph from the Quad Store + /// + /// RDF Handler + /// URI of the Graph to Load + public override void LoadGraph(IRdfHandler handler, String graphUri) + { + if (graphUri == null || graphUri.Equals(String.Empty)) + { + this.LoadGraph(handler, (Uri)null); + } + else + { + this.LoadGraph(handler, UriFactory.Create(graphUri)); + } + } + + /// + /// Gets a Table of Triples that are in the given Graph + /// + /// Graph Uri + /// + /// + /// Assumes that the caller has opened the Database connection + /// + private DataTable LoadTriples(Uri graphUri) + { + DataTable dt = new DataTable(); + String getTriples; + if (graphUri != null) + { + getTriples = "SPARQL define output:format '_JAVA_' SELECT * FROM <" + this.UnmarshalUri(graphUri) + "> WHERE {?s ?p ?o}"; + } + else + { + getTriples = "SPARQL define output:format '_JAVA_' SELECT * WHERE {?s ?p ?o}"; + } + + VirtuosoCommand cmd = this._db.CreateCommand(); + cmd.CommandTimeout = (this._timeout > 0 ? this._timeout : cmd.CommandTimeout); + cmd.CommandText = getTriples; + + VirtuosoDataAdapter adapter = new VirtuosoDataAdapter(cmd); + + dt.Columns.Add("S", typeof(System.Object)); + dt.Columns.Add("P", typeof(System.Object)); + dt.Columns.Add("O", typeof(System.Object)); + adapter.Fill(dt); + + return dt; + } + + /// + /// Decodes an Object into an appropriate Node + /// + /// Node Factory to use to create Node + /// Object to convert + /// + private INode LoadNode(INodeFactory factory, Object n) + { + INode temp; + if (n is SqlExtendedString) + { + SqlExtendedString iri = (SqlExtendedString)n; + if (iri.IriType == SqlExtendedStringType.BNODE) + { + //Blank Node + temp = factory.CreateBlankNode(n.ToString().Substring(9)); + } + else if (iri.IriType != iri.StrType) + { + //Literal + temp = factory.CreateLiteralNode(n.ToString()); + } + else if (iri.IriType == SqlExtendedStringType.IRI) + { + //Uri + Uri u = this.MarshalUri(n.ToString()); + temp = factory.CreateUriNode(u); + } + else + { + //Assume a Literal + temp = factory.CreateLiteralNode(n.ToString()); + } + } + else if (n is SqlRdfBox) + { + SqlRdfBox lit = (SqlRdfBox)n; + if (lit.StrLang != null) + { + //Language Specified Literal + temp = factory.CreateLiteralNode(n.ToString(), lit.StrLang); + } + else if (lit.StrType != null) + { + //Data Typed Literal + temp = factory.CreateLiteralNode(n.ToString(), this.MarshalUri(lit.StrType)); + } + else + { + //Literal + temp = factory.CreateLiteralNode(n.ToString()); + } + } + else if (n is String) + { + String s = n.ToString(); + if (s.StartsWith("nodeID://")) + { + //Blank Node + temp = factory.CreateBlankNode(s.Substring(9)); + } + else + { + //Literal + temp = factory.CreateLiteralNode(s); + } + } + else if (n is Int32) + { + temp = ((Int32)n).ToLiteral(factory); + } + else if (n is Int16) + { + temp = ((Int16)n).ToLiteral(factory); + } + else if (n is Single) + { + temp = ((Single)n).ToLiteral(factory); + } + else if (n is Double) + { + temp = ((Double)n).ToLiteral(factory); + } + else if (n is Decimal) + { + temp = ((Decimal)n).ToLiteral(factory); + } + else if (n is DateTime) + { + temp = ((DateTime)n).ToLiteral(factory); + } + else if (n is TimeSpan) + { + temp = ((TimeSpan)n).ToLiteral(factory); + } + else if (n is Boolean) + { + temp = ((Boolean)n).ToLiteral(factory); + } + else if (n is DBNull) + { + //Fix by Alexander Sidarov for Virtuoso's results for unbound variables in OPTIONALs + temp = null; + } + else if (n is VirtuosoDateTime) + { + //New type in Virtuoso 7 + VirtuosoDateTime vDateTime = (VirtuosoDateTime)n; + DateTime dateTime = new DateTime(vDateTime.Year, vDateTime.Month, vDateTime.Day, vDateTime.Hour, vDateTime.Minute, vDateTime.Second, vDateTime.Millisecond, vDateTime.Kind); + return dateTime.ToLiteral(factory); + } + else if (n is VirtuosoDateTimeOffset) + { + //New type in Virtuoso 7 + VirtuosoDateTimeOffset vDateTimeOffset = (VirtuosoDateTimeOffset)n; + DateTimeOffset dateTimeOffset = new DateTimeOffset(vDateTimeOffset.Year, vDateTimeOffset.Month, vDateTimeOffset.Day, vDateTimeOffset.Hour, vDateTimeOffset.Minute, vDateTimeOffset.Second, vDateTimeOffset.Millisecond, vDateTimeOffset.Offset); + return dateTimeOffset.ToLiteral(factory); + } + else + { + throw new RdfStorageException("Unexpected Object Type '" + n.GetType().ToString() + "' returned from SPASQL SELECT query to the Virtuoso Quad Store"); + } + return temp; + } + + private Uri MarshalUri(String uriData) + { + Uri u = new Uri(uriData, UriKind.RelativeOrAbsolute); + if (!u.IsAbsoluteUri) + { + // As of VIRT-375 we marshal this to a form we can round trip later rather than erroring as we did previously + u = new Uri(VirtuosoRelativeBase, u); + } + return u; + } + + private String UnmarshalUri(Uri u) + { + if (u.IsAbsoluteUri) + { + if (u.AbsoluteUri.StartsWith(VirtuosoRelativeBaseString)) + { + u = new Uri(u.AbsoluteUri.Substring(VirtuosoRelativeBase.AbsoluteUri.Length), UriKind.Relative); + return u.OriginalString; + } + else + { + return u.AbsoluteUri; + } + } + else + { + return u.OriginalString; + } + } + + /// + /// Saves a Graph into the Quad Store (Warning: Completely replaces any existing Graph with the same URI) + /// + /// Graph to save + /// + /// Completely replaces any previously saved Graph with the same Graph URI + /// + public override void SaveGraph(IGraph g) + { + if (g.BaseUri == null) throw new RdfStorageException("Cannot save a Graph without a Base URI to Virtuoso"); + + try + { + this.Open(false); + + //Delete the existing Graph (if it exists) + this.ExecuteNonQuery("DELETE FROM DB.DBA.RDF_QUAD WHERE G = DB.DBA.RDF_MAKE_IID_OF_QNAME('" + this.UnmarshalUri(g.BaseUri) + "')"); + + //Make a call to the TTLP() Virtuoso function + VirtuosoCommand cmd = new VirtuosoCommand(); + cmd.CommandTimeout = (this._timeout > 0 ? this._timeout : cmd.CommandTimeout); + cmd.CommandText = "DB.DBA.TTLP(@data, @base, @graph, 1)"; + cmd.Parameters.Add("data", VirtDbType.VarChar); + cmd.Parameters["data"].Value = VDS.RDF.Writing.StringWriter.Write(g, new NTriplesWriter()); + String baseUri = this.UnmarshalUri(g.BaseUri); + cmd.Parameters.Add("base", VirtDbType.VarChar); + cmd.Parameters.Add("graph", VirtDbType.VarChar); + cmd.Parameters["base"].Value = baseUri; + cmd.Parameters["graph"].Value = baseUri; + cmd.Connection = this._db; + int result = cmd.ExecuteNonQuery(); + + this.Close(false); + } + catch + { + this.Close(true); + throw; + } + } + + /// + /// Gets the IO Behaviour of the store + /// + public override IOBehaviour IOBehaviour + { + get { return IOBehaviour.IsQuadStore | IOBehaviour.HasNamedGraphs | IOBehaviour.OverwriteNamed | IOBehaviour.CanUpdateTriples; } + } + + /// + /// Updates a Graph in the Quad Store + /// + /// Graph Uri of the Graph to update + /// Triples to be added + /// Triples to be removed + /// + /// + /// In the case of inserts where blank nodes are present the data will be inserted but new blank nodes will be created. You cannot insert data that refers to existing blank nodes via this method, consider using a INSERT WHERE style SPARQL Update instead. + /// + /// + /// Note that Blank Nodes cannot always be deleted successfully, if you have retrieved the triples you are now trying to delete from Virtuoso and they contain blank nodes then this will likely work as expected. Otherwise deletetions of Blank Nodes cannot be guaranteed. + /// + /// + /// If the Graph being modified is relatively small it may be safer to load the graph into memory, makes the modifications there and then persist the graph back to the store (which overwrites the previous version of the graph). + /// + /// + public override void UpdateGraph(Uri graphUri, IEnumerable additions, IEnumerable removals) + { + try + { + this.Open(true); + int r; + + //Build the Delete Data Command + if (removals != null) + { + if (removals.Any()) + { + //HACK: This is super hacky but works in most cases provided the blank node containing triples + //we're attempting to delete originated from Virtuoso + //We use the VirtuosoFormatter as our formatter which formats Blank Nodes as calls to the + //bif:rdf_make_iid_of_qname('nodeID://bnode') function which works if the blank node originates from Virtuoso + + VirtuosoCommand deleteCmd = new VirtuosoCommand(); + deleteCmd.CommandTimeout = (this._timeout > 0 ? this._timeout : deleteCmd.CommandTimeout); + StringBuilder delete = new StringBuilder(); + if (removals.All(t => t.IsGroundTriple)) + { + delete.AppendLine("SPARQL define output:format '_JAVA_' DELETE DATA"); + } + else + { + //If there are Blank Nodes present we must use a DELETE rather than a DELETE DATA since + //DELETE DATA does not allow the backquoted expressions required to do this hack + delete.AppendLine("SPARQL define output:format '_JAVA_' DELETE"); + } + if (graphUri != null) + { + delete.AppendLine(" FROM <" + this.UnmarshalUri(graphUri) + ">"); + } + else + { + throw new RdfStorageException("Cannot update an unnamed Graph in a Virtuoso Store using this method - you must specify the URI of a Graph to Update"); + } + delete.AppendLine("{"); + foreach (Triple t in removals) + { + delete.AppendLine(t.ToString(this._formatter)); + } + delete.AppendLine("}"); + + //If there are Blank Nodes present we will be using a DELETE rather than a DELETE DATA + //so we need to add a WHERE clause + if (removals.Any(t => !t.IsGroundTriple)) + { + delete.AppendLine("WHERE { }"); + } + + //Run the Delete + deleteCmd.CommandText = delete.ToString(); + deleteCmd.Connection = this._db; + deleteCmd.Transaction = this._dbtrans; + + r = deleteCmd.ExecuteNonQuery(); + if (r < 0) throw new RdfStorageException("Virtuoso encountered an error when deleting Triples"); + } + } + + //Build the Insert Data Command + if (additions != null) + { + if (additions.Any()) + { + if (additions.All(t => t.IsGroundTriple)) + { + VirtuosoCommand insertCmd = new VirtuosoCommand(); + insertCmd.CommandTimeout = (this._timeout > 0 ? this._timeout : insertCmd.CommandTimeout); + StringBuilder insert = new StringBuilder(); + insert.AppendLine("SPARQL define output:format '_JAVA_' INSERT DATA"); + if (graphUri != null) + { + insert.AppendLine(" INTO <" + this.UnmarshalUri(graphUri) + ">"); + } + else + { + throw new RdfStorageException("Cannot update an unnamed Graph in Virtuoso using this method - you must specify the URI of a Graph to Update"); + } + insert.AppendLine("{"); + foreach (Triple t in additions) + { + insert.AppendLine(t.ToString(this._formatter)); + } + insert.AppendLine("}"); + insertCmd.CommandText = insert.ToString(); + insertCmd.Connection = this._db; + insertCmd.Transaction = this._dbtrans; + + r = insertCmd.ExecuteNonQuery(); + if (r < 0) throw new RdfStorageException("Virtuoso encountered an error when inserting Triples"); + } + else + { + //When data to be inserted contains Blank Nodes we must make a call to the TTLP() Virtuoso function + //instead of using INSERT DATA + VDS.RDF.Graph g = new VDS.RDF.Graph(); + g.Assert(additions); + VirtuosoCommand cmd = new VirtuosoCommand(); + cmd.CommandTimeout = (this._timeout > 0 ? this._timeout : cmd.CommandTimeout); + cmd.CommandText = "DB.DBA.TTLP(@data, @base, @graph, 1)"; + cmd.Parameters.Add("data", VirtDbType.VarChar); + cmd.Parameters["data"].Value = VDS.RDF.Writing.StringWriter.Write(g, new NTriplesWriter()); + String baseUri = this.UnmarshalUri(graphUri); + if (String.IsNullOrEmpty(baseUri)) throw new RdfStorageException("Cannot updated an unnamed Graph in Virtuoso using this method - you must specify the URI of a Graph to Update"); + cmd.Parameters.Add("base", VirtDbType.VarChar); + cmd.Parameters.Add("graph", VirtDbType.VarChar); + cmd.Parameters["base"].Value = baseUri; + cmd.Parameters["graph"].Value = baseUri; + cmd.Connection = this._db; + int result = cmd.ExecuteNonQuery(); + } + } + } + + this.Close(false); + } + catch + { + this.Close(true, true); + throw; + } + } + + /// + /// Updates a Graph in the Quad Store + /// + /// Graph Uri of the Graph to update + /// Triples to be added + /// Triples to be removed + public override void UpdateGraph(String graphUri, IEnumerable additions, IEnumerable removals) + { + Uri u = (graphUri.Equals(String.Empty)) ? null : UriFactory.Create(graphUri); + this.UpdateGraph(u, additions, removals); + } + + /// + /// Indicates that Updates are supported by the Virtuoso Native Quad Store + /// + public override bool UpdateSupported + { + get { return true; } + } + + /// + /// Returns that the Manager is ready + /// + public override bool IsReady + { + get { return true; } + } + + /// + /// Returns that the Manager is not read-only + /// + public override bool IsReadOnly + { + get { return false; } + } + + #endregion + + #region Native Query & Update + + /// + /// Executes a SPARQL Query on the native Quad Store + /// + /// SPARQL Query to execute + /// + /// + /// + /// This method will first attempt to parse the query into a SparqlQuery object. If this succeeds then the Query Type can be used to determine how to handle the response. + /// + /// + /// If the parsing fails then the query will be executed anyway using Virtuoso's SPASQL (SPARQL + SQL) syntax. Parsing can fail because Virtuoso supports various SPARQL extensions which the library does not support. These include things like aggregate functions but also SPARUL updates (the non-standard precusor to SPARQL 1.1 Update). + /// + /// + /// If you use an aggregate query which has an Integer, Decimal or Double type result then you will receive a SparqlResultSet containing a single SparqlResult which has contains a binding for a variable named Result which contains a LiteralNode typed to the appropriate datatype. + /// + /// + /// Thrown if an error occurs in making the query + public Object Query(String sparqlQuery) + { + VDS.RDF.Graph g = new VDS.RDF.Graph(); + SparqlResultSet results = new SparqlResultSet(); + this.Query(new GraphHandler(g), new ResultSetHandler(results), sparqlQuery); + + if (results.ResultsType != SparqlResultsType.Unknown) + { + return results; + } + return g; + } + + /// + /// Executes a SPARQL Query on the native Quad Store processing the results with an appropriate handler from those provided + /// + /// RDF Handler + /// Results Handler + /// SPARQL Query to execute + /// + /// + /// This method will first attempt to parse the query into a SparqlQuery object. If this succeeds then the Query Type can be used to determine how to handle the response. + /// + /// + /// If the parsing fails then the query will be executed anyway using Virtuoso's SPASQL (SPARQL + SQL) syntax. Parsing can fail because Virtuoso supports various SPARQL non-standardised extensions which the library does not support. These include things like aggregate functions but also SPARUL updates (the non-standard precusor to SPARQL 1.1 Update). + /// + /// + /// If you use an aggregate query which has an Integer, Decimal or Double type result then you will receive a SparqlResultSet containing a single SparqlResult which has contains a binding for a variable named Result which contains a LiteralNode typed to the appropriate datatype. + /// + /// + /// Thrown if an error occurs in making the query + public void Query(IRdfHandler rdfHandler, ISparqlResultsHandler resultsHandler, String sparqlQuery) + { + try + { + if (resultsHandler != null) resultsHandler.StartResults(); + + DataTable results = new DataTable(); + results.Columns.CollectionChanged += Columns_CollectionChanged; + + //See if the query can be parsed into a SparqlQuery object + //It might not since the user might use Virtuoso's extensions to Sparql in their query + try + { + //We'll set the Parser to SPARQL 1.1 mode even though Virtuoso's SPARQL implementation has + //various perculiarties in their SPARQL 1.1 implementation and we'll try and + //handle the potential results in the catch branch if a valid SPARQL 1.0 query + //cannot be parsed + //Change made in response to a bug report by Aleksandr A. Zaripov [zaripov@tpu.ru] + SparqlQueryParser parser = new SparqlQueryParser(); + parser.SyntaxMode = SparqlQuerySyntax.Sparql_1_1; + VDS.RDF.Query.SparqlQuery query; + try + { + query = parser.ParseFromString(sparqlQuery); + } + catch (RdfException rdfEx) + { + //Need to re-wrap errors during parsing so we fall into correct catch branch, can't generally re-wrap as we might + //get RdfException's from other places which would indicate unrecoverable errors + throw new RdfParseException("RDF exception generated in query parsing", rdfEx); + } + + switch (query.QueryType) + { + case VDS.RDF.Query.SparqlQueryType.Select: + case VDS.RDF.Query.SparqlQueryType.SelectAll: + case VDS.RDF.Query.SparqlQueryType.SelectAllDistinct: + case VDS.RDF.Query.SparqlQueryType.SelectAllReduced: + case VDS.RDF.Query.SparqlQueryType.SelectDistinct: + case VDS.RDF.Query.SparqlQueryType.SelectReduced: + //Type the Tables columns as System.Object + foreach (SparqlVariable var in query.Variables) + { + if (var.IsResultVariable) + { + results.Columns.Add(var.Name, typeof(System.Object)); + } + } + break; + } + + try + { + #region Valid SPARQL Query Handling + + this.Open(false); + + //Make the Query against Virtuoso + VirtuosoCommand cmd = this._db.CreateCommand(); + cmd.CommandTimeout = (this._timeout > 0 ? this._timeout : cmd.CommandTimeout); + cmd.CommandText = "SPARQL " + sparqlQuery; + VirtuosoDataAdapter adapter = new VirtuosoDataAdapter(cmd); + adapter.Fill(results); + + //Decide how to process the results based on the return type + switch (query.QueryType) + { + case VDS.RDF.Query.SparqlQueryType.Ask: + //Expect a DataTable containing a single row and column which contains a boolean + + //Ensure Results Handler is not null + if (resultsHandler == null) throw new ArgumentNullException("resultsHandler", "Cannot handle a Boolean Result with a null SPARQL Results Handler"); + + if (results.Rows.Count == 1 && results.Columns.Count == 1) + { + //Try and parse the result + bool result; + int r; + if (Boolean.TryParse(results.Rows[0][0].ToString(), out result)) + { + resultsHandler.HandleBooleanResult(result); + } + else if (Int32.TryParse(results.Rows[0][0].ToString(), out r)) + { + resultsHandler.HandleBooleanResult(r == 1); + } + else + { + throw new RdfQueryException("Expected a Boolean as the result of an ASK query but the non-boolean value '" + results.Rows[0][0].ToString() + "' was received"); + } + } + else + { + //If we get anything else then we'll return that the result was False + resultsHandler.HandleBooleanResult(false); + } + break; + + case VDS.RDF.Query.SparqlQueryType.Construct: + case VDS.RDF.Query.SparqlQueryType.Describe: + case VDS.RDF.Query.SparqlQueryType.DescribeAll: + //Expect a DataTable containing a single row and column which contains a String + //That string will be a Turtle serialization of the Graph + + //Ensure that RDF Handler is not null + if (rdfHandler == null) throw new ArgumentNullException("rdfHandler", "Cannot handle a Graph result with a null RDF Handler"); + + if (results.Rows.Count == 1 && results.Columns.Count == 1) + { + try + { + //Use StringParser to parse + String data = results.Rows[0][0].ToString(); + TurtleParser ttlparser = new TurtleParser(); + ttlparser.Load(rdfHandler, new StringReader(data)); + } + catch (RdfParseException parseEx) + { + throw new RdfQueryException("Expected a valid Turtle serialization of the Graph resulting from a CONSTRUCT/DESCRIBE query but the result failed to parse", parseEx); + } + } + else if (results.Columns.Count == 3) + { + rdfHandler.StartRdf(); + try + { + foreach (DataRow row in results.Rows) + { + INode s = this.LoadNode(rdfHandler, row[0]); + INode p = this.LoadNode(rdfHandler, row[1]); + INode o = this.LoadNode(rdfHandler, row[2]); + if (!rdfHandler.HandleTriple(new Triple(s, p, o))) break; + } + rdfHandler.EndRdf(true); + } + catch + { + rdfHandler.EndRdf(false); + throw; + } + } + else + { + throw new RdfQueryException("Unexpected results data received for a CONSTRUCT/DESCRIBE query (Got " + results.Rows.Count + " row(s) with " + results.Columns.Count + " column(s)"); + } + break; + + case VDS.RDF.Query.SparqlQueryType.Select: + case VDS.RDF.Query.SparqlQueryType.SelectAll: + case VDS.RDF.Query.SparqlQueryType.SelectAllDistinct: + case VDS.RDF.Query.SparqlQueryType.SelectAllReduced: + case VDS.RDF.Query.SparqlQueryType.SelectDistinct: + case VDS.RDF.Query.SparqlQueryType.SelectReduced: + //Ensure Results Handler is not null + if (resultsHandler == null) throw new ArgumentNullException("resultsHandler", "Cannot handle SPARQL Results with a null Results Handler"); + + //Get Result Variables + List resultVars = query.Variables.Where(v => v.IsResultVariable).ToList(); + foreach (SparqlVariable var in resultVars) + { + if (!resultsHandler.HandleVariable(var.Name)) ParserHelper.Stop(); + } + VDS.RDF.Graph temp = new VDS.RDF.Graph(); + + //Convert each solution into a SPARQLResult + foreach (DataRow r in results.Rows) + { + Set s = new Set(); + foreach (SparqlVariable var in resultVars) + { + if (r[var.Name] != null) + { + s.Add(var.Name, this.LoadNode(temp, r[var.Name])); + } + } + if (!resultsHandler.HandleResult(new SparqlResult(s))) ParserHelper.Stop(); + } + break; + + default: + throw new RdfQueryException("Unable to process the Results of an Unknown query type"); + } + + this.Close(false); + + #endregion + } + catch + { + throw; + } + } + catch (RdfParseException) + { + //Unable to parse a SPARQL 1.0 query + //Have to attempt to detect the return type based on the DataTable that + //the SPASQL (Sparql+SQL) query gives back + + try + { + #region Potentially Invalid SPARQL Query Handling + + this.Open(false); + + //Make the Query against Virtuoso + VirtuosoCommand cmd = this._db.CreateCommand(); + cmd.CommandTimeout = (this._timeout > 0 ? this._timeout : cmd.CommandTimeout); + cmd.CommandText = "SPARQL " /*define output:format '_JAVA_' "*/+ sparqlQuery; + VirtuosoDataAdapter adapter = new VirtuosoDataAdapter(cmd); + adapter.Fill(results); + + //Try to detect the return type based on the DataTable configuration + if (results.Columns.Count == 3 + && results.Columns[0].ColumnName.Equals(SubjectColumn) + && results.Columns[1].ColumnName.Equals(PredicateColumn) + && results.Columns[2].ColumnName.Equals(ObjectColumn) + && !Regex.IsMatch(sparqlQuery, "SELECT", RegexOptions.IgnoreCase)) + { + //Ensure that RDF Handler is not null + if (rdfHandler == null) throw new ArgumentNullException("rdfHandler", "Cannot handle a Graph result with a null RDF Handler"); + + rdfHandler.StartRdf(); + try + { + foreach (DataRow row in results.Rows) + { + INode s = this.LoadNode(rdfHandler, row[0]); + INode p = this.LoadNode(rdfHandler, row[1]); + INode o = this.LoadNode(rdfHandler, row[2]); + if (!rdfHandler.HandleTriple(new Triple(s, p, o))) break; + } + rdfHandler.EndRdf(true); + } + catch + { + rdfHandler.EndRdf(false); + throw; + } + } + else if (results.Rows.Count == 0 && results.Columns.Count > 0) + { + if (resultsHandler == null) throw new ArgumentNullException("resultsHandler", "Cannot handle SPARQL Results with a null Results Handler"); + + //No Rows but some columns implies empty SELECT results + foreach (DataColumn col in results.Columns) + { + if (!resultsHandler.HandleVariable(col.ColumnName)) ParserHelper.Stop(); + } + } + else if (results.Rows.Count == 1 && results.Columns.Count == 1 && !Regex.IsMatch(sparqlQuery, "SELECT", RegexOptions.IgnoreCase)) + { + //Added a fix here suggested by Alexander Sidorov - not entirely happy with this fix as what happens if SELECT just happens to occur in a URI/Variable Name? + + //Single Row and Column implies ASK/DESCRIBE/CONSTRUCT results + bool result; + int r; + decimal rdec; + double rdbl; + float rflt; + + if (results.Rows[0][0].ToString().Equals(String.Empty)) + { + //Empty Results - no need to do anything + } + else if (Boolean.TryParse(results.Rows[0][0].ToString(), out result)) + { + //Parseable Boolean so ASK Results + if (resultsHandler == null) throw new ArgumentNullException("resultsHandler", "Cannot handle a Boolean result with a null Results Handler"); + resultsHandler.HandleBooleanResult(result); + } + else if (Int32.TryParse(results.Rows[0][0].ToString(), out r)) + { + if (resultsHandler == null) throw new ArgumentNullException("resultsHandler", "Cannot handle SPARQL results with a null Results Handler"); + + //Parseable Integer so Aggregate SELECT Query Results + if (!resultsHandler.HandleVariable("Result")) ParserHelper.Stop(); + Set s = new Set(); + s.Add("Result", r.ToLiteral(resultsHandler)); + if (!resultsHandler.HandleResult(new SparqlResult(s))) ParserHelper.Stop(); + } + else if (Single.TryParse(results.Rows[0][0].ToString(), out rflt)) + { + if (resultsHandler == null) throw new ArgumentNullException("resultsHandler", "Cannot handle SPARQL results with a null Results Handler"); + + //Parseable Single so Aggregate SELECT Query Results + if (!resultsHandler.HandleVariable("Result")) ParserHelper.Stop(); + Set s = new Set(); + s.Add("Result", rflt.ToLiteral(resultsHandler)); + if (!resultsHandler.HandleResult(new SparqlResult(s))) ParserHelper.Stop(); + } + else if (Double.TryParse(results.Rows[0][0].ToString(), out rdbl)) + { + if (resultsHandler == null) throw new ArgumentNullException("resultsHandler", "Cannot handle SPARQL results with a null Results Handler"); + + //Parseable Double so Aggregate SELECT Query Results + if (!resultsHandler.HandleVariable("Result")) ParserHelper.Stop(); + Set s = new Set(); + s.Add("Result", rdbl.ToLiteral(resultsHandler)); + if (!resultsHandler.HandleResult(new SparqlResult(s))) ParserHelper.Stop(); + } + else if (Decimal.TryParse(results.Rows[0][0].ToString(), out rdec)) + { + if (resultsHandler == null) throw new ArgumentNullException("resultsHandler", "Cannot handle SPARQL results with a null Results Handler"); + + //Parseable Decimal so Aggregate SELECT Query Results + if (!resultsHandler.HandleVariable("Result")) ParserHelper.Stop(); + Set s = new Set(); + s.Add("Result", rdec.ToLiteral(resultsHandler)); + if (!resultsHandler.HandleResult(new SparqlResult(s))) ParserHelper.Stop(); + } + else + { + //String so try and parse as Turtle + try + { + //Use StringParser to parse + String data = results.Rows[0][0].ToString(); + TurtleParser ttlparser = new TurtleParser(); + ttlparser.Load(rdfHandler, new StringReader(data)); + } + catch (RdfParseException) + { + if (resultsHandler == null) throw new ArgumentNullException("resultsHandler", "Cannot handle SPARQL results with a null Results Handler"); + + //If it failed to parse then it might be the result of one of the aggregate + //functions that Virtuoso extends Sparql with + if (!resultsHandler.HandleVariable(results.Columns[0].ColumnName)) ParserHelper.Stop(); + Set s = new Set(); + s.Add(results.Columns[0].ColumnName, this.LoadNode(resultsHandler, results.Rows[0][0])); + //Nothing was returned here previously - fix submitted by Aleksandr A. Zaripov [zaripov@tpu.ru] + if (!resultsHandler.HandleResult(new SparqlResult(s))) ParserHelper.Stop(); + } + } + } + else + { + //Any other number of rows/columns we have to assume that it's normal SELECT results + //Changed in response to bug report by Aleksandr A. Zaripov [zaripov@tpu.ru] + + if (resultsHandler == null) throw new ArgumentNullException("resultsHandler", "Cannot handle SPARQL results with a null Results Handler"); + + //Get Result Variables + List vars = new List(); + foreach (DataColumn col in results.Columns) + { + vars.Add(col.ColumnName); + if (!resultsHandler.HandleVariable(col.ColumnName)) ParserHelper.Stop(); + } + + //Convert each solution into a SPARQLResult + foreach (DataRow r in results.Rows) + { + Set s = new Set(); + foreach (String var in vars) + { + if (r[var] != null) + { + s.Add(var, this.LoadNode(resultsHandler, r[var])); + } + } + if (!resultsHandler.HandleResult(new SparqlResult(s))) ParserHelper.Stop(); + } + } + this.Close(false); + + #endregion + } + catch + { + this.Close(true, true); + throw; + } + } + + if (resultsHandler != null) resultsHandler.EndResults(true); + this.Close(false); + } + catch (RdfParsingTerminatedException) + { + if (resultsHandler != null) resultsHandler.EndResults(true); + this.Close(false); + } + catch + { + this.Close(true); + if (resultsHandler != null) resultsHandler.EndResults(false); + this.Close(false); + throw; + } + } + + private static void Columns_CollectionChanged(object sender, System.ComponentModel.CollectionChangeEventArgs e) + { + Type reqType = typeof(Object); + if (e.Action != System.ComponentModel.CollectionChangeAction.Add) return; + DataColumn column = (DataColumn)e.Element; + if (!column.DataType.Equals(reqType)) + { + column.DataType = reqType; + } + } + + /// + /// Executes a SPARQL Update on the native Quad Store + /// + /// SPARQL Update to execute + /// + /// + /// This method will first attempt to parse the update into a SparqlUpdateCommandSet object. If this succeeds then each command in the command set will be issued to Virtuoso. + /// + /// + /// If the parsing fails then the update will be executed anyway using Virtuoso's SPASQL (SPARQL + SQL) syntax. Parsing can fail because Virtuoso supports various SPARQL extensions which the library does not support and primarily supports SPARUL updates (the precusor to SPARQL 1.1 Update). + /// + /// + /// Thrown if an error occurs in making the update + public void Update(String sparqlUpdate) + { + try + { + this.Open(true); + + //Try and parse the SPARQL Update String + SparqlUpdateParser parser = new SparqlUpdateParser(); + SparqlUpdateCommandSet commands = parser.ParseFromString(sparqlUpdate); + + //Process each Command individually + foreach (SparqlUpdateCommand command in commands.Commands) + { + //Make the Update against Virtuoso + VirtuosoCommand cmd = this._db.CreateCommand(); + cmd.CommandTimeout = (this._timeout > 0 ? this._timeout : cmd.CommandTimeout); + cmd.CommandText = "SPARQL " + command.ToString(); + cmd.ExecuteNonQuery(); + } + + this.Close(true); + } + catch (RdfParseException) + { + try + { + //Ignore failed parsing and attempt to execute anyway + VirtuosoCommand cmd = this._db.CreateCommand(); + cmd.CommandTimeout = (this._timeout > 0 ? this._timeout : cmd.CommandTimeout); + cmd.CommandText = "SPARQL " + sparqlUpdate; + + cmd.ExecuteNonQuery(); + this.Close(true); + } + catch (Exception ex) + { + this.Close(true, true); + throw new SparqlUpdateException("An error occurred while trying to perform the SPARQL Update with Virtuoso. Note that Virtuoso historically has primarily supported SPARUL (the precursor to SPARQL Update) and many valid SPARQL Update Commands may not be supported by Virtuoso", ex); + } + } + catch (SparqlUpdateException) + { + this.Close(true, true); + throw; + } + catch (Exception ex) + { + //Wrap in a SPARQL Update Exception + this.Close(true, true); + throw new SparqlUpdateException("An error occurred while trying to perform the SPARQL Update with Virtuoso. Note that Virtuoso historically has primarily supported SPARUL (the precursor to SPARQL Update) and many valid SPARQL Update Commands may not be supported by Virtuoso if you are not using a recent version.", ex); + } + } + + #endregion + + /// + /// Deletes a Graph from the Virtuoso store + /// + /// URI of the Graph to delete + public override void DeleteGraph(Uri graphUri) + { + this.DeleteGraph(this.UnmarshalUri(graphUri)); + } + + /// + /// Deletes a Graph from the store + /// + /// URI of the Graph to delete + public override void DeleteGraph(String graphUri) + { + if (graphUri == null) return; + if (graphUri.Equals(String.Empty)) return; + + try + { + this.Open(false); + this.ExecuteNonQuery("DELETE FROM DB.DBA.RDF_QUAD WHERE G = DB.DBA.RDF_MAKE_IID_OF_QNAME('" + graphUri + "')"); + this.Close(false); + } + catch + { + this.Close(true, true); + throw; + } + } + + /// + /// Returns that deleting Graphs is supported + /// + public override bool DeleteSupported + { + get { return true; } + } + + /// + /// Lists the Graphs in the store + /// + /// + public override IEnumerable ListGraphs() + { + try + { + Object results = this.Query("SELECT DISTINCT ?g WHERE { GRAPH ?g { ?s ?p ?o } }"); + if (results is SparqlResultSet) + { + List graphs = new List(); + foreach (SparqlResult r in ((SparqlResultSet)results)) + { + if (r.HasValue("g")) + { + INode temp = r["g"]; + try + { + if (temp.NodeType == NodeType.Uri) + { + graphs.Add(((IUriNode)temp).Uri); + } + else if (temp.NodeType == NodeType.Literal) + { + //HACK: Virtuoso wrongly returns Literals instead of URIs in the results for the above query prior to Virtuoso 6.1.3 + graphs.Add(UriFactory.Create(((ILiteralNode)temp).Value)); + } + } + catch + { + //HACK: Virtuoso has some special Graphs which have non-URI names so ignore these + continue; + } + } + } + return graphs; + } + else + { + return Enumerable.Empty(); + } + } + catch (Exception ex) + { + throw new RdfStorageException("Underlying Store returned an error while trying to List Graphs", ex); + } + } + + /// + /// Returns that listing graphs is supported + /// + public override bool ListGraphsSupported + { + get { return true; } + } + + #region Database IO + + /// + /// Opens a Connection to the Database + /// + /// Indicates that the Connection should be kept open and a Transaction started + private void Open(bool keepOpen) + { + this.Open(keepOpen, IsolationLevel.ReadCommitted); + } + + /// + /// Opens a Connection to the Database + /// + /// Indicates that the Connection should be kept open and a Transaction started + /// Isolation Level to use + private void Open(bool keepOpen, IsolationLevel level) + { + switch (this._db.State) + { + case ConnectionState.Broken: + case ConnectionState.Closed: + this._db.Open(); + + //Start a Transaction + if (this._dbtrans == null) + { + this._dbtrans = this._db.BeginTransaction(level); + } + break; + } + if (keepOpen) this._keepOpen = true; + } + + /// + /// Closes the Connection to the Database + /// + /// Indicates that the connection should be closed even if keepOpen was specified when the Connection was opened + private void Close(bool forceClose) + { + this.Close(forceClose, false); + } + + /// + /// Closes the Connection to the Database + /// + /// Indicates that the connection should be closed even if keepOpen was specified when the Connection was opened + /// Indicates that the Transaction should be rolled back because something has gone wrong + private void Close(bool forceClose, bool rollbackTrans) + { + //Don't close if we're keeping open and not forcing Close or rolling back a Transaction + if (this._keepOpen && !forceClose && !rollbackTrans) + { + return; + } + + switch (this._db.State) + { + case ConnectionState.Open: + //Finish the Transaction if exists + if (this._dbtrans != null) + { + if (!rollbackTrans) + { + //Commit normally + this._dbtrans.Commit(); + } + else + { + //Want to Rollback + this._dbtrans.Rollback(); + } + this._dbtrans = null; + + this._db.Close(); + } + + this._keepOpen = false; + break; + } + } + + /// + /// Executes a Non-Query SQL Command against the database + /// + /// SQL Command + private void ExecuteNonQuery(string sqlCmd) + { + //Create the SQL Command + VirtuosoCommand cmd = new VirtuosoCommand(sqlCmd, this._db); + cmd.CommandTimeout = (this._timeout > 0 ? this._timeout : cmd.CommandTimeout); + if (this._dbtrans != null) + { + //Add to the Transaction if required + cmd.Transaction = this._dbtrans; + } + + //Execute + cmd.ExecuteNonQuery(); + } + + /// + /// Executes a Query SQL Command against the database and returns a DataTable + /// + /// SQL Command + /// DataTable of results + private DataTable ExecuteQuery(string sqlCmd) + { + //Create the SQL Command + VirtuosoCommand cmd = new VirtuosoCommand(sqlCmd, this._db); + cmd.CommandTimeout = (this._timeout > 0 ? this._timeout : cmd.CommandTimeout); + if (this._dbtrans != null) + { + //Add to the Transaction if required + cmd.Transaction = this._dbtrans; + } + + //Execute the Query + VirtuosoDataAdapter adapter = new VirtuosoDataAdapter(cmd); + DataTable results = new DataTable(); + adapter.Fill(results); + + return results; + } + + /// + /// Executes a Query SQL Command against the database and returns the scalar result (first column of first row of the result) + /// + /// SQL Command + /// First Column of First Row of the Results + private object ExecuteScalar(string sqlCmd) + { + //Create the SQL Command + VirtuosoCommand cmd = new VirtuosoCommand(sqlCmd, this._db); + cmd.CommandTimeout = (this._timeout > 0 ? this._timeout : cmd.CommandTimeout); + if (this._dbtrans != null) + { + //Add to the Transaction if required + cmd.Transaction = this._dbtrans; + } + + //Execute the Scalar + return cmd.ExecuteScalar(); + } + + /// + /// Gets whether there is an active connection to the Virtuoso database + /// + public bool HasOpenConnection + { + get { return this._db.State != ConnectionState.Broken && this._db.State != ConnectionState.Closed; } + } + + /// + /// Gets whether there is any active transaction on the Virtuoso database + /// + public bool HasActiveTransaction + { + get { return !ReferenceEquals(this._dbtrans, null); } + } + + #endregion + + #region IDisposable Members + + /// + /// Disposes of the Manager + /// + public override void Dispose() + { + this.Close(true, false); + } + + #endregion + + /// + /// Gets a String which gives details of the Connection + /// + /// + public override string ToString() + { + if (this._customConnString) + { + return "[Virtuoso] Custom Connection String"; + } + return "[Virtuoso] " + this._dbserver + ":" + this._dbport; + } + + } + +} diff --git a/Trinity.Virtuoso/VirtuosoStore.cs b/Trinity.Virtuoso/VirtuosoStore.cs index 9343218..830752e 100644 --- a/Trinity.Virtuoso/VirtuosoStore.cs +++ b/Trinity.Virtuoso/VirtuosoStore.cs @@ -247,7 +247,7 @@ public override ISparqlQueryResult ExecuteQuery(ISparqlQuery query, ITransaction return new VirtuosoSparqlQueryResult(query.Model, query, this, transaction); } - internal string CreateQuery(ISparqlQuery query) + public string CreateQuery(ISparqlQuery query) { StringBuilder queryBuilder = new StringBuilder(); @@ -469,7 +469,7 @@ public override Uri Read(Stream stream, Uri graph, RdfSerializationFormat format private Uri ReadQuadFormat(TextReader reader, Uri graph, RdfSerializationFormat format, bool update) { - using (VDS.RDF.Storage.VirtuosoManager manager = new VDS.RDF.Storage.VirtuosoManager(CreateConnectionString())) + using (VirtuosoManager manager = new VirtuosoManager(CreateConnectionString())) { using (VDS.RDF.ThreadSafeTripleStore store = new VDS.RDF.ThreadSafeTripleStore()) { @@ -496,7 +496,7 @@ private Uri ReadQuadFormat(TextReader reader, Uri graph, RdfSerializationFormat private Uri ReadTripleFormat(TextReader reader, Uri graphUri, RdfSerializationFormat format, bool update) { - using (VDS.RDF.Storage.VirtuosoManager manager = new VDS.RDF.Storage.VirtuosoManager(CreateConnectionString())) + using (VirtuosoManager manager = new VirtuosoManager(CreateConnectionString())) { using (VDS.RDF.Graph graph = new VDS.RDF.Graph()) { @@ -520,7 +520,7 @@ private Uri ReadTripleFormat(TextReader reader, Uri graphUri, RdfSerializationFo private Uri ReadRemoteTripleFormat(Uri graph, Uri location, RdfSerializationFormat format) { - using (VDS.RDF.Storage.VirtuosoManager manager = new VDS.RDF.Storage.VirtuosoManager(CreateConnectionString())) + using (VirtuosoManager manager = new VirtuosoManager(CreateConnectionString())) { using (VDS.RDF.Graph g = new VDS.RDF.Graph()) { @@ -535,9 +535,10 @@ private Uri ReadRemoteTripleFormat(Uri graph, Uri location, RdfSerializationForm return graph; } + public override void Write(Stream fs, Uri graph, RdfSerializationFormat format) { - using (VDS.RDF.Storage.VirtuosoManager manager = new VDS.RDF.Storage.VirtuosoManager(CreateConnectionString())) + using (VirtuosoManager manager = new VirtuosoManager(CreateConnectionString())) { using (VDS.RDF.Graph g = new VDS.RDF.Graph()) { diff --git a/Trinity.Virtuoso/VirtuosoStoreProvider.cs b/Trinity.Virtuoso/VirtuosoStoreProvider.cs index 0c1910e..8dcd963 100644 --- a/Trinity.Virtuoso/VirtuosoStoreProvider.cs +++ b/Trinity.Virtuoso/VirtuosoStoreProvider.cs @@ -27,16 +27,14 @@ using System.Collections.Generic; -#if !NET35 using System.ComponentModel.Composition; -#endif namespace Semiodesk.Trinity.Store.Virtuoso { -#if !NET35 + [Export(typeof(StoreProvider))] -#endif + public class VirtuosoStoreProvider : StoreProvider { @@ -86,7 +84,7 @@ public override IStore GetStore(Dictionary configurationDictiona inferenceRule = configurationDictionary[ruleKey]; } - + VirtuosoStore store = new VirtuosoStore(host, port, user, password, inferenceRule); return store; } diff --git a/Trinity/OntologyDiscovery.cs b/Trinity/OntologyDiscovery.cs index d6e534a..8c27846 100644 --- a/Trinity/OntologyDiscovery.cs +++ b/Trinity/OntologyDiscovery.cs @@ -176,6 +176,11 @@ public static Property GetProperty(string u) return Properties.ContainsKey(u) ? Properties[u] : new Property(new UriRef(u)); } + public static void AddAssembly(Type type) + { + throw new NotImplementedException(); + } + #endregion } } diff --git a/Trinity/PropertyMapping.cs b/Trinity/PropertyMapping.cs index c4388ef..a5954bd 100644 --- a/Trinity/PropertyMapping.cs +++ b/Trinity/PropertyMapping.cs @@ -298,6 +298,13 @@ void IPropertyMapping.SetOrAddMappedValue(object value) list.Add(Convert.ChangeType(value, _genericType)); _isUnsetValue = false; + return; + } + else if (_genericType == typeof(Uri) && typeof(Resource).IsAssignableFrom(t)) + { + list.Add((value as Resource).Uri); + _isUnsetValue = false; + return; } } @@ -318,6 +325,13 @@ void IPropertyMapping.SetOrAddMappedValue(object value) _value = (T)Convert.ChangeType(value, _dataType); _isUnsetValue = false; + return; + } + else if (_dataType == typeof(Uri) && typeof(Resource).IsAssignableFrom(t)) + { + _value = (T) (object)(value as Resource).Uri; + _isUnsetValue = false; + return; } } @@ -437,7 +451,7 @@ bool IPropertyMapping.IsTypeCompatible(Type type) } else { - return (mappingType.IsAssignableFrom(type) || typeof(Resource).IsAssignableFrom(mappingType) && typeof(Resource).IsAssignableFrom(type)); + return (mappingType.IsAssignableFrom(type) || typeof(Resource).IsAssignableFrom(mappingType) && typeof(Resource).IsAssignableFrom(type) || (typeof(Uri).IsAssignableFrom(mappingType) && typeof(Resource).IsAssignableFrom(type)) ); } } diff --git a/Trinity/Resource.cs b/Trinity/Resource.cs index 80d86c3..6001681 100644 --- a/Trinity/Resource.cs +++ b/Trinity/Resource.cs @@ -364,7 +364,7 @@ public virtual void AddPropertyToMapping(Property property, object value, bool f if (propertyMapping != null) { // yes, so we try to set or add it - if (fromModel && value is IResource) + if (fromModel && value is IResource && propertyMapping.DataType != typeof(Uri) && propertyMapping.GenericType != typeof(Uri) ) { // we generate the resource from the model, so we cache all mapped resources ResourceCache.CacheValue(propertyMapping, (value as IResource).Uri); diff --git a/Trinity/Trinity.csproj b/Trinity/Trinity.csproj index c438274..8d884b3 100644 --- a/Trinity/Trinity.csproj +++ b/Trinity/Trinity.csproj @@ -1,14 +1,14 @@  - netstandard2.0;net40;net35 + netstandard2.0;net40 Semiodesk.Trinity Copyright © Semiodesk GmbH 2015-2019 Enterprise ready object mapper for developing RDF knowledge graph applications with .NET Semiodesk GmbH 1.0.0-rc008 - 1.0.0.7 - 1.0.0.7 + 1.0.0.8 + 1.0.0.8 Semiodesk.Trinity Semiodesk.Trinity @@ -32,11 +32,14 @@ RDF SPARQL ORM object mapping linked data semantic web knowledge graph database https://trinity-rdf.net - https://trinity-rdf.net/assets/img/trinity-logo.png + trinity-logo.png https://github.com/semiodesk/trinity-rdf git - + + + + diff --git a/assets/trinity-logo.png b/assets/trinity-logo.png new file mode 100644 index 0000000..0ccb5f5 Binary files /dev/null and b/assets/trinity-logo.png differ diff --git a/sign.ps1 b/sign.ps1 new file mode 100644 index 0000000..4ae1a6c --- /dev/null +++ b/sign.ps1 @@ -0,0 +1,3 @@ +nuget sign Build\Release\Semiodesk.Trinity.1.0.0-rc008.nupkg -Timestamper http://sha256timestamp.ws.symantec.com/sha256/timestamp -CertificateFingerprint 6b12d450f8d15289c2ada6a2ae86db12b1d73f84 + +nuget sign Build\Release\stores\virtuoso\Semiodesk.Trinity.Virtuoso.1.0.0-rc008.nupkg -Timestamper http://sha256timestamp.ws.symantec.com/sha256/timestamp -CertificateFingerprint 6b12d450f8d15289c2ada6a2ae86db12b1d73f84 \ No newline at end of file diff --git a/Trinity.Tests/Stardog/ModelTest.cs b/tests/Trinity.Tests.Stardog/ModelTest.cs similarity index 97% rename from Trinity.Tests/Stardog/ModelTest.cs rename to tests/Trinity.Tests.Stardog/ModelTest.cs index f07c998..dc2ea68 100644 --- a/Trinity.Tests/Stardog/ModelTest.cs +++ b/tests/Trinity.Tests.Stardog/ModelTest.cs @@ -1,311 +1,311 @@ -// LICENSE: -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. -// -// AUTHORS: -// -// Moritz Eberl -// Sebastian Faubel -// -// Copyright (c) Semiodesk GmbH 2015-2019 - -using NUnit.Framework; -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; - -namespace Semiodesk.Trinity.Test.Stardog -{ - [TestFixture] - class StardogModelTest - { - IStore Store; - IModel Model; - - [SetUp] - public void SetUp() - { - Store = StoreFactory.CreateStore("provider=stardog;host=http://localhost:5820;uid=admin;pw=admin;sid=test"); - - Uri testModel = new Uri("ex:Test"); - - Model = Store.CreateModel(testModel); - Model.Clear(); - } - - [TearDown] - public void TearDown() - { - Store.Dispose(); - Store = null; - } - - [Test] - public void CreateResourceTest() - { - var literal = "var"; - var resourceUri = new Uri("ex:test:resource"); - var property = new Property(new Uri("ex:test:property")); - var res = Model.CreateResource(resourceUri); - res.AddProperty(property, literal); - res.Commit(); - - IResource result = Model.GetResource(resourceUri); - Assert.AreEqual(resourceUri, result.Uri); - - List properties = result.ListProperties().ToList(); - Assert.AreEqual(1, properties.Count); - Assert.AreEqual(property, properties[0]); - Assert.AreEqual(literal, result.GetValue(property)); - } - - [Test] - public void ModifyResourceTest() - { - var literal = "var"; - var resourceUri = new Uri("ex:test:resource"); - var property = new Property(new Uri("ex:test:property")); - var res = Model.CreateResource(resourceUri); - res.AddProperty(property, literal); - res.Commit(); - - IResource result = Model.GetResource(resourceUri); - - result.RemoveProperty(property, literal); - literal = "var2"; - result.AddProperty(property, literal); - result.Commit(); - - result = Model.GetResource(resourceUri); - - Assert.AreEqual(resourceUri, result.Uri); - List properties = result.ListProperties().ToList(); - Assert.AreEqual(1, properties.Count); - Assert.AreEqual(property, properties[0]); - Assert.AreEqual(literal, result.GetValue(property)); - } - - [Test] - public void RemoveResourceTest() - { - var literal = "var"; - var resourceUri = new Uri("ex:test:resource"); - var property = new Property(new Uri("ex:test:property")); - var res = Model.CreateResource(resourceUri); - res.AddProperty(property, literal); - res.Commit(); - - IResource result = Model.GetResource(resourceUri); - - Model.DeleteResource(result); - - Assert.IsFalse(Model.ContainsResource(result)); - } - - [Test] - public void GetResourceTest() - { - var literal = "var"; - var resourceUri = new Uri("ex:test:resource"); - var property = new Property(new Uri("ex:test:property")); - var res = Model.CreateResource(resourceUri); - res.AddProperty(property, literal); - res.Commit(); - - IResource result = Model.GetResource(resourceUri); - Assert.AreEqual(resourceUri, result.Uri); - List properties = result.ListProperties().ToList(); - Assert.AreEqual(1, properties.Count); - Assert.AreEqual(property, properties[0]); - Assert.AreEqual(literal, result.GetValue(property)); - } - - [Test] - public void UpdateResourceTest() - { - Property property = new Property(new Uri("http://example.org/MyProperty")); - Uri resourceUri = new Uri("http://example.org/MyResource"); - - IResource r1 = Model.CreateResource(resourceUri); - r1.AddProperty(property, 123); - r1.AddProperty(property, "in the jungle"); - r1.Commit(); - - // Try to update resource with different properties then persisted - Resource r2 = new Resource(resourceUri); - r2.Model = Model; - r2.AddProperty(property, "in the jengle"); - r2.Commit(); - - var actual = Model.GetResource(resourceUri); - Assert.AreEqual(r2, actual); - - try - { - // Try to update resource without properties - Resource r3 = new Resource(resourceUri); - r3.Model = Model; - r3.Commit(); - - Assert.Fail(); - } - catch - { - // We're OK. - } - } - - [Test] - public void ContainsResourceTest() - { - var literal = "var"; - var resourceUri = new Uri("ex:test:resource"); - var property = new Property(new Uri("ex:test:property")); - var res = Model.CreateResource(resourceUri); - res.AddProperty(property, literal); - res.Commit(); - - IResource result = Model.GetResource(resourceUri); - Assert.AreEqual(true, Model.ContainsResource(new UriRef("ex:test:resource"))); - } - - [Test] - public void AskQueryTest() - { - var literal = "var"; - var resourceUri = new Uri("ex:test:resource"); - var property = new Property(new Uri("ex:test:property")); - var res = Model.CreateResource(resourceUri); - res.AddProperty(property, literal); - res.Commit(); - - SparqlQuery q = new SparqlQuery("ASK { ?p ?o . }"); - var b = Model.ExecuteQuery(q); - } - - [Test] - public void ReadFromStringTest() - { - string turtle = @"@base . -@prefix rdf: . -@prefix rdfs: . -@prefix foaf: . -@prefix rel: . - -<#green-goblin> - rel:enemyOf <#spiderman> ; - a foaf:Person ; # in the context of the Marvel universe - foaf:name ""Green Goblin"" . - -<#spiderman> - rel:enemyOf <#green-goblin> ; - a foaf:Person ; - foaf:name ""Spiderman"", ""Человек-паук""@ru ."; - - using (Stream s = GenerateStreamFromString(turtle)) - { - Assert.IsTrue(Model.Read(s, RdfSerializationFormat.Turtle, false)); - } - - IResource r = Model.GetResource(new Uri("http://example.org/#green-goblin")); - string name = r.GetValue(new Property(new Uri("http://xmlns.com/foaf/0.1/name"))) as string; - Assert.AreEqual("Green Goblin", name); - - string turtle2 = @"@base . -@prefix xsd: . -@prefix foaf: . - -<#green-goblin> foaf:age ""27""^^xsd:int ."; - - using (Stream s = GenerateStreamFromString(turtle2)) - { - Assert.IsTrue(Model.Read(s, RdfSerializationFormat.Turtle, true)); - } - - r = Model.GetResource(new Uri("http://example.org/#green-goblin")); - int age = (int)r.GetValue(new Property(new Uri("http://xmlns.com/foaf/0.1/age"))); - Assert.AreEqual(27, age); - - turtle = @"@base . -@prefix rdf: . -@prefix rdfs: . -@prefix foaf: . -@prefix rel: . - -<#green-goblin> - rel:enemyOf <#spiderman> ; - a foaf:Person ; # in the context of the Marvel universe - foaf:name ""Green Gobo"" . -<#spiderman> - rel:enemyOf <#green-goblin> ; - a foaf:Person ; - foaf:name ""Spiderman"", ""Человек-паук""@ru ."; - - using (Stream s = GenerateStreamFromString(turtle)) - { - Assert.IsTrue(Model.Read(s, RdfSerializationFormat.Turtle, false)); - } - - r = Model.GetResource(new Uri("http://example.org/#green-goblin")); - name = r.GetValue(new Property(new Uri("http://xmlns.com/foaf/0.1/name"))) as string; - Assert.AreEqual("Green Gobo", name); - } - - [Test] - public void ReadLocalizedFromStringTest() - { - string turtle = @" -@base . -@prefix rdf: . -@prefix rdfs: . -@prefix foaf: . - - -<#spiderman> a foaf:Person ; - foaf:name ""Spiderman"", ""Человек-паук""@ru . -"; - - using (Stream s = GenerateStreamFromString(turtle)) - { - Assert.IsTrue(Model.Read(s, RdfSerializationFormat.Turtle, false)); - } - - IResource r = Model.GetResource(new Uri("http://example.org/#spiderman")); - - List values = r.ListValues(new Property(new Uri("http://xmlns.com/foaf/0.1/name"))).ToList(); - - var b = values.Any(); - - Assert.AreEqual(2, values.Count); - Assert.IsTrue(values.Contains("Spiderman")); - Assert.IsTrue(values.OfType>().Any(t => t.Item1 == "Человек-паук" && t.Item2 == "ru")); - } - - public Stream GenerateStreamFromString(string s) - { - MemoryStream stream = new MemoryStream(); - StreamWriter writer = new StreamWriter(stream); - writer.Write(s); - writer.Flush(); - stream.Position = 0; - return stream; - } - } -} +// LICENSE: +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// +// AUTHORS: +// +// Moritz Eberl +// Sebastian Faubel +// +// Copyright (c) Semiodesk GmbH 2015-2019 + +using NUnit.Framework; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; + +namespace Semiodesk.Trinity.Test.Stardog +{ + [TestFixture] + class StardogModelTest : SetupClass + { + IStore Store; + IModel Model; + + [SetUp] + public void SetUp() + { + Store = StoreFactory.CreateStore("provider=stardog;host=http://localhost:5820;uid=admin;pw=admin;sid=test"); + + Uri testModel = new Uri("ex:Test"); + + Model = Store.CreateModel(testModel); + Model.Clear(); + } + + [TearDown] + public void TearDown() + { + Store.Dispose(); + Store = null; + } + + [Test] + public void CreateResourceTest() + { + var literal = "var"; + var resourceUri = new Uri("ex:test:resource"); + var property = new Property(new Uri("ex:test:property")); + var res = Model.CreateResource(resourceUri); + res.AddProperty(property, literal); + res.Commit(); + + IResource result = Model.GetResource(resourceUri); + Assert.AreEqual(resourceUri, result.Uri); + + List properties = result.ListProperties().ToList(); + Assert.AreEqual(1, properties.Count); + Assert.AreEqual(property, properties[0]); + Assert.AreEqual(literal, result.GetValue(property)); + } + + [Test] + public void ModifyResourceTest() + { + var literal = "var"; + var resourceUri = new Uri("ex:test:resource"); + var property = new Property(new Uri("ex:test:property")); + var res = Model.CreateResource(resourceUri); + res.AddProperty(property, literal); + res.Commit(); + + IResource result = Model.GetResource(resourceUri); + + result.RemoveProperty(property, literal); + literal = "var2"; + result.AddProperty(property, literal); + result.Commit(); + + result = Model.GetResource(resourceUri); + + Assert.AreEqual(resourceUri, result.Uri); + List properties = result.ListProperties().ToList(); + Assert.AreEqual(1, properties.Count); + Assert.AreEqual(property, properties[0]); + Assert.AreEqual(literal, result.GetValue(property)); + } + + [Test] + public void RemoveResourceTest() + { + var literal = "var"; + var resourceUri = new Uri("ex:test:resource"); + var property = new Property(new Uri("ex:test:property")); + var res = Model.CreateResource(resourceUri); + res.AddProperty(property, literal); + res.Commit(); + + IResource result = Model.GetResource(resourceUri); + + Model.DeleteResource(result); + + Assert.IsFalse(Model.ContainsResource(result)); + } + + [Test] + public void GetResourceTest() + { + var literal = "var"; + var resourceUri = new Uri("ex:test:resource"); + var property = new Property(new Uri("ex:test:property")); + var res = Model.CreateResource(resourceUri); + res.AddProperty(property, literal); + res.Commit(); + + IResource result = Model.GetResource(resourceUri); + Assert.AreEqual(resourceUri, result.Uri); + List properties = result.ListProperties().ToList(); + Assert.AreEqual(1, properties.Count); + Assert.AreEqual(property, properties[0]); + Assert.AreEqual(literal, result.GetValue(property)); + } + + [Test] + public void UpdateResourceTest() + { + Property property = new Property(new Uri("http://example.org/MyProperty")); + Uri resourceUri = new Uri("http://example.org/MyResource"); + + IResource r1 = Model.CreateResource(resourceUri); + r1.AddProperty(property, 123); + r1.AddProperty(property, "in the jungle"); + r1.Commit(); + + // Try to update resource with different properties then persisted + Resource r2 = new Resource(resourceUri); + r2.Model = Model; + r2.AddProperty(property, "in the jengle"); + r2.Commit(); + + var actual = Model.GetResource(resourceUri); + Assert.AreEqual(r2, actual); + + try + { + // Try to update resource without properties + Resource r3 = new Resource(resourceUri); + r3.Model = Model; + r3.Commit(); + + Assert.Fail(); + } + catch + { + // We're OK. + } + } + + [Test] + public void ContainsResourceTest() + { + var literal = "var"; + var resourceUri = new Uri("ex:test:resource"); + var property = new Property(new Uri("ex:test:property")); + var res = Model.CreateResource(resourceUri); + res.AddProperty(property, literal); + res.Commit(); + + IResource result = Model.GetResource(resourceUri); + Assert.AreEqual(true, Model.ContainsResource(new UriRef("ex:test:resource"))); + } + + [Test] + public void AskQueryTest() + { + var literal = "var"; + var resourceUri = new Uri("ex:test:resource"); + var property = new Property(new Uri("ex:test:property")); + var res = Model.CreateResource(resourceUri); + res.AddProperty(property, literal); + res.Commit(); + + SparqlQuery q = new SparqlQuery("ASK { ?p ?o . }"); + var b = Model.ExecuteQuery(q); + } + + [Test] + public void ReadFromStringTest() + { + string turtle = @"@base . +@prefix rdf: . +@prefix rdfs: . +@prefix foaf: . +@prefix rel: . + +<#green-goblin> + rel:enemyOf <#spiderman> ; + a foaf:Person ; # in the context of the Marvel universe + foaf:name ""Green Goblin"" . + +<#spiderman> + rel:enemyOf <#green-goblin> ; + a foaf:Person ; + foaf:name ""Spiderman"", ""Человек-паук""@ru ."; + + using (Stream s = GenerateStreamFromString(turtle)) + { + Assert.IsTrue(Model.Read(s, RdfSerializationFormat.Turtle, false)); + } + + IResource r = Model.GetResource(new Uri("http://example.org/#green-goblin")); + string name = r.GetValue(new Property(new Uri("http://xmlns.com/foaf/0.1/name"))) as string; + Assert.AreEqual("Green Goblin", name); + + string turtle2 = @"@base . +@prefix xsd: . +@prefix foaf: . + +<#green-goblin> foaf:age ""27""^^xsd:int ."; + + using (Stream s = GenerateStreamFromString(turtle2)) + { + Assert.IsTrue(Model.Read(s, RdfSerializationFormat.Turtle, true)); + } + + r = Model.GetResource(new Uri("http://example.org/#green-goblin")); + int age = (int)r.GetValue(new Property(new Uri("http://xmlns.com/foaf/0.1/age"))); + Assert.AreEqual(27, age); + + turtle = @"@base . +@prefix rdf: . +@prefix rdfs: . +@prefix foaf: . +@prefix rel: . + +<#green-goblin> + rel:enemyOf <#spiderman> ; + a foaf:Person ; # in the context of the Marvel universe + foaf:name ""Green Gobo"" . +<#spiderman> + rel:enemyOf <#green-goblin> ; + a foaf:Person ; + foaf:name ""Spiderman"", ""Человек-паук""@ru ."; + + using (Stream s = GenerateStreamFromString(turtle)) + { + Assert.IsTrue(Model.Read(s, RdfSerializationFormat.Turtle, false)); + } + + r = Model.GetResource(new Uri("http://example.org/#green-goblin")); + name = r.GetValue(new Property(new Uri("http://xmlns.com/foaf/0.1/name"))) as string; + Assert.AreEqual("Green Gobo", name); + } + + [Test] + public void ReadLocalizedFromStringTest() + { + string turtle = @" +@base . +@prefix rdf: . +@prefix rdfs: . +@prefix foaf: . + + +<#spiderman> a foaf:Person ; + foaf:name ""Spiderman"", ""Человек-паук""@ru . +"; + + using (Stream s = GenerateStreamFromString(turtle)) + { + Assert.IsTrue(Model.Read(s, RdfSerializationFormat.Turtle, false)); + } + + IResource r = Model.GetResource(new Uri("http://example.org/#spiderman")); + + List values = r.ListValues(new Property(new Uri("http://xmlns.com/foaf/0.1/name"))).ToList(); + + var b = values.Any(); + + Assert.AreEqual(2, values.Count); + Assert.IsTrue(values.Contains("Spiderman")); + Assert.IsTrue(values.OfType>().Any(t => t.Item1 == "Человек-паук" && t.Item2 == "ru")); + } + + public Stream GenerateStreamFromString(string s) + { + MemoryStream stream = new MemoryStream(); + StreamWriter writer = new StreamWriter(stream); + writer.Write(s); + writer.Flush(); + stream.Position = 0; + return stream; + } + } +} diff --git a/tests/Trinity.Tests.Stardog/Program.cs b/tests/Trinity.Tests.Stardog/Program.cs new file mode 100644 index 0000000..a2bf696 --- /dev/null +++ b/tests/Trinity.Tests.Stardog/Program.cs @@ -0,0 +1,62 @@ +// LICENSE: +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// +// AUTHORS: +// +// Moritz Eberl +// Sebastian Faubel +// +// Copyright (c) Semiodesk GmbH 2015-2019 + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Reflection; + +namespace Semiodesk.Trinity.Test.Stardog +{ + class TestRunner + { + [STAThread] + static void Main(string[] args) + { + string[] nunitArg = new string[args.Count() + 1]; + + int i = 0; + foreach (string arg in args) + { + nunitArg[i] = arg; + i++; + } + + nunitArg[i] = Assembly.GetExecutingAssembly().Location; + + if (i == 0) + { + // NUnit.AppEntry.Main(nunitArg); + } + else + { + // NUnit.ConsoleRunner.Runner.Main(nunitArg); + } + } + } +} diff --git a/Trinity.Tests/Stardog/ResourceMappingTest.cs b/tests/Trinity.Tests.Stardog/ResourceMappingTest.cs similarity index 90% rename from Trinity.Tests/Stardog/ResourceMappingTest.cs rename to tests/Trinity.Tests.Stardog/ResourceMappingTest.cs index c9eb135..545f68e 100644 --- a/Trinity.Tests/Stardog/ResourceMappingTest.cs +++ b/tests/Trinity.Tests.Stardog/ResourceMappingTest.cs @@ -1,1045 +1,1147 @@ -// LICENSE: -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. -// -// AUTHORS: -// -// Moritz Eberl -// Sebastian Faubel -// -// Copyright (c) Semiodesk GmbH 2015-2019 - -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Globalization; -using Semiodesk.Trinity; -using System.Collections.ObjectModel; -using System.Reflection; -using NUnit.Framework; -using dotNetRDFStore.Test; -using System.IO; -using Semiodesk.Trinity.Ontologies; -using Semiodesk.Trinity.Test; -#if NET35 -using Semiodesk.Trinity.Utility; -#endif - - -namespace Semiodesk.Trinity.Test.Stardog -{ - - [TestFixture] - public class StardogResourceMappingTest - { - public static bool RegisteredOntology = false; - - IStore Store; - IModel Model; - - [SetUp] - public void SetUp() - { - if (ResourceMappingTest.RegisteredOntology == false) - { - OntologyDiscovery.AddAssembly(Assembly.GetExecutingAssembly()); - MappingDiscovery.RegisterAssembly(Assembly.GetExecutingAssembly()); - ResourceMappingTest.RegisteredOntology = true; - } - - Store = StoreFactory.CreateStore("provider=stardog;host=http://localhost:5820;uid=admin;pw=admin;sid=test"); - - Uri testModel = new Uri("ex:Test"); - Model = Store.CreateModel(testModel); - } - - IModel GetModel() - { - return Model; - } - - [TearDown] - public void TearDown() - { - Store.Dispose(); - } - - //[Test] - // This test does not run, but it needs to. - public void AddUnmappedType() - { - IModel m = GetModel(); - m.Clear(); - - Uri t1Uri = new Uri("semio:test:testInstance1"); - Uri t2Uri = new Uri("semio:test:testInstance2"); - MappingTestClass t1 = m.CreateResource(t1Uri); - - IResource r = m.CreateResource(t2Uri); - r.AddProperty(rdf.type, TestOntology.TestClass2); - - t1.AddProperty(TestOntology.uniqueResourceTest, r); - t1.AddProperty(TestOntology.resourceTest, r); - - Assert.IsNull(t1.uniqueResourceTest); - Assert.AreEqual(0, t1.resourceTest.Count); - - m.Clear(); - } - - [Test] - public void RemoveTypeTest() - { - Assert.Inconclusive("This test poses an interesting problem. If we remove the type of a mapped resource, how should we handle that."); - IModel m = GetModel(); - m.Clear(); - - Uri t1Uri = new Uri("semio:test:testInstance1"); - MappingTestClass t1 = m.CreateResource(t1Uri); - - t1.RemoveProperty(rdf.type, TestOntology.TestClass); - - Assert.False(t1.ListProperties().Contains(rdf.type)); - - - m.Clear(); - } - - [Test] - public void AddRemoveIntegerTest() - { - IModel m = GetModel(); - m.Clear(); - - Uri t1Uri = new Uri("semio:test:testInstance1"); - MappingTestClass t1 = m.CreateResource(t1Uri); - - // Add value using the mapping interface - int value = 1; - t1.uniqueIntTest = value; - - t1.Commit(); - - MappingTestClass t_actual = m.GetResource(t1Uri); - - // Test if value was stored - Assert.AreEqual(value, t_actual.uniqueIntTest); - - - // Test if property is present - IEnumerable l = t_actual.ListProperties(); - Assert.True(l.Contains(TestOntology.uniqueIntTest)); - Assert.AreEqual(2, l.Count()); - - // Test if ListValues works - Assert.AreEqual(typeof(int), t_actual.ListValues(TestOntology.uniqueIntTest).First().GetType()); - Assert.AreEqual(value, t_actual.ListValues(TestOntology.uniqueIntTest).First()); - - // Remove with RemoveProperty - t1.RemoveProperty(TestOntology.uniqueIntTest, value); - t1.Commit(); - - t_actual = m.GetResource(t1Uri); - - // Test if ListProperties works - l = t_actual.ListProperties(); - Assert.False(l.Contains(TestOntology.uniqueIntTest)); - - // Test if ListValues works - Assert.AreEqual(0, t_actual.ListValues(TestOntology.uniqueIntTest).Count()); - - m.Clear(); - } - - [Test] - public void AddRemoveIntegerListTest() - { - IModel m = GetModel(); - m.Clear(); - Uri t1Uri = new Uri("semio:test:testInstance1"); - MappingTestClass t1 = m.CreateResource(t1Uri); - // Add value using the mapping interface - int value = 2; - t1.intTest.Add(value); - - t1.Commit(); - - MappingTestClass t_actual = m.GetResource(t1Uri); - - // Test if value was stored - Assert.AreEqual(1, t_actual.intTest.Count()); - Assert.AreEqual(value, t_actual.intTest[0]); - - // Test if property is present - IEnumerable l = t_actual.ListProperties(); - Assert.True(l.Contains(TestOntology.intTest)); - Assert.AreEqual(2, l.Count()); - - // Test if ListValues works - Assert.AreEqual(typeof(int), t_actual.ListValues(TestOntology.intTest).First().GetType()); - Assert.AreEqual(value, t_actual.ListValues(TestOntology.intTest).First()); - - // Add another value - int value2 = -18583; - t1.intTest.Add(value2); - t1.Commit(); - t_actual = m.GetResource(t1Uri); - - - // Test if value was stored - Assert.AreEqual(2, t_actual.intTest.Count()); - Assert.IsTrue(t_actual.intTest.Contains(value)); - Assert.IsTrue(t_actual.intTest.Contains(value2)); - - // Test if property is present - l = t_actual.ListProperties(); - Assert.True(l.Contains(TestOntology.intTest)); - Assert.AreEqual(2, l.Count()); - - // Test if ListValues works - var res = t_actual.ListValues(TestOntology.intTest).ToList(); - Assert.AreEqual(typeof(int), res[0].GetType()); - Assert.AreEqual(typeof(int), res[1].GetType()); - Assert.IsTrue(res.Contains(value)); - Assert.IsTrue(res.Contains(value2)); - - // Remove value from mapped list - t1.intTest.Remove(value2); - t1.Commit(); - t_actual = m.GetResource(t1Uri); - - // Test if removed - Assert.AreEqual(1, t_actual.intTest.Count()); - - // Test if ListProperties works - l = t_actual.ListProperties(); - Assert.True(l.Contains(TestOntology.intTest)); - - // Test if first added property is still present - Assert.AreEqual(typeof(int), t_actual.ListValues(TestOntology.intTest).First().GetType()); - Assert.AreEqual(value, t_actual.ListValues(TestOntology.intTest).First()); - - t1.intTest.Remove(value); - t1.Commit(); - t_actual = m.GetResource(t1Uri); - - l = t_actual.ListProperties(); - Assert.False(l.Contains(TestOntology.intTest)); - - // Test if ListValues works - Assert.AreEqual(0, t_actual.ListValues(TestOntology.intTest).Count()); - - m.Clear(); - } - - /// - /// This Test fails because the datatype "unsigned int" is not stored correctly in the database. - /// To be more specific the xsd type is missing although it is given at the insert. - /// - //[Test] - public void AddRemoveUnsignedIntegerTest() - { - IModel m = GetModel(); - m.Clear(); - Uri t1Uri = new Uri("semio:test:testInstance1"); - MappingTestClass t1 = m.CreateResource(t1Uri); - - // Add value using the mapping interface - uint uValue = 1; - t1.uniqueUintTest = uValue; - - t1.Commit(); - - MappingTestClass t_actual = m.GetResource(t1Uri); - - // Test if value was stored - Assert.AreEqual(uValue, t_actual.uniqueUintTest); - - - // Test if property is present - var l = t1.ListProperties(); - Assert.True(l.Contains(TestOntology.uniqueUintTest)); - Assert.AreEqual(2, l.Count()); - - // Test if ListValues works - Assert.AreEqual(typeof(uint), t_actual.ListValues(TestOntology.uniqueUintTest).First().GetType()); - Assert.AreEqual(uValue, t_actual.ListValues(TestOntology.uniqueUintTest).First()); - - // Remove with RemoveProperty - t1.RemoveProperty(TestOntology.uniqueUintTest, uValue); - t1.Commit(); - - t_actual = m.GetResource(t1Uri); - - // Test if ListProperties works - l = (List)t_actual.ListProperties(); - Assert.False(l.Contains(TestOntology.uniqueUintTest)); - - // Test if ListValues works - Assert.AreEqual(0, t_actual.ListValues(TestOntology.uniqueUintTest).Count()); - - m.Clear(); - } - - //[Test] - public void AddRemoveUnsignedIntegerListTest() - { - IModel m = GetModel(); - m.Clear(); - Uri t1Uri = new Uri("semio:test:testInstance1"); - MappingTestClass t1 = m.CreateResource(t1Uri); - - // Add value using the mapping interface - uint uValue = 2; - t1.uintTest.Add(uValue); - - t1.Commit(); - MappingTestClass t_actual = m.GetResource(t1Uri); - - // Test if value was stored - Assert.AreEqual(1, t_actual.uintTest.Count()); - Assert.AreEqual(uValue, t_actual.uintTest[0]); - - - // Test if property is present - var l = t1.ListProperties(); - Assert.True(l.Contains(TestOntology.uintTest)); - Assert.AreEqual(2, l.Count()); - - // Test if ListValues works - Assert.AreEqual(typeof(uint), t_actual.ListValues(TestOntology.uintTest).First().GetType()); - Assert.AreEqual(uValue, t_actual.ListValues(TestOntology.uintTest).First()); - - // Remove value from mapped list - t1.uintTest.Remove(uValue); - t1.Commit(); - - t_actual = m.GetResource(t1Uri); - - // Test if removed - Assert.AreEqual(0, t_actual.uintTest.Count()); - - // Test if ListProperties works - l = (List)t_actual.ListProperties(); - Assert.False(l.Contains(TestOntology.uintTest)); - - // Test if ListValues works - Assert.AreEqual(0, t_actual.ListValues(TestOntology.uintTest).Count()); - m.Clear(); - } - - [Test] - public void AddRemoveStringTest() - { - IModel m = GetModel(); - m.Clear(); - Uri t1Uri = new Uri("semio:test:testInstance1"); - MappingTestClass t1 = m.CreateResource(t1Uri); - - - // Add value using the mapping interface - string strValue = "Hallo Welt!"; - t1.uniqueStringTest = strValue; - t1.Commit(); - - MappingTestClass t_actual = m.GetResource(t1Uri); - - // Test if value was stored - Assert.AreEqual(strValue, t_actual.uniqueStringTest); - - - // Test if property is present - var l = t_actual.ListProperties(); - Assert.True(l.Contains(TestOntology.uniqueStringTest)); - Assert.AreEqual(2, l.Count()); - - var x = t_actual.HasProperty(TestOntology.uniqueStringTest); - Assert.IsTrue(x); - - x = t_actual.HasProperty(TestOntology.uniqueStringTest, strValue); - Assert.IsTrue(x); - - // Test if ListValues works - Assert.AreEqual(typeof(string), t_actual.ListValues(TestOntology.uniqueStringTest).First().GetType()); - Assert.AreEqual(strValue, t1.ListValues(TestOntology.uniqueStringTest).First()); - - // Remove with RemoveProperty - t1.RemoveProperty(TestOntology.uniqueStringTest, strValue); - t1.Commit(); - t_actual = m.GetResource(t1Uri); - - // Test if ListProperties works - l = t_actual.ListProperties(); - Assert.False(l.Contains(TestOntology.uniqueStringTest)); - - x = t_actual.HasProperty(TestOntology.uniqueStringTest); - Assert.IsFalse(x); - - x = t_actual.HasProperty(TestOntology.uniqueStringTest, strValue); - Assert.IsFalse(x); - - // Test if ListValues works - Assert.AreEqual(0, t_actual.ListValues(TestOntology.uniqueStringTest).Count()); - m.Clear(); - } - - [Test] - public void AddRemoveLocalizedStringTest() - { - IModel m = GetModel(); - m.Clear(); - - Uri t1Uri = new Uri("semio:test:testInstance1"); - MappingTestClass t1 = m.CreateResource(t1Uri); - t1.AddProperty(TestOntology.uniqueStringTest, "Hallo Welt", "de"); - t1.Commit(); - - var t1ref = m.GetResource(t1Uri); - var values = t1ref.ListValues(TestOntology.uniqueStringTest); - - Assert.IsTrue(values.OfType>().Any(t => t.Item1 == "Hallo Welt" && t.Item2 == "de")); - - t1.RemoveProperty(TestOntology.uniqueStringTest, "Hallo Welt", "de"); - t1.Commit(); - - t1ref = m.GetResource(t1Uri); - values = t1ref.ListValues(TestOntology.uniqueStringTest); - - Assert.AreEqual(0, values.Count()); - } - - - [Test] - public void AddRemoveStringListTest() - { - IModel m = GetModel(); - m.Clear(); - - string value = "(╯°□°)╯︵ ┻━┻"; - - // Add value using the mapping interface - Uri u0 = new Uri("urn:id:0"); - MappingTestClass r0 = m.CreateResource(u0); - r0.stringTest.Add(value); - r0.Commit(); - - // Test if value was stored. - MappingTestClass r1 = m.GetResource(u0); - Assert.AreEqual(1, r1.stringTest.Count()); - Assert.AreEqual(value, r1.stringTest[0]); - - // Test if HasProperty works. - Assert.IsTrue(r1.HasProperty(TestOntology.stringTest)); - Assert.IsTrue(r1.HasProperty(TestOntology.stringTest, value)); - - // Test if ListValues works. - Assert.AreEqual(typeof(string), r1.ListValues(TestOntology.stringTest).First().GetType()); - Assert.AreEqual(value, r1.ListValues(TestOntology.stringTest).First()); - - // Test if property is present. - var properties = r1.ListProperties(); - Assert.True(properties.Contains(TestOntology.stringTest)); - Assert.AreEqual(2, properties.Count()); - - // Remove value from mapped list. - r0.stringTest.Remove(value); - r0.Commit(); - - r1 = m.GetResource(u0); - - // Test if removed - Assert.AreEqual(0, r1.stringTest.Count()); - - // Test if ListProperties works - properties = r1.ListProperties(); - CollectionAssert.DoesNotContain(properties, TestOntology.stringTest); - - // Test if HasProperty works. - Assert.IsFalse(r1.HasProperty(TestOntology.stringTest)); - Assert.IsFalse(r1.HasProperty(TestOntology.stringTest, value)); - - // Test if ListValues works - Assert.AreEqual(0, r1.ListValues(TestOntology.stringTest).Count()); - - m.Clear(); - } - - [Test] - public void AddRemoveBoolTest() - { - IModel m = GetModel(); - m.Clear(); - Uri t1Uri = new Uri("semio:test:testInstance1"); - MappingTestClass t1 = m.CreateResource(t1Uri); - - - // Add value using the mapping interface - bool bValue = true; - t1.uniqueBoolTest = bValue; - - t1.Commit(); - - MappingTestClass t_actual = m.GetResource(t1Uri); - - // Test if value was stored - Assert.AreEqual(bValue, t_actual.uniqueBoolTest); - - - // Test if property is present - var l = t_actual.ListProperties(); - Assert.True(l.Contains(TestOntology.uniqueBoolTest)); - Assert.AreEqual(2, l.Count()); - - // Test if ListValues works - Assert.AreEqual(typeof(bool), t_actual.ListValues(TestOntology.uniqueBoolTest).First().GetType()); - Assert.AreEqual(bValue, t_actual.ListValues(TestOntology.uniqueBoolTest).First()); - - // Remove with RemoveProperty - t1.RemoveProperty(TestOntology.uniqueBoolTest, bValue); - t1.Commit(); - - t_actual = m.GetResource(t1Uri); - - // Test if ListProperties works - l = t_actual.ListProperties(); - Assert.False(l.Contains(TestOntology.uniqueBoolTest)); - - // Test if ListValues works - Assert.AreEqual(0, t_actual.ListValues(TestOntology.uniqueBoolTest).Count()); - - m.Clear(); - } - - [Test] - public void AddRemoveBoolListTest() - { - IModel m = GetModel(); - m.Clear(); - Uri t1Uri = new Uri("semio:test:testInstance1"); - MappingTestClass t1 = m.CreateResource(t1Uri); - - - // Add value using the mapping interface - bool value = true; - t1.boolTest.Add(value); - - t1.Commit(); - MappingTestClass t_actual = m.GetResource(t1Uri); - - // Test if value was stored - Assert.AreEqual(1, t_actual.boolTest.Count()); - Assert.AreEqual(value, t_actual.boolTest[0]); - - - // Test if property is present - var l = t_actual.ListProperties(); - Assert.True(l.Contains(TestOntology.boolTest)); - Assert.AreEqual(2, l.Count()); - - // Test if ListValues works - Assert.AreEqual(typeof(bool), t_actual.ListValues(TestOntology.boolTest).First().GetType()); - Assert.AreEqual(value, t_actual.ListValues(TestOntology.boolTest).First()); - - // Remove value from mapped list - t1.boolTest.Remove(value); - t1.Commit(); - t_actual = m.GetResource(t1Uri); - - // Test if removed - Assert.AreEqual(0, t_actual.boolTest.Count()); - - // Test if ListProperties works - l = t_actual.ListProperties(); - Assert.False(l.Contains(TestOntology.boolTest)); - - // Test if ListValues works - Assert.AreEqual(0, t_actual.ListValues(TestOntology.boolTest).Count()); - - m.Clear(); - } - - /// - /// Note: - /// Datetime precision in Virtuoso is not as high as native .net datetime precision. - /// - [Test] - public void AddRemoveDateTimeTest() - { - IModel m = GetModel(); - m.Clear(); - Uri t1Uri = new Uri("semio:test:testInstance1"); - MappingTestClass t1 = m.CreateResource(t1Uri); - - - // Add value using the mapping interface - DateTime Value = new DateTime(2012, 8, 15, 12, 3, 55, DateTimeKind.Local); - t1.uniqueDateTimeTest = Value; - t1.Commit(); - - MappingTestClass t_actual = m.GetResource(t1Uri); - - // Test if value was stored - Assert.AreEqual(Value.ToUniversalTime(), t_actual.uniqueDateTimeTest.ToUniversalTime()); - - - // Test if property is present - var l = t_actual.ListProperties(); - Assert.True(l.Contains(TestOntology.uniqueDatetimeTest)); - Assert.AreEqual(2, l.Count()); - - // Test if ListValues works - Assert.AreEqual(typeof(DateTime), t_actual.ListValues(TestOntology.uniqueDatetimeTest).First().GetType()); - DateTime time = (DateTime)t_actual.ListValues(TestOntology.uniqueDatetimeTest).First(); - Assert.AreEqual(Value.ToUniversalTime(), time.ToUniversalTime()); - - // Remove with RemoveProperty - t1.RemoveProperty(TestOntology.uniqueDatetimeTest, Value); - t1.Commit(); - - t_actual = m.GetResource(t1Uri); - - // Test if ListProperties works - l = t_actual.ListProperties(); - Assert.False(l.Contains(TestOntology.uniqueBoolTest)); - - // Test if ListValues works - Assert.AreEqual(0, t_actual.ListValues(TestOntology.uniqueDatetimeTest).Count()); - - Assert.IsTrue(DateTime.TryParse("2013-01-21T16:27:23.000Z", out DateTime t)); - - t1.uniqueDateTimeTest = t; - t1.Commit(); - - t_actual = m.GetResource(t1Uri); - Assert.AreEqual(t1.uniqueDateTimeTest.ToUniversalTime(), t_actual.uniqueDateTimeTest.ToUniversalTime()); - - m.Clear(); - } - - [Test] - public void TimeZoneTest() - { - IModel m = GetModel(); - m.Clear(); - - Uri t1Uri = new Uri("semio:test:testInstance1"); - - Assert.IsTrue(DateTime.TryParse("2013-01-21T16:27:23.000Z", out DateTime t)); - - MappingTestClass t1 = m.CreateResource(t1Uri); - t1.uniqueDateTimeTest = t; - t1.Commit(); - - MappingTestClass t_actual = m.GetResource(t1Uri); - - Assert.AreEqual(t.ToUniversalTime(), t_actual.uniqueDateTimeTest); - } - - [Test] - public void AddRemoveDateTimeListTest() - { - IModel m = GetModel(); - m.Clear(); - Uri t1Uri = new Uri("semio:test:testInstance1"); - MappingTestClass t1 = m.CreateResource(t1Uri); - - - // Add value using the mapping interface - DateTime value = new DateTime(2012, 8, 15, 12, 3, 55, DateTimeKind.Local); - t1.dateTimeTest.Add(value); - t1.Commit(); - MappingTestClass t_actual = m.GetResource(t1Uri); - - // Test if value was stored - Assert.AreEqual(1, t1.dateTimeTest.Count()); - Assert.AreEqual(value, t1.dateTimeTest[0]); - - - // Test if property is present - var l = t1.ListProperties(); - Assert.True(l.Contains(TestOntology.datetimeTest)); - Assert.AreEqual(2, l.Count()); - - // Test if ListValues works - Assert.AreEqual(typeof(DateTime), t_actual.ListValues(TestOntology.datetimeTest).First().GetType()); - DateTime time = (DateTime)t_actual.ListValues(TestOntology.datetimeTest).First(); - Assert.AreEqual(value.ToUniversalTime(), time.ToUniversalTime()); - - // Remove value from mapped list - t1.dateTimeTest.Remove(value); - t1.Commit(); - - t_actual = m.GetResource(t1Uri); - - // Test if removed - Assert.AreEqual(0, t_actual.dateTimeTest.Count()); - - // Test if ListProperties works - l = t_actual.ListProperties(); - Assert.False(l.Contains(TestOntology.datetimeTest)); - - // Test if ListValues works - Assert.AreEqual(0, t_actual.ListValues(TestOntology.datetimeTest).Count()); - } - - [Test] - public void AddRemoveResourceTest() - { - IModel m = GetModel(); - m.Clear(); - Uri t1Uri = new Uri("semio:test:testInstance1"); - MappingTestClass t1 = m.CreateResource(t1Uri); - - Uri testClass2Uri = new Uri("semio:test:testInstance2"); - MappingTestClass2 t2 = new MappingTestClass2(testClass2Uri); - - t1.uniqueResourceTest = t2; - t1.Commit(); - MappingTestClass t_actual = m.GetResource(t1Uri); - - - Assert.AreEqual(t2, t_actual.uniqueResourceTest); - - var l = t_actual.ListProperties().ToList(); - Assert.Contains(TestOntology.uniqueResourceTest, l); - Assert.AreEqual(2, l.Count()); - - var x = t_actual.HasProperty(TestOntology.uniqueResourceTest); - Assert.IsTrue(x); - - x = t_actual.HasProperty(TestOntology.uniqueResourceTest, t2); - Assert.IsTrue(x); - - t_actual = m.GetResource(t1Uri); - var values = t_actual.ListValues().ToList(); - Assert.Contains(new Tuple(TestOntology.uniqueResourceTest, t2), values); - - - Assert.IsTrue(typeof(Resource).IsAssignableFrom(t_actual.ListValues(TestOntology.uniqueResourceTest).First().GetType())); - //Assert.AreEqual(t2, t_actual.ListValues(TestOntology.uniqeResourceTest).First()); - - t1.RemoveProperty(TestOntology.uniqueResourceTest, t2); - t1.Commit(); - t_actual = m.GetResource(t1Uri); - - - l = t_actual.ListProperties().ToList(); - Assert.False(l.Contains(TestOntology.uniqueResourceTest)); - - x = t_actual.HasProperty(TestOntology.uniqueResourceTest); - Assert.IsFalse(x); - - x = t_actual.HasProperty(TestOntology.uniqueResourceTest, t2); - Assert.IsFalse(x); - - // Test if ListValues works - Assert.AreEqual(0, t_actual.ListValues(TestOntology.uniqueResourceTest).Count()); - } - - [Test] - public void MappedResourceValueTest() - { - IModel m = GetModel(); - m.Clear(); - Uri t1Uri = new Uri("semio:test:testInstance1"); - MappingTestClass t1 = m.CreateResource(t1Uri); - - Uri testClass2Uri = new Uri("semio:test:testInstance2"); - MappingTestClass2 t2 = m.CreateResource(testClass2Uri); - t2.uniqueStringTest = "TestString"; - t2.Commit(); - - t1.uniqueResourceTest = t2; - t1.Commit(); - MappingTestClass t_actual = m.GetResource(t1Uri); - Assert.AreEqual("TestString", t_actual.uniqueResourceTest.uniqueStringTest); - - } - - - [Test] - public void AddRemoveResourceListTest() - { - IModel m = GetModel(); - m.Clear(); - Uri t1Uri = new Uri("semio:test:testInstance1"); - MappingTestClass t1 = m.CreateResource(t1Uri); - - - // Add value using the mapping interface - MappingTestClass2 t2 = new MappingTestClass2(new Uri("semio:test:testInstance2")); - t1.resourceTest.Add(t2); - t1.Commit(); - MappingTestClass t_actual = m.GetResource(t1Uri); - - Assert.AreEqual(1, t_actual.resourceTest.Count); - Assert.AreEqual(t2, t_actual.resourceTest[0]); - - var l = t_actual.ListProperties(); - Assert.AreEqual(2, l.Count()); - Assert.IsTrue(l.Contains(TestOntology.resourceTest)); - - var x = t_actual.HasProperty(TestOntology.resourceTest); - Assert.IsTrue(x); - - x = t_actual.HasProperty(TestOntology.resourceTest, t2); - Assert.IsTrue(x); - - var v = t_actual.ListValues(TestOntology.resourceTest); - Assert.AreEqual(2, l.Count()); - Assert.IsTrue(v.Contains(t2)); - - Assert.AreEqual(t2.GetType(), v.First().GetType()); - - t1.resourceTest.Remove(t2); - t1.Commit(); - t_actual = m.GetResource(t1Uri); - - x = t_actual.HasProperty(TestOntology.resourceTest); - Assert.IsFalse(x); - - x = t_actual.HasProperty(TestOntology.resourceTest, t2); - Assert.IsFalse(x); - - - Assert.AreEqual(0, t_actual.resourceTest.Count); - } - - - [Test] - public void LazyLoadResourceTest() - { - MappingDiscovery.RegisterCallingAssembly(); - IModel model = GetModel(); - model.Clear(); - - Uri testRes1 = new Uri("semio:test:testInstance"); - Uri testRes2 = new Uri("semio:test:testInstance2"); - MappingTestClass t1 = model.CreateResource(testRes1); - MappingTestClass2 t2 = model.CreateResource(testRes2); - - t1.uniqueResourceTest = t2; - // TODO: Debug messsage, because t2 was not commited - t1.Commit(); - - MappingTestClass p1 = model.GetResource(testRes1); - //Assert.AreEqual(null, p1.uniqueResourceTest); - - var v = p1.ListValues(TestOntology.uniqueResourceTest); - Assert.AreEqual(t2.Uri.OriginalString, (v.First() as IResource).Uri.OriginalString); - - model.DeleteResource(t1); - - model.DeleteResource(t2); - - t1 = model.CreateResource(testRes1); - - t2 = model.CreateResource(new Uri("semio:test:testInstance2")); - t2.Commit(); - - t1.uniqueResourceTest = t2; - t1.Commit(); - - IResource tr1 = model.GetResource(testRes1, t1.GetType()) as Resource; - Assert.AreEqual(typeof(MappingTestClass), tr1.GetType()); - - Assert.AreEqual(t2, p1.uniqueResourceTest); - - model.Clear(); - } - - [Test] - public void MappingTypeTest() - { - IModel m = GetModel(); - m.Clear(); - - Uri t1Uri = new Uri("semio:test:testInstance1"); - MappingTestClass2 t1 = m.CreateResource(t1Uri); - t1.uniqueStringTest = "testing 1"; - t1.Commit(); - - Uri t2Uri = new Uri("semio:test:testInstance2"); - MappingTestClass3 t2 = m.CreateResource(t2Uri); - t2.uniqueStringTest = "testing 2"; - t2.Commit(); - - Uri t3Uri = new Uri("semio:test:testInstance3"); - MappingTestClass4 t3 = m.CreateResource(t3Uri); - t3.uniqueStringTest = "testing 3"; - t3.Commit(); - - Resource r1 = m.GetResource(t1Uri); - Assert.AreEqual(t1, r1); - - Resource r2 = m.GetResource(t2Uri); - Assert.AreEqual(t2, r2); - - Resource r3 = m.GetResource(t3Uri); - Assert.AreEqual(t3, r3); - } - - - [Test] - public void RollbackTest() - { - IModel m = GetModel(); - - Uri u0 = new Uri("urn:id:0"); - MappingTestClass r0 = m.CreateResource(u0); - - // Add value using the mapping interface - string strValue = "Hallo Welt!"; - r0.uniqueStringTest = strValue; - r0.Commit(); - r0.uniqueStringTest = "HelloWorld!"; - r0.Rollback(); - - Assert.AreEqual(strValue, r0.uniqueStringTest); - - MappingTestClass r0ref = m.GetResource(u0); - r0ref.stringTest.Add("Hi"); - r0ref.stringTest.Add("Blub"); - r0ref.Commit(); - - r0.Rollback(); - - Assert.AreEqual(2, r0.stringTest.Count); - Assert.IsTrue(r0.stringTest.Contains("Hi")); - Assert.IsTrue(r0.stringTest.Contains("Blub")); - - Uri u1 = new Uri("urn:id:1"); - MappingTestClass2 r1 = m.CreateResource(u1); - r1.uniqueStringTest = "blub"; - r1.Commit(); - - r0ref = m.GetResource(u0); - r0ref.resourceTest.Add(r1); - r0ref.Commit(); - - r0.Rollback(); - - Assert.IsTrue(r0.resourceTest.Count == 1); - Assert.IsTrue(r0.resourceTest.Contains(r1)); - } - - [Test] - public void RollbackMappedResourcesTest() - { - IModel m = GetModel(); - m.Clear(); - - Uri t1Uri = new Uri("semio:test:testInstance1"); - SingleResourceMappingTestClass t1 = m.CreateResource(t1Uri); - t1.Commit(); - - Assert.IsTrue(t1.ResourceTest.Count == 0); - - Uri t2Uri = new Uri("semio:test:testInstance2"); - SingleMappingTestClass t2 = m.CreateResource(t2Uri); - t2.stringTest.Add("blub"); - t2.Commit(); - - var newRef = m.GetResource(t1Uri); - newRef.ResourceTest.Add(t2); - newRef.Commit(); - - t1.Rollback(); - - Assert.IsTrue(t1.ResourceTest.Count == 1); - Assert.IsTrue(t1.ResourceTest.Contains(t2)); - } - - [Test] - public void ListValuesTest() - { - IModel m = GetModel(); - m.Clear(); - Uri t1Uri = new Uri("semio:test:testInstance1"); - MappingTestClass t1 = m.CreateResource(t1Uri); - - - // Add value using the mapping interface - string strValue = "Hallo Welt!"; - t1.uniqueStringTest = strValue; - t1.Commit(); - - t1.stringTest.Add("Hi"); - t1.stringTest.Add("Blub"); - t1.Commit(); - - var x = t1.ListValues(TestOntology.stringTest); - - MappingTestClass actual = m.GetResource(t1.Uri); - var x2 = actual.ListValues(TestOntology.stringTest); - - var res1 = x.ToList(); - var res2 = x2.ToList(); - Assert.AreEqual(res1.Count, res2.Count); - Assert.IsTrue(res2.Contains(res1[0])); - Assert.IsTrue(res2.Contains(res1[1])); - - } - - - [Test] - public void KeepListsAfterRollbackTest() - { - IModel m = GetModel(); - m.Clear(); - - Uri t1Uri = new Uri("semio:test:testInstance8"); - - SingleMappingTestClass t1 = m.CreateResource(t1Uri); - t1.AddProperty(TestOntology.uniqueStringTest, "Hello"); - - t1.Commit(); - t1.Rollback(); - - t1.stringTest.Add("Hi"); - t1.stringTest.Add("Blub"); - - var x = t1.ListValues(TestOntology.stringTest).ToList(); - Assert.AreEqual(2, x.Count); - t1.Commit(); - - SingleMappingTestClass t2 = m.GetResource(t1Uri); - - var x2 = t2.ListValues(TestOntology.stringTest).ToList(); - - Assert.AreEqual(x.Count, x2.Count); - Assert.IsTrue(x2.Contains(x[0])); - Assert.IsTrue(x2.Contains(x[1])); - - } - - [Test] - public void TestEquality() - { - using (Resource c1 = new Resource(new Uri("http://www.semanticdesktop.org/ontologies/2007/04/02/ncal#cancelledStatus"))) - using (Resource c2 = new Resource(new Uri("http://www.semanticdesktop.org/ontologies/2007/04/02/ncal#cancelledStatus"))) - { - Assert.IsTrue(c1.Equals(c2)); - Assert.IsFalse(c1 == c2); - } - } - } - -} +// LICENSE: +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// +// AUTHORS: +// +// Moritz Eberl +// Sebastian Faubel +// +// Copyright (c) Semiodesk GmbH 2015-2019 + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Globalization; +using Semiodesk.Trinity; +using System.Collections.ObjectModel; +using System.Reflection; +using NUnit.Framework; +using dotNetRDFStore.Test; +using System.IO; +using Semiodesk.Trinity.Ontologies; +using Semiodesk.Trinity.Test; +#if NET35 +using Semiodesk.Trinity.Utility; +#endif + + +namespace Semiodesk.Trinity.Test.Stardog +{ + + [TestFixture] + public class StardogResourceMappingTest : SetupClass + { + public static bool RegisteredOntology = false; + + IStore Store; + IModel Model; + + [SetUp] + public void SetUp() + { + if (ResourceMappingTest.RegisteredOntology == false) + { + OntologyDiscovery.AddAssembly(Assembly.GetExecutingAssembly()); + MappingDiscovery.RegisterAssembly(Assembly.GetExecutingAssembly()); + ResourceMappingTest.RegisteredOntology = true; + } + + Store = StoreFactory.CreateStore("provider=stardog;host=http://localhost:5820;uid=admin;pw=admin;sid=test"); + + Uri testModel = new Uri("ex:Test"); + Model = Store.CreateModel(testModel); + } + + IModel GetModel() + { + return Model; + } + + [TearDown] + public void TearDown() + { + Store.Dispose(); + } + + //[Test] + // This test does not run, but it needs to. + public void AddUnmappedType() + { + IModel m = GetModel(); + m.Clear(); + + Uri t1Uri = new Uri("semio:test:testInstance1"); + Uri t2Uri = new Uri("semio:test:testInstance2"); + MappingTestClass t1 = m.CreateResource(t1Uri); + + IResource r = m.CreateResource(t2Uri); + r.AddProperty(rdf.type, TestOntology.TestClass2); + + t1.AddProperty(TestOntology.uniqueResourceTest, r); + t1.AddProperty(TestOntology.resourceTest, r); + + Assert.IsNull(t1.uniqueResourceTest); + Assert.AreEqual(0, t1.resourceTest.Count); + + m.Clear(); + } + + [Test] + public void RemoveTypeTest() + { + Assert.Inconclusive("This test poses an interesting problem. If we remove the type of a mapped resource, how should we handle that."); + IModel m = GetModel(); + m.Clear(); + + Uri t1Uri = new Uri("semio:test:testInstance1"); + MappingTestClass t1 = m.CreateResource(t1Uri); + + t1.RemoveProperty(rdf.type, TestOntology.TestClass); + + Assert.False(t1.ListProperties().Contains(rdf.type)); + + + m.Clear(); + } + + [Test] + public void AddRemoveIntegerTest() + { + IModel m = GetModel(); + m.Clear(); + + Uri t1Uri = new Uri("semio:test:testInstance1"); + MappingTestClass t1 = m.CreateResource(t1Uri); + + // Add value using the mapping interface + int value = 1; + t1.uniqueIntTest = value; + + t1.Commit(); + + MappingTestClass t_actual = m.GetResource(t1Uri); + + // Test if value was stored + Assert.AreEqual(value, t_actual.uniqueIntTest); + + + // Test if property is present + IEnumerable l = t_actual.ListProperties(); + Assert.True(l.Contains(TestOntology.uniqueIntTest)); + Assert.AreEqual(2, l.Count()); + + // Test if ListValues works + Assert.AreEqual(typeof(int), t_actual.ListValues(TestOntology.uniqueIntTest).First().GetType()); + Assert.AreEqual(value, t_actual.ListValues(TestOntology.uniqueIntTest).First()); + + // Remove with RemoveProperty + t1.RemoveProperty(TestOntology.uniqueIntTest, value); + t1.Commit(); + + t_actual = m.GetResource(t1Uri); + + // Test if ListProperties works + l = t_actual.ListProperties(); + Assert.False(l.Contains(TestOntology.uniqueIntTest)); + + // Test if ListValues works + Assert.AreEqual(0, t_actual.ListValues(TestOntology.uniqueIntTest).Count()); + + m.Clear(); + } + + [Test] + public void AddRemoveIntegerListTest() + { + IModel m = GetModel(); + m.Clear(); + Uri t1Uri = new Uri("semio:test:testInstance1"); + MappingTestClass t1 = m.CreateResource(t1Uri); + // Add value using the mapping interface + int value = 2; + t1.intTest.Add(value); + + t1.Commit(); + + MappingTestClass t_actual = m.GetResource(t1Uri); + + // Test if value was stored + Assert.AreEqual(1, t_actual.intTest.Count()); + Assert.AreEqual(value, t_actual.intTest[0]); + + // Test if property is present + IEnumerable l = t_actual.ListProperties(); + Assert.True(l.Contains(TestOntology.intTest)); + Assert.AreEqual(2, l.Count()); + + // Test if ListValues works + Assert.AreEqual(typeof(int), t_actual.ListValues(TestOntology.intTest).First().GetType()); + Assert.AreEqual(value, t_actual.ListValues(TestOntology.intTest).First()); + + // Add another value + int value2 = -18583; + t1.intTest.Add(value2); + t1.Commit(); + t_actual = m.GetResource(t1Uri); + + + // Test if value was stored + Assert.AreEqual(2, t_actual.intTest.Count()); + Assert.IsTrue(t_actual.intTest.Contains(value)); + Assert.IsTrue(t_actual.intTest.Contains(value2)); + + // Test if property is present + l = t_actual.ListProperties(); + Assert.True(l.Contains(TestOntology.intTest)); + Assert.AreEqual(2, l.Count()); + + // Test if ListValues works + var res = t_actual.ListValues(TestOntology.intTest).ToList(); + Assert.AreEqual(typeof(int), res[0].GetType()); + Assert.AreEqual(typeof(int), res[1].GetType()); + Assert.IsTrue(res.Contains(value)); + Assert.IsTrue(res.Contains(value2)); + + // Remove value from mapped list + t1.intTest.Remove(value2); + t1.Commit(); + t_actual = m.GetResource(t1Uri); + + // Test if removed + Assert.AreEqual(1, t_actual.intTest.Count()); + + // Test if ListProperties works + l = t_actual.ListProperties(); + Assert.True(l.Contains(TestOntology.intTest)); + + // Test if first added property is still present + Assert.AreEqual(typeof(int), t_actual.ListValues(TestOntology.intTest).First().GetType()); + Assert.AreEqual(value, t_actual.ListValues(TestOntology.intTest).First()); + + t1.intTest.Remove(value); + t1.Commit(); + t_actual = m.GetResource(t1Uri); + + l = t_actual.ListProperties(); + Assert.False(l.Contains(TestOntology.intTest)); + + // Test if ListValues works + Assert.AreEqual(0, t_actual.ListValues(TestOntology.intTest).Count()); + + m.Clear(); + } + + /// + /// This Test fails because the datatype "unsigned int" is not stored correctly in the database. + /// To be more specific the xsd type is missing although it is given at the insert. + /// + //[Test] + public void AddRemoveUnsignedIntegerTest() + { + IModel m = GetModel(); + m.Clear(); + Uri t1Uri = new Uri("semio:test:testInstance1"); + MappingTestClass t1 = m.CreateResource(t1Uri); + + // Add value using the mapping interface + uint uValue = 1; + t1.uniqueUintTest = uValue; + + t1.Commit(); + + MappingTestClass t_actual = m.GetResource(t1Uri); + + // Test if value was stored + Assert.AreEqual(uValue, t_actual.uniqueUintTest); + + + // Test if property is present + var l = t1.ListProperties(); + Assert.True(l.Contains(TestOntology.uniqueUintTest)); + Assert.AreEqual(2, l.Count()); + + // Test if ListValues works + Assert.AreEqual(typeof(uint), t_actual.ListValues(TestOntology.uniqueUintTest).First().GetType()); + Assert.AreEqual(uValue, t_actual.ListValues(TestOntology.uniqueUintTest).First()); + + // Remove with RemoveProperty + t1.RemoveProperty(TestOntology.uniqueUintTest, uValue); + t1.Commit(); + + t_actual = m.GetResource(t1Uri); + + // Test if ListProperties works + l = (List)t_actual.ListProperties(); + Assert.False(l.Contains(TestOntology.uniqueUintTest)); + + // Test if ListValues works + Assert.AreEqual(0, t_actual.ListValues(TestOntology.uniqueUintTest).Count()); + + m.Clear(); + } + + //[Test] + public void AddRemoveUnsignedIntegerListTest() + { + IModel m = GetModel(); + m.Clear(); + Uri t1Uri = new Uri("semio:test:testInstance1"); + MappingTestClass t1 = m.CreateResource(t1Uri); + + // Add value using the mapping interface + uint uValue = 2; + t1.uintTest.Add(uValue); + + t1.Commit(); + MappingTestClass t_actual = m.GetResource(t1Uri); + + // Test if value was stored + Assert.AreEqual(1, t_actual.uintTest.Count()); + Assert.AreEqual(uValue, t_actual.uintTest[0]); + + + // Test if property is present + var l = t1.ListProperties(); + Assert.True(l.Contains(TestOntology.uintTest)); + Assert.AreEqual(2, l.Count()); + + // Test if ListValues works + Assert.AreEqual(typeof(uint), t_actual.ListValues(TestOntology.uintTest).First().GetType()); + Assert.AreEqual(uValue, t_actual.ListValues(TestOntology.uintTest).First()); + + // Remove value from mapped list + t1.uintTest.Remove(uValue); + t1.Commit(); + + t_actual = m.GetResource(t1Uri); + + // Test if removed + Assert.AreEqual(0, t_actual.uintTest.Count()); + + // Test if ListProperties works + l = (List)t_actual.ListProperties(); + Assert.False(l.Contains(TestOntology.uintTest)); + + // Test if ListValues works + Assert.AreEqual(0, t_actual.ListValues(TestOntology.uintTest).Count()); + m.Clear(); + } + + [Test] + public void UnicodeStringTest() + { + IModel m = GetModel(); + m.Clear(); + Uri t1Uri = new Uri("semio:test:testInstance1"); + MappingTestClass t1 = m.CreateResource(t1Uri); + + + // Add value using the mapping interface + string strValue = "✔️ ❤️"; + t1.uniqueStringTest = strValue; + t1.Commit(); + + MappingTestClass t_actual = m.GetResource(t1Uri); + + // Test if value was stored + Assert.AreEqual(strValue, t_actual.uniqueStringTest); + + + // Test if property is present + var l = t_actual.ListProperties(); + Assert.True(l.Contains(TestOntology.uniqueStringTest)); + Assert.AreEqual(2, l.Count()); + + var x = t_actual.HasProperty(TestOntology.uniqueStringTest); + Assert.IsTrue(x); + + x = t_actual.HasProperty(TestOntology.uniqueStringTest, strValue); + Assert.IsTrue(x); + + // Test if ListValues works + Assert.AreEqual(typeof(string), t_actual.ListValues(TestOntology.uniqueStringTest).First().GetType()); + Assert.AreEqual(strValue, t1.ListValues(TestOntology.uniqueStringTest).First()); + + // Remove with RemoveProperty + t1.RemoveProperty(TestOntology.uniqueStringTest, strValue); + t1.Commit(); + t_actual = m.GetResource(t1Uri); + + // Test if ListProperties works + l = t_actual.ListProperties(); + Assert.False(l.Contains(TestOntology.uniqueStringTest)); + + x = t_actual.HasProperty(TestOntology.uniqueStringTest); + Assert.IsFalse(x); + + x = t_actual.HasProperty(TestOntology.uniqueStringTest, strValue); + Assert.IsFalse(x); + + // Test if ListValues works + Assert.AreEqual(0, t_actual.ListValues(TestOntology.uniqueStringTest).Count()); + m.Clear(); + } + + + [Test] + public void AddRemoveStringTest() + { + IModel m = GetModel(); + m.Clear(); + Uri t1Uri = new Uri("semio:test:testInstance1"); + MappingTestClass t1 = m.CreateResource(t1Uri); + + + // Add value using the mapping interface + string strValue = "Hallo Welt!"; + t1.uniqueStringTest = strValue; + t1.Commit(); + + MappingTestClass t_actual = m.GetResource(t1Uri); + + // Test if value was stored + Assert.AreEqual(strValue, t_actual.uniqueStringTest); + + + // Test if property is present + var l = t_actual.ListProperties(); + Assert.True(l.Contains(TestOntology.uniqueStringTest)); + Assert.AreEqual(2, l.Count()); + + var x = t_actual.HasProperty(TestOntology.uniqueStringTest); + Assert.IsTrue(x); + + x = t_actual.HasProperty(TestOntology.uniqueStringTest, strValue); + Assert.IsTrue(x); + + // Test if ListValues works + Assert.AreEqual(typeof(string), t_actual.ListValues(TestOntology.uniqueStringTest).First().GetType()); + Assert.AreEqual(strValue, t1.ListValues(TestOntology.uniqueStringTest).First()); + + // Remove with RemoveProperty + t1.RemoveProperty(TestOntology.uniqueStringTest, strValue); + t1.Commit(); + t_actual = m.GetResource(t1Uri); + + // Test if ListProperties works + l = t_actual.ListProperties(); + Assert.False(l.Contains(TestOntology.uniqueStringTest)); + + x = t_actual.HasProperty(TestOntology.uniqueStringTest); + Assert.IsFalse(x); + + x = t_actual.HasProperty(TestOntology.uniqueStringTest, strValue); + Assert.IsFalse(x); + + // Test if ListValues works + Assert.AreEqual(0, t_actual.ListValues(TestOntology.uniqueStringTest).Count()); + m.Clear(); + } + + [Test] + public void AddRemoveLocalizedStringTest() + { + IModel m = GetModel(); + m.Clear(); + + Uri t1Uri = new Uri("semio:test:testInstance1"); + MappingTestClass t1 = m.CreateResource(t1Uri); + t1.AddProperty(TestOntology.uniqueStringTest, "Hallo Welt", "de"); + t1.Commit(); + + var t1ref = m.GetResource(t1Uri); + var values = t1ref.ListValues(TestOntology.uniqueStringTest); + + Assert.IsTrue(values.OfType>().Any(t => t.Item1 == "Hallo Welt" && t.Item2 == "de")); + + t1.RemoveProperty(TestOntology.uniqueStringTest, "Hallo Welt", "de"); + t1.Commit(); + + t1ref = m.GetResource(t1Uri); + values = t1ref.ListValues(TestOntology.uniqueStringTest); + + Assert.AreEqual(0, values.Count()); + } + + + [Test] + public void AddRemoveStringListTest() + { + IModel m = GetModel(); + m.Clear(); + + string value = "This is a test!"; + string value2 = "This is a test too!"; + + // Add value using the mapping interface + Uri u0 = new Uri("urn:id:0"); + MappingTestClass r0 = m.CreateResource(u0); + r0.stringTest.Add(value); + r0.Commit(); + + // Test if value was stored. + MappingTestClass r1 = m.GetResource(u0); + Assert.AreEqual(1, r1.stringTest.Count()); + Assert.AreEqual(value, r1.stringTest[0]); + + // Test if HasProperty works. + Assert.IsTrue(r1.HasProperty(TestOntology.stringTest)); + Assert.IsTrue(r1.HasProperty(TestOntology.stringTest, value)); + + // Test if ListValues works. + Assert.AreEqual(typeof(string), r1.ListValues(TestOntology.stringTest).First().GetType()); + Assert.AreEqual(value, r1.ListValues(TestOntology.stringTest).First()); + + // Test if property is present. + var properties = r1.ListProperties(); + Assert.True(properties.Contains(TestOntology.stringTest)); + Assert.AreEqual(2, properties.Count()); + + // Remove value from mapped list. + r0.stringTest.Remove(value); + r0.Commit(); + + r1 = m.GetResource(u0); + + // Test if removed + Assert.AreEqual(0, r1.stringTest.Count()); + + // Test if ListProperties works + properties = r1.ListProperties(); + CollectionAssert.DoesNotContain(properties, TestOntology.stringTest); + + // Test if HasProperty works. + Assert.IsFalse(r1.HasProperty(TestOntology.stringTest)); + Assert.IsFalse(r1.HasProperty(TestOntology.stringTest, value)); + + // Test if ListValues works + Assert.AreEqual(0, r1.ListValues(TestOntology.stringTest).Count()); + + // Add value using the mapping interface + u0 = new Uri("urn:id:0"); + r0 = m.CreateResource(u0); + r0.stringTest.Add(value); + r0.stringTest.Add(value2); + r0.Commit(); + + // Test if value was stored. + r1 = m.GetResource(u0); + Assert.AreEqual(2, r1.stringTest.Count()); + Assert.Contains(value, r1.stringTest); + + // Test if HasProperty works. + Assert.IsTrue(r1.HasProperty(TestOntology.stringTest)); + Assert.IsTrue(r1.HasProperty(TestOntology.stringTest, value)); + + // Test if ListValues works. + Assert.AreEqual(typeof(string), r1.ListValues(TestOntology.stringTest).First().GetType()); + Assert.AreEqual(value, r1.ListValues(TestOntology.stringTest).First()); + + // Test if property is present. + properties = r1.ListProperties(); + Assert.True(properties.Contains(TestOntology.stringTest)); + Assert.AreEqual(2, properties.Count()); + + // Remove value from mapped list. + r0.stringTest.Remove(value); + r0.Commit(); + + r1 = m.GetResource(u0); + + // Test if removed + Assert.AreEqual(0, r1.stringTest.Count()); + + // Test if ListProperties works + properties = r1.ListProperties(); + CollectionAssert.DoesNotContain(properties, TestOntology.stringTest); + + // Test if HasProperty works. + Assert.IsFalse(r1.HasProperty(TestOntology.stringTest)); + Assert.IsFalse(r1.HasProperty(TestOntology.stringTest, value)); + + // Test if ListValues works + Assert.AreEqual(0, r1.ListValues(TestOntology.stringTest).Count()); + + m.Clear(); + } + + [Test] + public void AddRemoveBoolTest() + { + IModel m = GetModel(); + m.Clear(); + Uri t1Uri = new Uri("semio:test:testInstance1"); + MappingTestClass t1 = m.CreateResource(t1Uri); + + + // Add value using the mapping interface + bool bValue = true; + t1.uniqueBoolTest = bValue; + + t1.Commit(); + + MappingTestClass t_actual = m.GetResource(t1Uri); + + // Test if value was stored + Assert.AreEqual(bValue, t_actual.uniqueBoolTest); + + + // Test if property is present + var l = t_actual.ListProperties(); + Assert.True(l.Contains(TestOntology.uniqueBoolTest)); + Assert.AreEqual(2, l.Count()); + + // Test if ListValues works + Assert.AreEqual(typeof(bool), t_actual.ListValues(TestOntology.uniqueBoolTest).First().GetType()); + Assert.AreEqual(bValue, t_actual.ListValues(TestOntology.uniqueBoolTest).First()); + + // Remove with RemoveProperty + t1.RemoveProperty(TestOntology.uniqueBoolTest, bValue); + t1.Commit(); + + t_actual = m.GetResource(t1Uri); + + // Test if ListProperties works + l = t_actual.ListProperties(); + Assert.False(l.Contains(TestOntology.uniqueBoolTest)); + + // Test if ListValues works + Assert.AreEqual(0, t_actual.ListValues(TestOntology.uniqueBoolTest).Count()); + + m.Clear(); + } + + [Test] + public void AddRemoveBoolListTest() + { + IModel m = GetModel(); + m.Clear(); + Uri t1Uri = new Uri("semio:test:testInstance1"); + MappingTestClass t1 = m.CreateResource(t1Uri); + + + // Add value using the mapping interface + bool value = true; + t1.boolTest.Add(value); + + t1.Commit(); + MappingTestClass t_actual = m.GetResource(t1Uri); + + // Test if value was stored + Assert.AreEqual(1, t_actual.boolTest.Count()); + Assert.AreEqual(value, t_actual.boolTest[0]); + + + // Test if property is present + var l = t_actual.ListProperties(); + Assert.True(l.Contains(TestOntology.boolTest)); + Assert.AreEqual(2, l.Count()); + + // Test if ListValues works + Assert.AreEqual(typeof(bool), t_actual.ListValues(TestOntology.boolTest).First().GetType()); + Assert.AreEqual(value, t_actual.ListValues(TestOntology.boolTest).First()); + + // Remove value from mapped list + t1.boolTest.Remove(value); + t1.Commit(); + t_actual = m.GetResource(t1Uri); + + // Test if removed + Assert.AreEqual(0, t_actual.boolTest.Count()); + + // Test if ListProperties works + l = t_actual.ListProperties(); + Assert.False(l.Contains(TestOntology.boolTest)); + + // Test if ListValues works + Assert.AreEqual(0, t_actual.ListValues(TestOntology.boolTest).Count()); + + m.Clear(); + } + + /// + /// Note: + /// Datetime precision in Virtuoso is not as high as native .net datetime precision. + /// + [Test] + public void AddRemoveDateTimeTest() + { + IModel m = GetModel(); + m.Clear(); + Uri t1Uri = new Uri("semio:test:testInstance1"); + MappingTestClass t1 = m.CreateResource(t1Uri); + + + // Add value using the mapping interface + DateTime Value = new DateTime(2012, 8, 15, 12, 3, 55, DateTimeKind.Local); + t1.uniqueDateTimeTest = Value; + t1.Commit(); + + MappingTestClass t_actual = m.GetResource(t1Uri); + + // Test if value was stored + Assert.AreEqual(Value.ToUniversalTime(), t_actual.uniqueDateTimeTest.ToUniversalTime()); + + + // Test if property is present + var l = t_actual.ListProperties(); + Assert.True(l.Contains(TestOntology.uniqueDatetimeTest)); + Assert.AreEqual(2, l.Count()); + + // Test if ListValues works + Assert.AreEqual(typeof(DateTime), t_actual.ListValues(TestOntology.uniqueDatetimeTest).First().GetType()); + DateTime time = (DateTime)t_actual.ListValues(TestOntology.uniqueDatetimeTest).First(); + Assert.AreEqual(Value.ToUniversalTime(), time.ToUniversalTime()); + + // Remove with RemoveProperty + t1.RemoveProperty(TestOntology.uniqueDatetimeTest, Value); + t1.Commit(); + + t_actual = m.GetResource(t1Uri); + + // Test if ListProperties works + l = t_actual.ListProperties(); + Assert.False(l.Contains(TestOntology.uniqueBoolTest)); + + // Test if ListValues works + Assert.AreEqual(0, t_actual.ListValues(TestOntology.uniqueDatetimeTest).Count()); + + Assert.IsTrue(DateTime.TryParse("2013-01-21T16:27:23.000Z", out DateTime t)); + + t1.uniqueDateTimeTest = t; + t1.Commit(); + + t_actual = m.GetResource(t1Uri); + Assert.AreEqual(t1.uniqueDateTimeTest.ToUniversalTime(), t_actual.uniqueDateTimeTest.ToUniversalTime()); + + m.Clear(); + } + + [Test] + public void TimeZoneTest() + { + IModel m = GetModel(); + m.Clear(); + + Uri t1Uri = new Uri("semio:test:testInstance1"); + + Assert.IsTrue(DateTime.TryParse("2013-01-21T16:27:23.000Z", out DateTime t)); + + MappingTestClass t1 = m.CreateResource(t1Uri); + t1.uniqueDateTimeTest = t; + t1.Commit(); + + MappingTestClass t_actual = m.GetResource(t1Uri); + + Assert.AreEqual(t.ToUniversalTime(), t_actual.uniqueDateTimeTest); + } + + [Test] + public void AddRemoveDateTimeListTest() + { + IModel m = GetModel(); + m.Clear(); + Uri t1Uri = new Uri("semio:test:testInstance1"); + MappingTestClass t1 = m.CreateResource(t1Uri); + + + // Add value using the mapping interface + DateTime value = new DateTime(2012, 8, 15, 12, 3, 55, DateTimeKind.Local); + t1.dateTimeTest.Add(value); + t1.Commit(); + MappingTestClass t_actual = m.GetResource(t1Uri); + + // Test if value was stored + Assert.AreEqual(1, t1.dateTimeTest.Count()); + Assert.AreEqual(value, t1.dateTimeTest[0]); + + + // Test if property is present + var l = t1.ListProperties(); + Assert.True(l.Contains(TestOntology.datetimeTest)); + Assert.AreEqual(2, l.Count()); + + // Test if ListValues works + Assert.AreEqual(typeof(DateTime), t_actual.ListValues(TestOntology.datetimeTest).First().GetType()); + DateTime time = (DateTime)t_actual.ListValues(TestOntology.datetimeTest).First(); + Assert.AreEqual(value.ToUniversalTime(), time.ToUniversalTime()); + + // Remove value from mapped list + t1.dateTimeTest.Remove(value); + t1.Commit(); + + t_actual = m.GetResource(t1Uri); + + // Test if removed + Assert.AreEqual(0, t_actual.dateTimeTest.Count()); + + // Test if ListProperties works + l = t_actual.ListProperties(); + Assert.False(l.Contains(TestOntology.datetimeTest)); + + // Test if ListValues works + Assert.AreEqual(0, t_actual.ListValues(TestOntology.datetimeTest).Count()); + } + + [Test] + public void AddRemoveResourceTest() + { + IModel m = GetModel(); + m.Clear(); + Uri t1Uri = new Uri("semio:test:testInstance1"); + MappingTestClass t1 = m.CreateResource(t1Uri); + + Uri testClass2Uri = new Uri("semio:test:testInstance2"); + MappingTestClass2 t2 = new MappingTestClass2(testClass2Uri); + + t1.uniqueResourceTest = t2; + t1.Commit(); + MappingTestClass t_actual = m.GetResource(t1Uri); + + + Assert.AreEqual(t2, t_actual.uniqueResourceTest); + + var l = t_actual.ListProperties().ToList(); + Assert.Contains(TestOntology.uniqueResourceTest, l); + Assert.AreEqual(2, l.Count()); + + var x = t_actual.HasProperty(TestOntology.uniqueResourceTest); + Assert.IsTrue(x); + + x = t_actual.HasProperty(TestOntology.uniqueResourceTest, t2); + Assert.IsTrue(x); + + t_actual = m.GetResource(t1Uri); + var values = t_actual.ListValues().ToList(); + Assert.Contains(new Tuple(TestOntology.uniqueResourceTest, t2), values); + + + Assert.IsTrue(typeof(Resource).IsAssignableFrom(t_actual.ListValues(TestOntology.uniqueResourceTest).First().GetType())); + //Assert.AreEqual(t2, t_actual.ListValues(TestOntology.uniqeResourceTest).First()); + + t1.RemoveProperty(TestOntology.uniqueResourceTest, t2); + t1.Commit(); + t_actual = m.GetResource(t1Uri); + + + l = t_actual.ListProperties().ToList(); + Assert.False(l.Contains(TestOntology.uniqueResourceTest)); + + x = t_actual.HasProperty(TestOntology.uniqueResourceTest); + Assert.IsFalse(x); + + x = t_actual.HasProperty(TestOntology.uniqueResourceTest, t2); + Assert.IsFalse(x); + + // Test if ListValues works + Assert.AreEqual(0, t_actual.ListValues(TestOntology.uniqueResourceTest).Count()); + } + + [Test] + public void MappedResourceValueTest() + { + IModel m = GetModel(); + m.Clear(); + Uri t1Uri = new Uri("semio:test:testInstance1"); + MappingTestClass t1 = m.CreateResource(t1Uri); + + Uri testClass2Uri = new Uri("semio:test:testInstance2"); + MappingTestClass2 t2 = m.CreateResource(testClass2Uri); + t2.uniqueStringTest = "TestString"; + t2.Commit(); + + t1.uniqueResourceTest = t2; + t1.Commit(); + MappingTestClass t_actual = m.GetResource(t1Uri); + Assert.AreEqual("TestString", t_actual.uniqueResourceTest.uniqueStringTest); + + } + + + [Test] + public void AddRemoveResourceListTest() + { + IModel m = GetModel(); + m.Clear(); + Uri t1Uri = new Uri("semio:test:testInstance1"); + MappingTestClass t1 = m.CreateResource(t1Uri); + + + // Add value using the mapping interface + MappingTestClass2 t2 = new MappingTestClass2(new Uri("semio:test:testInstance2")); + t1.resourceTest.Add(t2); + t1.Commit(); + MappingTestClass t_actual = m.GetResource(t1Uri); + + Assert.AreEqual(1, t_actual.resourceTest.Count); + Assert.AreEqual(t2, t_actual.resourceTest[0]); + + var l = t_actual.ListProperties(); + Assert.AreEqual(2, l.Count()); + Assert.IsTrue(l.Contains(TestOntology.resourceTest)); + + var x = t_actual.HasProperty(TestOntology.resourceTest); + Assert.IsTrue(x); + + x = t_actual.HasProperty(TestOntology.resourceTest, t2); + Assert.IsTrue(x); + + var v = t_actual.ListValues(TestOntology.resourceTest); + Assert.AreEqual(2, l.Count()); + Assert.IsTrue(v.Contains(t2)); + + Assert.AreEqual(t2.GetType(), v.First().GetType()); + + t1.resourceTest.Remove(t2); + t1.Commit(); + t_actual = m.GetResource(t1Uri); + + x = t_actual.HasProperty(TestOntology.resourceTest); + Assert.IsFalse(x); + + x = t_actual.HasProperty(TestOntology.resourceTest, t2); + Assert.IsFalse(x); + + + Assert.AreEqual(0, t_actual.resourceTest.Count); + } + + + [Test] + public void LazyLoadResourceTest() + { + MappingDiscovery.RegisterCallingAssembly(); + IModel model = GetModel(); + model.Clear(); + + Uri testRes1 = new Uri("semio:test:testInstance"); + Uri testRes2 = new Uri("semio:test:testInstance2"); + MappingTestClass t1 = model.CreateResource(testRes1); + MappingTestClass2 t2 = model.CreateResource(testRes2); + + t1.uniqueResourceTest = t2; + // TODO: Debug messsage, because t2 was not commited + t1.Commit(); + + MappingTestClass p1 = model.GetResource(testRes1); + //Assert.AreEqual(null, p1.uniqueResourceTest); + + var v = p1.ListValues(TestOntology.uniqueResourceTest); + Assert.AreEqual(t2.Uri.OriginalString, (v.First() as IResource).Uri.OriginalString); + + model.DeleteResource(t1); + + model.DeleteResource(t2); + + t1 = model.CreateResource(testRes1); + + t2 = model.CreateResource(new Uri("semio:test:testInstance2")); + t2.Commit(); + + t1.uniqueResourceTest = t2; + t1.Commit(); + + IResource tr1 = model.GetResource(testRes1, t1.GetType()) as Resource; + Assert.AreEqual(typeof(MappingTestClass), tr1.GetType()); + + Assert.AreEqual(t2, p1.uniqueResourceTest); + + model.Clear(); + } + + [Test] + public void MappingTypeTest() + { + IModel m = GetModel(); + m.Clear(); + + Uri t1Uri = new Uri("semio:test:testInstance1"); + MappingTestClass2 t1 = m.CreateResource(t1Uri); + t1.uniqueStringTest = "testing 1"; + t1.Commit(); + + Uri t2Uri = new Uri("semio:test:testInstance2"); + MappingTestClass3 t2 = m.CreateResource(t2Uri); + t2.uniqueStringTest = "testing 2"; + t2.Commit(); + + Uri t3Uri = new Uri("semio:test:testInstance3"); + MappingTestClass4 t3 = m.CreateResource(t3Uri); + t3.uniqueStringTest = "testing 3"; + t3.Commit(); + + Resource r1 = m.GetResource(t1Uri); + Assert.AreEqual(t1, r1); + + Resource r2 = m.GetResource(t2Uri); + Assert.AreEqual(t2, r2); + + Resource r3 = m.GetResource(t3Uri); + Assert.AreEqual(t3, r3); + } + + + [Test] + public void RollbackTest() + { + IModel m = GetModel(); + + Uri u0 = new Uri("urn:id:0"); + MappingTestClass r0 = m.CreateResource(u0); + + // Add value using the mapping interface + string strValue = "Hallo Welt!"; + r0.uniqueStringTest = strValue; + r0.Commit(); + r0.uniqueStringTest = "HelloWorld!"; + r0.Rollback(); + + Assert.AreEqual(strValue, r0.uniqueStringTest); + + MappingTestClass r0ref = m.GetResource(u0); + r0ref.stringTest.Add("Hi"); + r0ref.stringTest.Add("Blub"); + r0ref.Commit(); + + r0.Rollback(); + + Assert.AreEqual(2, r0.stringTest.Count); + Assert.IsTrue(r0.stringTest.Contains("Hi")); + Assert.IsTrue(r0.stringTest.Contains("Blub")); + + Uri u1 = new Uri("urn:id:1"); + MappingTestClass2 r1 = m.CreateResource(u1); + r1.uniqueStringTest = "blub"; + r1.Commit(); + + r0ref = m.GetResource(u0); + r0ref.resourceTest.Add(r1); + r0ref.Commit(); + + r0.Rollback(); + + Assert.IsTrue(r0.resourceTest.Count == 1); + Assert.IsTrue(r0.resourceTest.Contains(r1)); + } + + [Test] + public void RollbackMappedResourcesTest() + { + IModel m = GetModel(); + m.Clear(); + + Uri t1Uri = new Uri("semio:test:testInstance1"); + SingleResourceMappingTestClass t1 = m.CreateResource(t1Uri); + t1.Commit(); + + Assert.IsTrue(t1.ResourceTest.Count == 0); + + Uri t2Uri = new Uri("semio:test:testInstance2"); + SingleMappingTestClass t2 = m.CreateResource(t2Uri); + t2.stringTest.Add("blub"); + t2.Commit(); + + var newRef = m.GetResource(t1Uri); + newRef.ResourceTest.Add(t2); + newRef.Commit(); + + t1.Rollback(); + + Assert.IsTrue(t1.ResourceTest.Count == 1); + Assert.IsTrue(t1.ResourceTest.Contains(t2)); + } + + [Test] + public void ListValuesTest() + { + IModel m = GetModel(); + m.Clear(); + Uri t1Uri = new Uri("semio:test:testInstance1"); + MappingTestClass t1 = m.CreateResource(t1Uri); + + + // Add value using the mapping interface + string strValue = "Hallo Welt!"; + t1.uniqueStringTest = strValue; + t1.Commit(); + + t1.stringTest.Add("Hi"); + t1.stringTest.Add("Blub"); + t1.Commit(); + + var x = t1.ListValues(TestOntology.stringTest); + + MappingTestClass actual = m.GetResource(t1.Uri); + var x2 = actual.ListValues(TestOntology.stringTest); + + var res1 = x.ToList(); + var res2 = x2.ToList(); + Assert.AreEqual(res1.Count, res2.Count); + Assert.IsTrue(res2.Contains(res1[0])); + Assert.IsTrue(res2.Contains(res1[1])); + + } + + + [Test] + public void KeepListsAfterRollbackTest() + { + IModel m = GetModel(); + m.Clear(); + + Uri t1Uri = new Uri("semio:test:testInstance8"); + + SingleMappingTestClass t1 = m.CreateResource(t1Uri); + t1.AddProperty(TestOntology.uniqueStringTest, "Hello"); + + t1.Commit(); + t1.Rollback(); + + t1.stringTest.Add("Hi"); + t1.stringTest.Add("Blub"); + + var x = t1.ListValues(TestOntology.stringTest).ToList(); + Assert.AreEqual(2, x.Count); + t1.Commit(); + + SingleMappingTestClass t2 = m.GetResource(t1Uri); + + var x2 = t2.ListValues(TestOntology.stringTest).ToList(); + + Assert.AreEqual(x.Count, x2.Count); + Assert.IsTrue(x2.Contains(x[0])); + Assert.IsTrue(x2.Contains(x[1])); + + } + + [Test] + public void TestEquality() + { + using (Resource c1 = new Resource(new Uri("http://www.semanticdesktop.org/ontologies/2007/04/02/ncal#cancelledStatus"))) + using (Resource c2 = new Resource(new Uri("http://www.semanticdesktop.org/ontologies/2007/04/02/ncal#cancelledStatus"))) + { + Assert.IsTrue(c1.Equals(c2)); + Assert.IsFalse(c1 == c2); + } + } + } + +} diff --git a/Trinity.Tests/Stardog/ResourceTest.cs b/tests/Trinity.Tests.Stardog/ResourceTest.cs similarity index 96% rename from Trinity.Tests/Stardog/ResourceTest.cs rename to tests/Trinity.Tests.Stardog/ResourceTest.cs index 4e87f6e..388fadf 100644 --- a/Trinity.Tests/Stardog/ResourceTest.cs +++ b/tests/Trinity.Tests.Stardog/ResourceTest.cs @@ -1,345 +1,345 @@ -// LICENSE: -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. -// -// AUTHORS: -// -// Moritz Eberl -// Sebastian Faubel -// -// Copyright (c) Semiodesk GmbH 2015-2019 - -using System; -using System.Globalization; -using System.Linq; -using NUnit.Framework; - -namespace Semiodesk.Trinity.Test.Stardog -{ - [TestFixture] - class StardogResourceTest - { - IStore Store; - IModel Model; - - [SetUp] - public void SetUp() - { - Store = StoreFactory.CreateStore("provider=stardog;host=http://localhost:5820;uid=admin;pw=admin;sid=test"); - - Uri testModel = new Uri("ex:Test"); - Model = Store.CreateModel(testModel); - Model.Clear(); - } - - [TearDown] - public void TearDown() - { - Store.Dispose(); - Store = null; - } - - #region Datatype fidelity Test - - [Test] - public void TestBool() - { - Uri resourceUri = new Uri("ex:myResource"); - Property myProperty = new Property(new Uri("ex:myProperty")); - Resource r1 = Model.CreateResource(resourceUri); - - bool val = true; - r1.AddProperty(myProperty, val); - r1.Commit(); - r1 = Model.GetResource(resourceUri); - - object res = r1.ListValues(myProperty).First(); - - Assert.AreEqual(typeof(bool), res.GetType()); - Assert.AreEqual(val, res); - } - - [Test] - public void TestInt() - { - Uri resourceUri = new Uri("ex:myResource"); - Property myProperty = new Property(new Uri("ex:myProperty")); - Resource r1 = Model.CreateResource(resourceUri); - - int val = 123; - r1.AddProperty(myProperty, val); - r1.Commit(); - r1 = Model.GetResource(resourceUri); - - object res = r1.ListValues(myProperty).First(); - - Assert.AreEqual(typeof(int), res.GetType()); - Assert.AreEqual(val, res); - } - - [Test] - public void TestInt16() - { - Uri resourceUri = new Uri("ex:myResource"); - Property myProperty = new Property(new Uri("ex:myProperty")); - - Resource r1 = Model.CreateResource(resourceUri); - Int16 val = 124; - r1.AddProperty(myProperty, val); - r1.Commit(); - - r1 = Model.GetResource(resourceUri); - - object res = r1.ListValues(myProperty).First(); - - Assert.AreEqual(typeof(Int16), res.GetType()); - Assert.AreEqual(val, res); - } - - [Test] - public void TestInt32() - { - Uri resourceUri = new Uri("ex:myResource"); - Property myProperty = new Property(new Uri("ex:myProperty")); - Resource r1 = Model.CreateResource(resourceUri); - Int32 val = 125; - r1.AddProperty(myProperty, val); - r1.Commit(); - r1 = Model.GetResource(resourceUri); - - object res = r1.ListValues(myProperty).First(); - - Assert.AreEqual(typeof(Int32), res.GetType()); - Assert.AreEqual(val, res); - - } - - [Test] - public void TestInt64() - { - Uri resourceUri = new Uri("ex:myResource"); - Property myProperty = new Property(new Uri("ex:myProperty")); - Resource r1 = Model.CreateResource(resourceUri); - Int64 val = 126; - r1.AddProperty(myProperty, val); - r1.Commit(); - r1 = Model.GetResource(resourceUri); - - object res = r1.ListValues(myProperty).First(); - - Assert.AreEqual(typeof(Int64), res.GetType()); - Assert.AreEqual(val, res); - } - - [Test] - public void TestUint() - { - Uri resourceUri = new Uri("ex:myResource"); - Property myProperty = new Property(new Uri("ex:myProperty")); - Resource r1 = Model.CreateResource(resourceUri); - uint val = 126; - r1.AddProperty(myProperty, val); - r1.Commit(); - r1 = Model.GetResource(resourceUri); - - object res = r1.ListValues(myProperty).First(); - - Assert.AreEqual(typeof(uint), res.GetType()); - Assert.AreEqual(val, res); - } - - [Test] - public void TestUint16() - { - Uri resourceUri = new Uri("ex:myResource"); - Property myProperty = new Property(new Uri("ex:myProperty")); - Resource r1 = Model.CreateResource(resourceUri); - UInt16 val = 126; - r1.AddProperty(myProperty, val); - r1.Commit(); - r1 = Model.GetResource(resourceUri); - - object res = r1.ListValues(myProperty).First(); - - Assert.AreEqual(typeof(UInt16), res.GetType()); - Assert.AreEqual(val, res); - } - - [Test] - public void TestUint32() - { - Uri resourceUri = new Uri("ex:myResource"); - Property myProperty = new Property(new Uri("ex:myProperty")); - Resource r1 = Model.CreateResource(resourceUri); - UInt32 val = 126; - r1.AddProperty(myProperty, val); - r1.Commit(); - r1 = Model.GetResource(resourceUri); - - object res = r1.ListValues(myProperty).First(); - - Assert.AreEqual(typeof(UInt32), res.GetType()); - Assert.AreEqual(val, res); - } - - [Test] - public void TestUint64() - { - Uri resourceUri = new Uri("ex:myResource"); - Property myProperty = new Property(new Uri("ex:myProperty")); - Resource r1 = Model.CreateResource(resourceUri); - UInt64 val = 126; - r1.AddProperty(myProperty, val); - r1.Commit(); - r1 = Model.GetResource(resourceUri); - - object res = r1.ListValues(myProperty).First(); - - Assert.AreEqual(typeof(UInt64), res.GetType()); - Assert.AreEqual(val, res); - } - - [Test] - public void TestFloat() - { - Uri resourceUri = new Uri("ex:myResource"); - Property myProperty = new Property(new Uri("ex:myProperty")); - Resource r1 = Model.CreateResource(resourceUri); - float val = 1.234F; - r1.AddProperty(myProperty, val); - r1.Commit(); - r1 = Model.GetResource(resourceUri); - - object res = r1.ListValues(myProperty).First(); - - Assert.AreEqual(typeof(float), res.GetType()); - Assert.AreEqual(val, res); - } - - [Test] - public void TestDouble() - { - Uri resourceUri = new Uri("ex:myResource"); - Property myProperty = new Property(new Uri("ex:myProperty")); - Resource r1 = Model.CreateResource(resourceUri); - double val = 1.223; - r1.AddProperty(myProperty, val); - r1.Commit(); - r1 = Model.GetResource(resourceUri); - - object res = r1.ListValues(myProperty).First(); - - Assert.AreEqual(typeof(double), res.GetType()); - Assert.AreEqual(val, res); - } - - [Test] - public void TestSingle() - { - Uri resourceUri = new Uri("ex:myResource"); - Property myProperty = new Property(new Uri("ex:myProperty")); - Resource r1 = Model.CreateResource(resourceUri); - Single val = 1.223F; - r1.AddProperty(myProperty, val); - r1.Commit(); - r1 = Model.GetResource(resourceUri); - - object res = r1.ListValues(myProperty).First(); - - Assert.AreEqual(typeof(Single), res.GetType()); - Assert.AreEqual(val, res); - } - - [Test] - public void TestString() - { - Uri resourceUri = new Uri("ex:myResource"); - Property myProperty = new Property(new Uri("ex:myProperty")); - Resource r1 = Model.CreateResource(resourceUri); - string val = "Hello World!"; - r1.AddProperty(myProperty, val); - r1.Commit(); - r1 = Model.GetResource(resourceUri); - - object res = r1.ListValues(myProperty).First(); - - Assert.AreEqual(typeof(string), res.GetType()); - Assert.AreEqual(val, res); - } - - [Test] - public void TestLocalizedString() - { - Property myProperty = new Property(new Uri("ex:myProperty")); - Resource r = Model.CreateResource(new Uri("ex:myResource")); - string val = "Hello World!"; - var ci = CultureInfo.CreateSpecificCulture("EN"); - r.AddProperty(myProperty, val, ci); - r.Commit(); - - var r1 = Model.GetResource(r.Uri); - object res = r1.ListValues(myProperty).First(); - Assert.AreEqual(typeof(Tuple), res.GetType()); - Tuple v = res as Tuple; - Assert.AreEqual(val, v.Item1); - Assert.AreEqual(ci.Name.ToLower(), v.Item2.ToLower()); - r.RemoveProperty(myProperty, val, ci); - } - - [Test] - public void TestDateTime() - { - Uri resourceUri = new Uri("ex:myResource"); - Property myProperty = new Property(new Uri("ex:myProperty")); - Resource r1 = Model.CreateResource(resourceUri); - DateTime val = DateTime.Today; - r1.AddProperty(myProperty, val); - r1.Commit(); - r1 = Model.GetResource(resourceUri); - - object res = r1.ListValues(myProperty).First(); - - Assert.AreEqual(typeof(DateTime), res.GetType()); - Assert.AreEqual(val.ToLocalTime(), ((DateTime)res).ToLocalTime()); - } - - [Test] - public void TestByteArray() - { - Uri resourceUri = new Uri("ex:myResource"); - Property myProperty = new Property(new Uri("ex:myProperty")); - Resource r1 = Model.CreateResource(resourceUri); - - byte[] val = new byte[] { 1, 2, 3, 4, 5 }; - - r1.AddProperty(myProperty, val); - r1.Commit(); - r1 = Model.GetResource(resourceUri); - - object res = r1.ListValues(myProperty).First(); - - Assert.AreEqual(typeof(byte[]), res.GetType()); - Assert.AreEqual(val, res); - - } - - #endregion - - } -} +// LICENSE: +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// +// AUTHORS: +// +// Moritz Eberl +// Sebastian Faubel +// +// Copyright (c) Semiodesk GmbH 2015-2019 + +using System; +using System.Globalization; +using System.Linq; +using NUnit.Framework; + +namespace Semiodesk.Trinity.Test.Stardog +{ + [TestFixture] + class StardogResourceTest : SetupClass + { + IStore Store; + IModel Model; + + [SetUp] + public void SetUp() + { + Store = StoreFactory.CreateStore("provider=stardog;host=http://localhost:5820;uid=admin;pw=admin;sid=test"); + + Uri testModel = new Uri("ex:Test"); + Model = Store.CreateModel(testModel); + Model.Clear(); + } + + [TearDown] + public void TearDown() + { + Store.Dispose(); + Store = null; + } + + #region Datatype fidelity Test + + [Test] + public void TestBool() + { + Uri resourceUri = new Uri("ex:myResource"); + Property myProperty = new Property(new Uri("ex:myProperty")); + Resource r1 = Model.CreateResource(resourceUri); + + bool val = true; + r1.AddProperty(myProperty, val); + r1.Commit(); + r1 = Model.GetResource(resourceUri); + + object res = r1.ListValues(myProperty).First(); + + Assert.AreEqual(typeof(bool), res.GetType()); + Assert.AreEqual(val, res); + } + + [Test] + public void TestInt() + { + Uri resourceUri = new Uri("ex:myResource"); + Property myProperty = new Property(new Uri("ex:myProperty")); + Resource r1 = Model.CreateResource(resourceUri); + + int val = 123; + r1.AddProperty(myProperty, val); + r1.Commit(); + r1 = Model.GetResource(resourceUri); + + object res = r1.ListValues(myProperty).First(); + + Assert.AreEqual(typeof(int), res.GetType()); + Assert.AreEqual(val, res); + } + + [Test] + public void TestInt16() + { + Uri resourceUri = new Uri("ex:myResource"); + Property myProperty = new Property(new Uri("ex:myProperty")); + + Resource r1 = Model.CreateResource(resourceUri); + Int16 val = 124; + r1.AddProperty(myProperty, val); + r1.Commit(); + + r1 = Model.GetResource(resourceUri); + + object res = r1.ListValues(myProperty).First(); + + Assert.AreEqual(typeof(Int16), res.GetType()); + Assert.AreEqual(val, res); + } + + [Test] + public void TestInt32() + { + Uri resourceUri = new Uri("ex:myResource"); + Property myProperty = new Property(new Uri("ex:myProperty")); + Resource r1 = Model.CreateResource(resourceUri); + Int32 val = 125; + r1.AddProperty(myProperty, val); + r1.Commit(); + r1 = Model.GetResource(resourceUri); + + object res = r1.ListValues(myProperty).First(); + + Assert.AreEqual(typeof(Int32), res.GetType()); + Assert.AreEqual(val, res); + + } + + [Test] + public void TestInt64() + { + Uri resourceUri = new Uri("ex:myResource"); + Property myProperty = new Property(new Uri("ex:myProperty")); + Resource r1 = Model.CreateResource(resourceUri); + Int64 val = 126; + r1.AddProperty(myProperty, val); + r1.Commit(); + r1 = Model.GetResource(resourceUri); + + object res = r1.ListValues(myProperty).First(); + + Assert.AreEqual(typeof(Int64), res.GetType()); + Assert.AreEqual(val, res); + } + + [Test] + public void TestUint() + { + Uri resourceUri = new Uri("ex:myResource"); + Property myProperty = new Property(new Uri("ex:myProperty")); + Resource r1 = Model.CreateResource(resourceUri); + uint val = 126; + r1.AddProperty(myProperty, val); + r1.Commit(); + r1 = Model.GetResource(resourceUri); + + object res = r1.ListValues(myProperty).First(); + + Assert.AreEqual(typeof(uint), res.GetType()); + Assert.AreEqual(val, res); + } + + [Test] + public void TestUint16() + { + Uri resourceUri = new Uri("ex:myResource"); + Property myProperty = new Property(new Uri("ex:myProperty")); + Resource r1 = Model.CreateResource(resourceUri); + UInt16 val = 126; + r1.AddProperty(myProperty, val); + r1.Commit(); + r1 = Model.GetResource(resourceUri); + + object res = r1.ListValues(myProperty).First(); + + Assert.AreEqual(typeof(UInt16), res.GetType()); + Assert.AreEqual(val, res); + } + + [Test] + public void TestUint32() + { + Uri resourceUri = new Uri("ex:myResource"); + Property myProperty = new Property(new Uri("ex:myProperty")); + Resource r1 = Model.CreateResource(resourceUri); + UInt32 val = 126; + r1.AddProperty(myProperty, val); + r1.Commit(); + r1 = Model.GetResource(resourceUri); + + object res = r1.ListValues(myProperty).First(); + + Assert.AreEqual(typeof(UInt32), res.GetType()); + Assert.AreEqual(val, res); + } + + [Test] + public void TestUint64() + { + Uri resourceUri = new Uri("ex:myResource"); + Property myProperty = new Property(new Uri("ex:myProperty")); + Resource r1 = Model.CreateResource(resourceUri); + UInt64 val = 126; + r1.AddProperty(myProperty, val); + r1.Commit(); + r1 = Model.GetResource(resourceUri); + + object res = r1.ListValues(myProperty).First(); + + Assert.AreEqual(typeof(UInt64), res.GetType()); + Assert.AreEqual(val, res); + } + + [Test] + public void TestFloat() + { + Uri resourceUri = new Uri("ex:myResource"); + Property myProperty = new Property(new Uri("ex:myProperty")); + Resource r1 = Model.CreateResource(resourceUri); + float val = 1.234F; + r1.AddProperty(myProperty, val); + r1.Commit(); + r1 = Model.GetResource(resourceUri); + + object res = r1.ListValues(myProperty).First(); + + Assert.AreEqual(typeof(float), res.GetType()); + Assert.AreEqual(val, res); + } + + [Test] + public void TestDouble() + { + Uri resourceUri = new Uri("ex:myResource"); + Property myProperty = new Property(new Uri("ex:myProperty")); + Resource r1 = Model.CreateResource(resourceUri); + double val = 1.223; + r1.AddProperty(myProperty, val); + r1.Commit(); + r1 = Model.GetResource(resourceUri); + + object res = r1.ListValues(myProperty).First(); + + Assert.AreEqual(typeof(double), res.GetType()); + Assert.AreEqual(val, res); + } + + [Test] + public void TestSingle() + { + Uri resourceUri = new Uri("ex:myResource"); + Property myProperty = new Property(new Uri("ex:myProperty")); + Resource r1 = Model.CreateResource(resourceUri); + Single val = 1.223F; + r1.AddProperty(myProperty, val); + r1.Commit(); + r1 = Model.GetResource(resourceUri); + + object res = r1.ListValues(myProperty).First(); + + Assert.AreEqual(typeof(Single), res.GetType()); + Assert.AreEqual(val, res); + } + + [Test] + public void TestString() + { + Uri resourceUri = new Uri("ex:myResource"); + Property myProperty = new Property(new Uri("ex:myProperty")); + Resource r1 = Model.CreateResource(resourceUri); + string val = "Hello World!"; + r1.AddProperty(myProperty, val); + r1.Commit(); + r1 = Model.GetResource(resourceUri); + + object res = r1.ListValues(myProperty).First(); + + Assert.AreEqual(typeof(string), res.GetType()); + Assert.AreEqual(val, res); + } + + [Test] + public void TestLocalizedString() + { + Property myProperty = new Property(new Uri("ex:myProperty")); + Resource r = Model.CreateResource(new Uri("ex:myResource")); + string val = "Hello World!"; + var ci = CultureInfo.CreateSpecificCulture("EN"); + r.AddProperty(myProperty, val, ci); + r.Commit(); + + var r1 = Model.GetResource(r.Uri); + object res = r1.ListValues(myProperty).First(); + Assert.AreEqual(typeof(Tuple), res.GetType()); + Tuple v = res as Tuple; + Assert.AreEqual(val, v.Item1); + Assert.AreEqual(ci.Name.ToLower(), v.Item2.ToLower()); + r.RemoveProperty(myProperty, val, ci); + } + + [Test] + public void TestDateTime() + { + Uri resourceUri = new Uri("ex:myResource"); + Property myProperty = new Property(new Uri("ex:myProperty")); + Resource r1 = Model.CreateResource(resourceUri); + DateTime val = DateTime.Today; + r1.AddProperty(myProperty, val); + r1.Commit(); + r1 = Model.GetResource(resourceUri); + + object res = r1.ListValues(myProperty).First(); + + Assert.AreEqual(typeof(DateTime), res.GetType()); + Assert.AreEqual(val.ToLocalTime(), ((DateTime)res).ToLocalTime()); + } + + [Test] + public void TestByteArray() + { + Uri resourceUri = new Uri("ex:myResource"); + Property myProperty = new Property(new Uri("ex:myProperty")); + Resource r1 = Model.CreateResource(resourceUri); + + byte[] val = new byte[] { 1, 2, 3, 4, 5 }; + + r1.AddProperty(myProperty, val); + r1.Commit(); + r1 = Model.GetResource(resourceUri); + + object res = r1.ListValues(myProperty).First(); + + Assert.AreEqual(typeof(byte[]), res.GetType()); + Assert.AreEqual(val, res); + + } + + #endregion + + } +} diff --git a/tests/Trinity.Tests.Stardog/SetupClass.cs b/tests/Trinity.Tests.Stardog/SetupClass.cs new file mode 100644 index 0000000..f5eacba --- /dev/null +++ b/tests/Trinity.Tests.Stardog/SetupClass.cs @@ -0,0 +1,44 @@ + +using System.Reflection; +using System.IO; +using NUnit.Framework; + + +namespace Semiodesk.Trinity.Test.Stardog +{ + [SetUpFixture] + public class SetupClass + { + #region Members + + public static string ConnectionString; + + + public static string HostAndPort; + #endregion + + #region Methods + + [OneTimeSetUp] + public void Setup() + { + Directory.SetCurrentDirectory(TestContext.CurrentContext.TestDirectory); + + OntologyDiscovery.AddAssembly(Assembly.GetExecutingAssembly()); + OntologyDiscovery.AddAssembly(typeof(AbstractMappingClass).Assembly); + MappingDiscovery.RegisterAssembly(typeof(AbstractMappingClass).Assembly); + + + //ConnectionString = _instance.GetTrinityConnectionString(); + //HostAndPort = _instance.Configuration.Parameters.ServerPort; + } + + [OneTimeTearDown] + public void TearDown() + { + + } + + #endregion + } +} diff --git a/Trinity.Tests/Stardog/StardogUpdateSparqlConverterTest.cs b/tests/Trinity.Tests.Stardog/StardogUpdateSparqlConverterTest.cs similarity index 99% rename from Trinity.Tests/Stardog/StardogUpdateSparqlConverterTest.cs rename to tests/Trinity.Tests.Stardog/StardogUpdateSparqlConverterTest.cs index fc0ad30..a16b094 100644 --- a/Trinity.Tests/Stardog/StardogUpdateSparqlConverterTest.cs +++ b/tests/Trinity.Tests.Stardog/StardogUpdateSparqlConverterTest.cs @@ -2,7 +2,6 @@ using System.Linq; using NUnit.Framework; using Semiodesk.Trinity.Store.Stardog; -using Semiodesk.Trinity.Stores.Stardog; using VDS.RDF; namespace Semiodesk.Trinity.Test.Stardog diff --git a/Trinity.Tests/Stardog/StoreHandleTest.cs b/tests/Trinity.Tests.Stardog/StoreHandleTest.cs similarity index 96% rename from Trinity.Tests/Stardog/StoreHandleTest.cs rename to tests/Trinity.Tests.Stardog/StoreHandleTest.cs index ff1704b..4a9aff8 100644 --- a/Trinity.Tests/Stardog/StoreHandleTest.cs +++ b/tests/Trinity.Tests.Stardog/StoreHandleTest.cs @@ -1,89 +1,89 @@ -// LICENSE: -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. -// -// AUTHORS: -// -// Moritz Eberl -// Sebastian Faubel -// -// Copyright (c) Semiodesk GmbH 2015-2019 - -using NUnit.Framework; -using Semiodesk.Trinity; -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Text; - -namespace Semiodesk.Trinity.Test.Stardog -{ - [TestFixture] - class StardogStoreHandleTest - { - - [Test] - public void TestOpenClose() - { - string connectionString = "provider=stardog;host=http://localhost:5820;uid=admin;pw=admin;sid=test"; - var p = new Property(new Uri("ex:myProperty")); - - var Store = StoreFactory.CreateStore(connectionString); - IModel m = Store.CreateModel(new UriRef("semio:test")); - m.Clear(); - var x = m.CreateResource(); - x.AddProperty(p, "uarg"); - x.Commit(); - Store.Dispose(); - - Store = StoreFactory.CreateStore(connectionString); - m = Store.CreateModel(new UriRef("semio:test")); - m.Clear(); - x = m.CreateResource(); - x.AddProperty(p, "uarg"); - x.Commit(); - Store.Dispose(); - - Store = StoreFactory.CreateStore(connectionString); - m = Store.CreateModel(new UriRef("semio:test")); - m.Clear(); - x = m.CreateResource(); - x.AddProperty(p, "uarg"); - x.Commit(); - Store.Dispose(); - - Store = StoreFactory.CreateStore(connectionString); - m = Store.CreateModel(new UriRef("semio:test")); - m.Clear(); - x = m.CreateResource(); - x.AddProperty(p, "uarg"); - x.Commit(); - Store.Dispose(); - - Store = StoreFactory.CreateStore(connectionString); - m = Store.CreateModel(new UriRef("semio:test")); - m.Clear(); - x = m.CreateResource(); - x.AddProperty(p, "uarg"); - x.Commit(); - Store.Dispose(); - } - } -} +// LICENSE: +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// +// AUTHORS: +// +// Moritz Eberl +// Sebastian Faubel +// +// Copyright (c) Semiodesk GmbH 2015-2019 + +using NUnit.Framework; +using Semiodesk.Trinity; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; + +namespace Semiodesk.Trinity.Test.Stardog +{ + [TestFixture] + class StardogStoreHandleTest : SetupClass + { + + [Test] + public void TestOpenClose() + { + string connectionString = "provider=stardog;host=http://localhost:5820;uid=admin;pw=admin;sid=test"; + var p = new Property(new Uri("ex:myProperty")); + + var Store = StoreFactory.CreateStore(connectionString); + IModel m = Store.CreateModel(new UriRef("semio:test")); + m.Clear(); + var x = m.CreateResource(); + x.AddProperty(p, "uarg"); + x.Commit(); + Store.Dispose(); + + Store = StoreFactory.CreateStore(connectionString); + m = Store.CreateModel(new UriRef("semio:test")); + m.Clear(); + x = m.CreateResource(); + x.AddProperty(p, "uarg"); + x.Commit(); + Store.Dispose(); + + Store = StoreFactory.CreateStore(connectionString); + m = Store.CreateModel(new UriRef("semio:test")); + m.Clear(); + x = m.CreateResource(); + x.AddProperty(p, "uarg"); + x.Commit(); + Store.Dispose(); + + Store = StoreFactory.CreateStore(connectionString); + m = Store.CreateModel(new UriRef("semio:test")); + m.Clear(); + x = m.CreateResource(); + x.AddProperty(p, "uarg"); + x.Commit(); + Store.Dispose(); + + Store = StoreFactory.CreateStore(connectionString); + m = Store.CreateModel(new UriRef("semio:test")); + m.Clear(); + x = m.CreateResource(); + x.AddProperty(p, "uarg"); + x.Commit(); + Store.Dispose(); + } + } +} diff --git a/Trinity.Tests/Stardog/StoreTest.cs b/tests/Trinity.Tests.Stardog/StoreTest.cs similarity index 96% rename from Trinity.Tests/Stardog/StoreTest.cs rename to tests/Trinity.Tests.Stardog/StoreTest.cs index ecf14fd..b04c7a0 100644 --- a/Trinity.Tests/Stardog/StoreTest.cs +++ b/tests/Trinity.Tests.Stardog/StoreTest.cs @@ -1,173 +1,173 @@ -// LICENSE: -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. -// -// AUTHORS: -// -// Moritz Eberl -// Sebastian Faubel -// -// Copyright (c) Semiodesk GmbH 2015-2019 - -using System; -using System.IO; -using NUnit.Framework; -using System.Linq; -using System.Reflection; - -namespace Semiodesk.Trinity.Test.Stardog -{ - /// - /// How to set up test database on Windows: - /// - /// 1. Download community edition - /// 2. Unzip to folder - /// 3. Copy license file "stardog-license-key.bin" to stardog folder - /// 4. Open commandline in bin directory - /// 5. Run - /// \>stardog-admin server start - /// - /// 6. Open another commandline in bin directory - /// 7. Run - /// \> stardog-admin user passwd - /// - /// 8. Set password to admin when promted - /// 9. Run - /// \>stardog-admin db create -n test - /// - [TestFixture] - class StardogStoreTest - { - protected IStore Store; - - protected Uri ModelUri = new Uri("ex:Test"); - - [SetUp] - public void SetUp() - { - Store = StoreFactory.CreateStore("provider=stardog;host=http://localhost:5820;uid=admin;pw=admin;sid=test"); - Store.RemoveModel(ModelUri); - } - - [TearDown] - public void TearDown() - { - Store.Dispose(); - Store = null; - } - - [Test] - public void LoadOntologiesTest() - { - Store.InitializeFromConfiguration(); - - Assert.AreEqual(8, Store.ListModels().Count()); - } - - [Test] - public void LoadOntologiesFromFileTest() - { - Assert.Inconclusive("How to make sure we have an empty store"); - - /* - string configFile = Path.Combine(Environment.CurrentDirectory, "custom.config"); - Store.InitializeFromConfiguration(configFile); - - Assert.AreEqual(4, Store.ListModels().Count()); - */ - } - - [Test] - public void ListModelsTest() - { - IModel m = Store.CreateModel(ModelUri); - - Assert.IsNotNull(m); - Assert.Greater(Store.ListModels().Count(), 0); - } - - [Test] - public void CreateModelTest() - { - IModel m = Store.CreateModel(ModelUri); - - Assert.IsNotNull(m); - } - - #pragma warning disable CS0618 // Type or member is obsolete - [Test] - public void ContainsModelTest() - { - Store.RemoveModel(ModelUri); - - Assert.IsFalse(Store.ContainsModel(ModelUri)); - - IModel m1 = Store.CreateModel(ModelUri); - - IResource r = m1.CreateResource(new Uri("ex:test:resource")); - - r.AddProperty(new Property(new Uri("ex:test:property")), "var"); - r.Commit(); - - - Assert.IsTrue(Store.ContainsModel(ModelUri)); - - Assert.IsFalse(Store.ContainsModel(new Uri("ex:NoTest"))); - } - #pragma warning restore CS0618 // Type or member is obsolete - - [Test] - public void GetModelTest() - { - IModel m1 = Store.CreateModel(ModelUri); - Assert.IsTrue(m1.IsEmpty); - - IResource r = m1.CreateResource(new Uri("ex:test:resource")); - r.AddProperty(new Property(new Uri("ex:test:property")), "var"); - r.Commit(); - - IModel m2 = Store.GetModel(ModelUri); - - Assert.AreEqual(ModelUri, m2.Uri); - Assert.IsTrue(m2.ContainsResource(r)); - } - - [Test] - public void RemoveModelTest() - { - Store.RemoveModel(ModelUri); - - IModel m1 = Store.CreateModel(ModelUri); - - IResource r = m1.CreateResource(new Uri("ex:test:resource")); - r.AddProperty(new Property(new Uri("ex:test:property")), "var"); - r.Commit(); - - IModel m2 = Store.GetModel(ModelUri); - - Assert.AreEqual(ModelUri, m2.Uri); - - Store.RemoveModel(ModelUri); - - m2 = Store.GetModel(ModelUri); - - Assert.IsTrue(m2.IsEmpty); - } - } -} +// LICENSE: +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// +// AUTHORS: +// +// Moritz Eberl +// Sebastian Faubel +// +// Copyright (c) Semiodesk GmbH 2015-2019 + +using System; +using System.IO; +using NUnit.Framework; +using System.Linq; +using System.Reflection; + +namespace Semiodesk.Trinity.Test.Stardog +{ + /// + /// How to set up test database on Windows: + /// + /// 1. Download community edition + /// 2. Unzip to folder + /// 3. Copy license file "stardog-license-key.bin" to stardog folder + /// 4. Open commandline in bin directory + /// 5. Run + /// \>stardog-admin server start + /// + /// 6. Open another commandline in bin directory + /// 7. Run + /// \> stardog-admin user passwd + /// + /// 8. Set password to admin when promted + /// 9. Run + /// \>stardog-admin db create -n test + /// + [TestFixture] + class StardogStoreTest : SetupClass + { + protected IStore Store; + + protected Uri ModelUri = new Uri("ex:Test"); + + [SetUp] + public void SetUp() + { + Store = StoreFactory.CreateStore("provider=stardog;host=http://localhost:5820;uid=admin;pw=admin;sid=test"); + Store.RemoveModel(ModelUri); + } + + [TearDown] + public void TearDown() + { + Store.Dispose(); + Store = null; + } + + [Test] + public void LoadOntologiesTest() + { + Store.InitializeFromConfiguration(); + + Assert.AreEqual(8, Store.ListModels().Count()); + } + + [Test] + public void LoadOntologiesFromFileTest() + { + Assert.Inconclusive("How to make sure we have an empty store"); + + /* + string configFile = Path.Combine(Environment.CurrentDirectory, "custom.config"); + Store.InitializeFromConfiguration(configFile); + + Assert.AreEqual(4, Store.ListModels().Count()); + */ + } + + [Test] + public void ListModelsTest() + { + IModel m = Store.CreateModel(ModelUri); + + Assert.IsNotNull(m); + Assert.Greater(Store.ListModels().Count(), 0); + } + + [Test] + public void CreateModelTest() + { + IModel m = Store.CreateModel(ModelUri); + + Assert.IsNotNull(m); + } + + #pragma warning disable CS0618 // Type or member is obsolete + [Test] + public void ContainsModelTest() + { + Store.RemoveModel(ModelUri); + + Assert.IsFalse(Store.ContainsModel(ModelUri)); + + IModel m1 = Store.CreateModel(ModelUri); + + IResource r = m1.CreateResource(new Uri("ex:test:resource")); + + r.AddProperty(new Property(new Uri("ex:test:property")), "var"); + r.Commit(); + + + Assert.IsTrue(Store.ContainsModel(ModelUri)); + + Assert.IsFalse(Store.ContainsModel(new Uri("ex:NoTest"))); + } + #pragma warning restore CS0618 // Type or member is obsolete + + [Test] + public void GetModelTest() + { + IModel m1 = Store.CreateModel(ModelUri); + Assert.IsTrue(m1.IsEmpty); + + IResource r = m1.CreateResource(new Uri("ex:test:resource")); + r.AddProperty(new Property(new Uri("ex:test:property")), "var"); + r.Commit(); + + IModel m2 = Store.GetModel(ModelUri); + + Assert.AreEqual(ModelUri, m2.Uri); + Assert.IsTrue(m2.ContainsResource(r)); + } + + [Test] + public void RemoveModelTest() + { + Store.RemoveModel(ModelUri); + + IModel m1 = Store.CreateModel(ModelUri); + + IResource r = m1.CreateResource(new Uri("ex:test:resource")); + r.AddProperty(new Property(new Uri("ex:test:property")), "var"); + r.Commit(); + + IModel m2 = Store.GetModel(ModelUri); + + Assert.AreEqual(ModelUri, m2.Uri); + + Store.RemoveModel(ModelUri); + + m2 = Store.GetModel(ModelUri); + + Assert.IsTrue(m2.IsEmpty); + } + } +} diff --git a/tests/Trinity.Tests.Stardog/Trinity.Tests.Stardog.csproj b/tests/Trinity.Tests.Stardog/Trinity.Tests.Stardog.csproj new file mode 100644 index 0000000..754e726 --- /dev/null +++ b/tests/Trinity.Tests.Stardog/Trinity.Tests.Stardog.csproj @@ -0,0 +1,27 @@ + + + + net472 + Trinity.Test.Stardog + Copyright © Semiodesk GmbH 2019 + + Semiodesk GmbH + 1.0.0.8 + 1.0.0.8 + 1.0.0.8 + Semiodesk.Trinity.Tests.Stardog + Semiodesk.Trinity.Tests.Stardog + Exe + + + + + + + + + + + + + diff --git a/tests/Trinity.Tests.Stardog/bin/Debug/net472/Models/rdf-schema.rdf b/tests/Trinity.Tests.Stardog/bin/Debug/net472/Models/rdf-schema.rdf new file mode 100644 index 0000000..bf17bab --- /dev/null +++ b/tests/Trinity.Tests.Stardog/bin/Debug/net472/Models/rdf-schema.rdf @@ -0,0 +1,130 @@ + + + + + + + Resource + The class resource, everything. + + + + + Class + The class of classes. + + + + + + subClassOf + The subject is a subclass of a class. + + + + + + + subPropertyOf + The subject is a subproperty of a property. + + + + + + + comment + A description of the subject resource. + + + + + + + label + A human-readable name for the subject. + + + + + + + domain + A domain of the subject property. + + + + + + + range + A range of the subject property. + + + + + + + seeAlso + Further information about the subject resource. + + + + + + + + isDefinedBy + The defininition of the subject resource. + + + + + + + Literal + The class of literal values, eg. textual strings and integers. + + + + + + Container + + The class of RDF containers. + + + + + ContainerMembershipProperty + The class of container membership properties, rdf:_1, rdf:_2, ..., + all of which are sub-properties of 'member'. + + + + + + member + A member of the subject resource. + + + + + + + Datatype + The class of RDF datatypes. + + + + + + + + diff --git a/tests/Trinity.Tests.Stardog/bin/Debug/net472/Models/rdf-syntax.rdf b/tests/Trinity.Tests.Stardog/bin/Debug/net472/Models/rdf-syntax.rdf new file mode 100644 index 0000000..a6815ec --- /dev/null +++ b/tests/Trinity.Tests.Stardog/bin/Debug/net472/Models/rdf-syntax.rdf @@ -0,0 +1,156 @@ + + + + The RDF Concepts Vocabulary (RDF) + This is the RDF Schema for the RDF vocabulary terms in the RDF Namespace, defined in RDF 1.1 Concepts. + + + + + + + HTML + The datatype of RDF literals storing fragments of HTML content + + + + + + + langString + The datatype of language-tagged string values + + + + + + + PlainLiteral + The class of plain (i.e. untyped) literal values, as used in RIF and OWL 2 + + + + + + type + The subject is an instance of a class. + + + + + + + Property + The class of RDF properties. + + + + + + Statement + + The class of RDF statements. + + + + + subject + The subject of the subject RDF statement. + + + + + + + predicate + The predicate of the subject RDF statement. + + + + + + + object + The object of the subject RDF statement. + + + + + + + Bag + The class of unordered containers. + + + + + + Seq + The class of ordered containers. + + + + + + Alt + The class of containers of alternatives. + + + + + + value + Idiomatic property used for structured values. + + + + + + + + + List + The class of RDF Lists. + + + + + + nil + The empty list, with no items in it. If the rest of a list is nil then the list has no more items in it. + + + + + first + The first item in the subject RDF list. + + + + + + + rest + The rest of the subject RDF list after the first item. + + + + + + + + XMLLiteral + The datatype of XML literal values. + + + + + + + + diff --git a/tests/Trinity.Tests.Stardog/bin/Debug/net472/Models/test-ntriples.nt b/tests/Trinity.Tests.Stardog/bin/Debug/net472/Models/test-ntriples.nt new file mode 100644 index 0000000..91b4988 --- /dev/null +++ b/tests/Trinity.Tests.Stardog/bin/Debug/net472/Models/test-ntriples.nt @@ -0,0 +1,79 @@ +# +# Copyright World Wide Web Consortium, (Massachusetts Institute of +# Technology, Institut National de Recherche en Informatique et en +# Automatique, Keio University). +# +# All Rights Reserved. +# +# Please see the full Copyright clause at +# +# +# Test file with a variety of legal N-Triples +# +# Dave Beckett - http://purl.org/net/dajobe/ +# +# $Id: test.nt,v 1.7 2003/10/06 15:52:19 dbeckett2 Exp $ +# +##################################################################### + +# comment lines + # comment line after whitespace +# empty blank line, then one with spaces and tabs + + + . +_:anon . + _:anon . +# spaces and tabs throughout: + . + +# line ending with CR NL (ASCII 13, ASCII 10) + . + +# 2 statement lines separated by single CR (ASCII 10) + . + . + + +# All literal escapes + "simple literal" . + "backslash:\\" . + "dquote:\"" . + "newline:\n" . + "return\r" . + "tab:\t" . + +# Space is optional before final . + . + "x". + _:anon. + +# \u and \U escapes +# latin small letter e with acute symbol \u00E9 - 3 UTF-8 bytes #xC3 #A9 + "\u00E9" . +# Euro symbol \u20ac - 3 UTF-8 bytes #xE2 #x82 #xAC + "\u20AC" . +# resource18 test removed +# resource19 test removed +# resource20 test removed + +# XML Literals as Datatyped Literals + ""^^ . + " "^^ . + "x"^^ . + "\""^^ . + ""^^ . + "a "^^ . + "a c"^^ . + "a\n\nc"^^ . + "chat"^^ . +# resource28 test removed 2003-08-03 +# resource29 test removed 2003-08-03 + +# Plain literals with languages + "chat"@fr . + "chat"@en . + +# Typed Literals + "abc"^^ . +# resource33 test removed 2003-08-03 diff --git a/tests/Trinity.Tests.Stardog/bin/Debug/net472/Models/test-ppo.rdf b/tests/Trinity.Tests.Stardog/bin/Debug/net472/Models/test-ppo.rdf new file mode 100644 index 0000000..a4dcaf0 --- /dev/null +++ b/tests/Trinity.Tests.Stardog/bin/Debug/net472/Models/test-ppo.rdf @@ -0,0 +1,102 @@ + + + + + + + + + + + Documents + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ddMMYYYY + MMddYYYY + + + + + + hhmmss + + + + + {Wahr,Falsch} + {True,False} + + + \ No newline at end of file diff --git a/tests/Trinity.Tests.Stardog/bin/Debug/net472/Models/test-tmo.trig b/tests/Trinity.Tests.Stardog/bin/Debug/net472/Models/test-tmo.trig new file mode 100644 index 0000000..c368bb9 --- /dev/null +++ b/tests/Trinity.Tests.Stardog/bin/Debug/net472/Models/test-tmo.trig @@ -0,0 +1,1145 @@ +# +# Copyright (c) 2007 NEPOMUK Consortium +# All rights reserved, licensed under either CC-BY or BSD. +# +# You are free: +# * to Share - to copy, distribute and transmit the work +# * to Remix - to adapt the work +# Under the following conditions: +# * Attribution - You must attribute the work in the manner specified by the author +# or licensor (but not in any way that suggests that they endorse you or your use +# of the work). +# +# Redistribution and use in source and binary forms, with or without modification, +# are permitted provided that the following conditions are met: +# * Redistributions of source code must retain the above copyright notice, this +# list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this +# list of conditions and the following disclaimer in the documentation and/or +# other materials provided with the distribution. +# * Neither the names of the authors nor the names of contributors may +# be used to endorse or promote products derived from this ontology without +# specific prior written permission. +# +# THIS ONTOLOGY IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +# THIS ONTOLOGY, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +@prefix dc: . +@prefix exif: . +@prefix geo: . +@prefix protege: . +@prefix nao: . +@prefix nfo: . +@prefix nie: . +@prefix ncal: . +@prefix nco: . +@prefix dcterms: . +@prefix rdfs: . +@prefix pimo: . +@prefix nmo: . +@prefix nrl: . +@prefix tmo: . +@prefix xsd: . +@prefix rdf: . +@prefix nid3: . +@prefix nexif: . + +tmo: {tmo:TMO_Instance_PersonInvolvementRole_Creator + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Creator" . + + tmo:abilityCarrierRole + a rdf:Property ; + rdfs:domain tmo:AbilityCarrierInvolvement ; + rdfs:label "abilityCarrierRole" ; + rdfs:range tmo:AbilityCarrierRole ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:PersonInvolvement + a rdfs:Class ; + rdfs:comment "PersonInvolvement realizes n-ary associations to Persons which are realtedd to an task. The involvement is further characterized by an PersonTaskRole." ; + rdfs:label "PersonInvolvement" ; + rdfs:subClassOf rdfs:Resource , pimo:Association . + + tmo:TMO_Instance_TaskState_Running + a tmo:TaskState ; + rdfs:label "TMO_Instance_TaskState_Running" . + + tmo:SimilarityDependence + a rdfs:Class ; + rdfs:label "SimilarityDependence" ; + rdfs:subClassOf tmo:UndirectedDependency . + + tmo:PredecessorDependency + a rdfs:Class ; + rdfs:comment "In a PredecessorDependency the dependencyMemberA is the task which is to be executed before dependencyMemberB." ; + rdfs:label "PredecessorDependency" ; + rdfs:subClassOf tmo:PredecessorSuccessorDependency . + + tmo:TMO_Instance_TaskContainer_outbox + a tmo:TaskContainer ; + rdfs:label "TMO_Instance_TaskContainer_outbox" . + + tmo:dueDate + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "dueDate" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf pimo:taskDueTime , tmo:dateTime ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_Urgency_04 + a tmo:Urgency ; + rdfs:label "TMO_Instance_Urgency_04" . + + tmo:Priority + a rdfs:Class ; + rdfs:label "Priority" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:TaskContainer + a rdfs:Class ; + rdfs:label "TaskContainer" ; + rdfs:subClassOf pimo:Collection . + + tmo:Task + a rdfs:Class ; + rdfs:comment "The tmo:task is the central entitiey of the tmo. Task can range from vague things to be possibly done in e distant future to concrete things to be done in a precise forseeable manner. It is not unrealisitc to assume that knowledge worker have hundred or more tasks a day." ; + rdfs:label "Task" ; + rdfs:subClassOf pimo:Task . + + tmo:PersonInvolvementRole + a rdfs:Class ; + rdfs:comment """They further specify the type a person was related to an task. +Examples instances of AttachmentRoles are e.g.""" ; + rdfs:label "PersonInvolvementRole" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:actualCompletion + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "actualCompletion" ; + rdfs:range rdfs:Literal ; + rdfs:subPropertyOf tmo:progress ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_PersonInvolvementRole_Co-worker + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Co-worker" . + + tmo:urgency + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "urgency" ; + rdfs:range tmo:Urgency ; + rdfs:subPropertyOf tmo:timemanagement ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_TaskContainer_archive + a tmo:TaskContainer ; + rdfs:label "TMO_Instance_TaskContainer_archive" . + + tmo:dependency + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "dependency" ; + rdfs:range tmo:TaskDependency . + + tmo:TMO_Instance_Importance_10 + a tmo:Importance ; + rdfs:label "TMO_Instance_Importance_10" . + + tmo:targetStartTime + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "targetStartTime" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:targetTime , tmo:startTime ; + nrl:maxCardinality "1" . + + tmo:dependencyDescription + a rdf:Property ; + rdfs:comment "Endusers can clarify why they created a depedency." ; + rdfs:domain tmo:TaskDependency ; + rdfs:label "dependencyDescription" ; + rdfs:subPropertyOf nao:description ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_Importance_09 + a tmo:Importance ; + rdfs:label "TMO_Instance_Importance_09" . + + tmo:transmissionState + a rdf:Property ; + rdfs:domain tmo:TaskTransmission ; + rdfs:label "transmissionState" ; + rdfs:range tmo:TransmissionState ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:AbilityCarrierRole + a rdfs:Class ; + rdfs:comment "Examples instances of AbilityCarrirRoles are e.g. \"requested\", \"required\" and \"used\" which further specify the type a person was involved in." ; + rdfs:label "AbilityCarrierRole" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:TMO_Instance_TaskState_Finalized + a tmo:TaskState ; + rdfs:label "TMO_Instance_TaskState_Finalized" . + + tmo:abilityCarrier + a rdf:Property ; + rdfs:domain tmo:AbilityCarrierInvolvement ; + rdfs:label "abilityCarrier" ; + rdfs:range tmo:AbilityCarrier ; + rdfs:subPropertyOf pimo:associationMember ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:TMO_Instance_TransmissionState_Rejected_Transmitted + a tmo:TransmissionState ; + rdfs:label "TMO_Instance_TransmissionState_Rejected_Transmitted" . + + tmo:TMO_Instance_Delegability_High + a tmo:Delegability ; + rdfs:label "TMO_Instance_Delegability_High" . + + tmo:TMO_Instance_Urgency_10 + a tmo:Urgency ; + rdfs:label "TMO_Instance_Urgency_10" . + + tmo:taskId + a rdf:Property ; + rdfs:comment """The Task Identifier allows a unique identification of a task object within the range of all Nepomuk objects. +The Task Identifier is automatically generated during the creation of a task. The generation of identifiers (IDs) is a Nepomuk architecture issue (Wp2000/WP6000).""" ; + rdfs:domain tmo:Task ; + rdfs:label "taskId" ; + rdfs:range rdfs:Literal ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:TMO_Instance_Importance_01 + a tmo:Importance ; + rdfs:label "TMO_Instance_Importance_01" . + + tmo:TMO_Instance_TransmissionType_Transfer + a tmo:TransmissionType ; + rdfs:label "TMO_Instance_TransmissionType_Transfer" . + + tmo:priority + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "priority" ; + rdfs:range tmo:Priority ; + rdfs:subPropertyOf tmo:timemanagement ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_Urgency_03 + a tmo:Urgency ; + rdfs:label "TMO_Instance_Urgency_03" . + + tmo:involvedPersons + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "involvedPersons" ; + rdfs:range tmo:PersonInvolvement ; + nrl:inverseProperty tmo:involvedPersonTask . + + tmo:involvedPerson + a rdf:Property ; + rdfs:domain tmo:PersonInvolvement ; + rdfs:label "involvedPerson" ; + rdfs:range pimo:Person ; + rdfs:subPropertyOf pimo:associationMember ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:TaskTransmission + a rdfs:Class ; + rdfs:comment """On the SSD, tasks are not restricted to one person and may cross from +the PTM of one person to the PTM of another. With transmission, we +refer to the process of sending a task – from one person (sender) to one +or more other persons (receiver(s)) (see Section 5.2.1.3 Task +Transmission). Task delegation and task transfer are two special kinds of +task transmission which are described at the end of this section. In +addition, the collaborative task is realized by task transmission. +For the process of sending a task, some information is required. This +information is also modelled in the task ontology. This information is still +useful after the process of sending a task was completed. Task Delegation is a process where the sender of the task restricts the +access rights of the receiver. This includes the right to distribute further +this task and additionally the obligation to give feedback to the sender. +The person that receives a task by delegation usually has not the full +control about the task. The attributes described in the following section +have the purpose to enable such \"access rights\". The receiver will also +probably have obligations regarding what to report to whom at which +time. +In contrast, the simplest case is that all rights are granted to the receiver +and there is no feedback desired by the sender. What to do with the task +may be apparent by the organization context, or it may be left to the +receiver. This is like sending an email – but with the advantage that the +information is transferred in the \"task space\" of the participating persons.""" ; + rdfs:label "TaskTransmission" ; + rdfs:subClassOf rdfs:Resource . + + tmo:containsTask + a rdf:Property ; + rdfs:domain tmo:TaskContainer ; + rdfs:label "containsTask" ; + rdfs:range tmo:Task ; + rdfs:subPropertyOf pimo:hasPart . + + tmo:TMO_Instance_PersonInvolvementRole_Suggested + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Suggested" . + + tmo:TMO_Instance_TaskState_Archived + a tmo:TaskState ; + rdfs:label "TMO_Instance_TaskState_Archived" . + + tmo:targetTime + a rdf:Property ; + rdfs:label "targetTime" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:dateTime ; + nrl:maxCardinality "1" . + + tmo:indexPosition + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "indexPosition" ; + rdfs:range rdfs:Literal ; + nrl:maxCardinality "1" . + + tmo:dependencyType + a rdf:Property ; + rdfs:label "dependencyType" ; + rdfs:range rdfs:Resource ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:targetEndTime + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "targetEndTime" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:targetTime , tmo:endTime ; + nrl:maxCardinality "1" . + + tmo:PredecessorSuccessorDependency + a rdfs:Class ; + rdfs:comment "The PredecessorSuccessorDependency enables a directed relation between task. By means of the concrete sublcasses one can further distinguish from which point of view this relation is created." ; + rdfs:label "PredecessorSuccessorDependency" ; + rdfs:subClassOf tmo:TaskDependency ; + protege:role "abstract" . + + tmo:TMO_Instance_Importance_08 + a tmo:Importance ; + rdfs:label "TMO_Instance_Importance_08" . + + tmo:attachmentReference + a rdf:Property ; + rdfs:domain tmo:Attachment ; + rdfs:label "attachmentReference" ; + rdfs:range rdfs:Resource ; + rdfs:subPropertyOf pimo:associationMember ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:TMO_Instance_Delegability_Never + a tmo:Delegability ; + rdfs:label "TMO_Instance_Delegability_Never" . + + tmo:superTask + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "superTask" ; + rdfs:range tmo:Task ; + rdfs:subPropertyOf pimo:partOf , tmo:taskReference ; + nrl:inverseProperty tmo:subTask ; + nrl:maxCardinality "1" . + + tmo:taskDescription + a rdf:Property ; + rdfs:comment """The task description helps users to understand the goal and the proceeding of a task. It can also describe the context of a task. The task description is composed at minimum of a summary of what is done to reach the goal. The task description is the main source for identifying related information, e.g., suitable patterns. +A Task Description can be either an informal, described textual content (?TextualDescription) or it can be a more formally structured representation (àFormalDescription). +Technology considerations: Informal descriptions allow for text similarity processing, a formal description allows for applying case based similarity measures.""" ; + rdfs:domain tmo:Task ; + rdfs:label "taskDescription" ; + rdfs:subPropertyOf nao:description ; + nrl:maxCardinality "1" . + + tmo:SuperSubTaskDependency + a rdfs:Class ; + rdfs:comment "By means of the SuperSubTaskDependency one can further describe the subtask-supertask relation .e.g by an descriptin. This enables an n-ary relation between subtask and supertask." ; + rdfs:label "SuperSubTaskDependency" ; + rdfs:subClassOf tmo:TaskDependency . + + tmo:contextTask + a rdf:Property ; + rdfs:label "contextTask" ; + rdfs:range tmo:Task ; + nrl:inverseProperty tmo:contextThread ; + nrl:maxCardinality "1" . + + tmo:SuccessorDependency + a rdfs:Class ; + rdfs:comment "In a SuccessorrDependency the dependencyMemberA is the task which is to be executed after dependencyMemberB." ; + rdfs:label "SuccessorDependency" ; + rdfs:subClassOf tmo:PredecessorSuccessorDependency . + + tmo:stateTypeRole + a rdf:Property ; + rdfs:label "stateTypeRole" ; + rdfs:range rdfs:Resource ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_TransmissionState_NotTransmitted + a tmo:TransmissionState ; + rdfs:label "TMO_Instance_TransmissionState_NotTransmitted" . + + tmo:TMO_Instance_Urgency_06 + a tmo:Urgency ; + rdfs:label "TMO_Instance_Urgency_06" . + + tmo:abilityCarrierInvolvement + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "abilityCarrierInvolvement" ; + rdfs:range tmo:AbilityCarrierInvolvement ; + nrl:inverseProperty tmo:abilityCarrierTask . + + tmo:TMO_Instance_AbilityCarrierRole_Required + a tmo:AbilityCarrierRole ; + rdfs:label "TMO_Instance_AbilityCarrierRole_Required" . + + tmo:actualStartTime + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "actualStartTime" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:actualTime , tmo:startTime ; + nrl:maxCardinality "1" . + + tmo:transmissionType + a rdf:Property ; + rdfs:domain tmo:TaskTransmission ; + rdfs:label "transmissionType" ; + rdfs:range tmo:TransmissionType ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:taskTransmission + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "taskTransmission" ; + rdfs:range tmo:TaskTransmission ; + nrl:inverseProperty tmo:transmissionTask . + + tmo:TMO_Instance_PersonInvolvementRole_Executor + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Executor" . + + tmo:targetCompletion + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "targetCompletion" ; + rdfs:range rdfs:Literal ; + rdfs:subPropertyOf tmo:progress ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_Delegability_Medium + a tmo:Delegability ; + rdfs:label "TMO_Instance_Delegability_Medium" . + + tmo:AgentAbilityCarrier + a rdfs:Class ; + rdfs:label "AgentAbilityCarrier" ; + rdfs:subClassOf tmo:AbilityCarrier ; + protege:role "abstract" . + + tmo:transmissionTask + a rdf:Property ; + rdfs:domain tmo:TaskTransmission ; + rdfs:label "transmissionTask" ; + rdfs:range tmo:Task ; + rdfs:subPropertyOf tmo:taskReference ; + nrl:inverseProperty tmo:taskTransmission ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:Attachment + a rdfs:Class ; + rdfs:comment "By means of attachments, references to other resources can be established. Resources are information objects. Every Thing, which can be referenced, on the SSD is an information object. In contrast to the usual SSD references/associations, here additionally information can be specified. Further metadata about the role an attachment plays can be stated by means of instances of AttachmentRole. It can be expressed what the Role of attachment is e.g., regarding \"desired/requested\" or \"required\" or \"potentially useful / somehow related\" or \"used/produced/achieved\". The reference property models the actual link to the attached piece of information." ; + rdfs:label "Attachment" ; + rdfs:subClassOf rdfs:Resource , pimo:Association . + + tmo:TMO_Instance_TaskPrivacy_Private + a tmo:TaskPrivacyState ; + rdfs:label "TMO_Instance_TaskPrivacy_Private" . + + tmo:TMO_Instance_Importance_07 + a tmo:Importance ; + rdfs:label "TMO_Instance_Importance_07" . + + tmo:AssociationDependency + a rdfs:Class ; + rdfs:label "AssociationDependency" ; + rdfs:subClassOf tmo:UndirectedDependency . + + tmo:nextReviewIntervall + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "nextReviewIntervall" ; + rdfs:range xsd:integer ; + nrl:maxCardinality "1" . + + tmo:transmissionFrom + a rdf:Property ; + rdfs:domain tmo:TaskTransmission ; + rdfs:label "transmissionFrom" ; + rdfs:range pimo:Person ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:taskState + a rdf:Property ; + rdfs:comment "The task state describes the current state of the task as described in Section 5.2.7." ; + rdfs:domain tmo:Task ; + rdfs:label "taskState" ; + rdfs:range tmo:TaskState ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:delegability + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "delegability" ; + rdfs:range tmo:Delegability ; + rdfs:subPropertyOf tmo:timemanagement ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_PersonInvolvementRole_Related + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Related" . + + tmo:TMO_Instance_TaskContainer_inbox + a tmo:TaskContainer ; + rdfs:label "TMO_Instance_TaskContainer_inbox" . + + tmo:TMO_Instance_AttachmentRole_Required + a tmo:AttachmentRole ; + rdfs:label "TMO_Instance_AttachmentRole_Required" . + + tmo:taskPrivacyState + a rdf:Property ; + rdfs:comment """For the separation between professional and private purpose of a task, this attribute provides with the values \"professional/private\" a high level separation of privacy in terms of setting distribution rights to other users for the task. +This separation may arise as a general Nepomuk issue and may therefore be handled in conjunction with a privacy preserving SSD architecture.""" ; + rdfs:domain tmo:Task ; + rdfs:label "taskPrivacyState" ; + rdfs:range tmo:TaskPrivacyState ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" . + + tmo:taskName + a rdf:Property ; + rdfs:comment "The Task Name helps the user to identify a task in a list. It should be expressive enough to give a meaningful recognition. Details should be written in the description attribute instead. A name attribute is not allowed to contain line breaks." ; + rdfs:domain tmo:Task ; + rdfs:label "taskName" ; + rdfs:range rdfs:Literal ; + rdfs:subPropertyOf nao:prefLabel ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_AbilityCarrierRole_Requested + a tmo:AbilityCarrierRole ; + rdfs:label "TMO_Instance_AbilityCarrierRole_Requested" . + + tmo:TMO_Instance_PersonInvolvementRole_Controller + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Controller" . + + tmo:TMO_Instance_PersonInvolvementRole_Delegate + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Delegate" . + + tmo:transmissionStateChangesFrom + a rdf:Property ; + rdfs:domain tmo:TransmissionState ; + rdfs:label "transmissionStateChangesFrom" ; + rdfs:range tmo:TransmissionState ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" . + + tmo:TransmissionState + a rdfs:Class ; + rdfs:comment "States a task can go through during transmission of an task." ; + rdfs:label "TransmissionState" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:transmissionStateChangesTo + a rdf:Property ; + rdfs:domain tmo:TransmissionState ; + rdfs:label "transmissionStateChangesTo" ; + rdfs:range tmo:TransmissionState ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_PersonInvolvementRole_ExternalObserver + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_ExternalObserver" . + + tmo:TMO_Instance_Urgency_05 + a tmo:Urgency ; + rdfs:label "TMO_Instance_Urgency_05" . + + tmo:TaskDependency + a rdfs:Class ; + rdfs:comment """Between the tasks, further dependencies may exist. These dependencies allow for a graph network structure. For ease of use, dependencies should not be too frequent, otherwise the primarily character of a hierarchy would be diminished and a consequent graph representation would become considerable. However, such a graph representation has other drawbacks, the user is likely to loose oversight, tree structures are more helpful in structuring the work. + +A dependency relation is characterized by the type of the relation and by an additional description. There are different possibilities for dependency relations between tasks.""" ; + rdfs:label "TaskDependency" ; + rdfs:subClassOf rdfs:Resource , pimo:Association ; + protege:role "abstract" . + + tmo:TMO_Instance_TaskState_Completed + a tmo:TaskState ; + rdfs:label "TMO_Instance_TaskState_Completed" . + + tmo:TMO_Instance_Importance_06 + a tmo:Importance ; + rdfs:label "TMO_Instance_Importance_06" . + + tmo:attachmentRole + a rdf:Property ; + rdfs:domain tmo:Attachment ; + rdfs:label "attachmentRole" ; + rdfs:range tmo:AttachmentRole ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_TaskPrivacy_Professional + a tmo:TaskPrivacyState ; + rdfs:label "TMO_Instance_TaskPrivacy_Professional" . + + tmo:TMO_Instance_TaskState_Terminated + a tmo:TaskState ; + rdfs:label "TMO_Instance_TaskState_Terminated" . + + tmo:TMO_Instance_PersonInvolvementRole_Owner + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Owner" . + + tmo:TMO_Instance_AttachmentRole_Desired_Requested + a tmo:AttachmentRole ; + rdfs:label "TMO_Instance_AttachmentRole_Desired_Requested" . + + tmo:involvedPersonTask + a rdf:Property ; + rdfs:domain tmo:PersonInvolvement ; + rdfs:label "involvedPersonTask" ; + rdfs:range tmo:Task ; + rdfs:subPropertyOf pimo:associationMember ; + nrl:inverseProperty tmo:involvedPersons ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_TransmissionState_Accepted_NotTransmitted + a tmo:TransmissionState ; + rdfs:label "TMO_Instance_TransmissionState_Accepted_NotTransmitted" . + + tmo:TMO_Instance_PersonInvolvementRole_Analyst + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Analyst" . + + tmo:logEntry + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "logEntry" ; + rdfs:range rdfs:Resource . + + tmo:transmissionTo + a rdf:Property ; + rdfs:domain tmo:TaskTransmission ; + rdfs:label "transmissionTo" ; + rdfs:range pimo:Person ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:Importance + a rdfs:Class ; + rdfs:label "Importance" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:TMO_Instance_TransmissionType_Join + a tmo:TransmissionType ; + rdfs:label "TMO_Instance_TransmissionType_Join" . + + tmo:Delegability + a rdfs:Class ; + rdfs:label "Delegability" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:lastReviewDate + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "lastReviewDate" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:dateTime ; + nrl:maxCardinality "1" . + + tmo:Role + a rdfs:Class ; + rdfs:comment "examples: Architect, Developer, ..." ; + rdfs:label "Role" ; + rdfs:subClassOf tmo:AbilityCarrier . + + tmo:timemanagement + a rdf:Property ; + rdfs:label "timemanagement" ; + rdfs:range rdfs:Literal ; + nrl:maxCardinality "1" . + + tmo:taskGoal + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "taskGoal" ; + rdfs:range rdfs:Resource . + + tmo:dependencyMemberA + a rdf:Property ; + rdfs:comment "The semantic of this relation is defined in the sublclass of undirected Dependency on which this property is stated. (The subject of the statment where this property is expressed)" ; + rdfs:domain tmo:TaskDependency ; + rdfs:label "dependencyMemberA" ; + rdfs:range tmo:Task ; + rdfs:subPropertyOf tmo:taskReference , pimo:associationMember ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:startTime + a rdf:Property ; + rdfs:label "startTime" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:dateTime ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_Urgency_08 + a tmo:Urgency ; + rdfs:label "TMO_Instance_Urgency_08" . + + tmo:taskStateChangesFrom + a rdf:Property ; + rdfs:domain tmo:TaskState ; + rdfs:label "taskStateChangesFrom" ; + rdfs:range tmo:TaskState ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" . + + tmo:receiveDateTime + a rdf:Property ; + rdfs:domain tmo:TaskTransmission ; + rdfs:label "receiveDateTime" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:dateTime ; + nrl:maxCardinality "1" . + + tmo:createdBy + a rdf:Property ; + rdfs:domain tmo:Attachment ; + rdfs:label "createdBy" ; + rdfs:range pimo:Person ; + nrl:maxCardinality "1" . + + tmo:progress + a rdf:Property ; + rdfs:label "progress" ; + rdfs:range rdfs:Literal ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_AbilityCarrierRole_Used + a tmo:AbilityCarrierRole ; + rdfs:label "TMO_Instance_AbilityCarrierRole_Used" . + + tmo:TMO_Instance_Importance_05 + a tmo:Importance ; + rdfs:label "TMO_Instance_Importance_05" . + + tmo:TMO_Instance_TaskContainer_activetasks + a tmo:TaskContainer ; + rdfs:label "TMO_Instance_TaskContainer_activetasks" . + + tmo:sendDateTime + a rdf:Property ; + rdfs:domain tmo:TaskTransmission ; + rdfs:label "sendDateTime" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:dateTime ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_PersonInvolvementRole_Collaborator + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Collaborator" . + + tmo:TMO_Instance_TaskState_Suspended + a tmo:TaskState ; + rdfs:label "TMO_Instance_TaskState_Suspended" . + + tmo:AbilityCarrierInvolvement + a rdfs:Class ; + rdfs:comment "The class AbilityCarrier_Involvement ties together an AbilityCarrier with an AbilityCarrier_Role. This is a role based modelling approach. An n-ary relation is realized." ; + rdfs:label "AbilityCarrierInvolvement" ; + rdfs:subClassOf rdfs:Resource , pimo:Association . + + tmo:endTime + a rdf:Property ; + rdfs:label "endTime" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:dateTime ; + nrl:maxCardinality "1" . + + tmo:dependencyMemberB + a rdf:Property ; + rdfs:comment "The semantic of this relation is defined in the sublclass of undirected Dependency on which this property is stated. (The subject of the statment where this property is expressed)" ; + rdfs:domain tmo:TaskDependency ; + rdfs:label "dependencyMemberB" ; + rdfs:range tmo:Task ; + rdfs:subPropertyOf tmo:taskReference , pimo:associationMember ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:TMO_Instance_Priority_High + a tmo:Priority ; + rdfs:label "TMO_Instance_Priority_High" . + + tmo:TMO_Instance_PersonInvolvementRole_Observer + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Observer" . + + tmo:TMO_Instance_Delegability_Unrestricted + a tmo:Delegability ; + rdfs:label "TMO_Instance_Delegability_Unrestricted" . + + tmo:TMO_Instance_Priority_Medium + a tmo:Priority ; + rdfs:label "TMO_Instance_Priority_Medium" . + + tmo:TMO_Instance_Delegability_Low + a tmo:Delegability ; + rdfs:label "TMO_Instance_Delegability_Low" . + + tmo:Interdependence + a rdfs:Class ; + rdfs:label "Interdependence" ; + rdfs:subClassOf tmo:UndirectedDependency . + + tmo:involvedPersonRole + a rdf:Property ; + rdfs:domain tmo:PersonInvolvement ; + rdfs:label "involvedPersonRole" ; + rdfs:range tmo:PersonInvolvementRole ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:AttachmentRole + a rdfs:Class ; + rdfs:comment "AttachmentRoles further specify the type of how an attachment relates to a task. Example instances of AttachmentRoles are e.g. \"desired_request\", \"required\" and \"used\"." ; + rdfs:label "AttachmentRole" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:TMO_Instance_Urgency_07 + a tmo:Urgency ; + rdfs:label "TMO_Instance_Urgency_07" . + + tmo:TMO_Instance_PersonInvolvementRole_Reviewer + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Reviewer" . + + tmo:TransmissionType + a rdfs:Class ; + rdfs:comment "By means of the TransmissionType one can distinguish several different types which might imply a different business logic. e.g. delegation can mean that the results of the task fulfillment care to be reported back to the sender of the task." ; + rdfs:label "TransmissionType" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:actualEndTime + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "actualEndTime" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:endTime , tmo:actualTime ; + nrl:maxCardinality "1" . + + tmo:subTask + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "subTask" ; + rdfs:range tmo:Task ; + rdfs:subPropertyOf pimo:hasPart ; + nrl:inverseProperty tmo:superTask . + + tmo:TMO_Instance_TransmissionType_Delegation + a tmo:TransmissionType ; + rdfs:label "TMO_Instance_TransmissionType_Delegation" . + + tmo:TMO_Instance_Importance_04 + a tmo:Importance ; + rdfs:label "TMO_Instance_Importance_04" . + + tmo:TaskState + a rdfs:Class ; + rdfs:comment """The task state property allows tracking a task during its lifecycle. Initially the state is just \"created\". +The TaskState class was modeled so that for each state can be set which the typical prior and posterior states are. This has the advantage that e.g. a UI can retrieve the allowed states at runtime from the ontology; rather can having this potentially changing knowledge hard coded. But the prior and posterior states are only defaults; the human user is always free to change the state.""" ; + rdfs:label "TaskState" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:taskSource + a rdf:Property ; + rdfs:comment "here can be stated from which sources a task was derived. e.g from another task or from an task pattern" ; + rdfs:domain tmo:Task ; + rdfs:label "taskSource" ; + rdfs:range rdfs:Resource ; + rdfs:subPropertyOf tmo:taskReference ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_Urgency_02 + a tmo:Urgency ; + rdfs:label "TMO_Instance_Urgency_02" . + + tmo:TMO_Instance_TransmissionState_Accepted_Transmitted + a tmo:TransmissionState ; + rdfs:label "TMO_Instance_TransmissionState_Accepted_Transmitted" . + + tmo:TMO_Instance_TaskState_New + a tmo:TaskState ; + rdfs:label "TMO_Instance_TaskState_New" . + + tmo:Urgency + a rdfs:Class ; + rdfs:label "Urgency" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:StateTypeRole + a rdfs:Class ; + rdfs:comment "StateTypeRole is an abstract class which subsumes various other classes which represent \"states\" or roles e.g. in role based modelling conpetualisations." ; + rdfs:label "StateTypeRole" ; + rdfs:subClassOf rdfs:Resource . + + tmo:TMO_Instance_TaskContainer_trashtasks + a tmo:TaskContainer ; + rdfs:label "TMO_Instance_TaskContainer_trashtasks" . + + tmo:contextThread + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "contextThread" ; + rdfs:range ; + nrl:inverseProperty tmo:contextTask ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_AttachmentRole_Used + a tmo:AttachmentRole ; + rdfs:label "TMO_Instance_AttachmentRole_Used" . + + tmo:abilityCarrierTask + a rdf:Property ; + rdfs:domain tmo:AbilityCarrierInvolvement ; + rdfs:label "abilityCarrierTask" ; + rdfs:range tmo:Task ; + rdfs:subPropertyOf pimo:associationMember ; + nrl:inverseProperty tmo:abilityCarrierInvolvement ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_TransmissionState_Rejected_NotTransmitted + a tmo:TransmissionState ; + rdfs:label "TMO_Instance_TransmissionState_Rejected_NotTransmitted" . + + tmo:TMO_Instance_Priority_Low + a tmo:Priority ; + rdfs:label "TMO_Instance_Priority_Low" . + + tmo:TMO_Instance_TransmissionState_Transmitted + a tmo:TransmissionState ; + rdfs:label "TMO_Instance_TransmissionState_Transmitted" . + + tmo:TMO_Instance_Importance_03 + a tmo:Importance ; + rdfs:label "TMO_Instance_Importance_03" . + + tmo:TMO_Instance_AttachmentRole_Related + a tmo:AttachmentRole ; + rdfs:label "TMO_Instance_AttachmentRole_Related" . + + tmo:taskReference + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "taskReference" ; + rdfs:range tmo:Task ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_PersonInvolvementRole_Involved + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Involved" . + + tmo:AbilityCarrier + a rdfs:Class ; + rdfs:comment """AbilityCarrier is an abstract class which circumferences all entities which can take action or which are somehow involved in tasks. +This is in other task conceptualizations rather named \"actor\". But here it is named AbilityCarrier because it is not neccessarily \"active\". + +The execution of a task relies on certain abilities. The abstract concept of +Abilitiy_Carriers circumference all those more concrete concepts +of which one can think of while working on tasks. Using this abstract +class enables to substitute such Ability Carrier's in the process of +generating patterns from task instances and vice versa in the process of +instantiating task instances from patterns without violating the schema. +With this attribute, a series of ability carrying entities (Person, Role, +Skill, OrganizationalUnit, InformalDescribedAbility) +and the role of involvement (required, request, used) is enabled. The role +hereby allows specifying how the ability carrying entity is or was +involved.""" ; + rdfs:label "AbilityCarrier" ; + rdfs:subClassOf rdfs:Resource ; + protege:role "abstract" . + + tmo:importance + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "importance" ; + rdfs:range tmo:Importance ; + rdfs:subPropertyOf tmo:timemanagement ; + nrl:maxCardinality "1" . + + tmo:subTaskOrdering + a rdf:Property ; + rdfs:comment "Ordering of the subtasks listed in the tmo:subTasks property of this Task. This is only for ordering/sorting in GUIs, the semantic relation is defined in subTasks, and if this and subTasks differ, subTasks is the correct list." ; + rdfs:domain tmo:Task ; + rdfs:label "subTaskOrdering" ; + rdfs:range rdf:List ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_Urgency_01 + a tmo:Urgency ; + rdfs:label "TMO_Instance_Urgency_01" . + + tmo:dependencyOrderNumber + a rdf:Property ; + rdfs:domain tmo:TaskDependency ; + rdfs:label "dependencyOrderNumber" ; + rdfs:range xsd:int ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:actualTime + a rdf:Property ; + rdfs:label "actualTime" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:dateTime ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_PersonInvolvementRole_Initiator + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Initiator" . + + tmo:dateTime + a rdf:Property ; + rdfs:comment "dateTime subsumes various properties with Range XMLSchema:dateTime. If possible they are further grouped by \"abstract\" properties." ; + rdfs:label "dateTime" ; + rdfs:range xsd:dateTime ; + nrl:maxCardinality "1" . + + tmo:UndirectedDependency + a rdfs:Class ; + rdfs:comment "A symmetric relations between task." ; + rdfs:label "UndirectedDependency" ; + rdfs:subClassOf tmo:TaskDependency . + + tmo:attachment + a rdf:Property ; + rdfs:comment "connects a Task with an Attachment object. Attachments are associations of Things." ; + rdfs:domain tmo:Task ; + rdfs:label "attachment" ; + rdfs:range tmo:Attachment ; + nrl:inverseProperty tmo:attachmentTask . + + tmo:attachmentTask + a rdf:Property ; + rdfs:comment "Inverse of attachment, connects an Attachment Association to the associated Task. Is required for every instance of Attachment." ; + rdfs:domain tmo:Attachment ; + rdfs:label "attachmentTask" ; + rdfs:range tmo:Task ; + rdfs:subPropertyOf pimo:associationMember ; + nrl:inverseProperty tmo:attachment ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_PersonInvolvementRole_Receiver + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Receiver" . + + tmo:TMO_Instance_TaskState_Deleted + a tmo:TaskState ; + rdfs:label "TMO_Instance_TaskState_Deleted" . + + tmo:taskStateChangesTo + a rdf:Property ; + rdfs:domain tmo:TaskState ; + rdfs:label "taskStateChangesTo" ; + rdfs:range tmo:TaskState ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" . + + tmo:TaskPrivacyState + a rdfs:Class ; + rdfs:comment """Privacy Status serves for the separation between a professional and a private purpose of a task. This attribute provides with the values \"professional/private\" a high-level separation of privacy in terms of setting distribution and access +rights to other users for the task. +This separation may arise as a general Nepomuk issue and may therefore be handled in conjunction with a privacy preserving SSD architecture.""" ; + rdfs:label "TaskPrivacyState" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:TMO_Instance_Urgency_09 + a tmo:Urgency ; + rdfs:label "TMO_Instance_Urgency_09" . + + tmo:TMO_Instance_Importance_02 + a tmo:Importance ; + rdfs:label "TMO_Instance_Importance_02" . + + tmo:TMO_Instance_PersonInvolvementRole_InternalObserver + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_InternalObserver" . + + tmo:Skill + a rdfs:Class ; + rdfs:comment "examples are e.g. technologies like Java, XML, ..." ; + rdfs:label "Skill" ; + rdfs:subClassOf tmo:AbilityCarrier . +} + + {tmo: a nrl:Ontology ; + nao:creator ; + nao:hasDefaultNamespace + "http://www.semanticdesktop.org/ontologies/2008/05/20/tmo#" ; + nao:hasDefaultNamespaceAbbreviation + "tmo" ; + nao:lastModified "2009-08-14T10:04:25.546Z" ; + nao:status "Unstable" ; + nao:updatable "0 " ; + nao:version "0.9.0" ; + nao:prefLabel "Task Management Ontology" ; + nao:description "The TMO Ontology can be used to describe personal tasks of individuals, also known as to-do lists. It is based on RDF and NRL, the Nepomuk Representational Language and other Semantic Web ontologies." . + + + a nrl:GraphMetadata ; + nrl:coreGraphMetadataFor + tmo: . +} + diff --git a/tests/Trinity.Tests.Stardog/bin/Debug/net472/Models/test-vocab.rdf b/tests/Trinity.Tests.Stardog/bin/Debug/net472/Models/test-vocab.rdf new file mode 100644 index 0000000..b295ae6 --- /dev/null +++ b/tests/Trinity.Tests.Stardog/bin/Debug/net472/Models/test-vocab.rdf @@ -0,0 +1,39 @@ + + + + + + + Animal + An animal + + + + + Horse + A Horse + + + + + + consumes + Something an animal consumes. + + + + + + consumes + Something an animal consumes. + + + + + diff --git a/tests/Trinity.Tests.Stardog/bin/Debug/net472/Ontologies/dces.ttl b/tests/Trinity.Tests.Stardog/bin/Debug/net472/Ontologies/dces.ttl new file mode 100644 index 0000000..4510e02 --- /dev/null +++ b/tests/Trinity.Tests.Stardog/bin/Debug/net472/Ontologies/dces.ttl @@ -0,0 +1,177 @@ +@prefix rdf: . +@prefix owl: . +@prefix skos: . +@prefix dcam: . +@prefix dcterms: . +@prefix rdfs: . + + + dcterms:modified "2013-01-03"^^ ; + dcterms:publisher ; + dcterms:title "Dublin Core Metadata Element Set, Version 1.1"@en . + + + dcterms:description "Examples of a Contributor include a person, an organization, or a service. Typically, the name of a Contributor should be used to indicate the entity."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "An entity responsible for making contributions to the resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Contributor"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Spatial topic and spatial applicability may be a named place or a location specified by its geographic coordinates. Temporal topic may be a named period, date, or date range. A jurisdiction may be a named administrative entity or a geographic place to which the resource applies. Recommended best practice is to use a controlled vocabulary such as the Thesaurus of Geographic Names [TGN]. Where appropriate, named places or time periods can be used in preference to numeric identifiers such as sets of coordinates or date ranges."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "The spatial or temporal topic of the resource, the spatial applicability of the resource, or the jurisdiction under which the resource is relevant."@en ; + rdfs:isDefinedBy ; + rdfs:label "Coverage"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Examples of a Creator include a person, an organization, or a service. Typically, the name of a Creator should be used to indicate the entity."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "An entity primarily responsible for making the resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Creator"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Date may be used to express temporal information at any level of granularity. Recommended best practice is to use an encoding scheme, such as the W3CDTF profile of ISO 8601 [W3CDTF]."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "A point or period of time associated with an event in the lifecycle of the resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Date"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Description may include but is not limited to: an abstract, a table of contents, a graphical representation, or a free-text account of the resource."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "An account of the resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Description"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Examples of dimensions include size and duration. Recommended best practice is to use a controlled vocabulary such as the list of Internet Media Types [MIME]."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "The file format, physical medium, or dimensions of the resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Format"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Recommended best practice is to identify the resource by means of a string conforming to a formal identification system. "@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "An unambiguous reference to the resource within a given context."@en ; + rdfs:isDefinedBy ; + rdfs:label "Identifier"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Recommended best practice is to use a controlled vocabulary such as RFC 4646 [RFC4646]."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "A language of the resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Language"@en ; + rdfs:seeAlso ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Examples of a Publisher include a person, an organization, or a service. Typically, the name of a Publisher should be used to indicate the entity."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "An entity responsible for making the resource available."@en ; + rdfs:isDefinedBy ; + rdfs:label "Publisher"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Recommended best practice is to identify the related resource by means of a string conforming to a formal identification system. "@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "A related resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Relation"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Typically, rights information includes a statement about various property rights associated with the resource, including intellectual property rights."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "Information about rights held in and over the resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Rights"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "The described resource may be derived from the related resource in whole or in part. Recommended best practice is to identify the related resource by means of a string conforming to a formal identification system."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "A related resource from which the described resource is derived."@en ; + rdfs:isDefinedBy ; + rdfs:label "Source"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Typically, the subject will be represented using keywords, key phrases, or classification codes. Recommended best practice is to use a controlled vocabulary."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2012-06-14"^^ ; + a rdf:Property ; + rdfs:comment "The topic of the resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Subject"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "A name given to the resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Title"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Recommended best practice is to use a controlled vocabulary such as the DCMI Type Vocabulary [DCMITYPE]. To describe the file format, physical medium, or dimensions of the resource, use the Format element."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "The nature or genre of the resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Type"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + diff --git a/tests/Trinity.Tests.Stardog/bin/Debug/net472/Ontologies/fo af.rdf b/tests/Trinity.Tests.Stardog/bin/Debug/net472/Ontologies/fo af.rdf new file mode 100644 index 0000000..68d0700 --- /dev/null +++ b/tests/Trinity.Tests.Stardog/bin/Debug/net472/Ontologies/fo af.rdf @@ -0,0 +1,609 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Label Property + A foaf:LabelProperty is any RDF property with texual values that serve as labels. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/Trinity.Tests.Stardog/bin/Debug/net472/Ontologies/foaf.rdf b/tests/Trinity.Tests.Stardog/bin/Debug/net472/Ontologies/foaf.rdf new file mode 100644 index 0000000..68d0700 --- /dev/null +++ b/tests/Trinity.Tests.Stardog/bin/Debug/net472/Ontologies/foaf.rdf @@ -0,0 +1,609 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Label Property + A foaf:LabelProperty is any RDF property with texual values that serve as labels. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/Trinity.Tests.Stardog/bin/Debug/net472/Ontologies/nco.trig b/tests/Trinity.Tests.Stardog/bin/Debug/net472/Ontologies/nco.trig new file mode 100644 index 0000000..c7b560c --- /dev/null +++ b/tests/Trinity.Tests.Stardog/bin/Debug/net472/Ontologies/nco.trig @@ -0,0 +1,811 @@ +# +# Copyright (c) 2007 NEPOMUK Consortium +# Copyright (c) 2009-2011 Sebastian Trueg +# +# All rights reserved, licensed under either CC-BY or BSD. +# +# You are free: +# * to Share - to copy, distribute and transmit the work +# * to Remix - to adapt the work +# Under the following conditions: +# * Attribution - You must attribute the work in the manner specified by the author +# or licensor (but not in any way that suggests that they endorse you or your use +# of the work). +# +# Redistribution and use in source and binary forms, with or without modification, +# are permitted provided that the following conditions are met: +# * Redistributions of source code must retain the above copyright notice, this +# list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this +# list of conditions and the following disclaimer in the documentation and/or +# other materials provided with the distribution. +# * Neither the names of the authors nor the names of contributors may +# be used to endorse or promote products derived from this ontology without +# specific prior written permission. +# +# THIS ONTOLOGY IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +# THIS ONTOLOGY, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +@prefix exif: . +@prefix nid3: . +@prefix nrl: . +@prefix nfo: . +@prefix xsd: . +@prefix tmo: . +@prefix protege: . +@prefix nmo: . +@prefix rdfs: . +@prefix nexif: . +@prefix ncal: . +@prefix pimo: . +@prefix dcterms: . +@prefix nao: . +@prefix geo: . +@prefix dc: . +@prefix nie: . +@prefix nco: . +@prefix rdf: . + +nco: {nco:region + a rdf:Property ; + rdfs:comment "Region. Inspired by the fifth part of the value of the 'ADR' property as defined in RFC 2426, sec. 3.2.1" ; + rdfs:domain nco:PostalAddress ; + rdfs:label "region" ; + rdfs:range xsd:string ; + nrl:maxCardinality 1 . + + nco:key + a rdf:Property ; + rdfs:comment "An encryption key attached to a contact. Inspired by the KEY property defined in RFC 2426 sec. 3.7.2" ; + rdfs:domain nco:Contact ; + rdfs:label "key" ; + rdfs:range nie:DataObject ; + rdfs:subPropertyOf nie:hasPart . + + nco:nameHonorificSuffix + a rdf:Property ; + rdfs:comment "A suffix for the name of the Object represented by the given object. See documentation for the 'nameFamily' for details." ; + rdfs:domain nco:PersonContact ; + rdfs:label "nameHonorificSuffix" ; + rdfs:range xsd:string . + + nco:url + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "A uniform resource locator associated with the given role of a Contact. Inspired by the 'URL' property defined in RFC 2426 Sec. 3.6.8." ; + rdfs:domain nco:Role ; + rdfs:label "url" ; + rdfs:range rdfs:Resource . + + nco:VoicePhoneNumber + a rdfs:Class ; + rdfs:comment "A telephone number with voice communication capabilities. Class inspired by the TYPE=voice parameter of the TEL property defined in RFC 2426 sec. 3.3.1" ; + rdfs:label "VoicePhoneNumber" ; + rdfs:subClassOf nco:PhoneNumber . + + nco:nameFamily + a rdf:Property ; + rdfs:comment "The family name of an Object represented by this Contact. These applies to people that have more than one given name. The 'first' one is considered 'the' given name (see nameGiven) property. All additional ones are considered 'additional' names. The name inherited from parents is the 'family name'. e.g. For Dr. John Phil Paul Stevenson Jr. M.D. A.C.P. we have contact with: honorificPrefix: 'Dr.', nameGiven: 'John', nameAdditional: 'Phil', nameAdditional: 'Paul', nameFamily: 'Stevenson', honorificSuffix: 'Jr.', honorificSuffix: 'M.D.', honorificSuffix: 'A.C.P.'. These properties form an equivalent of the compound 'N' property as defined in RFC 2426 Sec. 3.1.2" ; + rdfs:domain nco:PersonContact ; + rdfs:label "nameFamily" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" . + + nco:VideoTelephoneNumber + a rdfs:Class ; + rdfs:comment "A Video telephone number. A class inspired by the TYPE=video parameter of the TEL property defined in RFC 2426 sec. 3.3.1" ; + rdfs:label "VideoTelephoneNumber" ; + rdfs:subClassOf nco:VoicePhoneNumber . + + nco:contactUID + a rdf:Property ; + rdfs:comment "A value that represents a globally unique identifier corresponding to the individual or resource associated with the Contact. An equivalent of the 'UID' property defined in RFC 2426 Sec. 3.6.7" ; + rdfs:domain nco:Contact ; + rdfs:label "contactUID" ; + rdfs:range xsd:string ; + rdfs:subPropertyOf nie:identifier ; + nrl:maxCardinality "1" . + + nco:publisher + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "An entity responsible for making the InformationElement available." ; + rdfs:domain nie:InformationElement ; + rdfs:label "publisher" ; + rdfs:range nco:Contact ; + rdfs:subPropertyOf dc:publisher . + + nco:country + a rdf:Property ; + rdfs:comment "A part of an address specyfing the country. Inspired by the seventh part of the value of the 'ADR' property as defined in RFC 2426, sec. 3.2.1" ; + rdfs:domain nco:PostalAddress ; + rdfs:label "country" ; + rdfs:range xsd:string ; + nrl:maxCardinality 1 . + + nco:nameHonorificPrefix + a rdf:Property ; + rdfs:comment "A prefix for the name of the object represented by this Contact. See documentation for the 'nameFamily' property for details." ; + rdfs:domain nco:PersonContact ; + rdfs:label "nameHonorificPrefix" ; + rdfs:range xsd:string . + + nco:extendedAddress + a rdf:Property ; + rdfs:comment "An extended part of an address. This field might be used to express parts of an address that aren't include in the name of the Contact but also aren't part of the actual location. Usually the streed address and following fields are enough for a postal letter to arrive. Examples may include ('University of California Campus building 45', 'Sears Tower 34th floor' etc.) Inspired by the second part of the value of the 'ADR' property as defined in RFC 2426, sec. 3.2.1" ; + rdfs:domain nco:PostalAddress ; + rdfs:label "extendedAddress" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" . + + nco:IMAccount + a rdfs:Class ; + rdfs:comment "An account in an Instant Messaging system." ; + rdfs:label "IMAccount" ; + rdfs:subClassOf nco:ContactMedium . + + nco:hasIMAccount + a rdf:Property ; + rdfs:comment "Indicates that an Instant Messaging account owned by an entity represented by this contact." ; + rdfs:domain nco:Role ; + rdfs:label "hasIMAccount" ; + rdfs:range nco:IMAccount ; + rdfs:subPropertyOf nco:hasContactMedium . + + nco:IsdnNumber + a rdfs:Class ; + rdfs:comment "An ISDN phone number. Inspired by the (TYPE=isdn) parameter of the TEL property as defined in RFC 2426 sec 3.3.1." ; + rdfs:label "IsdnNumber" ; + rdfs:subClassOf nco:VoicePhoneNumber . + + nco:creator + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "Creator of an information element, an entity primarily responsible for the creation of the content of the data object." ; + rdfs:domain nie:InformationElement ; + rdfs:label "creator" ; + rdfs:range nco:Contact ; + rdfs:subPropertyOf dc:creator , nco:contributor , nao:creator . + + nco:hasLocation + a rdf:Property ; + rdfs:comment "Geographical location of the contact. Inspired by the 'GEO' property specified in RFC 2426 Sec. 3.4.2" ; + rdfs:domain nco:Contact ; + rdfs:label "hasLocation" ; + rdfs:range geo:Point ; + nrl:maxCardinality "1" . + + nco:birthday + a rdf:Property ; + rdfs:comment "Links a contact with the calendar event of his birthday. (NCAL version)"; + rdfs:label "birthday" ; + rdfs:domain nco:Contact ; + rdfs:range ncal:BirthdayEvent ; + nrl:maxCardinality "1" . + + nco:phoneNumber + a rdf:Property ; + rdfs:domain nco:PhoneNumber ; + rdfs:label "phoneNumber" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" . + + nco:nickname + a rdf:Property ; + rdfs:comment "A nickname of the Object represented by this Contact. This is an equivalent of the 'NICKNAME' property as defined in RFC 2426 Sec. 3.1.3." ; + rdfs:domain nco:Contact ; + rdfs:label "nickname" ; + rdfs:range xsd:string . + + nco:imStatus + a rdf:Property, nrl:NonDefiningProperty ; + rdfs:comment "Current status of the given IM account. When this property is set, the nco:imStatusType should also always be set. Applications should attempt to parse this property to determine the presence, only falling back to the nco:imStatusType property in the case that this property's value is unrecognised. Values for this property may include 'available', 'offline', 'busy' etc. The exact choice of them is unspecified, although it is recommended to follow the guidance of the Telepathy project when choosing a string identifier http://telepathy.freedesktop.org/spec/Connection_Interface_Simple_Presence.html#description" ; + rdfs:domain nco:IMAccount ; + rdfs:label "imStatus" ; + rdfs:range xsd:string ; + nrl:maxCardinality 1 . + + nco:imStatusType + a rdf:Property ; + rdfs:comment "Current status type of the given IM account. When this property is set, the nco:imStatus property should also always be set. Applications should attempt to parse the nco:imStatus property to determine the presence, only falling back to this property in the case that the nco:imStatus property's value is unrecognised." ; + rdfs:domain nco:IMAccount ; + rdfs:label "instant messaging status type" ; + rdfs:range nco:IMStatusType ; + nrl:maxCardinality 1 . + + nco:IMStatusType a rdfs:Class ; + rdfs:label "instant messaging status type" ; + rdfs:comment "The status type of an IMAccount. Based on the Connection_Presence_Type enumeration of the Telepathy project: http://telepathy.freedesktop.org/spec/Connection_Interface_Simple_Presence.html#Enum:Connection_Presence_Type" ; + rdfs:subClassOf rdfs:Resource . + + nco:IMStatusTypeOffline + a nco:IMStatusType ; + rdfs:label "offline" . + + nco:IMStatusTypeAvailable + a nco:IMStatusType ; + rdfs:label "available" . + + nco:IMStatusTypeAway + a nco:IMStatusType ; + rdfs:label "away" . + + nco:IMStatusTypeExtendedAway + a nco:IMStatusType ; + rdfs:label "extended away". + + nco:IMStatusTypeHidden + a nco:IMStatusType ; + rdfs:label "hidden" . + + nco:IMStatusTypeBusy + a nco:IMStatusType ; + rdfs:label "busy" . + + nco:IMStatusTypeUnknown + a nco:IMStatusType ; + rdfs:label "unknown" . + + nco:containsContact + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment """A property used to group contacts into contact groups. This + property was NOT defined in the VCARD standard. See documentation for the + 'ContactList' class for details""" ; + rdfs:domain nco:ContactList ; + rdfs:label "containsContact" ; + rdfs:range nco:ContactListDataObject ; + rdfs:subPropertyOf nie:hasPart . + + nco:department + a rdf:Property ; + rdfs:comment "Department. The organizational unit within the organization." ; + rdfs:domain nco:Affiliation ; + rdfs:label "department" ; + rdfs:range xsd:string . + + nco:imID + a rdf:Property ; + rdfs:comment "Identifier of the IM account. Examples of such identifier might include ICQ UINs, Jabber IDs, Skype names etc." ; + rdfs:domain nco:IMAccount ; + rdfs:label "imID" ; + rdfs:range xsd:string ; + rdfs:subPropertyOf nao:identifier . + + nco:addressLocation + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "The geographical location of a postal address." ; + rdfs:domain nco:PostalAddress ; + rdfs:label "addressLocation" ; + rdfs:range geo:Point ; + nrl:maxCardinality "1" . + + nco:note + a rdf:Property ; + rdfs:comment "A note about the object represented by this Contact. An equivalent for the 'NOTE' property defined in RFC 2426 Sec. 3.6.2" ; + rdfs:domain nco:Contact ; + rdfs:label "note" ; + rdfs:range xsd:string ; + rdfs:subPropertyOf nie:description . + + nco:representative + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "An object that represent an object represented by this Contact. Usually this property is used to link a Contact to an organization, to a contact to the representative of this organization the user directly interacts with. An equivalent for the 'AGENT' property defined in RFC 2426 Sec. 3.5.4" ; + rdfs:domain nco:Contact ; + rdfs:label "representative" ; + rdfs:range nco:Contact . + + nco:nameAdditional + a rdf:Property ; + rdfs:comment "Additional given name of an object represented by this contact. See documentation for 'nameFamily' property for details." ; + rdfs:domain nco:PersonContact ; + rdfs:label "nameAdditional" ; + rdfs:range xsd:string . + + nco:nameGiven + a rdf:Property ; + rdfs:comment "The given name for the object represented by this Contact. See documentation for 'nameFamily' property for details." ; + rdfs:domain nco:PersonContact ; + rdfs:label "nameGiven" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" . + + nco:PcsNumber + a rdfs:Class ; + rdfs:comment "Personal Communication Services Number. A class inspired by the TYPE=pcs parameter of the TEL property defined in RFC 2426 sec. 3.3.1" ; + rdfs:label "PcsNumber" ; + rdfs:subClassOf nco:VoicePhoneNumber . + + nco:ContactList + a rdfs:Class ; + rdfs:comment "A contact list, this class represents an addressbook or a contact list of an IM application. Contacts inside a contact list can belong to contact groups." ; + rdfs:label "ContactList" ; + rdfs:subClassOf nie:InformationElement . + + nco:fullname + a rdf:Property ; + rdfs:comment "To specify the formatted text corresponding to the name of the object the Contact represents. An equivalent of the FN property as defined in RFC 2426 Sec. 3.1.1." ; + rdfs:domain nco:Contact ; + rdfs:label "fullname" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" ; + rdfs:subPropertyOf nie:title . + + nco:ContactGroup + a rdfs:Class ; + rdfs:comment "A group of Contacts. Could be used to express a group in an addressbook or on a contact list of an IM application. One contact can belong to many groups." ; + rdfs:label "ContactGroup" ; + rdfs:subClassOf nie:InformationElement . + + nco:BbsNumber + a rdfs:Class ; + rdfs:comment "A Bulletin Board System (BBS) phone number. Inspired by the (TYPE=bbsl) parameter of the TEL property as defined in RFC 2426 sec 3.3.1." ; + rdfs:label "BbsNumber" ; + rdfs:subClassOf nco:ModemNumber . + + nco:Affiliation + a rdfs:Class ; + rdfs:comment "Aggregates three properties defined in RFC2426. Originally all three were attached directly to a person. One person could have only one title and one role within one organization. This class is intended to lift this limitation." ; + rdfs:label "Affiliation" ; + rdfs:subClassOf nco:Role . + + nco:streetAddress + a rdf:Property ; + rdfs:comment "The streed address. Inspired by the third part of the value of the 'ADR' property as defined in RFC 2426, sec. 3.2.1" ; + rdfs:domain nco:PostalAddress ; + rdfs:label "streetAddress" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" . + + nco:OrganizationContact + a rdfs:Class ; + rdfs:comment "A Contact that denotes on Organization." ; + rdfs:label "OrganizationContact" ; + rdfs:subClassOf nco:Contact . + + nco:PhoneNumber + a rdfs:Class ; + rdfs:comment "A telephone number." ; + rdfs:label "PhoneNumber" ; + rdfs:subClassOf nco:ContactMedium . + + nco:Contact + a rdfs:Class ; + rdfs:comment "A Contact. A piece of data that can provide means to identify or communicate with an entity." ; + rdfs:label "Contact" ; + rdfs:subClassOf nco:Role , nie:InformationElement , nao:Party . + + nco:ModemNumber + a rdfs:Class ; + rdfs:comment "A modem phone number. Inspired by the (TYPE=modem) parameter of the TEL property as defined in RFC 2426 sec 3.3.1." ; + rdfs:label "ModemNumber" ; + rdfs:subClassOf nco:PhoneNumber . + + nco:Role + a rdfs:Class ; + rdfs:comment "A role played by a contact. Contacts that denote people, can have many roles (e.g. see the hasAffiliation property and Affiliation class). Contacts that denote Organizations or other Agents usually have one role. Each role can introduce additional contact media." ; + rdfs:label "Role" ; + rdfs:subClassOf rdfs:Resource . + + nco:PagerNumber + a rdfs:Class ; + rdfs:comment "A pager phone number. Inspired by the (TYPE=pager) parameter of the TEL property as defined in RFC 2426 sec 3.3.1." ; + rdfs:label "PagerNumber" ; + rdfs:subClassOf nco:MessagingNumber . + + nco:hasPhoneNumber + a rdf:Property ; + rdfs:comment "A number for telephony communication with the object represented by this Contact. An equivalent of the 'TEL' property defined in RFC 2426 Sec. 3.3.1" ; + rdfs:domain nco:Role ; + rdfs:label "hasPhoneNumber" ; + rdfs:range nco:PhoneNumber ; + rdfs:subPropertyOf nco:hasContactMedium . + + nco:photo + a rdf:Property ; + rdfs:comment "Photograph attached to a Contact. The DataObject referred to by this property is usually interpreted as an nfo:Image. Inspired by the PHOTO property defined in RFC 2426 sec. 3.1.4" ; + rdfs:domain nco:Contact ; + rdfs:label "photo" ; + rdfs:range nie:DataObject ; + rdfs:subPropertyOf nie:hasPart . + + nco:contributor + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "An entity responsible for making contributions to the content of the InformationElement." ; + rdfs:domain nie:InformationElement ; + rdfs:label "contributor" ; + rdfs:range nco:Contact ; + rdfs:subPropertyOf dc:contributor , nao:contributor . + + nco:logo + a rdf:Property ; + rdfs:comment "Logo of a company. Inspired by the LOGO property defined in RFC 2426 sec. 3.5.3" ; + rdfs:domain nco:OrganizationContact ; + rdfs:label "logo" ; + rdfs:range nie:DataObject ; + rdfs:subPropertyOf nie:hasPart . + + nco:websiteUrl + a rdf:Property ; + rdfs:comment "A url of a website." ; + rdfs:domain nco:Role ; + rdfs:label "websiteUrl" ; + rdfs:range rdfs:Resource ; + rdfs:subPropertyOf nco:url . + + nco:ContactMedium + a rdfs:Class ; + rdfs:comment "A superclass for all contact media - ways to contact an entity represented by a Contact instance. Some of the subclasses of this class (the various kinds of telephone numbers and postal addresses) have been inspired by the values of the TYPE parameter of ADR and TEL properties defined in RFC 2426 sec. 3.2.1. and 3.3.1 respectively. Each value is represented by an appropriate subclass with two major exceptions TYPE=home and TYPE=work. They are to be expressed by the roles these contact media are attached to i.e. contact media with TYPE=home parameter are to be attached to the default role (nco:Contact or nco:PersonContact), whereas media with TYPE=work parameter should be attached to nco:Affiliation or nco:OrganizationContact." ; + rdfs:label "ContactMedium" ; + rdfs:subClassOf rdfs:Resource . + + nco:Gender + a rdfs:Class ; + rdfs:comment "Gender. Instances of this class may include male and female." ; + rdfs:label "Gender" ; + rdfs:subClassOf rdfs:Resource . + + nco:male + a nco:Gender ; + rdfs:comment "A Male" ; + rdfs:label "male" . + + nco:birthDate + a rdf:Property ; + rdfs:comment "Birth date of the object represented by this Contact. An equivalent of the 'BDAY' property as defined in RFC 2426 Sec. 3.1.5." ; + rdfs:domain nco:Contact ; + rdfs:label "birthDate" ; + rdfs:range xsd:date ; + rdfs:subPropertyOf dc:date ; + nrl:maxCardinality 1 . + + nco:hasEmailAddress + a rdf:Property ; + rdfs:comment "An address for electronic mail communication with the object specified by this contact. An equivalent of the 'EMAIL' property as defined in RFC 2426 Sec. 3.3.1." ; + rdfs:domain nco:Role ; + rdfs:label "hasEmailAddress" ; + rdfs:range nco:EmailAddress ; + rdfs:subPropertyOf nco:hasContactMedium . + + nco:postalcode + a rdf:Property ; + rdfs:comment "Postal Code. Inspired by the sixth part of the value of the 'ADR' property as defined in RFC 2426, sec. 3.2.1" ; + rdfs:domain nco:PostalAddress ; + rdfs:label "postalcode" ; + rdfs:range xsd:string ; + nrl:maxCardinality 1 . + + nco:MessagingNumber + a rdfs:Class ; + rdfs:comment "A number that can accept textual messages." ; + rdfs:label "MessagingNumber" ; + rdfs:subClassOf nco:PhoneNumber . + + nco:org + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "Name of an organization or a unit within an organization the object represented by a Contact is associated with. An equivalent of the 'ORG' property defined in RFC 2426 Sec. 3.5.5" ; + rdfs:domain nco:Affiliation ; + rdfs:label "org" ; + rdfs:range nco:OrganizationContact ; + nrl:maxCardinality "1" . + + nco:PersonContact + a rdfs:Class ; + rdfs:comment "A Contact that denotes a Person. A person can have multiple Affiliations." ; + rdfs:label "PersonContact" ; + rdfs:subClassOf nco:Contact . + + nco:ParcelDeliveryAddress + a rdfs:Class ; + rdfs:comment "Parcel Delivery Addresse. Class inspired by TYPE=parcel parameter of the ADR property defined in RFC 2426 sec. 3.2.1" ; + rdfs:label "ParcelDeliveryAddress" ; + rdfs:subClassOf nco:PostalAddress . + + nco:title + a rdf:Property ; + rdfs:comment "The official title the object represented by this contact in an organization. E.g. 'CEO', 'Director, Research and Development', 'Junior Software Developer/Analyst' etc. An equivalent of the 'TITLE' property defined in RFC 2426 Sec. 3.5.1" ; + rdfs:domain nco:Affiliation ; + rdfs:label "title" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" . + + nco:AudioIMAccount + a rdfs:Class ; + nao:deprecated true ; + rdfs:comment "Deprecated in favour of nco:imCapabilityAudio." ; + rdfs:label "AudioIMAccount" ; + rdfs:subClassOf nco:IMAccount . + + nco:voiceMail + a rdf:Property ; + rdfs:comment "Indicates if the given number accepts voice mail. (e.g. there is an answering machine). Inspired by TYPE=msg parameter of the TEL property defined in RFC 2426 sec. 3.3.1" ; + rdfs:domain nco:VoicePhoneNumber ; + rdfs:label "voiceMail" ; + rdfs:range xsd:boolean ; + nrl:maxCardinality "1" . + + nco:PostalAddress + a rdfs:Class ; + rdfs:comment "A postal address. A class aggregating the various parts of a value for the 'ADR' property as defined in RFC 2426 Sec. 3.2.1." ; + rdfs:label "PostalAddress" ; + rdfs:subClassOf nco:ContactMedium . + + nco:belongsToGroup + a rdf:Property ; + rdfs:comment "Links a Contact with a ContactGroup it belongs to." ; + rdfs:domain nco:Contact ; + rdfs:label "belongsToGroup" ; + rdfs:range nco:ContactGroup . + + nco:hasContactMedium + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "A superProperty for all properties linking a Contact to an instance of a contact medium." ; + rdfs:domain nco:Role ; + rdfs:label "hasContactMedium" ; + rdfs:range nco:ContactMedium . + + nco:contactGroupName + a rdf:Property ; + rdfs:comment """The name of the contact group. This property was NOT defined + in the VCARD standard. See documentation of the 'ContactGroup' class for + details""" ; + rdfs:domain nco:ContactGroup ; + rdfs:label "contactGroupName" ; + rdfs:range xsd:string ; + rdfs:subPropertyOf dc:title ; + nrl:maxCardinality 1 . + + nco:FaxNumber + a rdfs:Class ; + rdfs:comment "A fax number. Inspired by the (TYPE=fax) parameter of the TEL property as defined in RFC 2426 sec 3.3.1." ; + rdfs:label "FaxNumber" ; + rdfs:subClassOf nco:PhoneNumber . + + nco:contactMediumComment + a rdf:Property ; + rdfs:comment "A comment about the contact medium. (Deprecated in favor of nie:comment or nao:description - based on the context)" ; + rdfs:domain nco:ContactMedium ; + rdfs:label "contactMediumComment" ; + rdfs:range xsd:string ; + nao:deprecated true. + + nco:foafUrl + a rdf:Property ; + rdfs:comment "The URL of the FOAF file." ; + rdfs:domain nco:Role ; + rdfs:label "foafUrl" ; + rdfs:range rdfs:Resource ; + rdfs:subPropertyOf nco:url . + + nco:CarPhoneNumber + a rdfs:Class ; + rdfs:comment "A car phone number. Inspired by the (TYPE=car) parameter of the TEL property as defined in RFC 2426 sec 3.3.1." ; + rdfs:label "CarPhoneNumber" ; + rdfs:subClassOf nco:VoicePhoneNumber . + + nco:ContactListDataObject + a rdfs:Class ; + rdfs:comment "An entity occuring on a contact list (usually interpreted as an nco:Contact)" ; + rdfs:label "ContactListDataObject" ; + rdfs:subClassOf nie:DataObject . + + nco:emailAddress + a rdf:Property ; + rdfs:domain nco:EmailAddress ; + rdfs:label "emailAddress" ; + rdfs:range xsd:string ; + nrl:maxCardinality 1 . + + nco:InternationalDeliveryAddress + a rdfs:Class ; + rdfs:comment "International Delivery Addresse. Class inspired by TYPE=intl parameter of the ADR property defined in RFC 2426 sec. 3.2.1" ; + rdfs:label "InternationalDeliveryAddress" ; + rdfs:subClassOf nco:PostalAddress . + + nco:locality + a rdf:Property ; + rdfs:comment "Locality or City. Inspired by the fourth part of the value of the 'ADR' property as defined in RFC 2426, sec. 3.2.1" ; + rdfs:domain nco:PostalAddress ; + rdfs:label "locality" ; + rdfs:range xsd:string ; + nrl:maxCardinality 1 . + + nco:VideoIMAccount + a rdfs:Class ; + nao:deprecated true ; + rdfs:comment "Deprecated in favour of nco:imCapabilityVideo." ; + rdfs:label "VideoIMAccount" ; + rdfs:subClassOf nco:AudioIMAccount . + + nco:sound + a rdf:Property ; + rdfs:comment "Sound clip attached to a Contact. The DataObject referred to by this property is usually interpreted as an nfo:Audio. Inspired by the SOUND property defined in RFC 2425 sec. 3.6.6." ; + rdfs:domain nco:Contact ; + rdfs:label "sound" ; + rdfs:range nie:DataObject ; + rdfs:subPropertyOf nie:hasPart . + + nco:EmailAddress + a rdfs:Class ; + rdfs:comment "An email address. The recommended best practice is to use mailto: uris for instances of this class." ; + rdfs:label "EmailAddress" ; + rdfs:subClassOf nco:ContactMedium . + + nco:imNickname + a rdf:Property ; + rdfs:comment "A nickname attached to a particular IM Account." ; + rdfs:domain nco:IMAccount ; + rdfs:label "imNickname" ; + rdfs:range xsd:string . + + nco:hobby + a rdf:Property ; + rdfs:comment "A hobby associated with a PersonContact. This property can be used to express hobbies and interests." ; + rdfs:domain nco:PersonContact ; + rdfs:label "hobby" ; + rdfs:range xsd:string . + + nco:blogUrl + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "A Blog url." ; + rdfs:domain nco:Role ; + rdfs:label "blogUrl" ; + rdfs:range rdfs:Resource ; + rdfs:subPropertyOf nco:url . + + nco:CellPhoneNumber + a rdfs:Class ; + rdfs:comment "A cellular phone number. Inspired by the (TYPE=cell) parameter of the TEL property as defined in RFC 2426 sec 3.3.1. Usually a cellular phone can accept voice calls as well as textual messages (SMS), therefore this class has two superclasses." ; + rdfs:label "CellPhoneNumber" ; + rdfs:subClassOf nco:MessagingNumber , nco:VoicePhoneNumber . + + nco:role + a rdf:Property ; + rdfs:comment "Role an object represented by this contact represents in the organization. This might include 'Programmer', 'Manager', 'Sales Representative'. Be careful to avoid confusion with the title property. An equivalent of the 'ROLE' property as defined in RFC 2426. Sec. 3.5.2. Note the difference between nco:Role class and nco:role property." ; + rdfs:domain nco:Affiliation ; + rdfs:label "role" ; + rdfs:range xsd:string . + + nco:DomesticDeliveryAddress + a rdfs:Class ; + rdfs:comment "Domestic Delivery Addresse. Class inspired by TYPE=dom parameter of the ADR property defined in RFC 2426 sec. 3.2.1" ; + rdfs:label "DomesticDeliveryAddress" ; + rdfs:subClassOf nco:PostalAddress . + + nco:female + a nco:Gender ; + rdfs:comment "A Female" ; + rdfs:label "female" . + + nco:hasPostalAddress + a rdf:Property ; + rdfs:comment "The default Address for a Contact. An equivalent of the 'ADR' property as defined in RFC 2426 Sec. 3.2.1." ; + rdfs:domain nco:Role ; + rdfs:label "hasPostalAddress" ; + rdfs:range nco:PostalAddress ; + rdfs:subPropertyOf nco:hasContactMedium . + + nco:imAccountType + a rdf:Property ; + rdfs:comment "Type of the IM account. This may be the name of the service that provides the IM functionality. Examples might include Jabber, ICQ, MSN etc" ; + rdfs:domain nco:IMAccount ; + rdfs:label "imAccountType" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" . + + nco:pobox + a rdf:Property ; + rdfs:comment "Post office box. This is the first part of the value of the 'ADR' property as defined in RFC 2426, sec. 3.2.1" ; + rdfs:domain nco:PostalAddress ; + rdfs:label "pobox" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1". + + nco:hasAffiliation + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "Links a PersonContact with an Affiliation." ; + rdfs:domain nco:PersonContact ; + rdfs:label "hasAffiliation" ; + rdfs:range nco:Affiliation . + + nco:gender + a rdf:Property ; + rdfs:comment "Gender of the given contact." ; + rdfs:domain nco:PersonContact ; + rdfs:label "gender" ; + rdfs:range nco:Gender ; + nrl:maxCardinality 1 . + + nco:imStatusMessage + a rdf:Property, nrl:NonDefiningProperty ; + rdfs:comment "A feature common in most IM systems. A message left by the user for all his/her contacts to see." ; + rdfs:domain nco:IMAccount ; + rdfs:label "imStatusMessage" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" . + + nco:start + a rdf:Property ; + rdfs:comment "Start datetime for the role, such as: the datetime of joining a project or organization, datetime of starting employment, datetime of marriage" ; + rdfs:label "start" ; + rdfs:domain nco:Role ; + rdfs:range xsd:dateTime ; + nrl:maxCardinality 1 . + + nco:end + a rdf:Property; + rdfs:comment "End datetime for the role, such as: the datetime of leaving a project or organization, datetime of ending employment, datetime of divorce. If absent or set to a date in the future, the role is currently active." ; + rdfs:label "end" ; + rdfs:domain nco:Role ; + rdfs:range xsd:dateTime ; + nrl:maxCardinality 1 . + + nco:IMCapability a rdfs:Class ; + rdfs:label "imCapability" ; + rdfs:comment "Capabilities of a cetain IMAccount." ; + rdfs:subClassOf rdfs:Resource . + + nco:imCapabilityText a nco:IMCapability . + nco:imCapabilityAudio a nco:IMCapability . + nco:imCapabilityVideo a nco:IMCapability . + + nco:hasIMCapability + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "Indicates that an IMAccount has a certain capability." ; + rdfs:domain nco:IMAccount ; + rdfs:label "hasIMCapability" ; + rdfs:range nco:IMCapability . + + nco:isAccessedBy + a rdf:Property ; + rdfs:comment "Indicates the local IMAccount by which this IMAccount is accessed. This does not imply membership of a contact list." ; + rdfs:label "isKnownBy" ; + rdfs:domain nco:IMAccount ; + rdfs:range nco:IMAccount . + + nco:publishesPresenceTo + a rdf:Property ; + rdfs:comment "Indicates that this IMAccount publishes its presence information to the other IMAccount." ; + rdfs:label "publishesPresenceTo" ; + rdfs:domain nco:IMAccount ; + rdfs:range nco:IMAccount . + + nco:requestedPresenceSubscriptionTo + a rdf:Property ; + rdfs:comment "Indicates that this IMAccount has requested a subscription to the presence information of the other IMAccount." ; + rdfs:label "requestedPresenceSubscriptionTo" ; + rdfs:domain nco:IMAccount ; + rdfs:range nco:IMAccount . + + nco:isBlocked + a rdf:Property ; + rdfs:comment "Indicates that this IMAccount has been blocked." ; + rdfs:domain nco:IMAccount ; + rdfs:label "isBlocked" ; + rdfs:range xsd:boolean ; + nrl:maxCardinality "1" . +} + + {nco: a nrl:Ontology ; + nao:creator ; + nao:hasDefaultNamespace + "http://www.semanticdesktop.org/ontologies/2007/03/22/nco#" ; + nao:hasDefaultNamespaceAbbreviation + "nco" ; + nao:lastModified "2011-12-13T12:44:58Z" ; + nao:status "Unstable" ; + nao:updatable "0 " ; + nao:version "0.10.0" ; + nao:prefLabel "Nepomuk Contact Ontology" ; + nao:description "The Nepomuk Contact Ontology describes contact information, common in many places on the desktop. It evolved from the VCARD specification (RFC 2426) and has been inspired by the Vcard Ontology by Renato Ianella. The scope of NCO is much broader though." . + + + a nrl:GraphMetadata ; + nrl:coreGraphMetadataFor + nco: . +} diff --git a/tests/Trinity.Tests.Stardog/bin/Debug/net472/Ontologies/owl.n3 b/tests/Trinity.Tests.Stardog/bin/Debug/net472/Ontologies/owl.n3 new file mode 100644 index 0000000..87467e7 --- /dev/null +++ b/tests/Trinity.Tests.Stardog/bin/Debug/net472/Ontologies/owl.n3 @@ -0,0 +1,552 @@ +@prefix dc: . +@prefix grddl: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix xml: . +@prefix xsd: . + + a owl:Ontology ; + dc:title "The OWL 2 Schema vocabulary (OWL 2)" ; + rdfs:comment """ + This ontology partially describes the built-in classes and + properties that together form the basis of the RDF/XML syntax of OWL 2. + The content of this ontology is based on Tables 6.1 and 6.2 + in Section 6.4 of the OWL 2 RDF-Based Semantics specification, + available at http://www.w3.org/TR/owl2-rdf-based-semantics/. + Please note that those tables do not include the different annotations + (labels, comments and rdfs:isDefinedBy links) used in this file. + Also note that the descriptions provided in this ontology do not + provide a complete and correct formal description of either the syntax + or the semantics of the introduced terms (please see the OWL 2 + recommendations for the complete and normative specifications). + Furthermore, the information provided by this ontology may be + misleading if not used with care. This ontology SHOULD NOT be imported + into OWL ontologies. Importing this file into an OWL 2 DL ontology + will cause it to become an OWL 2 Full ontology and may have other, + unexpected, consequences. + """ ; + rdfs:isDefinedBy + , + , + ; + rdfs:seeAlso , + ; + owl:imports ; + owl:versionIRI ; + owl:versionInfo "$Date: 2009/11/15 10:54:12 $" ; + grddl:namespaceTransformation . + + +owl:AllDifferent a rdfs:Class ; + rdfs:label "AllDifferent" ; + rdfs:comment "The class of collections of pairwise different individuals." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Resource . + +owl:AllDisjointClasses a rdfs:Class ; + rdfs:label "AllDisjointClasses" ; + rdfs:comment "The class of collections of pairwise disjoint classes." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Resource . + +owl:AllDisjointProperties a rdfs:Class ; + rdfs:label "AllDisjointProperties" ; + rdfs:comment "The class of collections of pairwise disjoint properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Resource . + +owl:Annotation a rdfs:Class ; + rdfs:label "Annotation" ; + rdfs:comment "The class of annotated annotations for which the RDF serialization consists of an annotated subject, predicate and object." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Resource . + +owl:AnnotationProperty a rdfs:Class ; + rdfs:label "AnnotationProperty" ; + rdfs:comment "The class of annotation properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdf:Property . + +owl:AsymmetricProperty a rdfs:Class ; + rdfs:label "AsymmetricProperty" ; + rdfs:comment "The class of asymmetric properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:ObjectProperty . + +owl:Axiom a rdfs:Class ; + rdfs:label "Axiom" ; + rdfs:comment "The class of annotated axioms for which the RDF serialization consists of an annotated subject, predicate and object." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Resource . + +owl:Class a rdfs:Class ; + rdfs:label "Class" ; + rdfs:comment "The class of OWL classes." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Class . + +owl:DataRange a rdfs:Class ; + rdfs:label "DataRange" ; + rdfs:comment "The class of OWL data ranges, which are special kinds of datatypes. Note: The use of the IRI owl:DataRange has been deprecated as of OWL 2. The IRI rdfs:Datatype SHOULD be used instead." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Datatype . + +owl:DatatypeProperty a rdfs:Class ; + rdfs:label "DatatypeProperty" ; + rdfs:comment "The class of data properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdf:Property . + +owl:DeprecatedClass a rdfs:Class ; + rdfs:label "DeprecatedClass" ; + rdfs:comment "The class of deprecated classes." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Class . + +owl:DeprecatedProperty a rdfs:Class ; + rdfs:label "DeprecatedProperty" ; + rdfs:comment "The class of deprecated properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdf:Property . + +owl:FunctionalProperty a rdfs:Class ; + rdfs:label "FunctionalProperty" ; + rdfs:comment "The class of functional properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdf:Property . + +owl:InverseFunctionalProperty a rdfs:Class ; + rdfs:label "InverseFunctionalProperty" ; + rdfs:comment "The class of inverse-functional properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:ObjectProperty . + +owl:IrreflexiveProperty a rdfs:Class ; + rdfs:label "IrreflexiveProperty" ; + rdfs:comment "The class of irreflexive properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:ObjectProperty . + +owl:NamedIndividual a rdfs:Class ; + rdfs:label "NamedIndividual" ; + rdfs:comment "The class of named individuals." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:Thing . + +owl:NegativePropertyAssertion a rdfs:Class ; + rdfs:label "NegativePropertyAssertion" ; + rdfs:comment "The class of negative property assertions." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Resource . + +owl:Nothing a owl:Class ; + rdfs:label "Nothing" ; + rdfs:comment "This is the empty class." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:Thing . + +owl:ObjectProperty a rdfs:Class ; + rdfs:label "ObjectProperty" ; + rdfs:comment "The class of object properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdf:Property . + +owl:Ontology a rdfs:Class ; + rdfs:label "Ontology" ; + rdfs:comment "The class of ontologies." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Resource . + +owl:OntologyProperty a rdfs:Class ; + rdfs:label "OntologyProperty" ; + rdfs:comment "The class of ontology properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdf:Property . + +owl:ReflexiveProperty a rdfs:Class ; + rdfs:label "ReflexiveProperty" ; + rdfs:comment "The class of reflexive properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:ObjectProperty . + +owl:Restriction a rdfs:Class ; + rdfs:label "Restriction" ; + rdfs:comment "The class of property restrictions." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:Class . + +owl:SymmetricProperty a rdfs:Class ; + rdfs:label "SymmetricProperty" ; + rdfs:comment "The class of symmetric properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:ObjectProperty . + +owl:TransitiveProperty a rdfs:Class ; + rdfs:label "TransitiveProperty" ; + rdfs:comment "The class of transitive properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:ObjectProperty . + +owl:Thing a owl:Class ; + rdfs:label "Thing" ; + rdfs:comment "The class of OWL individuals." ; + rdfs:isDefinedBy . + +owl:allValuesFrom a rdf:Property ; + rdfs:label "allValuesFrom" ; + rdfs:comment "The property that determines the class that a universal property restriction refers to." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Class . + +owl:annotatedProperty a rdf:Property ; + rdfs:label "annotatedProperty" ; + rdfs:comment "The property that determines the predicate of an annotated axiom or annotated annotation." ; + rdfs:domain rdfs:Resource ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Resource . + +owl:annotatedSource a rdf:Property ; + rdfs:label "annotatedSource" ; + rdfs:comment "The property that determines the subject of an annotated axiom or annotated annotation." ; + rdfs:domain rdfs:Resource ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Resource . + +owl:annotatedTarget a rdf:Property ; + rdfs:label "annotatedTarget" ; + rdfs:comment "The property that determines the object of an annotated axiom or annotated annotation." ; + rdfs:domain rdfs:Resource ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Resource . + +owl:assertionProperty a rdf:Property ; + rdfs:label "assertionProperty" ; + rdfs:comment "The property that determines the predicate of a negative property assertion." ; + rdfs:domain owl:NegativePropertyAssertion ; + rdfs:isDefinedBy ; + rdfs:range rdf:Property . + +owl:backwardCompatibleWith a owl:AnnotationProperty, owl:OntologyProperty ; + rdfs:label "backwardCompatibleWith" ; + rdfs:comment "The annotation property that indicates that a given ontology is backward compatible with another ontology." ; + rdfs:domain owl:Ontology ; + rdfs:isDefinedBy ; + rdfs:range owl:Ontology . + +owl:bottomDataProperty a owl:DatatypeProperty ; + rdfs:label "bottomDataProperty" ; + rdfs:comment "The data property that does not relate any individual to any data value." ; + rdfs:domain owl:Thing ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Literal . + +owl:bottomObjectProperty a owl:ObjectProperty ; + rdfs:label "bottomObjectProperty" ; + rdfs:comment "The object property that does not relate any two individuals." ; + rdfs:domain owl:Thing ; + rdfs:isDefinedBy ; + rdfs:range owl:Thing . + +owl:cardinality a rdf:Property ; + rdfs:label "cardinality" ; + rdfs:comment "The property that determines the cardinality of an exact cardinality restriction." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range xsd:nonNegativeInteger . + +owl:complementOf a rdf:Property ; + rdfs:label "complementOf" ; + rdfs:comment "The property that determines that a given class is the complement of another class." ; + rdfs:domain owl:Class ; + rdfs:isDefinedBy ; + rdfs:range owl:Class . + +owl:datatypeComplementOf a rdf:Property ; + rdfs:label "datatypeComplementOf" ; + rdfs:comment "The property that determines that a given data range is the complement of another data range with respect to the data domain." ; + rdfs:domain rdfs:Datatype ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Datatype . + +owl:deprecated a owl:AnnotationProperty ; + rdfs:label "deprecated" ; + rdfs:comment "The annotation property that indicates that a given entity has been deprecated." ; + rdfs:domain rdfs:Resource ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Resource . + +owl:differentFrom a rdf:Property ; + rdfs:label "differentFrom" ; + rdfs:comment "The property that determines that two given individuals are different." ; + rdfs:domain owl:Thing ; + rdfs:isDefinedBy ; + rdfs:range owl:Thing . + +owl:disjointUnionOf a rdf:Property ; + rdfs:label "disjointUnionOf" ; + rdfs:comment "The property that determines that a given class is equivalent to the disjoint union of a collection of other classes." ; + rdfs:domain owl:Class ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:disjointWith a rdf:Property ; + rdfs:label "disjointWith" ; + rdfs:comment "The property that determines that two given classes are disjoint." ; + rdfs:domain owl:Class ; + rdfs:isDefinedBy ; + rdfs:range owl:Class . + +owl:distinctMembers a rdf:Property ; + rdfs:label "distinctMembers" ; + rdfs:comment "The property that determines the collection of pairwise different individuals in a owl:AllDifferent axiom." ; + rdfs:domain owl:AllDifferent ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:equivalentClass a rdf:Property ; + rdfs:label "equivalentClass" ; + rdfs:comment "The property that determines that two given classes are equivalent, and that is used to specify datatype definitions." ; + rdfs:domain rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Class . + +owl:equivalentProperty a rdf:Property ; + rdfs:label "equivalentProperty" ; + rdfs:comment "The property that determines that two given properties are equivalent." ; + rdfs:domain rdf:Property ; + rdfs:isDefinedBy ; + rdfs:range rdf:Property . + +owl:hasKey a rdf:Property ; + rdfs:label "hasKey" ; + rdfs:comment "The property that determines the collection of properties that jointly build a key." ; + rdfs:domain owl:Class ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:hasSelf a rdf:Property ; + rdfs:label "hasSelf" ; + rdfs:comment "The property that determines the property that a self restriction refers to." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Resource . + +owl:hasValue a rdf:Property ; + rdfs:label "hasValue" ; + rdfs:comment "The property that determines the individual that a has-value restriction refers to." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Resource . + +owl:imports a owl:OntologyProperty ; + rdfs:label "imports" ; + rdfs:comment "The property that is used for importing other ontologies into a given ontology." ; + rdfs:domain owl:Ontology ; + rdfs:isDefinedBy ; + rdfs:range owl:Ontology . + +owl:incompatibleWith a owl:AnnotationProperty, owl:OntologyProperty ; + rdfs:label "incompatibleWith" ; + rdfs:comment "The annotation property that indicates that a given ontology is incompatible with another ontology." ; + rdfs:domain owl:Ontology ; + rdfs:isDefinedBy ; + rdfs:range owl:Ontology . + +owl:intersectionOf a rdf:Property ; + rdfs:label "intersectionOf" ; + rdfs:comment "The property that determines the collection of classes or data ranges that build an intersection." ; + rdfs:domain rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:inverseOf a rdf:Property ; + rdfs:label "inverseOf" ; + rdfs:comment "The property that determines that two given properties are inverse." ; + rdfs:domain owl:ObjectProperty ; + rdfs:isDefinedBy ; + rdfs:range owl:ObjectProperty . + +owl:maxCardinality a rdf:Property ; + rdfs:label "maxCardinality" ; + rdfs:comment "The property that determines the cardinality of a maximum cardinality restriction." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range xsd:nonNegativeInteger . + +owl:maxQualifiedCardinality a rdf:Property ; + rdfs:label "maxQualifiedCardinality" ; + rdfs:comment "The property that determines the cardinality of a maximum qualified cardinality restriction." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range xsd:nonNegativeInteger . + +owl:members a rdf:Property ; + rdfs:label "members" ; + rdfs:comment "The property that determines the collection of members in either a owl:AllDifferent, owl:AllDisjointClasses or owl:AllDisjointProperties axiom." ; + rdfs:domain rdfs:Resource ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:minCardinality a rdf:Property ; + rdfs:label "minCardinality" ; + rdfs:comment "The property that determines the cardinality of a minimum cardinality restriction." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range xsd:nonNegativeInteger . + +owl:minQualifiedCardinality a rdf:Property ; + rdfs:label "minQualifiedCardinality" ; + rdfs:comment "The property that determines the cardinality of a minimum qualified cardinality restriction." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range xsd:nonNegativeInteger . + +owl:onClass a rdf:Property ; + rdfs:label "onClass" ; + rdfs:comment "The property that determines the class that a qualified object cardinality restriction refers to." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range owl:Class . + +owl:onDataRange a rdf:Property ; + rdfs:label "onDataRange" ; + rdfs:comment "The property that determines the data range that a qualified data cardinality restriction refers to." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Datatype . + +owl:onDatatype a rdf:Property ; + rdfs:label "onDatatype" ; + rdfs:comment "The property that determines the datatype that a datatype restriction refers to." ; + rdfs:domain rdfs:Datatype ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Datatype . + +owl:oneOf a rdf:Property ; + rdfs:label "oneOf" ; + rdfs:comment "The property that determines the collection of individuals or data values that build an enumeration." ; + rdfs:domain rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:onProperties a rdf:Property ; + rdfs:label "onProperties" ; + rdfs:comment "The property that determines the n-tuple of properties that a property restriction on an n-ary data range refers to." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:onProperty a rdf:Property ; + rdfs:label "onProperty" ; + rdfs:comment "The property that determines the property that a property restriction refers to." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range rdf:Property . + +owl:priorVersion a owl:AnnotationProperty, owl:OntologyProperty ; + rdfs:label "priorVersion" ; + rdfs:comment "The annotation property that indicates the predecessor ontology of a given ontology." ; + rdfs:domain owl:Ontology ; + rdfs:isDefinedBy ; + rdfs:range owl:Ontology . + +owl:propertyChainAxiom a rdf:Property ; + rdfs:label "propertyChainAxiom" ; + rdfs:comment "The property that determines the n-tuple of properties that build a sub property chain of a given property." ; + rdfs:domain owl:ObjectProperty ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:propertyDisjointWith a rdf:Property ; + rdfs:label "propertyDisjointWith" ; + rdfs:comment "The property that determines that two given properties are disjoint." ; + rdfs:domain rdf:Property ; + rdfs:isDefinedBy ; + rdfs:range rdf:Property . + +owl:qualifiedCardinality a rdf:Property ; + rdfs:label "qualifiedCardinality" ; + rdfs:comment "The property that determines the cardinality of an exact qualified cardinality restriction." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range xsd:nonNegativeInteger . + +owl:sameAs a rdf:Property ; + rdfs:label "sameAs" ; + rdfs:comment "The property that determines that two given individuals are equal." ; + rdfs:domain owl:Thing ; + rdfs:isDefinedBy ; + rdfs:range owl:Thing . + +owl:someValuesFrom a rdf:Property ; + rdfs:label "someValuesFrom" ; + rdfs:comment "The property that determines the class that an existential property restriction refers to." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Class . + +owl:sourceIndividual a rdf:Property ; + rdfs:label "sourceIndividual" ; + rdfs:comment "The property that determines the subject of a negative property assertion." ; + rdfs:domain owl:NegativePropertyAssertion ; + rdfs:isDefinedBy ; + rdfs:range owl:Thing . + +owl:targetIndividual a rdf:Property ; + rdfs:label "targetIndividual" ; + rdfs:comment "The property that determines the object of a negative object property assertion." ; + rdfs:domain owl:NegativePropertyAssertion ; + rdfs:isDefinedBy ; + rdfs:range owl:Thing . + +owl:targetValue a rdf:Property ; + rdfs:label "targetValue" ; + rdfs:comment "The property that determines the value of a negative data property assertion." ; + rdfs:domain owl:NegativePropertyAssertion ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Literal . + +owl:topDataProperty a owl:DatatypeProperty ; + rdfs:label "topDataProperty" ; + rdfs:comment "The data property that relates every individual to every data value." ; + rdfs:domain owl:Thing ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Literal . + +owl:topObjectProperty a owl:ObjectProperty ; + rdfs:label "topObjectProperty" ; + rdfs:comment "The object property that relates every two individuals." ; + rdfs:domain owl:Thing ; + rdfs:isDefinedBy ; + rdfs:range owl:Thing . + +owl:unionOf a rdf:Property ; + rdfs:label "unionOf" ; + rdfs:comment "The property that determines the collection of classes or data ranges that build a union." ; + rdfs:domain rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:versionInfo a owl:AnnotationProperty ; + rdfs:label "versionInfo" ; + rdfs:comment "The annotation property that provides version information for an ontology or another OWL construct." ; + rdfs:domain rdfs:Resource ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Resource . + +owl:versionIRI a owl:OntologyProperty ; + rdfs:label "versionIRI" ; + rdfs:comment "The property that identifies the version IRI of an ontology." ; + rdfs:domain owl:Ontology ; + rdfs:isDefinedBy ; + rdfs:range owl:Ontology . + +owl:withRestrictions a rdf:Property ; + rdfs:label "withRestrictions" ; + rdfs:comment "The property that determines the collection of facet-value pairs that define a datatype restriction." ; + rdfs:domain rdfs:Datatype ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + \ No newline at end of file diff --git a/tests/Trinity.Tests.Stardog/bin/Debug/net472/Ontologies/rdf.rdf b/tests/Trinity.Tests.Stardog/bin/Debug/net472/Ontologies/rdf.rdf new file mode 100644 index 0000000..a6815ec --- /dev/null +++ b/tests/Trinity.Tests.Stardog/bin/Debug/net472/Ontologies/rdf.rdf @@ -0,0 +1,156 @@ + + + + The RDF Concepts Vocabulary (RDF) + This is the RDF Schema for the RDF vocabulary terms in the RDF Namespace, defined in RDF 1.1 Concepts. + + + + + + + HTML + The datatype of RDF literals storing fragments of HTML content + + + + + + + langString + The datatype of language-tagged string values + + + + + + + PlainLiteral + The class of plain (i.e. untyped) literal values, as used in RIF and OWL 2 + + + + + + type + The subject is an instance of a class. + + + + + + + Property + The class of RDF properties. + + + + + + Statement + + The class of RDF statements. + + + + + subject + The subject of the subject RDF statement. + + + + + + + predicate + The predicate of the subject RDF statement. + + + + + + + object + The object of the subject RDF statement. + + + + + + + Bag + The class of unordered containers. + + + + + + Seq + The class of ordered containers. + + + + + + Alt + The class of containers of alternatives. + + + + + + value + Idiomatic property used for structured values. + + + + + + + + + List + The class of RDF Lists. + + + + + + nil + The empty list, with no items in it. If the rest of a list is nil then the list has no more items in it. + + + + + first + The first item in the subject RDF list. + + + + + + + rest + The rest of the subject RDF list after the first item. + + + + + + + + XMLLiteral + The datatype of XML literal values. + + + + + + + + diff --git a/tests/Trinity.Tests.Stardog/bin/Debug/net472/Ontologies/rdfs.n3 b/tests/Trinity.Tests.Stardog/bin/Debug/net472/Ontologies/rdfs.n3 new file mode 100644 index 0000000..a5b8eac --- /dev/null +++ b/tests/Trinity.Tests.Stardog/bin/Debug/net472/Ontologies/rdfs.n3 @@ -0,0 +1,109 @@ +@prefix rdf: . +@prefix rdfs: . +@prefix owl: . +@prefix dc: . + + a owl:Ontology ; + dc:title "The RDF Schema vocabulary (RDFS)" . + +rdfs:Resource a rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:label "Resource" ; + rdfs:comment "The class resource, everything." . + +rdfs:Class a rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:label "Class" ; + rdfs:comment "The class of classes." ; + rdfs:subClassOf rdfs:Resource . + +rdfs:subClassOf a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:label "subClassOf" ; + rdfs:comment "The subject is a subclass of a class." ; + rdfs:range rdfs:Class ; + rdfs:domain rdfs:Class . + +rdfs:subPropertyOf a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:label "subPropertyOf" ; + rdfs:comment "The subject is a subproperty of a property." ; + rdfs:range rdf:Property ; + rdfs:domain rdf:Property . + +rdfs:comment a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:label "comment" ; + rdfs:comment "A description of the subject resource." ; + rdfs:domain rdfs:Resource ; + rdfs:range rdfs:Literal . + +rdfs:label a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:label "label" ; + rdfs:comment "A human-readable name for the subject." ; + rdfs:domain rdfs:Resource ; + rdfs:range rdfs:Literal . + +rdfs:domain a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:label "domain" ; + rdfs:comment "A domain of the subject property." ; + rdfs:range rdfs:Class ; + rdfs:domain rdf:Property . + +rdfs:range a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:label "range" ; + rdfs:comment "A range of the subject property." ; + rdfs:range rdfs:Class ; + rdfs:domain rdf:Property . + +rdfs:seeAlso a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:label "seeAlso" ; + rdfs:comment "Further information about the subject resource." ; + rdfs:range rdfs:Resource ; + rdfs:domain rdfs:Resource . + +rdfs:isDefinedBy a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:subPropertyOf rdfs:seeAlso ; + rdfs:label "isDefinedBy" ; + rdfs:comment "The defininition of the subject resource." ; + rdfs:range rdfs:Resource ; + rdfs:domain rdfs:Resource . + +rdfs:Literal a rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:label "Literal" ; + rdfs:comment "The class of literal values, eg. textual strings and integers." ; + rdfs:subClassOf rdfs:Resource . + +rdfs:Container a rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:label "Container" ; + rdfs:subClassOf rdfs:Resource ; + rdfs:comment "The class of RDF containers." . + +rdfs:ContainerMembershipProperty a rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:label "ContainerMembershipProperty" ; + rdfs:comment """The class of container membership properties, rdf:_1, rdf:_2, ..., + all of which are sub-properties of 'member'.""" ; + rdfs:subClassOf rdf:Property . + +rdfs:member a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:label "member" ; + rdfs:comment "A member of the subject resource." ; + rdfs:domain rdfs:Resource ; + rdfs:range rdfs:Resource . + +rdfs:Datatype a rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:label "Datatype" ; + rdfs:comment "The class of RDF datatypes." ; + rdfs:subClassOf rdfs:Class . + + rdfs:seeAlso . diff --git a/tests/Trinity.Tests.Stardog/bin/Debug/net472/Ontologies/space test ontology.ttl b/tests/Trinity.Tests.Stardog/bin/Debug/net472/Ontologies/space test ontology.ttl new file mode 100644 index 0000000..e9f6944 --- /dev/null +++ b/tests/Trinity.Tests.Stardog/bin/Debug/net472/Ontologies/space test ontology.ttl @@ -0,0 +1,13 @@ +@prefix rdf: . +@prefix owl: . +@prefix rdfs: . +@prefix myo: . + +myo: +rdfs:label "my ontology". + +myo:Class a rdfs:Class ; +rdfs:label "MyClass" . + +myo:Property a rdf:Property ; +rdfs:label "MyProperty" . \ No newline at end of file diff --git a/tests/Trinity.Tests.Stardog/bin/Debug/net472/Semiodesk.Trinity.Tests.Stardog.exe.config b/tests/Trinity.Tests.Stardog/bin/Debug/net472/Semiodesk.Trinity.Tests.Stardog.exe.config new file mode 100644 index 0000000..3e2fdf6 --- /dev/null +++ b/tests/Trinity.Tests.Stardog/bin/Debug/net472/Semiodesk.Trinity.Tests.Stardog.exe.config @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/Trinity.Tests.Stardog/bin/Debug/net472/Semiodesk.Trinity.Tests.exe.config b/tests/Trinity.Tests.Stardog/bin/Debug/net472/Semiodesk.Trinity.Tests.exe.config new file mode 100644 index 0000000..92d10a9 --- /dev/null +++ b/tests/Trinity.Tests.Stardog/bin/Debug/net472/Semiodesk.Trinity.Tests.exe.config @@ -0,0 +1,62 @@ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/Trinity.Tests.Stardog/bin/Debug/net472/Semiodesk.Trinity.xml b/tests/Trinity.Tests.Stardog/bin/Debug/net472/Semiodesk.Trinity.xml new file mode 100644 index 0000000..d4242d2 --- /dev/null +++ b/tests/Trinity.Tests.Stardog/bin/Debug/net472/Semiodesk.Trinity.xml @@ -0,0 +1,5915 @@ + + + + Semiodesk.Trinity + + + + + Marks the property as NotifyingProperty. + + + + + Decorate a class with this attribute to mark it as mapping for an RDF class of the given type. + + + + + The Uri of the type. + + + + + Constructor + + The uri of the RDF class for this mapping. + + + + Decorate a property with this attribute to mark it as mapped RDF property with the given type. + + + + + Uri of the the RDF property + + + + + Flag determining if property is language invariant. Only valid for string or string collections. + + + + + Constructor + + There uri of the rdf property for this mapping. + The mapping ignores the language setting and is always non-localized. Only valid if type or generic type is string or string collection. + + + + The class of resources that are RDF classes. + + + + + Constructor + + + + + Constrctor + + + + + Constrctor + + + + + Derived VirtualizatingCollection, performing loading asychronously. + + The type of items in the collection + + + + Gets the synchronization context used for UI-related operations. This is obtained as + the current SynchronizationContext when the AsyncVirtualizingCollection is created. + + The synchronization context. + + + + Gets or sets a value indicating whether the collection is loading. + + + true if this collection is loading; otherwise, false. + + + + + Initializes a new instance of the class. + + The items provider. + + + + Initializes a new instance of the class. + + The items provider. + Size of the page. + + + + Initializes a new instance of the class. + + The items provider. + Size of the page. + The page timeout. + + + + Asynchronously loads the count of items. + + + + + Performed on background thread. + + None required. + + + + Performed on UI-thread after LoadCountWork. + + Number of items returned. + + + + Asynchronously loads the page. + + The index. + + + + Performed on background thread. + + Index of the page to load. + + + + Performed on UI-thread after LoadPageWork. + + object[] { int pageIndex, IList(T) page } + + + + The event that gets notified if the collection gets changed. + + + + + The event that gets notified if a property has changed. + + + + + An generic asynchrous virtualizing collection for sparql queries. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + A generic items provider collection. + + + + + + Number of element in the provider. + + + + + + Enumerator of the items. + + + + + + + + A generic virtualizing collection. + + + + + + The page size contains the number of elements per page. + + + + + The time after which a page can be removed. + + + + + The page size contains the number of elements per page. + + + + + Timeout in ms. If the page has not been touched it can be removed with CleanUpPages. + + + + + Number of elements in the list. + + + + + Gets an object that can be used to synchronize access to the . + + + + An object that can be used to synchronize access to the . + + + + + Gets a value indicating whether access to the is synchronized (thread safe). + + + Always false. + + + + + Gets a value indicating whether the is read-only. + + + Always true. + + + + + Gets a value indicating whether the has a fixed size. + + + Always false. + + + + + Access an element at a certain index. + + + + + + + Initializes a new instance of the class. + + Items provider + Size of the page. + The page timeout. + + + + Initializes a new instance of the class. + + The items provider. + Size of the page. + + + + Initializes a new instance of the class. + + + + + Returns the enumerator of the collection + + + + + + The list is read-only, not supported. + + + + + + The list is read-only, not supported. + + + + + + The list is read-only, not supported. + + + + + Returns the index of a certain element. + + + + + + + The list is read-only, not supported. + + + + + + + The list is read-only, not supported. + + + + + + + The list is read-only, not supported. + + + + + + The list is read-only, not supported. + + + + + + The list is read-only, not supported. + + + + + + + The list is read-only, not supported. + + + + + + + The list is read-only, not supported. + + + + + + + Removes pages that have not been touched recently. The timeout can be configured with the PageTimeout. + + + + + Load page with the given index. + + + + + + Sets the given page to the given index. + + + + + + + Load the page with the given index. + + + + + + Loads the count of the collection. + + + + + Gets the page from the item provider. + + + + + + + Gets the element count from the item provider. + + + + + + The item provider for sparql queries. + + + + + + Constructor for the SparqlQueryItemsProvider. + + The model on which the query should be executed. + The query that should be executed. + Modifier if inferncing should be enabled. Default is true + + + + Number of elements in the result. + + + + + + Enumerator of the items. Should be narrowed with offset and limit. + + Offset of the element where to start. + Number of elements. + + + + + A virtualizing collection for sparql query results + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The model to query. + The query. + Size of the page. + Using inferencing + + + + Initializes a new instance of the class. + + + + + The FileSource represents the path of the ontology on the disk. + + + + + This is the string containing the path. + + + + + The ontology configuration section. + + + + + The uri of the ontology as string. + + + + + Wrapper for the uri of the ontology as Uri. + + + + + The prefix of the ontology. + + + + + The timestamp when the ontology was first introduced in the project. + + + + + Version of the ontology. + + + + + The location of the ontology file in the web. + + + + + The location of the ontology file on the disk. + + + + + Serialization of th ontology. + + + + + + Hashcode of the ontology. + + + + + + Wrapper for the local path of the ontology. + + + + + Location of the ontology in the web. + + + + + The url of the ontology in the web. + + + + + The section containing all ontologies. + + + + + The list of all ontologies + + + + + The namespace the ontologies should be generated to. + + + + + The general store configuration section. + + + + + The store type this configuration belongs to. + + + + + The content of the store configuration. Will be handled by the store implementation. + + + + + The store section of the configuration. + + + + + The list of the store configurations. + + + + + The general configuration section. + + + + + The ontology section. + + + + + The store section. + + + + + Wrapper for the namespace for this project. + + + + + Wrapper for an easier ontology access. + + + + + + Wrapper for the store configurations. + + + + + + Loads Trinity RDF settings from a XML configuration file. + + + + + Exposes settings for Trinity RDF projects. + + + + + Get the default namespace for generated C# classes. + + + + + Get the ontology settings for the current project. + + An enumeration of ontology settings. + + + + Get the triple store settings for the current project. + + An enumeration of triple store settings. + + + + Exposes ontology settings for a Trinity RDF project. + + + + + Get the namespace URI of the ontology. + + + + + Get the default prefix of the ontology. + + + + + Get the location of the ontology source file. + + + + + Exposes triple store settings for Trinity RDF projects. + + + + + Get the triple store type identifier. + + + + + Get store specific XML configuration data. + + + + + A file source of a element + + + + + The location of this file source + + + + + A graph element in the configuration. + + + + + The Uri of the graph element + + + + + A collection containing all graphs in the configuration + + + + + Create a new graph element + + + + + + Gets the key of the given graph element. Uri is used. + + + + + + + The type of the collection + + + + + The name of the element + + + + + The index operator + + + + + + + Get the element by the key + + + + + + + Test if key exists + + + + + + + Get enumerator of collection + + + + + + A ontology element + + + + + Prefix of this ontology. + + + + + URI of this ontology. + + + + + String representation of the URI. + + + + + The key of the element. + + + + + The location of the ontology file. + + + + + The uri of the metadata graph, only needed for TriG serialisations. + + + + + The string representation of the metadata graph URI. + + + + + String representation of this element. + + + + + + Overwritten hashcode. + + + + + + Get the location of the ontology file source. + + + + + A collection of ontology settings. + + + + + Create a new ontology configuration element. + + A new configuration element. + + + + Get the key associated with a configuration element. + + + URI of the configuration element. + + + + Get the configuration element collection type. + + + + + XML element tag name. + + + + + Gets the configuration element at the specified index location. + + The index location of the System.Configuration.ConfigurationElement to return. + The System.Configuration.ConfigurationElement at the specified index. + + + + Gets the configuration element with the specified identifier. + + The identifier of the System.Configuration.ConfigurationElement to return. + The System.Configuration.ConfigurationElement at the specified index. + + + + Indicates if an element with the given key exists in this collection. + + The identifier to be checked. + true if an element with the given key exists, false otherwise. + + + + Get an enumerator for iterating over the items in this collection. + + An enumerator. + + + + A ruleset element + + + + + Gets or sets the URI of the rule set. + + + + + Gat a collection of graphs associated with this rule set. + + + + + Collection of rule sets. + + + + + Create a new rule set element. + + + + + + Gets the key (the uri) of a RuleSet element. + + + + + + + The collection type. + + + + + Contains the name of the element. + + + + + The index operator. + + + + + + + Index operator with key name. + + The key of the ruleset. + + + + + Can be used to test if the key exists. + + + + + + + Enumerator for the collection. + + + + + + Constains Virtuoso specific settings. + + + + + A collection of inference rule sets. + + + + + Get the triple store type identifier. + + + + + Get store specific XML configuration data. + + + + + Constains the settings for the Semiodesk.Trinity framework. + + + + + Namespace of the generated ontology file. + + + + + Collection of ontology settings. + + + + + Virtuoso specific triple store settings. + + + + + Get the ontology settings for the current project. + + An enumeration of ontology settings. + + + + Get the triple store settings for the current project. + + An enumeration of triple store settings. + + + + This exception will be thrown if the store rejects the query as invalid. + + + + + Contains the offending query + + + + + Create a new exception without information. + + + + + Create a new exception with an error string. + + Details about the issue. + + + + Create a new exception with an error string and an inner exception. + + Details about the issue. + The exception that propmted the query failure. + The offending query + + + + This exception will be thrown when trying to access query result methods + for unsupported SPARQL query forms (i.e. trying to get bindings from an ASK query). + + + + + Contains the offending query. + + + + + Create a new exception with an error string. + + SPARQL query type. + + + + Represents error when one or more resources you tried to access was locked. + + + + + Create a new instance of the ResourceLockedException class. + + Inner exception. + + + + Represents error when a resource could not be retrieved. + + + The exception is derived from ArgumentException to ensure backwards compatibility. + + + + + Create a new instance of the ResourceNotFoundException class. + + URI of the resource. + + + + Represents errors when a suitable triple store adapter could not be found. + + + + + Create a new instance of the StoreProviderMissingException class. + + Error message. + + + + Create a new instance of the StoreProviderMissingException class. + + Error message. + Inner exception. + + + + Extension to FileSystemInfo concerting UriRef handling + + + + + Create a UriRef from a FileSystemInfo + + + + + + + Collection of string extension related to Uris + + + + + Create a UriRef from this string. + + + + + + + Create a UriRef from this string with a given kind + + + + + + Extension of Uri class concering UriRef handling. + + + + + Create a UriRef from this Uri. + + + + + + + The datatype of the the mapped property + + + + + If the datatype is a collection, this contains the generic type. + + + + + True if the property is mapped to a collection. + + + + + The property that should be mapped. + + + + + The name of the mapped property. + + + + + True if the value has not been set. + + + + + Language of the value + + + + + The mapping ignores the language setting and is always non-localized. Only valid if type or generic type is string or string collection. + + + + + Method to test if a type is compatible. In case of collection, the containing type is tested for compatibility. + + The type to test. + True if the type is compatible + + + + Gets the value or values mapped to this property. + + + + + + This method is meant to be called from the non-mapped interface. It replaces the current value if + it is mapped to one value, adds it if the property is mapped to a list. + + + + + + Deletes the containing value and sets the state to unset. In case of a collection, it tries to remove the value from it. + + + + + + Clones the mapping of another resource. + + + + + + Clears the mapping and resets it. + + + + + This interface encapsulates the access to the methods of a RDF resource. + + + + + Uniform Resource Identifier (URI). + + + + + Model from which the resource was instantiated. + + + + + Indicates that this resource is not writable, thus Commit() is illegal. + + + + + Set the language of this resource. This will change te mapped strings to this language. + + + + + Indicates if the resources has been disposed. + + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A instance of IResource. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A string literal. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A string literal. + The culture of the string literal. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A string literal. + The language of the string literal. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A 16-bit integer value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A 32-bit integer value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A 64-bit integer value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A 16-bit unsigned integer value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A 32-bit unsigned integer value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A 64-bit unsigned integer value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A single precision float value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A double precision float value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A decimal value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A boolean value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A datetime value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + Arbitrary data in form of a byte array. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + An Uri. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + An IResource instance. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A instance of IResource. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A string literal. + The culture of the string + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A string literal. + The language of the string. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A 16-bit integer value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A 32-bit integer value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A 64-bit integer value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A 16-bit unsigned integer value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A 32-bit unsigned integer value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A 64-bit unsigned integer value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A single precision float value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A double precision float value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A decimal value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A blooean value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A date value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + Arbitrary data in form of a byte array. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + An Uri. + + + + Indicates if the resource has at least one property of the given type. + + + True on success, False otherwise. + + + + Indicates if the resource has a property with the given value. + + + + True on success, False otherwise. + + + + Indicates if the resource has a property with the given translated string value. + + + + + True on success, False otherwise. + + + + Indicates if the resource has a property with the given translated string value. + + + + + True on success, False otherwise. + + + + Enumerates all properties associated with this resource. + + + + + + Enumerates all properties associated with this resource in form + of a tuple mapping properties to their corresponding values. + + Only return values which should be serialized. + + + + + Enumerates all property values associated with this resource. + + + + + + + Gets the value of a uniquely asserted property. + + A RDF property. + + + + + Gets the value of a uniquely asserted property. + + A RDF property. + Specifies a default value that should be returned if no value exists. + + + + + This static class is responsible for discovering mapped classes. + Every assembly that defines mapping classes needs to register them with this service. + + + + + A class containing information about a RDF class mapped to c#. + + + + + The .NET type of the class. + + + + + RDF classes that are mapped to this class. + + + + + Inferenced RDF classes mapped to this class. Currently not used. + + + + + The number of classes that are not sub class of any other class. + + + + + Constructor to create a new MappingClass + + The c# type + The mapped rdf classes. + The rdf base classes. + + + + The list of all registered assemblies. + + + + + The list of all registered mapped classes. + + + + + Adds a collection of mapped classes to the registration. + + + + + + Adds a mapped class to the registration. + + + + + + Add the super classes of a given .NET type to a given list. + + A .NET type. + List where the base types will be added to. + + + + Loads all mapped classes from the assembly calling this method. + + + + + Register ALL THE THINGS!! + from all assemblies currently loaded. + + + + + Load all mapped classes from the given assembly. + + + + + + Returns all types which match the given restrictions. + + List of RDF classes + A c# type in a inheritence tree. Give Resource if you don't know what to do. + Should inferencing be factored in. + + + + The the RDF class of a C# type. + + + + + + + An interface for classes which provide functionality to manage a set of resources. + + + + + Uri of this model. + + + + + True if the model is empty. + + + + + All unampped properties will be ignored for update and thus deleted. + This reduces the amount of data thats get sent to the database but also might remove important data. + Setting this to true essentialy disables the triple API. + + + + + Adds an existing resource to the model and its backing RDF store. The resulting resource supports the use of the Commit() method. + + The resource to be added to the model. + Transaction associated with the action. + The resource which is now connected to the current model. + + + + Adds an existing resource to the model and its backing RDF store. The resulting resource supports the use of the Commit() method. + + The resource to be added to the model. + Transaction associated with this action. + The resource which is now connected to the current model. + + + + Creates a new resource in the model and its backing RDF store. + + The format string from which a globally unique identifier URI should be generated from. + Transaction associated with this action. + An instance of the given object type wrapping the newly created resource. + The newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Creates a new resource in the model and its backing RDF store. + + A Uniform Resource Identifier. + Transaction associated with this action. + The newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Creates a new resource in the model and its backing RDF store. Provides a resource object of the given type. + + Type of the resource object. Must be derived from Resource. + The format string from which a globally unique identifier URI should be generated from. + Transaction associated with this action. + An instance of the given object type wrapping the newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Creates a new resource in the model and its backing RDF store. Provides a resource object of the given type. + + Type of the resource object. Must be derived from Resource. + A Uniform Resource Identifier. + Transaction associated with this action. + An instance of the given object type wrapping the newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Creates a new resource in the model and its backing RDF store. Provides a resource object of the given type. + + The concrete type of the resource. This must be a subclass of resource. + The format of the resulting uri. + Transaction associated with this action. + An instance of the given object type wrapping the newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Creates a new resource in the model and its backing RDF store. Provides a resource object of the given type. + This method can be used to create a resource of a type which was asserted at runtime. + + A Uniform Resource Identifier. + Type of the resource object. Must be derived from Resource. + Transaction associated with this action. + An instance of the given object type wrapping the newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Removes the given resource from the model and its backing RDF store. Note that there is no verification + that the given resource and its stored represenation have identical properties. + + A Uniform Resource Identifier. + The transaction associated with this action. + + + + Removes the given resource from the model and its backing RDF store. Note that there is no verification + that the given resource and its stored represenation have identical properties. + + Resource that is to be removed from the model. + Transaction associated with this action. + + + + Indicates wheter a given resource is part of the model. + + A Uniform Resource Identifier. + Transaction associated with this action. + True if the resource is part of the model, False if not. + + + + Indicates wheter a given resource is part of the model. + + Resource that should be looked up in the model. + Transaction associated with this action. + True if the resource is part of the model, False if not. + + + + Execute a SPARQL query against the model. + + A SparqlQuery object. + Modifier to enable inferencing. Default is false. + Transaction associated with this action. + A SPARQL query result object. + + + + Execute a SparqlUpdate against the model. + + A sparql update object. + Transaction associated with this action. + + + + Retrieves a resource from the model. + + A Uniform Resource Identifier. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. Provides a resource object of the given type. + + A Uniform Resource Identifier. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. + + The instance of IResource to be retrieved. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. Provides a resource object of the given type. + + A Uniform Resource Identifier. + The type the resource should have. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. + + The instance of IResource to be retrieved. + Transaction associated with this action. + A resource with all asserted properties. + + + + Executes a SPARQL query and provides an enumeration of matching resources. + + A SparqlQuery object. + Modifier to enable inferencing. Default is false. + Transaction associated with the action. + An enumeration of resources that match the given query. + + + + Executes a SPARQL query and provides an enumeration of matching resources. + + A SparqlQuery object. + Modifier to enable inferencing. Default is false. + Transaction associated with the action. + An enumeration of resources that match the given query. + + + + Returns a enumeration of all resources that match the given type. + + Modifier to enable inferencing. Default is false. + Transaction associated with the action. + An enumeration of resources that match the given query. + + + + Returns a queryable object that can be used to build LINQ statements. + + + + + + + Executes a SPARQL query and provides an enumeration of matching resources. + + A SparqlQuery object. + Modifier to enable inferencing. Default is false. + Transaction associated with the action. + An enumeration of resources that match the given query. + + + + Imports the contents of a model located by the given URL. The method supports + importing files and other models stored in the local RDF store. + + A uniform resource locator. + The serialization format. + True to update the model, false to replace the data. + True if the contents of the model were imported, False if not. + + + + Imports the contents of a graph serialized in the stream to this model. + + The stream containing the serialization + Format of the serialization + True to update the model, false to replace the data. + True if the contents of the model were imported, False if not. + + + + Serializes the contents of the model and provides a memory stream. + + The file stream to write to. + The serialization format. + A serialization of the models contents. + + + + Updates a resource with it's current state in the model. + + + + + + + Removes all elements from the model. + + + + + Starts a transaction which can be used to group more queries together to be executed as one. + + Isolation level used to lock the database. + A handle to the transaction. + + + + Compares two models by their uris + + + + + Equals + + + + + + + + HashCode + + + + + + + The model group can be used to query over multiple models at once. + + + + + The default model of this group + + + + + A set of resources which represent a logical model for a given application domain. + + + + + The Uniform Resource Identifier which provides a name for the model. + + + + + Indicates if the model contains statements. + + + + + All unampped properties will be ignored for update and thus deleted. + This reduces the amount of data thats get sent to the database but also might remove important data. + Setting this to true essentialy disables the triple API. + + + + + This constructor is intended to be used only be the ModelManager. + + The underlying triple store implementation to be used. + Uniform Resource Identifier of the model. + + + + Removes all elements from the model. + + + + + Adds an existing resource to the model and its backing RDF store. The resulting resource supports the use of the Commit() method. + + The resource to be added to the model. + Transaction associated with the action. + The resource which is now connected to the current model. + + + + Adds an existing resource to the model and its backing RDF store. The resulting resource supports the use of the Commit() method. + + The resource to be added to the model. + Transaction associated with the action. + The resource which is now connected to the current model. + + + + Creates a new resource in the model and its backing RDF store. Provides a resource object of the given type. + + The format of the resulting uri. + Transaction associated with this action. + An instance of the given object type wrapping the newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Creates a new resource in the model and its backing RDF store. + + A Uniform Resource Identifier. + Transaction associated with this action. + The newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Creates a new resource in the model and its backing RDF store. Provides a resource object of the given type. + + Type of the resource object. Must be derived from Resource. + The format of the resulting uri. + Transaction associated with this action. + An instance of the given object type wrapping the newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Creates a new resource in the model and its backing RDF store. Provides a resource object of the given type. + + Type of the resource object. Must be derived from Resource. + A Uniform Resource Identifier. + Transaction associated with this action. + An instance of the given object type wrapping the newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Creates a new resource in the model and its backing RDF store. Provides a resource object of the given type. + + Type of the resource object. Must be derived from Resource. + The format of the resulting uri. + Transaction associated with this action. + An instance of the given object type wrapping the newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Creates a new resource in the model and its backing RDF store. Provides a resource object of the given type. + This method can be used to create a resource of a type which was asserted at runtime. + + A Uniform Resource Identifier. + Type of the resource object. Must be derived from Resource. + Transaction associated with this action. + An instance of the given object type wrapping the newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Removes the given resource from the model and its backing RDF store. Note that there is no verification + that the given resource and its stored representation have identical properties. + + A Uniform Resource Identifier. + Transaction associated with this action. + + + + Removes the given resource from the model and its backing RDF store. Note that there is no verification + that the given resource and its stored representation have identical properties. + + A resource object. + Transaction associated with this action. + + + + Updates the properties of a resource in the backing RDF store. + + Resource that is to be updated in the backing store. + Transaction associated with this action. + + + + Indicates wheter a given resource is part of the model. + + A Uniform Resource Identifier. + Transaction associated with this action. + True if the resource is part of the model, False if not. + + + + Indicates wheter a given resource is part of the model. + + A resource object. + Transaction associated with this action. + True if the resource is part of the model, False if not. + + + + Execute a SPARQL Query. + + A SparqlQuery object. + Indicate that this query should work with enabled inferencing. + Transaction associated with this action. + A SparqlQueryResults object in any case. + + + + Execute a SPARQL Update. + + A SparqlUpdate object. + Transaction associated with this action. + + + + Retrieves a resource from the model. + + A Uniform Resource Identifier. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. + + The instance of IResource to be retrieved. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. Provides a resource object of the given type. + + A Uniform Resource Identifier. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. Provides a resource object of the given type. + + The resource that should be retrieved. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. Provides a resource object of the given type. + This method can be used for runtime asserted types. + + A Uniform Resource Identifier. + Type of the resource object. Must be derived from Resource. + Transaction associated with this action. + An instance of the given resource object type, Null otherwise. + + + + Executes a SPARQL query and provides an enumeration of matching resources. + + The SparqlQuery object that should be executed. + Indicate that this query should work with enabled inferencing. + transaction associated with this action. + An enumeration of resources that match the given query. + + + + Executes a SPARQL query and provides an enumeration of matching resources. + Provides a resource object of the given type. + + The SparqlQuery object that should be executed. + Indicate that this query should work with enabled inferencing. + transaction associated with this action. + An enumeration of resources that match the given query. + + + + Returns a enumeration of all resources that match the given type. + + Indicate that this query should work with enabled inferencing. + transaction associated with this action. + An enumeration of resources that match the given query. + + + + TODO + + + + + + + Executes a SPARQL-select query and provides a list of binding sets. This method + implements transparent type marshalling and delivers the bound variables in C# + native data types. + + A SPARQL-select query which results in a set of bound variables. + Indicate that this query should work with enabled inferencing. + Transaction associated with this action. + An enumeration of bound variables that match the given query. + + + + Exports the contents of the model and provides a memory stream. + + File stream to write to. + The serialization format. + A serialization of the models contents. + + + + Imports the contents of a model located by the given URL. The method supports + importing files and other models stored in the local RDF store. The location + of the model is determined by the URI scheme. + + A uniform resource locator. + Serialization format + Pass false if you want to overwrite existing data. True if you want to keep the data and add the new entries. + True if the contents of the model were imported, False if not. + + + + Reads model contents from a stream. The method supports importing files and other models stored in the local RDF store. + + A stream. + Serialization format + Pass false if you want to overwrite existing data. True if you want to keep the data and add the new entries. + True if the contents of the model were imported, False if not. + + + + Starts a transaction which can be used to group more queries together to be executed as one. + + Isolation level used to lock the database. + A handle to the transaction. + + + + Implementation of the IModelGroup interface. + + + + + All unampped properties will be ignored for update and thus deleted. + This reduces the amount of data thats get sent to the database but also might remove important data. + Setting this to true essentialy disables the triple API. + + + + + The default model of this group. + + + + + Uri of the model group is null. + + + + + Tests if all contained models are empty. + + + + + Create a new model group from a store and a collection of models + + A store + A collection of models belonging to that store. + + + + Create a new model group from a store and a collection of models + + A store + A set of models belonging to that store. + + + + Not supported. ModelGroups are read-only. + + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + Not supported. ModelGroups are read-only. + + + + + Not supported. ModelGroups are read-only. + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + + + Indicates wheter a given resource is part of the model. + + A Uniform Resource Identifier. + Transaction associated with this action. + True if the resource is part of the model, False if not. + + + + Indicates wheter a given resource is part of the model. + + Resource that should be looked up in the model. + Transaction associated with this action. + True if the resource is part of the model, False if not. + + + + Execute a SPARQL query against the model. + + A SparqlQuery object. + Modifier to enable inferencing. Default is false. + Transaction associated with this action. + A SPARQL query result object. + + + + Retrieves a resource from the model. + + A Uniform Resource Identifier. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. Provides a resource object of the given type. + + The instance of IResource to be retrieved. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. + + A Uniform Resource Identifier. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. Provides a resource object of the given type. + + The instance of IResource that is to be retrieved. + Transaction associated with this action. + The type of the resource. + A resource with all asserted properties. + + + + Retrieves a resource from the model. + + The uri of the resource that is to be retrieved. + The type the resource should have. + Transaction associated with this action. + A resource with all asserted properties. + + + + Executes a SPARQL query and provides an enumeration of matching resources. + + A SparqlQuery object. + Modifier to enable inferencing. Default is false. + Transaction associated with the action. + An enumeration of resources that match the given query. + + + + Executes a SPARQL query and provides an enumeration of matching resources. + + A SparqlQuery object. + Modifier to enable inferencing. Default is false. + Transaction associated with the action. + An enumeration of resources that match the given query. + + + + Returns a enumeration of all resources that match the given type. + + Modifier to enable inferencing. Default is false. + Transaction associated with the action. + An enumeration of resources that match the given query. + + + + TODO + + + + + + + Executes a SPARQL query and provides an enumeration of matching resources. + + A SparqlQuery object. + Modifier to enable inferencing. Default is false. + Transaction associated with the action. + An enumeration of resources that match the given query. + + + + Serializes the contents of the model and provides a memory stream. + + The file stream to write to. + The serialization format. + A serialization of the models contents. + + + + Imports the contents of a graph serialized in the stream to this model. + + The stream containing the serialization + Format of the serialization + True to update the model, false to replace the data. + True if the contents of the model were imported, False if not. + + + + Add another model to the model group. + + The model to add + true if the element is added to the model group false if the element is already present + + + + Removes all elements in the specified collection from the model group. + + The collection of models to remove. + + + + Modifies the model group to contain only elements that are present in the current group and the specified collection. + + The collection to compare. + + + + Determines whether the model group is a subset of the given collection. + + The collection to compare. + true if the model group is a subset; otherwise, false. + + + + Determines whether the model group is a superset of the given collection. + + The collection to compare + true if the model group is a superset; otherwise, false. + + + + Determines whether the model group is a subset of the given collection. + + The collection to compare. + true if the model group is a subset; otherwise, false. + + + + Determines whether the model group is a superset of the given collection. + + The collection to compare. + >true if the model group is a superset; otherwise, false. + + + + Determines wether the model group and the given collection share common models. + + The collection to compare. + true if the model group shares common models; otherwise, false. + + + + Determines wether the model group and the given collection contain the same elements. + + The collection to compare. + true if the collections is equal; otherwise, false. + + + + Modifies the mode group to contain only elements either present in that object or the given collection, but not both. + + The collection to compare. + + + + Modifies the mode group to contain both elements present in that object and the given collection. + + The collection to compare. + + + + Determines if the model group contains the given model. + + The model to locate. + true if the model exists in the group; otherwise, false. + + + + Copies the given models in the group starting at the specified index. + + The models to copy. + The array index + + + + Returns the number of models in the group. + + + + + Returns if the group is read only. + + + + + Removes a model from the group. + + + + + + + Enumerator of the models + + + + + + Enumerator of the models + + + + + + Abstract class which marks subclasses as ontologies. Needed for automatic discovery. + + + + + This static class contains a mapping of all properties and classes to its uris for discovery of the proper object and its attributes. + For future reference: look into PreApplicationStartMethodAttribute Class or ModuleInitializer + + + + + All registered RDF ontology prefixes in the current application. + + + + + All registered RDF properties in the current application. + + + + + All registered RDF classes in the current application. + + + + + Register a namespace with a prefix. + + A namespace prefix. + A uniform resource identifier. + + + + Register an assembly to search for RDF ontologies. + + + + + + Register the calling assembly to search for RDF ontologies. + + + + + Register the concepts from a given set of ontologies. + + An enumeration of ontologies. + + + + Returns a a property with the given Uri. Creates a new one if it doesn't exist. + + + + + + + Returns a a property with the given string. Creates a new one if it doesn't exist. + + + + + + + Objects of this class represent RDF properties. + + + + + Constructor taking a Uri parameter + + Uri of the property + + + + Constructor taking a UriRef parameter + + Uri of the property + + + + Determines wheter the URIs of the compared objects are equal. + + The object to be compared. + true if the URIs of the compared objects are equal, false otherwise. + + + + Returns the hash code of the objects URI. + + A hash code string. + + + + This class does the heavy lifting of the property mapping mechanism. It stores the value and acts as intermediary for the resource. + + + + + + The value of the mapped property. + + + + + The datatype of the the mapped property. + + + + + The datatype of the the mapped property. + + + + + If the datatype is a collection, this contains the generic type. + + + + + If the datatype is a collection, this contains the generic type. + + + + + True if the property is mapped to a collection. + + + + + True if the property is mapped to a collection. + + + + + True if the value has not been set. + + + + + True if the value has not been set. + + + + + Language of the value. + + + + + Gets the mapped RDF property. + + + + + Gets the URI of the mapped RDF property. + + + + + Gets the name of the mapped .NET property. + + + + + Only valid if type or generic type is string. The mapping ignores the language setting and is always non-localized. + + + + + Creates a new property mapping. + + Name of the property in the class + The RDF property that should be mapped + This parameter is only valid if the type is string. Tells the mapping that the values should be treated as non-localized literals. + + + + Creates a new property mapping. + + Name of the property in the class + The RDF property that should be mapped + The default value used to initialize this property + This parameter is only valid if the type is string. Tells the mapping that the values should be treated as non-localized literals. + + + + Creates a new property mapping. + + Name of the property in the class + The URI of the RDF property that should be mapped + This parameter is only valid if the type is string. Tells the mapping that the values should be treated as non-localized literals. + + + + Creates a new property mapping. + + Name of the property in the class + The URI of the RDF property that should be mapped + The default value used to initialize this property + This parameter is only valid if the type is string. Tells the mapping that the values should be treated as non-localized literals. + + + + Sets the property value. + + A value. + + + + Returns the property value. + + The value, if any. + + + + Sets a single literal value or adds a value to a property mapped to a value collection. + + + This method is meant to be called from the non-mapped interface. It replaces the current value if + it is mapped to one value, adds it if the property is mapped to a list. + + The value. + + + + Deletes the containing value and sets the state to unset. In case of a collection, it tries to remove the value from it. + + + + + + Gets the value or values mapped to this property. + + + + + + Gets a list of strings as list of tuples containing the values and the language tags. + + + + + + Method to test if a type is compatible. In case of collection, the containing type is tested for compatibility. + + The type to test. + True if the type is compatible + + + + Indicates if the mapped value is a numeric type. + + A .NET type object. + true if the type is numeric, false otherwise. + + + + Indicates if the precision of a numeric target type is greater or equal to a given source type. + + The source type. + The target type. + true if the types are precision compatible, false otherwise. + + + + Clones the mapping of another resource. + + + + + + Clears the mapping and resets it. + + + + + A dictionary of named value bindings which represents a single query solution. + + + + + Exposes a SPARQL query. + + + + + The model on which the query will be run. + + + + + The type of the query. + + + + + Indicates if inference should be enabled. It depends on the underlying store if and how this is used. + + + + + Bind parameters to specified values. + + + + + + + Returns all prefixes that were specified by the query. + + + + + + Enumerates the graphs which are declared in FROM and FROM NAMED directives at the root level. + + An enumeration of URI strings. + + + + Get an array of all variable names that are defined in the root scope of the query. + + An array of avaiable names without the preceding '$' or '?' characters, if any. + + + + Get the root graph pattern. + + A non empty string, on success. + + + + Gets the outermost ORDER BY clause. + + A non empty string if a ORDER BY clause is defined. + + + + Indicates if the query selects variables that are used as subject, predicate and object in a triple pattern. + + true if the query selects triples, false otherwise. + + + + Returns the string representation of the query. + + The SPARQL query string. + + + + Exposes the results of a SPARQL query. + + + + + Number of items in the result set. + + + + + + Enumerate the resource objects in the result. + + + + + + + + Enumerate the resource objects of a given type in the result. + + + + + + + + + Returns the bool value from ASK query forms. + + True on success, False otherwise. + + + + Returns marshalled Resource objects returned from DESCRIBE, CONSTRUCT + or interpretable SELECT query forms. + + An enumeration of Resource objects. + + + + Returns marshalled instances of the given Resource type which were + returned from DESCRIBE, CONSTRUCT or interpretable SELECT query forms. + + The Resource type object. + An enumeration of instances of the given type. + + + + Returns a set of bound values (bindings) returned from SELECT query forms. + + An enumeration of bound solution variables (BindingSet). + + + + Extensions for the ConstantExpression type. + + + + + Convert the expression into a ConstantTerm. + + A constant expression. + A ConstantTerm object. + + + + Convert the expression into a IriExpression. + + A constant expression. + A IriExpression object. + + + + Convert the expression into a LiteralExpression. + + A constant expression. + A LiteralExpression object. + + + + Convert the expression into a numeric expression. + + A constant expression. + A NumericExpression object. + + + + Convert the expression into a node. + + A constant expression. + A Node object. + + + + Indicates if the expression can be evaluated to false. + + A constant expression. + true if the value is either null or false, false otherwise. + + + + Indicate if an expression contains antoher or is equal to it. + + An expression. + Expression to be evaluated. + true if e is equal to the given expression or one of its query sources, false otherwise. + + + + Extensions for the MemberInfo type. + + + + + Gets the first custom attribute of a specified type which is attached to a class member. + + Custom attribute type. + A class member. + A custom attribute object on success, null otherwise. + + + + Get the .NET type of the given class member. + + A class member. + The class member type. + + + + Indicates if the given member is of type Uri or a sub type. + + A class member. + true if the member can be represented by a URI, false otherwise. + + + + Indicates if the given member is a built-in call. + + A class member. + true if the class member is a built-in call, false otherwise. + + + + Extensions for the MethodCall type. + + + + + Indicates if the method call has an argument with a specified value at a specified location. + + A method call expression. + Location of the argument. + Value of the argument. + true if the method call has an argument with the given value, false otherwise. + + + + Indicates if the method call has an argument at a speficied loaction with one of the specified values. + + A method call expression. + Location of the argument. + Values of the argument. + true if the method call has an argument with one of the given values, false otherwise. + + + + Get the value of an argument at the specified location. + + Value type. + A method call expression. + Argument location. + + + + + Get the value of an argument at the specified location. + + Value type. + A method call expression. + Argument location. + Value to be returned if no argument is specified at the given location. + + + + + Extension for the NodeFactory type. + + + + + Create a boolean literal value. + + A node factory. + Value of the literal node. + A new literal node object. + + + + Generates SELECT queries which return binding sets. + + + This class is intended to be used as a root query generator. For generating SELECT queries + for sub-queries, refer to SubSelectQueryGenerator. + + + + + Builds the triples required to access a given member and accociates its value with a variable. + + The member to be accessed. + The object variable associated with the member value. + + + + Builds the triples required to access a given member and accociates its value with a variable. + + The member to be accessed. + The object variable associated with the member value. + + + + Generates a SPARQL query from a LINQ query model by visiting all clauses and invoking + expression implementation using a ExpressionTreeVisitor. + + The result type. + + + + Allows to access query generators and sub query generators in a tree-like fashion. + + + + + Visits all expressions in a query model and handles the query generation. + + + + + Get a variable from an expression that can be used as a subject in triple patterns and represents resources. + + + + + + + A simple SPARQL parser. + + + This class is primarily intended to support a limited range of query + preprocessing tasks such as setting the values of query parameters (@-variables) + as quickly as possible. It does not aim to support the full SPARQL standard syntax. + + + + + We use the list of tokens to generate the query string with bound parameters on demand. + + + + + Type of the last read token. + + + + + URIs of the graphs queried or manipulated by the query. + + + + + Namespace prefixes defined in the query. + + + + + Namespace prefixes referenced in the query. + + + + + Names of the bindable query parameters starting with '@'. + + + + + Bound literal values of the query parameters. + + + + + Token types of the query parameters. + + + + + Creates a new instance of the SparqlPreprocessor class. + + A text reader. + SPARQL syntax level. + + + + Starts analyzing the SPARQL query. + + Trz to add prefix definitions for the namespaces used but not declared in the query. + + + + Gets the next parseable Token from the Input or raises an Error. + + + + + + Add FROM definition to the query. + + URI of the graph. + + + + Add a FROM NAMED definition to the query. + + URI of the graph. + + + + Gets the PREFIX definitions in the query. + + + + + + Set the value for a query parameter which is preceeded by '@'. + + The parameter name including the '@'. + The paramter value. + + + + Return the query with all bound variables. + + Level of the sub graph to be returned (0 := entire query). + + + + + Returns the entire query string. + + + + + + Graph pattern scope of variables defined in a SPARQL query. + + + + + A variable accessible in all levels of the query. + + + + + A locally accessible variable. + + + + + A simple SPAQL Query class. This class aims to ease formulating SPARQL + query strings by automatically setting PREFIX declarations from a given + namespace manager. + + + + + + Cached version of the query string. + + + + + Indicates if a query parameter value has been changed and the cached query string needs to be regenerated. + + + + + The SPARQL query processor used to determine the prefixes and statement variables in the query. + + + + + Names of the globally defined variables without the preceding '?'. + + + + + The default model of the Query, if there is excactly one. + + + + + Get or set the model used for this query. + + + + + The query form as defined in http://www.w3.org/TR/rdf-sparql-query/#QueryForms + + + + + Indicates if the query result should be expanded using run-time inferencing. + + + + + Creates a new SPARQL query. If enabled, the PREFIXES used in any of the query's graph patterns will + be declared in the query header if they are found in the application config. Additionally, the query + may be compacted in order to reduce processing overhead when being used repeatedly in loops. + + The SPARQL query string. + Set to true if the namespace prefixes used in the query should be declared. + + + + Indicates if the query provides a description of one or more resources. + + + + + Set the value for a query parameter which is preceeded by '@'. + + The parameter name including the '@'. + The paramter value. + + + + Enumerates the graphs which are declared in FROM and FROM NAMED directives at the root level. + + An enumeration of URI strings. + + + + Returns all prefixes that were specified by the query. + + + + + + Gets the names of all variables which are defined in the root graph pattern. + + + + + + Gets the entire query as a string. + + + + + + Indicates if the query contains an ORDER BY clause in any of its graph patterns. + + true if the query contains an ORDER BY clause, false otherwise. + + + + Adds a LIMIT <int> clause to the query in order to restrict it to put an upper bound on the number of solutions returned. + + The number of return values. + + + + Adds an Offset <int> clause to the query which causes the solutions generated to start after the specified number of solutions. + + The number of entries to skip. + + + + Returns the query string with generated prefixes and subsituted parameters. + + A valid SPARQL string. + + + + The SPARQL query forms as specified in http://www.w3.org/TR/rdf-sparql-query/#QueryForms + + + + + The SPARQL query type could not be determined. + + + + + The ASK query form. + + + + + The CONSTRUCT query form. + + + + + The DESCRIBE query form. + + + + + The SELECT query form. + + + + + A preprocsesor for SPARQL queries. + + + + + The SPARQL query form, i.e. ASK, DESCRIBE, SELECT, CONSTRUCT. + + + + + Indicates if the query returns triples. + + + + + Variables visible in the query root scope. + + + + + Variables only visible in local scope. + + + + + Indicates if the query has an ORDER BY solution modifier. + + + + + Create a new instance of the SparqlQueryPreprocessor class. + + A text reader. + SPARQL syntax level. + + + + Gets the next token in the query and advance the reader position. + + A SPARQL token. + + + + Adds a LIMIT clause to the query in order to restrict it to put an upper bound on the number of solutions returned. + + The number of return values. + + + + Adds an OFFSET clause to the query which causes the solutions generated to start after the specified number of solutions. + + The number of return values. + + + + Get the entire SPARQL query string. + + A SPARQL query string. + + + + Get the ORDER BY clause. + + A string. + + + + Provides functionality to perform serialization of native .NET types into SPARQL strings. + + + + + Serializes a string and excapes special characters. + + A string literal. + + + + + Serializes a string with a translation + + A string literal. + A language tag. + + + + + Serializes a typed literal. + + A value. + A type URI. + + + + + Serializes a value depdening on its type. + + An object. + + + + + Serializes a DateTime object. + + A date time object. + + + + + Serializes a URI. + + A uniform resource identifier. + + + + + Serializes a resource. + + A resource. + Ignores all unmapped properties for serialization. + + + + + Generate the dataset clause for a given model. + + A model. + + + + + Generate a dataset clause for a model group. + + A model group. + + + + + Generate a dataset clause for an enumeration of models. + + An enumeration of models. + + + + + Serialize a count query for the given SPARQL query. + + The model to be queried. + The query which results should be counted. + + + + + Generate a query which returns the URIs of all resources selected in a given query. + + The model to be queried. + The SPARQL query which provides resources. + Offset solution modifier. + Limit solution modifier. + + + + + Add an offset or limit solution modifier to a given SPARQL query. + + The model to be queried. + The SPARQL query to be executed. + Offset solution modifier. + Limit solution modifier. + + + + + A simple SPARQL Update class. This class aims to ease formulating SPARQL + query strings by automatically setting PREFIX declarations from a given + namespace manager. + + + + + Get or set the model used for this query. + + + + + Get or set the resource being updated. + + + + + The SPARQL processor used to determine the prefixes and statement variables in the query. + + + + + The plain SPARQL update string. + + + + + Create a new SPARQL Update with an optional namespace manager instance which + can be used to declare PREFIX declarations for the namespace abbreviations + used in the update string. + + The u update string. + + + + Set the value for a query parameter which is preceeded by '@'. + + The parameter name including the '@'. + The paramter value. + + + + Returns the query string with generated prefixes and subsituted parameters. + + A valid SPARQL string. + + + + Enumerates all supported RDF serialization formats. + + + + + RDF/XML http://www.w3.org/TR/REC-rdf-syntax/ + + + + + N3 http://www.w3.org/TeamSubmission/n3/ + + + + + NTriples http://www.w3.org/2001/sw/RDFCore/ntriples/ + + + + + NTriples https://www.w3.org/TR/2014/REC-n-quads-20140225/ + + + + + TriG http://www.w3.org/TR/trig/ + + + + + Turtle http://www.w3.org/TR/turtle/ + + + + + JSON + + + + + JSON-LD https://www.w3.org/TR/json-ld/ + + + + + This class repesents a RDF resource. + + + + + The cache for the associated resources, needed to support lazy loading for mapping. + + + + + This dictionary contains the properties and the associated values. + + + + + Contains a list of all properties which implement the INotifyPropertyChanged interface. + + + + + All mappings as discovered by InitialisePropertyMapping. + + + + + Handle to the model. + + + + + Public accessor to the model. + + + + + The uri which represents the resource. + + + + + New resource which have never been committed need to be treated differently. + + + + + Indicates if the resources has been disposed. + + + + + True if the properties of the resources has been committed to the model. + + + + + Indicates this resource is read-only. + + + + + This method provides a mechanism to change writability in subclasses. + + + + + + Set the language of this resource. This will change te mapped strings to this language. + + + + + Private since a Resource cannot be created without a URI. + + + + + Create a new resource with a given Uri. + + + + + + Create a new resource with a given Uri. + + + + + + Create a new resource with a given string. Throws an exception if string is Uri compatible. + + The string converted to a Uri. Throws an exception if not possible. + + + + Create a new instance of the class and copy the properties from another class instance. + + + + + + Destructor + + + + + Sets the model the resource is stored in. + + A model. + + + + Loads and initialises all mapped properties. + + + This method could be re-reimplemented and sped up by the CIL generator. + + + + + Overwrite this method to return the RDF classes of your resource type. + + + + + + Returns the uri with brackets. + + + + + + Determines wheter the URIs of the compared objects are equal. + + The object to be compared. + true if the URIs of the compared objects are equal, false otherwise. + + + + Returns the hash code of the objects URI. + + A hash code string. + + + + Internal method to add the values. This is not public because the value is of type object and thus not typesafe for rdf. + + + + + + + + Add a property with a resource as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a string as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a string and language as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a string and language as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a Int16 as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a Int32 as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a Int64 as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a UInt16 as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a UInt32 as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a UInt64 as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a float as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a double as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a decimal as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a bool as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a DateTime as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a byte array as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with an Uri as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Internal method to remove the values. This is not public because the value is of type object and thus not typesafe for rdf. + + + + + + + Removes a property with a IResource value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a string value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a string value associated with the given language. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a string value associated with the given language. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a Int16 value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a Int32 value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a Int64 value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a UInt16 value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a UInt32 value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a UInt64 value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a float value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a double value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a decimal value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a bool value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a DateTime value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a byte array value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with an Uri value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Internal method to remove all properties. + + + + + Returns true if the resource has any object connected with the specified property. + + The property to be checked. + true if the property is associated, false if not + + + + Returns true if the specified value is connected to this resource with the given property. + + The property to be checked + The value that should be tested + true if the value is associated with the property, false if not + + + + Returns true if the specified string value with the given language is connected to this resource with the given property. + + The property + The string value. + The language the string is in. + + + + + Returns true if the specified string value with the given language is connected to this resource with the given property. + + The property + The string value. + The language the string is in. + + + + + This method lists all combinations of properties and values. + + Only return values which should be serialized. + + + + + Lists all values associated with one property. + This inclues the mapped values as well. + + + + + + + List all available properties. + This includes mapped properties if they have valid values. + + + + + + Return the value for a given property. + + A RDF property. + The value on success, null if the object has no such property. + + + + Return the value for a given property with a predefined default value. + + A RDF property. + Specifies a default value that should be returned if no value exists. + The value on success, the default value if the object has no such property. + + + + Persist changes in the model. + + + + + Reload the resource from the model. + + + + + This method returns if property is mapped. + + Rdf property to be tested. + Type of the mapping. + + + + + This method returns the mapped property of the given rdf property and type. It returns null if this mapping is not available. + + Rdf property to be tested. + Type of the mapping. + + + + + Returns the value from the mapped property. + + + + + + + + Set the mapped value. This also raises the PropertyChanged event. + + + + + + + + Load all cached resources from the mapped property. The values of the mapped property are resolved when this method returns. + + + + + + Register a property name to raise the INotifyProperty signal on rollback. + + Name of a property. + + + + Raises the PropertyChanged event of the object. + + Name of a property. + + + + Update the property mappings with the values in the selected language. + + + + + Dispose this resource. + Does nothing meaningful currently. + + + + + Needed for the implementation of the INotifyPropertyChanged interface. + + + + + Warns the developer if this object does not have + a public property with the specified name. This + method does not exist in a Release build. + + + + + Returns whether an exception is thrown, or if a Debug.Fail() is used + when an invalid property name is passed to the VerifyPropertyName method. + The default value is false, but subclasses used by unit tests might + override this property's getter to return true. + + + + + This method loads the cached Resources for the given MappingProperty from the Storage and returns them. + They are instantiated as the defined type. The cache for this mapping property is emptied. + + Mapping property which should be loaded from cache. + List of formerly cached resources. + + + + Tests if the mapping has cached values. + + + + + + + Tests if the mapping has a certain cached values. + + + + + + + + + + + + + + + Converts resources to and from JSON format. + + + + + Create a new instance of the JsonResourceConverter class. + + A triple store. + + + + Indicates if the given object can be converted. + + An object. + true if the object is of type Resource, false otherwise. + + + + Convert a JSON string into an object. + + A JSON reader. + Returned object type. + The existing value of object being read. + The calling serializer. + + + + + Indicates if the converter can write JSON. + + + + + Write the JSON representation of an object. + + The JSON writer to be used. + The object value. + The JSON serializer to be used. + + + + Settings for the serializing resources to and from JSON format. + + + + + Create a new instance of the JsonResourceSerializerSettings class. + + A triple store. + + + + A store adapter for dotNetRDF. + + + + + Creates a new dotNetRDFStore. + + A list of ontology file paths relative to this assembly. The store will be populated with these ontologies. + + + + Removes model from the store. + + Uri of the model which is to be removed. + + + + Query if the model exists in the store. + OBSOLETE: This method does not list empty models. At the moment you should just call GetModel() and test for IsEmpty() + + Uri of the model which is to be queried. + + + + + Executes a query on the store which does not expect a result. + + The update query + An associated transaction + + + + Executes a SparqlQuery on the store. + + + + + + + + This method queries the dotNetRdf store directly. + + + + + + + Gets a handle to a model in the store. + + Uri of the model. + + + + + Indicates if the store is ready to be queried. + + + + + Lists all models in the store. + + All handles to existing models. + + + + Try parse RDF from a given text reader into the store. + + The text reader to read from. + The graph to store the read triples. + RDF format to be read. + + + + Loads a serialized graph from the given stream into the current store. See allowed formats. + + Stream containing a serialized graph + Uri of the graph in this store + Allowed formats + Pass false if you want to overwrite the existing data. True if you want to add the new data to the existing. + + + + + Loads a serialized graph from the given location into the current store. See allowed formats. + + Uri of the graph in this store + Location + Allowed formats + Pass false if you want to overwrite the existing data. True if you want to add the new data to the existing. + + + + + Writes a serialized graph to the given stream. See allowed formats. + + Stream to which the content should be written. + Uri fo the graph in this store + Allowed formats + + + + + + + + + + + + Creates a model group which allows for queries to be made on multiple models at once. + + + + + + + Creates a model group which allows for queries to be made on multiple models at once. + + + + + + + Closes the store. It is not usable after this call. + + + + + A store provider for dotNetRDF triple store adapters. + + + + + Create a new instance of the dotNetRDFStoreProvider class. + + + + + Create a new triple store with the given settings. + + Triple store setting variables. + + + + + A generic triple provider interface + + + + + Indicates if another triple is available + + + + + Iterates to the next triple + + + + + Subject + + + + + Predicate + + + + + Object + + + + + Number of total triples + + + + + Resets the provider + + + + + Storage that can can connect to Sparql Endpoints + + + + + + + Indicates if the store is ready to be queried. + + + + + Set this property to log the SPARQL queries which are executed on this store. + For example, to log to the console, set this property to System.Console.Write(System.String). + + + + + A store adapter for SPARQL protocol endpoints. + + + + + Create a new instance of the SparqlEndpointStoreProvider. + + + + + Create a new triple store with a specified configuration. + + Triple store specific configuration variables. + + + + + Handles query results for Stardog triple stores. + + + + + An RDF handler for Stardog triple stores. + + + + + Handles events when reading an RDF file has started and no triples have been read. + + The source of the event. + + + + Handle events when reading an RDF file has ended and all triples have been read. + + The source of the event. + Indicates if errors have occured while reading the file. + + + + Handle events when during reading of an RDF file a triple has been read. + + The source of the event. + The triple. + + + + RDF result handler for Stardog triple stores. + + + + + Result value of ASK queries. + + + + + Binding result of SELECT queries. + + + + + Create a new instance of the class StardogResultHandler. + + + + + Must be overridden by derived handlers to appropriately handle boolean results. + + Boolean result value. + + + + Must be overridden by derived handlers to appropriately handler SPARQL Results. + + SPARQL bindings. + + + + + Must be overridden by derived handlers to appropriately handle variable declarations. + + Variable name. + + + + + Indicates the result value of ASK queries. + + true or false + + + + A store adapter for Stardog databases. + + + + + Indicates if the store is connected and awaiting queries. + + + + + Create a new instance of the StardogStore class. + + URL of the host to connect to. + Username to be used when connecting. + Password to be used when connecting. + Knowledge base / database identifier. + + + + Adds a new model with the given uri to the storage. + + Uri of the model + Handle to the model + + + + Query if the model exists in the store. + OBSOLETE: This method does not list empty models. At the moment you should just call GetModel() and test for IsEmpty + + Uri of the model which is to be queried. + + + + + Executes a query on the store which does not expect a result. + + SPARQL Update to be executed. + An optional transaction. + + + + Executes a SparqlQuery on the store. + + SPARQL query string to be executed. + An optional transaction. + + + + + Executes a SparqlQuery on the store. + + SPARQL query to be executed. + An optional transaction. + + + + + Gets a handle to a model in the store. + + Model URI. + + + + + Lists all models in the store. + + All handles to existing models. + + + + Loads a serialized graph from the given stream into the current store. See allowed formats. + + Stream containing a serialized graph + Uri of the graph in this store + Allowed formats + Pass false if you want to overwrite the existing data. True if you want to add the new data to the existing. + + + + + Loads a serialized graph from the given location into the current store. See allowed formats. + + Uri of the graph in this store + Location + Allowed formats + Pass false if you want to overwrite the existing data. True if you want to add the new data to the existing. + + + + + Writes a serialized graph to the given stream. See allowed formats. + + Stream to which the content should be written. + Uri fo the graph in this store + Allowed formats + + + + + Removes model from the store. + + Uri of the model which is to be removed. + + + + Starts a transaction. The resulting transaction handle can be used to chain operations together. + + Isolation level of the operations executed in the transaction. + + + + + Invoked when a transaction is completed. + + Object which invoked the event. + Event arguments. + + + + Creates a model group which allows for queries to be made on multiple models at once. + + The list of uris of the models that should be grouped together. + + + + + Creates a model group which allows for queries to be made on multiple models at once. + + The list of model handles that should be grouped together. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Wrapper to support Stardog transactions. At present, nested transaction is NOT supported as the transaction instance is a wrapper around the StardogConnector. + + + + + + + + Instance is active and has not been committed or rolled back. + Once the transaction has been committed or rolled back, it should be disposed of. + + + + + + + + + + + + + + + + + + + + Number of pending "Additions" in the current transaction. + + + + + Number of pending "Removals" in the current transaction. + + + + + Has any pending changes. + + + + + SPARQL converter. Takes a typical Stardog "update" query and decomposes it so that it can be used with the StardogConnector's UpdateGraph method. + Does require a valid Store instance to extract the Removals from the current connection. + + + + + An RDF triple. + + + + + Get or set the subject of the triple. + + + + + Get or set the predicate of the triple. + + + + + Get or set the object of the triple. + + + + + Gets a SPARQL compliant string representation of the triple. + + A string. + + + + An RDF node. + + + + + Get or set the literal node. + + + + + Get or set the literal data type URI. + + + + + Indicates if the node is a literal. + + + + + Get a SPARQL compliant string representation of the node. + + + + + + The last SPARQL query supplied to + + + + + The URI of the Graph Additions and Deletes will be applied to. + + + + + The URI of the entity being updated/saved. + + + + + Triple instances which will be removed + + + + + Triple instances converted from UpdateTriples + + + + + Parsed TripleSet instances which constitute the Additions + + + + + Create an instance of the class StardogUpdateSparqlConvertor. + + + + + Create an instance of the class StardogUpdateSparqlConvertor. + + Startdog store instance. + + + + Given a typical SPARQL update query, it will be parsed and decomposed into the appropriate artifacts suitable to call the StardogConnector UpdateGraph method. + + SPARQL query string. + + + + Returns string based triples, separated by a ' ; ' string. If only two are found, the s value is returned as null since it is assumed that predicate and object are present. + + + + + Peaks ahead to see if there is another node present; indicated by the next non-whitespace of a < or ' character. + + + + + Extensions for the System.String type. + + + + + Extracts the instance'th string between start and end. + If start or end is null/empty then instance is assumed to always be 1 regardless of the value. + + Input string + Start delimiter + End delimiter + Instance of start/end to use. + + + + Extracts the instance'th string between start and end. + If start or end is null/empty then instance is assumed to always be 1 regardless of the value. + + Input string + Start delimiter + End delimiter + Pointer into input where parsing ended. This will be at the point AFTER end was found. + Instance of start/end to use. + + + + Returns the string between the first set of single quotes. Supports escaped single quotes but only \\' + + Input string + Pointer into input where parsing ended. This will be at the point AFTER end was found. + + + + + This class allows the usage of the Stardog store. + An IStore handle can be created by calling + StoreFactory.CreateStore("provider=stardog;host=http://localhost:5820;uid=admin;pw=admin;sid=MyStore"); + + + + + Create a new instance of the class StardogStoreProvider. + + + + + The GetStore method which will be called with the parsed configuration string. + + Store specific configuation parameters. + An instance of IStore. + + + + The IStorage interface describes the methods an RDF Storage has to implement. + + + + + Indicates if the store is ready to be queried. + + + + + Set this property to log the SPARQL queries which are executed on this store. + For example, to log to the console, set this property to System.Console.Write(System.String). + + + + + Adds a new model with the given uri to the storage. + + Uri of the model + Handle to the model + + + + Removes model from the store. + + Uri of the model which is to be removed. + + + + Removes model from the store. + + Handle to the model which is to be removed. + + + + Query if the model exists in the store. + OBSOLETE: This method does not list empty models. At the moment you should just call GetModel() and test for IsEmpty + + Uri of the model which is to be queried. + + + + + Query if the model exists in the store. + OBSOLETE: This method does not list empty models. At the moment you should just call GetModel() and test for IsEmpty + + Handle to the model which is to be queried. + + + + + Gets a handle to a model in the store. + + Uri of the model. + + + + + Lists all models in the store. + + All handles to existing models. + + + + Executes a SparqlQuery on the store. + + + + + + + + Executes a query on the store which does not expect a result. + + + + + + + Starts a transaction. The resulting transaction handle can be used to chain operations together. + + The isolation level of the transaction. + + + + + Creates a model group which allows for queries to be made on multiple models at once. + + The list of uris of the models that should be grouped together. + + + + + Creates a model group which allows for queries to be made on multiple models at once. + + The list of uris of the models that should be grouped together. + + + + + Loads a serialized graph from the given location into the current store. See allowed formats. + + Uri of the graph in this store + Location + Allowed formats + Pass false if you want to overwrite the existing data. True if you want to add the new data to the existing. + + + + + Loads a serialized graph from the given stream into the current store. See allowed formats. + + Stream containing a serialized graph + Uri of the graph in this store + Allowed formats + Pass false if you want to overwrite the existing data. True if you want to add the new data to the existing. + + + + + Writes a serialized graph to the given stream. See allowed formats. + + Stream to which the content should be written. + Uri fo the graph in this store + Allowed formats + + + + + Initializes the store from the configuration. It uses either the provided file or attempts to load from "ontologies.config" located next to the executing assembly. + For legacy reasons it also looks in the app.config file. + If the ontology files are in a different path, this can be supplied as a base path.. + + Path the configuration should be read from. + Path where the ontologies should be searched for. + + + + Initializes the store from the configuration. It uses either the provided file or attempts to load from "ontologies.config" located next to the executing assembly. + For legacy reasons it also looks in the app.config file. + If the ontology files are in a different path, this can be supplied as a base path.. + + Load a specific configuration file. + If given, this function tries to load the ontologies from this folder. + + + + Exposes methods for executing triple store specific methods. + + + + + Load storage specific configurations. + + Triple store instance. + + + + This class encapsulates the functionality of an abstract triple store. Cannot be used directly. + Use StoreFactory to get a concret implementation. + + + + + Indicates if the store is connected and awaiting queries. + + + + + Set this property to log the SPARQL queries which are executed on this store. + For example, to log to the console, set this property to System.Console.Write(System.String). + + + + + Removes model from the store. + + Uri of the model which is to be removed. + + + + Removes model from the store. + + Handle of the model which is to be removed. + + + + Query if the model exists in the store. + OBSOLETE: This method does not list empty models. At the moment you should just call GetModel() and test for IsEmpty + + Uri of the model which is to be queried. + + + + + Query if the model exists in the store. + OBSOLETE: This method does not list empty models. At the moment you should just call GetModel() and test for IsEmpty + + Handle to the model which is to be queried. + + + + + Lists all models in the store. + + All handles to existing models. + + + + Executes a SparqlQuery on the store. + + SPARQL query to be executed. + An optional transaction. + + + + + Executes a query on the store which does not expect a result. + + SPARQL Update to be executed. + An optional transaction. + + + + Starts a transaction. The resulting transaction handle can be used to chain operations together. + + Isolation level of the operations executed in the transaction. + + + + + Loads a serialized graph from the given location into the current store. See allowed formats. + + Uri of the graph in this store + Location + Allowed formats + Pass false if you want to overwrite the existing data. True if you want to add the new data to the existing. + + + + + Loads a serialized graph from the given stream into the current store. See allowed formats. + + Stream containing a serialized graph + Uri of the graph in this store + Allowed formats + Pass false if you want to overwrite the existing data. True if you want to add the new data to the existing. + + + + + Writes a serialized graph to the given stream. See allowed formats. + + Stream to which the content should be written. + Uri fo the graph in this store + Allowed formats + + + + + Initializes the store from the configuration. It uses either the provided file or attempts to load from "ontologies.config" located next to the executing assembly. + For legacy reasons it also looks in the app.config file. + If the ontology files are in a different path, this can be supplied as a base path.. + + Load a specific configuration file. + If given, this function tries to load the ontologies from this folder. + + + + Initializes the store from the configuration. It uses either the provided file or attempts to load from "ontologies.config" located next to the executing assembly. + For legacy reasons it also looks in the app.config file. + If the ontology files are in a different path, this can be supplied as a base path.. + + Path the configuration should be read from. + Path where the ontologies should be searched for. + + + + This method loads the configuration data from the given file. + This can read the old App.config and new ontologies.config files. + + Path to either ontologies.config or App.config file. + + + + + Loads Ontologies defined in the currently loaded config file into the store. + + Handle of the configuration. + Searchpath for the ontologies. + + + + Disposes this store and it's underlying connection. This object cannot be reused after disposing. + + + + + Adds a new model with the given uri to the storage. + + Uri of the model + Handle to the model + + + + Gets a handle to a model in the store. + + Model URI. + + + + + Creates a model group which allows for queries to be made on multiple models at once. + + The list of uris of the models that should be grouped together. + + + + + Creates a model group which allows for queries to be made on multiple models at once. + + The list of model handles that should be grouped together. + + + + + This is the factory for object implementing the IStore interface. + If you want to use your own store, you can load the assembly containing the provider with the LoadProvider method. + + + + + Tests if the given connection string is valid. + + + + + + + Creates a store from the given connection string. + + + + + + + Tries to read a connection string with the given name from the configuration. If no name was given, the first compatible connection string is used. + + + + + + + Creates a temporary in-memory store using the dotNetRDF provider. + + + + + + Create a store suitable for querying SPARQL protocol endpoints. + + URL of the SPARQL endpoint. + + + + + Tries to load a store provider from the given assembly. + + + + + + + Tries to load a store provider from the given assembly file. + + A assembly file info object. + + + + + Tries to load a store provider from the given assembly. + + An assembly. + + + + + This is the abstract store provider class. Implement it if you want to write your own store provider. + + + + + The name of the store. + + + + + All valid configuration options + + + + + The constructor of the store provider + + + + + The GetStore method which will be called with the parsed configuration string. + + Store specific configuation parameters. + An instance of IStore. + + + + This class can be used to load or update ontologies in stores. It provides convinence methods to load directly from the ontologies.config file. + + + + + Create a new instance of the StoreUpdater class. + + The store you want to update. + A directory used as base path. + + + + This method loads the given ontologies into the provided store. + A model will be created for each ontology. If it already exists, it wil be replaced. + + A collection of ontologies to be loaded. + + + + Gets an absolute path from a location relative to the triple store instance. + + A relative path. + + + + + This method can be used to load storage specific configuration. + + + + + + Handle for transaction events. + + Object which raised the event. + Event arguments. + + + + Exposes a repository which supports transactions. + + + + + The isolation level of the transaction. + + + + + Commit the transaction. + + + + + Rolls the transaction back. + + + + + Will be raised if transaction finishes. + + + + + Interface for a transactional object + + + + + Persist any changes to the object. + + + + + Discard any changes to the object. + + + + + This class encapsulates arguments for transaction event. + + + + + Indicates that the transaction finished with a commit. + + + + + Indicates that the transaction finished with a rollback. + + + + + Create a new transaction event object. + + Pass true to indicate that a commit happened. Pass false to indicate that a rollback happend. + + + + This class extends the framework Uri class to also include fragments for + equality testing. + + + + + Creates an UriRef from an Uri + + + + + + Create an UriRef from a string. + + + + + + Creates an UriRef from a string with a given UriKind. + + + + + + + Creates an UriRef from a base uri and a relative uri as string. + + + + + + + Tests the equality of two UriRefs. + + + + + + + Override of GetHashCode which factors the fragment in. + + + + + + Generates a globally unique resource identifier in the Semiodesk namespace: <urn:uuid:{GUID}/> + + A Uniform Resource Identifier. + + + + A Uniform Resource Name (URN). + + + + + Create a new instance of a URN from an identifier. + + Identifier associated with a URN namespace. + + + + Provides functionality for the serialization and deserialization of .NET + objects to XML Schema encoded strings. + + + + + XSD URI vocabulary. + + + + + Maps .NET types to XSD type URIs. + + + + + Maps XSD type URIs to .NET types. + + + + + Maps .NET types to object serialization delegates. + + + + + Maps XSD type URIs to object deserialization delegates. + + + + + Provides the XML Schema type URI for a given .NET type. + + A .NET type object. + A XML Schema type URI. + + + + Indicates if there is a registered XML Schema type URI for the given .NET type. + + A .NET type object. + true if there is a XML schema type, false otherwise. + + + + Provides the XML Schema type URI for a given .NET type. + + A xsd type uri. + A XML Schema type URI. + + + + The object serialization delegate + + + + + + + Serializes an object to an XML Schema encoded string. + + + + + + + Serializes an object forcd to a given type to an XML Schema encoded string. + + + + + + + + Serialize an IResource + + + + + + + Serialize an Uri + + + + + + + Serialize a string + + + + + + + Serialize an array of strings + + + + + + + Serialize a tuple consisting of a string and its associated culture + + + + + + + Serialize a DateTime + + + + + + + Serialize a byte array + + + + + + + Serialize a bool + + + + + + + Serialize an Int16 + + + + + + + Serialize an Int32 + + + + + + + Serialize an Int64 + + + + + + + Serialize an Uint16 + + + + + + + Serialize an Uint32 + + + + + + + Serialize an Uint64 + + + + + + + Serialize a decimal + + + + + + + Serialize a double + + + + + + + Serialize a float + + + + + + + Deserialization delegate, format for deserialization functions. + + + + + + + Deserialize string, nothing to do. + + The string + The string + + + + Deserialize string with given type uri. + + The value as string. + The xsd type. + The value in its correct type. + + + + Deserialize an int16 from a string. + + The serialized int16 + An int16 + + + + Deserialize an int32 from a string. + + The serialized int32 + a int32 value + + + + Deserialize an int64 from a string. + + The serialized int64 + A int64 value + + + + Deserialize an uint6 from a string. + + The serialized int64 + A uint16 value + + + + Deserialize an int32 from a string. + + The serialized int32 + A int32 value + + + + Deserialize an uint64 from a string. + + The serialized uint64 + A uint64 value + + + + Deserialize a bool from a string. + + The serialized bool + A bool value + + + + Deserialize a decimal from a string. + + The serialized decimal + A decimal value + + + + Deserialize a double from a string. + + The serialized double + A double value + + + + Deserialize a single from a string. + + The serialized single + A single value + + + + Deserialize a DateTime from a string. + + The serialized DateTime + A DateTime value + + + + Deserialize a Resource from a string. + + The serialized Resource + A Resource value + + + + Deserialize a uri from a string. + + The serialized uri + A uri value + + + + Deserialize a ByteArray from a string. + + The serialized ByteArray + A ByteArray value + + + + Deserialize a XmlNode from a string. + + The serialized XmlNode + A XmlNode value + + + + Deserialize a LiteralNode from a string. + + The serialized LiteralNode + A LiteralNode value + + + diff --git a/tests/Trinity.Tests.Stardog/bin/Debug/net472/Targets/Semiodesk.Trinity.targets b/tests/Trinity.Tests.Stardog/bin/Debug/net472/Targets/Semiodesk.Trinity.targets new file mode 100644 index 0000000..9b0ba79 --- /dev/null +++ b/tests/Trinity.Tests.Stardog/bin/Debug/net472/Targets/Semiodesk.Trinity.targets @@ -0,0 +1,31 @@ + + + + + + Full + + + + + + + + + + + + $(CoreCompileDependsOn);GenerateOntologyTarget + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/Trinity.Tests.Stardog/bin/Debug/net472/custom.config b/tests/Trinity.Tests.Stardog/bin/Debug/net472/custom.config new file mode 100644 index 0000000..3261e54 --- /dev/null +++ b/tests/Trinity.Tests.Stardog/bin/Debug/net472/custom.config @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/Trinity.Tests.Stardog/bin/Debug/net472/nunit_random_seed.tmp b/tests/Trinity.Tests.Stardog/bin/Debug/net472/nunit_random_seed.tmp new file mode 100644 index 0000000..6bc7a0b --- /dev/null +++ b/tests/Trinity.Tests.Stardog/bin/Debug/net472/nunit_random_seed.tmp @@ -0,0 +1 @@ +1594808236 \ No newline at end of file diff --git a/tests/Trinity.Tests.Stardog/bin/Debug/net472/ontologies-test.config b/tests/Trinity.Tests.Stardog/bin/Debug/net472/ontologies-test.config new file mode 100644 index 0000000..6e04670 --- /dev/null +++ b/tests/Trinity.Tests.Stardog/bin/Debug/net472/ontologies-test.config @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/Trinity.Tests.Stardog/bin/Debug/net472/ontologies.config b/tests/Trinity.Tests.Stardog/bin/Debug/net472/ontologies.config new file mode 100644 index 0000000..faa8294 --- /dev/null +++ b/tests/Trinity.Tests.Stardog/bin/Debug/net472/ontologies.config @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/Trinity.Tests.Stardog/bin/Debug/net472/without_store.config b/tests/Trinity.Tests.Stardog/bin/Debug/net472/without_store.config new file mode 100644 index 0000000..76533dd --- /dev/null +++ b/tests/Trinity.Tests.Stardog/bin/Debug/net472/without_store.config @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/Trinity.Tests.Stardog/bin/Debug/netstandard2.0/Models/rdf-schema.rdf b/tests/Trinity.Tests.Stardog/bin/Debug/netstandard2.0/Models/rdf-schema.rdf new file mode 100644 index 0000000..bf17bab --- /dev/null +++ b/tests/Trinity.Tests.Stardog/bin/Debug/netstandard2.0/Models/rdf-schema.rdf @@ -0,0 +1,130 @@ + + + + + + + Resource + The class resource, everything. + + + + + Class + The class of classes. + + + + + + subClassOf + The subject is a subclass of a class. + + + + + + + subPropertyOf + The subject is a subproperty of a property. + + + + + + + comment + A description of the subject resource. + + + + + + + label + A human-readable name for the subject. + + + + + + + domain + A domain of the subject property. + + + + + + + range + A range of the subject property. + + + + + + + seeAlso + Further information about the subject resource. + + + + + + + + isDefinedBy + The defininition of the subject resource. + + + + + + + Literal + The class of literal values, eg. textual strings and integers. + + + + + + Container + + The class of RDF containers. + + + + + ContainerMembershipProperty + The class of container membership properties, rdf:_1, rdf:_2, ..., + all of which are sub-properties of 'member'. + + + + + + member + A member of the subject resource. + + + + + + + Datatype + The class of RDF datatypes. + + + + + + + + diff --git a/tests/Trinity.Tests.Stardog/bin/Debug/netstandard2.0/Models/rdf-syntax.rdf b/tests/Trinity.Tests.Stardog/bin/Debug/netstandard2.0/Models/rdf-syntax.rdf new file mode 100644 index 0000000..a6815ec --- /dev/null +++ b/tests/Trinity.Tests.Stardog/bin/Debug/netstandard2.0/Models/rdf-syntax.rdf @@ -0,0 +1,156 @@ + + + + The RDF Concepts Vocabulary (RDF) + This is the RDF Schema for the RDF vocabulary terms in the RDF Namespace, defined in RDF 1.1 Concepts. + + + + + + + HTML + The datatype of RDF literals storing fragments of HTML content + + + + + + + langString + The datatype of language-tagged string values + + + + + + + PlainLiteral + The class of plain (i.e. untyped) literal values, as used in RIF and OWL 2 + + + + + + type + The subject is an instance of a class. + + + + + + + Property + The class of RDF properties. + + + + + + Statement + + The class of RDF statements. + + + + + subject + The subject of the subject RDF statement. + + + + + + + predicate + The predicate of the subject RDF statement. + + + + + + + object + The object of the subject RDF statement. + + + + + + + Bag + The class of unordered containers. + + + + + + Seq + The class of ordered containers. + + + + + + Alt + The class of containers of alternatives. + + + + + + value + Idiomatic property used for structured values. + + + + + + + + + List + The class of RDF Lists. + + + + + + nil + The empty list, with no items in it. If the rest of a list is nil then the list has no more items in it. + + + + + first + The first item in the subject RDF list. + + + + + + + rest + The rest of the subject RDF list after the first item. + + + + + + + + XMLLiteral + The datatype of XML literal values. + + + + + + + + diff --git a/tests/Trinity.Tests.Stardog/bin/Debug/netstandard2.0/Models/test-ntriples.nt b/tests/Trinity.Tests.Stardog/bin/Debug/netstandard2.0/Models/test-ntriples.nt new file mode 100644 index 0000000..91b4988 --- /dev/null +++ b/tests/Trinity.Tests.Stardog/bin/Debug/netstandard2.0/Models/test-ntriples.nt @@ -0,0 +1,79 @@ +# +# Copyright World Wide Web Consortium, (Massachusetts Institute of +# Technology, Institut National de Recherche en Informatique et en +# Automatique, Keio University). +# +# All Rights Reserved. +# +# Please see the full Copyright clause at +# +# +# Test file with a variety of legal N-Triples +# +# Dave Beckett - http://purl.org/net/dajobe/ +# +# $Id: test.nt,v 1.7 2003/10/06 15:52:19 dbeckett2 Exp $ +# +##################################################################### + +# comment lines + # comment line after whitespace +# empty blank line, then one with spaces and tabs + + + . +_:anon . + _:anon . +# spaces and tabs throughout: + . + +# line ending with CR NL (ASCII 13, ASCII 10) + . + +# 2 statement lines separated by single CR (ASCII 10) + . + . + + +# All literal escapes + "simple literal" . + "backslash:\\" . + "dquote:\"" . + "newline:\n" . + "return\r" . + "tab:\t" . + +# Space is optional before final . + . + "x". + _:anon. + +# \u and \U escapes +# latin small letter e with acute symbol \u00E9 - 3 UTF-8 bytes #xC3 #A9 + "\u00E9" . +# Euro symbol \u20ac - 3 UTF-8 bytes #xE2 #x82 #xAC + "\u20AC" . +# resource18 test removed +# resource19 test removed +# resource20 test removed + +# XML Literals as Datatyped Literals + ""^^ . + " "^^ . + "x"^^ . + "\""^^ . + ""^^ . + "a "^^ . + "a c"^^ . + "a\n\nc"^^ . + "chat"^^ . +# resource28 test removed 2003-08-03 +# resource29 test removed 2003-08-03 + +# Plain literals with languages + "chat"@fr . + "chat"@en . + +# Typed Literals + "abc"^^ . +# resource33 test removed 2003-08-03 diff --git a/tests/Trinity.Tests.Stardog/bin/Debug/netstandard2.0/Models/test-ppo.rdf b/tests/Trinity.Tests.Stardog/bin/Debug/netstandard2.0/Models/test-ppo.rdf new file mode 100644 index 0000000..a4dcaf0 --- /dev/null +++ b/tests/Trinity.Tests.Stardog/bin/Debug/netstandard2.0/Models/test-ppo.rdf @@ -0,0 +1,102 @@ + + + + + + + + + + + Documents + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ddMMYYYY + MMddYYYY + + + + + + hhmmss + + + + + {Wahr,Falsch} + {True,False} + + + \ No newline at end of file diff --git a/tests/Trinity.Tests.Stardog/bin/Debug/netstandard2.0/Models/test-tmo.trig b/tests/Trinity.Tests.Stardog/bin/Debug/netstandard2.0/Models/test-tmo.trig new file mode 100644 index 0000000..c368bb9 --- /dev/null +++ b/tests/Trinity.Tests.Stardog/bin/Debug/netstandard2.0/Models/test-tmo.trig @@ -0,0 +1,1145 @@ +# +# Copyright (c) 2007 NEPOMUK Consortium +# All rights reserved, licensed under either CC-BY or BSD. +# +# You are free: +# * to Share - to copy, distribute and transmit the work +# * to Remix - to adapt the work +# Under the following conditions: +# * Attribution - You must attribute the work in the manner specified by the author +# or licensor (but not in any way that suggests that they endorse you or your use +# of the work). +# +# Redistribution and use in source and binary forms, with or without modification, +# are permitted provided that the following conditions are met: +# * Redistributions of source code must retain the above copyright notice, this +# list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this +# list of conditions and the following disclaimer in the documentation and/or +# other materials provided with the distribution. +# * Neither the names of the authors nor the names of contributors may +# be used to endorse or promote products derived from this ontology without +# specific prior written permission. +# +# THIS ONTOLOGY IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +# THIS ONTOLOGY, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +@prefix dc: . +@prefix exif: . +@prefix geo: . +@prefix protege: . +@prefix nao: . +@prefix nfo: . +@prefix nie: . +@prefix ncal: . +@prefix nco: . +@prefix dcterms: . +@prefix rdfs: . +@prefix pimo: . +@prefix nmo: . +@prefix nrl: . +@prefix tmo: . +@prefix xsd: . +@prefix rdf: . +@prefix nid3: . +@prefix nexif: . + +tmo: {tmo:TMO_Instance_PersonInvolvementRole_Creator + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Creator" . + + tmo:abilityCarrierRole + a rdf:Property ; + rdfs:domain tmo:AbilityCarrierInvolvement ; + rdfs:label "abilityCarrierRole" ; + rdfs:range tmo:AbilityCarrierRole ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:PersonInvolvement + a rdfs:Class ; + rdfs:comment "PersonInvolvement realizes n-ary associations to Persons which are realtedd to an task. The involvement is further characterized by an PersonTaskRole." ; + rdfs:label "PersonInvolvement" ; + rdfs:subClassOf rdfs:Resource , pimo:Association . + + tmo:TMO_Instance_TaskState_Running + a tmo:TaskState ; + rdfs:label "TMO_Instance_TaskState_Running" . + + tmo:SimilarityDependence + a rdfs:Class ; + rdfs:label "SimilarityDependence" ; + rdfs:subClassOf tmo:UndirectedDependency . + + tmo:PredecessorDependency + a rdfs:Class ; + rdfs:comment "In a PredecessorDependency the dependencyMemberA is the task which is to be executed before dependencyMemberB." ; + rdfs:label "PredecessorDependency" ; + rdfs:subClassOf tmo:PredecessorSuccessorDependency . + + tmo:TMO_Instance_TaskContainer_outbox + a tmo:TaskContainer ; + rdfs:label "TMO_Instance_TaskContainer_outbox" . + + tmo:dueDate + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "dueDate" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf pimo:taskDueTime , tmo:dateTime ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_Urgency_04 + a tmo:Urgency ; + rdfs:label "TMO_Instance_Urgency_04" . + + tmo:Priority + a rdfs:Class ; + rdfs:label "Priority" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:TaskContainer + a rdfs:Class ; + rdfs:label "TaskContainer" ; + rdfs:subClassOf pimo:Collection . + + tmo:Task + a rdfs:Class ; + rdfs:comment "The tmo:task is the central entitiey of the tmo. Task can range from vague things to be possibly done in e distant future to concrete things to be done in a precise forseeable manner. It is not unrealisitc to assume that knowledge worker have hundred or more tasks a day." ; + rdfs:label "Task" ; + rdfs:subClassOf pimo:Task . + + tmo:PersonInvolvementRole + a rdfs:Class ; + rdfs:comment """They further specify the type a person was related to an task. +Examples instances of AttachmentRoles are e.g.""" ; + rdfs:label "PersonInvolvementRole" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:actualCompletion + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "actualCompletion" ; + rdfs:range rdfs:Literal ; + rdfs:subPropertyOf tmo:progress ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_PersonInvolvementRole_Co-worker + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Co-worker" . + + tmo:urgency + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "urgency" ; + rdfs:range tmo:Urgency ; + rdfs:subPropertyOf tmo:timemanagement ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_TaskContainer_archive + a tmo:TaskContainer ; + rdfs:label "TMO_Instance_TaskContainer_archive" . + + tmo:dependency + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "dependency" ; + rdfs:range tmo:TaskDependency . + + tmo:TMO_Instance_Importance_10 + a tmo:Importance ; + rdfs:label "TMO_Instance_Importance_10" . + + tmo:targetStartTime + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "targetStartTime" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:targetTime , tmo:startTime ; + nrl:maxCardinality "1" . + + tmo:dependencyDescription + a rdf:Property ; + rdfs:comment "Endusers can clarify why they created a depedency." ; + rdfs:domain tmo:TaskDependency ; + rdfs:label "dependencyDescription" ; + rdfs:subPropertyOf nao:description ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_Importance_09 + a tmo:Importance ; + rdfs:label "TMO_Instance_Importance_09" . + + tmo:transmissionState + a rdf:Property ; + rdfs:domain tmo:TaskTransmission ; + rdfs:label "transmissionState" ; + rdfs:range tmo:TransmissionState ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:AbilityCarrierRole + a rdfs:Class ; + rdfs:comment "Examples instances of AbilityCarrirRoles are e.g. \"requested\", \"required\" and \"used\" which further specify the type a person was involved in." ; + rdfs:label "AbilityCarrierRole" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:TMO_Instance_TaskState_Finalized + a tmo:TaskState ; + rdfs:label "TMO_Instance_TaskState_Finalized" . + + tmo:abilityCarrier + a rdf:Property ; + rdfs:domain tmo:AbilityCarrierInvolvement ; + rdfs:label "abilityCarrier" ; + rdfs:range tmo:AbilityCarrier ; + rdfs:subPropertyOf pimo:associationMember ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:TMO_Instance_TransmissionState_Rejected_Transmitted + a tmo:TransmissionState ; + rdfs:label "TMO_Instance_TransmissionState_Rejected_Transmitted" . + + tmo:TMO_Instance_Delegability_High + a tmo:Delegability ; + rdfs:label "TMO_Instance_Delegability_High" . + + tmo:TMO_Instance_Urgency_10 + a tmo:Urgency ; + rdfs:label "TMO_Instance_Urgency_10" . + + tmo:taskId + a rdf:Property ; + rdfs:comment """The Task Identifier allows a unique identification of a task object within the range of all Nepomuk objects. +The Task Identifier is automatically generated during the creation of a task. The generation of identifiers (IDs) is a Nepomuk architecture issue (Wp2000/WP6000).""" ; + rdfs:domain tmo:Task ; + rdfs:label "taskId" ; + rdfs:range rdfs:Literal ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:TMO_Instance_Importance_01 + a tmo:Importance ; + rdfs:label "TMO_Instance_Importance_01" . + + tmo:TMO_Instance_TransmissionType_Transfer + a tmo:TransmissionType ; + rdfs:label "TMO_Instance_TransmissionType_Transfer" . + + tmo:priority + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "priority" ; + rdfs:range tmo:Priority ; + rdfs:subPropertyOf tmo:timemanagement ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_Urgency_03 + a tmo:Urgency ; + rdfs:label "TMO_Instance_Urgency_03" . + + tmo:involvedPersons + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "involvedPersons" ; + rdfs:range tmo:PersonInvolvement ; + nrl:inverseProperty tmo:involvedPersonTask . + + tmo:involvedPerson + a rdf:Property ; + rdfs:domain tmo:PersonInvolvement ; + rdfs:label "involvedPerson" ; + rdfs:range pimo:Person ; + rdfs:subPropertyOf pimo:associationMember ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:TaskTransmission + a rdfs:Class ; + rdfs:comment """On the SSD, tasks are not restricted to one person and may cross from +the PTM of one person to the PTM of another. With transmission, we +refer to the process of sending a task – from one person (sender) to one +or more other persons (receiver(s)) (see Section 5.2.1.3 Task +Transmission). Task delegation and task transfer are two special kinds of +task transmission which are described at the end of this section. In +addition, the collaborative task is realized by task transmission. +For the process of sending a task, some information is required. This +information is also modelled in the task ontology. This information is still +useful after the process of sending a task was completed. Task Delegation is a process where the sender of the task restricts the +access rights of the receiver. This includes the right to distribute further +this task and additionally the obligation to give feedback to the sender. +The person that receives a task by delegation usually has not the full +control about the task. The attributes described in the following section +have the purpose to enable such \"access rights\". The receiver will also +probably have obligations regarding what to report to whom at which +time. +In contrast, the simplest case is that all rights are granted to the receiver +and there is no feedback desired by the sender. What to do with the task +may be apparent by the organization context, or it may be left to the +receiver. This is like sending an email – but with the advantage that the +information is transferred in the \"task space\" of the participating persons.""" ; + rdfs:label "TaskTransmission" ; + rdfs:subClassOf rdfs:Resource . + + tmo:containsTask + a rdf:Property ; + rdfs:domain tmo:TaskContainer ; + rdfs:label "containsTask" ; + rdfs:range tmo:Task ; + rdfs:subPropertyOf pimo:hasPart . + + tmo:TMO_Instance_PersonInvolvementRole_Suggested + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Suggested" . + + tmo:TMO_Instance_TaskState_Archived + a tmo:TaskState ; + rdfs:label "TMO_Instance_TaskState_Archived" . + + tmo:targetTime + a rdf:Property ; + rdfs:label "targetTime" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:dateTime ; + nrl:maxCardinality "1" . + + tmo:indexPosition + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "indexPosition" ; + rdfs:range rdfs:Literal ; + nrl:maxCardinality "1" . + + tmo:dependencyType + a rdf:Property ; + rdfs:label "dependencyType" ; + rdfs:range rdfs:Resource ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:targetEndTime + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "targetEndTime" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:targetTime , tmo:endTime ; + nrl:maxCardinality "1" . + + tmo:PredecessorSuccessorDependency + a rdfs:Class ; + rdfs:comment "The PredecessorSuccessorDependency enables a directed relation between task. By means of the concrete sublcasses one can further distinguish from which point of view this relation is created." ; + rdfs:label "PredecessorSuccessorDependency" ; + rdfs:subClassOf tmo:TaskDependency ; + protege:role "abstract" . + + tmo:TMO_Instance_Importance_08 + a tmo:Importance ; + rdfs:label "TMO_Instance_Importance_08" . + + tmo:attachmentReference + a rdf:Property ; + rdfs:domain tmo:Attachment ; + rdfs:label "attachmentReference" ; + rdfs:range rdfs:Resource ; + rdfs:subPropertyOf pimo:associationMember ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:TMO_Instance_Delegability_Never + a tmo:Delegability ; + rdfs:label "TMO_Instance_Delegability_Never" . + + tmo:superTask + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "superTask" ; + rdfs:range tmo:Task ; + rdfs:subPropertyOf pimo:partOf , tmo:taskReference ; + nrl:inverseProperty tmo:subTask ; + nrl:maxCardinality "1" . + + tmo:taskDescription + a rdf:Property ; + rdfs:comment """The task description helps users to understand the goal and the proceeding of a task. It can also describe the context of a task. The task description is composed at minimum of a summary of what is done to reach the goal. The task description is the main source for identifying related information, e.g., suitable patterns. +A Task Description can be either an informal, described textual content (?TextualDescription) or it can be a more formally structured representation (àFormalDescription). +Technology considerations: Informal descriptions allow for text similarity processing, a formal description allows for applying case based similarity measures.""" ; + rdfs:domain tmo:Task ; + rdfs:label "taskDescription" ; + rdfs:subPropertyOf nao:description ; + nrl:maxCardinality "1" . + + tmo:SuperSubTaskDependency + a rdfs:Class ; + rdfs:comment "By means of the SuperSubTaskDependency one can further describe the subtask-supertask relation .e.g by an descriptin. This enables an n-ary relation between subtask and supertask." ; + rdfs:label "SuperSubTaskDependency" ; + rdfs:subClassOf tmo:TaskDependency . + + tmo:contextTask + a rdf:Property ; + rdfs:label "contextTask" ; + rdfs:range tmo:Task ; + nrl:inverseProperty tmo:contextThread ; + nrl:maxCardinality "1" . + + tmo:SuccessorDependency + a rdfs:Class ; + rdfs:comment "In a SuccessorrDependency the dependencyMemberA is the task which is to be executed after dependencyMemberB." ; + rdfs:label "SuccessorDependency" ; + rdfs:subClassOf tmo:PredecessorSuccessorDependency . + + tmo:stateTypeRole + a rdf:Property ; + rdfs:label "stateTypeRole" ; + rdfs:range rdfs:Resource ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_TransmissionState_NotTransmitted + a tmo:TransmissionState ; + rdfs:label "TMO_Instance_TransmissionState_NotTransmitted" . + + tmo:TMO_Instance_Urgency_06 + a tmo:Urgency ; + rdfs:label "TMO_Instance_Urgency_06" . + + tmo:abilityCarrierInvolvement + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "abilityCarrierInvolvement" ; + rdfs:range tmo:AbilityCarrierInvolvement ; + nrl:inverseProperty tmo:abilityCarrierTask . + + tmo:TMO_Instance_AbilityCarrierRole_Required + a tmo:AbilityCarrierRole ; + rdfs:label "TMO_Instance_AbilityCarrierRole_Required" . + + tmo:actualStartTime + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "actualStartTime" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:actualTime , tmo:startTime ; + nrl:maxCardinality "1" . + + tmo:transmissionType + a rdf:Property ; + rdfs:domain tmo:TaskTransmission ; + rdfs:label "transmissionType" ; + rdfs:range tmo:TransmissionType ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:taskTransmission + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "taskTransmission" ; + rdfs:range tmo:TaskTransmission ; + nrl:inverseProperty tmo:transmissionTask . + + tmo:TMO_Instance_PersonInvolvementRole_Executor + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Executor" . + + tmo:targetCompletion + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "targetCompletion" ; + rdfs:range rdfs:Literal ; + rdfs:subPropertyOf tmo:progress ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_Delegability_Medium + a tmo:Delegability ; + rdfs:label "TMO_Instance_Delegability_Medium" . + + tmo:AgentAbilityCarrier + a rdfs:Class ; + rdfs:label "AgentAbilityCarrier" ; + rdfs:subClassOf tmo:AbilityCarrier ; + protege:role "abstract" . + + tmo:transmissionTask + a rdf:Property ; + rdfs:domain tmo:TaskTransmission ; + rdfs:label "transmissionTask" ; + rdfs:range tmo:Task ; + rdfs:subPropertyOf tmo:taskReference ; + nrl:inverseProperty tmo:taskTransmission ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:Attachment + a rdfs:Class ; + rdfs:comment "By means of attachments, references to other resources can be established. Resources are information objects. Every Thing, which can be referenced, on the SSD is an information object. In contrast to the usual SSD references/associations, here additionally information can be specified. Further metadata about the role an attachment plays can be stated by means of instances of AttachmentRole. It can be expressed what the Role of attachment is e.g., regarding \"desired/requested\" or \"required\" or \"potentially useful / somehow related\" or \"used/produced/achieved\". The reference property models the actual link to the attached piece of information." ; + rdfs:label "Attachment" ; + rdfs:subClassOf rdfs:Resource , pimo:Association . + + tmo:TMO_Instance_TaskPrivacy_Private + a tmo:TaskPrivacyState ; + rdfs:label "TMO_Instance_TaskPrivacy_Private" . + + tmo:TMO_Instance_Importance_07 + a tmo:Importance ; + rdfs:label "TMO_Instance_Importance_07" . + + tmo:AssociationDependency + a rdfs:Class ; + rdfs:label "AssociationDependency" ; + rdfs:subClassOf tmo:UndirectedDependency . + + tmo:nextReviewIntervall + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "nextReviewIntervall" ; + rdfs:range xsd:integer ; + nrl:maxCardinality "1" . + + tmo:transmissionFrom + a rdf:Property ; + rdfs:domain tmo:TaskTransmission ; + rdfs:label "transmissionFrom" ; + rdfs:range pimo:Person ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:taskState + a rdf:Property ; + rdfs:comment "The task state describes the current state of the task as described in Section 5.2.7." ; + rdfs:domain tmo:Task ; + rdfs:label "taskState" ; + rdfs:range tmo:TaskState ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:delegability + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "delegability" ; + rdfs:range tmo:Delegability ; + rdfs:subPropertyOf tmo:timemanagement ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_PersonInvolvementRole_Related + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Related" . + + tmo:TMO_Instance_TaskContainer_inbox + a tmo:TaskContainer ; + rdfs:label "TMO_Instance_TaskContainer_inbox" . + + tmo:TMO_Instance_AttachmentRole_Required + a tmo:AttachmentRole ; + rdfs:label "TMO_Instance_AttachmentRole_Required" . + + tmo:taskPrivacyState + a rdf:Property ; + rdfs:comment """For the separation between professional and private purpose of a task, this attribute provides with the values \"professional/private\" a high level separation of privacy in terms of setting distribution rights to other users for the task. +This separation may arise as a general Nepomuk issue and may therefore be handled in conjunction with a privacy preserving SSD architecture.""" ; + rdfs:domain tmo:Task ; + rdfs:label "taskPrivacyState" ; + rdfs:range tmo:TaskPrivacyState ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" . + + tmo:taskName + a rdf:Property ; + rdfs:comment "The Task Name helps the user to identify a task in a list. It should be expressive enough to give a meaningful recognition. Details should be written in the description attribute instead. A name attribute is not allowed to contain line breaks." ; + rdfs:domain tmo:Task ; + rdfs:label "taskName" ; + rdfs:range rdfs:Literal ; + rdfs:subPropertyOf nao:prefLabel ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_AbilityCarrierRole_Requested + a tmo:AbilityCarrierRole ; + rdfs:label "TMO_Instance_AbilityCarrierRole_Requested" . + + tmo:TMO_Instance_PersonInvolvementRole_Controller + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Controller" . + + tmo:TMO_Instance_PersonInvolvementRole_Delegate + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Delegate" . + + tmo:transmissionStateChangesFrom + a rdf:Property ; + rdfs:domain tmo:TransmissionState ; + rdfs:label "transmissionStateChangesFrom" ; + rdfs:range tmo:TransmissionState ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" . + + tmo:TransmissionState + a rdfs:Class ; + rdfs:comment "States a task can go through during transmission of an task." ; + rdfs:label "TransmissionState" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:transmissionStateChangesTo + a rdf:Property ; + rdfs:domain tmo:TransmissionState ; + rdfs:label "transmissionStateChangesTo" ; + rdfs:range tmo:TransmissionState ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_PersonInvolvementRole_ExternalObserver + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_ExternalObserver" . + + tmo:TMO_Instance_Urgency_05 + a tmo:Urgency ; + rdfs:label "TMO_Instance_Urgency_05" . + + tmo:TaskDependency + a rdfs:Class ; + rdfs:comment """Between the tasks, further dependencies may exist. These dependencies allow for a graph network structure. For ease of use, dependencies should not be too frequent, otherwise the primarily character of a hierarchy would be diminished and a consequent graph representation would become considerable. However, such a graph representation has other drawbacks, the user is likely to loose oversight, tree structures are more helpful in structuring the work. + +A dependency relation is characterized by the type of the relation and by an additional description. There are different possibilities for dependency relations between tasks.""" ; + rdfs:label "TaskDependency" ; + rdfs:subClassOf rdfs:Resource , pimo:Association ; + protege:role "abstract" . + + tmo:TMO_Instance_TaskState_Completed + a tmo:TaskState ; + rdfs:label "TMO_Instance_TaskState_Completed" . + + tmo:TMO_Instance_Importance_06 + a tmo:Importance ; + rdfs:label "TMO_Instance_Importance_06" . + + tmo:attachmentRole + a rdf:Property ; + rdfs:domain tmo:Attachment ; + rdfs:label "attachmentRole" ; + rdfs:range tmo:AttachmentRole ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_TaskPrivacy_Professional + a tmo:TaskPrivacyState ; + rdfs:label "TMO_Instance_TaskPrivacy_Professional" . + + tmo:TMO_Instance_TaskState_Terminated + a tmo:TaskState ; + rdfs:label "TMO_Instance_TaskState_Terminated" . + + tmo:TMO_Instance_PersonInvolvementRole_Owner + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Owner" . + + tmo:TMO_Instance_AttachmentRole_Desired_Requested + a tmo:AttachmentRole ; + rdfs:label "TMO_Instance_AttachmentRole_Desired_Requested" . + + tmo:involvedPersonTask + a rdf:Property ; + rdfs:domain tmo:PersonInvolvement ; + rdfs:label "involvedPersonTask" ; + rdfs:range tmo:Task ; + rdfs:subPropertyOf pimo:associationMember ; + nrl:inverseProperty tmo:involvedPersons ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_TransmissionState_Accepted_NotTransmitted + a tmo:TransmissionState ; + rdfs:label "TMO_Instance_TransmissionState_Accepted_NotTransmitted" . + + tmo:TMO_Instance_PersonInvolvementRole_Analyst + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Analyst" . + + tmo:logEntry + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "logEntry" ; + rdfs:range rdfs:Resource . + + tmo:transmissionTo + a rdf:Property ; + rdfs:domain tmo:TaskTransmission ; + rdfs:label "transmissionTo" ; + rdfs:range pimo:Person ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:Importance + a rdfs:Class ; + rdfs:label "Importance" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:TMO_Instance_TransmissionType_Join + a tmo:TransmissionType ; + rdfs:label "TMO_Instance_TransmissionType_Join" . + + tmo:Delegability + a rdfs:Class ; + rdfs:label "Delegability" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:lastReviewDate + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "lastReviewDate" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:dateTime ; + nrl:maxCardinality "1" . + + tmo:Role + a rdfs:Class ; + rdfs:comment "examples: Architect, Developer, ..." ; + rdfs:label "Role" ; + rdfs:subClassOf tmo:AbilityCarrier . + + tmo:timemanagement + a rdf:Property ; + rdfs:label "timemanagement" ; + rdfs:range rdfs:Literal ; + nrl:maxCardinality "1" . + + tmo:taskGoal + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "taskGoal" ; + rdfs:range rdfs:Resource . + + tmo:dependencyMemberA + a rdf:Property ; + rdfs:comment "The semantic of this relation is defined in the sublclass of undirected Dependency on which this property is stated. (The subject of the statment where this property is expressed)" ; + rdfs:domain tmo:TaskDependency ; + rdfs:label "dependencyMemberA" ; + rdfs:range tmo:Task ; + rdfs:subPropertyOf tmo:taskReference , pimo:associationMember ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:startTime + a rdf:Property ; + rdfs:label "startTime" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:dateTime ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_Urgency_08 + a tmo:Urgency ; + rdfs:label "TMO_Instance_Urgency_08" . + + tmo:taskStateChangesFrom + a rdf:Property ; + rdfs:domain tmo:TaskState ; + rdfs:label "taskStateChangesFrom" ; + rdfs:range tmo:TaskState ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" . + + tmo:receiveDateTime + a rdf:Property ; + rdfs:domain tmo:TaskTransmission ; + rdfs:label "receiveDateTime" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:dateTime ; + nrl:maxCardinality "1" . + + tmo:createdBy + a rdf:Property ; + rdfs:domain tmo:Attachment ; + rdfs:label "createdBy" ; + rdfs:range pimo:Person ; + nrl:maxCardinality "1" . + + tmo:progress + a rdf:Property ; + rdfs:label "progress" ; + rdfs:range rdfs:Literal ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_AbilityCarrierRole_Used + a tmo:AbilityCarrierRole ; + rdfs:label "TMO_Instance_AbilityCarrierRole_Used" . + + tmo:TMO_Instance_Importance_05 + a tmo:Importance ; + rdfs:label "TMO_Instance_Importance_05" . + + tmo:TMO_Instance_TaskContainer_activetasks + a tmo:TaskContainer ; + rdfs:label "TMO_Instance_TaskContainer_activetasks" . + + tmo:sendDateTime + a rdf:Property ; + rdfs:domain tmo:TaskTransmission ; + rdfs:label "sendDateTime" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:dateTime ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_PersonInvolvementRole_Collaborator + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Collaborator" . + + tmo:TMO_Instance_TaskState_Suspended + a tmo:TaskState ; + rdfs:label "TMO_Instance_TaskState_Suspended" . + + tmo:AbilityCarrierInvolvement + a rdfs:Class ; + rdfs:comment "The class AbilityCarrier_Involvement ties together an AbilityCarrier with an AbilityCarrier_Role. This is a role based modelling approach. An n-ary relation is realized." ; + rdfs:label "AbilityCarrierInvolvement" ; + rdfs:subClassOf rdfs:Resource , pimo:Association . + + tmo:endTime + a rdf:Property ; + rdfs:label "endTime" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:dateTime ; + nrl:maxCardinality "1" . + + tmo:dependencyMemberB + a rdf:Property ; + rdfs:comment "The semantic of this relation is defined in the sublclass of undirected Dependency on which this property is stated. (The subject of the statment where this property is expressed)" ; + rdfs:domain tmo:TaskDependency ; + rdfs:label "dependencyMemberB" ; + rdfs:range tmo:Task ; + rdfs:subPropertyOf tmo:taskReference , pimo:associationMember ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:TMO_Instance_Priority_High + a tmo:Priority ; + rdfs:label "TMO_Instance_Priority_High" . + + tmo:TMO_Instance_PersonInvolvementRole_Observer + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Observer" . + + tmo:TMO_Instance_Delegability_Unrestricted + a tmo:Delegability ; + rdfs:label "TMO_Instance_Delegability_Unrestricted" . + + tmo:TMO_Instance_Priority_Medium + a tmo:Priority ; + rdfs:label "TMO_Instance_Priority_Medium" . + + tmo:TMO_Instance_Delegability_Low + a tmo:Delegability ; + rdfs:label "TMO_Instance_Delegability_Low" . + + tmo:Interdependence + a rdfs:Class ; + rdfs:label "Interdependence" ; + rdfs:subClassOf tmo:UndirectedDependency . + + tmo:involvedPersonRole + a rdf:Property ; + rdfs:domain tmo:PersonInvolvement ; + rdfs:label "involvedPersonRole" ; + rdfs:range tmo:PersonInvolvementRole ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:AttachmentRole + a rdfs:Class ; + rdfs:comment "AttachmentRoles further specify the type of how an attachment relates to a task. Example instances of AttachmentRoles are e.g. \"desired_request\", \"required\" and \"used\"." ; + rdfs:label "AttachmentRole" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:TMO_Instance_Urgency_07 + a tmo:Urgency ; + rdfs:label "TMO_Instance_Urgency_07" . + + tmo:TMO_Instance_PersonInvolvementRole_Reviewer + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Reviewer" . + + tmo:TransmissionType + a rdfs:Class ; + rdfs:comment "By means of the TransmissionType one can distinguish several different types which might imply a different business logic. e.g. delegation can mean that the results of the task fulfillment care to be reported back to the sender of the task." ; + rdfs:label "TransmissionType" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:actualEndTime + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "actualEndTime" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:endTime , tmo:actualTime ; + nrl:maxCardinality "1" . + + tmo:subTask + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "subTask" ; + rdfs:range tmo:Task ; + rdfs:subPropertyOf pimo:hasPart ; + nrl:inverseProperty tmo:superTask . + + tmo:TMO_Instance_TransmissionType_Delegation + a tmo:TransmissionType ; + rdfs:label "TMO_Instance_TransmissionType_Delegation" . + + tmo:TMO_Instance_Importance_04 + a tmo:Importance ; + rdfs:label "TMO_Instance_Importance_04" . + + tmo:TaskState + a rdfs:Class ; + rdfs:comment """The task state property allows tracking a task during its lifecycle. Initially the state is just \"created\". +The TaskState class was modeled so that for each state can be set which the typical prior and posterior states are. This has the advantage that e.g. a UI can retrieve the allowed states at runtime from the ontology; rather can having this potentially changing knowledge hard coded. But the prior and posterior states are only defaults; the human user is always free to change the state.""" ; + rdfs:label "TaskState" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:taskSource + a rdf:Property ; + rdfs:comment "here can be stated from which sources a task was derived. e.g from another task or from an task pattern" ; + rdfs:domain tmo:Task ; + rdfs:label "taskSource" ; + rdfs:range rdfs:Resource ; + rdfs:subPropertyOf tmo:taskReference ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_Urgency_02 + a tmo:Urgency ; + rdfs:label "TMO_Instance_Urgency_02" . + + tmo:TMO_Instance_TransmissionState_Accepted_Transmitted + a tmo:TransmissionState ; + rdfs:label "TMO_Instance_TransmissionState_Accepted_Transmitted" . + + tmo:TMO_Instance_TaskState_New + a tmo:TaskState ; + rdfs:label "TMO_Instance_TaskState_New" . + + tmo:Urgency + a rdfs:Class ; + rdfs:label "Urgency" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:StateTypeRole + a rdfs:Class ; + rdfs:comment "StateTypeRole is an abstract class which subsumes various other classes which represent \"states\" or roles e.g. in role based modelling conpetualisations." ; + rdfs:label "StateTypeRole" ; + rdfs:subClassOf rdfs:Resource . + + tmo:TMO_Instance_TaskContainer_trashtasks + a tmo:TaskContainer ; + rdfs:label "TMO_Instance_TaskContainer_trashtasks" . + + tmo:contextThread + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "contextThread" ; + rdfs:range ; + nrl:inverseProperty tmo:contextTask ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_AttachmentRole_Used + a tmo:AttachmentRole ; + rdfs:label "TMO_Instance_AttachmentRole_Used" . + + tmo:abilityCarrierTask + a rdf:Property ; + rdfs:domain tmo:AbilityCarrierInvolvement ; + rdfs:label "abilityCarrierTask" ; + rdfs:range tmo:Task ; + rdfs:subPropertyOf pimo:associationMember ; + nrl:inverseProperty tmo:abilityCarrierInvolvement ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_TransmissionState_Rejected_NotTransmitted + a tmo:TransmissionState ; + rdfs:label "TMO_Instance_TransmissionState_Rejected_NotTransmitted" . + + tmo:TMO_Instance_Priority_Low + a tmo:Priority ; + rdfs:label "TMO_Instance_Priority_Low" . + + tmo:TMO_Instance_TransmissionState_Transmitted + a tmo:TransmissionState ; + rdfs:label "TMO_Instance_TransmissionState_Transmitted" . + + tmo:TMO_Instance_Importance_03 + a tmo:Importance ; + rdfs:label "TMO_Instance_Importance_03" . + + tmo:TMO_Instance_AttachmentRole_Related + a tmo:AttachmentRole ; + rdfs:label "TMO_Instance_AttachmentRole_Related" . + + tmo:taskReference + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "taskReference" ; + rdfs:range tmo:Task ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_PersonInvolvementRole_Involved + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Involved" . + + tmo:AbilityCarrier + a rdfs:Class ; + rdfs:comment """AbilityCarrier is an abstract class which circumferences all entities which can take action or which are somehow involved in tasks. +This is in other task conceptualizations rather named \"actor\". But here it is named AbilityCarrier because it is not neccessarily \"active\". + +The execution of a task relies on certain abilities. The abstract concept of +Abilitiy_Carriers circumference all those more concrete concepts +of which one can think of while working on tasks. Using this abstract +class enables to substitute such Ability Carrier's in the process of +generating patterns from task instances and vice versa in the process of +instantiating task instances from patterns without violating the schema. +With this attribute, a series of ability carrying entities (Person, Role, +Skill, OrganizationalUnit, InformalDescribedAbility) +and the role of involvement (required, request, used) is enabled. The role +hereby allows specifying how the ability carrying entity is or was +involved.""" ; + rdfs:label "AbilityCarrier" ; + rdfs:subClassOf rdfs:Resource ; + protege:role "abstract" . + + tmo:importance + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "importance" ; + rdfs:range tmo:Importance ; + rdfs:subPropertyOf tmo:timemanagement ; + nrl:maxCardinality "1" . + + tmo:subTaskOrdering + a rdf:Property ; + rdfs:comment "Ordering of the subtasks listed in the tmo:subTasks property of this Task. This is only for ordering/sorting in GUIs, the semantic relation is defined in subTasks, and if this and subTasks differ, subTasks is the correct list." ; + rdfs:domain tmo:Task ; + rdfs:label "subTaskOrdering" ; + rdfs:range rdf:List ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_Urgency_01 + a tmo:Urgency ; + rdfs:label "TMO_Instance_Urgency_01" . + + tmo:dependencyOrderNumber + a rdf:Property ; + rdfs:domain tmo:TaskDependency ; + rdfs:label "dependencyOrderNumber" ; + rdfs:range xsd:int ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:actualTime + a rdf:Property ; + rdfs:label "actualTime" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:dateTime ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_PersonInvolvementRole_Initiator + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Initiator" . + + tmo:dateTime + a rdf:Property ; + rdfs:comment "dateTime subsumes various properties with Range XMLSchema:dateTime. If possible they are further grouped by \"abstract\" properties." ; + rdfs:label "dateTime" ; + rdfs:range xsd:dateTime ; + nrl:maxCardinality "1" . + + tmo:UndirectedDependency + a rdfs:Class ; + rdfs:comment "A symmetric relations between task." ; + rdfs:label "UndirectedDependency" ; + rdfs:subClassOf tmo:TaskDependency . + + tmo:attachment + a rdf:Property ; + rdfs:comment "connects a Task with an Attachment object. Attachments are associations of Things." ; + rdfs:domain tmo:Task ; + rdfs:label "attachment" ; + rdfs:range tmo:Attachment ; + nrl:inverseProperty tmo:attachmentTask . + + tmo:attachmentTask + a rdf:Property ; + rdfs:comment "Inverse of attachment, connects an Attachment Association to the associated Task. Is required for every instance of Attachment." ; + rdfs:domain tmo:Attachment ; + rdfs:label "attachmentTask" ; + rdfs:range tmo:Task ; + rdfs:subPropertyOf pimo:associationMember ; + nrl:inverseProperty tmo:attachment ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_PersonInvolvementRole_Receiver + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Receiver" . + + tmo:TMO_Instance_TaskState_Deleted + a tmo:TaskState ; + rdfs:label "TMO_Instance_TaskState_Deleted" . + + tmo:taskStateChangesTo + a rdf:Property ; + rdfs:domain tmo:TaskState ; + rdfs:label "taskStateChangesTo" ; + rdfs:range tmo:TaskState ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" . + + tmo:TaskPrivacyState + a rdfs:Class ; + rdfs:comment """Privacy Status serves for the separation between a professional and a private purpose of a task. This attribute provides with the values \"professional/private\" a high-level separation of privacy in terms of setting distribution and access +rights to other users for the task. +This separation may arise as a general Nepomuk issue and may therefore be handled in conjunction with a privacy preserving SSD architecture.""" ; + rdfs:label "TaskPrivacyState" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:TMO_Instance_Urgency_09 + a tmo:Urgency ; + rdfs:label "TMO_Instance_Urgency_09" . + + tmo:TMO_Instance_Importance_02 + a tmo:Importance ; + rdfs:label "TMO_Instance_Importance_02" . + + tmo:TMO_Instance_PersonInvolvementRole_InternalObserver + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_InternalObserver" . + + tmo:Skill + a rdfs:Class ; + rdfs:comment "examples are e.g. technologies like Java, XML, ..." ; + rdfs:label "Skill" ; + rdfs:subClassOf tmo:AbilityCarrier . +} + + {tmo: a nrl:Ontology ; + nao:creator ; + nao:hasDefaultNamespace + "http://www.semanticdesktop.org/ontologies/2008/05/20/tmo#" ; + nao:hasDefaultNamespaceAbbreviation + "tmo" ; + nao:lastModified "2009-08-14T10:04:25.546Z" ; + nao:status "Unstable" ; + nao:updatable "0 " ; + nao:version "0.9.0" ; + nao:prefLabel "Task Management Ontology" ; + nao:description "The TMO Ontology can be used to describe personal tasks of individuals, also known as to-do lists. It is based on RDF and NRL, the Nepomuk Representational Language and other Semantic Web ontologies." . + + + a nrl:GraphMetadata ; + nrl:coreGraphMetadataFor + tmo: . +} + diff --git a/tests/Trinity.Tests.Stardog/bin/Debug/netstandard2.0/Models/test-vocab.rdf b/tests/Trinity.Tests.Stardog/bin/Debug/netstandard2.0/Models/test-vocab.rdf new file mode 100644 index 0000000..b295ae6 --- /dev/null +++ b/tests/Trinity.Tests.Stardog/bin/Debug/netstandard2.0/Models/test-vocab.rdf @@ -0,0 +1,39 @@ + + + + + + + Animal + An animal + + + + + Horse + A Horse + + + + + + consumes + Something an animal consumes. + + + + + + consumes + Something an animal consumes. + + + + + diff --git a/tests/Trinity.Tests.Stardog/bin/Debug/netstandard2.0/Ontologies/dces.ttl b/tests/Trinity.Tests.Stardog/bin/Debug/netstandard2.0/Ontologies/dces.ttl new file mode 100644 index 0000000..4510e02 --- /dev/null +++ b/tests/Trinity.Tests.Stardog/bin/Debug/netstandard2.0/Ontologies/dces.ttl @@ -0,0 +1,177 @@ +@prefix rdf: . +@prefix owl: . +@prefix skos: . +@prefix dcam: . +@prefix dcterms: . +@prefix rdfs: . + + + dcterms:modified "2013-01-03"^^ ; + dcterms:publisher ; + dcterms:title "Dublin Core Metadata Element Set, Version 1.1"@en . + + + dcterms:description "Examples of a Contributor include a person, an organization, or a service. Typically, the name of a Contributor should be used to indicate the entity."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "An entity responsible for making contributions to the resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Contributor"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Spatial topic and spatial applicability may be a named place or a location specified by its geographic coordinates. Temporal topic may be a named period, date, or date range. A jurisdiction may be a named administrative entity or a geographic place to which the resource applies. Recommended best practice is to use a controlled vocabulary such as the Thesaurus of Geographic Names [TGN]. Where appropriate, named places or time periods can be used in preference to numeric identifiers such as sets of coordinates or date ranges."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "The spatial or temporal topic of the resource, the spatial applicability of the resource, or the jurisdiction under which the resource is relevant."@en ; + rdfs:isDefinedBy ; + rdfs:label "Coverage"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Examples of a Creator include a person, an organization, or a service. Typically, the name of a Creator should be used to indicate the entity."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "An entity primarily responsible for making the resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Creator"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Date may be used to express temporal information at any level of granularity. Recommended best practice is to use an encoding scheme, such as the W3CDTF profile of ISO 8601 [W3CDTF]."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "A point or period of time associated with an event in the lifecycle of the resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Date"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Description may include but is not limited to: an abstract, a table of contents, a graphical representation, or a free-text account of the resource."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "An account of the resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Description"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Examples of dimensions include size and duration. Recommended best practice is to use a controlled vocabulary such as the list of Internet Media Types [MIME]."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "The file format, physical medium, or dimensions of the resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Format"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Recommended best practice is to identify the resource by means of a string conforming to a formal identification system. "@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "An unambiguous reference to the resource within a given context."@en ; + rdfs:isDefinedBy ; + rdfs:label "Identifier"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Recommended best practice is to use a controlled vocabulary such as RFC 4646 [RFC4646]."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "A language of the resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Language"@en ; + rdfs:seeAlso ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Examples of a Publisher include a person, an organization, or a service. Typically, the name of a Publisher should be used to indicate the entity."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "An entity responsible for making the resource available."@en ; + rdfs:isDefinedBy ; + rdfs:label "Publisher"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Recommended best practice is to identify the related resource by means of a string conforming to a formal identification system. "@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "A related resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Relation"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Typically, rights information includes a statement about various property rights associated with the resource, including intellectual property rights."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "Information about rights held in and over the resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Rights"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "The described resource may be derived from the related resource in whole or in part. Recommended best practice is to identify the related resource by means of a string conforming to a formal identification system."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "A related resource from which the described resource is derived."@en ; + rdfs:isDefinedBy ; + rdfs:label "Source"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Typically, the subject will be represented using keywords, key phrases, or classification codes. Recommended best practice is to use a controlled vocabulary."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2012-06-14"^^ ; + a rdf:Property ; + rdfs:comment "The topic of the resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Subject"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "A name given to the resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Title"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Recommended best practice is to use a controlled vocabulary such as the DCMI Type Vocabulary [DCMITYPE]. To describe the file format, physical medium, or dimensions of the resource, use the Format element."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "The nature or genre of the resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Type"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + diff --git a/tests/Trinity.Tests.Stardog/bin/Debug/netstandard2.0/Ontologies/fo af.rdf b/tests/Trinity.Tests.Stardog/bin/Debug/netstandard2.0/Ontologies/fo af.rdf new file mode 100644 index 0000000..68d0700 --- /dev/null +++ b/tests/Trinity.Tests.Stardog/bin/Debug/netstandard2.0/Ontologies/fo af.rdf @@ -0,0 +1,609 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Label Property + A foaf:LabelProperty is any RDF property with texual values that serve as labels. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/Trinity.Tests.Stardog/bin/Debug/netstandard2.0/Ontologies/foaf.rdf b/tests/Trinity.Tests.Stardog/bin/Debug/netstandard2.0/Ontologies/foaf.rdf new file mode 100644 index 0000000..68d0700 --- /dev/null +++ b/tests/Trinity.Tests.Stardog/bin/Debug/netstandard2.0/Ontologies/foaf.rdf @@ -0,0 +1,609 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Label Property + A foaf:LabelProperty is any RDF property with texual values that serve as labels. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/Trinity.Tests.Stardog/bin/Debug/netstandard2.0/Ontologies/nco.trig b/tests/Trinity.Tests.Stardog/bin/Debug/netstandard2.0/Ontologies/nco.trig new file mode 100644 index 0000000..c7b560c --- /dev/null +++ b/tests/Trinity.Tests.Stardog/bin/Debug/netstandard2.0/Ontologies/nco.trig @@ -0,0 +1,811 @@ +# +# Copyright (c) 2007 NEPOMUK Consortium +# Copyright (c) 2009-2011 Sebastian Trueg +# +# All rights reserved, licensed under either CC-BY or BSD. +# +# You are free: +# * to Share - to copy, distribute and transmit the work +# * to Remix - to adapt the work +# Under the following conditions: +# * Attribution - You must attribute the work in the manner specified by the author +# or licensor (but not in any way that suggests that they endorse you or your use +# of the work). +# +# Redistribution and use in source and binary forms, with or without modification, +# are permitted provided that the following conditions are met: +# * Redistributions of source code must retain the above copyright notice, this +# list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this +# list of conditions and the following disclaimer in the documentation and/or +# other materials provided with the distribution. +# * Neither the names of the authors nor the names of contributors may +# be used to endorse or promote products derived from this ontology without +# specific prior written permission. +# +# THIS ONTOLOGY IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +# THIS ONTOLOGY, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +@prefix exif: . +@prefix nid3: . +@prefix nrl: . +@prefix nfo: . +@prefix xsd: . +@prefix tmo: . +@prefix protege: . +@prefix nmo: . +@prefix rdfs: . +@prefix nexif: . +@prefix ncal: . +@prefix pimo: . +@prefix dcterms: . +@prefix nao: . +@prefix geo: . +@prefix dc: . +@prefix nie: . +@prefix nco: . +@prefix rdf: . + +nco: {nco:region + a rdf:Property ; + rdfs:comment "Region. Inspired by the fifth part of the value of the 'ADR' property as defined in RFC 2426, sec. 3.2.1" ; + rdfs:domain nco:PostalAddress ; + rdfs:label "region" ; + rdfs:range xsd:string ; + nrl:maxCardinality 1 . + + nco:key + a rdf:Property ; + rdfs:comment "An encryption key attached to a contact. Inspired by the KEY property defined in RFC 2426 sec. 3.7.2" ; + rdfs:domain nco:Contact ; + rdfs:label "key" ; + rdfs:range nie:DataObject ; + rdfs:subPropertyOf nie:hasPart . + + nco:nameHonorificSuffix + a rdf:Property ; + rdfs:comment "A suffix for the name of the Object represented by the given object. See documentation for the 'nameFamily' for details." ; + rdfs:domain nco:PersonContact ; + rdfs:label "nameHonorificSuffix" ; + rdfs:range xsd:string . + + nco:url + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "A uniform resource locator associated with the given role of a Contact. Inspired by the 'URL' property defined in RFC 2426 Sec. 3.6.8." ; + rdfs:domain nco:Role ; + rdfs:label "url" ; + rdfs:range rdfs:Resource . + + nco:VoicePhoneNumber + a rdfs:Class ; + rdfs:comment "A telephone number with voice communication capabilities. Class inspired by the TYPE=voice parameter of the TEL property defined in RFC 2426 sec. 3.3.1" ; + rdfs:label "VoicePhoneNumber" ; + rdfs:subClassOf nco:PhoneNumber . + + nco:nameFamily + a rdf:Property ; + rdfs:comment "The family name of an Object represented by this Contact. These applies to people that have more than one given name. The 'first' one is considered 'the' given name (see nameGiven) property. All additional ones are considered 'additional' names. The name inherited from parents is the 'family name'. e.g. For Dr. John Phil Paul Stevenson Jr. M.D. A.C.P. we have contact with: honorificPrefix: 'Dr.', nameGiven: 'John', nameAdditional: 'Phil', nameAdditional: 'Paul', nameFamily: 'Stevenson', honorificSuffix: 'Jr.', honorificSuffix: 'M.D.', honorificSuffix: 'A.C.P.'. These properties form an equivalent of the compound 'N' property as defined in RFC 2426 Sec. 3.1.2" ; + rdfs:domain nco:PersonContact ; + rdfs:label "nameFamily" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" . + + nco:VideoTelephoneNumber + a rdfs:Class ; + rdfs:comment "A Video telephone number. A class inspired by the TYPE=video parameter of the TEL property defined in RFC 2426 sec. 3.3.1" ; + rdfs:label "VideoTelephoneNumber" ; + rdfs:subClassOf nco:VoicePhoneNumber . + + nco:contactUID + a rdf:Property ; + rdfs:comment "A value that represents a globally unique identifier corresponding to the individual or resource associated with the Contact. An equivalent of the 'UID' property defined in RFC 2426 Sec. 3.6.7" ; + rdfs:domain nco:Contact ; + rdfs:label "contactUID" ; + rdfs:range xsd:string ; + rdfs:subPropertyOf nie:identifier ; + nrl:maxCardinality "1" . + + nco:publisher + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "An entity responsible for making the InformationElement available." ; + rdfs:domain nie:InformationElement ; + rdfs:label "publisher" ; + rdfs:range nco:Contact ; + rdfs:subPropertyOf dc:publisher . + + nco:country + a rdf:Property ; + rdfs:comment "A part of an address specyfing the country. Inspired by the seventh part of the value of the 'ADR' property as defined in RFC 2426, sec. 3.2.1" ; + rdfs:domain nco:PostalAddress ; + rdfs:label "country" ; + rdfs:range xsd:string ; + nrl:maxCardinality 1 . + + nco:nameHonorificPrefix + a rdf:Property ; + rdfs:comment "A prefix for the name of the object represented by this Contact. See documentation for the 'nameFamily' property for details." ; + rdfs:domain nco:PersonContact ; + rdfs:label "nameHonorificPrefix" ; + rdfs:range xsd:string . + + nco:extendedAddress + a rdf:Property ; + rdfs:comment "An extended part of an address. This field might be used to express parts of an address that aren't include in the name of the Contact but also aren't part of the actual location. Usually the streed address and following fields are enough for a postal letter to arrive. Examples may include ('University of California Campus building 45', 'Sears Tower 34th floor' etc.) Inspired by the second part of the value of the 'ADR' property as defined in RFC 2426, sec. 3.2.1" ; + rdfs:domain nco:PostalAddress ; + rdfs:label "extendedAddress" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" . + + nco:IMAccount + a rdfs:Class ; + rdfs:comment "An account in an Instant Messaging system." ; + rdfs:label "IMAccount" ; + rdfs:subClassOf nco:ContactMedium . + + nco:hasIMAccount + a rdf:Property ; + rdfs:comment "Indicates that an Instant Messaging account owned by an entity represented by this contact." ; + rdfs:domain nco:Role ; + rdfs:label "hasIMAccount" ; + rdfs:range nco:IMAccount ; + rdfs:subPropertyOf nco:hasContactMedium . + + nco:IsdnNumber + a rdfs:Class ; + rdfs:comment "An ISDN phone number. Inspired by the (TYPE=isdn) parameter of the TEL property as defined in RFC 2426 sec 3.3.1." ; + rdfs:label "IsdnNumber" ; + rdfs:subClassOf nco:VoicePhoneNumber . + + nco:creator + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "Creator of an information element, an entity primarily responsible for the creation of the content of the data object." ; + rdfs:domain nie:InformationElement ; + rdfs:label "creator" ; + rdfs:range nco:Contact ; + rdfs:subPropertyOf dc:creator , nco:contributor , nao:creator . + + nco:hasLocation + a rdf:Property ; + rdfs:comment "Geographical location of the contact. Inspired by the 'GEO' property specified in RFC 2426 Sec. 3.4.2" ; + rdfs:domain nco:Contact ; + rdfs:label "hasLocation" ; + rdfs:range geo:Point ; + nrl:maxCardinality "1" . + + nco:birthday + a rdf:Property ; + rdfs:comment "Links a contact with the calendar event of his birthday. (NCAL version)"; + rdfs:label "birthday" ; + rdfs:domain nco:Contact ; + rdfs:range ncal:BirthdayEvent ; + nrl:maxCardinality "1" . + + nco:phoneNumber + a rdf:Property ; + rdfs:domain nco:PhoneNumber ; + rdfs:label "phoneNumber" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" . + + nco:nickname + a rdf:Property ; + rdfs:comment "A nickname of the Object represented by this Contact. This is an equivalent of the 'NICKNAME' property as defined in RFC 2426 Sec. 3.1.3." ; + rdfs:domain nco:Contact ; + rdfs:label "nickname" ; + rdfs:range xsd:string . + + nco:imStatus + a rdf:Property, nrl:NonDefiningProperty ; + rdfs:comment "Current status of the given IM account. When this property is set, the nco:imStatusType should also always be set. Applications should attempt to parse this property to determine the presence, only falling back to the nco:imStatusType property in the case that this property's value is unrecognised. Values for this property may include 'available', 'offline', 'busy' etc. The exact choice of them is unspecified, although it is recommended to follow the guidance of the Telepathy project when choosing a string identifier http://telepathy.freedesktop.org/spec/Connection_Interface_Simple_Presence.html#description" ; + rdfs:domain nco:IMAccount ; + rdfs:label "imStatus" ; + rdfs:range xsd:string ; + nrl:maxCardinality 1 . + + nco:imStatusType + a rdf:Property ; + rdfs:comment "Current status type of the given IM account. When this property is set, the nco:imStatus property should also always be set. Applications should attempt to parse the nco:imStatus property to determine the presence, only falling back to this property in the case that the nco:imStatus property's value is unrecognised." ; + rdfs:domain nco:IMAccount ; + rdfs:label "instant messaging status type" ; + rdfs:range nco:IMStatusType ; + nrl:maxCardinality 1 . + + nco:IMStatusType a rdfs:Class ; + rdfs:label "instant messaging status type" ; + rdfs:comment "The status type of an IMAccount. Based on the Connection_Presence_Type enumeration of the Telepathy project: http://telepathy.freedesktop.org/spec/Connection_Interface_Simple_Presence.html#Enum:Connection_Presence_Type" ; + rdfs:subClassOf rdfs:Resource . + + nco:IMStatusTypeOffline + a nco:IMStatusType ; + rdfs:label "offline" . + + nco:IMStatusTypeAvailable + a nco:IMStatusType ; + rdfs:label "available" . + + nco:IMStatusTypeAway + a nco:IMStatusType ; + rdfs:label "away" . + + nco:IMStatusTypeExtendedAway + a nco:IMStatusType ; + rdfs:label "extended away". + + nco:IMStatusTypeHidden + a nco:IMStatusType ; + rdfs:label "hidden" . + + nco:IMStatusTypeBusy + a nco:IMStatusType ; + rdfs:label "busy" . + + nco:IMStatusTypeUnknown + a nco:IMStatusType ; + rdfs:label "unknown" . + + nco:containsContact + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment """A property used to group contacts into contact groups. This + property was NOT defined in the VCARD standard. See documentation for the + 'ContactList' class for details""" ; + rdfs:domain nco:ContactList ; + rdfs:label "containsContact" ; + rdfs:range nco:ContactListDataObject ; + rdfs:subPropertyOf nie:hasPart . + + nco:department + a rdf:Property ; + rdfs:comment "Department. The organizational unit within the organization." ; + rdfs:domain nco:Affiliation ; + rdfs:label "department" ; + rdfs:range xsd:string . + + nco:imID + a rdf:Property ; + rdfs:comment "Identifier of the IM account. Examples of such identifier might include ICQ UINs, Jabber IDs, Skype names etc." ; + rdfs:domain nco:IMAccount ; + rdfs:label "imID" ; + rdfs:range xsd:string ; + rdfs:subPropertyOf nao:identifier . + + nco:addressLocation + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "The geographical location of a postal address." ; + rdfs:domain nco:PostalAddress ; + rdfs:label "addressLocation" ; + rdfs:range geo:Point ; + nrl:maxCardinality "1" . + + nco:note + a rdf:Property ; + rdfs:comment "A note about the object represented by this Contact. An equivalent for the 'NOTE' property defined in RFC 2426 Sec. 3.6.2" ; + rdfs:domain nco:Contact ; + rdfs:label "note" ; + rdfs:range xsd:string ; + rdfs:subPropertyOf nie:description . + + nco:representative + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "An object that represent an object represented by this Contact. Usually this property is used to link a Contact to an organization, to a contact to the representative of this organization the user directly interacts with. An equivalent for the 'AGENT' property defined in RFC 2426 Sec. 3.5.4" ; + rdfs:domain nco:Contact ; + rdfs:label "representative" ; + rdfs:range nco:Contact . + + nco:nameAdditional + a rdf:Property ; + rdfs:comment "Additional given name of an object represented by this contact. See documentation for 'nameFamily' property for details." ; + rdfs:domain nco:PersonContact ; + rdfs:label "nameAdditional" ; + rdfs:range xsd:string . + + nco:nameGiven + a rdf:Property ; + rdfs:comment "The given name for the object represented by this Contact. See documentation for 'nameFamily' property for details." ; + rdfs:domain nco:PersonContact ; + rdfs:label "nameGiven" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" . + + nco:PcsNumber + a rdfs:Class ; + rdfs:comment "Personal Communication Services Number. A class inspired by the TYPE=pcs parameter of the TEL property defined in RFC 2426 sec. 3.3.1" ; + rdfs:label "PcsNumber" ; + rdfs:subClassOf nco:VoicePhoneNumber . + + nco:ContactList + a rdfs:Class ; + rdfs:comment "A contact list, this class represents an addressbook or a contact list of an IM application. Contacts inside a contact list can belong to contact groups." ; + rdfs:label "ContactList" ; + rdfs:subClassOf nie:InformationElement . + + nco:fullname + a rdf:Property ; + rdfs:comment "To specify the formatted text corresponding to the name of the object the Contact represents. An equivalent of the FN property as defined in RFC 2426 Sec. 3.1.1." ; + rdfs:domain nco:Contact ; + rdfs:label "fullname" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" ; + rdfs:subPropertyOf nie:title . + + nco:ContactGroup + a rdfs:Class ; + rdfs:comment "A group of Contacts. Could be used to express a group in an addressbook or on a contact list of an IM application. One contact can belong to many groups." ; + rdfs:label "ContactGroup" ; + rdfs:subClassOf nie:InformationElement . + + nco:BbsNumber + a rdfs:Class ; + rdfs:comment "A Bulletin Board System (BBS) phone number. Inspired by the (TYPE=bbsl) parameter of the TEL property as defined in RFC 2426 sec 3.3.1." ; + rdfs:label "BbsNumber" ; + rdfs:subClassOf nco:ModemNumber . + + nco:Affiliation + a rdfs:Class ; + rdfs:comment "Aggregates three properties defined in RFC2426. Originally all three were attached directly to a person. One person could have only one title and one role within one organization. This class is intended to lift this limitation." ; + rdfs:label "Affiliation" ; + rdfs:subClassOf nco:Role . + + nco:streetAddress + a rdf:Property ; + rdfs:comment "The streed address. Inspired by the third part of the value of the 'ADR' property as defined in RFC 2426, sec. 3.2.1" ; + rdfs:domain nco:PostalAddress ; + rdfs:label "streetAddress" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" . + + nco:OrganizationContact + a rdfs:Class ; + rdfs:comment "A Contact that denotes on Organization." ; + rdfs:label "OrganizationContact" ; + rdfs:subClassOf nco:Contact . + + nco:PhoneNumber + a rdfs:Class ; + rdfs:comment "A telephone number." ; + rdfs:label "PhoneNumber" ; + rdfs:subClassOf nco:ContactMedium . + + nco:Contact + a rdfs:Class ; + rdfs:comment "A Contact. A piece of data that can provide means to identify or communicate with an entity." ; + rdfs:label "Contact" ; + rdfs:subClassOf nco:Role , nie:InformationElement , nao:Party . + + nco:ModemNumber + a rdfs:Class ; + rdfs:comment "A modem phone number. Inspired by the (TYPE=modem) parameter of the TEL property as defined in RFC 2426 sec 3.3.1." ; + rdfs:label "ModemNumber" ; + rdfs:subClassOf nco:PhoneNumber . + + nco:Role + a rdfs:Class ; + rdfs:comment "A role played by a contact. Contacts that denote people, can have many roles (e.g. see the hasAffiliation property and Affiliation class). Contacts that denote Organizations or other Agents usually have one role. Each role can introduce additional contact media." ; + rdfs:label "Role" ; + rdfs:subClassOf rdfs:Resource . + + nco:PagerNumber + a rdfs:Class ; + rdfs:comment "A pager phone number. Inspired by the (TYPE=pager) parameter of the TEL property as defined in RFC 2426 sec 3.3.1." ; + rdfs:label "PagerNumber" ; + rdfs:subClassOf nco:MessagingNumber . + + nco:hasPhoneNumber + a rdf:Property ; + rdfs:comment "A number for telephony communication with the object represented by this Contact. An equivalent of the 'TEL' property defined in RFC 2426 Sec. 3.3.1" ; + rdfs:domain nco:Role ; + rdfs:label "hasPhoneNumber" ; + rdfs:range nco:PhoneNumber ; + rdfs:subPropertyOf nco:hasContactMedium . + + nco:photo + a rdf:Property ; + rdfs:comment "Photograph attached to a Contact. The DataObject referred to by this property is usually interpreted as an nfo:Image. Inspired by the PHOTO property defined in RFC 2426 sec. 3.1.4" ; + rdfs:domain nco:Contact ; + rdfs:label "photo" ; + rdfs:range nie:DataObject ; + rdfs:subPropertyOf nie:hasPart . + + nco:contributor + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "An entity responsible for making contributions to the content of the InformationElement." ; + rdfs:domain nie:InformationElement ; + rdfs:label "contributor" ; + rdfs:range nco:Contact ; + rdfs:subPropertyOf dc:contributor , nao:contributor . + + nco:logo + a rdf:Property ; + rdfs:comment "Logo of a company. Inspired by the LOGO property defined in RFC 2426 sec. 3.5.3" ; + rdfs:domain nco:OrganizationContact ; + rdfs:label "logo" ; + rdfs:range nie:DataObject ; + rdfs:subPropertyOf nie:hasPart . + + nco:websiteUrl + a rdf:Property ; + rdfs:comment "A url of a website." ; + rdfs:domain nco:Role ; + rdfs:label "websiteUrl" ; + rdfs:range rdfs:Resource ; + rdfs:subPropertyOf nco:url . + + nco:ContactMedium + a rdfs:Class ; + rdfs:comment "A superclass for all contact media - ways to contact an entity represented by a Contact instance. Some of the subclasses of this class (the various kinds of telephone numbers and postal addresses) have been inspired by the values of the TYPE parameter of ADR and TEL properties defined in RFC 2426 sec. 3.2.1. and 3.3.1 respectively. Each value is represented by an appropriate subclass with two major exceptions TYPE=home and TYPE=work. They are to be expressed by the roles these contact media are attached to i.e. contact media with TYPE=home parameter are to be attached to the default role (nco:Contact or nco:PersonContact), whereas media with TYPE=work parameter should be attached to nco:Affiliation or nco:OrganizationContact." ; + rdfs:label "ContactMedium" ; + rdfs:subClassOf rdfs:Resource . + + nco:Gender + a rdfs:Class ; + rdfs:comment "Gender. Instances of this class may include male and female." ; + rdfs:label "Gender" ; + rdfs:subClassOf rdfs:Resource . + + nco:male + a nco:Gender ; + rdfs:comment "A Male" ; + rdfs:label "male" . + + nco:birthDate + a rdf:Property ; + rdfs:comment "Birth date of the object represented by this Contact. An equivalent of the 'BDAY' property as defined in RFC 2426 Sec. 3.1.5." ; + rdfs:domain nco:Contact ; + rdfs:label "birthDate" ; + rdfs:range xsd:date ; + rdfs:subPropertyOf dc:date ; + nrl:maxCardinality 1 . + + nco:hasEmailAddress + a rdf:Property ; + rdfs:comment "An address for electronic mail communication with the object specified by this contact. An equivalent of the 'EMAIL' property as defined in RFC 2426 Sec. 3.3.1." ; + rdfs:domain nco:Role ; + rdfs:label "hasEmailAddress" ; + rdfs:range nco:EmailAddress ; + rdfs:subPropertyOf nco:hasContactMedium . + + nco:postalcode + a rdf:Property ; + rdfs:comment "Postal Code. Inspired by the sixth part of the value of the 'ADR' property as defined in RFC 2426, sec. 3.2.1" ; + rdfs:domain nco:PostalAddress ; + rdfs:label "postalcode" ; + rdfs:range xsd:string ; + nrl:maxCardinality 1 . + + nco:MessagingNumber + a rdfs:Class ; + rdfs:comment "A number that can accept textual messages." ; + rdfs:label "MessagingNumber" ; + rdfs:subClassOf nco:PhoneNumber . + + nco:org + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "Name of an organization or a unit within an organization the object represented by a Contact is associated with. An equivalent of the 'ORG' property defined in RFC 2426 Sec. 3.5.5" ; + rdfs:domain nco:Affiliation ; + rdfs:label "org" ; + rdfs:range nco:OrganizationContact ; + nrl:maxCardinality "1" . + + nco:PersonContact + a rdfs:Class ; + rdfs:comment "A Contact that denotes a Person. A person can have multiple Affiliations." ; + rdfs:label "PersonContact" ; + rdfs:subClassOf nco:Contact . + + nco:ParcelDeliveryAddress + a rdfs:Class ; + rdfs:comment "Parcel Delivery Addresse. Class inspired by TYPE=parcel parameter of the ADR property defined in RFC 2426 sec. 3.2.1" ; + rdfs:label "ParcelDeliveryAddress" ; + rdfs:subClassOf nco:PostalAddress . + + nco:title + a rdf:Property ; + rdfs:comment "The official title the object represented by this contact in an organization. E.g. 'CEO', 'Director, Research and Development', 'Junior Software Developer/Analyst' etc. An equivalent of the 'TITLE' property defined in RFC 2426 Sec. 3.5.1" ; + rdfs:domain nco:Affiliation ; + rdfs:label "title" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" . + + nco:AudioIMAccount + a rdfs:Class ; + nao:deprecated true ; + rdfs:comment "Deprecated in favour of nco:imCapabilityAudio." ; + rdfs:label "AudioIMAccount" ; + rdfs:subClassOf nco:IMAccount . + + nco:voiceMail + a rdf:Property ; + rdfs:comment "Indicates if the given number accepts voice mail. (e.g. there is an answering machine). Inspired by TYPE=msg parameter of the TEL property defined in RFC 2426 sec. 3.3.1" ; + rdfs:domain nco:VoicePhoneNumber ; + rdfs:label "voiceMail" ; + rdfs:range xsd:boolean ; + nrl:maxCardinality "1" . + + nco:PostalAddress + a rdfs:Class ; + rdfs:comment "A postal address. A class aggregating the various parts of a value for the 'ADR' property as defined in RFC 2426 Sec. 3.2.1." ; + rdfs:label "PostalAddress" ; + rdfs:subClassOf nco:ContactMedium . + + nco:belongsToGroup + a rdf:Property ; + rdfs:comment "Links a Contact with a ContactGroup it belongs to." ; + rdfs:domain nco:Contact ; + rdfs:label "belongsToGroup" ; + rdfs:range nco:ContactGroup . + + nco:hasContactMedium + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "A superProperty for all properties linking a Contact to an instance of a contact medium." ; + rdfs:domain nco:Role ; + rdfs:label "hasContactMedium" ; + rdfs:range nco:ContactMedium . + + nco:contactGroupName + a rdf:Property ; + rdfs:comment """The name of the contact group. This property was NOT defined + in the VCARD standard. See documentation of the 'ContactGroup' class for + details""" ; + rdfs:domain nco:ContactGroup ; + rdfs:label "contactGroupName" ; + rdfs:range xsd:string ; + rdfs:subPropertyOf dc:title ; + nrl:maxCardinality 1 . + + nco:FaxNumber + a rdfs:Class ; + rdfs:comment "A fax number. Inspired by the (TYPE=fax) parameter of the TEL property as defined in RFC 2426 sec 3.3.1." ; + rdfs:label "FaxNumber" ; + rdfs:subClassOf nco:PhoneNumber . + + nco:contactMediumComment + a rdf:Property ; + rdfs:comment "A comment about the contact medium. (Deprecated in favor of nie:comment or nao:description - based on the context)" ; + rdfs:domain nco:ContactMedium ; + rdfs:label "contactMediumComment" ; + rdfs:range xsd:string ; + nao:deprecated true. + + nco:foafUrl + a rdf:Property ; + rdfs:comment "The URL of the FOAF file." ; + rdfs:domain nco:Role ; + rdfs:label "foafUrl" ; + rdfs:range rdfs:Resource ; + rdfs:subPropertyOf nco:url . + + nco:CarPhoneNumber + a rdfs:Class ; + rdfs:comment "A car phone number. Inspired by the (TYPE=car) parameter of the TEL property as defined in RFC 2426 sec 3.3.1." ; + rdfs:label "CarPhoneNumber" ; + rdfs:subClassOf nco:VoicePhoneNumber . + + nco:ContactListDataObject + a rdfs:Class ; + rdfs:comment "An entity occuring on a contact list (usually interpreted as an nco:Contact)" ; + rdfs:label "ContactListDataObject" ; + rdfs:subClassOf nie:DataObject . + + nco:emailAddress + a rdf:Property ; + rdfs:domain nco:EmailAddress ; + rdfs:label "emailAddress" ; + rdfs:range xsd:string ; + nrl:maxCardinality 1 . + + nco:InternationalDeliveryAddress + a rdfs:Class ; + rdfs:comment "International Delivery Addresse. Class inspired by TYPE=intl parameter of the ADR property defined in RFC 2426 sec. 3.2.1" ; + rdfs:label "InternationalDeliveryAddress" ; + rdfs:subClassOf nco:PostalAddress . + + nco:locality + a rdf:Property ; + rdfs:comment "Locality or City. Inspired by the fourth part of the value of the 'ADR' property as defined in RFC 2426, sec. 3.2.1" ; + rdfs:domain nco:PostalAddress ; + rdfs:label "locality" ; + rdfs:range xsd:string ; + nrl:maxCardinality 1 . + + nco:VideoIMAccount + a rdfs:Class ; + nao:deprecated true ; + rdfs:comment "Deprecated in favour of nco:imCapabilityVideo." ; + rdfs:label "VideoIMAccount" ; + rdfs:subClassOf nco:AudioIMAccount . + + nco:sound + a rdf:Property ; + rdfs:comment "Sound clip attached to a Contact. The DataObject referred to by this property is usually interpreted as an nfo:Audio. Inspired by the SOUND property defined in RFC 2425 sec. 3.6.6." ; + rdfs:domain nco:Contact ; + rdfs:label "sound" ; + rdfs:range nie:DataObject ; + rdfs:subPropertyOf nie:hasPart . + + nco:EmailAddress + a rdfs:Class ; + rdfs:comment "An email address. The recommended best practice is to use mailto: uris for instances of this class." ; + rdfs:label "EmailAddress" ; + rdfs:subClassOf nco:ContactMedium . + + nco:imNickname + a rdf:Property ; + rdfs:comment "A nickname attached to a particular IM Account." ; + rdfs:domain nco:IMAccount ; + rdfs:label "imNickname" ; + rdfs:range xsd:string . + + nco:hobby + a rdf:Property ; + rdfs:comment "A hobby associated with a PersonContact. This property can be used to express hobbies and interests." ; + rdfs:domain nco:PersonContact ; + rdfs:label "hobby" ; + rdfs:range xsd:string . + + nco:blogUrl + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "A Blog url." ; + rdfs:domain nco:Role ; + rdfs:label "blogUrl" ; + rdfs:range rdfs:Resource ; + rdfs:subPropertyOf nco:url . + + nco:CellPhoneNumber + a rdfs:Class ; + rdfs:comment "A cellular phone number. Inspired by the (TYPE=cell) parameter of the TEL property as defined in RFC 2426 sec 3.3.1. Usually a cellular phone can accept voice calls as well as textual messages (SMS), therefore this class has two superclasses." ; + rdfs:label "CellPhoneNumber" ; + rdfs:subClassOf nco:MessagingNumber , nco:VoicePhoneNumber . + + nco:role + a rdf:Property ; + rdfs:comment "Role an object represented by this contact represents in the organization. This might include 'Programmer', 'Manager', 'Sales Representative'. Be careful to avoid confusion with the title property. An equivalent of the 'ROLE' property as defined in RFC 2426. Sec. 3.5.2. Note the difference between nco:Role class and nco:role property." ; + rdfs:domain nco:Affiliation ; + rdfs:label "role" ; + rdfs:range xsd:string . + + nco:DomesticDeliveryAddress + a rdfs:Class ; + rdfs:comment "Domestic Delivery Addresse. Class inspired by TYPE=dom parameter of the ADR property defined in RFC 2426 sec. 3.2.1" ; + rdfs:label "DomesticDeliveryAddress" ; + rdfs:subClassOf nco:PostalAddress . + + nco:female + a nco:Gender ; + rdfs:comment "A Female" ; + rdfs:label "female" . + + nco:hasPostalAddress + a rdf:Property ; + rdfs:comment "The default Address for a Contact. An equivalent of the 'ADR' property as defined in RFC 2426 Sec. 3.2.1." ; + rdfs:domain nco:Role ; + rdfs:label "hasPostalAddress" ; + rdfs:range nco:PostalAddress ; + rdfs:subPropertyOf nco:hasContactMedium . + + nco:imAccountType + a rdf:Property ; + rdfs:comment "Type of the IM account. This may be the name of the service that provides the IM functionality. Examples might include Jabber, ICQ, MSN etc" ; + rdfs:domain nco:IMAccount ; + rdfs:label "imAccountType" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" . + + nco:pobox + a rdf:Property ; + rdfs:comment "Post office box. This is the first part of the value of the 'ADR' property as defined in RFC 2426, sec. 3.2.1" ; + rdfs:domain nco:PostalAddress ; + rdfs:label "pobox" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1". + + nco:hasAffiliation + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "Links a PersonContact with an Affiliation." ; + rdfs:domain nco:PersonContact ; + rdfs:label "hasAffiliation" ; + rdfs:range nco:Affiliation . + + nco:gender + a rdf:Property ; + rdfs:comment "Gender of the given contact." ; + rdfs:domain nco:PersonContact ; + rdfs:label "gender" ; + rdfs:range nco:Gender ; + nrl:maxCardinality 1 . + + nco:imStatusMessage + a rdf:Property, nrl:NonDefiningProperty ; + rdfs:comment "A feature common in most IM systems. A message left by the user for all his/her contacts to see." ; + rdfs:domain nco:IMAccount ; + rdfs:label "imStatusMessage" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" . + + nco:start + a rdf:Property ; + rdfs:comment "Start datetime for the role, such as: the datetime of joining a project or organization, datetime of starting employment, datetime of marriage" ; + rdfs:label "start" ; + rdfs:domain nco:Role ; + rdfs:range xsd:dateTime ; + nrl:maxCardinality 1 . + + nco:end + a rdf:Property; + rdfs:comment "End datetime for the role, such as: the datetime of leaving a project or organization, datetime of ending employment, datetime of divorce. If absent or set to a date in the future, the role is currently active." ; + rdfs:label "end" ; + rdfs:domain nco:Role ; + rdfs:range xsd:dateTime ; + nrl:maxCardinality 1 . + + nco:IMCapability a rdfs:Class ; + rdfs:label "imCapability" ; + rdfs:comment "Capabilities of a cetain IMAccount." ; + rdfs:subClassOf rdfs:Resource . + + nco:imCapabilityText a nco:IMCapability . + nco:imCapabilityAudio a nco:IMCapability . + nco:imCapabilityVideo a nco:IMCapability . + + nco:hasIMCapability + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "Indicates that an IMAccount has a certain capability." ; + rdfs:domain nco:IMAccount ; + rdfs:label "hasIMCapability" ; + rdfs:range nco:IMCapability . + + nco:isAccessedBy + a rdf:Property ; + rdfs:comment "Indicates the local IMAccount by which this IMAccount is accessed. This does not imply membership of a contact list." ; + rdfs:label "isKnownBy" ; + rdfs:domain nco:IMAccount ; + rdfs:range nco:IMAccount . + + nco:publishesPresenceTo + a rdf:Property ; + rdfs:comment "Indicates that this IMAccount publishes its presence information to the other IMAccount." ; + rdfs:label "publishesPresenceTo" ; + rdfs:domain nco:IMAccount ; + rdfs:range nco:IMAccount . + + nco:requestedPresenceSubscriptionTo + a rdf:Property ; + rdfs:comment "Indicates that this IMAccount has requested a subscription to the presence information of the other IMAccount." ; + rdfs:label "requestedPresenceSubscriptionTo" ; + rdfs:domain nco:IMAccount ; + rdfs:range nco:IMAccount . + + nco:isBlocked + a rdf:Property ; + rdfs:comment "Indicates that this IMAccount has been blocked." ; + rdfs:domain nco:IMAccount ; + rdfs:label "isBlocked" ; + rdfs:range xsd:boolean ; + nrl:maxCardinality "1" . +} + + {nco: a nrl:Ontology ; + nao:creator ; + nao:hasDefaultNamespace + "http://www.semanticdesktop.org/ontologies/2007/03/22/nco#" ; + nao:hasDefaultNamespaceAbbreviation + "nco" ; + nao:lastModified "2011-12-13T12:44:58Z" ; + nao:status "Unstable" ; + nao:updatable "0 " ; + nao:version "0.10.0" ; + nao:prefLabel "Nepomuk Contact Ontology" ; + nao:description "The Nepomuk Contact Ontology describes contact information, common in many places on the desktop. It evolved from the VCARD specification (RFC 2426) and has been inspired by the Vcard Ontology by Renato Ianella. The scope of NCO is much broader though." . + + + a nrl:GraphMetadata ; + nrl:coreGraphMetadataFor + nco: . +} diff --git a/tests/Trinity.Tests.Stardog/bin/Debug/netstandard2.0/Ontologies/owl.n3 b/tests/Trinity.Tests.Stardog/bin/Debug/netstandard2.0/Ontologies/owl.n3 new file mode 100644 index 0000000..87467e7 --- /dev/null +++ b/tests/Trinity.Tests.Stardog/bin/Debug/netstandard2.0/Ontologies/owl.n3 @@ -0,0 +1,552 @@ +@prefix dc: . +@prefix grddl: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix xml: . +@prefix xsd: . + + a owl:Ontology ; + dc:title "The OWL 2 Schema vocabulary (OWL 2)" ; + rdfs:comment """ + This ontology partially describes the built-in classes and + properties that together form the basis of the RDF/XML syntax of OWL 2. + The content of this ontology is based on Tables 6.1 and 6.2 + in Section 6.4 of the OWL 2 RDF-Based Semantics specification, + available at http://www.w3.org/TR/owl2-rdf-based-semantics/. + Please note that those tables do not include the different annotations + (labels, comments and rdfs:isDefinedBy links) used in this file. + Also note that the descriptions provided in this ontology do not + provide a complete and correct formal description of either the syntax + or the semantics of the introduced terms (please see the OWL 2 + recommendations for the complete and normative specifications). + Furthermore, the information provided by this ontology may be + misleading if not used with care. This ontology SHOULD NOT be imported + into OWL ontologies. Importing this file into an OWL 2 DL ontology + will cause it to become an OWL 2 Full ontology and may have other, + unexpected, consequences. + """ ; + rdfs:isDefinedBy + , + , + ; + rdfs:seeAlso , + ; + owl:imports ; + owl:versionIRI ; + owl:versionInfo "$Date: 2009/11/15 10:54:12 $" ; + grddl:namespaceTransformation . + + +owl:AllDifferent a rdfs:Class ; + rdfs:label "AllDifferent" ; + rdfs:comment "The class of collections of pairwise different individuals." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Resource . + +owl:AllDisjointClasses a rdfs:Class ; + rdfs:label "AllDisjointClasses" ; + rdfs:comment "The class of collections of pairwise disjoint classes." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Resource . + +owl:AllDisjointProperties a rdfs:Class ; + rdfs:label "AllDisjointProperties" ; + rdfs:comment "The class of collections of pairwise disjoint properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Resource . + +owl:Annotation a rdfs:Class ; + rdfs:label "Annotation" ; + rdfs:comment "The class of annotated annotations for which the RDF serialization consists of an annotated subject, predicate and object." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Resource . + +owl:AnnotationProperty a rdfs:Class ; + rdfs:label "AnnotationProperty" ; + rdfs:comment "The class of annotation properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdf:Property . + +owl:AsymmetricProperty a rdfs:Class ; + rdfs:label "AsymmetricProperty" ; + rdfs:comment "The class of asymmetric properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:ObjectProperty . + +owl:Axiom a rdfs:Class ; + rdfs:label "Axiom" ; + rdfs:comment "The class of annotated axioms for which the RDF serialization consists of an annotated subject, predicate and object." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Resource . + +owl:Class a rdfs:Class ; + rdfs:label "Class" ; + rdfs:comment "The class of OWL classes." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Class . + +owl:DataRange a rdfs:Class ; + rdfs:label "DataRange" ; + rdfs:comment "The class of OWL data ranges, which are special kinds of datatypes. Note: The use of the IRI owl:DataRange has been deprecated as of OWL 2. The IRI rdfs:Datatype SHOULD be used instead." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Datatype . + +owl:DatatypeProperty a rdfs:Class ; + rdfs:label "DatatypeProperty" ; + rdfs:comment "The class of data properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdf:Property . + +owl:DeprecatedClass a rdfs:Class ; + rdfs:label "DeprecatedClass" ; + rdfs:comment "The class of deprecated classes." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Class . + +owl:DeprecatedProperty a rdfs:Class ; + rdfs:label "DeprecatedProperty" ; + rdfs:comment "The class of deprecated properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdf:Property . + +owl:FunctionalProperty a rdfs:Class ; + rdfs:label "FunctionalProperty" ; + rdfs:comment "The class of functional properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdf:Property . + +owl:InverseFunctionalProperty a rdfs:Class ; + rdfs:label "InverseFunctionalProperty" ; + rdfs:comment "The class of inverse-functional properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:ObjectProperty . + +owl:IrreflexiveProperty a rdfs:Class ; + rdfs:label "IrreflexiveProperty" ; + rdfs:comment "The class of irreflexive properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:ObjectProperty . + +owl:NamedIndividual a rdfs:Class ; + rdfs:label "NamedIndividual" ; + rdfs:comment "The class of named individuals." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:Thing . + +owl:NegativePropertyAssertion a rdfs:Class ; + rdfs:label "NegativePropertyAssertion" ; + rdfs:comment "The class of negative property assertions." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Resource . + +owl:Nothing a owl:Class ; + rdfs:label "Nothing" ; + rdfs:comment "This is the empty class." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:Thing . + +owl:ObjectProperty a rdfs:Class ; + rdfs:label "ObjectProperty" ; + rdfs:comment "The class of object properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdf:Property . + +owl:Ontology a rdfs:Class ; + rdfs:label "Ontology" ; + rdfs:comment "The class of ontologies." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Resource . + +owl:OntologyProperty a rdfs:Class ; + rdfs:label "OntologyProperty" ; + rdfs:comment "The class of ontology properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdf:Property . + +owl:ReflexiveProperty a rdfs:Class ; + rdfs:label "ReflexiveProperty" ; + rdfs:comment "The class of reflexive properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:ObjectProperty . + +owl:Restriction a rdfs:Class ; + rdfs:label "Restriction" ; + rdfs:comment "The class of property restrictions." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:Class . + +owl:SymmetricProperty a rdfs:Class ; + rdfs:label "SymmetricProperty" ; + rdfs:comment "The class of symmetric properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:ObjectProperty . + +owl:TransitiveProperty a rdfs:Class ; + rdfs:label "TransitiveProperty" ; + rdfs:comment "The class of transitive properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:ObjectProperty . + +owl:Thing a owl:Class ; + rdfs:label "Thing" ; + rdfs:comment "The class of OWL individuals." ; + rdfs:isDefinedBy . + +owl:allValuesFrom a rdf:Property ; + rdfs:label "allValuesFrom" ; + rdfs:comment "The property that determines the class that a universal property restriction refers to." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Class . + +owl:annotatedProperty a rdf:Property ; + rdfs:label "annotatedProperty" ; + rdfs:comment "The property that determines the predicate of an annotated axiom or annotated annotation." ; + rdfs:domain rdfs:Resource ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Resource . + +owl:annotatedSource a rdf:Property ; + rdfs:label "annotatedSource" ; + rdfs:comment "The property that determines the subject of an annotated axiom or annotated annotation." ; + rdfs:domain rdfs:Resource ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Resource . + +owl:annotatedTarget a rdf:Property ; + rdfs:label "annotatedTarget" ; + rdfs:comment "The property that determines the object of an annotated axiom or annotated annotation." ; + rdfs:domain rdfs:Resource ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Resource . + +owl:assertionProperty a rdf:Property ; + rdfs:label "assertionProperty" ; + rdfs:comment "The property that determines the predicate of a negative property assertion." ; + rdfs:domain owl:NegativePropertyAssertion ; + rdfs:isDefinedBy ; + rdfs:range rdf:Property . + +owl:backwardCompatibleWith a owl:AnnotationProperty, owl:OntologyProperty ; + rdfs:label "backwardCompatibleWith" ; + rdfs:comment "The annotation property that indicates that a given ontology is backward compatible with another ontology." ; + rdfs:domain owl:Ontology ; + rdfs:isDefinedBy ; + rdfs:range owl:Ontology . + +owl:bottomDataProperty a owl:DatatypeProperty ; + rdfs:label "bottomDataProperty" ; + rdfs:comment "The data property that does not relate any individual to any data value." ; + rdfs:domain owl:Thing ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Literal . + +owl:bottomObjectProperty a owl:ObjectProperty ; + rdfs:label "bottomObjectProperty" ; + rdfs:comment "The object property that does not relate any two individuals." ; + rdfs:domain owl:Thing ; + rdfs:isDefinedBy ; + rdfs:range owl:Thing . + +owl:cardinality a rdf:Property ; + rdfs:label "cardinality" ; + rdfs:comment "The property that determines the cardinality of an exact cardinality restriction." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range xsd:nonNegativeInteger . + +owl:complementOf a rdf:Property ; + rdfs:label "complementOf" ; + rdfs:comment "The property that determines that a given class is the complement of another class." ; + rdfs:domain owl:Class ; + rdfs:isDefinedBy ; + rdfs:range owl:Class . + +owl:datatypeComplementOf a rdf:Property ; + rdfs:label "datatypeComplementOf" ; + rdfs:comment "The property that determines that a given data range is the complement of another data range with respect to the data domain." ; + rdfs:domain rdfs:Datatype ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Datatype . + +owl:deprecated a owl:AnnotationProperty ; + rdfs:label "deprecated" ; + rdfs:comment "The annotation property that indicates that a given entity has been deprecated." ; + rdfs:domain rdfs:Resource ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Resource . + +owl:differentFrom a rdf:Property ; + rdfs:label "differentFrom" ; + rdfs:comment "The property that determines that two given individuals are different." ; + rdfs:domain owl:Thing ; + rdfs:isDefinedBy ; + rdfs:range owl:Thing . + +owl:disjointUnionOf a rdf:Property ; + rdfs:label "disjointUnionOf" ; + rdfs:comment "The property that determines that a given class is equivalent to the disjoint union of a collection of other classes." ; + rdfs:domain owl:Class ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:disjointWith a rdf:Property ; + rdfs:label "disjointWith" ; + rdfs:comment "The property that determines that two given classes are disjoint." ; + rdfs:domain owl:Class ; + rdfs:isDefinedBy ; + rdfs:range owl:Class . + +owl:distinctMembers a rdf:Property ; + rdfs:label "distinctMembers" ; + rdfs:comment "The property that determines the collection of pairwise different individuals in a owl:AllDifferent axiom." ; + rdfs:domain owl:AllDifferent ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:equivalentClass a rdf:Property ; + rdfs:label "equivalentClass" ; + rdfs:comment "The property that determines that two given classes are equivalent, and that is used to specify datatype definitions." ; + rdfs:domain rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Class . + +owl:equivalentProperty a rdf:Property ; + rdfs:label "equivalentProperty" ; + rdfs:comment "The property that determines that two given properties are equivalent." ; + rdfs:domain rdf:Property ; + rdfs:isDefinedBy ; + rdfs:range rdf:Property . + +owl:hasKey a rdf:Property ; + rdfs:label "hasKey" ; + rdfs:comment "The property that determines the collection of properties that jointly build a key." ; + rdfs:domain owl:Class ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:hasSelf a rdf:Property ; + rdfs:label "hasSelf" ; + rdfs:comment "The property that determines the property that a self restriction refers to." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Resource . + +owl:hasValue a rdf:Property ; + rdfs:label "hasValue" ; + rdfs:comment "The property that determines the individual that a has-value restriction refers to." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Resource . + +owl:imports a owl:OntologyProperty ; + rdfs:label "imports" ; + rdfs:comment "The property that is used for importing other ontologies into a given ontology." ; + rdfs:domain owl:Ontology ; + rdfs:isDefinedBy ; + rdfs:range owl:Ontology . + +owl:incompatibleWith a owl:AnnotationProperty, owl:OntologyProperty ; + rdfs:label "incompatibleWith" ; + rdfs:comment "The annotation property that indicates that a given ontology is incompatible with another ontology." ; + rdfs:domain owl:Ontology ; + rdfs:isDefinedBy ; + rdfs:range owl:Ontology . + +owl:intersectionOf a rdf:Property ; + rdfs:label "intersectionOf" ; + rdfs:comment "The property that determines the collection of classes or data ranges that build an intersection." ; + rdfs:domain rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:inverseOf a rdf:Property ; + rdfs:label "inverseOf" ; + rdfs:comment "The property that determines that two given properties are inverse." ; + rdfs:domain owl:ObjectProperty ; + rdfs:isDefinedBy ; + rdfs:range owl:ObjectProperty . + +owl:maxCardinality a rdf:Property ; + rdfs:label "maxCardinality" ; + rdfs:comment "The property that determines the cardinality of a maximum cardinality restriction." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range xsd:nonNegativeInteger . + +owl:maxQualifiedCardinality a rdf:Property ; + rdfs:label "maxQualifiedCardinality" ; + rdfs:comment "The property that determines the cardinality of a maximum qualified cardinality restriction." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range xsd:nonNegativeInteger . + +owl:members a rdf:Property ; + rdfs:label "members" ; + rdfs:comment "The property that determines the collection of members in either a owl:AllDifferent, owl:AllDisjointClasses or owl:AllDisjointProperties axiom." ; + rdfs:domain rdfs:Resource ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:minCardinality a rdf:Property ; + rdfs:label "minCardinality" ; + rdfs:comment "The property that determines the cardinality of a minimum cardinality restriction." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range xsd:nonNegativeInteger . + +owl:minQualifiedCardinality a rdf:Property ; + rdfs:label "minQualifiedCardinality" ; + rdfs:comment "The property that determines the cardinality of a minimum qualified cardinality restriction." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range xsd:nonNegativeInteger . + +owl:onClass a rdf:Property ; + rdfs:label "onClass" ; + rdfs:comment "The property that determines the class that a qualified object cardinality restriction refers to." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range owl:Class . + +owl:onDataRange a rdf:Property ; + rdfs:label "onDataRange" ; + rdfs:comment "The property that determines the data range that a qualified data cardinality restriction refers to." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Datatype . + +owl:onDatatype a rdf:Property ; + rdfs:label "onDatatype" ; + rdfs:comment "The property that determines the datatype that a datatype restriction refers to." ; + rdfs:domain rdfs:Datatype ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Datatype . + +owl:oneOf a rdf:Property ; + rdfs:label "oneOf" ; + rdfs:comment "The property that determines the collection of individuals or data values that build an enumeration." ; + rdfs:domain rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:onProperties a rdf:Property ; + rdfs:label "onProperties" ; + rdfs:comment "The property that determines the n-tuple of properties that a property restriction on an n-ary data range refers to." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:onProperty a rdf:Property ; + rdfs:label "onProperty" ; + rdfs:comment "The property that determines the property that a property restriction refers to." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range rdf:Property . + +owl:priorVersion a owl:AnnotationProperty, owl:OntologyProperty ; + rdfs:label "priorVersion" ; + rdfs:comment "The annotation property that indicates the predecessor ontology of a given ontology." ; + rdfs:domain owl:Ontology ; + rdfs:isDefinedBy ; + rdfs:range owl:Ontology . + +owl:propertyChainAxiom a rdf:Property ; + rdfs:label "propertyChainAxiom" ; + rdfs:comment "The property that determines the n-tuple of properties that build a sub property chain of a given property." ; + rdfs:domain owl:ObjectProperty ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:propertyDisjointWith a rdf:Property ; + rdfs:label "propertyDisjointWith" ; + rdfs:comment "The property that determines that two given properties are disjoint." ; + rdfs:domain rdf:Property ; + rdfs:isDefinedBy ; + rdfs:range rdf:Property . + +owl:qualifiedCardinality a rdf:Property ; + rdfs:label "qualifiedCardinality" ; + rdfs:comment "The property that determines the cardinality of an exact qualified cardinality restriction." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range xsd:nonNegativeInteger . + +owl:sameAs a rdf:Property ; + rdfs:label "sameAs" ; + rdfs:comment "The property that determines that two given individuals are equal." ; + rdfs:domain owl:Thing ; + rdfs:isDefinedBy ; + rdfs:range owl:Thing . + +owl:someValuesFrom a rdf:Property ; + rdfs:label "someValuesFrom" ; + rdfs:comment "The property that determines the class that an existential property restriction refers to." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Class . + +owl:sourceIndividual a rdf:Property ; + rdfs:label "sourceIndividual" ; + rdfs:comment "The property that determines the subject of a negative property assertion." ; + rdfs:domain owl:NegativePropertyAssertion ; + rdfs:isDefinedBy ; + rdfs:range owl:Thing . + +owl:targetIndividual a rdf:Property ; + rdfs:label "targetIndividual" ; + rdfs:comment "The property that determines the object of a negative object property assertion." ; + rdfs:domain owl:NegativePropertyAssertion ; + rdfs:isDefinedBy ; + rdfs:range owl:Thing . + +owl:targetValue a rdf:Property ; + rdfs:label "targetValue" ; + rdfs:comment "The property that determines the value of a negative data property assertion." ; + rdfs:domain owl:NegativePropertyAssertion ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Literal . + +owl:topDataProperty a owl:DatatypeProperty ; + rdfs:label "topDataProperty" ; + rdfs:comment "The data property that relates every individual to every data value." ; + rdfs:domain owl:Thing ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Literal . + +owl:topObjectProperty a owl:ObjectProperty ; + rdfs:label "topObjectProperty" ; + rdfs:comment "The object property that relates every two individuals." ; + rdfs:domain owl:Thing ; + rdfs:isDefinedBy ; + rdfs:range owl:Thing . + +owl:unionOf a rdf:Property ; + rdfs:label "unionOf" ; + rdfs:comment "The property that determines the collection of classes or data ranges that build a union." ; + rdfs:domain rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:versionInfo a owl:AnnotationProperty ; + rdfs:label "versionInfo" ; + rdfs:comment "The annotation property that provides version information for an ontology or another OWL construct." ; + rdfs:domain rdfs:Resource ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Resource . + +owl:versionIRI a owl:OntologyProperty ; + rdfs:label "versionIRI" ; + rdfs:comment "The property that identifies the version IRI of an ontology." ; + rdfs:domain owl:Ontology ; + rdfs:isDefinedBy ; + rdfs:range owl:Ontology . + +owl:withRestrictions a rdf:Property ; + rdfs:label "withRestrictions" ; + rdfs:comment "The property that determines the collection of facet-value pairs that define a datatype restriction." ; + rdfs:domain rdfs:Datatype ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + \ No newline at end of file diff --git a/tests/Trinity.Tests.Stardog/bin/Debug/netstandard2.0/Ontologies/rdf.rdf b/tests/Trinity.Tests.Stardog/bin/Debug/netstandard2.0/Ontologies/rdf.rdf new file mode 100644 index 0000000..a6815ec --- /dev/null +++ b/tests/Trinity.Tests.Stardog/bin/Debug/netstandard2.0/Ontologies/rdf.rdf @@ -0,0 +1,156 @@ + + + + The RDF Concepts Vocabulary (RDF) + This is the RDF Schema for the RDF vocabulary terms in the RDF Namespace, defined in RDF 1.1 Concepts. + + + + + + + HTML + The datatype of RDF literals storing fragments of HTML content + + + + + + + langString + The datatype of language-tagged string values + + + + + + + PlainLiteral + The class of plain (i.e. untyped) literal values, as used in RIF and OWL 2 + + + + + + type + The subject is an instance of a class. + + + + + + + Property + The class of RDF properties. + + + + + + Statement + + The class of RDF statements. + + + + + subject + The subject of the subject RDF statement. + + + + + + + predicate + The predicate of the subject RDF statement. + + + + + + + object + The object of the subject RDF statement. + + + + + + + Bag + The class of unordered containers. + + + + + + Seq + The class of ordered containers. + + + + + + Alt + The class of containers of alternatives. + + + + + + value + Idiomatic property used for structured values. + + + + + + + + + List + The class of RDF Lists. + + + + + + nil + The empty list, with no items in it. If the rest of a list is nil then the list has no more items in it. + + + + + first + The first item in the subject RDF list. + + + + + + + rest + The rest of the subject RDF list after the first item. + + + + + + + + XMLLiteral + The datatype of XML literal values. + + + + + + + + diff --git a/tests/Trinity.Tests.Stardog/bin/Debug/netstandard2.0/Ontologies/rdfs.n3 b/tests/Trinity.Tests.Stardog/bin/Debug/netstandard2.0/Ontologies/rdfs.n3 new file mode 100644 index 0000000..a5b8eac --- /dev/null +++ b/tests/Trinity.Tests.Stardog/bin/Debug/netstandard2.0/Ontologies/rdfs.n3 @@ -0,0 +1,109 @@ +@prefix rdf: . +@prefix rdfs: . +@prefix owl: . +@prefix dc: . + + a owl:Ontology ; + dc:title "The RDF Schema vocabulary (RDFS)" . + +rdfs:Resource a rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:label "Resource" ; + rdfs:comment "The class resource, everything." . + +rdfs:Class a rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:label "Class" ; + rdfs:comment "The class of classes." ; + rdfs:subClassOf rdfs:Resource . + +rdfs:subClassOf a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:label "subClassOf" ; + rdfs:comment "The subject is a subclass of a class." ; + rdfs:range rdfs:Class ; + rdfs:domain rdfs:Class . + +rdfs:subPropertyOf a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:label "subPropertyOf" ; + rdfs:comment "The subject is a subproperty of a property." ; + rdfs:range rdf:Property ; + rdfs:domain rdf:Property . + +rdfs:comment a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:label "comment" ; + rdfs:comment "A description of the subject resource." ; + rdfs:domain rdfs:Resource ; + rdfs:range rdfs:Literal . + +rdfs:label a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:label "label" ; + rdfs:comment "A human-readable name for the subject." ; + rdfs:domain rdfs:Resource ; + rdfs:range rdfs:Literal . + +rdfs:domain a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:label "domain" ; + rdfs:comment "A domain of the subject property." ; + rdfs:range rdfs:Class ; + rdfs:domain rdf:Property . + +rdfs:range a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:label "range" ; + rdfs:comment "A range of the subject property." ; + rdfs:range rdfs:Class ; + rdfs:domain rdf:Property . + +rdfs:seeAlso a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:label "seeAlso" ; + rdfs:comment "Further information about the subject resource." ; + rdfs:range rdfs:Resource ; + rdfs:domain rdfs:Resource . + +rdfs:isDefinedBy a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:subPropertyOf rdfs:seeAlso ; + rdfs:label "isDefinedBy" ; + rdfs:comment "The defininition of the subject resource." ; + rdfs:range rdfs:Resource ; + rdfs:domain rdfs:Resource . + +rdfs:Literal a rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:label "Literal" ; + rdfs:comment "The class of literal values, eg. textual strings and integers." ; + rdfs:subClassOf rdfs:Resource . + +rdfs:Container a rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:label "Container" ; + rdfs:subClassOf rdfs:Resource ; + rdfs:comment "The class of RDF containers." . + +rdfs:ContainerMembershipProperty a rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:label "ContainerMembershipProperty" ; + rdfs:comment """The class of container membership properties, rdf:_1, rdf:_2, ..., + all of which are sub-properties of 'member'.""" ; + rdfs:subClassOf rdf:Property . + +rdfs:member a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:label "member" ; + rdfs:comment "A member of the subject resource." ; + rdfs:domain rdfs:Resource ; + rdfs:range rdfs:Resource . + +rdfs:Datatype a rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:label "Datatype" ; + rdfs:comment "The class of RDF datatypes." ; + rdfs:subClassOf rdfs:Class . + + rdfs:seeAlso . diff --git a/tests/Trinity.Tests.Stardog/bin/Debug/netstandard2.0/Ontologies/space test ontology.ttl b/tests/Trinity.Tests.Stardog/bin/Debug/netstandard2.0/Ontologies/space test ontology.ttl new file mode 100644 index 0000000..e9f6944 --- /dev/null +++ b/tests/Trinity.Tests.Stardog/bin/Debug/netstandard2.0/Ontologies/space test ontology.ttl @@ -0,0 +1,13 @@ +@prefix rdf: . +@prefix owl: . +@prefix rdfs: . +@prefix myo: . + +myo: +rdfs:label "my ontology". + +myo:Class a rdfs:Class ; +rdfs:label "MyClass" . + +myo:Property a rdf:Property ; +rdfs:label "MyProperty" . \ No newline at end of file diff --git a/tests/Trinity.Tests.Stardog/bin/Debug/netstandard2.0/Semiodesk.Trinity.Tests.exe.config b/tests/Trinity.Tests.Stardog/bin/Debug/netstandard2.0/Semiodesk.Trinity.Tests.exe.config new file mode 100644 index 0000000..92d10a9 --- /dev/null +++ b/tests/Trinity.Tests.Stardog/bin/Debug/netstandard2.0/Semiodesk.Trinity.Tests.exe.config @@ -0,0 +1,62 @@ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/Trinity.Tests.Stardog/bin/Debug/netstandard2.0/Semiodesk.Trinity.xml b/tests/Trinity.Tests.Stardog/bin/Debug/netstandard2.0/Semiodesk.Trinity.xml new file mode 100644 index 0000000..01b68fe --- /dev/null +++ b/tests/Trinity.Tests.Stardog/bin/Debug/netstandard2.0/Semiodesk.Trinity.xml @@ -0,0 +1,5901 @@ + + + + Semiodesk.Trinity + + + + + Marks the property as NotifyingProperty. + + + + + Decorate a class with this attribute to mark it as mapping for an RDF class of the given type. + + + + + The Uri of the type. + + + + + Constructor + + The uri of the RDF class for this mapping. + + + + Decorate a property with this attribute to mark it as mapped RDF property with the given type. + + + + + Uri of the the RDF property + + + + + Flag determining if property is language invariant. Only valid for string or string collections. + + + + + Constructor + + There uri of the rdf property for this mapping. + The mapping ignores the language setting and is always non-localized. Only valid if type or generic type is string or string collection. + + + + The class of resources that are RDF classes. + + + + + Constructor + + + + + Constrctor + + + + + Constrctor + + + + + Derived VirtualizatingCollection, performing loading asychronously. + + The type of items in the collection + + + + Gets the synchronization context used for UI-related operations. This is obtained as + the current SynchronizationContext when the AsyncVirtualizingCollection is created. + + The synchronization context. + + + + Gets or sets a value indicating whether the collection is loading. + + + true if this collection is loading; otherwise, false. + + + + + Initializes a new instance of the class. + + The items provider. + + + + Initializes a new instance of the class. + + The items provider. + Size of the page. + + + + Initializes a new instance of the class. + + The items provider. + Size of the page. + The page timeout. + + + + Asynchronously loads the count of items. + + + + + Performed on background thread. + + None required. + + + + Performed on UI-thread after LoadCountWork. + + Number of items returned. + + + + Asynchronously loads the page. + + The index. + + + + Performed on background thread. + + Index of the page to load. + + + + Performed on UI-thread after LoadPageWork. + + object[] { int pageIndex, IList(T) page } + + + + The event that gets notified if the collection gets changed. + + + + + The event that gets notified if a property has changed. + + + + + An generic asynchrous virtualizing collection for sparql queries. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + A generic items provider collection. + + + + + + Number of element in the provider. + + + + + + Enumerator of the items. + + + + + + + + A generic virtualizing collection. + + + + + + The page size contains the number of elements per page. + + + + + The time after which a page can be removed. + + + + + The page size contains the number of elements per page. + + + + + Timeout in ms. If the page has not been touched it can be removed with CleanUpPages. + + + + + Number of elements in the list. + + + + + Gets an object that can be used to synchronize access to the . + + + + An object that can be used to synchronize access to the . + + + + + Gets a value indicating whether access to the is synchronized (thread safe). + + + Always false. + + + + + Gets a value indicating whether the is read-only. + + + Always true. + + + + + Gets a value indicating whether the has a fixed size. + + + Always false. + + + + + Access an element at a certain index. + + + + + + + Initializes a new instance of the class. + + Items provider + Size of the page. + The page timeout. + + + + Initializes a new instance of the class. + + The items provider. + Size of the page. + + + + Initializes a new instance of the class. + + + + + Returns the enumerator of the collection + + + + + + The list is read-only, not supported. + + + + + + The list is read-only, not supported. + + + + + + The list is read-only, not supported. + + + + + Returns the index of a certain element. + + + + + + + The list is read-only, not supported. + + + + + + + The list is read-only, not supported. + + + + + + + The list is read-only, not supported. + + + + + + The list is read-only, not supported. + + + + + + The list is read-only, not supported. + + + + + + + The list is read-only, not supported. + + + + + + + The list is read-only, not supported. + + + + + + + Removes pages that have not been touched recently. The timeout can be configured with the PageTimeout. + + + + + Load page with the given index. + + + + + + Sets the given page to the given index. + + + + + + + Load the page with the given index. + + + + + + Loads the count of the collection. + + + + + Gets the page from the item provider. + + + + + + + Gets the element count from the item provider. + + + + + + The item provider for sparql queries. + + + + + + Constructor for the SparqlQueryItemsProvider. + + The model on which the query should be executed. + The query that should be executed. + Modifier if inferncing should be enabled. Default is true + + + + Number of elements in the result. + + + + + + Enumerator of the items. Should be narrowed with offset and limit. + + Offset of the element where to start. + Number of elements. + + + + + A virtualizing collection for sparql query results + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The model to query. + The query. + Size of the page. + Using inferencing + + + + Initializes a new instance of the class. + + + + + The FileSource represents the path of the ontology on the disk. + + + + + This is the string containing the path. + + + + + The ontology configuration section. + + + + + The uri of the ontology as string. + + + + + Wrapper for the uri of the ontology as Uri. + + + + + The prefix of the ontology. + + + + + The timestamp when the ontology was first introduced in the project. + + + + + Version of the ontology. + + + + + The location of the ontology file in the web. + + + + + The location of the ontology file on the disk. + + + + + Serialization of th ontology. + + + + + + Hashcode of the ontology. + + + + + + Wrapper for the local path of the ontology. + + + + + Location of the ontology in the web. + + + + + The url of the ontology in the web. + + + + + The section containing all ontologies. + + + + + The list of all ontologies + + + + + The namespace the ontologies should be generated to. + + + + + The general store configuration section. + + + + + The store type this configuration belongs to. + + + + + The content of the store configuration. Will be handled by the store implementation. + + + + + The store section of the configuration. + + + + + The list of the store configurations. + + + + + The general configuration section. + + + + + The ontology section. + + + + + The store section. + + + + + Wrapper for the namespace for this project. + + + + + Wrapper for an easier ontology access. + + + + + + Wrapper for the store configurations. + + + + + + Loads Trinity RDF settings from a XML configuration file. + + + + + Exposes settings for Trinity RDF projects. + + + + + Get the default namespace for generated C# classes. + + + + + Get the ontology settings for the current project. + + An enumeration of ontology settings. + + + + Get the triple store settings for the current project. + + An enumeration of triple store settings. + + + + Exposes ontology settings for a Trinity RDF project. + + + + + Get the namespace URI of the ontology. + + + + + Get the default prefix of the ontology. + + + + + Get the location of the ontology source file. + + + + + Exposes triple store settings for Trinity RDF projects. + + + + + Get the triple store type identifier. + + + + + Get store specific XML configuration data. + + + + + A file source of a element + + + + + The location of this file source + + + + + A graph element in the configuration. + + + + + The Uri of the graph element + + + + + A collection containing all graphs in the configuration + + + + + Create a new graph element + + + + + + Gets the key of the given graph element. Uri is used. + + + + + + + The type of the collection + + + + + The name of the element + + + + + The index operator + + + + + + + Get the element by the key + + + + + + + Test if key exists + + + + + + + Get enumerator of collection + + + + + + A ontology element + + + + + Prefix of this ontology. + + + + + URI of this ontology. + + + + + String representation of the URI. + + + + + The key of the element. + + + + + The location of the ontology file. + + + + + The uri of the metadata graph, only needed for TriG serialisations. + + + + + The string representation of the metadata graph URI. + + + + + String representation of this element. + + + + + + Overwritten hashcode. + + + + + + Get the location of the ontology file source. + + + + + A collection of ontology settings. + + + + + Create a new ontology configuration element. + + A new configuration element. + + + + Get the key associated with a configuration element. + + + URI of the configuration element. + + + + Get the configuration element collection type. + + + + + XML element tag name. + + + + + Gets the configuration element at the specified index location. + + The index location of the System.Configuration.ConfigurationElement to return. + The System.Configuration.ConfigurationElement at the specified index. + + + + Gets the configuration element with the specified identifier. + + The identifier of the System.Configuration.ConfigurationElement to return. + The System.Configuration.ConfigurationElement at the specified index. + + + + Indicates if an element with the given key exists in this collection. + + The identifier to be checked. + true if an element with the given key exists, false otherwise. + + + + Get an enumerator for iterating over the items in this collection. + + An enumerator. + + + + A ruleset element + + + + + Gets or sets the URI of the rule set. + + + + + Gat a collection of graphs associated with this rule set. + + + + + Collection of rule sets. + + + + + Create a new rule set element. + + + + + + Gets the key (the uri) of a RuleSet element. + + + + + + + The collection type. + + + + + Contains the name of the element. + + + + + The index operator. + + + + + + + Index operator with key name. + + The key of the ruleset. + + + + + Can be used to test if the key exists. + + + + + + + Enumerator for the collection. + + + + + + Constains Virtuoso specific settings. + + + + + A collection of inference rule sets. + + + + + Get the triple store type identifier. + + + + + Get store specific XML configuration data. + + + + + Constains the settings for the Semiodesk.Trinity framework. + + + + + Namespace of the generated ontology file. + + + + + Collection of ontology settings. + + + + + Virtuoso specific triple store settings. + + + + + Get the ontology settings for the current project. + + An enumeration of ontology settings. + + + + Get the triple store settings for the current project. + + An enumeration of triple store settings. + + + + This exception will be thrown if the store rejects the query as invalid. + + + + + Contains the offending query + + + + + Create a new exception without information. + + + + + Create a new exception with an error string. + + Details about the issue. + + + + Create a new exception with an error string and an inner exception. + + Details about the issue. + The exception that propmted the query failure. + The offending query + + + + This exception will be thrown when trying to access query result methods + for unsupported SPARQL query forms (i.e. trying to get bindings from an ASK query). + + + + + Contains the offending query. + + + + + Create a new exception with an error string. + + SPARQL query type. + + + + Represents error when one or more resources you tried to access was locked. + + + + + Create a new instance of the ResourceLockedException class. + + Inner exception. + + + + Represents error when a resource could not be retrieved. + + + The exception is derived from ArgumentException to ensure backwards compatibility. + + + + + Create a new instance of the ResourceNotFoundException class. + + URI of the resource. + + + + Represents errors when a suitable triple store adapter could not be found. + + + + + Create a new instance of the StoreProviderMissingException class. + + Error message. + + + + Create a new instance of the StoreProviderMissingException class. + + Error message. + Inner exception. + + + + Extension to FileSystemInfo concerting UriRef handling + + + + + Create a UriRef from a FileSystemInfo + + + + + + + Collection of string extension related to Uris + + + + + Create a UriRef from this string. + + + + + + + Create a UriRef from this string with a given kind + + + + + + Extension of Uri class concering UriRef handling. + + + + + Create a UriRef from this Uri. + + + + + + + The datatype of the the mapped property + + + + + If the datatype is a collection, this contains the generic type. + + + + + True if the property is mapped to a collection. + + + + + The property that should be mapped. + + + + + The name of the mapped property. + + + + + True if the value has not been set. + + + + + Language of the value + + + + + The mapping ignores the language setting and is always non-localized. Only valid if type or generic type is string or string collection. + + + + + Method to test if a type is compatible. In case of collection, the containing type is tested for compatibility. + + The type to test. + True if the type is compatible + + + + Gets the value or values mapped to this property. + + + + + + This method is meant to be called from the non-mapped interface. It replaces the current value if + it is mapped to one value, adds it if the property is mapped to a list. + + + + + + Deletes the containing value and sets the state to unset. In case of a collection, it tries to remove the value from it. + + + + + + Clones the mapping of another resource. + + + + + + Clears the mapping and resets it. + + + + + This interface encapsulates the access to the methods of a RDF resource. + + + + + Uniform Resource Identifier (URI). + + + + + Model from which the resource was instantiated. + + + + + Indicates that this resource is not writable, thus Commit() is illegal. + + + + + Set the language of this resource. This will change te mapped strings to this language. + + + + + Indicates if the resources has been disposed. + + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A instance of IResource. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A string literal. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A string literal. + The culture of the string literal. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A string literal. + The language of the string literal. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A 16-bit integer value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A 32-bit integer value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A 64-bit integer value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A 16-bit unsigned integer value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A 32-bit unsigned integer value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A 64-bit unsigned integer value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A single precision float value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A double precision float value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A decimal value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A boolean value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A datetime value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + Arbitrary data in form of a byte array. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + An Uri. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + An IResource instance. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A instance of IResource. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A string literal. + The culture of the string + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A string literal. + The language of the string. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A 16-bit integer value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A 32-bit integer value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A 64-bit integer value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A 16-bit unsigned integer value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A 32-bit unsigned integer value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A 64-bit unsigned integer value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A single precision float value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A double precision float value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A decimal value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A blooean value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A date value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + Arbitrary data in form of a byte array. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + An Uri. + + + + Indicates if the resource has at least one property of the given type. + + + True on success, False otherwise. + + + + Indicates if the resource has a property with the given value. + + + + True on success, False otherwise. + + + + Indicates if the resource has a property with the given translated string value. + + + + + True on success, False otherwise. + + + + Indicates if the resource has a property with the given translated string value. + + + + + True on success, False otherwise. + + + + Enumerates all properties associated with this resource. + + + + + + Enumerates all properties associated with this resource in form + of a tuple mapping properties to their corresponding values. + + Only return values which should be serialized. + + + + + Enumerates all property values associated with this resource. + + + + + + + Gets the value of a uniquely asserted property. + + A RDF property. + + + + + Gets the value of a uniquely asserted property. + + A RDF property. + Specifies a default value that should be returned if no value exists. + + + + + This static class is responsible for discovering mapped classes. + Every assembly that defines mapping classes needs to register them with this service. + + + + + A class containing information about a RDF class mapped to c#. + + + + + The .NET type of the class. + + + + + RDF classes that are mapped to this class. + + + + + Inferenced RDF classes mapped to this class. Currently not used. + + + + + The number of classes that are not sub class of any other class. + + + + + Constructor to create a new MappingClass + + The c# type + The mapped rdf classes. + The rdf base classes. + + + + The list of all registered assemblies. + + + + + The list of all registered mapped classes. + + + + + Adds a collection of mapped classes to the registration. + + + + + + Adds a mapped class to the registration. + + + + + + Add the super classes of a given .NET type to a given list. + + A .NET type. + List where the base types will be added to. + + + + Loads all mapped classes from the assembly calling this method. + + + + + Register ALL THE THINGS!! + from all assemblies currently loaded. + + + + + Load all mapped classes from the given assembly. + + + + + + Returns all types which match the given restrictions. + + List of RDF classes + A c# type in a inheritence tree. Give Resource if you don't know what to do. + Should inferencing be factored in. + + + + The the RDF class of a C# type. + + + + + + + An interface for classes which provide functionality to manage a set of resources. + + + + + Uri of this model. + + + + + True if the model is empty. + + + + + Adds an existing resource to the model and its backing RDF store. The resulting resource supports the use of the Commit() method. + + The resource to be added to the model. + Transaction associated with the action. + The resource which is now connected to the current model. + + + + Adds an existing resource to the model and its backing RDF store. The resulting resource supports the use of the Commit() method. + + The resource to be added to the model. + Transaction associated with this action. + The resource which is now connected to the current model. + + + + Creates a new resource in the model and its backing RDF store. + + The format string from which a globally unique identifier URI should be generated from. + Transaction associated with this action. + An instance of the given object type wrapping the newly created resource. + The newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Creates a new resource in the model and its backing RDF store. + + A Uniform Resource Identifier. + Transaction associated with this action. + The newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Creates a new resource in the model and its backing RDF store. Provides a resource object of the given type. + + Type of the resource object. Must be derived from Resource. + The format string from which a globally unique identifier URI should be generated from. + Transaction associated with this action. + An instance of the given object type wrapping the newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Creates a new resource in the model and its backing RDF store. Provides a resource object of the given type. + + Type of the resource object. Must be derived from Resource. + A Uniform Resource Identifier. + Transaction associated with this action. + An instance of the given object type wrapping the newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Creates a new resource in the model and its backing RDF store. Provides a resource object of the given type. + + The concrete type of the resource. This must be a subclass of resource. + The format of the resulting uri. + Transaction associated with this action. + An instance of the given object type wrapping the newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Creates a new resource in the model and its backing RDF store. Provides a resource object of the given type. + This method can be used to create a resource of a type which was asserted at runtime. + + A Uniform Resource Identifier. + Type of the resource object. Must be derived from Resource. + Transaction associated with this action. + An instance of the given object type wrapping the newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Removes the given resource from the model and its backing RDF store. Note that there is no verification + that the given resource and its stored represenation have identical properties. + + A Uniform Resource Identifier. + The transaction associated with this action. + + + + Removes the given resource from the model and its backing RDF store. Note that there is no verification + that the given resource and its stored represenation have identical properties. + + Resource that is to be removed from the model. + Transaction associated with this action. + + + + Indicates wheter a given resource is part of the model. + + A Uniform Resource Identifier. + Transaction associated with this action. + True if the resource is part of the model, False if not. + + + + Indicates wheter a given resource is part of the model. + + Resource that should be looked up in the model. + Transaction associated with this action. + True if the resource is part of the model, False if not. + + + + Execute a SPARQL query against the model. + + A SparqlQuery object. + Modifier to enable inferencing. Default is false. + Transaction associated with this action. + A SPARQL query result object. + + + + Execute a SparqlUpdate against the model. + + A sparql update object. + Transaction associated with this action. + + + + Retrieves a resource from the model. + + A Uniform Resource Identifier. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. Provides a resource object of the given type. + + A Uniform Resource Identifier. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. + + The instance of IResource to be retrieved. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. Provides a resource object of the given type. + + A Uniform Resource Identifier. + The type the resource should have. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. + + The instance of IResource to be retrieved. + Transaction associated with this action. + A resource with all asserted properties. + + + + Executes a SPARQL query and provides an enumeration of matching resources. + + A SparqlQuery object. + Modifier to enable inferencing. Default is false. + Transaction associated with the action. + An enumeration of resources that match the given query. + + + + Executes a SPARQL query and provides an enumeration of matching resources. + + A SparqlQuery object. + Modifier to enable inferencing. Default is false. + Transaction associated with the action. + An enumeration of resources that match the given query. + + + + Returns a enumeration of all resources that match the given type. + + Modifier to enable inferencing. Default is false. + Transaction associated with the action. + An enumeration of resources that match the given query. + + + + Returns a queryable object that can be used to build LINQ statements. + + + + + + + Executes a SPARQL query and provides an enumeration of matching resources. + + A SparqlQuery object. + Modifier to enable inferencing. Default is false. + Transaction associated with the action. + An enumeration of resources that match the given query. + + + + Imports the contents of a model located by the given URL. The method supports + importing files and other models stored in the local RDF store. + + A uniform resource locator. + The serialization format. + True to update the model, false to replace the data. + True if the contents of the model were imported, False if not. + + + + Imports the contents of a graph serialized in the stream to this model. + + The stream containing the serialization + Format of the serialization + True to update the model, false to replace the data. + True if the contents of the model were imported, False if not. + + + + Serializes the contents of the model and provides a memory stream. + + The file stream to write to. + The serialization format. + A serialization of the models contents. + + + + Updates a resource with it's current state in the model. + + + + + + + Removes all elements from the model. + + + + + Starts a transaction which can be used to group more queries together to be executed as one. + + Isolation level used to lock the database. + A handle to the transaction. + + + + Compares two models by their uris + + + + + Equals + + + + + + + + HashCode + + + + + + + The model group can be used to query over multiple models at once. + + + + + The default model of this group + + + + + A set of resources which represent a logical model for a given application domain. + + + + + The Uniform Resource Identifier which provides a name for the model. + + + + + Indicates if the model contains statements. + + + + + All unampped properties will be ignored for update and thus deleted. + This reduces the amount of data thats get sent to the database but also might remove important data. + Setting this to true essentialy disables the triple API. + + + + + This constructor is intended to be used only be the ModelManager. + + The underlying triple store implementation to be used. + Uniform Resource Identifier of the model. + + + + Removes all elements from the model. + + + + + Adds an existing resource to the model and its backing RDF store. The resulting resource supports the use of the Commit() method. + + The resource to be added to the model. + Transaction associated with the action. + The resource which is now connected to the current model. + + + + Adds an existing resource to the model and its backing RDF store. The resulting resource supports the use of the Commit() method. + + The resource to be added to the model. + Transaction associated with the action. + The resource which is now connected to the current model. + + + + Creates a new resource in the model and its backing RDF store. Provides a resource object of the given type. + + The format of the resulting uri. + Transaction associated with this action. + An instance of the given object type wrapping the newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Creates a new resource in the model and its backing RDF store. + + A Uniform Resource Identifier. + Transaction associated with this action. + The newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Creates a new resource in the model and its backing RDF store. Provides a resource object of the given type. + + Type of the resource object. Must be derived from Resource. + The format of the resulting uri. + Transaction associated with this action. + An instance of the given object type wrapping the newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Creates a new resource in the model and its backing RDF store. Provides a resource object of the given type. + + Type of the resource object. Must be derived from Resource. + A Uniform Resource Identifier. + Transaction associated with this action. + An instance of the given object type wrapping the newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Creates a new resource in the model and its backing RDF store. Provides a resource object of the given type. + + Type of the resource object. Must be derived from Resource. + The format of the resulting uri. + Transaction associated with this action. + An instance of the given object type wrapping the newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Creates a new resource in the model and its backing RDF store. Provides a resource object of the given type. + This method can be used to create a resource of a type which was asserted at runtime. + + A Uniform Resource Identifier. + Type of the resource object. Must be derived from Resource. + Transaction associated with this action. + An instance of the given object type wrapping the newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Removes the given resource from the model and its backing RDF store. Note that there is no verification + that the given resource and its stored representation have identical properties. + + A Uniform Resource Identifier. + Transaction associated with this action. + + + + Removes the given resource from the model and its backing RDF store. Note that there is no verification + that the given resource and its stored representation have identical properties. + + A resource object. + Transaction associated with this action. + + + + Updates the properties of a resource in the backing RDF store. + + Resource that is to be updated in the backing store. + Transaction associated with this action. + + + + Indicates wheter a given resource is part of the model. + + A Uniform Resource Identifier. + Transaction associated with this action. + True if the resource is part of the model, False if not. + + + + Indicates wheter a given resource is part of the model. + + A resource object. + Transaction associated with this action. + True if the resource is part of the model, False if not. + + + + Execute a SPARQL Query. + + A SparqlQuery object. + Indicate that this query should work with enabled inferencing. + Transaction associated with this action. + A SparqlQueryResults object in any case. + + + + Execute a SPARQL Update. + + A SparqlUpdate object. + Transaction associated with this action. + + + + Retrieves a resource from the model. + + A Uniform Resource Identifier. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. + + The instance of IResource to be retrieved. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. Provides a resource object of the given type. + + A Uniform Resource Identifier. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. Provides a resource object of the given type. + + The resource that should be retrieved. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. Provides a resource object of the given type. + This method can be used for runtime asserted types. + + A Uniform Resource Identifier. + Type of the resource object. Must be derived from Resource. + Transaction associated with this action. + An instance of the given resource object type, Null otherwise. + + + + Executes a SPARQL query and provides an enumeration of matching resources. + + The SparqlQuery object that should be executed. + Indicate that this query should work with enabled inferencing. + transaction associated with this action. + An enumeration of resources that match the given query. + + + + Executes a SPARQL query and provides an enumeration of matching resources. + Provides a resource object of the given type. + + The SparqlQuery object that should be executed. + Indicate that this query should work with enabled inferencing. + transaction associated with this action. + An enumeration of resources that match the given query. + + + + Returns a enumeration of all resources that match the given type. + + Indicate that this query should work with enabled inferencing. + transaction associated with this action. + An enumeration of resources that match the given query. + + + + TODO + + + + + + + Executes a SPARQL-select query and provides a list of binding sets. This method + implements transparent type marshalling and delivers the bound variables in C# + native data types. + + A SPARQL-select query which results in a set of bound variables. + Indicate that this query should work with enabled inferencing. + Transaction associated with this action. + An enumeration of bound variables that match the given query. + + + + Exports the contents of the model and provides a memory stream. + + File stream to write to. + The serialization format. + A serialization of the models contents. + + + + Imports the contents of a model located by the given URL. The method supports + importing files and other models stored in the local RDF store. The location + of the model is determined by the URI scheme. + + A uniform resource locator. + Serialization format + Pass false if you want to overwrite existing data. True if you want to keep the data and add the new entries. + True if the contents of the model were imported, False if not. + + + + Reads model contents from a stream. The method supports importing files and other models stored in the local RDF store. + + A stream. + Serialization format + Pass false if you want to overwrite existing data. True if you want to keep the data and add the new entries. + True if the contents of the model were imported, False if not. + + + + Starts a transaction which can be used to group more queries together to be executed as one. + + Isolation level used to lock the database. + A handle to the transaction. + + + + Implementation of the IModelGroup interface. + + + + + The default model of this group. + + + + + Uri of the model group is null. + + + + + Tests if all contained models are empty. + + + + + Create a new model group from a store and a collection of models + + A store + A collection of models belonging to that store. + + + + Create a new model group from a store and a collection of models + + A store + A set of models belonging to that store. + + + + Not supported. ModelGroups are read-only. + + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + Not supported. ModelGroups are read-only. + + + + + Not supported. ModelGroups are read-only. + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + + + Indicates wheter a given resource is part of the model. + + A Uniform Resource Identifier. + Transaction associated with this action. + True if the resource is part of the model, False if not. + + + + Indicates wheter a given resource is part of the model. + + Resource that should be looked up in the model. + Transaction associated with this action. + True if the resource is part of the model, False if not. + + + + Execute a SPARQL query against the model. + + A SparqlQuery object. + Modifier to enable inferencing. Default is false. + Transaction associated with this action. + A SPARQL query result object. + + + + Retrieves a resource from the model. + + A Uniform Resource Identifier. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. Provides a resource object of the given type. + + The instance of IResource to be retrieved. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. + + A Uniform Resource Identifier. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. Provides a resource object of the given type. + + The instance of IResource that is to be retrieved. + Transaction associated with this action. + The type of the resource. + A resource with all asserted properties. + + + + Retrieves a resource from the model. + + The uri of the resource that is to be retrieved. + The type the resource should have. + Transaction associated with this action. + A resource with all asserted properties. + + + + Executes a SPARQL query and provides an enumeration of matching resources. + + A SparqlQuery object. + Modifier to enable inferencing. Default is false. + Transaction associated with the action. + An enumeration of resources that match the given query. + + + + Executes a SPARQL query and provides an enumeration of matching resources. + + A SparqlQuery object. + Modifier to enable inferencing. Default is false. + Transaction associated with the action. + An enumeration of resources that match the given query. + + + + Returns a enumeration of all resources that match the given type. + + Modifier to enable inferencing. Default is false. + Transaction associated with the action. + An enumeration of resources that match the given query. + + + + TODO + + + + + + + Executes a SPARQL query and provides an enumeration of matching resources. + + A SparqlQuery object. + Modifier to enable inferencing. Default is false. + Transaction associated with the action. + An enumeration of resources that match the given query. + + + + Serializes the contents of the model and provides a memory stream. + + The file stream to write to. + The serialization format. + A serialization of the models contents. + + + + Imports the contents of a graph serialized in the stream to this model. + + The stream containing the serialization + Format of the serialization + True to update the model, false to replace the data. + True if the contents of the model were imported, False if not. + + + + Add another model to the model group. + + The model to add + true if the element is added to the model group false if the element is already present + + + + Removes all elements in the specified collection from the model group. + + The collection of models to remove. + + + + Modifies the model group to contain only elements that are present in the current group and the specified collection. + + The collection to compare. + + + + Determines whether the model group is a subset of the given collection. + + The collection to compare. + true if the model group is a subset; otherwise, false. + + + + Determines whether the model group is a superset of the given collection. + + The collection to compare + true if the model group is a superset; otherwise, false. + + + + Determines whether the model group is a subset of the given collection. + + The collection to compare. + true if the model group is a subset; otherwise, false. + + + + Determines whether the model group is a superset of the given collection. + + The collection to compare. + >true if the model group is a superset; otherwise, false. + + + + Determines wether the model group and the given collection share common models. + + The collection to compare. + true if the model group shares common models; otherwise, false. + + + + Determines wether the model group and the given collection contain the same elements. + + The collection to compare. + true if the collections is equal; otherwise, false. + + + + Modifies the mode group to contain only elements either present in that object or the given collection, but not both. + + The collection to compare. + + + + Modifies the mode group to contain both elements present in that object and the given collection. + + The collection to compare. + + + + Determines if the model group contains the given model. + + The model to locate. + true if the model exists in the group; otherwise, false. + + + + Copies the given models in the group starting at the specified index. + + The models to copy. + The array index + + + + Returns the number of models in the group. + + + + + Returns if the group is read only. + + + + + Removes a model from the group. + + + + + + + Enumerator of the models + + + + + + Enumerator of the models + + + + + + Abstract class which marks subclasses as ontologies. Needed for automatic discovery. + + + + + This static class contains a mapping of all properties and classes to its uris for discovery of the proper object and its attributes. + For future reference: look into PreApplicationStartMethodAttribute Class or ModuleInitializer + + + + + All registered RDF ontology prefixes in the current application. + + + + + All registered RDF properties in the current application. + + + + + All registered RDF classes in the current application. + + + + + Register a namespace with a prefix. + + A namespace prefix. + A uniform resource identifier. + + + + Register an assembly to search for RDF ontologies. + + + + + + Register the calling assembly to search for RDF ontologies. + + + + + Register the concepts from a given set of ontologies. + + An enumeration of ontologies. + + + + Returns a a property with the given Uri. Creates a new one if it doesn't exist. + + + + + + + Returns a a property with the given string. Creates a new one if it doesn't exist. + + + + + + + Objects of this class represent RDF properties. + + + + + Constructor taking a Uri parameter + + Uri of the property + + + + Constructor taking a UriRef parameter + + Uri of the property + + + + Determines wheter the URIs of the compared objects are equal. + + The object to be compared. + true if the URIs of the compared objects are equal, false otherwise. + + + + Returns the hash code of the objects URI. + + A hash code string. + + + + This class does the heavy lifting of the property mapping mechanism. It stores the value and acts as intermediary for the resource. + + + + + + The value of the mapped property. + + + + + The datatype of the the mapped property. + + + + + The datatype of the the mapped property. + + + + + If the datatype is a collection, this contains the generic type. + + + + + If the datatype is a collection, this contains the generic type. + + + + + True if the property is mapped to a collection. + + + + + True if the property is mapped to a collection. + + + + + True if the value has not been set. + + + + + True if the value has not been set. + + + + + Language of the value. + + + + + Gets the mapped RDF property. + + + + + Gets the URI of the mapped RDF property. + + + + + Gets the name of the mapped .NET property. + + + + + Only valid if type or generic type is string. The mapping ignores the language setting and is always non-localized. + + + + + Creates a new property mapping. + + Name of the property in the class + The RDF property that should be mapped + This parameter is only valid if the type is string. Tells the mapping that the values should be treated as non-localized literals. + + + + Creates a new property mapping. + + Name of the property in the class + The RDF property that should be mapped + The default value used to initialize this property + This parameter is only valid if the type is string. Tells the mapping that the values should be treated as non-localized literals. + + + + Creates a new property mapping. + + Name of the property in the class + The URI of the RDF property that should be mapped + This parameter is only valid if the type is string. Tells the mapping that the values should be treated as non-localized literals. + + + + Creates a new property mapping. + + Name of the property in the class + The URI of the RDF property that should be mapped + The default value used to initialize this property + This parameter is only valid if the type is string. Tells the mapping that the values should be treated as non-localized literals. + + + + Sets the property value. + + A value. + + + + Returns the property value. + + The value, if any. + + + + Sets a single literal value or adds a value to a property mapped to a value collection. + + + This method is meant to be called from the non-mapped interface. It replaces the current value if + it is mapped to one value, adds it if the property is mapped to a list. + + The value. + + + + Deletes the containing value and sets the state to unset. In case of a collection, it tries to remove the value from it. + + + + + + Gets the value or values mapped to this property. + + + + + + Gets a list of strings as list of tuples containing the values and the language tags. + + + + + + Method to test if a type is compatible. In case of collection, the containing type is tested for compatibility. + + The type to test. + True if the type is compatible + + + + Indicates if the mapped value is a numeric type. + + A .NET type object. + true if the type is numeric, false otherwise. + + + + Indicates if the precision of a numeric target type is greater or equal to a given source type. + + The source type. + The target type. + true if the types are precision compatible, false otherwise. + + + + Clones the mapping of another resource. + + + + + + Clears the mapping and resets it. + + + + + A dictionary of named value bindings which represents a single query solution. + + + + + Exposes a SPARQL query. + + + + + The model on which the query will be run. + + + + + The type of the query. + + + + + Indicates if inference should be enabled. It depends on the underlying store if and how this is used. + + + + + Bind parameters to specified values. + + + + + + + Returns all prefixes that were specified by the query. + + + + + + Enumerates the graphs which are declared in FROM and FROM NAMED directives at the root level. + + An enumeration of URI strings. + + + + Get an array of all variable names that are defined in the root scope of the query. + + An array of avaiable names without the preceding '$' or '?' characters, if any. + + + + Get the root graph pattern. + + A non empty string, on success. + + + + Gets the outermost ORDER BY clause. + + A non empty string if a ORDER BY clause is defined. + + + + Indicates if the query selects variables that are used as subject, predicate and object in a triple pattern. + + true if the query selects triples, false otherwise. + + + + Returns the string representation of the query. + + The SPARQL query string. + + + + Exposes the results of a SPARQL query. + + + + + Number of items in the result set. + + + + + + Enumerate the resource objects in the result. + + + + + + + + Enumerate the resource objects of a given type in the result. + + + + + + + + + Returns the bool value from ASK query forms. + + True on success, False otherwise. + + + + Returns marshalled Resource objects returned from DESCRIBE, CONSTRUCT + or interpretable SELECT query forms. + + An enumeration of Resource objects. + + + + Returns marshalled instances of the given Resource type which were + returned from DESCRIBE, CONSTRUCT or interpretable SELECT query forms. + + The Resource type object. + An enumeration of instances of the given type. + + + + Returns a set of bound values (bindings) returned from SELECT query forms. + + An enumeration of bound solution variables (BindingSet). + + + + Extensions for the ConstantExpression type. + + + + + Convert the expression into a ConstantTerm. + + A constant expression. + A ConstantTerm object. + + + + Convert the expression into a IriExpression. + + A constant expression. + A IriExpression object. + + + + Convert the expression into a LiteralExpression. + + A constant expression. + A LiteralExpression object. + + + + Convert the expression into a numeric expression. + + A constant expression. + A NumericExpression object. + + + + Convert the expression into a node. + + A constant expression. + A Node object. + + + + Indicates if the expression can be evaluated to false. + + A constant expression. + true if the value is either null or false, false otherwise. + + + + Indicate if an expression contains antoher or is equal to it. + + An expression. + Expression to be evaluated. + true if e is equal to the given expression or one of its query sources, false otherwise. + + + + Extensions for the MemberInfo type. + + + + + Gets the first custom attribute of a specified type which is attached to a class member. + + Custom attribute type. + A class member. + A custom attribute object on success, null otherwise. + + + + Get the .NET type of the given class member. + + A class member. + The class member type. + + + + Indicates if the given member is of type Uri or a sub type. + + A class member. + true if the member can be represented by a URI, false otherwise. + + + + Indicates if the given member is a built-in call. + + A class member. + true if the class member is a built-in call, false otherwise. + + + + Extensions for the MethodCall type. + + + + + Indicates if the method call has an argument with a specified value at a specified location. + + A method call expression. + Location of the argument. + Value of the argument. + true if the method call has an argument with the given value, false otherwise. + + + + Indicates if the method call has an argument at a speficied loaction with one of the specified values. + + A method call expression. + Location of the argument. + Values of the argument. + true if the method call has an argument with one of the given values, false otherwise. + + + + Get the value of an argument at the specified location. + + Value type. + A method call expression. + Argument location. + + + + + Get the value of an argument at the specified location. + + Value type. + A method call expression. + Argument location. + Value to be returned if no argument is specified at the given location. + + + + + Extension for the NodeFactory type. + + + + + Create a boolean literal value. + + A node factory. + Value of the literal node. + A new literal node object. + + + + Generates SELECT queries which return binding sets. + + + This class is intended to be used as a root query generator. For generating SELECT queries + for sub-queries, refer to SubSelectQueryGenerator. + + + + + Builds the triples required to access a given member and accociates its value with a variable. + + The member to be accessed. + The object variable associated with the member value. + + + + Builds the triples required to access a given member and accociates its value with a variable. + + The member to be accessed. + The object variable associated with the member value. + + + + Generates a SPARQL query from a LINQ query model by visiting all clauses and invoking + expression implementation using a ExpressionTreeVisitor. + + The result type. + + + + Allows to access query generators and sub query generators in a tree-like fashion. + + + + + Visits all expressions in a query model and handles the query generation. + + + + + Get a variable from an expression that can be used as a subject in triple patterns and represents resources. + + + + + + + A simple SPARQL parser. + + + This class is primarily intended to support a limited range of query + preprocessing tasks such as setting the values of query parameters (@-variables) + as quickly as possible. It does not aim to support the full SPARQL standard syntax. + + + + + We use the list of tokens to generate the query string with bound parameters on demand. + + + + + Type of the last read token. + + + + + URIs of the graphs queried or manipulated by the query. + + + + + Namespace prefixes defined in the query. + + + + + Namespace prefixes referenced in the query. + + + + + Names of the bindable query parameters starting with '@'. + + + + + Bound literal values of the query parameters. + + + + + Token types of the query parameters. + + + + + Creates a new instance of the SparqlPreprocessor class. + + A text reader. + SPARQL syntax level. + + + + Starts analyzing the SPARQL query. + + Trz to add prefix definitions for the namespaces used but not declared in the query. + + + + Gets the next parseable Token from the Input or raises an Error. + + + + + + Add FROM definition to the query. + + URI of the graph. + + + + Add a FROM NAMED definition to the query. + + URI of the graph. + + + + Gets the PREFIX definitions in the query. + + + + + + Set the value for a query parameter which is preceeded by '@'. + + The parameter name including the '@'. + The paramter value. + + + + Return the query with all bound variables. + + Level of the sub graph to be returned (0 := entire query). + + + + + Returns the entire query string. + + + + + + Graph pattern scope of variables defined in a SPARQL query. + + + + + A variable accessible in all levels of the query. + + + + + A locally accessible variable. + + + + + A simple SPAQL Query class. This class aims to ease formulating SPARQL + query strings by automatically setting PREFIX declarations from a given + namespace manager. + + + + + + Cached version of the query string. + + + + + Indicates if a query parameter value has been changed and the cached query string needs to be regenerated. + + + + + The SPARQL query processor used to determine the prefixes and statement variables in the query. + + + + + Names of the globally defined variables without the preceding '?'. + + + + + The default model of the Query, if there is excactly one. + + + + + Get or set the model used for this query. + + + + + The query form as defined in http://www.w3.org/TR/rdf-sparql-query/#QueryForms + + + + + Indicates if the query result should be expanded using run-time inferencing. + + + + + Creates a new SPARQL query. If enabled, the PREFIXES used in any of the query's graph patterns will + be declared in the query header if they are found in the application config. Additionally, the query + may be compacted in order to reduce processing overhead when being used repeatedly in loops. + + The SPARQL query string. + Set to true if the namespace prefixes used in the query should be declared. + + + + Indicates if the query provides a description of one or more resources. + + + + + Set the value for a query parameter which is preceeded by '@'. + + The parameter name including the '@'. + The paramter value. + + + + Enumerates the graphs which are declared in FROM and FROM NAMED directives at the root level. + + An enumeration of URI strings. + + + + Returns all prefixes that were specified by the query. + + + + + + Gets the names of all variables which are defined in the root graph pattern. + + + + + + Gets the entire query as a string. + + + + + + Indicates if the query contains an ORDER BY clause in any of its graph patterns. + + true if the query contains an ORDER BY clause, false otherwise. + + + + Adds a LIMIT <int> clause to the query in order to restrict it to put an upper bound on the number of solutions returned. + + The number of return values. + + + + Adds an Offset <int> clause to the query which causes the solutions generated to start after the specified number of solutions. + + The number of entries to skip. + + + + Returns the query string with generated prefixes and subsituted parameters. + + A valid SPARQL string. + + + + The SPARQL query forms as specified in http://www.w3.org/TR/rdf-sparql-query/#QueryForms + + + + + The SPARQL query type could not be determined. + + + + + The ASK query form. + + + + + The CONSTRUCT query form. + + + + + The DESCRIBE query form. + + + + + The SELECT query form. + + + + + A preprocsesor for SPARQL queries. + + + + + The SPARQL query form, i.e. ASK, DESCRIBE, SELECT, CONSTRUCT. + + + + + Indicates if the query returns triples. + + + + + Variables visible in the query root scope. + + + + + Variables only visible in local scope. + + + + + Indicates if the query has an ORDER BY solution modifier. + + + + + Create a new instance of the SparqlQueryPreprocessor class. + + A text reader. + SPARQL syntax level. + + + + Gets the next token in the query and advance the reader position. + + A SPARQL token. + + + + Adds a LIMIT clause to the query in order to restrict it to put an upper bound on the number of solutions returned. + + The number of return values. + + + + Adds an OFFSET clause to the query which causes the solutions generated to start after the specified number of solutions. + + The number of return values. + + + + Get the entire SPARQL query string. + + A SPARQL query string. + + + + Get the ORDER BY clause. + + A string. + + + + Provides functionality to perform serialization of native .NET types into SPARQL strings. + + + + + Serializes a string and excapes special characters. + + A string literal. + + + + + Serializes a string with a translation + + A string literal. + A language tag. + + + + + Serializes a typed literal. + + A value. + A type URI. + + + + + Serializes a value depdening on its type. + + An object. + + + + + Serializes a DateTime object. + + A date time object. + + + + + Serializes a URI. + + A uniform resource identifier. + + + + + Serializes a resource. + + A resource. + Ignores all unmapped properties for serialization. + + + + + Generate the dataset clause for a given model. + + A model. + + + + + Generate a dataset clause for a model group. + + A model group. + + + + + Generate a dataset clause for an enumeration of models. + + An enumeration of models. + + + + + Serialize a count query for the given SPARQL query. + + The model to be queried. + The query which results should be counted. + + + + + Generate a query which returns the URIs of all resources selected in a given query. + + The model to be queried. + The SPARQL query which provides resources. + Offset solution modifier. + Limit solution modifier. + + + + + Add an offset or limit solution modifier to a given SPARQL query. + + The model to be queried. + The SPARQL query to be executed. + Offset solution modifier. + Limit solution modifier. + + + + + A simple SPARQL Update class. This class aims to ease formulating SPARQL + query strings by automatically setting PREFIX declarations from a given + namespace manager. + + + + + Get or set the model used for this query. + + + + + Get or set the resource being updated. + + + + + The SPARQL processor used to determine the prefixes and statement variables in the query. + + + + + The plain SPARQL update string. + + + + + Create a new SPARQL Update with an optional namespace manager instance which + can be used to declare PREFIX declarations for the namespace abbreviations + used in the update string. + + The u update string. + + + + Set the value for a query parameter which is preceeded by '@'. + + The parameter name including the '@'. + The paramter value. + + + + Returns the query string with generated prefixes and subsituted parameters. + + A valid SPARQL string. + + + + Enumerates all supported RDF serialization formats. + + + + + RDF/XML http://www.w3.org/TR/REC-rdf-syntax/ + + + + + N3 http://www.w3.org/TeamSubmission/n3/ + + + + + NTriples http://www.w3.org/2001/sw/RDFCore/ntriples/ + + + + + NTriples https://www.w3.org/TR/2014/REC-n-quads-20140225/ + + + + + TriG http://www.w3.org/TR/trig/ + + + + + Turtle http://www.w3.org/TR/turtle/ + + + + + JSON + + + + + JSON-LD https://www.w3.org/TR/json-ld/ + + + + + This class repesents a RDF resource. + + + + + The cache for the associated resources, needed to support lazy loading for mapping. + + + + + This dictionary contains the properties and the associated values. + + + + + Contains a list of all properties which implement the INotifyPropertyChanged interface. + + + + + All mappings as discovered by InitialisePropertyMapping. + + + + + Handle to the model. + + + + + Public accessor to the model. + + + + + The uri which represents the resource. + + + + + New resource which have never been committed need to be treated differently. + + + + + Indicates if the resources has been disposed. + + + + + True if the properties of the resources has been committed to the model. + + + + + Indicates this resource is read-only. + + + + + This method provides a mechanism to change writability in subclasses. + + + + + + Set the language of this resource. This will change te mapped strings to this language. + + + + + Private since a Resource cannot be created without a URI. + + + + + Create a new resource with a given Uri. + + + + + + Create a new resource with a given Uri. + + + + + + Create a new resource with a given string. Throws an exception if string is Uri compatible. + + The string converted to a Uri. Throws an exception if not possible. + + + + Create a new instance of the class and copy the properties from another class instance. + + + + + + Destructor + + + + + Sets the model the resource is stored in. + + A model. + + + + Loads and initialises all mapped properties. + + + This method could be re-reimplemented and sped up by the CIL generator. + + + + + Overwrite this method to return the RDF classes of your resource type. + + + + + + Returns the uri with brackets. + + + + + + Determines wheter the URIs of the compared objects are equal. + + The object to be compared. + true if the URIs of the compared objects are equal, false otherwise. + + + + Returns the hash code of the objects URI. + + A hash code string. + + + + Internal method to add the values. This is not public because the value is of type object and thus not typesafe for rdf. + + + + + + + + Add a property with a resource as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a string as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a string and language as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a string and language as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a Int16 as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a Int32 as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a Int64 as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a UInt16 as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a UInt32 as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a UInt64 as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a float as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a double as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a decimal as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a bool as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a DateTime as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a byte array as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with an Uri as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Internal method to remove the values. This is not public because the value is of type object and thus not typesafe for rdf. + + + + + + + Removes a property with a IResource value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a string value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a string value associated with the given language. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a string value associated with the given language. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a Int16 value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a Int32 value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a Int64 value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a UInt16 value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a UInt32 value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a UInt64 value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a float value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a double value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a decimal value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a bool value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a DateTime value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a byte array value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with an Uri value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Internal method to remove all properties. + + + + + Returns true if the resource has any object connected with the specified property. + + The property to be checked. + true if the property is associated, false if not + + + + Returns true if the specified value is connected to this resource with the given property. + + The property to be checked + The value that should be tested + true if the value is associated with the property, false if not + + + + Returns true if the specified string value with the given language is connected to this resource with the given property. + + The property + The string value. + The language the string is in. + + + + + Returns true if the specified string value with the given language is connected to this resource with the given property. + + The property + The string value. + The language the string is in. + + + + + This method lists all combinations of properties and values. + + Only return values which should be serialized. + + + + + Lists all values associated with one property. + This inclues the mapped values as well. + + + + + + + List all available properties. + This includes mapped properties if they have valid values. + + + + + + Return the value for a given property. + + A RDF property. + The value on success, null if the object has no such property. + + + + Return the value for a given property with a predefined default value. + + A RDF property. + Specifies a default value that should be returned if no value exists. + The value on success, the default value if the object has no such property. + + + + Persist changes in the model. + + + + + Reload the resource from the model. + + + + + This method returns if property is mapped. + + Rdf property to be tested. + Type of the mapping. + + + + + This method returns the mapped property of the given rdf property and type. It returns null if this mapping is not available. + + Rdf property to be tested. + Type of the mapping. + + + + + Returns the value from the mapped property. + + + + + + + + Set the mapped value. This also raises the PropertyChanged event. + + + + + + + + Load all cached resources from the mapped property. The values of the mapped property are resolved when this method returns. + + + + + + Register a property name to raise the INotifyProperty signal on rollback. + + Name of a property. + + + + Raises the PropertyChanged event of the object. + + Name of a property. + + + + Update the property mappings with the values in the selected language. + + + + + Dispose this resource. + Does nothing meaningful currently. + + + + + Needed for the implementation of the INotifyPropertyChanged interface. + + + + + Warns the developer if this object does not have + a public property with the specified name. This + method does not exist in a Release build. + + + + + Returns whether an exception is thrown, or if a Debug.Fail() is used + when an invalid property name is passed to the VerifyPropertyName method. + The default value is false, but subclasses used by unit tests might + override this property's getter to return true. + + + + + This method loads the cached Resources for the given MappingProperty from the Storage and returns them. + They are instantiated as the defined type. The cache for this mapping property is emptied. + + Mapping property which should be loaded from cache. + List of formerly cached resources. + + + + Tests if the mapping has cached values. + + + + + + + Tests if the mapping has a certain cached values. + + + + + + + + + + + + + + + Converts resources to and from JSON format. + + + + + Create a new instance of the JsonResourceConverter class. + + A triple store. + + + + Indicates if the given object can be converted. + + An object. + true if the object is of type Resource, false otherwise. + + + + Convert a JSON string into an object. + + A JSON reader. + Returned object type. + The existing value of object being read. + The calling serializer. + + + + + Indicates if the converter can write JSON. + + + + + Write the JSON representation of an object. + + The JSON writer to be used. + The object value. + The JSON serializer to be used. + + + + Settings for the serializing resources to and from JSON format. + + + + + Create a new instance of the JsonResourceSerializerSettings class. + + A triple store. + + + + A store adapter for dotNetRDF. + + + + + Creates a new dotNetRDFStore. + + A list of ontology file paths relative to this assembly. The store will be populated with these ontologies. + + + + Removes model from the store. + + Uri of the model which is to be removed. + + + + Query if the model exists in the store. + OBSOLETE: This method does not list empty models. At the moment you should just call GetModel() and test for IsEmpty() + + Uri of the model which is to be queried. + + + + + Executes a query on the store which does not expect a result. + + The update query + An associated transaction + + + + Executes a SparqlQuery on the store. + + + + + + + + This method queries the dotNetRdf store directly. + + + + + + + Gets a handle to a model in the store. + + Uri of the model. + + + + + Indicates if the store is ready to be queried. + + + + + Lists all models in the store. + + All handles to existing models. + + + + Try parse RDF from a given text reader into the store. + + The text reader to read from. + The graph to store the read triples. + RDF format to be read. + + + + Loads a serialized graph from the given stream into the current store. See allowed formats. + + Stream containing a serialized graph + Uri of the graph in this store + Allowed formats + Pass false if you want to overwrite the existing data. True if you want to add the new data to the existing. + + + + + Loads a serialized graph from the given location into the current store. See allowed formats. + + Uri of the graph in this store + Location + Allowed formats + Pass false if you want to overwrite the existing data. True if you want to add the new data to the existing. + + + + + Writes a serialized graph to the given stream. See allowed formats. + + Stream to which the content should be written. + Uri fo the graph in this store + Allowed formats + + + + + + + + + + + + Creates a model group which allows for queries to be made on multiple models at once. + + + + + + + Creates a model group which allows for queries to be made on multiple models at once. + + + + + + + Closes the store. It is not usable after this call. + + + + + A store provider for dotNetRDF triple store adapters. + + + + + Create a new instance of the dotNetRDFStoreProvider class. + + + + + Create a new triple store with the given settings. + + Triple store setting variables. + + + + + A generic triple provider interface + + + + + Indicates if another triple is available + + + + + Iterates to the next triple + + + + + Subject + + + + + Predicate + + + + + Object + + + + + Number of total triples + + + + + Resets the provider + + + + + Storage that can can connect to Sparql Endpoints + + + + + + + Indicates if the store is ready to be queried. + + + + + Set this property to log the SPARQL queries which are executed on this store. + For example, to log to the console, set this property to System.Console.Write(System.String). + + + + + A store adapter for SPARQL protocol endpoints. + + + + + Create a new instance of the SparqlEndpointStoreProvider. + + + + + Create a new triple store with a specified configuration. + + Triple store specific configuration variables. + + + + + Handles query results for Stardog triple stores. + + + + + An RDF handler for Stardog triple stores. + + + + + Handles events when reading an RDF file has started and no triples have been read. + + The source of the event. + + + + Handle events when reading an RDF file has ended and all triples have been read. + + The source of the event. + Indicates if errors have occured while reading the file. + + + + Handle events when during reading of an RDF file a triple has been read. + + The source of the event. + The triple. + + + + RDF result handler for Stardog triple stores. + + + + + Result value of ASK queries. + + + + + Binding result of SELECT queries. + + + + + Create a new instance of the class StardogResultHandler. + + + + + Must be overridden by derived handlers to appropriately handle boolean results. + + Boolean result value. + + + + Must be overridden by derived handlers to appropriately handler SPARQL Results. + + SPARQL bindings. + + + + + Must be overridden by derived handlers to appropriately handle variable declarations. + + Variable name. + + + + + Indicates the result value of ASK queries. + + true or false + + + + A store adapter for Stardog databases. + + + + + Indicates if the store is connected and awaiting queries. + + + + + Create a new instance of the StardogStore class. + + URL of the host to connect to. + Username to be used when connecting. + Password to be used when connecting. + Knowledge base / database identifier. + + + + Adds a new model with the given uri to the storage. + + Uri of the model + Handle to the model + + + + Query if the model exists in the store. + OBSOLETE: This method does not list empty models. At the moment you should just call GetModel() and test for IsEmpty + + Uri of the model which is to be queried. + + + + + Executes a query on the store which does not expect a result. + + SPARQL Update to be executed. + An optional transaction. + + + + Executes a SparqlQuery on the store. + + SPARQL query string to be executed. + An optional transaction. + + + + + Executes a SparqlQuery on the store. + + SPARQL query to be executed. + An optional transaction. + + + + + Gets a handle to a model in the store. + + Model URI. + + + + + Lists all models in the store. + + All handles to existing models. + + + + Loads a serialized graph from the given stream into the current store. See allowed formats. + + Stream containing a serialized graph + Uri of the graph in this store + Allowed formats + Pass false if you want to overwrite the existing data. True if you want to add the new data to the existing. + + + + + Loads a serialized graph from the given location into the current store. See allowed formats. + + Uri of the graph in this store + Location + Allowed formats + Pass false if you want to overwrite the existing data. True if you want to add the new data to the existing. + + + + + Writes a serialized graph to the given stream. See allowed formats. + + Stream to which the content should be written. + Uri fo the graph in this store + Allowed formats + + + + + Removes model from the store. + + Uri of the model which is to be removed. + + + + Starts a transaction. The resulting transaction handle can be used to chain operations together. + + Isolation level of the operations executed in the transaction. + + + + + Invoked when a transaction is completed. + + Object which invoked the event. + Event arguments. + + + + Creates a model group which allows for queries to be made on multiple models at once. + + The list of uris of the models that should be grouped together. + + + + + Creates a model group which allows for queries to be made on multiple models at once. + + The list of model handles that should be grouped together. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Wrapper to support Stardog transactions. At present, nested transaction is NOT supported as the transaction instance is a wrapper around the StardogConnector. + + + + + + + + Instance is active and has not been committed or rolled back. + Once the transaction has been committed or rolled back, it should be disposed of. + + + + + + + + + + + + + + + + + + + + Number of pending "Additions" in the current transaction. + + + + + Number of pending "Removals" in the current transaction. + + + + + Has any pending changes. + + + + + SPARQL converter. Takes a typical Stardog "update" query and decomposes it so that it can be used with the StardogConnector's UpdateGraph method. + Does require a valid Store instance to extract the Removals from the current connection. + + + + + An RDF triple. + + + + + Get or set the subject of the triple. + + + + + Get or set the predicate of the triple. + + + + + Get or set the object of the triple. + + + + + Gets a SPARQL compliant string representation of the triple. + + A string. + + + + An RDF node. + + + + + Get or set the literal node. + + + + + Get or set the literal data type URI. + + + + + Indicates if the node is a literal. + + + + + Get a SPARQL compliant string representation of the node. + + + + + + The last SPARQL query supplied to + + + + + The URI of the Graph Additions and Deletes will be applied to. + + + + + The URI of the entity being updated/saved. + + + + + Triple instances which will be removed + + + + + Triple instances converted from UpdateTriples + + + + + Parsed TripleSet instances which constitute the Additions + + + + + Create an instance of the class StardogUpdateSparqlConvertor. + + + + + Create an instance of the class StardogUpdateSparqlConvertor. + + Startdog store instance. + + + + Given a typical SPARQL update query, it will be parsed and decomposed into the appropriate artifacts suitable to call the StardogConnector UpdateGraph method. + + SPARQL query string. + + + + Returns string based triples, separated by a ' ; ' string. If only two are found, the s value is returned as null since it is assumed that predicate and object are present. + + + + + Peaks ahead to see if there is another node present; indicated by the next non-whitespace of a < or ' character. + + + + + Extensions for the System.String type. + + + + + Extracts the instance'th string between start and end. + If start or end is null/empty then instance is assumed to always be 1 regardless of the value. + + Input string + Start delimiter + End delimiter + Instance of start/end to use. + + + + Extracts the instance'th string between start and end. + If start or end is null/empty then instance is assumed to always be 1 regardless of the value. + + Input string + Start delimiter + End delimiter + Pointer into input where parsing ended. This will be at the point AFTER end was found. + Instance of start/end to use. + + + + Returns the string between the first set of single quotes. Supports escaped single quotes but only \\' + + Input string + Pointer into input where parsing ended. This will be at the point AFTER end was found. + + + + + This class allows the usage of the Stardog store. + An IStore handle can be created by calling + StoreFactory.CreateStore("provider=stardog;host=http://localhost:5820;uid=admin;pw=admin;sid=MyStore"); + + + + + Create a new instance of the class StardogStoreProvider. + + + + + The GetStore method which will be called with the parsed configuration string. + + Store specific configuation parameters. + An instance of IStore. + + + + The IStorage interface describes the methods an RDF Storage has to implement. + + + + + Indicates if the store is ready to be queried. + + + + + Set this property to log the SPARQL queries which are executed on this store. + For example, to log to the console, set this property to System.Console.Write(System.String). + + + + + Adds a new model with the given uri to the storage. + + Uri of the model + Handle to the model + + + + Removes model from the store. + + Uri of the model which is to be removed. + + + + Removes model from the store. + + Handle to the model which is to be removed. + + + + Query if the model exists in the store. + OBSOLETE: This method does not list empty models. At the moment you should just call GetModel() and test for IsEmpty + + Uri of the model which is to be queried. + + + + + Query if the model exists in the store. + OBSOLETE: This method does not list empty models. At the moment you should just call GetModel() and test for IsEmpty + + Handle to the model which is to be queried. + + + + + Gets a handle to a model in the store. + + Uri of the model. + + + + + Lists all models in the store. + + All handles to existing models. + + + + Executes a SparqlQuery on the store. + + + + + + + + Executes a query on the store which does not expect a result. + + + + + + + Starts a transaction. The resulting transaction handle can be used to chain operations together. + + The isolation level of the transaction. + + + + + Creates a model group which allows for queries to be made on multiple models at once. + + The list of uris of the models that should be grouped together. + + + + + Creates a model group which allows for queries to be made on multiple models at once. + + The list of uris of the models that should be grouped together. + + + + + Loads a serialized graph from the given location into the current store. See allowed formats. + + Uri of the graph in this store + Location + Allowed formats + Pass false if you want to overwrite the existing data. True if you want to add the new data to the existing. + + + + + Loads a serialized graph from the given stream into the current store. See allowed formats. + + Stream containing a serialized graph + Uri of the graph in this store + Allowed formats + Pass false if you want to overwrite the existing data. True if you want to add the new data to the existing. + + + + + Writes a serialized graph to the given stream. See allowed formats. + + Stream to which the content should be written. + Uri fo the graph in this store + Allowed formats + + + + + Initializes the store from the configuration. It uses either the provided file or attempts to load from "ontologies.config" located next to the executing assembly. + For legacy reasons it also looks in the app.config file. + If the ontology files are in a different path, this can be supplied as a base path.. + + Path the configuration should be read from. + Path where the ontologies should be searched for. + + + + Initializes the store from the configuration. It uses either the provided file or attempts to load from "ontologies.config" located next to the executing assembly. + For legacy reasons it also looks in the app.config file. + If the ontology files are in a different path, this can be supplied as a base path.. + + Load a specific configuration file. + If given, this function tries to load the ontologies from this folder. + + + + Exposes methods for executing triple store specific methods. + + + + + Load storage specific configurations. + + Triple store instance. + + + + This class encapsulates the functionality of an abstract triple store. Cannot be used directly. + Use StoreFactory to get a concret implementation. + + + + + Indicates if the store is connected and awaiting queries. + + + + + Set this property to log the SPARQL queries which are executed on this store. + For example, to log to the console, set this property to System.Console.Write(System.String). + + + + + Removes model from the store. + + Uri of the model which is to be removed. + + + + Removes model from the store. + + Handle of the model which is to be removed. + + + + Query if the model exists in the store. + OBSOLETE: This method does not list empty models. At the moment you should just call GetModel() and test for IsEmpty + + Uri of the model which is to be queried. + + + + + Query if the model exists in the store. + OBSOLETE: This method does not list empty models. At the moment you should just call GetModel() and test for IsEmpty + + Handle to the model which is to be queried. + + + + + Lists all models in the store. + + All handles to existing models. + + + + Executes a SparqlQuery on the store. + + SPARQL query to be executed. + An optional transaction. + + + + + Executes a query on the store which does not expect a result. + + SPARQL Update to be executed. + An optional transaction. + + + + Starts a transaction. The resulting transaction handle can be used to chain operations together. + + Isolation level of the operations executed in the transaction. + + + + + Loads a serialized graph from the given location into the current store. See allowed formats. + + Uri of the graph in this store + Location + Allowed formats + Pass false if you want to overwrite the existing data. True if you want to add the new data to the existing. + + + + + Loads a serialized graph from the given stream into the current store. See allowed formats. + + Stream containing a serialized graph + Uri of the graph in this store + Allowed formats + Pass false if you want to overwrite the existing data. True if you want to add the new data to the existing. + + + + + Writes a serialized graph to the given stream. See allowed formats. + + Stream to which the content should be written. + Uri fo the graph in this store + Allowed formats + + + + + Initializes the store from the configuration. It uses either the provided file or attempts to load from "ontologies.config" located next to the executing assembly. + For legacy reasons it also looks in the app.config file. + If the ontology files are in a different path, this can be supplied as a base path.. + + Load a specific configuration file. + If given, this function tries to load the ontologies from this folder. + + + + Initializes the store from the configuration. It uses either the provided file or attempts to load from "ontologies.config" located next to the executing assembly. + For legacy reasons it also looks in the app.config file. + If the ontology files are in a different path, this can be supplied as a base path.. + + Path the configuration should be read from. + Path where the ontologies should be searched for. + + + + This method loads the configuration data from the given file. + This can read the old App.config and new ontologies.config files. + + Path to either ontologies.config or App.config file. + + + + + Loads Ontologies defined in the currently loaded config file into the store. + + Handle of the configuration. + Searchpath for the ontologies. + + + + Disposes this store and it's underlying connection. This object cannot be reused after disposing. + + + + + Adds a new model with the given uri to the storage. + + Uri of the model + Handle to the model + + + + Gets a handle to a model in the store. + + Model URI. + + + + + Creates a model group which allows for queries to be made on multiple models at once. + + The list of uris of the models that should be grouped together. + + + + + Creates a model group which allows for queries to be made on multiple models at once. + + The list of model handles that should be grouped together. + + + + + This is the factory for object implementing the IStore interface. + If you want to use your own store, you can load the assembly containing the provider with the LoadProvider method. + + + + + Tests if the given connection string is valid. + + + + + + + Creates a store from the given connection string. + + + + + + + Tries to read a connection string with the given name from the configuration. If no name was given, the first compatible connection string is used. + + + + + + + Creates a temporary in-memory store using the dotNetRDF provider. + + + + + + Create a store suitable for querying SPARQL protocol endpoints. + + URL of the SPARQL endpoint. + + + + + Tries to load a store provider from the given assembly. + + + + + + + Tries to load a store provider from the given assembly file. + + A assembly file info object. + + + + + Tries to load a store provider from the given assembly. + + An assembly. + + + + + This is the abstract store provider class. Implement it if you want to write your own store provider. + + + + + The name of the store. + + + + + All valid configuration options + + + + + The constructor of the store provider + + + + + The GetStore method which will be called with the parsed configuration string. + + Store specific configuation parameters. + An instance of IStore. + + + + This class can be used to load or update ontologies in stores. It provides convinence methods to load directly from the ontologies.config file. + + + + + Create a new instance of the StoreUpdater class. + + The store you want to update. + A directory used as base path. + + + + This method loads the given ontologies into the provided store. + A model will be created for each ontology. If it already exists, it wil be replaced. + + A collection of ontologies to be loaded. + + + + Gets an absolute path from a location relative to the triple store instance. + + A relative path. + + + + + This method can be used to load storage specific configuration. + + + + + + Handle for transaction events. + + Object which raised the event. + Event arguments. + + + + Exposes a repository which supports transactions. + + + + + The isolation level of the transaction. + + + + + Commit the transaction. + + + + + Rolls the transaction back. + + + + + Will be raised if transaction finishes. + + + + + Interface for a transactional object + + + + + Persist any changes to the object. + + + + + Discard any changes to the object. + + + + + This class encapsulates arguments for transaction event. + + + + + Indicates that the transaction finished with a commit. + + + + + Indicates that the transaction finished with a rollback. + + + + + Create a new transaction event object. + + Pass true to indicate that a commit happened. Pass false to indicate that a rollback happend. + + + + This class extends the framework Uri class to also include fragments for + equality testing. + + + + + Creates an UriRef from an Uri + + + + + + Create an UriRef from a string. + + + + + + Creates an UriRef from a string with a given UriKind. + + + + + + + Creates an UriRef from a base uri and a relative uri as string. + + + + + + + Tests the equality of two UriRefs. + + + + + + + Override of GetHashCode which factors the fragment in. + + + + + + Generates a globally unique resource identifier in the Semiodesk namespace: <urn:uuid:{GUID}/> + + A Uniform Resource Identifier. + + + + A Uniform Resource Name (URN). + + + + + Create a new instance of a URN from an identifier. + + Identifier associated with a URN namespace. + + + + Provides functionality for the serialization and deserialization of .NET + objects to XML Schema encoded strings. + + + + + XSD URI vocabulary. + + + + + Maps .NET types to XSD type URIs. + + + + + Maps XSD type URIs to .NET types. + + + + + Maps .NET types to object serialization delegates. + + + + + Maps XSD type URIs to object deserialization delegates. + + + + + Provides the XML Schema type URI for a given .NET type. + + A .NET type object. + A XML Schema type URI. + + + + Indicates if there is a registered XML Schema type URI for the given .NET type. + + A .NET type object. + true if there is a XML schema type, false otherwise. + + + + Provides the XML Schema type URI for a given .NET type. + + A xsd type uri. + A XML Schema type URI. + + + + The object serialization delegate + + + + + + + Serializes an object to an XML Schema encoded string. + + + + + + + Serializes an object forcd to a given type to an XML Schema encoded string. + + + + + + + + Serialize an IResource + + + + + + + Serialize an Uri + + + + + + + Serialize a string + + + + + + + Serialize an array of strings + + + + + + + Serialize a tuple consisting of a string and its associated culture + + + + + + + Serialize a DateTime + + + + + + + Serialize a byte array + + + + + + + Serialize a bool + + + + + + + Serialize an Int16 + + + + + + + Serialize an Int32 + + + + + + + Serialize an Int64 + + + + + + + Serialize an Uint16 + + + + + + + Serialize an Uint32 + + + + + + + Serialize an Uint64 + + + + + + + Serialize a decimal + + + + + + + Serialize a double + + + + + + + Serialize a float + + + + + + + Deserialization delegate, format for deserialization functions. + + + + + + + Deserialize string, nothing to do. + + The string + The string + + + + Deserialize string with given type uri. + + The value as string. + The xsd type. + The value in its correct type. + + + + Deserialize an int16 from a string. + + The serialized int16 + An int16 + + + + Deserialize an int32 from a string. + + The serialized int32 + a int32 value + + + + Deserialize an int64 from a string. + + The serialized int64 + A int64 value + + + + Deserialize an uint6 from a string. + + The serialized int64 + A uint16 value + + + + Deserialize an int32 from a string. + + The serialized int32 + A int32 value + + + + Deserialize an uint64 from a string. + + The serialized uint64 + A uint64 value + + + + Deserialize a bool from a string. + + The serialized bool + A bool value + + + + Deserialize a decimal from a string. + + The serialized decimal + A decimal value + + + + Deserialize a double from a string. + + The serialized double + A double value + + + + Deserialize a single from a string. + + The serialized single + A single value + + + + Deserialize a DateTime from a string. + + The serialized DateTime + A DateTime value + + + + Deserialize a Resource from a string. + + The serialized Resource + A Resource value + + + + Deserialize a uri from a string. + + The serialized uri + A uri value + + + + Deserialize a ByteArray from a string. + + The serialized ByteArray + A ByteArray value + + + + Deserialize a XmlNode from a string. + + The serialized XmlNode + A XmlNode value + + + + Deserialize a LiteralNode from a string. + + The serialized LiteralNode + A LiteralNode value + + + diff --git a/tests/Trinity.Tests.Stardog/bin/Debug/netstandard2.0/Targets/Semiodesk.Trinity.targets b/tests/Trinity.Tests.Stardog/bin/Debug/netstandard2.0/Targets/Semiodesk.Trinity.targets new file mode 100644 index 0000000..9b0ba79 --- /dev/null +++ b/tests/Trinity.Tests.Stardog/bin/Debug/netstandard2.0/Targets/Semiodesk.Trinity.targets @@ -0,0 +1,31 @@ + + + + + + Full + + + + + + + + + + + + $(CoreCompileDependsOn);GenerateOntologyTarget + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/Trinity.Tests.Stardog/bin/Debug/netstandard2.0/Trinity.Tests.Stardog.deps.json b/tests/Trinity.Tests.Stardog/bin/Debug/netstandard2.0/Trinity.Tests.Stardog.deps.json new file mode 100644 index 0000000..d897f15 --- /dev/null +++ b/tests/Trinity.Tests.Stardog/bin/Debug/netstandard2.0/Trinity.Tests.Stardog.deps.json @@ -0,0 +1,1815 @@ +{ + "runtimeTarget": { + "name": ".NETStandard,Version=v2.0/", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETStandard,Version=v2.0": {}, + ".NETStandard,Version=v2.0/": { + "Trinity.Tests.Stardog/1.0.0": { + "dependencies": { + "Docker.DotNet": "3.125.2", + "NETStandard.Library": "2.0.3", + "NUnit": "3.12.0", + "Semiodesk.Trinity": "1.0.0-rc008", + "Semiodesk.Trinity.Tests": "1.0.0" + }, + "runtime": { + "Trinity.Tests.Stardog.dll": {} + } + }, + "AngleSharp/0.9.9.2": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Dynamic.Runtime": "4.0.11", + "System.IO": "4.3.0", + "System.Linq": "4.3.0", + "System.Net.Primitives": "4.3.0", + "System.Net.Requests": "4.3.0", + "System.Reflection": "4.3.0", + "System.Reflection.Extensions": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Text.Encoding.Extensions": "4.3.0", + "System.Text.RegularExpressions": "4.3.0", + "System.Threading": "4.3.0", + "System.Threading.Tasks": "4.3.0" + }, + "runtime": { + "lib/netstandard1.0/AngleSharp.dll": { + "assemblyVersion": "0.9.9.0", + "fileVersion": "0.9.9.0" + } + } + }, + "Docker.DotNet/3.125.2": { + "dependencies": { + "Newtonsoft.Json": "11.0.2", + "System.Buffers": "4.4.0", + "System.ValueTuple": "4.4.0" + }, + "runtime": { + "lib/netstandard2.0/Docker.DotNet.dll": { + "assemblyVersion": "3.125.2.0", + "fileVersion": "3.125.2.0" + } + } + }, + "dotNetRDF/2.2.0": { + "dependencies": { + "AngleSharp": "0.9.9.2", + "HtmlAgilityPack": "1.8.2", + "Microsoft.Extensions.Configuration": "2.0.0", + "Newtonsoft.Json": "11.0.2", + "System.Collections.Specialized": "4.3.0", + "System.ComponentModel.TypeConverter": "4.3.0", + "System.Configuration.ConfigurationManager": "4.4.1", + "System.Globalization.Extensions": "4.3.0", + "System.Net.Requests": "4.3.0", + "System.Reflection.TypeExtensions": "4.4.0", + "System.Threading.Thread": "4.3.0", + "VDS.Common": "1.10.0" + }, + "runtime": { + "lib/netstandard2.0/dotNetRDF.dll": { + "assemblyVersion": "2.2.0.0", + "fileVersion": "2.2.0.0" + } + } + }, + "HtmlAgilityPack/1.8.2": { + "dependencies": { + "System.Net.Http": "4.3.2", + "System.Xml.XPath": "4.3.0", + "System.Xml.XPath.XmlDocument": "4.3.0", + "System.Xml.XmlDocument": "4.3.0" + }, + "runtime": { + "lib/netstandard2.0/HtmlAgilityPack.dll": { + "assemblyVersion": "1.8.2.0", + "fileVersion": "1.8.2.0" + } + } + }, + "Microsoft.Extensions.Configuration/2.0.0": { + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "2.0.0" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Extensions.Configuration.dll": { + "assemblyVersion": "2.0.0.0", + "fileVersion": "2.0.0.17205" + } + } + }, + "Microsoft.Extensions.Configuration.Abstractions/2.0.0": { + "dependencies": { + "Microsoft.Extensions.Primitives": "2.0.0" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Extensions.Configuration.Abstractions.dll": { + "assemblyVersion": "2.0.0.0", + "fileVersion": "2.0.0.17205" + } + } + }, + "Microsoft.Extensions.Primitives/2.0.0": { + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "4.4.0" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Extensions.Primitives.dll": { + "assemblyVersion": "2.0.0.0", + "fileVersion": "2.0.0.17205" + } + } + }, + "Microsoft.NETCore.Platforms/1.1.0": {}, + "Microsoft.NETCore.Targets/1.1.0": {}, + "NETStandard.Library/2.0.3": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0" + } + }, + "Newtonsoft.Json/11.0.2": { + "runtime": { + "lib/netstandard2.0/Newtonsoft.Json.dll": { + "assemblyVersion": "11.0.0.0", + "fileVersion": "11.0.2.21924" + } + } + }, + "NUnit/3.12.0": { + "dependencies": { + "NETStandard.Library": "2.0.3" + }, + "runtime": { + "lib/netstandard2.0/nunit.framework.dll": { + "assemblyVersion": "3.12.0.0", + "fileVersion": "3.12.0.0" + } + } + }, + "Remotion.Linq/2.2.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Linq": "4.3.0", + "System.Linq.Expressions": "4.1.0", + "System.Linq.Queryable": "4.0.1", + "System.ObjectModel": "4.0.12", + "System.Reflection": "4.3.0", + "System.Reflection.Extensions": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0" + }, + "runtime": { + "lib/netstandard1.0/Remotion.Linq.dll": { + "assemblyVersion": "2.2.0.0", + "fileVersion": "2.2.0.30000" + } + } + }, + "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.native.System/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0" + } + }, + "runtime.native.System.Net.Http/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0" + } + }, + "runtime.native.System.Security.Cryptography.Apple/4.3.0": { + "dependencies": { + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0" + } + }, + "runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "dependencies": { + "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" + } + }, + "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple/4.3.0": {}, + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "System.Buffers/4.4.0": { + "runtime": { + "lib/netstandard2.0/System.Buffers.dll": { + "assemblyVersion": "4.0.2.0", + "fileVersion": "4.6.25519.3" + } + } + }, + "System.Collections/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + } + }, + "System.Collections.Concurrent/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Diagnostics.Tracing": "4.3.0", + "System.Globalization": "4.3.0", + "System.Reflection": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0", + "System.Threading.Tasks": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Collections.Concurrent.dll": { + "assemblyVersion": "4.0.13.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Collections.NonGeneric/4.3.0": { + "dependencies": { + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Collections.NonGeneric.dll": { + "assemblyVersion": "4.0.2.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Collections.Specialized/4.3.0": { + "dependencies": { + "System.Collections.NonGeneric": "4.3.0", + "System.Globalization": "4.3.0", + "System.Globalization.Extensions": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Collections.Specialized.dll": { + "assemblyVersion": "4.0.2.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.ComponentModel/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.ComponentModel.dll": { + "assemblyVersion": "4.0.2.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.ComponentModel.Primitives/4.3.0": { + "dependencies": { + "System.ComponentModel": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0" + }, + "runtime": { + "lib/netstandard1.0/System.ComponentModel.Primitives.dll": { + "assemblyVersion": "4.1.1.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.ComponentModel.TypeConverter/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Collections.NonGeneric": "4.3.0", + "System.Collections.Specialized": "4.3.0", + "System.ComponentModel": "4.3.0", + "System.ComponentModel.Primitives": "4.3.0", + "System.Globalization": "4.3.0", + "System.Linq": "4.3.0", + "System.Reflection": "4.3.0", + "System.Reflection.Extensions": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Reflection.TypeExtensions": "4.4.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0" + }, + "runtime": { + "lib/netstandard1.5/System.ComponentModel.TypeConverter.dll": { + "assemblyVersion": "4.1.1.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Composition/1.1.0": { + "dependencies": { + "System.Composition.AttributedModel": "1.1.0", + "System.Composition.Convention": "1.1.0", + "System.Composition.Hosting": "1.1.0", + "System.Composition.Runtime": "1.1.0", + "System.Composition.TypedParts": "1.1.0" + } + }, + "System.Composition.AttributedModel/1.1.0": { + "runtime": { + "lib/netstandard2.0/System.Composition.AttributedModel.dll": { + "assemblyVersion": "1.0.32.0", + "fileVersion": "4.6.25519.3" + } + } + }, + "System.Composition.Convention/1.1.0": { + "dependencies": { + "System.Composition.AttributedModel": "1.1.0" + }, + "runtime": { + "lib/netstandard2.0/System.Composition.Convention.dll": { + "assemblyVersion": "1.0.32.0", + "fileVersion": "4.6.25519.3" + } + } + }, + "System.Composition.Hosting/1.1.0": { + "dependencies": { + "System.Composition.Runtime": "1.1.0" + }, + "runtime": { + "lib/netstandard2.0/System.Composition.Hosting.dll": { + "assemblyVersion": "1.0.32.0", + "fileVersion": "4.6.25519.3" + } + } + }, + "System.Composition.Runtime/1.1.0": { + "runtime": { + "lib/netstandard2.0/System.Composition.Runtime.dll": { + "assemblyVersion": "1.0.32.0", + "fileVersion": "4.6.25519.3" + } + } + }, + "System.Composition.TypedParts/1.1.0": { + "dependencies": { + "System.Composition.AttributedModel": "1.1.0", + "System.Composition.Hosting": "1.1.0", + "System.Composition.Runtime": "1.1.0" + }, + "runtime": { + "lib/netstandard2.0/System.Composition.TypedParts.dll": { + "assemblyVersion": "1.0.32.0", + "fileVersion": "4.6.25519.3" + } + } + }, + "System.Configuration.ConfigurationManager/4.4.1": { + "dependencies": { + "System.Security.Cryptography.ProtectedData": "4.4.0" + }, + "runtime": { + "lib/netstandard2.0/System.Configuration.ConfigurationManager.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "4.6.25921.2" + } + } + }, + "System.Diagnostics.Debug/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + } + }, + "System.Diagnostics.DiagnosticSource/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Tracing": "4.3.0", + "System.Reflection": "4.3.0", + "System.Runtime": "4.3.0", + "System.Threading": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Diagnostics.DiagnosticSource.dll": { + "assemblyVersion": "4.0.1.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Diagnostics.Tracing/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + } + }, + "System.Dynamic.Runtime/4.0.11": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.Linq": "4.3.0", + "System.Linq.Expressions": "4.1.0", + "System.ObjectModel": "4.0.12", + "System.Reflection": "4.3.0", + "System.Reflection.Emit": "4.0.1", + "System.Reflection.Emit.ILGeneration": "4.0.1", + "System.Reflection.Primitives": "4.3.0", + "System.Reflection.TypeExtensions": "4.4.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Dynamic.Runtime.dll": { + "assemblyVersion": "4.0.11.0", + "fileVersion": "1.0.24212.1" + } + } + }, + "System.Globalization/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + } + }, + "System.Globalization.Calendars/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Globalization": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Globalization.Extensions/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "System.Globalization": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.InteropServices": "4.3.0" + } + }, + "System.IO/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading.Tasks": "4.3.0" + } + }, + "System.IO.FileSystem/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.IO": "4.3.0", + "System.IO.FileSystem.Primitives": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading.Tasks": "4.3.0" + } + }, + "System.IO.FileSystem.Primitives/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.IO.FileSystem.Primitives.dll": { + "assemblyVersion": "4.0.2.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Linq/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0" + }, + "runtime": { + "lib/netstandard1.6/System.Linq.dll": { + "assemblyVersion": "4.1.1.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Linq.Expressions/4.1.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Linq": "4.3.0", + "System.ObjectModel": "4.0.12", + "System.Reflection": "4.3.0", + "System.Reflection.Emit": "4.0.1", + "System.Reflection.Emit.ILGeneration": "4.0.1", + "System.Reflection.Emit.Lightweight": "4.0.1", + "System.Reflection.Extensions": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Reflection.TypeExtensions": "4.4.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0" + }, + "runtime": { + "lib/netstandard1.6/System.Linq.Expressions.dll": { + "assemblyVersion": "4.1.0.0", + "fileVersion": "1.0.24212.1" + } + } + }, + "System.Linq.Queryable/4.0.1": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Linq": "4.3.0", + "System.Linq.Expressions": "4.1.0", + "System.Reflection": "4.3.0", + "System.Reflection.Extensions": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Linq.Queryable.dll": { + "assemblyVersion": "4.0.1.0", + "fileVersion": "1.0.24212.1" + } + } + }, + "System.Net.Http/4.3.2": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Diagnostics.DiagnosticSource": "4.3.0", + "System.Diagnostics.Tracing": "4.3.0", + "System.Globalization": "4.3.0", + "System.Globalization.Extensions": "4.3.0", + "System.IO": "4.3.0", + "System.IO.FileSystem": "4.3.0", + "System.Net.Primitives": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.OpenSsl": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Security.Cryptography.X509Certificates": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading": "4.3.0", + "System.Threading.Tasks": "4.3.0", + "runtime.native.System": "4.3.0", + "runtime.native.System.Net.Http": "4.3.0", + "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" + } + }, + "System.Net.Primitives/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0", + "System.Runtime.Handles": "4.3.0" + } + }, + "System.Net.Requests/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Diagnostics.Tracing": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Net.Http": "4.3.2", + "System.Net.Primitives": "4.3.0", + "System.Net.WebHeaderCollection": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Threading": "4.3.0", + "System.Threading.Tasks": "4.3.0" + } + }, + "System.Net.WebHeaderCollection/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Net.WebHeaderCollection.dll": { + "assemblyVersion": "4.0.2.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.ObjectModel/4.0.12": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Threading": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.ObjectModel.dll": { + "assemblyVersion": "4.0.12.0", + "fileVersion": "1.0.24212.1" + } + } + }, + "System.Reflection/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.IO": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Reflection.Emit/4.0.1": { + "dependencies": { + "System.IO": "4.3.0", + "System.Reflection": "4.3.0", + "System.Reflection.Emit.ILGeneration": "4.0.1", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Reflection.Emit.dll": { + "assemblyVersion": "4.0.1.0", + "fileVersion": "1.0.24212.1" + } + } + }, + "System.Reflection.Emit.ILGeneration/4.0.1": { + "dependencies": { + "System.Reflection": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Reflection.Emit.ILGeneration.dll": { + "assemblyVersion": "4.0.1.0", + "fileVersion": "1.0.24212.1" + } + } + }, + "System.Reflection.Emit.Lightweight/4.0.1": { + "dependencies": { + "System.Reflection": "4.3.0", + "System.Reflection.Emit.ILGeneration": "4.0.1", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Reflection.Emit.Lightweight.dll": { + "assemblyVersion": "4.0.1.0", + "fileVersion": "1.0.24212.1" + } + } + }, + "System.Reflection.Extensions/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Reflection": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Reflection.Primitives/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + } + }, + "System.Reflection.TypeExtensions/4.4.0": { + "runtime": { + "lib/netstandard2.0/System.Reflection.TypeExtensions.dll": { + "assemblyVersion": "4.1.2.0", + "fileVersion": "4.6.25519.3" + } + } + }, + "System.Resources.ResourceManager/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Globalization": "4.3.0", + "System.Reflection": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Runtime/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0" + } + }, + "System.Runtime.CompilerServices.Unsafe/4.4.0": { + "runtime": { + "lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll": { + "assemblyVersion": "4.0.3.0", + "fileVersion": "0.0.0.0" + } + } + }, + "System.Runtime.Extensions/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + } + }, + "System.Runtime.Handles/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + } + }, + "System.Runtime.InteropServices/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Reflection": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Handles": "4.3.0" + } + }, + "System.Runtime.Numerics/4.3.0": { + "dependencies": { + "System.Globalization": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Runtime.Numerics.dll": { + "assemblyVersion": "4.0.2.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Security.Cryptography.Algorithms/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "System.Collections": "4.3.0", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Runtime.Numerics": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "runtime.native.System.Security.Cryptography.Apple": "4.3.0", + "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" + } + }, + "System.Security.Cryptography.Cng/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0" + } + }, + "System.Security.Cryptography.Csp/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "System.IO": "4.3.0", + "System.Reflection": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading": "4.3.0" + } + }, + "System.Security.Cryptography.Encoding/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "System.Collections": "4.3.0", + "System.Collections.Concurrent": "4.3.0", + "System.Linq": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" + } + }, + "System.Security.Cryptography.OpenSsl/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Runtime.Numerics": "4.3.0", + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" + }, + "runtime": { + "lib/netstandard1.6/System.Security.Cryptography.OpenSsl.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "1.0.24212.1" + } + } + }, + "System.Security.Cryptography.Primitives/4.3.0": { + "dependencies": { + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Threading": "4.3.0", + "System.Threading.Tasks": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Security.Cryptography.Primitives.dll": { + "assemblyVersion": "4.0.1.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Security.Cryptography.ProtectedData/4.4.0": { + "runtime": { + "lib/netstandard2.0/System.Security.Cryptography.ProtectedData.dll": { + "assemblyVersion": "4.0.2.0", + "fileVersion": "4.6.25519.3" + } + } + }, + "System.Security.Cryptography.X509Certificates/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.Globalization.Calendars": "4.3.0", + "System.IO": "4.3.0", + "System.IO.FileSystem": "4.3.0", + "System.IO.FileSystem.Primitives": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Runtime.Numerics": "4.3.0", + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Cng": "4.3.0", + "System.Security.Cryptography.Csp": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.OpenSsl": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading": "4.3.0", + "runtime.native.System": "4.3.0", + "runtime.native.System.Net.Http": "4.3.0", + "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" + } + }, + "System.Text.Encoding/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + } + }, + "System.Text.Encoding.Extensions/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0", + "System.Text.Encoding": "4.3.0" + } + }, + "System.Text.RegularExpressions/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Globalization": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0" + }, + "runtime": { + "lib/netstandard1.6/System.Text.RegularExpressions.dll": { + "assemblyVersion": "4.1.1.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Threading/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0", + "System.Threading.Tasks": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Threading.dll": { + "assemblyVersion": "4.0.12.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Threading.Tasks/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + } + }, + "System.Threading.Tasks.Extensions/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Runtime": "4.3.0", + "System.Threading.Tasks": "4.3.0" + }, + "runtime": { + "lib/netstandard1.0/System.Threading.Tasks.Extensions.dll": { + "assemblyVersion": "4.1.0.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Threading.Thread/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Threading.Thread.dll": { + "assemblyVersion": "4.0.1.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.ValueTuple/4.4.0": {}, + "System.Xml.ReaderWriter/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.IO.FileSystem": "4.3.0", + "System.IO.FileSystem.Primitives": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Text.Encoding.Extensions": "4.3.0", + "System.Text.RegularExpressions": "4.3.0", + "System.Threading.Tasks": "4.3.0", + "System.Threading.Tasks.Extensions": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Xml.ReaderWriter.dll": { + "assemblyVersion": "4.1.0.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Xml.XmlDocument/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading": "4.3.0", + "System.Xml.ReaderWriter": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Xml.XmlDocument.dll": { + "assemblyVersion": "4.0.2.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Xml.XPath/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0", + "System.Xml.ReaderWriter": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Xml.XPath.dll": { + "assemblyVersion": "4.0.2.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Xml.XPath.XmlDocument/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0", + "System.Xml.ReaderWriter": "4.3.0", + "System.Xml.XPath": "4.3.0", + "System.Xml.XmlDocument": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Xml.XPath.XmlDocument.dll": { + "assemblyVersion": "4.0.2.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "VDS.Common/1.10.0": { + "runtime": { + "lib/netstandard2.0/VDS.Common.dll": { + "assemblyVersion": "1.10.0.0", + "fileVersion": "1.10.0.0" + } + } + }, + "Semiodesk.Trinity/1.0.0-rc008": { + "dependencies": { + "Newtonsoft.Json": "11.0.2", + "Remotion.Linq": "2.2.0", + "System.Composition": "1.1.0", + "dotNetRDF": "2.2.0" + }, + "runtime": { + "Semiodesk.Trinity.dll": {} + } + }, + "Semiodesk.Trinity.Tests/1.0.0": { + "runtime": { + "Semiodesk.Trinity.Tests.exe": {} + } + } + } + }, + "libraries": { + "Trinity.Tests.Stardog/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "AngleSharp/0.9.9.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-yIjaAylBwAuwUTIqE2lzJdM4faJWQKPDK6M8IAJT9BTcloNB46PkgTEcU9m7cBceVvFT75LIlumhz4czvhc5CQ==", + "path": "anglesharp/0.9.9.2", + "hashPath": "anglesharp.0.9.9.2.nupkg.sha512" + }, + "Docker.DotNet/3.125.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Q1HbOwp7l5DNQO4IUOvwVd50cOAIgzmTIt8w7zoZhGefIvDTaGhyEWyvukBAQJFXhn90aEXwDVAXbEyFQpUsGg==", + "path": "docker.dotnet/3.125.2", + "hashPath": "docker.dotnet.3.125.2.nupkg.sha512" + }, + "dotNetRDF/2.2.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-kouMB67EzsE1CwmifEvkwznMTtbNPk2wW/gLq5LP3NzNG+LLu2Y2sBHOTM5dP8IkxjtmAZ5JgfDvur8x8s3cyw==", + "path": "dotnetrdf/2.2.0", + "hashPath": "dotnetrdf.2.2.0.nupkg.sha512" + }, + "HtmlAgilityPack/1.8.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-6eZx+QMxghcaVurr3QSa5FT0P5EgqxZBcalj5LpEEW3X72mKbbAuyaIaNUCifk467R68KgJA6x/W1VnYxBlT0Q==", + "path": "htmlagilitypack/1.8.2", + "hashPath": "htmlagilitypack.1.8.2.nupkg.sha512" + }, + "Microsoft.Extensions.Configuration/2.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-SsI4RqI8EH00+cYO96tbftlh87sNUv1eeyuBU1XZdQkG0RrHAOjWgl7P0FoLeTSMXJpOnfweeOWj2d1/5H3FxA==", + "path": "microsoft.extensions.configuration/2.0.0", + "hashPath": "microsoft.extensions.configuration.2.0.0.nupkg.sha512" + }, + "Microsoft.Extensions.Configuration.Abstractions/2.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-rHFrXqMIvQNq51H8RYTO4IWmDOYh8NUzyqGlh0xHWTP6XYnKk7Ryinys2uDs+Vu88b3AMlM3gBBSs78m6OQpYQ==", + "path": "microsoft.extensions.configuration.abstractions/2.0.0", + "hashPath": "microsoft.extensions.configuration.abstractions.2.0.0.nupkg.sha512" + }, + "Microsoft.Extensions.Primitives/2.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ukg53qNlqTrK38WA30b5qhw0GD7y3jdI9PHHASjdKyTcBHTevFM2o23tyk3pWCgAV27Bbkm+CPQ2zUe1ZOuYSA==", + "path": "microsoft.extensions.primitives/2.0.0", + "hashPath": "microsoft.extensions.primitives.2.0.0.nupkg.sha512" + }, + "Microsoft.NETCore.Platforms/1.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==", + "path": "microsoft.netcore.platforms/1.1.0", + "hashPath": "microsoft.netcore.platforms.1.1.0.nupkg.sha512" + }, + "Microsoft.NETCore.Targets/1.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-aOZA3BWfz9RXjpzt0sRJJMjAscAUm3Hoa4UWAfceV9UTYxgwZ1lZt5nO2myFf+/jetYQo4uTP7zS8sJY67BBxg==", + "path": "microsoft.netcore.targets/1.1.0", + "hashPath": "microsoft.netcore.targets.1.1.0.nupkg.sha512" + }, + "NETStandard.Library/2.0.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==", + "path": "netstandard.library/2.0.3", + "hashPath": "netstandard.library.2.0.3.nupkg.sha512" + }, + "Newtonsoft.Json/11.0.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-IvJe1pj7JHEsP8B8J8DwlMEx8UInrs/x+9oVY+oCD13jpLu4JbJU2WCIsMRn5C4yW9+DgkaO8uiVE5VHKjpmdQ==", + "path": "newtonsoft.json/11.0.2", + "hashPath": "newtonsoft.json.11.0.2.nupkg.sha512" + }, + "NUnit/3.12.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3oJTrcUcT9wmweBUwgUf0f1XIYy6RZq2ziV+RM95HMKAJGsHPN2i3MKK1dAPvDPMRLz799Llj4eyu/STB9Q7OA==", + "path": "nunit/3.12.0", + "hashPath": "nunit.3.12.0.nupkg.sha512" + }, + "Remotion.Linq/2.2.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-fK/76UmpC0FXBlGDFVPLJHQlDLYnGC+XY3eoDgCgbtrhi0vzbXDQ3n/IYHhqSKqXQfGw/u04A1drWs7rFVkRjw==", + "path": "remotion.linq/2.2.0", + "hashPath": "remotion.linq.2.2.0.nupkg.sha512" + }, + "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-HdSSp5MnJSsg08KMfZThpuLPJpPwE5hBXvHwoKWosyHHfe8Mh5WKT0ylEOf6yNzX6Ngjxe4Whkafh5q7Ymac4Q==", + "path": "runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-+yH1a49wJMy8Zt4yx5RhJrxO/DBDByAiCzNwiETI+1S4mPdCu0OY4djdciC7Vssk0l22wQaDLrXxXkp+3+7bVA==", + "path": "runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-c3YNH1GQJbfIPJeCnr4avseugSqPrxwIqzthYyZDN6EuOyNOzq+y2KSUfRcXauya1sF4foESTgwM5e1A8arAKw==", + "path": "runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.native.System/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==", + "path": "runtime.native.system/4.3.0", + "hashPath": "runtime.native.system.4.3.0.nupkg.sha512" + }, + "runtime.native.System.Net.Http/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ZVuZJqnnegJhd2k/PtAbbIcZ3aZeITq3sj06oKfMBSfphW3HDmk/t4ObvbOk/JA/swGR0LNqMksAh/f7gpTROg==", + "path": "runtime.native.system.net.http/4.3.0", + "hashPath": "runtime.native.system.net.http.4.3.0.nupkg.sha512" + }, + "runtime.native.System.Security.Cryptography.Apple/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-DloMk88juo0OuOWr56QG7MNchmafTLYWvABy36izkrLI5VledI0rq28KGs1i9wbpeT9NPQrx/wTf8U2vazqQ3Q==", + "path": "runtime.native.system.security.cryptography.apple/4.3.0", + "hashPath": "runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512" + }, + "runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-NS1U+700m4KFRHR5o4vo9DSlTmlCKu/u7dtE5sUHVIPB+xpXxYQvgBgA6wEIeCz6Yfn0Z52/72WYsToCEPJnrw==", + "path": "runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-b3pthNgxxFcD+Pc0WSEoC0+md3MyhRS6aCEeenvNE3Fdw1HyJ18ZhRFVJJzIeR/O/jpxPboB805Ho0T3Ul7w8A==", + "path": "runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-KeLz4HClKf+nFS7p/6Fi/CqyLXh81FpiGzcmuS8DGi9lUqSnZ6Es23/gv2O+1XVGfrbNmviF7CckBpavkBoIFQ==", + "path": "runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ==", + "path": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple/4.3.0", + "hashPath": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512" + }, + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-X7IdhILzr4ROXd8mI1BUCQMSHSQwelUlBjF1JyTKCjXaOGn2fB4EKBxQbCK2VjO3WaWIdlXZL3W6TiIVnrhX4g==", + "path": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-nyFNiCk/r+VOiIqreLix8yN+q3Wga9+SE8BCgkf+2BwEKiNx6DyvFjCgkfV743/grxv8jHJ8gUK4XEQw7yzRYg==", + "path": "runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ytoewC6wGorL7KoCAvRfsgoJPJbNq+64k2SqW6JcOAebWsFUvCCYgfzQMrnpvPiEl4OrblUlhF2ji+Q1+SVLrQ==", + "path": "runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-I8bKw2I8k58Wx7fMKQJn2R8lamboCAiHfHeV/pS65ScKWMMI0+wJkLYlEKvgW1D/XvSl/221clBoR2q9QNNM7A==", + "path": "runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-VB5cn/7OzUfzdnC8tqAIMQciVLiq2epm2NrAm1E9OjNRyG4lVhfR61SMcLizejzQP8R8Uf/0l5qOIbUEi+RdEg==", + "path": "runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "System.Buffers/4.4.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-AwarXzzoDwX6BgrhjoJsk6tUezZEozOT5Y9QKF94Gl4JK91I4PIIBkBco9068Y9/Dra8Dkbie99kXB8+1BaYKw==", + "path": "system.buffers/4.4.0", + "hashPath": "system.buffers.4.4.0.nupkg.sha512" + }, + "System.Collections/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==", + "path": "system.collections/4.3.0", + "hashPath": "system.collections.4.3.0.nupkg.sha512" + }, + "System.Collections.Concurrent/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ztl69Xp0Y/UXCL+3v3tEU+lIy+bvjKNUmopn1wep/a291pVPK7dxBd6T7WnlQqRog+d1a/hSsgRsmFnIBKTPLQ==", + "path": "system.collections.concurrent/4.3.0", + "hashPath": "system.collections.concurrent.4.3.0.nupkg.sha512" + }, + "System.Collections.NonGeneric/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-prtjIEMhGUnQq6RnPEYLpFt8AtLbp9yq2zxOSrY7KJJZrw25Fi97IzBqY7iqssbM61Ek5b8f3MG/sG1N2sN5KA==", + "path": "system.collections.nongeneric/4.3.0", + "hashPath": "system.collections.nongeneric.4.3.0.nupkg.sha512" + }, + "System.Collections.Specialized/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Epx8PoVZR0iuOnJJDzp7pWvdfMMOAvpUo95pC4ScH2mJuXkKA2Y4aR3cG9qt2klHgSons1WFh4kcGW7cSXvrxg==", + "path": "system.collections.specialized/4.3.0", + "hashPath": "system.collections.specialized.4.3.0.nupkg.sha512" + }, + "System.ComponentModel/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-VyGn1jGRZVfxnh8EdvDCi71v3bMXrsu8aYJOwoV7SNDLVhiEqwP86pPMyRGsDsxhXAm2b3o9OIqeETfN5qfezw==", + "path": "system.componentmodel/4.3.0", + "hashPath": "system.componentmodel.4.3.0.nupkg.sha512" + }, + "System.ComponentModel.Primitives/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-j8GUkCpM8V4d4vhLIIoBLGey2Z5bCkMVNjEZseyAlm4n5arcsJOeI3zkUP+zvZgzsbLTYh4lYeP/ZD/gdIAPrw==", + "path": "system.componentmodel.primitives/4.3.0", + "hashPath": "system.componentmodel.primitives.4.3.0.nupkg.sha512" + }, + "System.ComponentModel.TypeConverter/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-16pQ6P+EdhcXzPiEK4kbA953Fu0MNG2ovxTZU81/qsCd1zPRsKc3uif5NgvllCY598k6bI0KUyKW8fanlfaDQg==", + "path": "system.componentmodel.typeconverter/4.3.0", + "hashPath": "system.componentmodel.typeconverter.4.3.0.nupkg.sha512" + }, + "System.Composition/1.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-rLsB/X6sp4cLPPlyPVuTBQbtG2IdSdKc6tFImxopz9s5po4Og5sQ8rA7GPxpTsrQ5UXS1IxdaqFwxtse4eLolw==", + "path": "system.composition/1.1.0", + "hashPath": "system.composition.1.1.0.nupkg.sha512" + }, + "System.Composition.AttributedModel/1.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-S7Ybny/58VGS+5uanotm7f2k7Iv3ufdv0eDA8adZ345pE27zr+9bxhHw/rXXMVltRdoUuyB1O4YpYT1lVwkM0w==", + "path": "system.composition.attributedmodel/1.1.0", + "hashPath": "system.composition.attributedmodel.1.1.0.nupkg.sha512" + }, + "System.Composition.Convention/1.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-lqiuITNCKJ/JlXzmum0mr+1HDCJ6mN/+1C4ouXpvLKpUA+zal7EsRvfHxy+kVVPrPMaFU9dLQkBxV/GFVnJoXA==", + "path": "system.composition.convention/1.1.0", + "hashPath": "system.composition.convention.1.1.0.nupkg.sha512" + }, + "System.Composition.Hosting/1.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-D5M3oBOxCeHe4WVNtqKnFA3UMt53uIdUMGgustecwh7kmzE7k+Co+CFPLpQVPdyBhmB8WxicaESa41QLZ0ZlgA==", + "path": "system.composition.hosting/1.1.0", + "hashPath": "system.composition.hosting.1.1.0.nupkg.sha512" + }, + "System.Composition.Runtime/1.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-dLbtnVmOiD4k1/YA4LfV2nEZX4jdgizvSzvVIffOp3AXU468n5IsDbwwbCHSUmnfqoJ5unYR+hEmN1U3gBmDRg==", + "path": "system.composition.runtime/1.1.0", + "hashPath": "system.composition.runtime.1.1.0.nupkg.sha512" + }, + "System.Composition.TypedParts/1.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-SlACsoBPQpeL8dAjQXttv9d5Y/790UmxnlP2yk1w94T2vMcHOa7i9XGUKCB81BGMWstR2FF9ZEftm8rIdhMEvg==", + "path": "system.composition.typedparts/1.1.0", + "hashPath": "system.composition.typedparts.1.1.0.nupkg.sha512" + }, + "System.Configuration.ConfigurationManager/4.4.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-jz3TWKMAeuDEyrPCK5Jyt4bzQcmzUIMcY9Ud6PkElFxTfnsihV+9N/UCqvxe1z5gc7jMYAnj7V1COMS9QKIuHQ==", + "path": "system.configuration.configurationmanager/4.4.1", + "hashPath": "system.configuration.configurationmanager.4.4.1.nupkg.sha512" + }, + "System.Diagnostics.Debug/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==", + "path": "system.diagnostics.debug/4.3.0", + "hashPath": "system.diagnostics.debug.4.3.0.nupkg.sha512" + }, + "System.Diagnostics.DiagnosticSource/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-tD6kosZnTAGdrEa0tZSuFyunMbt/5KYDnHdndJYGqZoNy00XVXyACd5d6KnE1YgYv3ne2CjtAfNXo/fwEhnKUA==", + "path": "system.diagnostics.diagnosticsource/4.3.0", + "hashPath": "system.diagnostics.diagnosticsource.4.3.0.nupkg.sha512" + }, + "System.Diagnostics.Tracing/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==", + "path": "system.diagnostics.tracing/4.3.0", + "hashPath": "system.diagnostics.tracing.4.3.0.nupkg.sha512" + }, + "System.Dynamic.Runtime/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-db34f6LHYM0U0JpE+sOmjar27BnqTVkbLJhgfwMpTdgTigG/Hna3m2MYVwnFzGGKnEJk2UXFuoVTr8WUbU91/A==", + "path": "system.dynamic.runtime/4.0.11", + "hashPath": "system.dynamic.runtime.4.0.11.nupkg.sha512" + }, + "System.Globalization/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==", + "path": "system.globalization/4.3.0", + "hashPath": "system.globalization.4.3.0.nupkg.sha512" + }, + "System.Globalization.Calendars/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-GUlBtdOWT4LTV3I+9/PJW+56AnnChTaOqqTLFtdmype/L500M2LIyXgmtd9X2P2VOkmJd5c67H5SaC2QcL1bFA==", + "path": "system.globalization.calendars/4.3.0", + "hashPath": "system.globalization.calendars.4.3.0.nupkg.sha512" + }, + "System.Globalization.Extensions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-FhKmdR6MPG+pxow6wGtNAWdZh7noIOpdD5TwQ3CprzgIE1bBBoim0vbR1+AWsWjQmU7zXHgQo4TWSP6lCeiWcQ==", + "path": "system.globalization.extensions/4.3.0", + "hashPath": "system.globalization.extensions.4.3.0.nupkg.sha512" + }, + "System.IO/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==", + "path": "system.io/4.3.0", + "hashPath": "system.io.4.3.0.nupkg.sha512" + }, + "System.IO.FileSystem/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==", + "path": "system.io.filesystem/4.3.0", + "hashPath": "system.io.filesystem.4.3.0.nupkg.sha512" + }, + "System.IO.FileSystem.Primitives/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-6QOb2XFLch7bEc4lIcJH49nJN2HV+OC3fHDgsLVsBVBk3Y4hFAnOBGzJ2lUu7CyDDFo9IBWkSsnbkT6IBwwiMw==", + "path": "system.io.filesystem.primitives/4.3.0", + "hashPath": "system.io.filesystem.primitives.4.3.0.nupkg.sha512" + }, + "System.Linq/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==", + "path": "system.linq/4.3.0", + "hashPath": "system.linq.4.3.0.nupkg.sha512" + }, + "System.Linq.Expressions/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-I+y02iqkgmCAyfbqOmSDOgqdZQ5tTj80Akm5BPSS8EeB0VGWdy6X1KCoYe8Pk6pwDoAKZUOdLVxnTJcExiv5zw==", + "path": "system.linq.expressions/4.1.0", + "hashPath": "system.linq.expressions.4.1.0.nupkg.sha512" + }, + "System.Linq.Queryable/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Yn/WfYe9RoRfmSLvUt2JerP0BTGGykCZkQPgojaxgzF2N0oPo+/AhB8TXOpdCcNlrG3VRtsamtK2uzsp3cqRVw==", + "path": "system.linq.queryable/4.0.1", + "hashPath": "system.linq.queryable.4.0.1.nupkg.sha512" + }, + "System.Net.Http/4.3.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-y7hv0o0weI0j0mvEcBOdt1F3CAADiWlcw3e54m8TfYiRmBPDIsHElx8QUPDlY4x6yWXKPGN0Z2TuXCTPgkm5WQ==", + "path": "system.net.http/4.3.2", + "hashPath": "system.net.http.4.3.2.nupkg.sha512" + }, + "System.Net.Primitives/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-qOu+hDwFwoZPbzPvwut2qATe3ygjeQBDQj91xlsaqGFQUI5i4ZnZb8yyQuLGpDGivEPIt8EJkd1BVzVoP31FXA==", + "path": "system.net.primitives/4.3.0", + "hashPath": "system.net.primitives.4.3.0.nupkg.sha512" + }, + "System.Net.Requests/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-OZNUuAs0kDXUzm7U5NZ1ojVta5YFZmgT2yxBqsQ7Eseq5Ahz88LInGRuNLJ/NP2F8W1q7tse1pKDthj3reF5QA==", + "path": "system.net.requests/4.3.0", + "hashPath": "system.net.requests.4.3.0.nupkg.sha512" + }, + "System.Net.WebHeaderCollection/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-XZrXYG3c7QV/GpWeoaRC02rM6LH2JJetfVYskf35wdC/w2fFDFMphec4gmVH2dkll6abtW14u9Rt96pxd9YH2A==", + "path": "system.net.webheadercollection/4.3.0", + "hashPath": "system.net.webheadercollection.4.3.0.nupkg.sha512" + }, + "System.ObjectModel/4.0.12": { + "type": "package", + "serviceable": true, + "sha512": "sha512-tAgJM1xt3ytyMoW4qn4wIqgJYm7L7TShRZG4+Q4Qsi2PCcj96pXN7nRywS9KkB3p/xDUjc2HSwP9SROyPYDYKQ==", + "path": "system.objectmodel/4.0.12", + "hashPath": "system.objectmodel.4.0.12.nupkg.sha512" + }, + "System.Reflection/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==", + "path": "system.reflection/4.3.0", + "hashPath": "system.reflection.4.3.0.nupkg.sha512" + }, + "System.Reflection.Emit/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-P2wqAj72fFjpP6wb9nSfDqNBMab+2ovzSDzUZK7MVIm54tBJEPr9jWfSjjoTpPwj1LeKcmX3vr0ttyjSSFM47g==", + "path": "system.reflection.emit/4.0.1", + "hashPath": "system.reflection.emit.4.0.1.nupkg.sha512" + }, + "System.Reflection.Emit.ILGeneration/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Ov6dU8Bu15Bc7zuqttgHF12J5lwSWyTf1S+FJouUXVMSqImLZzYaQ+vRr1rQ0OZ0HqsrwWl4dsKHELckQkVpgA==", + "path": "system.reflection.emit.ilgeneration/4.0.1", + "hashPath": "system.reflection.emit.ilgeneration.4.0.1.nupkg.sha512" + }, + "System.Reflection.Emit.Lightweight/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-sSzHHXueZ5Uh0OLpUQprhr+ZYJrLPA2Cmr4gn0wj9+FftNKXx8RIMKvO9qnjk2ebPYUjZ+F2ulGdPOsvj+MEjA==", + "path": "system.reflection.emit.lightweight/4.0.1", + "hashPath": "system.reflection.emit.lightweight.4.0.1.nupkg.sha512" + }, + "System.Reflection.Extensions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==", + "path": "system.reflection.extensions/4.3.0", + "hashPath": "system.reflection.extensions.4.3.0.nupkg.sha512" + }, + "System.Reflection.Primitives/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==", + "path": "system.reflection.primitives/4.3.0", + "hashPath": "system.reflection.primitives.4.3.0.nupkg.sha512" + }, + "System.Reflection.TypeExtensions/4.4.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-dkmh/ySlwnXJp/1qYP9uyKkCK1CXR/REFzl7abHcArxBcV91mY2CgrrzSRA5Z/X4MevJWwXsklGRdR3A7K9zbg==", + "path": "system.reflection.typeextensions/4.4.0", + "hashPath": "system.reflection.typeextensions.4.4.0.nupkg.sha512" + }, + "System.Resources.ResourceManager/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==", + "path": "system.resources.resourcemanager/4.3.0", + "hashPath": "system.resources.resourcemanager.4.3.0.nupkg.sha512" + }, + "System.Runtime/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==", + "path": "system.runtime/4.3.0", + "hashPath": "system.runtime.4.3.0.nupkg.sha512" + }, + "System.Runtime.CompilerServices.Unsafe/4.4.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-9dLLuBxr5GNmOfl2jSMcsHuteEg32BEfUotmmUkmZjpR3RpVHE8YQwt0ow3p6prwA1ME8WqDVZqrr8z6H8G+Kw==", + "path": "system.runtime.compilerservices.unsafe/4.4.0", + "hashPath": "system.runtime.compilerservices.unsafe.4.4.0.nupkg.sha512" + }, + "System.Runtime.Extensions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==", + "path": "system.runtime.extensions/4.3.0", + "hashPath": "system.runtime.extensions.4.3.0.nupkg.sha512" + }, + "System.Runtime.Handles/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==", + "path": "system.runtime.handles/4.3.0", + "hashPath": "system.runtime.handles.4.3.0.nupkg.sha512" + }, + "System.Runtime.InteropServices/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==", + "path": "system.runtime.interopservices/4.3.0", + "hashPath": "system.runtime.interopservices.4.3.0.nupkg.sha512" + }, + "System.Runtime.Numerics/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-yMH+MfdzHjy17l2KESnPiF2dwq7T+xLnSJar7slyimAkUh/gTrS9/UQOtv7xarskJ2/XDSNvfLGOBQPjL7PaHQ==", + "path": "system.runtime.numerics/4.3.0", + "hashPath": "system.runtime.numerics.4.3.0.nupkg.sha512" + }, + "System.Security.Cryptography.Algorithms/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==", + "path": "system.security.cryptography.algorithms/4.3.0", + "hashPath": "system.security.cryptography.algorithms.4.3.0.nupkg.sha512" + }, + "System.Security.Cryptography.Cng/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-03idZOqFlsKRL4W+LuCpJ6dBYDUWReug6lZjBa3uJWnk5sPCUXckocevTaUA8iT/MFSrY/2HXkOt753xQ/cf8g==", + "path": "system.security.cryptography.cng/4.3.0", + "hashPath": "system.security.cryptography.cng.4.3.0.nupkg.sha512" + }, + "System.Security.Cryptography.Csp/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-X4s/FCkEUnRGnwR3aSfVIkldBmtURMhmexALNTwpjklzxWU7yjMk7GHLKOZTNkgnWnE0q7+BCf9N2LVRWxewaA==", + "path": "system.security.cryptography.csp/4.3.0", + "hashPath": "system.security.cryptography.csp.4.3.0.nupkg.sha512" + }, + "System.Security.Cryptography.Encoding/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==", + "path": "system.security.cryptography.encoding/4.3.0", + "hashPath": "system.security.cryptography.encoding.4.3.0.nupkg.sha512" + }, + "System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-h4CEgOgv5PKVF/HwaHzJRiVboL2THYCou97zpmhjghx5frc7fIvlkY1jL+lnIQyChrJDMNEXS6r7byGif8Cy4w==", + "path": "system.security.cryptography.openssl/4.3.0", + "hashPath": "system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "System.Security.Cryptography.Primitives/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-7bDIyVFNL/xKeFHjhobUAQqSpJq9YTOpbEs6mR233Et01STBMXNAc/V+BM6dwYGc95gVh/Zf+iVXWzj3mE8DWg==", + "path": "system.security.cryptography.primitives/4.3.0", + "hashPath": "system.security.cryptography.primitives.4.3.0.nupkg.sha512" + }, + "System.Security.Cryptography.ProtectedData/4.4.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-cJV7ScGW7EhatRsjehfvvYVBvtiSMKgN8bOVI0bQhnF5bU7vnHVIsH49Kva7i7GWaWYvmEzkYVk1TC+gZYBEog==", + "path": "system.security.cryptography.protecteddata/4.4.0", + "hashPath": "system.security.cryptography.protecteddata.4.4.0.nupkg.sha512" + }, + "System.Security.Cryptography.X509Certificates/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==", + "path": "system.security.cryptography.x509certificates/4.3.0", + "hashPath": "system.security.cryptography.x509certificates.4.3.0.nupkg.sha512" + }, + "System.Text.Encoding/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==", + "path": "system.text.encoding/4.3.0", + "hashPath": "system.text.encoding.4.3.0.nupkg.sha512" + }, + "System.Text.Encoding.Extensions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-YVMK0Bt/A43RmwizJoZ22ei2nmrhobgeiYwFzC4YAN+nue8RF6djXDMog0UCn+brerQoYVyaS+ghy9P/MUVcmw==", + "path": "system.text.encoding.extensions/4.3.0", + "hashPath": "system.text.encoding.extensions.4.3.0.nupkg.sha512" + }, + "System.Text.RegularExpressions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-RpT2DA+L660cBt1FssIE9CAGpLFdFPuheB7pLpKpn6ZXNby7jDERe8Ua/Ne2xGiwLVG2JOqziiaVCGDon5sKFA==", + "path": "system.text.regularexpressions/4.3.0", + "hashPath": "system.text.regularexpressions.4.3.0.nupkg.sha512" + }, + "System.Threading/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==", + "path": "system.threading/4.3.0", + "hashPath": "system.threading.4.3.0.nupkg.sha512" + }, + "System.Threading.Tasks/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==", + "path": "system.threading.tasks/4.3.0", + "hashPath": "system.threading.tasks.4.3.0.nupkg.sha512" + }, + "System.Threading.Tasks.Extensions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-npvJkVKl5rKXrtl1Kkm6OhOUaYGEiF9wFbppFRWSMoApKzt2PiPHT2Bb8a5sAWxprvdOAtvaARS9QYMznEUtug==", + "path": "system.threading.tasks.extensions/4.3.0", + "hashPath": "system.threading.tasks.extensions.4.3.0.nupkg.sha512" + }, + "System.Threading.Thread/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-OHmbT+Zz065NKII/ZHcH9XO1dEuLGI1L2k7uYss+9C1jLxTC9kTZZuzUOyXHayRk+dft9CiDf3I/QZ0t8JKyBQ==", + "path": "system.threading.thread/4.3.0", + "hashPath": "system.threading.thread.4.3.0.nupkg.sha512" + }, + "System.ValueTuple/4.4.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-BahUww/+mdP4ARCAh2RQhQTg13wYLVrBb9SYVgW8ZlrwjraGCXHGjo0oIiUfZ34LUZkMMR+RAzR7dEY4S1HeQQ==", + "path": "system.valuetuple/4.4.0", + "hashPath": "system.valuetuple.4.4.0.nupkg.sha512" + }, + "System.Xml.ReaderWriter/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-GrprA+Z0RUXaR4N7/eW71j1rgMnEnEVlgii49GZyAjTH7uliMnrOU3HNFBr6fEDBCJCIdlVNq9hHbaDR621XBA==", + "path": "system.xml.readerwriter/4.3.0", + "hashPath": "system.xml.readerwriter.4.3.0.nupkg.sha512" + }, + "System.Xml.XmlDocument/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-lJ8AxvkX7GQxpC6GFCeBj8ThYVyQczx2+f/cWHJU8tjS7YfI6Cv6bon70jVEgs2CiFbmmM8b9j1oZVx0dSI2Ww==", + "path": "system.xml.xmldocument/4.3.0", + "hashPath": "system.xml.xmldocument.4.3.0.nupkg.sha512" + }, + "System.Xml.XPath/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-v1JQ5SETnQusqmS3RwStF7vwQ3L02imIzl++sewmt23VGygix04pEH+FCj1yWb+z4GDzKiljr1W7Wfvrx0YwgA==", + "path": "system.xml.xpath/4.3.0", + "hashPath": "system.xml.xpath.4.3.0.nupkg.sha512" + }, + "System.Xml.XPath.XmlDocument/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-A/uxsWi/Ifzkmd4ArTLISMbfFs6XpRPsXZonrIqyTY70xi8t+mDtvSM5Os0RqyRDobjMBwIDHDL4NOIbkDwf7A==", + "path": "system.xml.xpath.xmldocument/4.3.0", + "hashPath": "system.xml.xpath.xmldocument.4.3.0.nupkg.sha512" + }, + "VDS.Common/1.10.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-lvqLezZHYcgBfhNDcRKTICuvRQGhYaFrITqhTbqDp4mli1SES2iwlGI3TxLxygcAiyRUJ/ieHCmX1WsF+PGMNg==", + "path": "vds.common/1.10.0", + "hashPath": "vds.common.1.10.0.nupkg.sha512" + }, + "Semiodesk.Trinity/1.0.0-rc008": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Semiodesk.Trinity.Tests/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + } + } +} \ No newline at end of file diff --git a/tests/Trinity.Tests.Stardog/bin/Debug/netstandard2.0/custom.config b/tests/Trinity.Tests.Stardog/bin/Debug/netstandard2.0/custom.config new file mode 100644 index 0000000..3261e54 --- /dev/null +++ b/tests/Trinity.Tests.Stardog/bin/Debug/netstandard2.0/custom.config @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/Trinity.Tests.Stardog/bin/Debug/netstandard2.0/ontologies-test.config b/tests/Trinity.Tests.Stardog/bin/Debug/netstandard2.0/ontologies-test.config new file mode 100644 index 0000000..6e04670 --- /dev/null +++ b/tests/Trinity.Tests.Stardog/bin/Debug/netstandard2.0/ontologies-test.config @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/Trinity.Tests.Stardog/bin/Debug/netstandard2.0/ontologies.config b/tests/Trinity.Tests.Stardog/bin/Debug/netstandard2.0/ontologies.config new file mode 100644 index 0000000..faa8294 --- /dev/null +++ b/tests/Trinity.Tests.Stardog/bin/Debug/netstandard2.0/ontologies.config @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/Trinity.Tests.Stardog/bin/Debug/netstandard2.0/without_store.config b/tests/Trinity.Tests.Stardog/bin/Debug/netstandard2.0/without_store.config new file mode 100644 index 0000000..76533dd --- /dev/null +++ b/tests/Trinity.Tests.Stardog/bin/Debug/netstandard2.0/without_store.config @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/Trinity.Tests.Stardog/bin/Release/net472/Models/rdf-schema.rdf b/tests/Trinity.Tests.Stardog/bin/Release/net472/Models/rdf-schema.rdf new file mode 100644 index 0000000..bf17bab --- /dev/null +++ b/tests/Trinity.Tests.Stardog/bin/Release/net472/Models/rdf-schema.rdf @@ -0,0 +1,130 @@ + + + + + + + Resource + The class resource, everything. + + + + + Class + The class of classes. + + + + + + subClassOf + The subject is a subclass of a class. + + + + + + + subPropertyOf + The subject is a subproperty of a property. + + + + + + + comment + A description of the subject resource. + + + + + + + label + A human-readable name for the subject. + + + + + + + domain + A domain of the subject property. + + + + + + + range + A range of the subject property. + + + + + + + seeAlso + Further information about the subject resource. + + + + + + + + isDefinedBy + The defininition of the subject resource. + + + + + + + Literal + The class of literal values, eg. textual strings and integers. + + + + + + Container + + The class of RDF containers. + + + + + ContainerMembershipProperty + The class of container membership properties, rdf:_1, rdf:_2, ..., + all of which are sub-properties of 'member'. + + + + + + member + A member of the subject resource. + + + + + + + Datatype + The class of RDF datatypes. + + + + + + + + diff --git a/tests/Trinity.Tests.Stardog/bin/Release/net472/Models/rdf-syntax.rdf b/tests/Trinity.Tests.Stardog/bin/Release/net472/Models/rdf-syntax.rdf new file mode 100644 index 0000000..a6815ec --- /dev/null +++ b/tests/Trinity.Tests.Stardog/bin/Release/net472/Models/rdf-syntax.rdf @@ -0,0 +1,156 @@ + + + + The RDF Concepts Vocabulary (RDF) + This is the RDF Schema for the RDF vocabulary terms in the RDF Namespace, defined in RDF 1.1 Concepts. + + + + + + + HTML + The datatype of RDF literals storing fragments of HTML content + + + + + + + langString + The datatype of language-tagged string values + + + + + + + PlainLiteral + The class of plain (i.e. untyped) literal values, as used in RIF and OWL 2 + + + + + + type + The subject is an instance of a class. + + + + + + + Property + The class of RDF properties. + + + + + + Statement + + The class of RDF statements. + + + + + subject + The subject of the subject RDF statement. + + + + + + + predicate + The predicate of the subject RDF statement. + + + + + + + object + The object of the subject RDF statement. + + + + + + + Bag + The class of unordered containers. + + + + + + Seq + The class of ordered containers. + + + + + + Alt + The class of containers of alternatives. + + + + + + value + Idiomatic property used for structured values. + + + + + + + + + List + The class of RDF Lists. + + + + + + nil + The empty list, with no items in it. If the rest of a list is nil then the list has no more items in it. + + + + + first + The first item in the subject RDF list. + + + + + + + rest + The rest of the subject RDF list after the first item. + + + + + + + + XMLLiteral + The datatype of XML literal values. + + + + + + + + diff --git a/tests/Trinity.Tests.Stardog/bin/Release/net472/Models/test-ntriples.nt b/tests/Trinity.Tests.Stardog/bin/Release/net472/Models/test-ntriples.nt new file mode 100644 index 0000000..91b4988 --- /dev/null +++ b/tests/Trinity.Tests.Stardog/bin/Release/net472/Models/test-ntriples.nt @@ -0,0 +1,79 @@ +# +# Copyright World Wide Web Consortium, (Massachusetts Institute of +# Technology, Institut National de Recherche en Informatique et en +# Automatique, Keio University). +# +# All Rights Reserved. +# +# Please see the full Copyright clause at +# +# +# Test file with a variety of legal N-Triples +# +# Dave Beckett - http://purl.org/net/dajobe/ +# +# $Id: test.nt,v 1.7 2003/10/06 15:52:19 dbeckett2 Exp $ +# +##################################################################### + +# comment lines + # comment line after whitespace +# empty blank line, then one with spaces and tabs + + + . +_:anon . + _:anon . +# spaces and tabs throughout: + . + +# line ending with CR NL (ASCII 13, ASCII 10) + . + +# 2 statement lines separated by single CR (ASCII 10) + . + . + + +# All literal escapes + "simple literal" . + "backslash:\\" . + "dquote:\"" . + "newline:\n" . + "return\r" . + "tab:\t" . + +# Space is optional before final . + . + "x". + _:anon. + +# \u and \U escapes +# latin small letter e with acute symbol \u00E9 - 3 UTF-8 bytes #xC3 #A9 + "\u00E9" . +# Euro symbol \u20ac - 3 UTF-8 bytes #xE2 #x82 #xAC + "\u20AC" . +# resource18 test removed +# resource19 test removed +# resource20 test removed + +# XML Literals as Datatyped Literals + ""^^ . + " "^^ . + "x"^^ . + "\""^^ . + ""^^ . + "a "^^ . + "a c"^^ . + "a\n\nc"^^ . + "chat"^^ . +# resource28 test removed 2003-08-03 +# resource29 test removed 2003-08-03 + +# Plain literals with languages + "chat"@fr . + "chat"@en . + +# Typed Literals + "abc"^^ . +# resource33 test removed 2003-08-03 diff --git a/tests/Trinity.Tests.Stardog/bin/Release/net472/Models/test-ppo.rdf b/tests/Trinity.Tests.Stardog/bin/Release/net472/Models/test-ppo.rdf new file mode 100644 index 0000000..a4dcaf0 --- /dev/null +++ b/tests/Trinity.Tests.Stardog/bin/Release/net472/Models/test-ppo.rdf @@ -0,0 +1,102 @@ + + + + + + + + + + + Documents + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ddMMYYYY + MMddYYYY + + + + + + hhmmss + + + + + {Wahr,Falsch} + {True,False} + + + \ No newline at end of file diff --git a/tests/Trinity.Tests.Stardog/bin/Release/net472/Models/test-tmo.trig b/tests/Trinity.Tests.Stardog/bin/Release/net472/Models/test-tmo.trig new file mode 100644 index 0000000..c368bb9 --- /dev/null +++ b/tests/Trinity.Tests.Stardog/bin/Release/net472/Models/test-tmo.trig @@ -0,0 +1,1145 @@ +# +# Copyright (c) 2007 NEPOMUK Consortium +# All rights reserved, licensed under either CC-BY or BSD. +# +# You are free: +# * to Share - to copy, distribute and transmit the work +# * to Remix - to adapt the work +# Under the following conditions: +# * Attribution - You must attribute the work in the manner specified by the author +# or licensor (but not in any way that suggests that they endorse you or your use +# of the work). +# +# Redistribution and use in source and binary forms, with or without modification, +# are permitted provided that the following conditions are met: +# * Redistributions of source code must retain the above copyright notice, this +# list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this +# list of conditions and the following disclaimer in the documentation and/or +# other materials provided with the distribution. +# * Neither the names of the authors nor the names of contributors may +# be used to endorse or promote products derived from this ontology without +# specific prior written permission. +# +# THIS ONTOLOGY IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +# THIS ONTOLOGY, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +@prefix dc: . +@prefix exif: . +@prefix geo: . +@prefix protege: . +@prefix nao: . +@prefix nfo: . +@prefix nie: . +@prefix ncal: . +@prefix nco: . +@prefix dcterms: . +@prefix rdfs: . +@prefix pimo: . +@prefix nmo: . +@prefix nrl: . +@prefix tmo: . +@prefix xsd: . +@prefix rdf: . +@prefix nid3: . +@prefix nexif: . + +tmo: {tmo:TMO_Instance_PersonInvolvementRole_Creator + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Creator" . + + tmo:abilityCarrierRole + a rdf:Property ; + rdfs:domain tmo:AbilityCarrierInvolvement ; + rdfs:label "abilityCarrierRole" ; + rdfs:range tmo:AbilityCarrierRole ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:PersonInvolvement + a rdfs:Class ; + rdfs:comment "PersonInvolvement realizes n-ary associations to Persons which are realtedd to an task. The involvement is further characterized by an PersonTaskRole." ; + rdfs:label "PersonInvolvement" ; + rdfs:subClassOf rdfs:Resource , pimo:Association . + + tmo:TMO_Instance_TaskState_Running + a tmo:TaskState ; + rdfs:label "TMO_Instance_TaskState_Running" . + + tmo:SimilarityDependence + a rdfs:Class ; + rdfs:label "SimilarityDependence" ; + rdfs:subClassOf tmo:UndirectedDependency . + + tmo:PredecessorDependency + a rdfs:Class ; + rdfs:comment "In a PredecessorDependency the dependencyMemberA is the task which is to be executed before dependencyMemberB." ; + rdfs:label "PredecessorDependency" ; + rdfs:subClassOf tmo:PredecessorSuccessorDependency . + + tmo:TMO_Instance_TaskContainer_outbox + a tmo:TaskContainer ; + rdfs:label "TMO_Instance_TaskContainer_outbox" . + + tmo:dueDate + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "dueDate" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf pimo:taskDueTime , tmo:dateTime ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_Urgency_04 + a tmo:Urgency ; + rdfs:label "TMO_Instance_Urgency_04" . + + tmo:Priority + a rdfs:Class ; + rdfs:label "Priority" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:TaskContainer + a rdfs:Class ; + rdfs:label "TaskContainer" ; + rdfs:subClassOf pimo:Collection . + + tmo:Task + a rdfs:Class ; + rdfs:comment "The tmo:task is the central entitiey of the tmo. Task can range from vague things to be possibly done in e distant future to concrete things to be done in a precise forseeable manner. It is not unrealisitc to assume that knowledge worker have hundred or more tasks a day." ; + rdfs:label "Task" ; + rdfs:subClassOf pimo:Task . + + tmo:PersonInvolvementRole + a rdfs:Class ; + rdfs:comment """They further specify the type a person was related to an task. +Examples instances of AttachmentRoles are e.g.""" ; + rdfs:label "PersonInvolvementRole" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:actualCompletion + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "actualCompletion" ; + rdfs:range rdfs:Literal ; + rdfs:subPropertyOf tmo:progress ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_PersonInvolvementRole_Co-worker + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Co-worker" . + + tmo:urgency + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "urgency" ; + rdfs:range tmo:Urgency ; + rdfs:subPropertyOf tmo:timemanagement ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_TaskContainer_archive + a tmo:TaskContainer ; + rdfs:label "TMO_Instance_TaskContainer_archive" . + + tmo:dependency + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "dependency" ; + rdfs:range tmo:TaskDependency . + + tmo:TMO_Instance_Importance_10 + a tmo:Importance ; + rdfs:label "TMO_Instance_Importance_10" . + + tmo:targetStartTime + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "targetStartTime" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:targetTime , tmo:startTime ; + nrl:maxCardinality "1" . + + tmo:dependencyDescription + a rdf:Property ; + rdfs:comment "Endusers can clarify why they created a depedency." ; + rdfs:domain tmo:TaskDependency ; + rdfs:label "dependencyDescription" ; + rdfs:subPropertyOf nao:description ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_Importance_09 + a tmo:Importance ; + rdfs:label "TMO_Instance_Importance_09" . + + tmo:transmissionState + a rdf:Property ; + rdfs:domain tmo:TaskTransmission ; + rdfs:label "transmissionState" ; + rdfs:range tmo:TransmissionState ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:AbilityCarrierRole + a rdfs:Class ; + rdfs:comment "Examples instances of AbilityCarrirRoles are e.g. \"requested\", \"required\" and \"used\" which further specify the type a person was involved in." ; + rdfs:label "AbilityCarrierRole" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:TMO_Instance_TaskState_Finalized + a tmo:TaskState ; + rdfs:label "TMO_Instance_TaskState_Finalized" . + + tmo:abilityCarrier + a rdf:Property ; + rdfs:domain tmo:AbilityCarrierInvolvement ; + rdfs:label "abilityCarrier" ; + rdfs:range tmo:AbilityCarrier ; + rdfs:subPropertyOf pimo:associationMember ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:TMO_Instance_TransmissionState_Rejected_Transmitted + a tmo:TransmissionState ; + rdfs:label "TMO_Instance_TransmissionState_Rejected_Transmitted" . + + tmo:TMO_Instance_Delegability_High + a tmo:Delegability ; + rdfs:label "TMO_Instance_Delegability_High" . + + tmo:TMO_Instance_Urgency_10 + a tmo:Urgency ; + rdfs:label "TMO_Instance_Urgency_10" . + + tmo:taskId + a rdf:Property ; + rdfs:comment """The Task Identifier allows a unique identification of a task object within the range of all Nepomuk objects. +The Task Identifier is automatically generated during the creation of a task. The generation of identifiers (IDs) is a Nepomuk architecture issue (Wp2000/WP6000).""" ; + rdfs:domain tmo:Task ; + rdfs:label "taskId" ; + rdfs:range rdfs:Literal ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:TMO_Instance_Importance_01 + a tmo:Importance ; + rdfs:label "TMO_Instance_Importance_01" . + + tmo:TMO_Instance_TransmissionType_Transfer + a tmo:TransmissionType ; + rdfs:label "TMO_Instance_TransmissionType_Transfer" . + + tmo:priority + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "priority" ; + rdfs:range tmo:Priority ; + rdfs:subPropertyOf tmo:timemanagement ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_Urgency_03 + a tmo:Urgency ; + rdfs:label "TMO_Instance_Urgency_03" . + + tmo:involvedPersons + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "involvedPersons" ; + rdfs:range tmo:PersonInvolvement ; + nrl:inverseProperty tmo:involvedPersonTask . + + tmo:involvedPerson + a rdf:Property ; + rdfs:domain tmo:PersonInvolvement ; + rdfs:label "involvedPerson" ; + rdfs:range pimo:Person ; + rdfs:subPropertyOf pimo:associationMember ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:TaskTransmission + a rdfs:Class ; + rdfs:comment """On the SSD, tasks are not restricted to one person and may cross from +the PTM of one person to the PTM of another. With transmission, we +refer to the process of sending a task – from one person (sender) to one +or more other persons (receiver(s)) (see Section 5.2.1.3 Task +Transmission). Task delegation and task transfer are two special kinds of +task transmission which are described at the end of this section. In +addition, the collaborative task is realized by task transmission. +For the process of sending a task, some information is required. This +information is also modelled in the task ontology. This information is still +useful after the process of sending a task was completed. Task Delegation is a process where the sender of the task restricts the +access rights of the receiver. This includes the right to distribute further +this task and additionally the obligation to give feedback to the sender. +The person that receives a task by delegation usually has not the full +control about the task. The attributes described in the following section +have the purpose to enable such \"access rights\". The receiver will also +probably have obligations regarding what to report to whom at which +time. +In contrast, the simplest case is that all rights are granted to the receiver +and there is no feedback desired by the sender. What to do with the task +may be apparent by the organization context, or it may be left to the +receiver. This is like sending an email – but with the advantage that the +information is transferred in the \"task space\" of the participating persons.""" ; + rdfs:label "TaskTransmission" ; + rdfs:subClassOf rdfs:Resource . + + tmo:containsTask + a rdf:Property ; + rdfs:domain tmo:TaskContainer ; + rdfs:label "containsTask" ; + rdfs:range tmo:Task ; + rdfs:subPropertyOf pimo:hasPart . + + tmo:TMO_Instance_PersonInvolvementRole_Suggested + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Suggested" . + + tmo:TMO_Instance_TaskState_Archived + a tmo:TaskState ; + rdfs:label "TMO_Instance_TaskState_Archived" . + + tmo:targetTime + a rdf:Property ; + rdfs:label "targetTime" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:dateTime ; + nrl:maxCardinality "1" . + + tmo:indexPosition + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "indexPosition" ; + rdfs:range rdfs:Literal ; + nrl:maxCardinality "1" . + + tmo:dependencyType + a rdf:Property ; + rdfs:label "dependencyType" ; + rdfs:range rdfs:Resource ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:targetEndTime + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "targetEndTime" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:targetTime , tmo:endTime ; + nrl:maxCardinality "1" . + + tmo:PredecessorSuccessorDependency + a rdfs:Class ; + rdfs:comment "The PredecessorSuccessorDependency enables a directed relation between task. By means of the concrete sublcasses one can further distinguish from which point of view this relation is created." ; + rdfs:label "PredecessorSuccessorDependency" ; + rdfs:subClassOf tmo:TaskDependency ; + protege:role "abstract" . + + tmo:TMO_Instance_Importance_08 + a tmo:Importance ; + rdfs:label "TMO_Instance_Importance_08" . + + tmo:attachmentReference + a rdf:Property ; + rdfs:domain tmo:Attachment ; + rdfs:label "attachmentReference" ; + rdfs:range rdfs:Resource ; + rdfs:subPropertyOf pimo:associationMember ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:TMO_Instance_Delegability_Never + a tmo:Delegability ; + rdfs:label "TMO_Instance_Delegability_Never" . + + tmo:superTask + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "superTask" ; + rdfs:range tmo:Task ; + rdfs:subPropertyOf pimo:partOf , tmo:taskReference ; + nrl:inverseProperty tmo:subTask ; + nrl:maxCardinality "1" . + + tmo:taskDescription + a rdf:Property ; + rdfs:comment """The task description helps users to understand the goal and the proceeding of a task. It can also describe the context of a task. The task description is composed at minimum of a summary of what is done to reach the goal. The task description is the main source for identifying related information, e.g., suitable patterns. +A Task Description can be either an informal, described textual content (?TextualDescription) or it can be a more formally structured representation (àFormalDescription). +Technology considerations: Informal descriptions allow for text similarity processing, a formal description allows for applying case based similarity measures.""" ; + rdfs:domain tmo:Task ; + rdfs:label "taskDescription" ; + rdfs:subPropertyOf nao:description ; + nrl:maxCardinality "1" . + + tmo:SuperSubTaskDependency + a rdfs:Class ; + rdfs:comment "By means of the SuperSubTaskDependency one can further describe the subtask-supertask relation .e.g by an descriptin. This enables an n-ary relation between subtask and supertask." ; + rdfs:label "SuperSubTaskDependency" ; + rdfs:subClassOf tmo:TaskDependency . + + tmo:contextTask + a rdf:Property ; + rdfs:label "contextTask" ; + rdfs:range tmo:Task ; + nrl:inverseProperty tmo:contextThread ; + nrl:maxCardinality "1" . + + tmo:SuccessorDependency + a rdfs:Class ; + rdfs:comment "In a SuccessorrDependency the dependencyMemberA is the task which is to be executed after dependencyMemberB." ; + rdfs:label "SuccessorDependency" ; + rdfs:subClassOf tmo:PredecessorSuccessorDependency . + + tmo:stateTypeRole + a rdf:Property ; + rdfs:label "stateTypeRole" ; + rdfs:range rdfs:Resource ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_TransmissionState_NotTransmitted + a tmo:TransmissionState ; + rdfs:label "TMO_Instance_TransmissionState_NotTransmitted" . + + tmo:TMO_Instance_Urgency_06 + a tmo:Urgency ; + rdfs:label "TMO_Instance_Urgency_06" . + + tmo:abilityCarrierInvolvement + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "abilityCarrierInvolvement" ; + rdfs:range tmo:AbilityCarrierInvolvement ; + nrl:inverseProperty tmo:abilityCarrierTask . + + tmo:TMO_Instance_AbilityCarrierRole_Required + a tmo:AbilityCarrierRole ; + rdfs:label "TMO_Instance_AbilityCarrierRole_Required" . + + tmo:actualStartTime + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "actualStartTime" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:actualTime , tmo:startTime ; + nrl:maxCardinality "1" . + + tmo:transmissionType + a rdf:Property ; + rdfs:domain tmo:TaskTransmission ; + rdfs:label "transmissionType" ; + rdfs:range tmo:TransmissionType ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:taskTransmission + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "taskTransmission" ; + rdfs:range tmo:TaskTransmission ; + nrl:inverseProperty tmo:transmissionTask . + + tmo:TMO_Instance_PersonInvolvementRole_Executor + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Executor" . + + tmo:targetCompletion + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "targetCompletion" ; + rdfs:range rdfs:Literal ; + rdfs:subPropertyOf tmo:progress ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_Delegability_Medium + a tmo:Delegability ; + rdfs:label "TMO_Instance_Delegability_Medium" . + + tmo:AgentAbilityCarrier + a rdfs:Class ; + rdfs:label "AgentAbilityCarrier" ; + rdfs:subClassOf tmo:AbilityCarrier ; + protege:role "abstract" . + + tmo:transmissionTask + a rdf:Property ; + rdfs:domain tmo:TaskTransmission ; + rdfs:label "transmissionTask" ; + rdfs:range tmo:Task ; + rdfs:subPropertyOf tmo:taskReference ; + nrl:inverseProperty tmo:taskTransmission ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:Attachment + a rdfs:Class ; + rdfs:comment "By means of attachments, references to other resources can be established. Resources are information objects. Every Thing, which can be referenced, on the SSD is an information object. In contrast to the usual SSD references/associations, here additionally information can be specified. Further metadata about the role an attachment plays can be stated by means of instances of AttachmentRole. It can be expressed what the Role of attachment is e.g., regarding \"desired/requested\" or \"required\" or \"potentially useful / somehow related\" or \"used/produced/achieved\". The reference property models the actual link to the attached piece of information." ; + rdfs:label "Attachment" ; + rdfs:subClassOf rdfs:Resource , pimo:Association . + + tmo:TMO_Instance_TaskPrivacy_Private + a tmo:TaskPrivacyState ; + rdfs:label "TMO_Instance_TaskPrivacy_Private" . + + tmo:TMO_Instance_Importance_07 + a tmo:Importance ; + rdfs:label "TMO_Instance_Importance_07" . + + tmo:AssociationDependency + a rdfs:Class ; + rdfs:label "AssociationDependency" ; + rdfs:subClassOf tmo:UndirectedDependency . + + tmo:nextReviewIntervall + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "nextReviewIntervall" ; + rdfs:range xsd:integer ; + nrl:maxCardinality "1" . + + tmo:transmissionFrom + a rdf:Property ; + rdfs:domain tmo:TaskTransmission ; + rdfs:label "transmissionFrom" ; + rdfs:range pimo:Person ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:taskState + a rdf:Property ; + rdfs:comment "The task state describes the current state of the task as described in Section 5.2.7." ; + rdfs:domain tmo:Task ; + rdfs:label "taskState" ; + rdfs:range tmo:TaskState ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:delegability + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "delegability" ; + rdfs:range tmo:Delegability ; + rdfs:subPropertyOf tmo:timemanagement ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_PersonInvolvementRole_Related + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Related" . + + tmo:TMO_Instance_TaskContainer_inbox + a tmo:TaskContainer ; + rdfs:label "TMO_Instance_TaskContainer_inbox" . + + tmo:TMO_Instance_AttachmentRole_Required + a tmo:AttachmentRole ; + rdfs:label "TMO_Instance_AttachmentRole_Required" . + + tmo:taskPrivacyState + a rdf:Property ; + rdfs:comment """For the separation between professional and private purpose of a task, this attribute provides with the values \"professional/private\" a high level separation of privacy in terms of setting distribution rights to other users for the task. +This separation may arise as a general Nepomuk issue and may therefore be handled in conjunction with a privacy preserving SSD architecture.""" ; + rdfs:domain tmo:Task ; + rdfs:label "taskPrivacyState" ; + rdfs:range tmo:TaskPrivacyState ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" . + + tmo:taskName + a rdf:Property ; + rdfs:comment "The Task Name helps the user to identify a task in a list. It should be expressive enough to give a meaningful recognition. Details should be written in the description attribute instead. A name attribute is not allowed to contain line breaks." ; + rdfs:domain tmo:Task ; + rdfs:label "taskName" ; + rdfs:range rdfs:Literal ; + rdfs:subPropertyOf nao:prefLabel ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_AbilityCarrierRole_Requested + a tmo:AbilityCarrierRole ; + rdfs:label "TMO_Instance_AbilityCarrierRole_Requested" . + + tmo:TMO_Instance_PersonInvolvementRole_Controller + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Controller" . + + tmo:TMO_Instance_PersonInvolvementRole_Delegate + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Delegate" . + + tmo:transmissionStateChangesFrom + a rdf:Property ; + rdfs:domain tmo:TransmissionState ; + rdfs:label "transmissionStateChangesFrom" ; + rdfs:range tmo:TransmissionState ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" . + + tmo:TransmissionState + a rdfs:Class ; + rdfs:comment "States a task can go through during transmission of an task." ; + rdfs:label "TransmissionState" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:transmissionStateChangesTo + a rdf:Property ; + rdfs:domain tmo:TransmissionState ; + rdfs:label "transmissionStateChangesTo" ; + rdfs:range tmo:TransmissionState ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_PersonInvolvementRole_ExternalObserver + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_ExternalObserver" . + + tmo:TMO_Instance_Urgency_05 + a tmo:Urgency ; + rdfs:label "TMO_Instance_Urgency_05" . + + tmo:TaskDependency + a rdfs:Class ; + rdfs:comment """Between the tasks, further dependencies may exist. These dependencies allow for a graph network structure. For ease of use, dependencies should not be too frequent, otherwise the primarily character of a hierarchy would be diminished and a consequent graph representation would become considerable. However, such a graph representation has other drawbacks, the user is likely to loose oversight, tree structures are more helpful in structuring the work. + +A dependency relation is characterized by the type of the relation and by an additional description. There are different possibilities for dependency relations between tasks.""" ; + rdfs:label "TaskDependency" ; + rdfs:subClassOf rdfs:Resource , pimo:Association ; + protege:role "abstract" . + + tmo:TMO_Instance_TaskState_Completed + a tmo:TaskState ; + rdfs:label "TMO_Instance_TaskState_Completed" . + + tmo:TMO_Instance_Importance_06 + a tmo:Importance ; + rdfs:label "TMO_Instance_Importance_06" . + + tmo:attachmentRole + a rdf:Property ; + rdfs:domain tmo:Attachment ; + rdfs:label "attachmentRole" ; + rdfs:range tmo:AttachmentRole ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_TaskPrivacy_Professional + a tmo:TaskPrivacyState ; + rdfs:label "TMO_Instance_TaskPrivacy_Professional" . + + tmo:TMO_Instance_TaskState_Terminated + a tmo:TaskState ; + rdfs:label "TMO_Instance_TaskState_Terminated" . + + tmo:TMO_Instance_PersonInvolvementRole_Owner + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Owner" . + + tmo:TMO_Instance_AttachmentRole_Desired_Requested + a tmo:AttachmentRole ; + rdfs:label "TMO_Instance_AttachmentRole_Desired_Requested" . + + tmo:involvedPersonTask + a rdf:Property ; + rdfs:domain tmo:PersonInvolvement ; + rdfs:label "involvedPersonTask" ; + rdfs:range tmo:Task ; + rdfs:subPropertyOf pimo:associationMember ; + nrl:inverseProperty tmo:involvedPersons ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_TransmissionState_Accepted_NotTransmitted + a tmo:TransmissionState ; + rdfs:label "TMO_Instance_TransmissionState_Accepted_NotTransmitted" . + + tmo:TMO_Instance_PersonInvolvementRole_Analyst + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Analyst" . + + tmo:logEntry + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "logEntry" ; + rdfs:range rdfs:Resource . + + tmo:transmissionTo + a rdf:Property ; + rdfs:domain tmo:TaskTransmission ; + rdfs:label "transmissionTo" ; + rdfs:range pimo:Person ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:Importance + a rdfs:Class ; + rdfs:label "Importance" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:TMO_Instance_TransmissionType_Join + a tmo:TransmissionType ; + rdfs:label "TMO_Instance_TransmissionType_Join" . + + tmo:Delegability + a rdfs:Class ; + rdfs:label "Delegability" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:lastReviewDate + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "lastReviewDate" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:dateTime ; + nrl:maxCardinality "1" . + + tmo:Role + a rdfs:Class ; + rdfs:comment "examples: Architect, Developer, ..." ; + rdfs:label "Role" ; + rdfs:subClassOf tmo:AbilityCarrier . + + tmo:timemanagement + a rdf:Property ; + rdfs:label "timemanagement" ; + rdfs:range rdfs:Literal ; + nrl:maxCardinality "1" . + + tmo:taskGoal + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "taskGoal" ; + rdfs:range rdfs:Resource . + + tmo:dependencyMemberA + a rdf:Property ; + rdfs:comment "The semantic of this relation is defined in the sublclass of undirected Dependency on which this property is stated. (The subject of the statment where this property is expressed)" ; + rdfs:domain tmo:TaskDependency ; + rdfs:label "dependencyMemberA" ; + rdfs:range tmo:Task ; + rdfs:subPropertyOf tmo:taskReference , pimo:associationMember ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:startTime + a rdf:Property ; + rdfs:label "startTime" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:dateTime ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_Urgency_08 + a tmo:Urgency ; + rdfs:label "TMO_Instance_Urgency_08" . + + tmo:taskStateChangesFrom + a rdf:Property ; + rdfs:domain tmo:TaskState ; + rdfs:label "taskStateChangesFrom" ; + rdfs:range tmo:TaskState ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" . + + tmo:receiveDateTime + a rdf:Property ; + rdfs:domain tmo:TaskTransmission ; + rdfs:label "receiveDateTime" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:dateTime ; + nrl:maxCardinality "1" . + + tmo:createdBy + a rdf:Property ; + rdfs:domain tmo:Attachment ; + rdfs:label "createdBy" ; + rdfs:range pimo:Person ; + nrl:maxCardinality "1" . + + tmo:progress + a rdf:Property ; + rdfs:label "progress" ; + rdfs:range rdfs:Literal ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_AbilityCarrierRole_Used + a tmo:AbilityCarrierRole ; + rdfs:label "TMO_Instance_AbilityCarrierRole_Used" . + + tmo:TMO_Instance_Importance_05 + a tmo:Importance ; + rdfs:label "TMO_Instance_Importance_05" . + + tmo:TMO_Instance_TaskContainer_activetasks + a tmo:TaskContainer ; + rdfs:label "TMO_Instance_TaskContainer_activetasks" . + + tmo:sendDateTime + a rdf:Property ; + rdfs:domain tmo:TaskTransmission ; + rdfs:label "sendDateTime" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:dateTime ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_PersonInvolvementRole_Collaborator + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Collaborator" . + + tmo:TMO_Instance_TaskState_Suspended + a tmo:TaskState ; + rdfs:label "TMO_Instance_TaskState_Suspended" . + + tmo:AbilityCarrierInvolvement + a rdfs:Class ; + rdfs:comment "The class AbilityCarrier_Involvement ties together an AbilityCarrier with an AbilityCarrier_Role. This is a role based modelling approach. An n-ary relation is realized." ; + rdfs:label "AbilityCarrierInvolvement" ; + rdfs:subClassOf rdfs:Resource , pimo:Association . + + tmo:endTime + a rdf:Property ; + rdfs:label "endTime" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:dateTime ; + nrl:maxCardinality "1" . + + tmo:dependencyMemberB + a rdf:Property ; + rdfs:comment "The semantic of this relation is defined in the sublclass of undirected Dependency on which this property is stated. (The subject of the statment where this property is expressed)" ; + rdfs:domain tmo:TaskDependency ; + rdfs:label "dependencyMemberB" ; + rdfs:range tmo:Task ; + rdfs:subPropertyOf tmo:taskReference , pimo:associationMember ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:TMO_Instance_Priority_High + a tmo:Priority ; + rdfs:label "TMO_Instance_Priority_High" . + + tmo:TMO_Instance_PersonInvolvementRole_Observer + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Observer" . + + tmo:TMO_Instance_Delegability_Unrestricted + a tmo:Delegability ; + rdfs:label "TMO_Instance_Delegability_Unrestricted" . + + tmo:TMO_Instance_Priority_Medium + a tmo:Priority ; + rdfs:label "TMO_Instance_Priority_Medium" . + + tmo:TMO_Instance_Delegability_Low + a tmo:Delegability ; + rdfs:label "TMO_Instance_Delegability_Low" . + + tmo:Interdependence + a rdfs:Class ; + rdfs:label "Interdependence" ; + rdfs:subClassOf tmo:UndirectedDependency . + + tmo:involvedPersonRole + a rdf:Property ; + rdfs:domain tmo:PersonInvolvement ; + rdfs:label "involvedPersonRole" ; + rdfs:range tmo:PersonInvolvementRole ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:AttachmentRole + a rdfs:Class ; + rdfs:comment "AttachmentRoles further specify the type of how an attachment relates to a task. Example instances of AttachmentRoles are e.g. \"desired_request\", \"required\" and \"used\"." ; + rdfs:label "AttachmentRole" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:TMO_Instance_Urgency_07 + a tmo:Urgency ; + rdfs:label "TMO_Instance_Urgency_07" . + + tmo:TMO_Instance_PersonInvolvementRole_Reviewer + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Reviewer" . + + tmo:TransmissionType + a rdfs:Class ; + rdfs:comment "By means of the TransmissionType one can distinguish several different types which might imply a different business logic. e.g. delegation can mean that the results of the task fulfillment care to be reported back to the sender of the task." ; + rdfs:label "TransmissionType" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:actualEndTime + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "actualEndTime" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:endTime , tmo:actualTime ; + nrl:maxCardinality "1" . + + tmo:subTask + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "subTask" ; + rdfs:range tmo:Task ; + rdfs:subPropertyOf pimo:hasPart ; + nrl:inverseProperty tmo:superTask . + + tmo:TMO_Instance_TransmissionType_Delegation + a tmo:TransmissionType ; + rdfs:label "TMO_Instance_TransmissionType_Delegation" . + + tmo:TMO_Instance_Importance_04 + a tmo:Importance ; + rdfs:label "TMO_Instance_Importance_04" . + + tmo:TaskState + a rdfs:Class ; + rdfs:comment """The task state property allows tracking a task during its lifecycle. Initially the state is just \"created\". +The TaskState class was modeled so that for each state can be set which the typical prior and posterior states are. This has the advantage that e.g. a UI can retrieve the allowed states at runtime from the ontology; rather can having this potentially changing knowledge hard coded. But the prior and posterior states are only defaults; the human user is always free to change the state.""" ; + rdfs:label "TaskState" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:taskSource + a rdf:Property ; + rdfs:comment "here can be stated from which sources a task was derived. e.g from another task or from an task pattern" ; + rdfs:domain tmo:Task ; + rdfs:label "taskSource" ; + rdfs:range rdfs:Resource ; + rdfs:subPropertyOf tmo:taskReference ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_Urgency_02 + a tmo:Urgency ; + rdfs:label "TMO_Instance_Urgency_02" . + + tmo:TMO_Instance_TransmissionState_Accepted_Transmitted + a tmo:TransmissionState ; + rdfs:label "TMO_Instance_TransmissionState_Accepted_Transmitted" . + + tmo:TMO_Instance_TaskState_New + a tmo:TaskState ; + rdfs:label "TMO_Instance_TaskState_New" . + + tmo:Urgency + a rdfs:Class ; + rdfs:label "Urgency" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:StateTypeRole + a rdfs:Class ; + rdfs:comment "StateTypeRole is an abstract class which subsumes various other classes which represent \"states\" or roles e.g. in role based modelling conpetualisations." ; + rdfs:label "StateTypeRole" ; + rdfs:subClassOf rdfs:Resource . + + tmo:TMO_Instance_TaskContainer_trashtasks + a tmo:TaskContainer ; + rdfs:label "TMO_Instance_TaskContainer_trashtasks" . + + tmo:contextThread + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "contextThread" ; + rdfs:range ; + nrl:inverseProperty tmo:contextTask ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_AttachmentRole_Used + a tmo:AttachmentRole ; + rdfs:label "TMO_Instance_AttachmentRole_Used" . + + tmo:abilityCarrierTask + a rdf:Property ; + rdfs:domain tmo:AbilityCarrierInvolvement ; + rdfs:label "abilityCarrierTask" ; + rdfs:range tmo:Task ; + rdfs:subPropertyOf pimo:associationMember ; + nrl:inverseProperty tmo:abilityCarrierInvolvement ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_TransmissionState_Rejected_NotTransmitted + a tmo:TransmissionState ; + rdfs:label "TMO_Instance_TransmissionState_Rejected_NotTransmitted" . + + tmo:TMO_Instance_Priority_Low + a tmo:Priority ; + rdfs:label "TMO_Instance_Priority_Low" . + + tmo:TMO_Instance_TransmissionState_Transmitted + a tmo:TransmissionState ; + rdfs:label "TMO_Instance_TransmissionState_Transmitted" . + + tmo:TMO_Instance_Importance_03 + a tmo:Importance ; + rdfs:label "TMO_Instance_Importance_03" . + + tmo:TMO_Instance_AttachmentRole_Related + a tmo:AttachmentRole ; + rdfs:label "TMO_Instance_AttachmentRole_Related" . + + tmo:taskReference + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "taskReference" ; + rdfs:range tmo:Task ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_PersonInvolvementRole_Involved + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Involved" . + + tmo:AbilityCarrier + a rdfs:Class ; + rdfs:comment """AbilityCarrier is an abstract class which circumferences all entities which can take action or which are somehow involved in tasks. +This is in other task conceptualizations rather named \"actor\". But here it is named AbilityCarrier because it is not neccessarily \"active\". + +The execution of a task relies on certain abilities. The abstract concept of +Abilitiy_Carriers circumference all those more concrete concepts +of which one can think of while working on tasks. Using this abstract +class enables to substitute such Ability Carrier's in the process of +generating patterns from task instances and vice versa in the process of +instantiating task instances from patterns without violating the schema. +With this attribute, a series of ability carrying entities (Person, Role, +Skill, OrganizationalUnit, InformalDescribedAbility) +and the role of involvement (required, request, used) is enabled. The role +hereby allows specifying how the ability carrying entity is or was +involved.""" ; + rdfs:label "AbilityCarrier" ; + rdfs:subClassOf rdfs:Resource ; + protege:role "abstract" . + + tmo:importance + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "importance" ; + rdfs:range tmo:Importance ; + rdfs:subPropertyOf tmo:timemanagement ; + nrl:maxCardinality "1" . + + tmo:subTaskOrdering + a rdf:Property ; + rdfs:comment "Ordering of the subtasks listed in the tmo:subTasks property of this Task. This is only for ordering/sorting in GUIs, the semantic relation is defined in subTasks, and if this and subTasks differ, subTasks is the correct list." ; + rdfs:domain tmo:Task ; + rdfs:label "subTaskOrdering" ; + rdfs:range rdf:List ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_Urgency_01 + a tmo:Urgency ; + rdfs:label "TMO_Instance_Urgency_01" . + + tmo:dependencyOrderNumber + a rdf:Property ; + rdfs:domain tmo:TaskDependency ; + rdfs:label "dependencyOrderNumber" ; + rdfs:range xsd:int ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:actualTime + a rdf:Property ; + rdfs:label "actualTime" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:dateTime ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_PersonInvolvementRole_Initiator + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Initiator" . + + tmo:dateTime + a rdf:Property ; + rdfs:comment "dateTime subsumes various properties with Range XMLSchema:dateTime. If possible they are further grouped by \"abstract\" properties." ; + rdfs:label "dateTime" ; + rdfs:range xsd:dateTime ; + nrl:maxCardinality "1" . + + tmo:UndirectedDependency + a rdfs:Class ; + rdfs:comment "A symmetric relations between task." ; + rdfs:label "UndirectedDependency" ; + rdfs:subClassOf tmo:TaskDependency . + + tmo:attachment + a rdf:Property ; + rdfs:comment "connects a Task with an Attachment object. Attachments are associations of Things." ; + rdfs:domain tmo:Task ; + rdfs:label "attachment" ; + rdfs:range tmo:Attachment ; + nrl:inverseProperty tmo:attachmentTask . + + tmo:attachmentTask + a rdf:Property ; + rdfs:comment "Inverse of attachment, connects an Attachment Association to the associated Task. Is required for every instance of Attachment." ; + rdfs:domain tmo:Attachment ; + rdfs:label "attachmentTask" ; + rdfs:range tmo:Task ; + rdfs:subPropertyOf pimo:associationMember ; + nrl:inverseProperty tmo:attachment ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_PersonInvolvementRole_Receiver + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Receiver" . + + tmo:TMO_Instance_TaskState_Deleted + a tmo:TaskState ; + rdfs:label "TMO_Instance_TaskState_Deleted" . + + tmo:taskStateChangesTo + a rdf:Property ; + rdfs:domain tmo:TaskState ; + rdfs:label "taskStateChangesTo" ; + rdfs:range tmo:TaskState ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" . + + tmo:TaskPrivacyState + a rdfs:Class ; + rdfs:comment """Privacy Status serves for the separation between a professional and a private purpose of a task. This attribute provides with the values \"professional/private\" a high-level separation of privacy in terms of setting distribution and access +rights to other users for the task. +This separation may arise as a general Nepomuk issue and may therefore be handled in conjunction with a privacy preserving SSD architecture.""" ; + rdfs:label "TaskPrivacyState" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:TMO_Instance_Urgency_09 + a tmo:Urgency ; + rdfs:label "TMO_Instance_Urgency_09" . + + tmo:TMO_Instance_Importance_02 + a tmo:Importance ; + rdfs:label "TMO_Instance_Importance_02" . + + tmo:TMO_Instance_PersonInvolvementRole_InternalObserver + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_InternalObserver" . + + tmo:Skill + a rdfs:Class ; + rdfs:comment "examples are e.g. technologies like Java, XML, ..." ; + rdfs:label "Skill" ; + rdfs:subClassOf tmo:AbilityCarrier . +} + + {tmo: a nrl:Ontology ; + nao:creator ; + nao:hasDefaultNamespace + "http://www.semanticdesktop.org/ontologies/2008/05/20/tmo#" ; + nao:hasDefaultNamespaceAbbreviation + "tmo" ; + nao:lastModified "2009-08-14T10:04:25.546Z" ; + nao:status "Unstable" ; + nao:updatable "0 " ; + nao:version "0.9.0" ; + nao:prefLabel "Task Management Ontology" ; + nao:description "The TMO Ontology can be used to describe personal tasks of individuals, also known as to-do lists. It is based on RDF and NRL, the Nepomuk Representational Language and other Semantic Web ontologies." . + + + a nrl:GraphMetadata ; + nrl:coreGraphMetadataFor + tmo: . +} + diff --git a/tests/Trinity.Tests.Stardog/bin/Release/net472/Models/test-vocab.rdf b/tests/Trinity.Tests.Stardog/bin/Release/net472/Models/test-vocab.rdf new file mode 100644 index 0000000..b295ae6 --- /dev/null +++ b/tests/Trinity.Tests.Stardog/bin/Release/net472/Models/test-vocab.rdf @@ -0,0 +1,39 @@ + + + + + + + Animal + An animal + + + + + Horse + A Horse + + + + + + consumes + Something an animal consumes. + + + + + + consumes + Something an animal consumes. + + + + + diff --git a/tests/Trinity.Tests.Stardog/bin/Release/net472/Ontologies/dces.ttl b/tests/Trinity.Tests.Stardog/bin/Release/net472/Ontologies/dces.ttl new file mode 100644 index 0000000..4510e02 --- /dev/null +++ b/tests/Trinity.Tests.Stardog/bin/Release/net472/Ontologies/dces.ttl @@ -0,0 +1,177 @@ +@prefix rdf: . +@prefix owl: . +@prefix skos: . +@prefix dcam: . +@prefix dcterms: . +@prefix rdfs: . + + + dcterms:modified "2013-01-03"^^ ; + dcterms:publisher ; + dcterms:title "Dublin Core Metadata Element Set, Version 1.1"@en . + + + dcterms:description "Examples of a Contributor include a person, an organization, or a service. Typically, the name of a Contributor should be used to indicate the entity."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "An entity responsible for making contributions to the resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Contributor"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Spatial topic and spatial applicability may be a named place or a location specified by its geographic coordinates. Temporal topic may be a named period, date, or date range. A jurisdiction may be a named administrative entity or a geographic place to which the resource applies. Recommended best practice is to use a controlled vocabulary such as the Thesaurus of Geographic Names [TGN]. Where appropriate, named places or time periods can be used in preference to numeric identifiers such as sets of coordinates or date ranges."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "The spatial or temporal topic of the resource, the spatial applicability of the resource, or the jurisdiction under which the resource is relevant."@en ; + rdfs:isDefinedBy ; + rdfs:label "Coverage"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Examples of a Creator include a person, an organization, or a service. Typically, the name of a Creator should be used to indicate the entity."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "An entity primarily responsible for making the resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Creator"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Date may be used to express temporal information at any level of granularity. Recommended best practice is to use an encoding scheme, such as the W3CDTF profile of ISO 8601 [W3CDTF]."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "A point or period of time associated with an event in the lifecycle of the resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Date"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Description may include but is not limited to: an abstract, a table of contents, a graphical representation, or a free-text account of the resource."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "An account of the resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Description"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Examples of dimensions include size and duration. Recommended best practice is to use a controlled vocabulary such as the list of Internet Media Types [MIME]."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "The file format, physical medium, or dimensions of the resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Format"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Recommended best practice is to identify the resource by means of a string conforming to a formal identification system. "@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "An unambiguous reference to the resource within a given context."@en ; + rdfs:isDefinedBy ; + rdfs:label "Identifier"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Recommended best practice is to use a controlled vocabulary such as RFC 4646 [RFC4646]."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "A language of the resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Language"@en ; + rdfs:seeAlso ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Examples of a Publisher include a person, an organization, or a service. Typically, the name of a Publisher should be used to indicate the entity."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "An entity responsible for making the resource available."@en ; + rdfs:isDefinedBy ; + rdfs:label "Publisher"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Recommended best practice is to identify the related resource by means of a string conforming to a formal identification system. "@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "A related resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Relation"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Typically, rights information includes a statement about various property rights associated with the resource, including intellectual property rights."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "Information about rights held in and over the resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Rights"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "The described resource may be derived from the related resource in whole or in part. Recommended best practice is to identify the related resource by means of a string conforming to a formal identification system."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "A related resource from which the described resource is derived."@en ; + rdfs:isDefinedBy ; + rdfs:label "Source"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Typically, the subject will be represented using keywords, key phrases, or classification codes. Recommended best practice is to use a controlled vocabulary."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2012-06-14"^^ ; + a rdf:Property ; + rdfs:comment "The topic of the resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Subject"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "A name given to the resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Title"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Recommended best practice is to use a controlled vocabulary such as the DCMI Type Vocabulary [DCMITYPE]. To describe the file format, physical medium, or dimensions of the resource, use the Format element."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "The nature or genre of the resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Type"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + diff --git a/tests/Trinity.Tests.Stardog/bin/Release/net472/Ontologies/fo af.rdf b/tests/Trinity.Tests.Stardog/bin/Release/net472/Ontologies/fo af.rdf new file mode 100644 index 0000000..68d0700 --- /dev/null +++ b/tests/Trinity.Tests.Stardog/bin/Release/net472/Ontologies/fo af.rdf @@ -0,0 +1,609 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Label Property + A foaf:LabelProperty is any RDF property with texual values that serve as labels. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/Trinity.Tests.Stardog/bin/Release/net472/Ontologies/foaf.rdf b/tests/Trinity.Tests.Stardog/bin/Release/net472/Ontologies/foaf.rdf new file mode 100644 index 0000000..68d0700 --- /dev/null +++ b/tests/Trinity.Tests.Stardog/bin/Release/net472/Ontologies/foaf.rdf @@ -0,0 +1,609 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Label Property + A foaf:LabelProperty is any RDF property with texual values that serve as labels. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/Trinity.Tests.Stardog/bin/Release/net472/Ontologies/nco.trig b/tests/Trinity.Tests.Stardog/bin/Release/net472/Ontologies/nco.trig new file mode 100644 index 0000000..c7b560c --- /dev/null +++ b/tests/Trinity.Tests.Stardog/bin/Release/net472/Ontologies/nco.trig @@ -0,0 +1,811 @@ +# +# Copyright (c) 2007 NEPOMUK Consortium +# Copyright (c) 2009-2011 Sebastian Trueg +# +# All rights reserved, licensed under either CC-BY or BSD. +# +# You are free: +# * to Share - to copy, distribute and transmit the work +# * to Remix - to adapt the work +# Under the following conditions: +# * Attribution - You must attribute the work in the manner specified by the author +# or licensor (but not in any way that suggests that they endorse you or your use +# of the work). +# +# Redistribution and use in source and binary forms, with or without modification, +# are permitted provided that the following conditions are met: +# * Redistributions of source code must retain the above copyright notice, this +# list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this +# list of conditions and the following disclaimer in the documentation and/or +# other materials provided with the distribution. +# * Neither the names of the authors nor the names of contributors may +# be used to endorse or promote products derived from this ontology without +# specific prior written permission. +# +# THIS ONTOLOGY IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +# THIS ONTOLOGY, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +@prefix exif: . +@prefix nid3: . +@prefix nrl: . +@prefix nfo: . +@prefix xsd: . +@prefix tmo: . +@prefix protege: . +@prefix nmo: . +@prefix rdfs: . +@prefix nexif: . +@prefix ncal: . +@prefix pimo: . +@prefix dcterms: . +@prefix nao: . +@prefix geo: . +@prefix dc: . +@prefix nie: . +@prefix nco: . +@prefix rdf: . + +nco: {nco:region + a rdf:Property ; + rdfs:comment "Region. Inspired by the fifth part of the value of the 'ADR' property as defined in RFC 2426, sec. 3.2.1" ; + rdfs:domain nco:PostalAddress ; + rdfs:label "region" ; + rdfs:range xsd:string ; + nrl:maxCardinality 1 . + + nco:key + a rdf:Property ; + rdfs:comment "An encryption key attached to a contact. Inspired by the KEY property defined in RFC 2426 sec. 3.7.2" ; + rdfs:domain nco:Contact ; + rdfs:label "key" ; + rdfs:range nie:DataObject ; + rdfs:subPropertyOf nie:hasPart . + + nco:nameHonorificSuffix + a rdf:Property ; + rdfs:comment "A suffix for the name of the Object represented by the given object. See documentation for the 'nameFamily' for details." ; + rdfs:domain nco:PersonContact ; + rdfs:label "nameHonorificSuffix" ; + rdfs:range xsd:string . + + nco:url + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "A uniform resource locator associated with the given role of a Contact. Inspired by the 'URL' property defined in RFC 2426 Sec. 3.6.8." ; + rdfs:domain nco:Role ; + rdfs:label "url" ; + rdfs:range rdfs:Resource . + + nco:VoicePhoneNumber + a rdfs:Class ; + rdfs:comment "A telephone number with voice communication capabilities. Class inspired by the TYPE=voice parameter of the TEL property defined in RFC 2426 sec. 3.3.1" ; + rdfs:label "VoicePhoneNumber" ; + rdfs:subClassOf nco:PhoneNumber . + + nco:nameFamily + a rdf:Property ; + rdfs:comment "The family name of an Object represented by this Contact. These applies to people that have more than one given name. The 'first' one is considered 'the' given name (see nameGiven) property. All additional ones are considered 'additional' names. The name inherited from parents is the 'family name'. e.g. For Dr. John Phil Paul Stevenson Jr. M.D. A.C.P. we have contact with: honorificPrefix: 'Dr.', nameGiven: 'John', nameAdditional: 'Phil', nameAdditional: 'Paul', nameFamily: 'Stevenson', honorificSuffix: 'Jr.', honorificSuffix: 'M.D.', honorificSuffix: 'A.C.P.'. These properties form an equivalent of the compound 'N' property as defined in RFC 2426 Sec. 3.1.2" ; + rdfs:domain nco:PersonContact ; + rdfs:label "nameFamily" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" . + + nco:VideoTelephoneNumber + a rdfs:Class ; + rdfs:comment "A Video telephone number. A class inspired by the TYPE=video parameter of the TEL property defined in RFC 2426 sec. 3.3.1" ; + rdfs:label "VideoTelephoneNumber" ; + rdfs:subClassOf nco:VoicePhoneNumber . + + nco:contactUID + a rdf:Property ; + rdfs:comment "A value that represents a globally unique identifier corresponding to the individual or resource associated with the Contact. An equivalent of the 'UID' property defined in RFC 2426 Sec. 3.6.7" ; + rdfs:domain nco:Contact ; + rdfs:label "contactUID" ; + rdfs:range xsd:string ; + rdfs:subPropertyOf nie:identifier ; + nrl:maxCardinality "1" . + + nco:publisher + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "An entity responsible for making the InformationElement available." ; + rdfs:domain nie:InformationElement ; + rdfs:label "publisher" ; + rdfs:range nco:Contact ; + rdfs:subPropertyOf dc:publisher . + + nco:country + a rdf:Property ; + rdfs:comment "A part of an address specyfing the country. Inspired by the seventh part of the value of the 'ADR' property as defined in RFC 2426, sec. 3.2.1" ; + rdfs:domain nco:PostalAddress ; + rdfs:label "country" ; + rdfs:range xsd:string ; + nrl:maxCardinality 1 . + + nco:nameHonorificPrefix + a rdf:Property ; + rdfs:comment "A prefix for the name of the object represented by this Contact. See documentation for the 'nameFamily' property for details." ; + rdfs:domain nco:PersonContact ; + rdfs:label "nameHonorificPrefix" ; + rdfs:range xsd:string . + + nco:extendedAddress + a rdf:Property ; + rdfs:comment "An extended part of an address. This field might be used to express parts of an address that aren't include in the name of the Contact but also aren't part of the actual location. Usually the streed address and following fields are enough for a postal letter to arrive. Examples may include ('University of California Campus building 45', 'Sears Tower 34th floor' etc.) Inspired by the second part of the value of the 'ADR' property as defined in RFC 2426, sec. 3.2.1" ; + rdfs:domain nco:PostalAddress ; + rdfs:label "extendedAddress" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" . + + nco:IMAccount + a rdfs:Class ; + rdfs:comment "An account in an Instant Messaging system." ; + rdfs:label "IMAccount" ; + rdfs:subClassOf nco:ContactMedium . + + nco:hasIMAccount + a rdf:Property ; + rdfs:comment "Indicates that an Instant Messaging account owned by an entity represented by this contact." ; + rdfs:domain nco:Role ; + rdfs:label "hasIMAccount" ; + rdfs:range nco:IMAccount ; + rdfs:subPropertyOf nco:hasContactMedium . + + nco:IsdnNumber + a rdfs:Class ; + rdfs:comment "An ISDN phone number. Inspired by the (TYPE=isdn) parameter of the TEL property as defined in RFC 2426 sec 3.3.1." ; + rdfs:label "IsdnNumber" ; + rdfs:subClassOf nco:VoicePhoneNumber . + + nco:creator + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "Creator of an information element, an entity primarily responsible for the creation of the content of the data object." ; + rdfs:domain nie:InformationElement ; + rdfs:label "creator" ; + rdfs:range nco:Contact ; + rdfs:subPropertyOf dc:creator , nco:contributor , nao:creator . + + nco:hasLocation + a rdf:Property ; + rdfs:comment "Geographical location of the contact. Inspired by the 'GEO' property specified in RFC 2426 Sec. 3.4.2" ; + rdfs:domain nco:Contact ; + rdfs:label "hasLocation" ; + rdfs:range geo:Point ; + nrl:maxCardinality "1" . + + nco:birthday + a rdf:Property ; + rdfs:comment "Links a contact with the calendar event of his birthday. (NCAL version)"; + rdfs:label "birthday" ; + rdfs:domain nco:Contact ; + rdfs:range ncal:BirthdayEvent ; + nrl:maxCardinality "1" . + + nco:phoneNumber + a rdf:Property ; + rdfs:domain nco:PhoneNumber ; + rdfs:label "phoneNumber" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" . + + nco:nickname + a rdf:Property ; + rdfs:comment "A nickname of the Object represented by this Contact. This is an equivalent of the 'NICKNAME' property as defined in RFC 2426 Sec. 3.1.3." ; + rdfs:domain nco:Contact ; + rdfs:label "nickname" ; + rdfs:range xsd:string . + + nco:imStatus + a rdf:Property, nrl:NonDefiningProperty ; + rdfs:comment "Current status of the given IM account. When this property is set, the nco:imStatusType should also always be set. Applications should attempt to parse this property to determine the presence, only falling back to the nco:imStatusType property in the case that this property's value is unrecognised. Values for this property may include 'available', 'offline', 'busy' etc. The exact choice of them is unspecified, although it is recommended to follow the guidance of the Telepathy project when choosing a string identifier http://telepathy.freedesktop.org/spec/Connection_Interface_Simple_Presence.html#description" ; + rdfs:domain nco:IMAccount ; + rdfs:label "imStatus" ; + rdfs:range xsd:string ; + nrl:maxCardinality 1 . + + nco:imStatusType + a rdf:Property ; + rdfs:comment "Current status type of the given IM account. When this property is set, the nco:imStatus property should also always be set. Applications should attempt to parse the nco:imStatus property to determine the presence, only falling back to this property in the case that the nco:imStatus property's value is unrecognised." ; + rdfs:domain nco:IMAccount ; + rdfs:label "instant messaging status type" ; + rdfs:range nco:IMStatusType ; + nrl:maxCardinality 1 . + + nco:IMStatusType a rdfs:Class ; + rdfs:label "instant messaging status type" ; + rdfs:comment "The status type of an IMAccount. Based on the Connection_Presence_Type enumeration of the Telepathy project: http://telepathy.freedesktop.org/spec/Connection_Interface_Simple_Presence.html#Enum:Connection_Presence_Type" ; + rdfs:subClassOf rdfs:Resource . + + nco:IMStatusTypeOffline + a nco:IMStatusType ; + rdfs:label "offline" . + + nco:IMStatusTypeAvailable + a nco:IMStatusType ; + rdfs:label "available" . + + nco:IMStatusTypeAway + a nco:IMStatusType ; + rdfs:label "away" . + + nco:IMStatusTypeExtendedAway + a nco:IMStatusType ; + rdfs:label "extended away". + + nco:IMStatusTypeHidden + a nco:IMStatusType ; + rdfs:label "hidden" . + + nco:IMStatusTypeBusy + a nco:IMStatusType ; + rdfs:label "busy" . + + nco:IMStatusTypeUnknown + a nco:IMStatusType ; + rdfs:label "unknown" . + + nco:containsContact + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment """A property used to group contacts into contact groups. This + property was NOT defined in the VCARD standard. See documentation for the + 'ContactList' class for details""" ; + rdfs:domain nco:ContactList ; + rdfs:label "containsContact" ; + rdfs:range nco:ContactListDataObject ; + rdfs:subPropertyOf nie:hasPart . + + nco:department + a rdf:Property ; + rdfs:comment "Department. The organizational unit within the organization." ; + rdfs:domain nco:Affiliation ; + rdfs:label "department" ; + rdfs:range xsd:string . + + nco:imID + a rdf:Property ; + rdfs:comment "Identifier of the IM account. Examples of such identifier might include ICQ UINs, Jabber IDs, Skype names etc." ; + rdfs:domain nco:IMAccount ; + rdfs:label "imID" ; + rdfs:range xsd:string ; + rdfs:subPropertyOf nao:identifier . + + nco:addressLocation + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "The geographical location of a postal address." ; + rdfs:domain nco:PostalAddress ; + rdfs:label "addressLocation" ; + rdfs:range geo:Point ; + nrl:maxCardinality "1" . + + nco:note + a rdf:Property ; + rdfs:comment "A note about the object represented by this Contact. An equivalent for the 'NOTE' property defined in RFC 2426 Sec. 3.6.2" ; + rdfs:domain nco:Contact ; + rdfs:label "note" ; + rdfs:range xsd:string ; + rdfs:subPropertyOf nie:description . + + nco:representative + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "An object that represent an object represented by this Contact. Usually this property is used to link a Contact to an organization, to a contact to the representative of this organization the user directly interacts with. An equivalent for the 'AGENT' property defined in RFC 2426 Sec. 3.5.4" ; + rdfs:domain nco:Contact ; + rdfs:label "representative" ; + rdfs:range nco:Contact . + + nco:nameAdditional + a rdf:Property ; + rdfs:comment "Additional given name of an object represented by this contact. See documentation for 'nameFamily' property for details." ; + rdfs:domain nco:PersonContact ; + rdfs:label "nameAdditional" ; + rdfs:range xsd:string . + + nco:nameGiven + a rdf:Property ; + rdfs:comment "The given name for the object represented by this Contact. See documentation for 'nameFamily' property for details." ; + rdfs:domain nco:PersonContact ; + rdfs:label "nameGiven" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" . + + nco:PcsNumber + a rdfs:Class ; + rdfs:comment "Personal Communication Services Number. A class inspired by the TYPE=pcs parameter of the TEL property defined in RFC 2426 sec. 3.3.1" ; + rdfs:label "PcsNumber" ; + rdfs:subClassOf nco:VoicePhoneNumber . + + nco:ContactList + a rdfs:Class ; + rdfs:comment "A contact list, this class represents an addressbook or a contact list of an IM application. Contacts inside a contact list can belong to contact groups." ; + rdfs:label "ContactList" ; + rdfs:subClassOf nie:InformationElement . + + nco:fullname + a rdf:Property ; + rdfs:comment "To specify the formatted text corresponding to the name of the object the Contact represents. An equivalent of the FN property as defined in RFC 2426 Sec. 3.1.1." ; + rdfs:domain nco:Contact ; + rdfs:label "fullname" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" ; + rdfs:subPropertyOf nie:title . + + nco:ContactGroup + a rdfs:Class ; + rdfs:comment "A group of Contacts. Could be used to express a group in an addressbook or on a contact list of an IM application. One contact can belong to many groups." ; + rdfs:label "ContactGroup" ; + rdfs:subClassOf nie:InformationElement . + + nco:BbsNumber + a rdfs:Class ; + rdfs:comment "A Bulletin Board System (BBS) phone number. Inspired by the (TYPE=bbsl) parameter of the TEL property as defined in RFC 2426 sec 3.3.1." ; + rdfs:label "BbsNumber" ; + rdfs:subClassOf nco:ModemNumber . + + nco:Affiliation + a rdfs:Class ; + rdfs:comment "Aggregates three properties defined in RFC2426. Originally all three were attached directly to a person. One person could have only one title and one role within one organization. This class is intended to lift this limitation." ; + rdfs:label "Affiliation" ; + rdfs:subClassOf nco:Role . + + nco:streetAddress + a rdf:Property ; + rdfs:comment "The streed address. Inspired by the third part of the value of the 'ADR' property as defined in RFC 2426, sec. 3.2.1" ; + rdfs:domain nco:PostalAddress ; + rdfs:label "streetAddress" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" . + + nco:OrganizationContact + a rdfs:Class ; + rdfs:comment "A Contact that denotes on Organization." ; + rdfs:label "OrganizationContact" ; + rdfs:subClassOf nco:Contact . + + nco:PhoneNumber + a rdfs:Class ; + rdfs:comment "A telephone number." ; + rdfs:label "PhoneNumber" ; + rdfs:subClassOf nco:ContactMedium . + + nco:Contact + a rdfs:Class ; + rdfs:comment "A Contact. A piece of data that can provide means to identify or communicate with an entity." ; + rdfs:label "Contact" ; + rdfs:subClassOf nco:Role , nie:InformationElement , nao:Party . + + nco:ModemNumber + a rdfs:Class ; + rdfs:comment "A modem phone number. Inspired by the (TYPE=modem) parameter of the TEL property as defined in RFC 2426 sec 3.3.1." ; + rdfs:label "ModemNumber" ; + rdfs:subClassOf nco:PhoneNumber . + + nco:Role + a rdfs:Class ; + rdfs:comment "A role played by a contact. Contacts that denote people, can have many roles (e.g. see the hasAffiliation property and Affiliation class). Contacts that denote Organizations or other Agents usually have one role. Each role can introduce additional contact media." ; + rdfs:label "Role" ; + rdfs:subClassOf rdfs:Resource . + + nco:PagerNumber + a rdfs:Class ; + rdfs:comment "A pager phone number. Inspired by the (TYPE=pager) parameter of the TEL property as defined in RFC 2426 sec 3.3.1." ; + rdfs:label "PagerNumber" ; + rdfs:subClassOf nco:MessagingNumber . + + nco:hasPhoneNumber + a rdf:Property ; + rdfs:comment "A number for telephony communication with the object represented by this Contact. An equivalent of the 'TEL' property defined in RFC 2426 Sec. 3.3.1" ; + rdfs:domain nco:Role ; + rdfs:label "hasPhoneNumber" ; + rdfs:range nco:PhoneNumber ; + rdfs:subPropertyOf nco:hasContactMedium . + + nco:photo + a rdf:Property ; + rdfs:comment "Photograph attached to a Contact. The DataObject referred to by this property is usually interpreted as an nfo:Image. Inspired by the PHOTO property defined in RFC 2426 sec. 3.1.4" ; + rdfs:domain nco:Contact ; + rdfs:label "photo" ; + rdfs:range nie:DataObject ; + rdfs:subPropertyOf nie:hasPart . + + nco:contributor + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "An entity responsible for making contributions to the content of the InformationElement." ; + rdfs:domain nie:InformationElement ; + rdfs:label "contributor" ; + rdfs:range nco:Contact ; + rdfs:subPropertyOf dc:contributor , nao:contributor . + + nco:logo + a rdf:Property ; + rdfs:comment "Logo of a company. Inspired by the LOGO property defined in RFC 2426 sec. 3.5.3" ; + rdfs:domain nco:OrganizationContact ; + rdfs:label "logo" ; + rdfs:range nie:DataObject ; + rdfs:subPropertyOf nie:hasPart . + + nco:websiteUrl + a rdf:Property ; + rdfs:comment "A url of a website." ; + rdfs:domain nco:Role ; + rdfs:label "websiteUrl" ; + rdfs:range rdfs:Resource ; + rdfs:subPropertyOf nco:url . + + nco:ContactMedium + a rdfs:Class ; + rdfs:comment "A superclass for all contact media - ways to contact an entity represented by a Contact instance. Some of the subclasses of this class (the various kinds of telephone numbers and postal addresses) have been inspired by the values of the TYPE parameter of ADR and TEL properties defined in RFC 2426 sec. 3.2.1. and 3.3.1 respectively. Each value is represented by an appropriate subclass with two major exceptions TYPE=home and TYPE=work. They are to be expressed by the roles these contact media are attached to i.e. contact media with TYPE=home parameter are to be attached to the default role (nco:Contact or nco:PersonContact), whereas media with TYPE=work parameter should be attached to nco:Affiliation or nco:OrganizationContact." ; + rdfs:label "ContactMedium" ; + rdfs:subClassOf rdfs:Resource . + + nco:Gender + a rdfs:Class ; + rdfs:comment "Gender. Instances of this class may include male and female." ; + rdfs:label "Gender" ; + rdfs:subClassOf rdfs:Resource . + + nco:male + a nco:Gender ; + rdfs:comment "A Male" ; + rdfs:label "male" . + + nco:birthDate + a rdf:Property ; + rdfs:comment "Birth date of the object represented by this Contact. An equivalent of the 'BDAY' property as defined in RFC 2426 Sec. 3.1.5." ; + rdfs:domain nco:Contact ; + rdfs:label "birthDate" ; + rdfs:range xsd:date ; + rdfs:subPropertyOf dc:date ; + nrl:maxCardinality 1 . + + nco:hasEmailAddress + a rdf:Property ; + rdfs:comment "An address for electronic mail communication with the object specified by this contact. An equivalent of the 'EMAIL' property as defined in RFC 2426 Sec. 3.3.1." ; + rdfs:domain nco:Role ; + rdfs:label "hasEmailAddress" ; + rdfs:range nco:EmailAddress ; + rdfs:subPropertyOf nco:hasContactMedium . + + nco:postalcode + a rdf:Property ; + rdfs:comment "Postal Code. Inspired by the sixth part of the value of the 'ADR' property as defined in RFC 2426, sec. 3.2.1" ; + rdfs:domain nco:PostalAddress ; + rdfs:label "postalcode" ; + rdfs:range xsd:string ; + nrl:maxCardinality 1 . + + nco:MessagingNumber + a rdfs:Class ; + rdfs:comment "A number that can accept textual messages." ; + rdfs:label "MessagingNumber" ; + rdfs:subClassOf nco:PhoneNumber . + + nco:org + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "Name of an organization or a unit within an organization the object represented by a Contact is associated with. An equivalent of the 'ORG' property defined in RFC 2426 Sec. 3.5.5" ; + rdfs:domain nco:Affiliation ; + rdfs:label "org" ; + rdfs:range nco:OrganizationContact ; + nrl:maxCardinality "1" . + + nco:PersonContact + a rdfs:Class ; + rdfs:comment "A Contact that denotes a Person. A person can have multiple Affiliations." ; + rdfs:label "PersonContact" ; + rdfs:subClassOf nco:Contact . + + nco:ParcelDeliveryAddress + a rdfs:Class ; + rdfs:comment "Parcel Delivery Addresse. Class inspired by TYPE=parcel parameter of the ADR property defined in RFC 2426 sec. 3.2.1" ; + rdfs:label "ParcelDeliveryAddress" ; + rdfs:subClassOf nco:PostalAddress . + + nco:title + a rdf:Property ; + rdfs:comment "The official title the object represented by this contact in an organization. E.g. 'CEO', 'Director, Research and Development', 'Junior Software Developer/Analyst' etc. An equivalent of the 'TITLE' property defined in RFC 2426 Sec. 3.5.1" ; + rdfs:domain nco:Affiliation ; + rdfs:label "title" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" . + + nco:AudioIMAccount + a rdfs:Class ; + nao:deprecated true ; + rdfs:comment "Deprecated in favour of nco:imCapabilityAudio." ; + rdfs:label "AudioIMAccount" ; + rdfs:subClassOf nco:IMAccount . + + nco:voiceMail + a rdf:Property ; + rdfs:comment "Indicates if the given number accepts voice mail. (e.g. there is an answering machine). Inspired by TYPE=msg parameter of the TEL property defined in RFC 2426 sec. 3.3.1" ; + rdfs:domain nco:VoicePhoneNumber ; + rdfs:label "voiceMail" ; + rdfs:range xsd:boolean ; + nrl:maxCardinality "1" . + + nco:PostalAddress + a rdfs:Class ; + rdfs:comment "A postal address. A class aggregating the various parts of a value for the 'ADR' property as defined in RFC 2426 Sec. 3.2.1." ; + rdfs:label "PostalAddress" ; + rdfs:subClassOf nco:ContactMedium . + + nco:belongsToGroup + a rdf:Property ; + rdfs:comment "Links a Contact with a ContactGroup it belongs to." ; + rdfs:domain nco:Contact ; + rdfs:label "belongsToGroup" ; + rdfs:range nco:ContactGroup . + + nco:hasContactMedium + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "A superProperty for all properties linking a Contact to an instance of a contact medium." ; + rdfs:domain nco:Role ; + rdfs:label "hasContactMedium" ; + rdfs:range nco:ContactMedium . + + nco:contactGroupName + a rdf:Property ; + rdfs:comment """The name of the contact group. This property was NOT defined + in the VCARD standard. See documentation of the 'ContactGroup' class for + details""" ; + rdfs:domain nco:ContactGroup ; + rdfs:label "contactGroupName" ; + rdfs:range xsd:string ; + rdfs:subPropertyOf dc:title ; + nrl:maxCardinality 1 . + + nco:FaxNumber + a rdfs:Class ; + rdfs:comment "A fax number. Inspired by the (TYPE=fax) parameter of the TEL property as defined in RFC 2426 sec 3.3.1." ; + rdfs:label "FaxNumber" ; + rdfs:subClassOf nco:PhoneNumber . + + nco:contactMediumComment + a rdf:Property ; + rdfs:comment "A comment about the contact medium. (Deprecated in favor of nie:comment or nao:description - based on the context)" ; + rdfs:domain nco:ContactMedium ; + rdfs:label "contactMediumComment" ; + rdfs:range xsd:string ; + nao:deprecated true. + + nco:foafUrl + a rdf:Property ; + rdfs:comment "The URL of the FOAF file." ; + rdfs:domain nco:Role ; + rdfs:label "foafUrl" ; + rdfs:range rdfs:Resource ; + rdfs:subPropertyOf nco:url . + + nco:CarPhoneNumber + a rdfs:Class ; + rdfs:comment "A car phone number. Inspired by the (TYPE=car) parameter of the TEL property as defined in RFC 2426 sec 3.3.1." ; + rdfs:label "CarPhoneNumber" ; + rdfs:subClassOf nco:VoicePhoneNumber . + + nco:ContactListDataObject + a rdfs:Class ; + rdfs:comment "An entity occuring on a contact list (usually interpreted as an nco:Contact)" ; + rdfs:label "ContactListDataObject" ; + rdfs:subClassOf nie:DataObject . + + nco:emailAddress + a rdf:Property ; + rdfs:domain nco:EmailAddress ; + rdfs:label "emailAddress" ; + rdfs:range xsd:string ; + nrl:maxCardinality 1 . + + nco:InternationalDeliveryAddress + a rdfs:Class ; + rdfs:comment "International Delivery Addresse. Class inspired by TYPE=intl parameter of the ADR property defined in RFC 2426 sec. 3.2.1" ; + rdfs:label "InternationalDeliveryAddress" ; + rdfs:subClassOf nco:PostalAddress . + + nco:locality + a rdf:Property ; + rdfs:comment "Locality or City. Inspired by the fourth part of the value of the 'ADR' property as defined in RFC 2426, sec. 3.2.1" ; + rdfs:domain nco:PostalAddress ; + rdfs:label "locality" ; + rdfs:range xsd:string ; + nrl:maxCardinality 1 . + + nco:VideoIMAccount + a rdfs:Class ; + nao:deprecated true ; + rdfs:comment "Deprecated in favour of nco:imCapabilityVideo." ; + rdfs:label "VideoIMAccount" ; + rdfs:subClassOf nco:AudioIMAccount . + + nco:sound + a rdf:Property ; + rdfs:comment "Sound clip attached to a Contact. The DataObject referred to by this property is usually interpreted as an nfo:Audio. Inspired by the SOUND property defined in RFC 2425 sec. 3.6.6." ; + rdfs:domain nco:Contact ; + rdfs:label "sound" ; + rdfs:range nie:DataObject ; + rdfs:subPropertyOf nie:hasPart . + + nco:EmailAddress + a rdfs:Class ; + rdfs:comment "An email address. The recommended best practice is to use mailto: uris for instances of this class." ; + rdfs:label "EmailAddress" ; + rdfs:subClassOf nco:ContactMedium . + + nco:imNickname + a rdf:Property ; + rdfs:comment "A nickname attached to a particular IM Account." ; + rdfs:domain nco:IMAccount ; + rdfs:label "imNickname" ; + rdfs:range xsd:string . + + nco:hobby + a rdf:Property ; + rdfs:comment "A hobby associated with a PersonContact. This property can be used to express hobbies and interests." ; + rdfs:domain nco:PersonContact ; + rdfs:label "hobby" ; + rdfs:range xsd:string . + + nco:blogUrl + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "A Blog url." ; + rdfs:domain nco:Role ; + rdfs:label "blogUrl" ; + rdfs:range rdfs:Resource ; + rdfs:subPropertyOf nco:url . + + nco:CellPhoneNumber + a rdfs:Class ; + rdfs:comment "A cellular phone number. Inspired by the (TYPE=cell) parameter of the TEL property as defined in RFC 2426 sec 3.3.1. Usually a cellular phone can accept voice calls as well as textual messages (SMS), therefore this class has two superclasses." ; + rdfs:label "CellPhoneNumber" ; + rdfs:subClassOf nco:MessagingNumber , nco:VoicePhoneNumber . + + nco:role + a rdf:Property ; + rdfs:comment "Role an object represented by this contact represents in the organization. This might include 'Programmer', 'Manager', 'Sales Representative'. Be careful to avoid confusion with the title property. An equivalent of the 'ROLE' property as defined in RFC 2426. Sec. 3.5.2. Note the difference between nco:Role class and nco:role property." ; + rdfs:domain nco:Affiliation ; + rdfs:label "role" ; + rdfs:range xsd:string . + + nco:DomesticDeliveryAddress + a rdfs:Class ; + rdfs:comment "Domestic Delivery Addresse. Class inspired by TYPE=dom parameter of the ADR property defined in RFC 2426 sec. 3.2.1" ; + rdfs:label "DomesticDeliveryAddress" ; + rdfs:subClassOf nco:PostalAddress . + + nco:female + a nco:Gender ; + rdfs:comment "A Female" ; + rdfs:label "female" . + + nco:hasPostalAddress + a rdf:Property ; + rdfs:comment "The default Address for a Contact. An equivalent of the 'ADR' property as defined in RFC 2426 Sec. 3.2.1." ; + rdfs:domain nco:Role ; + rdfs:label "hasPostalAddress" ; + rdfs:range nco:PostalAddress ; + rdfs:subPropertyOf nco:hasContactMedium . + + nco:imAccountType + a rdf:Property ; + rdfs:comment "Type of the IM account. This may be the name of the service that provides the IM functionality. Examples might include Jabber, ICQ, MSN etc" ; + rdfs:domain nco:IMAccount ; + rdfs:label "imAccountType" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" . + + nco:pobox + a rdf:Property ; + rdfs:comment "Post office box. This is the first part of the value of the 'ADR' property as defined in RFC 2426, sec. 3.2.1" ; + rdfs:domain nco:PostalAddress ; + rdfs:label "pobox" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1". + + nco:hasAffiliation + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "Links a PersonContact with an Affiliation." ; + rdfs:domain nco:PersonContact ; + rdfs:label "hasAffiliation" ; + rdfs:range nco:Affiliation . + + nco:gender + a rdf:Property ; + rdfs:comment "Gender of the given contact." ; + rdfs:domain nco:PersonContact ; + rdfs:label "gender" ; + rdfs:range nco:Gender ; + nrl:maxCardinality 1 . + + nco:imStatusMessage + a rdf:Property, nrl:NonDefiningProperty ; + rdfs:comment "A feature common in most IM systems. A message left by the user for all his/her contacts to see." ; + rdfs:domain nco:IMAccount ; + rdfs:label "imStatusMessage" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" . + + nco:start + a rdf:Property ; + rdfs:comment "Start datetime for the role, such as: the datetime of joining a project or organization, datetime of starting employment, datetime of marriage" ; + rdfs:label "start" ; + rdfs:domain nco:Role ; + rdfs:range xsd:dateTime ; + nrl:maxCardinality 1 . + + nco:end + a rdf:Property; + rdfs:comment "End datetime for the role, such as: the datetime of leaving a project or organization, datetime of ending employment, datetime of divorce. If absent or set to a date in the future, the role is currently active." ; + rdfs:label "end" ; + rdfs:domain nco:Role ; + rdfs:range xsd:dateTime ; + nrl:maxCardinality 1 . + + nco:IMCapability a rdfs:Class ; + rdfs:label "imCapability" ; + rdfs:comment "Capabilities of a cetain IMAccount." ; + rdfs:subClassOf rdfs:Resource . + + nco:imCapabilityText a nco:IMCapability . + nco:imCapabilityAudio a nco:IMCapability . + nco:imCapabilityVideo a nco:IMCapability . + + nco:hasIMCapability + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "Indicates that an IMAccount has a certain capability." ; + rdfs:domain nco:IMAccount ; + rdfs:label "hasIMCapability" ; + rdfs:range nco:IMCapability . + + nco:isAccessedBy + a rdf:Property ; + rdfs:comment "Indicates the local IMAccount by which this IMAccount is accessed. This does not imply membership of a contact list." ; + rdfs:label "isKnownBy" ; + rdfs:domain nco:IMAccount ; + rdfs:range nco:IMAccount . + + nco:publishesPresenceTo + a rdf:Property ; + rdfs:comment "Indicates that this IMAccount publishes its presence information to the other IMAccount." ; + rdfs:label "publishesPresenceTo" ; + rdfs:domain nco:IMAccount ; + rdfs:range nco:IMAccount . + + nco:requestedPresenceSubscriptionTo + a rdf:Property ; + rdfs:comment "Indicates that this IMAccount has requested a subscription to the presence information of the other IMAccount." ; + rdfs:label "requestedPresenceSubscriptionTo" ; + rdfs:domain nco:IMAccount ; + rdfs:range nco:IMAccount . + + nco:isBlocked + a rdf:Property ; + rdfs:comment "Indicates that this IMAccount has been blocked." ; + rdfs:domain nco:IMAccount ; + rdfs:label "isBlocked" ; + rdfs:range xsd:boolean ; + nrl:maxCardinality "1" . +} + + {nco: a nrl:Ontology ; + nao:creator ; + nao:hasDefaultNamespace + "http://www.semanticdesktop.org/ontologies/2007/03/22/nco#" ; + nao:hasDefaultNamespaceAbbreviation + "nco" ; + nao:lastModified "2011-12-13T12:44:58Z" ; + nao:status "Unstable" ; + nao:updatable "0 " ; + nao:version "0.10.0" ; + nao:prefLabel "Nepomuk Contact Ontology" ; + nao:description "The Nepomuk Contact Ontology describes contact information, common in many places on the desktop. It evolved from the VCARD specification (RFC 2426) and has been inspired by the Vcard Ontology by Renato Ianella. The scope of NCO is much broader though." . + + + a nrl:GraphMetadata ; + nrl:coreGraphMetadataFor + nco: . +} diff --git a/tests/Trinity.Tests.Stardog/bin/Release/net472/Ontologies/owl.n3 b/tests/Trinity.Tests.Stardog/bin/Release/net472/Ontologies/owl.n3 new file mode 100644 index 0000000..87467e7 --- /dev/null +++ b/tests/Trinity.Tests.Stardog/bin/Release/net472/Ontologies/owl.n3 @@ -0,0 +1,552 @@ +@prefix dc: . +@prefix grddl: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix xml: . +@prefix xsd: . + + a owl:Ontology ; + dc:title "The OWL 2 Schema vocabulary (OWL 2)" ; + rdfs:comment """ + This ontology partially describes the built-in classes and + properties that together form the basis of the RDF/XML syntax of OWL 2. + The content of this ontology is based on Tables 6.1 and 6.2 + in Section 6.4 of the OWL 2 RDF-Based Semantics specification, + available at http://www.w3.org/TR/owl2-rdf-based-semantics/. + Please note that those tables do not include the different annotations + (labels, comments and rdfs:isDefinedBy links) used in this file. + Also note that the descriptions provided in this ontology do not + provide a complete and correct formal description of either the syntax + or the semantics of the introduced terms (please see the OWL 2 + recommendations for the complete and normative specifications). + Furthermore, the information provided by this ontology may be + misleading if not used with care. This ontology SHOULD NOT be imported + into OWL ontologies. Importing this file into an OWL 2 DL ontology + will cause it to become an OWL 2 Full ontology and may have other, + unexpected, consequences. + """ ; + rdfs:isDefinedBy + , + , + ; + rdfs:seeAlso , + ; + owl:imports ; + owl:versionIRI ; + owl:versionInfo "$Date: 2009/11/15 10:54:12 $" ; + grddl:namespaceTransformation . + + +owl:AllDifferent a rdfs:Class ; + rdfs:label "AllDifferent" ; + rdfs:comment "The class of collections of pairwise different individuals." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Resource . + +owl:AllDisjointClasses a rdfs:Class ; + rdfs:label "AllDisjointClasses" ; + rdfs:comment "The class of collections of pairwise disjoint classes." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Resource . + +owl:AllDisjointProperties a rdfs:Class ; + rdfs:label "AllDisjointProperties" ; + rdfs:comment "The class of collections of pairwise disjoint properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Resource . + +owl:Annotation a rdfs:Class ; + rdfs:label "Annotation" ; + rdfs:comment "The class of annotated annotations for which the RDF serialization consists of an annotated subject, predicate and object." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Resource . + +owl:AnnotationProperty a rdfs:Class ; + rdfs:label "AnnotationProperty" ; + rdfs:comment "The class of annotation properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdf:Property . + +owl:AsymmetricProperty a rdfs:Class ; + rdfs:label "AsymmetricProperty" ; + rdfs:comment "The class of asymmetric properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:ObjectProperty . + +owl:Axiom a rdfs:Class ; + rdfs:label "Axiom" ; + rdfs:comment "The class of annotated axioms for which the RDF serialization consists of an annotated subject, predicate and object." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Resource . + +owl:Class a rdfs:Class ; + rdfs:label "Class" ; + rdfs:comment "The class of OWL classes." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Class . + +owl:DataRange a rdfs:Class ; + rdfs:label "DataRange" ; + rdfs:comment "The class of OWL data ranges, which are special kinds of datatypes. Note: The use of the IRI owl:DataRange has been deprecated as of OWL 2. The IRI rdfs:Datatype SHOULD be used instead." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Datatype . + +owl:DatatypeProperty a rdfs:Class ; + rdfs:label "DatatypeProperty" ; + rdfs:comment "The class of data properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdf:Property . + +owl:DeprecatedClass a rdfs:Class ; + rdfs:label "DeprecatedClass" ; + rdfs:comment "The class of deprecated classes." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Class . + +owl:DeprecatedProperty a rdfs:Class ; + rdfs:label "DeprecatedProperty" ; + rdfs:comment "The class of deprecated properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdf:Property . + +owl:FunctionalProperty a rdfs:Class ; + rdfs:label "FunctionalProperty" ; + rdfs:comment "The class of functional properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdf:Property . + +owl:InverseFunctionalProperty a rdfs:Class ; + rdfs:label "InverseFunctionalProperty" ; + rdfs:comment "The class of inverse-functional properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:ObjectProperty . + +owl:IrreflexiveProperty a rdfs:Class ; + rdfs:label "IrreflexiveProperty" ; + rdfs:comment "The class of irreflexive properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:ObjectProperty . + +owl:NamedIndividual a rdfs:Class ; + rdfs:label "NamedIndividual" ; + rdfs:comment "The class of named individuals." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:Thing . + +owl:NegativePropertyAssertion a rdfs:Class ; + rdfs:label "NegativePropertyAssertion" ; + rdfs:comment "The class of negative property assertions." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Resource . + +owl:Nothing a owl:Class ; + rdfs:label "Nothing" ; + rdfs:comment "This is the empty class." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:Thing . + +owl:ObjectProperty a rdfs:Class ; + rdfs:label "ObjectProperty" ; + rdfs:comment "The class of object properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdf:Property . + +owl:Ontology a rdfs:Class ; + rdfs:label "Ontology" ; + rdfs:comment "The class of ontologies." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Resource . + +owl:OntologyProperty a rdfs:Class ; + rdfs:label "OntologyProperty" ; + rdfs:comment "The class of ontology properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdf:Property . + +owl:ReflexiveProperty a rdfs:Class ; + rdfs:label "ReflexiveProperty" ; + rdfs:comment "The class of reflexive properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:ObjectProperty . + +owl:Restriction a rdfs:Class ; + rdfs:label "Restriction" ; + rdfs:comment "The class of property restrictions." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:Class . + +owl:SymmetricProperty a rdfs:Class ; + rdfs:label "SymmetricProperty" ; + rdfs:comment "The class of symmetric properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:ObjectProperty . + +owl:TransitiveProperty a rdfs:Class ; + rdfs:label "TransitiveProperty" ; + rdfs:comment "The class of transitive properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:ObjectProperty . + +owl:Thing a owl:Class ; + rdfs:label "Thing" ; + rdfs:comment "The class of OWL individuals." ; + rdfs:isDefinedBy . + +owl:allValuesFrom a rdf:Property ; + rdfs:label "allValuesFrom" ; + rdfs:comment "The property that determines the class that a universal property restriction refers to." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Class . + +owl:annotatedProperty a rdf:Property ; + rdfs:label "annotatedProperty" ; + rdfs:comment "The property that determines the predicate of an annotated axiom or annotated annotation." ; + rdfs:domain rdfs:Resource ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Resource . + +owl:annotatedSource a rdf:Property ; + rdfs:label "annotatedSource" ; + rdfs:comment "The property that determines the subject of an annotated axiom or annotated annotation." ; + rdfs:domain rdfs:Resource ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Resource . + +owl:annotatedTarget a rdf:Property ; + rdfs:label "annotatedTarget" ; + rdfs:comment "The property that determines the object of an annotated axiom or annotated annotation." ; + rdfs:domain rdfs:Resource ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Resource . + +owl:assertionProperty a rdf:Property ; + rdfs:label "assertionProperty" ; + rdfs:comment "The property that determines the predicate of a negative property assertion." ; + rdfs:domain owl:NegativePropertyAssertion ; + rdfs:isDefinedBy ; + rdfs:range rdf:Property . + +owl:backwardCompatibleWith a owl:AnnotationProperty, owl:OntologyProperty ; + rdfs:label "backwardCompatibleWith" ; + rdfs:comment "The annotation property that indicates that a given ontology is backward compatible with another ontology." ; + rdfs:domain owl:Ontology ; + rdfs:isDefinedBy ; + rdfs:range owl:Ontology . + +owl:bottomDataProperty a owl:DatatypeProperty ; + rdfs:label "bottomDataProperty" ; + rdfs:comment "The data property that does not relate any individual to any data value." ; + rdfs:domain owl:Thing ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Literal . + +owl:bottomObjectProperty a owl:ObjectProperty ; + rdfs:label "bottomObjectProperty" ; + rdfs:comment "The object property that does not relate any two individuals." ; + rdfs:domain owl:Thing ; + rdfs:isDefinedBy ; + rdfs:range owl:Thing . + +owl:cardinality a rdf:Property ; + rdfs:label "cardinality" ; + rdfs:comment "The property that determines the cardinality of an exact cardinality restriction." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range xsd:nonNegativeInteger . + +owl:complementOf a rdf:Property ; + rdfs:label "complementOf" ; + rdfs:comment "The property that determines that a given class is the complement of another class." ; + rdfs:domain owl:Class ; + rdfs:isDefinedBy ; + rdfs:range owl:Class . + +owl:datatypeComplementOf a rdf:Property ; + rdfs:label "datatypeComplementOf" ; + rdfs:comment "The property that determines that a given data range is the complement of another data range with respect to the data domain." ; + rdfs:domain rdfs:Datatype ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Datatype . + +owl:deprecated a owl:AnnotationProperty ; + rdfs:label "deprecated" ; + rdfs:comment "The annotation property that indicates that a given entity has been deprecated." ; + rdfs:domain rdfs:Resource ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Resource . + +owl:differentFrom a rdf:Property ; + rdfs:label "differentFrom" ; + rdfs:comment "The property that determines that two given individuals are different." ; + rdfs:domain owl:Thing ; + rdfs:isDefinedBy ; + rdfs:range owl:Thing . + +owl:disjointUnionOf a rdf:Property ; + rdfs:label "disjointUnionOf" ; + rdfs:comment "The property that determines that a given class is equivalent to the disjoint union of a collection of other classes." ; + rdfs:domain owl:Class ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:disjointWith a rdf:Property ; + rdfs:label "disjointWith" ; + rdfs:comment "The property that determines that two given classes are disjoint." ; + rdfs:domain owl:Class ; + rdfs:isDefinedBy ; + rdfs:range owl:Class . + +owl:distinctMembers a rdf:Property ; + rdfs:label "distinctMembers" ; + rdfs:comment "The property that determines the collection of pairwise different individuals in a owl:AllDifferent axiom." ; + rdfs:domain owl:AllDifferent ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:equivalentClass a rdf:Property ; + rdfs:label "equivalentClass" ; + rdfs:comment "The property that determines that two given classes are equivalent, and that is used to specify datatype definitions." ; + rdfs:domain rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Class . + +owl:equivalentProperty a rdf:Property ; + rdfs:label "equivalentProperty" ; + rdfs:comment "The property that determines that two given properties are equivalent." ; + rdfs:domain rdf:Property ; + rdfs:isDefinedBy ; + rdfs:range rdf:Property . + +owl:hasKey a rdf:Property ; + rdfs:label "hasKey" ; + rdfs:comment "The property that determines the collection of properties that jointly build a key." ; + rdfs:domain owl:Class ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:hasSelf a rdf:Property ; + rdfs:label "hasSelf" ; + rdfs:comment "The property that determines the property that a self restriction refers to." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Resource . + +owl:hasValue a rdf:Property ; + rdfs:label "hasValue" ; + rdfs:comment "The property that determines the individual that a has-value restriction refers to." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Resource . + +owl:imports a owl:OntologyProperty ; + rdfs:label "imports" ; + rdfs:comment "The property that is used for importing other ontologies into a given ontology." ; + rdfs:domain owl:Ontology ; + rdfs:isDefinedBy ; + rdfs:range owl:Ontology . + +owl:incompatibleWith a owl:AnnotationProperty, owl:OntologyProperty ; + rdfs:label "incompatibleWith" ; + rdfs:comment "The annotation property that indicates that a given ontology is incompatible with another ontology." ; + rdfs:domain owl:Ontology ; + rdfs:isDefinedBy ; + rdfs:range owl:Ontology . + +owl:intersectionOf a rdf:Property ; + rdfs:label "intersectionOf" ; + rdfs:comment "The property that determines the collection of classes or data ranges that build an intersection." ; + rdfs:domain rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:inverseOf a rdf:Property ; + rdfs:label "inverseOf" ; + rdfs:comment "The property that determines that two given properties are inverse." ; + rdfs:domain owl:ObjectProperty ; + rdfs:isDefinedBy ; + rdfs:range owl:ObjectProperty . + +owl:maxCardinality a rdf:Property ; + rdfs:label "maxCardinality" ; + rdfs:comment "The property that determines the cardinality of a maximum cardinality restriction." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range xsd:nonNegativeInteger . + +owl:maxQualifiedCardinality a rdf:Property ; + rdfs:label "maxQualifiedCardinality" ; + rdfs:comment "The property that determines the cardinality of a maximum qualified cardinality restriction." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range xsd:nonNegativeInteger . + +owl:members a rdf:Property ; + rdfs:label "members" ; + rdfs:comment "The property that determines the collection of members in either a owl:AllDifferent, owl:AllDisjointClasses or owl:AllDisjointProperties axiom." ; + rdfs:domain rdfs:Resource ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:minCardinality a rdf:Property ; + rdfs:label "minCardinality" ; + rdfs:comment "The property that determines the cardinality of a minimum cardinality restriction." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range xsd:nonNegativeInteger . + +owl:minQualifiedCardinality a rdf:Property ; + rdfs:label "minQualifiedCardinality" ; + rdfs:comment "The property that determines the cardinality of a minimum qualified cardinality restriction." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range xsd:nonNegativeInteger . + +owl:onClass a rdf:Property ; + rdfs:label "onClass" ; + rdfs:comment "The property that determines the class that a qualified object cardinality restriction refers to." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range owl:Class . + +owl:onDataRange a rdf:Property ; + rdfs:label "onDataRange" ; + rdfs:comment "The property that determines the data range that a qualified data cardinality restriction refers to." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Datatype . + +owl:onDatatype a rdf:Property ; + rdfs:label "onDatatype" ; + rdfs:comment "The property that determines the datatype that a datatype restriction refers to." ; + rdfs:domain rdfs:Datatype ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Datatype . + +owl:oneOf a rdf:Property ; + rdfs:label "oneOf" ; + rdfs:comment "The property that determines the collection of individuals or data values that build an enumeration." ; + rdfs:domain rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:onProperties a rdf:Property ; + rdfs:label "onProperties" ; + rdfs:comment "The property that determines the n-tuple of properties that a property restriction on an n-ary data range refers to." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:onProperty a rdf:Property ; + rdfs:label "onProperty" ; + rdfs:comment "The property that determines the property that a property restriction refers to." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range rdf:Property . + +owl:priorVersion a owl:AnnotationProperty, owl:OntologyProperty ; + rdfs:label "priorVersion" ; + rdfs:comment "The annotation property that indicates the predecessor ontology of a given ontology." ; + rdfs:domain owl:Ontology ; + rdfs:isDefinedBy ; + rdfs:range owl:Ontology . + +owl:propertyChainAxiom a rdf:Property ; + rdfs:label "propertyChainAxiom" ; + rdfs:comment "The property that determines the n-tuple of properties that build a sub property chain of a given property." ; + rdfs:domain owl:ObjectProperty ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:propertyDisjointWith a rdf:Property ; + rdfs:label "propertyDisjointWith" ; + rdfs:comment "The property that determines that two given properties are disjoint." ; + rdfs:domain rdf:Property ; + rdfs:isDefinedBy ; + rdfs:range rdf:Property . + +owl:qualifiedCardinality a rdf:Property ; + rdfs:label "qualifiedCardinality" ; + rdfs:comment "The property that determines the cardinality of an exact qualified cardinality restriction." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range xsd:nonNegativeInteger . + +owl:sameAs a rdf:Property ; + rdfs:label "sameAs" ; + rdfs:comment "The property that determines that two given individuals are equal." ; + rdfs:domain owl:Thing ; + rdfs:isDefinedBy ; + rdfs:range owl:Thing . + +owl:someValuesFrom a rdf:Property ; + rdfs:label "someValuesFrom" ; + rdfs:comment "The property that determines the class that an existential property restriction refers to." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Class . + +owl:sourceIndividual a rdf:Property ; + rdfs:label "sourceIndividual" ; + rdfs:comment "The property that determines the subject of a negative property assertion." ; + rdfs:domain owl:NegativePropertyAssertion ; + rdfs:isDefinedBy ; + rdfs:range owl:Thing . + +owl:targetIndividual a rdf:Property ; + rdfs:label "targetIndividual" ; + rdfs:comment "The property that determines the object of a negative object property assertion." ; + rdfs:domain owl:NegativePropertyAssertion ; + rdfs:isDefinedBy ; + rdfs:range owl:Thing . + +owl:targetValue a rdf:Property ; + rdfs:label "targetValue" ; + rdfs:comment "The property that determines the value of a negative data property assertion." ; + rdfs:domain owl:NegativePropertyAssertion ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Literal . + +owl:topDataProperty a owl:DatatypeProperty ; + rdfs:label "topDataProperty" ; + rdfs:comment "The data property that relates every individual to every data value." ; + rdfs:domain owl:Thing ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Literal . + +owl:topObjectProperty a owl:ObjectProperty ; + rdfs:label "topObjectProperty" ; + rdfs:comment "The object property that relates every two individuals." ; + rdfs:domain owl:Thing ; + rdfs:isDefinedBy ; + rdfs:range owl:Thing . + +owl:unionOf a rdf:Property ; + rdfs:label "unionOf" ; + rdfs:comment "The property that determines the collection of classes or data ranges that build a union." ; + rdfs:domain rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:versionInfo a owl:AnnotationProperty ; + rdfs:label "versionInfo" ; + rdfs:comment "The annotation property that provides version information for an ontology or another OWL construct." ; + rdfs:domain rdfs:Resource ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Resource . + +owl:versionIRI a owl:OntologyProperty ; + rdfs:label "versionIRI" ; + rdfs:comment "The property that identifies the version IRI of an ontology." ; + rdfs:domain owl:Ontology ; + rdfs:isDefinedBy ; + rdfs:range owl:Ontology . + +owl:withRestrictions a rdf:Property ; + rdfs:label "withRestrictions" ; + rdfs:comment "The property that determines the collection of facet-value pairs that define a datatype restriction." ; + rdfs:domain rdfs:Datatype ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + \ No newline at end of file diff --git a/tests/Trinity.Tests.Stardog/bin/Release/net472/Ontologies/rdf.rdf b/tests/Trinity.Tests.Stardog/bin/Release/net472/Ontologies/rdf.rdf new file mode 100644 index 0000000..a6815ec --- /dev/null +++ b/tests/Trinity.Tests.Stardog/bin/Release/net472/Ontologies/rdf.rdf @@ -0,0 +1,156 @@ + + + + The RDF Concepts Vocabulary (RDF) + This is the RDF Schema for the RDF vocabulary terms in the RDF Namespace, defined in RDF 1.1 Concepts. + + + + + + + HTML + The datatype of RDF literals storing fragments of HTML content + + + + + + + langString + The datatype of language-tagged string values + + + + + + + PlainLiteral + The class of plain (i.e. untyped) literal values, as used in RIF and OWL 2 + + + + + + type + The subject is an instance of a class. + + + + + + + Property + The class of RDF properties. + + + + + + Statement + + The class of RDF statements. + + + + + subject + The subject of the subject RDF statement. + + + + + + + predicate + The predicate of the subject RDF statement. + + + + + + + object + The object of the subject RDF statement. + + + + + + + Bag + The class of unordered containers. + + + + + + Seq + The class of ordered containers. + + + + + + Alt + The class of containers of alternatives. + + + + + + value + Idiomatic property used for structured values. + + + + + + + + + List + The class of RDF Lists. + + + + + + nil + The empty list, with no items in it. If the rest of a list is nil then the list has no more items in it. + + + + + first + The first item in the subject RDF list. + + + + + + + rest + The rest of the subject RDF list after the first item. + + + + + + + + XMLLiteral + The datatype of XML literal values. + + + + + + + + diff --git a/tests/Trinity.Tests.Stardog/bin/Release/net472/Ontologies/rdfs.n3 b/tests/Trinity.Tests.Stardog/bin/Release/net472/Ontologies/rdfs.n3 new file mode 100644 index 0000000..a5b8eac --- /dev/null +++ b/tests/Trinity.Tests.Stardog/bin/Release/net472/Ontologies/rdfs.n3 @@ -0,0 +1,109 @@ +@prefix rdf: . +@prefix rdfs: . +@prefix owl: . +@prefix dc: . + + a owl:Ontology ; + dc:title "The RDF Schema vocabulary (RDFS)" . + +rdfs:Resource a rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:label "Resource" ; + rdfs:comment "The class resource, everything." . + +rdfs:Class a rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:label "Class" ; + rdfs:comment "The class of classes." ; + rdfs:subClassOf rdfs:Resource . + +rdfs:subClassOf a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:label "subClassOf" ; + rdfs:comment "The subject is a subclass of a class." ; + rdfs:range rdfs:Class ; + rdfs:domain rdfs:Class . + +rdfs:subPropertyOf a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:label "subPropertyOf" ; + rdfs:comment "The subject is a subproperty of a property." ; + rdfs:range rdf:Property ; + rdfs:domain rdf:Property . + +rdfs:comment a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:label "comment" ; + rdfs:comment "A description of the subject resource." ; + rdfs:domain rdfs:Resource ; + rdfs:range rdfs:Literal . + +rdfs:label a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:label "label" ; + rdfs:comment "A human-readable name for the subject." ; + rdfs:domain rdfs:Resource ; + rdfs:range rdfs:Literal . + +rdfs:domain a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:label "domain" ; + rdfs:comment "A domain of the subject property." ; + rdfs:range rdfs:Class ; + rdfs:domain rdf:Property . + +rdfs:range a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:label "range" ; + rdfs:comment "A range of the subject property." ; + rdfs:range rdfs:Class ; + rdfs:domain rdf:Property . + +rdfs:seeAlso a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:label "seeAlso" ; + rdfs:comment "Further information about the subject resource." ; + rdfs:range rdfs:Resource ; + rdfs:domain rdfs:Resource . + +rdfs:isDefinedBy a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:subPropertyOf rdfs:seeAlso ; + rdfs:label "isDefinedBy" ; + rdfs:comment "The defininition of the subject resource." ; + rdfs:range rdfs:Resource ; + rdfs:domain rdfs:Resource . + +rdfs:Literal a rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:label "Literal" ; + rdfs:comment "The class of literal values, eg. textual strings and integers." ; + rdfs:subClassOf rdfs:Resource . + +rdfs:Container a rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:label "Container" ; + rdfs:subClassOf rdfs:Resource ; + rdfs:comment "The class of RDF containers." . + +rdfs:ContainerMembershipProperty a rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:label "ContainerMembershipProperty" ; + rdfs:comment """The class of container membership properties, rdf:_1, rdf:_2, ..., + all of which are sub-properties of 'member'.""" ; + rdfs:subClassOf rdf:Property . + +rdfs:member a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:label "member" ; + rdfs:comment "A member of the subject resource." ; + rdfs:domain rdfs:Resource ; + rdfs:range rdfs:Resource . + +rdfs:Datatype a rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:label "Datatype" ; + rdfs:comment "The class of RDF datatypes." ; + rdfs:subClassOf rdfs:Class . + + rdfs:seeAlso . diff --git a/tests/Trinity.Tests.Stardog/bin/Release/net472/Ontologies/space test ontology.ttl b/tests/Trinity.Tests.Stardog/bin/Release/net472/Ontologies/space test ontology.ttl new file mode 100644 index 0000000..e9f6944 --- /dev/null +++ b/tests/Trinity.Tests.Stardog/bin/Release/net472/Ontologies/space test ontology.ttl @@ -0,0 +1,13 @@ +@prefix rdf: . +@prefix owl: . +@prefix rdfs: . +@prefix myo: . + +myo: +rdfs:label "my ontology". + +myo:Class a rdfs:Class ; +rdfs:label "MyClass" . + +myo:Property a rdf:Property ; +rdfs:label "MyProperty" . \ No newline at end of file diff --git a/tests/Trinity.Tests.Stardog/bin/Release/net472/Semiodesk.Trinity.Tests.Stardog.exe.config b/tests/Trinity.Tests.Stardog/bin/Release/net472/Semiodesk.Trinity.Tests.Stardog.exe.config new file mode 100644 index 0000000..3e2fdf6 --- /dev/null +++ b/tests/Trinity.Tests.Stardog/bin/Release/net472/Semiodesk.Trinity.Tests.Stardog.exe.config @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/Trinity.Tests.Stardog/bin/Release/net472/Semiodesk.Trinity.Tests.exe.config b/tests/Trinity.Tests.Stardog/bin/Release/net472/Semiodesk.Trinity.Tests.exe.config new file mode 100644 index 0000000..92d10a9 --- /dev/null +++ b/tests/Trinity.Tests.Stardog/bin/Release/net472/Semiodesk.Trinity.Tests.exe.config @@ -0,0 +1,62 @@ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/Trinity.Tests.Stardog/bin/Release/net472/Semiodesk.Trinity.xml b/tests/Trinity.Tests.Stardog/bin/Release/net472/Semiodesk.Trinity.xml new file mode 100644 index 0000000..d4242d2 --- /dev/null +++ b/tests/Trinity.Tests.Stardog/bin/Release/net472/Semiodesk.Trinity.xml @@ -0,0 +1,5915 @@ + + + + Semiodesk.Trinity + + + + + Marks the property as NotifyingProperty. + + + + + Decorate a class with this attribute to mark it as mapping for an RDF class of the given type. + + + + + The Uri of the type. + + + + + Constructor + + The uri of the RDF class for this mapping. + + + + Decorate a property with this attribute to mark it as mapped RDF property with the given type. + + + + + Uri of the the RDF property + + + + + Flag determining if property is language invariant. Only valid for string or string collections. + + + + + Constructor + + There uri of the rdf property for this mapping. + The mapping ignores the language setting and is always non-localized. Only valid if type or generic type is string or string collection. + + + + The class of resources that are RDF classes. + + + + + Constructor + + + + + Constrctor + + + + + Constrctor + + + + + Derived VirtualizatingCollection, performing loading asychronously. + + The type of items in the collection + + + + Gets the synchronization context used for UI-related operations. This is obtained as + the current SynchronizationContext when the AsyncVirtualizingCollection is created. + + The synchronization context. + + + + Gets or sets a value indicating whether the collection is loading. + + + true if this collection is loading; otherwise, false. + + + + + Initializes a new instance of the class. + + The items provider. + + + + Initializes a new instance of the class. + + The items provider. + Size of the page. + + + + Initializes a new instance of the class. + + The items provider. + Size of the page. + The page timeout. + + + + Asynchronously loads the count of items. + + + + + Performed on background thread. + + None required. + + + + Performed on UI-thread after LoadCountWork. + + Number of items returned. + + + + Asynchronously loads the page. + + The index. + + + + Performed on background thread. + + Index of the page to load. + + + + Performed on UI-thread after LoadPageWork. + + object[] { int pageIndex, IList(T) page } + + + + The event that gets notified if the collection gets changed. + + + + + The event that gets notified if a property has changed. + + + + + An generic asynchrous virtualizing collection for sparql queries. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + A generic items provider collection. + + + + + + Number of element in the provider. + + + + + + Enumerator of the items. + + + + + + + + A generic virtualizing collection. + + + + + + The page size contains the number of elements per page. + + + + + The time after which a page can be removed. + + + + + The page size contains the number of elements per page. + + + + + Timeout in ms. If the page has not been touched it can be removed with CleanUpPages. + + + + + Number of elements in the list. + + + + + Gets an object that can be used to synchronize access to the . + + + + An object that can be used to synchronize access to the . + + + + + Gets a value indicating whether access to the is synchronized (thread safe). + + + Always false. + + + + + Gets a value indicating whether the is read-only. + + + Always true. + + + + + Gets a value indicating whether the has a fixed size. + + + Always false. + + + + + Access an element at a certain index. + + + + + + + Initializes a new instance of the class. + + Items provider + Size of the page. + The page timeout. + + + + Initializes a new instance of the class. + + The items provider. + Size of the page. + + + + Initializes a new instance of the class. + + + + + Returns the enumerator of the collection + + + + + + The list is read-only, not supported. + + + + + + The list is read-only, not supported. + + + + + + The list is read-only, not supported. + + + + + Returns the index of a certain element. + + + + + + + The list is read-only, not supported. + + + + + + + The list is read-only, not supported. + + + + + + + The list is read-only, not supported. + + + + + + The list is read-only, not supported. + + + + + + The list is read-only, not supported. + + + + + + + The list is read-only, not supported. + + + + + + + The list is read-only, not supported. + + + + + + + Removes pages that have not been touched recently. The timeout can be configured with the PageTimeout. + + + + + Load page with the given index. + + + + + + Sets the given page to the given index. + + + + + + + Load the page with the given index. + + + + + + Loads the count of the collection. + + + + + Gets the page from the item provider. + + + + + + + Gets the element count from the item provider. + + + + + + The item provider for sparql queries. + + + + + + Constructor for the SparqlQueryItemsProvider. + + The model on which the query should be executed. + The query that should be executed. + Modifier if inferncing should be enabled. Default is true + + + + Number of elements in the result. + + + + + + Enumerator of the items. Should be narrowed with offset and limit. + + Offset of the element where to start. + Number of elements. + + + + + A virtualizing collection for sparql query results + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The model to query. + The query. + Size of the page. + Using inferencing + + + + Initializes a new instance of the class. + + + + + The FileSource represents the path of the ontology on the disk. + + + + + This is the string containing the path. + + + + + The ontology configuration section. + + + + + The uri of the ontology as string. + + + + + Wrapper for the uri of the ontology as Uri. + + + + + The prefix of the ontology. + + + + + The timestamp when the ontology was first introduced in the project. + + + + + Version of the ontology. + + + + + The location of the ontology file in the web. + + + + + The location of the ontology file on the disk. + + + + + Serialization of th ontology. + + + + + + Hashcode of the ontology. + + + + + + Wrapper for the local path of the ontology. + + + + + Location of the ontology in the web. + + + + + The url of the ontology in the web. + + + + + The section containing all ontologies. + + + + + The list of all ontologies + + + + + The namespace the ontologies should be generated to. + + + + + The general store configuration section. + + + + + The store type this configuration belongs to. + + + + + The content of the store configuration. Will be handled by the store implementation. + + + + + The store section of the configuration. + + + + + The list of the store configurations. + + + + + The general configuration section. + + + + + The ontology section. + + + + + The store section. + + + + + Wrapper for the namespace for this project. + + + + + Wrapper for an easier ontology access. + + + + + + Wrapper for the store configurations. + + + + + + Loads Trinity RDF settings from a XML configuration file. + + + + + Exposes settings for Trinity RDF projects. + + + + + Get the default namespace for generated C# classes. + + + + + Get the ontology settings for the current project. + + An enumeration of ontology settings. + + + + Get the triple store settings for the current project. + + An enumeration of triple store settings. + + + + Exposes ontology settings for a Trinity RDF project. + + + + + Get the namespace URI of the ontology. + + + + + Get the default prefix of the ontology. + + + + + Get the location of the ontology source file. + + + + + Exposes triple store settings for Trinity RDF projects. + + + + + Get the triple store type identifier. + + + + + Get store specific XML configuration data. + + + + + A file source of a element + + + + + The location of this file source + + + + + A graph element in the configuration. + + + + + The Uri of the graph element + + + + + A collection containing all graphs in the configuration + + + + + Create a new graph element + + + + + + Gets the key of the given graph element. Uri is used. + + + + + + + The type of the collection + + + + + The name of the element + + + + + The index operator + + + + + + + Get the element by the key + + + + + + + Test if key exists + + + + + + + Get enumerator of collection + + + + + + A ontology element + + + + + Prefix of this ontology. + + + + + URI of this ontology. + + + + + String representation of the URI. + + + + + The key of the element. + + + + + The location of the ontology file. + + + + + The uri of the metadata graph, only needed for TriG serialisations. + + + + + The string representation of the metadata graph URI. + + + + + String representation of this element. + + + + + + Overwritten hashcode. + + + + + + Get the location of the ontology file source. + + + + + A collection of ontology settings. + + + + + Create a new ontology configuration element. + + A new configuration element. + + + + Get the key associated with a configuration element. + + + URI of the configuration element. + + + + Get the configuration element collection type. + + + + + XML element tag name. + + + + + Gets the configuration element at the specified index location. + + The index location of the System.Configuration.ConfigurationElement to return. + The System.Configuration.ConfigurationElement at the specified index. + + + + Gets the configuration element with the specified identifier. + + The identifier of the System.Configuration.ConfigurationElement to return. + The System.Configuration.ConfigurationElement at the specified index. + + + + Indicates if an element with the given key exists in this collection. + + The identifier to be checked. + true if an element with the given key exists, false otherwise. + + + + Get an enumerator for iterating over the items in this collection. + + An enumerator. + + + + A ruleset element + + + + + Gets or sets the URI of the rule set. + + + + + Gat a collection of graphs associated with this rule set. + + + + + Collection of rule sets. + + + + + Create a new rule set element. + + + + + + Gets the key (the uri) of a RuleSet element. + + + + + + + The collection type. + + + + + Contains the name of the element. + + + + + The index operator. + + + + + + + Index operator with key name. + + The key of the ruleset. + + + + + Can be used to test if the key exists. + + + + + + + Enumerator for the collection. + + + + + + Constains Virtuoso specific settings. + + + + + A collection of inference rule sets. + + + + + Get the triple store type identifier. + + + + + Get store specific XML configuration data. + + + + + Constains the settings for the Semiodesk.Trinity framework. + + + + + Namespace of the generated ontology file. + + + + + Collection of ontology settings. + + + + + Virtuoso specific triple store settings. + + + + + Get the ontology settings for the current project. + + An enumeration of ontology settings. + + + + Get the triple store settings for the current project. + + An enumeration of triple store settings. + + + + This exception will be thrown if the store rejects the query as invalid. + + + + + Contains the offending query + + + + + Create a new exception without information. + + + + + Create a new exception with an error string. + + Details about the issue. + + + + Create a new exception with an error string and an inner exception. + + Details about the issue. + The exception that propmted the query failure. + The offending query + + + + This exception will be thrown when trying to access query result methods + for unsupported SPARQL query forms (i.e. trying to get bindings from an ASK query). + + + + + Contains the offending query. + + + + + Create a new exception with an error string. + + SPARQL query type. + + + + Represents error when one or more resources you tried to access was locked. + + + + + Create a new instance of the ResourceLockedException class. + + Inner exception. + + + + Represents error when a resource could not be retrieved. + + + The exception is derived from ArgumentException to ensure backwards compatibility. + + + + + Create a new instance of the ResourceNotFoundException class. + + URI of the resource. + + + + Represents errors when a suitable triple store adapter could not be found. + + + + + Create a new instance of the StoreProviderMissingException class. + + Error message. + + + + Create a new instance of the StoreProviderMissingException class. + + Error message. + Inner exception. + + + + Extension to FileSystemInfo concerting UriRef handling + + + + + Create a UriRef from a FileSystemInfo + + + + + + + Collection of string extension related to Uris + + + + + Create a UriRef from this string. + + + + + + + Create a UriRef from this string with a given kind + + + + + + Extension of Uri class concering UriRef handling. + + + + + Create a UriRef from this Uri. + + + + + + + The datatype of the the mapped property + + + + + If the datatype is a collection, this contains the generic type. + + + + + True if the property is mapped to a collection. + + + + + The property that should be mapped. + + + + + The name of the mapped property. + + + + + True if the value has not been set. + + + + + Language of the value + + + + + The mapping ignores the language setting and is always non-localized. Only valid if type or generic type is string or string collection. + + + + + Method to test if a type is compatible. In case of collection, the containing type is tested for compatibility. + + The type to test. + True if the type is compatible + + + + Gets the value or values mapped to this property. + + + + + + This method is meant to be called from the non-mapped interface. It replaces the current value if + it is mapped to one value, adds it if the property is mapped to a list. + + + + + + Deletes the containing value and sets the state to unset. In case of a collection, it tries to remove the value from it. + + + + + + Clones the mapping of another resource. + + + + + + Clears the mapping and resets it. + + + + + This interface encapsulates the access to the methods of a RDF resource. + + + + + Uniform Resource Identifier (URI). + + + + + Model from which the resource was instantiated. + + + + + Indicates that this resource is not writable, thus Commit() is illegal. + + + + + Set the language of this resource. This will change te mapped strings to this language. + + + + + Indicates if the resources has been disposed. + + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A instance of IResource. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A string literal. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A string literal. + The culture of the string literal. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A string literal. + The language of the string literal. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A 16-bit integer value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A 32-bit integer value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A 64-bit integer value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A 16-bit unsigned integer value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A 32-bit unsigned integer value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A 64-bit unsigned integer value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A single precision float value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A double precision float value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A decimal value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A boolean value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A datetime value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + Arbitrary data in form of a byte array. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + An Uri. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + An IResource instance. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A instance of IResource. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A string literal. + The culture of the string + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A string literal. + The language of the string. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A 16-bit integer value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A 32-bit integer value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A 64-bit integer value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A 16-bit unsigned integer value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A 32-bit unsigned integer value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A 64-bit unsigned integer value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A single precision float value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A double precision float value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A decimal value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A blooean value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A date value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + Arbitrary data in form of a byte array. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + An Uri. + + + + Indicates if the resource has at least one property of the given type. + + + True on success, False otherwise. + + + + Indicates if the resource has a property with the given value. + + + + True on success, False otherwise. + + + + Indicates if the resource has a property with the given translated string value. + + + + + True on success, False otherwise. + + + + Indicates if the resource has a property with the given translated string value. + + + + + True on success, False otherwise. + + + + Enumerates all properties associated with this resource. + + + + + + Enumerates all properties associated with this resource in form + of a tuple mapping properties to their corresponding values. + + Only return values which should be serialized. + + + + + Enumerates all property values associated with this resource. + + + + + + + Gets the value of a uniquely asserted property. + + A RDF property. + + + + + Gets the value of a uniquely asserted property. + + A RDF property. + Specifies a default value that should be returned if no value exists. + + + + + This static class is responsible for discovering mapped classes. + Every assembly that defines mapping classes needs to register them with this service. + + + + + A class containing information about a RDF class mapped to c#. + + + + + The .NET type of the class. + + + + + RDF classes that are mapped to this class. + + + + + Inferenced RDF classes mapped to this class. Currently not used. + + + + + The number of classes that are not sub class of any other class. + + + + + Constructor to create a new MappingClass + + The c# type + The mapped rdf classes. + The rdf base classes. + + + + The list of all registered assemblies. + + + + + The list of all registered mapped classes. + + + + + Adds a collection of mapped classes to the registration. + + + + + + Adds a mapped class to the registration. + + + + + + Add the super classes of a given .NET type to a given list. + + A .NET type. + List where the base types will be added to. + + + + Loads all mapped classes from the assembly calling this method. + + + + + Register ALL THE THINGS!! + from all assemblies currently loaded. + + + + + Load all mapped classes from the given assembly. + + + + + + Returns all types which match the given restrictions. + + List of RDF classes + A c# type in a inheritence tree. Give Resource if you don't know what to do. + Should inferencing be factored in. + + + + The the RDF class of a C# type. + + + + + + + An interface for classes which provide functionality to manage a set of resources. + + + + + Uri of this model. + + + + + True if the model is empty. + + + + + All unampped properties will be ignored for update and thus deleted. + This reduces the amount of data thats get sent to the database but also might remove important data. + Setting this to true essentialy disables the triple API. + + + + + Adds an existing resource to the model and its backing RDF store. The resulting resource supports the use of the Commit() method. + + The resource to be added to the model. + Transaction associated with the action. + The resource which is now connected to the current model. + + + + Adds an existing resource to the model and its backing RDF store. The resulting resource supports the use of the Commit() method. + + The resource to be added to the model. + Transaction associated with this action. + The resource which is now connected to the current model. + + + + Creates a new resource in the model and its backing RDF store. + + The format string from which a globally unique identifier URI should be generated from. + Transaction associated with this action. + An instance of the given object type wrapping the newly created resource. + The newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Creates a new resource in the model and its backing RDF store. + + A Uniform Resource Identifier. + Transaction associated with this action. + The newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Creates a new resource in the model and its backing RDF store. Provides a resource object of the given type. + + Type of the resource object. Must be derived from Resource. + The format string from which a globally unique identifier URI should be generated from. + Transaction associated with this action. + An instance of the given object type wrapping the newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Creates a new resource in the model and its backing RDF store. Provides a resource object of the given type. + + Type of the resource object. Must be derived from Resource. + A Uniform Resource Identifier. + Transaction associated with this action. + An instance of the given object type wrapping the newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Creates a new resource in the model and its backing RDF store. Provides a resource object of the given type. + + The concrete type of the resource. This must be a subclass of resource. + The format of the resulting uri. + Transaction associated with this action. + An instance of the given object type wrapping the newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Creates a new resource in the model and its backing RDF store. Provides a resource object of the given type. + This method can be used to create a resource of a type which was asserted at runtime. + + A Uniform Resource Identifier. + Type of the resource object. Must be derived from Resource. + Transaction associated with this action. + An instance of the given object type wrapping the newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Removes the given resource from the model and its backing RDF store. Note that there is no verification + that the given resource and its stored represenation have identical properties. + + A Uniform Resource Identifier. + The transaction associated with this action. + + + + Removes the given resource from the model and its backing RDF store. Note that there is no verification + that the given resource and its stored represenation have identical properties. + + Resource that is to be removed from the model. + Transaction associated with this action. + + + + Indicates wheter a given resource is part of the model. + + A Uniform Resource Identifier. + Transaction associated with this action. + True if the resource is part of the model, False if not. + + + + Indicates wheter a given resource is part of the model. + + Resource that should be looked up in the model. + Transaction associated with this action. + True if the resource is part of the model, False if not. + + + + Execute a SPARQL query against the model. + + A SparqlQuery object. + Modifier to enable inferencing. Default is false. + Transaction associated with this action. + A SPARQL query result object. + + + + Execute a SparqlUpdate against the model. + + A sparql update object. + Transaction associated with this action. + + + + Retrieves a resource from the model. + + A Uniform Resource Identifier. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. Provides a resource object of the given type. + + A Uniform Resource Identifier. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. + + The instance of IResource to be retrieved. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. Provides a resource object of the given type. + + A Uniform Resource Identifier. + The type the resource should have. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. + + The instance of IResource to be retrieved. + Transaction associated with this action. + A resource with all asserted properties. + + + + Executes a SPARQL query and provides an enumeration of matching resources. + + A SparqlQuery object. + Modifier to enable inferencing. Default is false. + Transaction associated with the action. + An enumeration of resources that match the given query. + + + + Executes a SPARQL query and provides an enumeration of matching resources. + + A SparqlQuery object. + Modifier to enable inferencing. Default is false. + Transaction associated with the action. + An enumeration of resources that match the given query. + + + + Returns a enumeration of all resources that match the given type. + + Modifier to enable inferencing. Default is false. + Transaction associated with the action. + An enumeration of resources that match the given query. + + + + Returns a queryable object that can be used to build LINQ statements. + + + + + + + Executes a SPARQL query and provides an enumeration of matching resources. + + A SparqlQuery object. + Modifier to enable inferencing. Default is false. + Transaction associated with the action. + An enumeration of resources that match the given query. + + + + Imports the contents of a model located by the given URL. The method supports + importing files and other models stored in the local RDF store. + + A uniform resource locator. + The serialization format. + True to update the model, false to replace the data. + True if the contents of the model were imported, False if not. + + + + Imports the contents of a graph serialized in the stream to this model. + + The stream containing the serialization + Format of the serialization + True to update the model, false to replace the data. + True if the contents of the model were imported, False if not. + + + + Serializes the contents of the model and provides a memory stream. + + The file stream to write to. + The serialization format. + A serialization of the models contents. + + + + Updates a resource with it's current state in the model. + + + + + + + Removes all elements from the model. + + + + + Starts a transaction which can be used to group more queries together to be executed as one. + + Isolation level used to lock the database. + A handle to the transaction. + + + + Compares two models by their uris + + + + + Equals + + + + + + + + HashCode + + + + + + + The model group can be used to query over multiple models at once. + + + + + The default model of this group + + + + + A set of resources which represent a logical model for a given application domain. + + + + + The Uniform Resource Identifier which provides a name for the model. + + + + + Indicates if the model contains statements. + + + + + All unampped properties will be ignored for update and thus deleted. + This reduces the amount of data thats get sent to the database but also might remove important data. + Setting this to true essentialy disables the triple API. + + + + + This constructor is intended to be used only be the ModelManager. + + The underlying triple store implementation to be used. + Uniform Resource Identifier of the model. + + + + Removes all elements from the model. + + + + + Adds an existing resource to the model and its backing RDF store. The resulting resource supports the use of the Commit() method. + + The resource to be added to the model. + Transaction associated with the action. + The resource which is now connected to the current model. + + + + Adds an existing resource to the model and its backing RDF store. The resulting resource supports the use of the Commit() method. + + The resource to be added to the model. + Transaction associated with the action. + The resource which is now connected to the current model. + + + + Creates a new resource in the model and its backing RDF store. Provides a resource object of the given type. + + The format of the resulting uri. + Transaction associated with this action. + An instance of the given object type wrapping the newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Creates a new resource in the model and its backing RDF store. + + A Uniform Resource Identifier. + Transaction associated with this action. + The newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Creates a new resource in the model and its backing RDF store. Provides a resource object of the given type. + + Type of the resource object. Must be derived from Resource. + The format of the resulting uri. + Transaction associated with this action. + An instance of the given object type wrapping the newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Creates a new resource in the model and its backing RDF store. Provides a resource object of the given type. + + Type of the resource object. Must be derived from Resource. + A Uniform Resource Identifier. + Transaction associated with this action. + An instance of the given object type wrapping the newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Creates a new resource in the model and its backing RDF store. Provides a resource object of the given type. + + Type of the resource object. Must be derived from Resource. + The format of the resulting uri. + Transaction associated with this action. + An instance of the given object type wrapping the newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Creates a new resource in the model and its backing RDF store. Provides a resource object of the given type. + This method can be used to create a resource of a type which was asserted at runtime. + + A Uniform Resource Identifier. + Type of the resource object. Must be derived from Resource. + Transaction associated with this action. + An instance of the given object type wrapping the newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Removes the given resource from the model and its backing RDF store. Note that there is no verification + that the given resource and its stored representation have identical properties. + + A Uniform Resource Identifier. + Transaction associated with this action. + + + + Removes the given resource from the model and its backing RDF store. Note that there is no verification + that the given resource and its stored representation have identical properties. + + A resource object. + Transaction associated with this action. + + + + Updates the properties of a resource in the backing RDF store. + + Resource that is to be updated in the backing store. + Transaction associated with this action. + + + + Indicates wheter a given resource is part of the model. + + A Uniform Resource Identifier. + Transaction associated with this action. + True if the resource is part of the model, False if not. + + + + Indicates wheter a given resource is part of the model. + + A resource object. + Transaction associated with this action. + True if the resource is part of the model, False if not. + + + + Execute a SPARQL Query. + + A SparqlQuery object. + Indicate that this query should work with enabled inferencing. + Transaction associated with this action. + A SparqlQueryResults object in any case. + + + + Execute a SPARQL Update. + + A SparqlUpdate object. + Transaction associated with this action. + + + + Retrieves a resource from the model. + + A Uniform Resource Identifier. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. + + The instance of IResource to be retrieved. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. Provides a resource object of the given type. + + A Uniform Resource Identifier. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. Provides a resource object of the given type. + + The resource that should be retrieved. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. Provides a resource object of the given type. + This method can be used for runtime asserted types. + + A Uniform Resource Identifier. + Type of the resource object. Must be derived from Resource. + Transaction associated with this action. + An instance of the given resource object type, Null otherwise. + + + + Executes a SPARQL query and provides an enumeration of matching resources. + + The SparqlQuery object that should be executed. + Indicate that this query should work with enabled inferencing. + transaction associated with this action. + An enumeration of resources that match the given query. + + + + Executes a SPARQL query and provides an enumeration of matching resources. + Provides a resource object of the given type. + + The SparqlQuery object that should be executed. + Indicate that this query should work with enabled inferencing. + transaction associated with this action. + An enumeration of resources that match the given query. + + + + Returns a enumeration of all resources that match the given type. + + Indicate that this query should work with enabled inferencing. + transaction associated with this action. + An enumeration of resources that match the given query. + + + + TODO + + + + + + + Executes a SPARQL-select query and provides a list of binding sets. This method + implements transparent type marshalling and delivers the bound variables in C# + native data types. + + A SPARQL-select query which results in a set of bound variables. + Indicate that this query should work with enabled inferencing. + Transaction associated with this action. + An enumeration of bound variables that match the given query. + + + + Exports the contents of the model and provides a memory stream. + + File stream to write to. + The serialization format. + A serialization of the models contents. + + + + Imports the contents of a model located by the given URL. The method supports + importing files and other models stored in the local RDF store. The location + of the model is determined by the URI scheme. + + A uniform resource locator. + Serialization format + Pass false if you want to overwrite existing data. True if you want to keep the data and add the new entries. + True if the contents of the model were imported, False if not. + + + + Reads model contents from a stream. The method supports importing files and other models stored in the local RDF store. + + A stream. + Serialization format + Pass false if you want to overwrite existing data. True if you want to keep the data and add the new entries. + True if the contents of the model were imported, False if not. + + + + Starts a transaction which can be used to group more queries together to be executed as one. + + Isolation level used to lock the database. + A handle to the transaction. + + + + Implementation of the IModelGroup interface. + + + + + All unampped properties will be ignored for update and thus deleted. + This reduces the amount of data thats get sent to the database but also might remove important data. + Setting this to true essentialy disables the triple API. + + + + + The default model of this group. + + + + + Uri of the model group is null. + + + + + Tests if all contained models are empty. + + + + + Create a new model group from a store and a collection of models + + A store + A collection of models belonging to that store. + + + + Create a new model group from a store and a collection of models + + A store + A set of models belonging to that store. + + + + Not supported. ModelGroups are read-only. + + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + Not supported. ModelGroups are read-only. + + + + + Not supported. ModelGroups are read-only. + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + + + Indicates wheter a given resource is part of the model. + + A Uniform Resource Identifier. + Transaction associated with this action. + True if the resource is part of the model, False if not. + + + + Indicates wheter a given resource is part of the model. + + Resource that should be looked up in the model. + Transaction associated with this action. + True if the resource is part of the model, False if not. + + + + Execute a SPARQL query against the model. + + A SparqlQuery object. + Modifier to enable inferencing. Default is false. + Transaction associated with this action. + A SPARQL query result object. + + + + Retrieves a resource from the model. + + A Uniform Resource Identifier. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. Provides a resource object of the given type. + + The instance of IResource to be retrieved. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. + + A Uniform Resource Identifier. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. Provides a resource object of the given type. + + The instance of IResource that is to be retrieved. + Transaction associated with this action. + The type of the resource. + A resource with all asserted properties. + + + + Retrieves a resource from the model. + + The uri of the resource that is to be retrieved. + The type the resource should have. + Transaction associated with this action. + A resource with all asserted properties. + + + + Executes a SPARQL query and provides an enumeration of matching resources. + + A SparqlQuery object. + Modifier to enable inferencing. Default is false. + Transaction associated with the action. + An enumeration of resources that match the given query. + + + + Executes a SPARQL query and provides an enumeration of matching resources. + + A SparqlQuery object. + Modifier to enable inferencing. Default is false. + Transaction associated with the action. + An enumeration of resources that match the given query. + + + + Returns a enumeration of all resources that match the given type. + + Modifier to enable inferencing. Default is false. + Transaction associated with the action. + An enumeration of resources that match the given query. + + + + TODO + + + + + + + Executes a SPARQL query and provides an enumeration of matching resources. + + A SparqlQuery object. + Modifier to enable inferencing. Default is false. + Transaction associated with the action. + An enumeration of resources that match the given query. + + + + Serializes the contents of the model and provides a memory stream. + + The file stream to write to. + The serialization format. + A serialization of the models contents. + + + + Imports the contents of a graph serialized in the stream to this model. + + The stream containing the serialization + Format of the serialization + True to update the model, false to replace the data. + True if the contents of the model were imported, False if not. + + + + Add another model to the model group. + + The model to add + true if the element is added to the model group false if the element is already present + + + + Removes all elements in the specified collection from the model group. + + The collection of models to remove. + + + + Modifies the model group to contain only elements that are present in the current group and the specified collection. + + The collection to compare. + + + + Determines whether the model group is a subset of the given collection. + + The collection to compare. + true if the model group is a subset; otherwise, false. + + + + Determines whether the model group is a superset of the given collection. + + The collection to compare + true if the model group is a superset; otherwise, false. + + + + Determines whether the model group is a subset of the given collection. + + The collection to compare. + true if the model group is a subset; otherwise, false. + + + + Determines whether the model group is a superset of the given collection. + + The collection to compare. + >true if the model group is a superset; otherwise, false. + + + + Determines wether the model group and the given collection share common models. + + The collection to compare. + true if the model group shares common models; otherwise, false. + + + + Determines wether the model group and the given collection contain the same elements. + + The collection to compare. + true if the collections is equal; otherwise, false. + + + + Modifies the mode group to contain only elements either present in that object or the given collection, but not both. + + The collection to compare. + + + + Modifies the mode group to contain both elements present in that object and the given collection. + + The collection to compare. + + + + Determines if the model group contains the given model. + + The model to locate. + true if the model exists in the group; otherwise, false. + + + + Copies the given models in the group starting at the specified index. + + The models to copy. + The array index + + + + Returns the number of models in the group. + + + + + Returns if the group is read only. + + + + + Removes a model from the group. + + + + + + + Enumerator of the models + + + + + + Enumerator of the models + + + + + + Abstract class which marks subclasses as ontologies. Needed for automatic discovery. + + + + + This static class contains a mapping of all properties and classes to its uris for discovery of the proper object and its attributes. + For future reference: look into PreApplicationStartMethodAttribute Class or ModuleInitializer + + + + + All registered RDF ontology prefixes in the current application. + + + + + All registered RDF properties in the current application. + + + + + All registered RDF classes in the current application. + + + + + Register a namespace with a prefix. + + A namespace prefix. + A uniform resource identifier. + + + + Register an assembly to search for RDF ontologies. + + + + + + Register the calling assembly to search for RDF ontologies. + + + + + Register the concepts from a given set of ontologies. + + An enumeration of ontologies. + + + + Returns a a property with the given Uri. Creates a new one if it doesn't exist. + + + + + + + Returns a a property with the given string. Creates a new one if it doesn't exist. + + + + + + + Objects of this class represent RDF properties. + + + + + Constructor taking a Uri parameter + + Uri of the property + + + + Constructor taking a UriRef parameter + + Uri of the property + + + + Determines wheter the URIs of the compared objects are equal. + + The object to be compared. + true if the URIs of the compared objects are equal, false otherwise. + + + + Returns the hash code of the objects URI. + + A hash code string. + + + + This class does the heavy lifting of the property mapping mechanism. It stores the value and acts as intermediary for the resource. + + + + + + The value of the mapped property. + + + + + The datatype of the the mapped property. + + + + + The datatype of the the mapped property. + + + + + If the datatype is a collection, this contains the generic type. + + + + + If the datatype is a collection, this contains the generic type. + + + + + True if the property is mapped to a collection. + + + + + True if the property is mapped to a collection. + + + + + True if the value has not been set. + + + + + True if the value has not been set. + + + + + Language of the value. + + + + + Gets the mapped RDF property. + + + + + Gets the URI of the mapped RDF property. + + + + + Gets the name of the mapped .NET property. + + + + + Only valid if type or generic type is string. The mapping ignores the language setting and is always non-localized. + + + + + Creates a new property mapping. + + Name of the property in the class + The RDF property that should be mapped + This parameter is only valid if the type is string. Tells the mapping that the values should be treated as non-localized literals. + + + + Creates a new property mapping. + + Name of the property in the class + The RDF property that should be mapped + The default value used to initialize this property + This parameter is only valid if the type is string. Tells the mapping that the values should be treated as non-localized literals. + + + + Creates a new property mapping. + + Name of the property in the class + The URI of the RDF property that should be mapped + This parameter is only valid if the type is string. Tells the mapping that the values should be treated as non-localized literals. + + + + Creates a new property mapping. + + Name of the property in the class + The URI of the RDF property that should be mapped + The default value used to initialize this property + This parameter is only valid if the type is string. Tells the mapping that the values should be treated as non-localized literals. + + + + Sets the property value. + + A value. + + + + Returns the property value. + + The value, if any. + + + + Sets a single literal value or adds a value to a property mapped to a value collection. + + + This method is meant to be called from the non-mapped interface. It replaces the current value if + it is mapped to one value, adds it if the property is mapped to a list. + + The value. + + + + Deletes the containing value and sets the state to unset. In case of a collection, it tries to remove the value from it. + + + + + + Gets the value or values mapped to this property. + + + + + + Gets a list of strings as list of tuples containing the values and the language tags. + + + + + + Method to test if a type is compatible. In case of collection, the containing type is tested for compatibility. + + The type to test. + True if the type is compatible + + + + Indicates if the mapped value is a numeric type. + + A .NET type object. + true if the type is numeric, false otherwise. + + + + Indicates if the precision of a numeric target type is greater or equal to a given source type. + + The source type. + The target type. + true if the types are precision compatible, false otherwise. + + + + Clones the mapping of another resource. + + + + + + Clears the mapping and resets it. + + + + + A dictionary of named value bindings which represents a single query solution. + + + + + Exposes a SPARQL query. + + + + + The model on which the query will be run. + + + + + The type of the query. + + + + + Indicates if inference should be enabled. It depends on the underlying store if and how this is used. + + + + + Bind parameters to specified values. + + + + + + + Returns all prefixes that were specified by the query. + + + + + + Enumerates the graphs which are declared in FROM and FROM NAMED directives at the root level. + + An enumeration of URI strings. + + + + Get an array of all variable names that are defined in the root scope of the query. + + An array of avaiable names without the preceding '$' or '?' characters, if any. + + + + Get the root graph pattern. + + A non empty string, on success. + + + + Gets the outermost ORDER BY clause. + + A non empty string if a ORDER BY clause is defined. + + + + Indicates if the query selects variables that are used as subject, predicate and object in a triple pattern. + + true if the query selects triples, false otherwise. + + + + Returns the string representation of the query. + + The SPARQL query string. + + + + Exposes the results of a SPARQL query. + + + + + Number of items in the result set. + + + + + + Enumerate the resource objects in the result. + + + + + + + + Enumerate the resource objects of a given type in the result. + + + + + + + + + Returns the bool value from ASK query forms. + + True on success, False otherwise. + + + + Returns marshalled Resource objects returned from DESCRIBE, CONSTRUCT + or interpretable SELECT query forms. + + An enumeration of Resource objects. + + + + Returns marshalled instances of the given Resource type which were + returned from DESCRIBE, CONSTRUCT or interpretable SELECT query forms. + + The Resource type object. + An enumeration of instances of the given type. + + + + Returns a set of bound values (bindings) returned from SELECT query forms. + + An enumeration of bound solution variables (BindingSet). + + + + Extensions for the ConstantExpression type. + + + + + Convert the expression into a ConstantTerm. + + A constant expression. + A ConstantTerm object. + + + + Convert the expression into a IriExpression. + + A constant expression. + A IriExpression object. + + + + Convert the expression into a LiteralExpression. + + A constant expression. + A LiteralExpression object. + + + + Convert the expression into a numeric expression. + + A constant expression. + A NumericExpression object. + + + + Convert the expression into a node. + + A constant expression. + A Node object. + + + + Indicates if the expression can be evaluated to false. + + A constant expression. + true if the value is either null or false, false otherwise. + + + + Indicate if an expression contains antoher or is equal to it. + + An expression. + Expression to be evaluated. + true if e is equal to the given expression or one of its query sources, false otherwise. + + + + Extensions for the MemberInfo type. + + + + + Gets the first custom attribute of a specified type which is attached to a class member. + + Custom attribute type. + A class member. + A custom attribute object on success, null otherwise. + + + + Get the .NET type of the given class member. + + A class member. + The class member type. + + + + Indicates if the given member is of type Uri or a sub type. + + A class member. + true if the member can be represented by a URI, false otherwise. + + + + Indicates if the given member is a built-in call. + + A class member. + true if the class member is a built-in call, false otherwise. + + + + Extensions for the MethodCall type. + + + + + Indicates if the method call has an argument with a specified value at a specified location. + + A method call expression. + Location of the argument. + Value of the argument. + true if the method call has an argument with the given value, false otherwise. + + + + Indicates if the method call has an argument at a speficied loaction with one of the specified values. + + A method call expression. + Location of the argument. + Values of the argument. + true if the method call has an argument with one of the given values, false otherwise. + + + + Get the value of an argument at the specified location. + + Value type. + A method call expression. + Argument location. + + + + + Get the value of an argument at the specified location. + + Value type. + A method call expression. + Argument location. + Value to be returned if no argument is specified at the given location. + + + + + Extension for the NodeFactory type. + + + + + Create a boolean literal value. + + A node factory. + Value of the literal node. + A new literal node object. + + + + Generates SELECT queries which return binding sets. + + + This class is intended to be used as a root query generator. For generating SELECT queries + for sub-queries, refer to SubSelectQueryGenerator. + + + + + Builds the triples required to access a given member and accociates its value with a variable. + + The member to be accessed. + The object variable associated with the member value. + + + + Builds the triples required to access a given member and accociates its value with a variable. + + The member to be accessed. + The object variable associated with the member value. + + + + Generates a SPARQL query from a LINQ query model by visiting all clauses and invoking + expression implementation using a ExpressionTreeVisitor. + + The result type. + + + + Allows to access query generators and sub query generators in a tree-like fashion. + + + + + Visits all expressions in a query model and handles the query generation. + + + + + Get a variable from an expression that can be used as a subject in triple patterns and represents resources. + + + + + + + A simple SPARQL parser. + + + This class is primarily intended to support a limited range of query + preprocessing tasks such as setting the values of query parameters (@-variables) + as quickly as possible. It does not aim to support the full SPARQL standard syntax. + + + + + We use the list of tokens to generate the query string with bound parameters on demand. + + + + + Type of the last read token. + + + + + URIs of the graphs queried or manipulated by the query. + + + + + Namespace prefixes defined in the query. + + + + + Namespace prefixes referenced in the query. + + + + + Names of the bindable query parameters starting with '@'. + + + + + Bound literal values of the query parameters. + + + + + Token types of the query parameters. + + + + + Creates a new instance of the SparqlPreprocessor class. + + A text reader. + SPARQL syntax level. + + + + Starts analyzing the SPARQL query. + + Trz to add prefix definitions for the namespaces used but not declared in the query. + + + + Gets the next parseable Token from the Input or raises an Error. + + + + + + Add FROM definition to the query. + + URI of the graph. + + + + Add a FROM NAMED definition to the query. + + URI of the graph. + + + + Gets the PREFIX definitions in the query. + + + + + + Set the value for a query parameter which is preceeded by '@'. + + The parameter name including the '@'. + The paramter value. + + + + Return the query with all bound variables. + + Level of the sub graph to be returned (0 := entire query). + + + + + Returns the entire query string. + + + + + + Graph pattern scope of variables defined in a SPARQL query. + + + + + A variable accessible in all levels of the query. + + + + + A locally accessible variable. + + + + + A simple SPAQL Query class. This class aims to ease formulating SPARQL + query strings by automatically setting PREFIX declarations from a given + namespace manager. + + + + + + Cached version of the query string. + + + + + Indicates if a query parameter value has been changed and the cached query string needs to be regenerated. + + + + + The SPARQL query processor used to determine the prefixes and statement variables in the query. + + + + + Names of the globally defined variables without the preceding '?'. + + + + + The default model of the Query, if there is excactly one. + + + + + Get or set the model used for this query. + + + + + The query form as defined in http://www.w3.org/TR/rdf-sparql-query/#QueryForms + + + + + Indicates if the query result should be expanded using run-time inferencing. + + + + + Creates a new SPARQL query. If enabled, the PREFIXES used in any of the query's graph patterns will + be declared in the query header if they are found in the application config. Additionally, the query + may be compacted in order to reduce processing overhead when being used repeatedly in loops. + + The SPARQL query string. + Set to true if the namespace prefixes used in the query should be declared. + + + + Indicates if the query provides a description of one or more resources. + + + + + Set the value for a query parameter which is preceeded by '@'. + + The parameter name including the '@'. + The paramter value. + + + + Enumerates the graphs which are declared in FROM and FROM NAMED directives at the root level. + + An enumeration of URI strings. + + + + Returns all prefixes that were specified by the query. + + + + + + Gets the names of all variables which are defined in the root graph pattern. + + + + + + Gets the entire query as a string. + + + + + + Indicates if the query contains an ORDER BY clause in any of its graph patterns. + + true if the query contains an ORDER BY clause, false otherwise. + + + + Adds a LIMIT <int> clause to the query in order to restrict it to put an upper bound on the number of solutions returned. + + The number of return values. + + + + Adds an Offset <int> clause to the query which causes the solutions generated to start after the specified number of solutions. + + The number of entries to skip. + + + + Returns the query string with generated prefixes and subsituted parameters. + + A valid SPARQL string. + + + + The SPARQL query forms as specified in http://www.w3.org/TR/rdf-sparql-query/#QueryForms + + + + + The SPARQL query type could not be determined. + + + + + The ASK query form. + + + + + The CONSTRUCT query form. + + + + + The DESCRIBE query form. + + + + + The SELECT query form. + + + + + A preprocsesor for SPARQL queries. + + + + + The SPARQL query form, i.e. ASK, DESCRIBE, SELECT, CONSTRUCT. + + + + + Indicates if the query returns triples. + + + + + Variables visible in the query root scope. + + + + + Variables only visible in local scope. + + + + + Indicates if the query has an ORDER BY solution modifier. + + + + + Create a new instance of the SparqlQueryPreprocessor class. + + A text reader. + SPARQL syntax level. + + + + Gets the next token in the query and advance the reader position. + + A SPARQL token. + + + + Adds a LIMIT clause to the query in order to restrict it to put an upper bound on the number of solutions returned. + + The number of return values. + + + + Adds an OFFSET clause to the query which causes the solutions generated to start after the specified number of solutions. + + The number of return values. + + + + Get the entire SPARQL query string. + + A SPARQL query string. + + + + Get the ORDER BY clause. + + A string. + + + + Provides functionality to perform serialization of native .NET types into SPARQL strings. + + + + + Serializes a string and excapes special characters. + + A string literal. + + + + + Serializes a string with a translation + + A string literal. + A language tag. + + + + + Serializes a typed literal. + + A value. + A type URI. + + + + + Serializes a value depdening on its type. + + An object. + + + + + Serializes a DateTime object. + + A date time object. + + + + + Serializes a URI. + + A uniform resource identifier. + + + + + Serializes a resource. + + A resource. + Ignores all unmapped properties for serialization. + + + + + Generate the dataset clause for a given model. + + A model. + + + + + Generate a dataset clause for a model group. + + A model group. + + + + + Generate a dataset clause for an enumeration of models. + + An enumeration of models. + + + + + Serialize a count query for the given SPARQL query. + + The model to be queried. + The query which results should be counted. + + + + + Generate a query which returns the URIs of all resources selected in a given query. + + The model to be queried. + The SPARQL query which provides resources. + Offset solution modifier. + Limit solution modifier. + + + + + Add an offset or limit solution modifier to a given SPARQL query. + + The model to be queried. + The SPARQL query to be executed. + Offset solution modifier. + Limit solution modifier. + + + + + A simple SPARQL Update class. This class aims to ease formulating SPARQL + query strings by automatically setting PREFIX declarations from a given + namespace manager. + + + + + Get or set the model used for this query. + + + + + Get or set the resource being updated. + + + + + The SPARQL processor used to determine the prefixes and statement variables in the query. + + + + + The plain SPARQL update string. + + + + + Create a new SPARQL Update with an optional namespace manager instance which + can be used to declare PREFIX declarations for the namespace abbreviations + used in the update string. + + The u update string. + + + + Set the value for a query parameter which is preceeded by '@'. + + The parameter name including the '@'. + The paramter value. + + + + Returns the query string with generated prefixes and subsituted parameters. + + A valid SPARQL string. + + + + Enumerates all supported RDF serialization formats. + + + + + RDF/XML http://www.w3.org/TR/REC-rdf-syntax/ + + + + + N3 http://www.w3.org/TeamSubmission/n3/ + + + + + NTriples http://www.w3.org/2001/sw/RDFCore/ntriples/ + + + + + NTriples https://www.w3.org/TR/2014/REC-n-quads-20140225/ + + + + + TriG http://www.w3.org/TR/trig/ + + + + + Turtle http://www.w3.org/TR/turtle/ + + + + + JSON + + + + + JSON-LD https://www.w3.org/TR/json-ld/ + + + + + This class repesents a RDF resource. + + + + + The cache for the associated resources, needed to support lazy loading for mapping. + + + + + This dictionary contains the properties and the associated values. + + + + + Contains a list of all properties which implement the INotifyPropertyChanged interface. + + + + + All mappings as discovered by InitialisePropertyMapping. + + + + + Handle to the model. + + + + + Public accessor to the model. + + + + + The uri which represents the resource. + + + + + New resource which have never been committed need to be treated differently. + + + + + Indicates if the resources has been disposed. + + + + + True if the properties of the resources has been committed to the model. + + + + + Indicates this resource is read-only. + + + + + This method provides a mechanism to change writability in subclasses. + + + + + + Set the language of this resource. This will change te mapped strings to this language. + + + + + Private since a Resource cannot be created without a URI. + + + + + Create a new resource with a given Uri. + + + + + + Create a new resource with a given Uri. + + + + + + Create a new resource with a given string. Throws an exception if string is Uri compatible. + + The string converted to a Uri. Throws an exception if not possible. + + + + Create a new instance of the class and copy the properties from another class instance. + + + + + + Destructor + + + + + Sets the model the resource is stored in. + + A model. + + + + Loads and initialises all mapped properties. + + + This method could be re-reimplemented and sped up by the CIL generator. + + + + + Overwrite this method to return the RDF classes of your resource type. + + + + + + Returns the uri with brackets. + + + + + + Determines wheter the URIs of the compared objects are equal. + + The object to be compared. + true if the URIs of the compared objects are equal, false otherwise. + + + + Returns the hash code of the objects URI. + + A hash code string. + + + + Internal method to add the values. This is not public because the value is of type object and thus not typesafe for rdf. + + + + + + + + Add a property with a resource as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a string as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a string and language as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a string and language as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a Int16 as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a Int32 as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a Int64 as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a UInt16 as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a UInt32 as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a UInt64 as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a float as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a double as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a decimal as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a bool as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a DateTime as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a byte array as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with an Uri as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Internal method to remove the values. This is not public because the value is of type object and thus not typesafe for rdf. + + + + + + + Removes a property with a IResource value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a string value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a string value associated with the given language. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a string value associated with the given language. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a Int16 value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a Int32 value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a Int64 value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a UInt16 value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a UInt32 value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a UInt64 value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a float value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a double value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a decimal value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a bool value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a DateTime value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a byte array value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with an Uri value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Internal method to remove all properties. + + + + + Returns true if the resource has any object connected with the specified property. + + The property to be checked. + true if the property is associated, false if not + + + + Returns true if the specified value is connected to this resource with the given property. + + The property to be checked + The value that should be tested + true if the value is associated with the property, false if not + + + + Returns true if the specified string value with the given language is connected to this resource with the given property. + + The property + The string value. + The language the string is in. + + + + + Returns true if the specified string value with the given language is connected to this resource with the given property. + + The property + The string value. + The language the string is in. + + + + + This method lists all combinations of properties and values. + + Only return values which should be serialized. + + + + + Lists all values associated with one property. + This inclues the mapped values as well. + + + + + + + List all available properties. + This includes mapped properties if they have valid values. + + + + + + Return the value for a given property. + + A RDF property. + The value on success, null if the object has no such property. + + + + Return the value for a given property with a predefined default value. + + A RDF property. + Specifies a default value that should be returned if no value exists. + The value on success, the default value if the object has no such property. + + + + Persist changes in the model. + + + + + Reload the resource from the model. + + + + + This method returns if property is mapped. + + Rdf property to be tested. + Type of the mapping. + + + + + This method returns the mapped property of the given rdf property and type. It returns null if this mapping is not available. + + Rdf property to be tested. + Type of the mapping. + + + + + Returns the value from the mapped property. + + + + + + + + Set the mapped value. This also raises the PropertyChanged event. + + + + + + + + Load all cached resources from the mapped property. The values of the mapped property are resolved when this method returns. + + + + + + Register a property name to raise the INotifyProperty signal on rollback. + + Name of a property. + + + + Raises the PropertyChanged event of the object. + + Name of a property. + + + + Update the property mappings with the values in the selected language. + + + + + Dispose this resource. + Does nothing meaningful currently. + + + + + Needed for the implementation of the INotifyPropertyChanged interface. + + + + + Warns the developer if this object does not have + a public property with the specified name. This + method does not exist in a Release build. + + + + + Returns whether an exception is thrown, or if a Debug.Fail() is used + when an invalid property name is passed to the VerifyPropertyName method. + The default value is false, but subclasses used by unit tests might + override this property's getter to return true. + + + + + This method loads the cached Resources for the given MappingProperty from the Storage and returns them. + They are instantiated as the defined type. The cache for this mapping property is emptied. + + Mapping property which should be loaded from cache. + List of formerly cached resources. + + + + Tests if the mapping has cached values. + + + + + + + Tests if the mapping has a certain cached values. + + + + + + + + + + + + + + + Converts resources to and from JSON format. + + + + + Create a new instance of the JsonResourceConverter class. + + A triple store. + + + + Indicates if the given object can be converted. + + An object. + true if the object is of type Resource, false otherwise. + + + + Convert a JSON string into an object. + + A JSON reader. + Returned object type. + The existing value of object being read. + The calling serializer. + + + + + Indicates if the converter can write JSON. + + + + + Write the JSON representation of an object. + + The JSON writer to be used. + The object value. + The JSON serializer to be used. + + + + Settings for the serializing resources to and from JSON format. + + + + + Create a new instance of the JsonResourceSerializerSettings class. + + A triple store. + + + + A store adapter for dotNetRDF. + + + + + Creates a new dotNetRDFStore. + + A list of ontology file paths relative to this assembly. The store will be populated with these ontologies. + + + + Removes model from the store. + + Uri of the model which is to be removed. + + + + Query if the model exists in the store. + OBSOLETE: This method does not list empty models. At the moment you should just call GetModel() and test for IsEmpty() + + Uri of the model which is to be queried. + + + + + Executes a query on the store which does not expect a result. + + The update query + An associated transaction + + + + Executes a SparqlQuery on the store. + + + + + + + + This method queries the dotNetRdf store directly. + + + + + + + Gets a handle to a model in the store. + + Uri of the model. + + + + + Indicates if the store is ready to be queried. + + + + + Lists all models in the store. + + All handles to existing models. + + + + Try parse RDF from a given text reader into the store. + + The text reader to read from. + The graph to store the read triples. + RDF format to be read. + + + + Loads a serialized graph from the given stream into the current store. See allowed formats. + + Stream containing a serialized graph + Uri of the graph in this store + Allowed formats + Pass false if you want to overwrite the existing data. True if you want to add the new data to the existing. + + + + + Loads a serialized graph from the given location into the current store. See allowed formats. + + Uri of the graph in this store + Location + Allowed formats + Pass false if you want to overwrite the existing data. True if you want to add the new data to the existing. + + + + + Writes a serialized graph to the given stream. See allowed formats. + + Stream to which the content should be written. + Uri fo the graph in this store + Allowed formats + + + + + + + + + + + + Creates a model group which allows for queries to be made on multiple models at once. + + + + + + + Creates a model group which allows for queries to be made on multiple models at once. + + + + + + + Closes the store. It is not usable after this call. + + + + + A store provider for dotNetRDF triple store adapters. + + + + + Create a new instance of the dotNetRDFStoreProvider class. + + + + + Create a new triple store with the given settings. + + Triple store setting variables. + + + + + A generic triple provider interface + + + + + Indicates if another triple is available + + + + + Iterates to the next triple + + + + + Subject + + + + + Predicate + + + + + Object + + + + + Number of total triples + + + + + Resets the provider + + + + + Storage that can can connect to Sparql Endpoints + + + + + + + Indicates if the store is ready to be queried. + + + + + Set this property to log the SPARQL queries which are executed on this store. + For example, to log to the console, set this property to System.Console.Write(System.String). + + + + + A store adapter for SPARQL protocol endpoints. + + + + + Create a new instance of the SparqlEndpointStoreProvider. + + + + + Create a new triple store with a specified configuration. + + Triple store specific configuration variables. + + + + + Handles query results for Stardog triple stores. + + + + + An RDF handler for Stardog triple stores. + + + + + Handles events when reading an RDF file has started and no triples have been read. + + The source of the event. + + + + Handle events when reading an RDF file has ended and all triples have been read. + + The source of the event. + Indicates if errors have occured while reading the file. + + + + Handle events when during reading of an RDF file a triple has been read. + + The source of the event. + The triple. + + + + RDF result handler for Stardog triple stores. + + + + + Result value of ASK queries. + + + + + Binding result of SELECT queries. + + + + + Create a new instance of the class StardogResultHandler. + + + + + Must be overridden by derived handlers to appropriately handle boolean results. + + Boolean result value. + + + + Must be overridden by derived handlers to appropriately handler SPARQL Results. + + SPARQL bindings. + + + + + Must be overridden by derived handlers to appropriately handle variable declarations. + + Variable name. + + + + + Indicates the result value of ASK queries. + + true or false + + + + A store adapter for Stardog databases. + + + + + Indicates if the store is connected and awaiting queries. + + + + + Create a new instance of the StardogStore class. + + URL of the host to connect to. + Username to be used when connecting. + Password to be used when connecting. + Knowledge base / database identifier. + + + + Adds a new model with the given uri to the storage. + + Uri of the model + Handle to the model + + + + Query if the model exists in the store. + OBSOLETE: This method does not list empty models. At the moment you should just call GetModel() and test for IsEmpty + + Uri of the model which is to be queried. + + + + + Executes a query on the store which does not expect a result. + + SPARQL Update to be executed. + An optional transaction. + + + + Executes a SparqlQuery on the store. + + SPARQL query string to be executed. + An optional transaction. + + + + + Executes a SparqlQuery on the store. + + SPARQL query to be executed. + An optional transaction. + + + + + Gets a handle to a model in the store. + + Model URI. + + + + + Lists all models in the store. + + All handles to existing models. + + + + Loads a serialized graph from the given stream into the current store. See allowed formats. + + Stream containing a serialized graph + Uri of the graph in this store + Allowed formats + Pass false if you want to overwrite the existing data. True if you want to add the new data to the existing. + + + + + Loads a serialized graph from the given location into the current store. See allowed formats. + + Uri of the graph in this store + Location + Allowed formats + Pass false if you want to overwrite the existing data. True if you want to add the new data to the existing. + + + + + Writes a serialized graph to the given stream. See allowed formats. + + Stream to which the content should be written. + Uri fo the graph in this store + Allowed formats + + + + + Removes model from the store. + + Uri of the model which is to be removed. + + + + Starts a transaction. The resulting transaction handle can be used to chain operations together. + + Isolation level of the operations executed in the transaction. + + + + + Invoked when a transaction is completed. + + Object which invoked the event. + Event arguments. + + + + Creates a model group which allows for queries to be made on multiple models at once. + + The list of uris of the models that should be grouped together. + + + + + Creates a model group which allows for queries to be made on multiple models at once. + + The list of model handles that should be grouped together. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Wrapper to support Stardog transactions. At present, nested transaction is NOT supported as the transaction instance is a wrapper around the StardogConnector. + + + + + + + + Instance is active and has not been committed or rolled back. + Once the transaction has been committed or rolled back, it should be disposed of. + + + + + + + + + + + + + + + + + + + + Number of pending "Additions" in the current transaction. + + + + + Number of pending "Removals" in the current transaction. + + + + + Has any pending changes. + + + + + SPARQL converter. Takes a typical Stardog "update" query and decomposes it so that it can be used with the StardogConnector's UpdateGraph method. + Does require a valid Store instance to extract the Removals from the current connection. + + + + + An RDF triple. + + + + + Get or set the subject of the triple. + + + + + Get or set the predicate of the triple. + + + + + Get or set the object of the triple. + + + + + Gets a SPARQL compliant string representation of the triple. + + A string. + + + + An RDF node. + + + + + Get or set the literal node. + + + + + Get or set the literal data type URI. + + + + + Indicates if the node is a literal. + + + + + Get a SPARQL compliant string representation of the node. + + + + + + The last SPARQL query supplied to + + + + + The URI of the Graph Additions and Deletes will be applied to. + + + + + The URI of the entity being updated/saved. + + + + + Triple instances which will be removed + + + + + Triple instances converted from UpdateTriples + + + + + Parsed TripleSet instances which constitute the Additions + + + + + Create an instance of the class StardogUpdateSparqlConvertor. + + + + + Create an instance of the class StardogUpdateSparqlConvertor. + + Startdog store instance. + + + + Given a typical SPARQL update query, it will be parsed and decomposed into the appropriate artifacts suitable to call the StardogConnector UpdateGraph method. + + SPARQL query string. + + + + Returns string based triples, separated by a ' ; ' string. If only two are found, the s value is returned as null since it is assumed that predicate and object are present. + + + + + Peaks ahead to see if there is another node present; indicated by the next non-whitespace of a < or ' character. + + + + + Extensions for the System.String type. + + + + + Extracts the instance'th string between start and end. + If start or end is null/empty then instance is assumed to always be 1 regardless of the value. + + Input string + Start delimiter + End delimiter + Instance of start/end to use. + + + + Extracts the instance'th string between start and end. + If start or end is null/empty then instance is assumed to always be 1 regardless of the value. + + Input string + Start delimiter + End delimiter + Pointer into input where parsing ended. This will be at the point AFTER end was found. + Instance of start/end to use. + + + + Returns the string between the first set of single quotes. Supports escaped single quotes but only \\' + + Input string + Pointer into input where parsing ended. This will be at the point AFTER end was found. + + + + + This class allows the usage of the Stardog store. + An IStore handle can be created by calling + StoreFactory.CreateStore("provider=stardog;host=http://localhost:5820;uid=admin;pw=admin;sid=MyStore"); + + + + + Create a new instance of the class StardogStoreProvider. + + + + + The GetStore method which will be called with the parsed configuration string. + + Store specific configuation parameters. + An instance of IStore. + + + + The IStorage interface describes the methods an RDF Storage has to implement. + + + + + Indicates if the store is ready to be queried. + + + + + Set this property to log the SPARQL queries which are executed on this store. + For example, to log to the console, set this property to System.Console.Write(System.String). + + + + + Adds a new model with the given uri to the storage. + + Uri of the model + Handle to the model + + + + Removes model from the store. + + Uri of the model which is to be removed. + + + + Removes model from the store. + + Handle to the model which is to be removed. + + + + Query if the model exists in the store. + OBSOLETE: This method does not list empty models. At the moment you should just call GetModel() and test for IsEmpty + + Uri of the model which is to be queried. + + + + + Query if the model exists in the store. + OBSOLETE: This method does not list empty models. At the moment you should just call GetModel() and test for IsEmpty + + Handle to the model which is to be queried. + + + + + Gets a handle to a model in the store. + + Uri of the model. + + + + + Lists all models in the store. + + All handles to existing models. + + + + Executes a SparqlQuery on the store. + + + + + + + + Executes a query on the store which does not expect a result. + + + + + + + Starts a transaction. The resulting transaction handle can be used to chain operations together. + + The isolation level of the transaction. + + + + + Creates a model group which allows for queries to be made on multiple models at once. + + The list of uris of the models that should be grouped together. + + + + + Creates a model group which allows for queries to be made on multiple models at once. + + The list of uris of the models that should be grouped together. + + + + + Loads a serialized graph from the given location into the current store. See allowed formats. + + Uri of the graph in this store + Location + Allowed formats + Pass false if you want to overwrite the existing data. True if you want to add the new data to the existing. + + + + + Loads a serialized graph from the given stream into the current store. See allowed formats. + + Stream containing a serialized graph + Uri of the graph in this store + Allowed formats + Pass false if you want to overwrite the existing data. True if you want to add the new data to the existing. + + + + + Writes a serialized graph to the given stream. See allowed formats. + + Stream to which the content should be written. + Uri fo the graph in this store + Allowed formats + + + + + Initializes the store from the configuration. It uses either the provided file or attempts to load from "ontologies.config" located next to the executing assembly. + For legacy reasons it also looks in the app.config file. + If the ontology files are in a different path, this can be supplied as a base path.. + + Path the configuration should be read from. + Path where the ontologies should be searched for. + + + + Initializes the store from the configuration. It uses either the provided file or attempts to load from "ontologies.config" located next to the executing assembly. + For legacy reasons it also looks in the app.config file. + If the ontology files are in a different path, this can be supplied as a base path.. + + Load a specific configuration file. + If given, this function tries to load the ontologies from this folder. + + + + Exposes methods for executing triple store specific methods. + + + + + Load storage specific configurations. + + Triple store instance. + + + + This class encapsulates the functionality of an abstract triple store. Cannot be used directly. + Use StoreFactory to get a concret implementation. + + + + + Indicates if the store is connected and awaiting queries. + + + + + Set this property to log the SPARQL queries which are executed on this store. + For example, to log to the console, set this property to System.Console.Write(System.String). + + + + + Removes model from the store. + + Uri of the model which is to be removed. + + + + Removes model from the store. + + Handle of the model which is to be removed. + + + + Query if the model exists in the store. + OBSOLETE: This method does not list empty models. At the moment you should just call GetModel() and test for IsEmpty + + Uri of the model which is to be queried. + + + + + Query if the model exists in the store. + OBSOLETE: This method does not list empty models. At the moment you should just call GetModel() and test for IsEmpty + + Handle to the model which is to be queried. + + + + + Lists all models in the store. + + All handles to existing models. + + + + Executes a SparqlQuery on the store. + + SPARQL query to be executed. + An optional transaction. + + + + + Executes a query on the store which does not expect a result. + + SPARQL Update to be executed. + An optional transaction. + + + + Starts a transaction. The resulting transaction handle can be used to chain operations together. + + Isolation level of the operations executed in the transaction. + + + + + Loads a serialized graph from the given location into the current store. See allowed formats. + + Uri of the graph in this store + Location + Allowed formats + Pass false if you want to overwrite the existing data. True if you want to add the new data to the existing. + + + + + Loads a serialized graph from the given stream into the current store. See allowed formats. + + Stream containing a serialized graph + Uri of the graph in this store + Allowed formats + Pass false if you want to overwrite the existing data. True if you want to add the new data to the existing. + + + + + Writes a serialized graph to the given stream. See allowed formats. + + Stream to which the content should be written. + Uri fo the graph in this store + Allowed formats + + + + + Initializes the store from the configuration. It uses either the provided file or attempts to load from "ontologies.config" located next to the executing assembly. + For legacy reasons it also looks in the app.config file. + If the ontology files are in a different path, this can be supplied as a base path.. + + Load a specific configuration file. + If given, this function tries to load the ontologies from this folder. + + + + Initializes the store from the configuration. It uses either the provided file or attempts to load from "ontologies.config" located next to the executing assembly. + For legacy reasons it also looks in the app.config file. + If the ontology files are in a different path, this can be supplied as a base path.. + + Path the configuration should be read from. + Path where the ontologies should be searched for. + + + + This method loads the configuration data from the given file. + This can read the old App.config and new ontologies.config files. + + Path to either ontologies.config or App.config file. + + + + + Loads Ontologies defined in the currently loaded config file into the store. + + Handle of the configuration. + Searchpath for the ontologies. + + + + Disposes this store and it's underlying connection. This object cannot be reused after disposing. + + + + + Adds a new model with the given uri to the storage. + + Uri of the model + Handle to the model + + + + Gets a handle to a model in the store. + + Model URI. + + + + + Creates a model group which allows for queries to be made on multiple models at once. + + The list of uris of the models that should be grouped together. + + + + + Creates a model group which allows for queries to be made on multiple models at once. + + The list of model handles that should be grouped together. + + + + + This is the factory for object implementing the IStore interface. + If you want to use your own store, you can load the assembly containing the provider with the LoadProvider method. + + + + + Tests if the given connection string is valid. + + + + + + + Creates a store from the given connection string. + + + + + + + Tries to read a connection string with the given name from the configuration. If no name was given, the first compatible connection string is used. + + + + + + + Creates a temporary in-memory store using the dotNetRDF provider. + + + + + + Create a store suitable for querying SPARQL protocol endpoints. + + URL of the SPARQL endpoint. + + + + + Tries to load a store provider from the given assembly. + + + + + + + Tries to load a store provider from the given assembly file. + + A assembly file info object. + + + + + Tries to load a store provider from the given assembly. + + An assembly. + + + + + This is the abstract store provider class. Implement it if you want to write your own store provider. + + + + + The name of the store. + + + + + All valid configuration options + + + + + The constructor of the store provider + + + + + The GetStore method which will be called with the parsed configuration string. + + Store specific configuation parameters. + An instance of IStore. + + + + This class can be used to load or update ontologies in stores. It provides convinence methods to load directly from the ontologies.config file. + + + + + Create a new instance of the StoreUpdater class. + + The store you want to update. + A directory used as base path. + + + + This method loads the given ontologies into the provided store. + A model will be created for each ontology. If it already exists, it wil be replaced. + + A collection of ontologies to be loaded. + + + + Gets an absolute path from a location relative to the triple store instance. + + A relative path. + + + + + This method can be used to load storage specific configuration. + + + + + + Handle for transaction events. + + Object which raised the event. + Event arguments. + + + + Exposes a repository which supports transactions. + + + + + The isolation level of the transaction. + + + + + Commit the transaction. + + + + + Rolls the transaction back. + + + + + Will be raised if transaction finishes. + + + + + Interface for a transactional object + + + + + Persist any changes to the object. + + + + + Discard any changes to the object. + + + + + This class encapsulates arguments for transaction event. + + + + + Indicates that the transaction finished with a commit. + + + + + Indicates that the transaction finished with a rollback. + + + + + Create a new transaction event object. + + Pass true to indicate that a commit happened. Pass false to indicate that a rollback happend. + + + + This class extends the framework Uri class to also include fragments for + equality testing. + + + + + Creates an UriRef from an Uri + + + + + + Create an UriRef from a string. + + + + + + Creates an UriRef from a string with a given UriKind. + + + + + + + Creates an UriRef from a base uri and a relative uri as string. + + + + + + + Tests the equality of two UriRefs. + + + + + + + Override of GetHashCode which factors the fragment in. + + + + + + Generates a globally unique resource identifier in the Semiodesk namespace: <urn:uuid:{GUID}/> + + A Uniform Resource Identifier. + + + + A Uniform Resource Name (URN). + + + + + Create a new instance of a URN from an identifier. + + Identifier associated with a URN namespace. + + + + Provides functionality for the serialization and deserialization of .NET + objects to XML Schema encoded strings. + + + + + XSD URI vocabulary. + + + + + Maps .NET types to XSD type URIs. + + + + + Maps XSD type URIs to .NET types. + + + + + Maps .NET types to object serialization delegates. + + + + + Maps XSD type URIs to object deserialization delegates. + + + + + Provides the XML Schema type URI for a given .NET type. + + A .NET type object. + A XML Schema type URI. + + + + Indicates if there is a registered XML Schema type URI for the given .NET type. + + A .NET type object. + true if there is a XML schema type, false otherwise. + + + + Provides the XML Schema type URI for a given .NET type. + + A xsd type uri. + A XML Schema type URI. + + + + The object serialization delegate + + + + + + + Serializes an object to an XML Schema encoded string. + + + + + + + Serializes an object forcd to a given type to an XML Schema encoded string. + + + + + + + + Serialize an IResource + + + + + + + Serialize an Uri + + + + + + + Serialize a string + + + + + + + Serialize an array of strings + + + + + + + Serialize a tuple consisting of a string and its associated culture + + + + + + + Serialize a DateTime + + + + + + + Serialize a byte array + + + + + + + Serialize a bool + + + + + + + Serialize an Int16 + + + + + + + Serialize an Int32 + + + + + + + Serialize an Int64 + + + + + + + Serialize an Uint16 + + + + + + + Serialize an Uint32 + + + + + + + Serialize an Uint64 + + + + + + + Serialize a decimal + + + + + + + Serialize a double + + + + + + + Serialize a float + + + + + + + Deserialization delegate, format for deserialization functions. + + + + + + + Deserialize string, nothing to do. + + The string + The string + + + + Deserialize string with given type uri. + + The value as string. + The xsd type. + The value in its correct type. + + + + Deserialize an int16 from a string. + + The serialized int16 + An int16 + + + + Deserialize an int32 from a string. + + The serialized int32 + a int32 value + + + + Deserialize an int64 from a string. + + The serialized int64 + A int64 value + + + + Deserialize an uint6 from a string. + + The serialized int64 + A uint16 value + + + + Deserialize an int32 from a string. + + The serialized int32 + A int32 value + + + + Deserialize an uint64 from a string. + + The serialized uint64 + A uint64 value + + + + Deserialize a bool from a string. + + The serialized bool + A bool value + + + + Deserialize a decimal from a string. + + The serialized decimal + A decimal value + + + + Deserialize a double from a string. + + The serialized double + A double value + + + + Deserialize a single from a string. + + The serialized single + A single value + + + + Deserialize a DateTime from a string. + + The serialized DateTime + A DateTime value + + + + Deserialize a Resource from a string. + + The serialized Resource + A Resource value + + + + Deserialize a uri from a string. + + The serialized uri + A uri value + + + + Deserialize a ByteArray from a string. + + The serialized ByteArray + A ByteArray value + + + + Deserialize a XmlNode from a string. + + The serialized XmlNode + A XmlNode value + + + + Deserialize a LiteralNode from a string. + + The serialized LiteralNode + A LiteralNode value + + + diff --git a/tests/Trinity.Tests.Stardog/bin/Release/net472/Targets/Semiodesk.Trinity.targets b/tests/Trinity.Tests.Stardog/bin/Release/net472/Targets/Semiodesk.Trinity.targets new file mode 100644 index 0000000..9b0ba79 --- /dev/null +++ b/tests/Trinity.Tests.Stardog/bin/Release/net472/Targets/Semiodesk.Trinity.targets @@ -0,0 +1,31 @@ + + + + + + Full + + + + + + + + + + + + $(CoreCompileDependsOn);GenerateOntologyTarget + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/Trinity.Tests.Stardog/bin/Release/net472/custom.config b/tests/Trinity.Tests.Stardog/bin/Release/net472/custom.config new file mode 100644 index 0000000..3261e54 --- /dev/null +++ b/tests/Trinity.Tests.Stardog/bin/Release/net472/custom.config @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/Trinity.Tests.Stardog/bin/Release/net472/nunit_random_seed.tmp b/tests/Trinity.Tests.Stardog/bin/Release/net472/nunit_random_seed.tmp new file mode 100644 index 0000000..9303f84 --- /dev/null +++ b/tests/Trinity.Tests.Stardog/bin/Release/net472/nunit_random_seed.tmp @@ -0,0 +1 @@ +281328260 \ No newline at end of file diff --git a/tests/Trinity.Tests.Stardog/bin/Release/net472/ontologies-test.config b/tests/Trinity.Tests.Stardog/bin/Release/net472/ontologies-test.config new file mode 100644 index 0000000..6e04670 --- /dev/null +++ b/tests/Trinity.Tests.Stardog/bin/Release/net472/ontologies-test.config @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/Trinity.Tests.Stardog/bin/Release/net472/ontologies.config b/tests/Trinity.Tests.Stardog/bin/Release/net472/ontologies.config new file mode 100644 index 0000000..faa8294 --- /dev/null +++ b/tests/Trinity.Tests.Stardog/bin/Release/net472/ontologies.config @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/Trinity.Tests.Stardog/bin/Release/net472/without_store.config b/tests/Trinity.Tests.Stardog/bin/Release/net472/without_store.config new file mode 100644 index 0000000..76533dd --- /dev/null +++ b/tests/Trinity.Tests.Stardog/bin/Release/net472/without_store.config @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/Trinity.Tests.Virtuoso/LegacyConfigurationTest.cs b/tests/Trinity.Tests.Virtuoso/LegacyConfigurationTest.cs new file mode 100644 index 0000000..e6eddaa --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/LegacyConfigurationTest.cs @@ -0,0 +1,47 @@ +// LICENSE: +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// +// AUTHORS: +// +// Moritz Eberl +// Sebastian Faubel +// +// Copyright (c) Semiodesk GmbH 2015-2019 + +using System.Linq; +using NUnit.Framework; +using Semiodesk.Trinity.Configuration; + +namespace Semiodesk.Trinity.Test.Virtuoso +{ + [TestFixture] + class LegacyConfigurationTest : SetupClass + { + + [Test] + public void TestInitialize() + { + string connectionString = SetupClass.ConnectionString; + + var store = StoreFactory.CreateStore(string.Format("{0};rule=urn:semiodesk/test/ruleset", connectionString)); + store.InitializeFromConfiguration(); + } + } +} diff --git a/Trinity.Tests/ModelGroupTest.cs b/tests/Trinity.Tests.Virtuoso/ModelGroupTest.cs similarity index 96% rename from Trinity.Tests/ModelGroupTest.cs rename to tests/Trinity.Tests.Virtuoso/ModelGroupTest.cs index 7710ee1..b10d1c4 100644 --- a/Trinity.Tests/ModelGroupTest.cs +++ b/tests/Trinity.Tests.Virtuoso/ModelGroupTest.cs @@ -1,190 +1,190 @@ -// LICENSE: -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. -// -// AUTHORS: -// -// Moritz Eberl -// Sebastian Faubel -// -// Copyright (c) Semiodesk GmbH 2015-2019 - -using NUnit.Framework; -using Semiodesk.Trinity.Ontologies; -using System; -using System.Linq; - -namespace Semiodesk.Trinity.Test -{ - [TestFixture] - public class ModelGroupTest - { - protected IStore Store; - - protected IModel Model = null; - - protected IModel Model2 = null; - - [SetUp] - public void SetUp() - { - string connectionString = SetupClass.ConnectionString; - - Store = StoreFactory.CreateStore(string.Format("{0};rule=urn:semiodesk/test/ruleset", connectionString)); - - Model = Store.GetModel(new Uri("http://example.org/TestModel")); - - if (!Model.IsEmpty) - { - Model.Clear(); - } - - Model2 = Store.GetModel(new Uri("http://example.org/TestModel2")); - - if (!Model.IsEmpty) - { - Model.Clear(); - } - } - - [TearDown] - public void TearDown() - { - Model.Clear(); - Model2.Clear(); - Store.Dispose(); - } - - [Test] - public void ContainsResourceTest() - { - Uri uri = new Uri("http://example.com/testResource"); - - IModelGroup group = Store.CreateModelGroup(Model.Uri, Model2.Uri); - - Assert.IsFalse(group.ContainsResource(uri)); - - IResource resource = Model.CreateResource(uri); - resource.AddProperty(rdf.type, nco.Contact); - resource.Commit(); - - Assert.IsTrue(group.ContainsResource(uri)); - - Model.DeleteResource(resource); - - Assert.IsFalse(group.ContainsResource(uri)); - - resource = Model2.CreateResource(uri); - resource.AddProperty(rdf.type, nco.Contact); - resource.Commit(); - - Assert.IsTrue(group.ContainsResource(uri)); - } - - [Test] - public void DeleteResouceTest2() - { - var uri = new Uri("ex:Resource2"); - - IResource resource = Model.CreateResource(uri); - resource.AddProperty(rdf.type, nco.Contact); - resource.Commit(); - - Assert.IsTrue(Model.ContainsResource(uri)); - - Model.DeleteResource(resource); - - Assert.IsFalse(Model.ContainsResource(uri)); - } - - [Test] - public void GetResourceTest() - { - Uri resourceUri = new Uri("http://example.com/testResource"); - - IModelGroup g = Store.CreateModelGroup(Model.Uri, Model2.Uri); - - Assert.Throws(new TestDelegate( () => g.GetResource(resourceUri))); - - IResource resource = Model.CreateResource(resourceUri); - resource.AddProperty(rdf.type, nco.Contact); - resource.Commit(); - - IResource res = g.GetResource(resourceUri); - Assert.IsNotNull(res); - Assert.IsTrue(res.IsReadOnly); - Assert.AreEqual(resourceUri, res.Uri); - Assert.Contains(nco.Contact, res.ListValues(rdf.type).ToList()); - - - resource = Model2.CreateResource(resourceUri); - resource.AddProperty(rdf.type, nco.Contact); - resource.Commit(); - - res = g.GetResource(resourceUri); - Assert.IsNotNull(res); - Assert.AreEqual(1, res.ListValues(rdf.type).Count()); - Assert.IsTrue(res.IsReadOnly); - Assert.AreEqual(resourceUri, res.Uri); - Assert.Contains(nco.Contact, res.ListValues(rdf.type).ToList()); - - } - - [Test] - public void LazyLoadResourceTest() - { - IModel model = Model; - IModelGroup modelGroup = Store.CreateModelGroup(Model.Uri, Model2.Uri); - model.Clear(); - - Uri testRes1 = new Uri("semio:test:testInstance"); - Uri testRes2 = new Uri("semio:test:testInstance2"); - MappingTestClass t1 = model.CreateResource(testRes1); - MappingTestClass2 t2 = model.CreateResource(new Uri("semio:test:testInstance2")); - - t1.uniqueResourceTest = t2; - // TODO: Debug messsage, because t2 was not commited - t1.Commit(); - - MappingTestClass p1 = modelGroup.GetResource(testRes1); - //Assert.AreEqual(null, p1.uniqueResourceTest); - - var v = p1.ListValues(TestOntology.uniqueResourceTest); - Assert.AreEqual(t2.Uri.OriginalString, (v.First() as IResource).Uri.OriginalString); - - model.DeleteResource(t1); - - model.DeleteResource(t2); - - t1 = model.CreateResource(testRes1); - - t2 = model.CreateResource(new Uri("semio:test:testInstance2")); - t2.Commit(); - - t1.uniqueResourceTest = t2; - t1.Commit(); - - var tt1 = modelGroup.GetResource(testRes1); - Assert.AreEqual(t2, tt1.uniqueResourceTest); - - IResource tr1 = modelGroup.GetResource(testRes1); - Assert.AreEqual(typeof(MappingTestClass), tr1.GetType()); - } - } -} +// LICENSE: +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// +// AUTHORS: +// +// Moritz Eberl +// Sebastian Faubel +// +// Copyright (c) Semiodesk GmbH 2015-2019 + +using NUnit.Framework; +using Semiodesk.Trinity.Ontologies; +using System; +using System.Linq; + +namespace Semiodesk.Trinity.Test.Virtuoso +{ + [TestFixture] + public class ModelGroupTest : SetupClass + { + protected IStore Store; + + protected IModel Model = null; + + protected IModel Model2 = null; + + [SetUp] + public void SetUp() + { + string connectionString = SetupClass.ConnectionString; + + Store = StoreFactory.CreateStore(string.Format("{0};rule=urn:semiodesk/test/ruleset", connectionString)); + + Model = Store.GetModel(new Uri("http://example.org/TestModel")); + + if (!Model.IsEmpty) + { + Model.Clear(); + } + + Model2 = Store.GetModel(new Uri("http://example.org/TestModel2")); + + if (!Model.IsEmpty) + { + Model.Clear(); + } + } + + [TearDown] + public void TearDown() + { + Model.Clear(); + Model2.Clear(); + Store.Dispose(); + } + + [Test] + public void ContainsResourceTest() + { + Uri uri = new Uri("http://example.com/testResource"); + + IModelGroup group = Store.CreateModelGroup(Model.Uri, Model2.Uri); + + Assert.IsFalse(group.ContainsResource(uri)); + + IResource resource = Model.CreateResource(uri); + resource.AddProperty(rdf.type, nco.Contact); + resource.Commit(); + + Assert.IsTrue(group.ContainsResource(uri)); + + Model.DeleteResource(resource); + + Assert.IsFalse(group.ContainsResource(uri)); + + resource = Model2.CreateResource(uri); + resource.AddProperty(rdf.type, nco.Contact); + resource.Commit(); + + Assert.IsTrue(group.ContainsResource(uri)); + } + + [Test] + public void DeleteResouceTest2() + { + var uri = new Uri("ex:Resource2"); + + IResource resource = Model.CreateResource(uri); + resource.AddProperty(rdf.type, nco.Contact); + resource.Commit(); + + Assert.IsTrue(Model.ContainsResource(uri)); + + Model.DeleteResource(resource); + + Assert.IsFalse(Model.ContainsResource(uri)); + } + + [Test] + public void GetResourceTest() + { + Uri resourceUri = new Uri("http://example.com/testResource"); + + IModelGroup g = Store.CreateModelGroup(Model.Uri, Model2.Uri); + + Assert.Throws(new TestDelegate( () => g.GetResource(resourceUri))); + + IResource resource = Model.CreateResource(resourceUri); + resource.AddProperty(rdf.type, nco.Contact); + resource.Commit(); + + IResource res = g.GetResource(resourceUri); + Assert.IsNotNull(res); + Assert.IsTrue(res.IsReadOnly); + Assert.AreEqual(resourceUri, res.Uri); + Assert.Contains(nco.Contact, res.ListValues(rdf.type).ToList()); + + + resource = Model2.CreateResource(resourceUri); + resource.AddProperty(rdf.type, nco.Contact); + resource.Commit(); + + res = g.GetResource(resourceUri); + Assert.IsNotNull(res); + Assert.AreEqual(1, res.ListValues(rdf.type).Count()); + Assert.IsTrue(res.IsReadOnly); + Assert.AreEqual(resourceUri, res.Uri); + Assert.Contains(nco.Contact, res.ListValues(rdf.type).ToList()); + + } + + [Test] + public void LazyLoadResourceTest() + { + IModel model = Model; + IModelGroup modelGroup = Store.CreateModelGroup(Model.Uri, Model2.Uri); + model.Clear(); + + Uri testRes1 = new Uri("semio:test:testInstance"); + Uri testRes2 = new Uri("semio:test:testInstance2"); + MappingTestClass t1 = model.CreateResource(testRes1); + MappingTestClass2 t2 = model.CreateResource(new Uri("semio:test:testInstance2")); + + t1.uniqueResourceTest = t2; + // TODO: Debug messsage, because t2 was not commited + t1.Commit(); + + MappingTestClass p1 = modelGroup.GetResource(testRes1); + //Assert.AreEqual(null, p1.uniqueResourceTest); + + var v = p1.ListValues(TestOntology.uniqueResourceTest); + Assert.AreEqual(t2.Uri.OriginalString, (v.First() as IResource).Uri.OriginalString); + + model.DeleteResource(t1); + + model.DeleteResource(t2); + + t1 = model.CreateResource(testRes1); + + t2 = model.CreateResource(new Uri("semio:test:testInstance2")); + t2.Commit(); + + t1.uniqueResourceTest = t2; + t1.Commit(); + + var tt1 = modelGroup.GetResource(testRes1); + Assert.AreEqual(t2, tt1.uniqueResourceTest); + + IResource tr1 = modelGroup.GetResource(testRes1); + Assert.AreEqual(typeof(MappingTestClass), tr1.GetType()); + } + } +} diff --git a/Trinity.Tests/ModelTest.cs b/tests/Trinity.Tests.Virtuoso/ModelTest.cs similarity index 96% rename from Trinity.Tests/ModelTest.cs rename to tests/Trinity.Tests.Virtuoso/ModelTest.cs index 4e22a10..54bdcb3 100644 --- a/Trinity.Tests/ModelTest.cs +++ b/tests/Trinity.Tests.Virtuoso/ModelTest.cs @@ -1,569 +1,570 @@ -// LICENSE: -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. -// -// AUTHORS: -// -// Moritz Eberl -// Sebastian Faubel -// -// Copyright (c) Semiodesk GmbH 2015-2019 - -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using NUnit.Framework; -using Semiodesk.Trinity.Ontologies; -using System.IO; - -namespace Semiodesk.Trinity.Test -{ - [TestFixture] - public class ModelTest - { - private IStore Store; - - private IModel Model; - private IModel Model2; - - public ModelTest() - { - } - - [SetUp] - public void SetUp() - { - string connectionString = SetupClass.ConnectionString; - - Store = StoreFactory.CreateStore(string.Format("{0};rule=urn:semiodesk/test/ruleset", connectionString)); - Store.InitializeFromConfiguration(); - - Model = Store.GetModel(new Uri("http://example.org/TestModel")); - - if (!Model.IsEmpty) - { - Model.Clear(); - } - - Model2 = Store.GetModel(new Uri("semiodesk:Trinity:Test")); - - if (!Model2.IsEmpty) - { - Model2.Clear(); - } - - IResource model_resource = Model.CreateResource(new Uri("http://example.org/MyResource")); - - Property property = new Property(new Uri("http://example.org/MyProperty")); - model_resource.AddProperty(property, "in the jungle"); - model_resource.AddProperty(property, 123); - model_resource.AddProperty(property, DateTime.Now); - model_resource.Commit(); - - IResource model_resource2 = Model.CreateResource(new Uri("ex:Resource")); - model_resource2.AddProperty(property, "in the jungle"); - model_resource2.AddProperty(property, 123); - model_resource2.AddProperty(property, DateTime.Now); - model_resource2.Commit(); - - - IResource model2_resource = Model2.CreateResource(new Uri("http://example.org/MyResource")); - model2_resource.AddProperty(property, "in the jungle"); - model2_resource.AddProperty(property, 123); - model2_resource.AddProperty(property, DateTime.Now); - model2_resource.Commit(); - - IResource model2_resource2 = Model2.CreateResource(new Uri("ex:Resource")); - model2_resource2.AddProperty(property, "in the jungle"); - model2_resource2.AddProperty(property, 123); - model2_resource2.AddProperty(property, DateTime.Now); - model2_resource2.Commit(); - } - - [TearDown] - public void TearDown() - { - Model.Clear(); - Model2.Clear(); - Store.Dispose(); - } - - public class Contact : Resource - { - // Type Mapping - public override IEnumerable GetTypes() - { - return new List { nco.Contact }; - } - - protected PropertyMapping FullnameProperty = - new PropertyMapping("Fullname", nco.fullname); - public string Fullname - { - get { return GetValue(FullnameProperty); } - set { SetValue(FullnameProperty, value); } - } - - protected PropertyMapping BirthdayProperty = - new PropertyMapping("Birthday", nco.birthDate); - public DateTime Birthday - { - get { return GetValue(BirthdayProperty); } - set { SetValue(BirthdayProperty, value); } - } - - - public Contact(Uri uri) : base(uri) { } - - } - - [Test] - public void ModelNameTest() - { - Uri modelUri = new Uri("http://www.example.com"); - Uri modelUri2 = new Uri("http://www.example.com/"); - IModel m1 = Store.GetModel(modelUri); - m1.Clear(); - IModel m2 = Store.GetModel(modelUri2); - - Assert.IsTrue(m1.IsEmpty); - Assert.IsTrue(m2.IsEmpty); - - PersonContact c = m1.CreateResource(new Uri("http://www.example.com/testResource")); - c.NameFamily = "Doe"; - c.Commit(); - - Assert.IsFalse(m1.IsEmpty); - Assert.IsFalse(m2.IsEmpty); - - m1.Clear(); - - Assert.IsTrue(m1.IsEmpty); - Assert.IsTrue(m2.IsEmpty); - - } - - [Test] - public void ContainsResourceTest() - { - Assert.IsTrue(Model.ContainsResource(new Uri("http://example.org/MyResource"))); - Assert.IsTrue(Model.ContainsResource(new Uri("ex:Resource"))); - Assert.IsTrue(Model2.ContainsResource(new Uri("http://example.org/MyResource"))); - Assert.IsTrue(Model2.ContainsResource(new Uri("ex:Resource"))); - } - - [Test] - public void CreateResourceTest() - { - Assert.IsTrue(Model.ContainsResource(new Uri("http://example.org/MyResource"))); - } - - [Test] - public void CreateEmptyResourceTest() - { - var res = Model.CreateResource(new Uri("http://semiodesk.com/emptyResource")); - res.Commit(); - } - - [Test] - public void DeleteResourceTest() - { - Uri uri0 = new Uri("http://example.org/MyResource"); - Uri uri1 = new Uri("http://example.org/MyResource1"); - - Assert.IsTrue(Model.ContainsResource(uri0)); - - Model.DeleteResource(uri0); - - Assert.IsFalse(Model.ContainsResource(uri0)); - - Property p0 = new Property(new Uri("http://example.org/MyProperty")); - Property p1 = new Property(new Uri("http://example.org/MyProperty1")); - - IResource r0 = Model.CreateResource(uri0); - r0.AddProperty(p0, "in the jungle"); - r0.AddProperty(p0, 123); - r0.Commit(); - - IResource r1 = Model.CreateResource(uri1); - r1.AddProperty(p0, 123); - r1.AddProperty(p1, r0); - r1.Commit(); - - Assert.IsTrue(Model.ContainsResource(r0)); - Assert.IsTrue(Model.ContainsResource(r1)); - - Model.DeleteResource(r0); - - Assert.IsFalse(Model.ContainsResource(r0)); - Assert.IsTrue(Model.ContainsResource(r1)); - - // Update the resource from the model. - r1 = Model.GetResource(uri1); - - Assert.IsTrue(r1.HasProperty(p0, 123)); - Assert.IsFalse(r1.HasProperty(p1, r0)); - } - - [Test] - public void GetResourceTest() - { - IResource hans = Model.GetResource(new Uri("http://example.org/MyResource")); - Assert.NotNull(hans); - Assert.NotNull(hans.Model); - - hans = Model.GetResource(new Uri("http://example.org/MyResource")); - Assert.NotNull(hans); - Assert.NotNull(hans.Model); - - hans = Model.GetResource(new Uri("http://example.org/MyResource"), typeof(Resource)) as Resource; - Assert.NotNull(hans); - Assert.NotNull(hans.Model); - - try - { - Model.GetResource(new Uri("http://example.org/None")); - - Assert.Fail(); - } - catch(ArgumentException) - { - } - } - - [Test] - public void GetResourcesTest() - { - SparqlQuery query = new SparqlQuery("DESCRIBE "); - - List resources = new List(); - resources.AddRange(Model.GetResources(query)); - - Assert.Greater(resources.Count, 0); - - foreach (IResource res in resources) - { - Assert.NotNull(res.Model); - } - } - - [Test] - public void UpdateResourceTest() - { - Property property = new Property(new Uri("http://example.org/MyProperty")); - - Uri resourceUri = new Uri("http://example.org/MyResource"); - - IResource resource = Model.GetResource(resourceUri); - resource.RemoveProperty(property, 123); - resource.Commit(); - - IResource actual = Model.GetResource(resourceUri); - - Assert.AreEqual(resource, actual); - - actual = Model.GetResource(resourceUri); - - Assert.AreEqual(resource, actual); - - // Try to update resource with different properties then persisted - Resource r2 = new Resource(resourceUri); - r2.AddProperty(property, "in the jengle"); - - r2.Model = Model; - r2.Commit(); - actual = Model.GetResource(resourceUri); - Assert.AreEqual(r2, actual); - } - - [Test] - public void DateTimeResourceTest() - { - Uri resUri = new Uri("http://example.org/DateTimeTest"); - IResource res = Model.CreateResource(resUri); - - Property property = new Property(new Uri("http://example.org/MyProperty")); - - DateTime t = new DateTime(); - Assert.IsTrue(DateTime.TryParse("2013-01-21T16:27:23.000Z", out t)); - - res.AddProperty(property, t); - res.Commit(); - - IResource actual = Model.GetResource(resUri); - object o = actual.GetValue(property); - Assert.AreEqual(typeof(DateTime), o.GetType()); - DateTime actualDateTime = (DateTime)actual.GetValue(property); - - Assert.AreEqual(t.ToUniversalTime(), actualDateTime.ToUniversalTime()); - } - - [Test] - public void LiteralWithHyphenTest() - { - Model.Clear(); - - Property property = new Property(new Uri("http://example.org/MyProperty")); - - IResource model2_resource2 = Model.CreateResource(new Uri("ex:Resource")); - model2_resource2.AddProperty(property, "\"in the jungle\""); - model2_resource2.Commit(); - - IResource r = Model.GetResource(new Uri("ex:Resource")); - object o = r.GetValue(property); - Assert.AreEqual(typeof(string), o.GetType()); - Assert.AreEqual("\"in the jungle\"", o); - } - - [Test] - public void LiteralWithNewLineTest() - { - Model.Clear(); - - Property p0 = new Property(new Uri("http://example.org/MyProperty")); - - IResource r0 = Model.CreateResource(new Uri("ex:Resource")); - r0.AddProperty(p0, "in the\n jungle"); - r0.Commit(); - - r0 = Model.GetResource(new Uri("ex:Resource")); - - object o = r0.GetValue(p0); - - Assert.AreEqual(typeof(string), o.GetType()); - Assert.AreEqual("in the\n jungle", o); - } - - [Test] - public void AddResourceTest() - { - Uri uriResource = new Uri("http://example.org/AddResourceTest"); - IResource resource = new Resource (uriResource); - - Property property = new Property(new Uri("http://example.org/MyProperty")); - resource.AddProperty(property, "in the jungle"); - resource.AddProperty(property, 123); - resource.AddProperty(property, DateTime.Now); - - Model.AddResource(resource); - - IResource actual = Model.GetResource(uriResource); - - Assert.AreEqual(uriResource, uriResource); - Assert.AreEqual(resource.ListValues(property).Count(), actual.ListValues(property).Count()); - - - uriResource = new Uri("http://example.org/AddResourceTest2"); - Contact contact = new Contact(uriResource); - contact.Fullname = "Peter"; - - Model.AddResource(contact); - - Contact actualContact = Model.GetResource(uriResource); - - Assert.AreEqual(uriResource, uriResource); - Assert.AreEqual(contact.Fullname, actualContact.Fullname); - } - - [Test] - public void GetTypedResourcesTest() - { - Uri uriResource = new Uri("http://example.org/Peter"); - Contact contact = Model.CreateResource(uriResource); - contact.Fullname = "Peter"; - contact.Commit(); - - uriResource = new Uri("http://example.org/Hans"); - Contact contact2 = Model.CreateResource(uriResource); - contact2.Fullname = "Hans"; - contact2.Commit(); - - var r = Model.GetResources(); - - Assert.AreEqual(2, r.Count()); - Assert.IsTrue(r.Contains(contact)); - Assert.IsTrue(r.Contains(contact2)); - - Model.Clear(); - - PersonContact personContact = Model.CreateResource(uriResource); - personContact.Fullname = "Peter"; - personContact.Commit(); - - r = Model.GetResources(); - Assert.AreEqual(0, r.Count()); - - r = Model.GetResources(true); - Assert.AreEqual(1, r.Count()); - - var x = Model.GetResource(uriResource); - - Assert.AreEqual(typeof(PersonContact), x.GetType()); - } - - [Test] - public void WriteTest() - { - Model.Clear(); - - Property property = new Property(new Uri("http://example.org/MyProperty")); - - IResource model2_resource2 = Model.CreateResource(new Uri("ex:Resource")); - model2_resource2.AddProperty(property, "in the\n jungle"); - model2_resource2.Commit(); - - MemoryStream wr = new MemoryStream(); - Model.Write(wr, RdfSerializationFormat.RdfXml); - var myString = Encoding.UTF8.GetString(wr.ToArray()); - } - - [Test] - public void ReadTest() - { - Model.Clear(); - - FileInfo fi = new FileInfo("Models\\test-ntriples.nt"); - UriRef fileUri = fi.ToUriRef(); - - Assert.IsTrue(Model.IsEmpty); - Assert.IsTrue(Model.Read(fileUri, RdfSerializationFormat.NTriples, false)); - Assert.IsFalse(Model.IsEmpty); - - Model.Clear(); - - Assert.IsTrue(Model.IsEmpty); - Assert.IsTrue(Model.Read(new Uri("http://www.w3.org/1999/02/22-rdf-syntax-ns#"), RdfSerializationFormat.RdfXml, false)); - Assert.IsFalse(Model.IsEmpty); - - Model.Clear(); - - fi = new FileInfo("Models\\test-tmo.trig"); - fileUri = fi.ToUriRef(); - - Assert.IsTrue(Model.IsEmpty); - Assert.Throws(typeof(ArgumentException), () => { Model.Read(fileUri, RdfSerializationFormat.Trig, false); }); - - } - - [Test] - public void ReadFromStringTest() - { - Model.Clear(); - - string turtle = @"@base . -@prefix rdf: . -@prefix rdfs: . -@prefix foaf: . -@prefix rel: . - -<#green-goblin> - rel:enemyOf <#spiderman> ; - a foaf:Person ; # in the context of the Marvel universe - foaf:name ""Green Goblin"" . -<#spiderman> - rel:enemyOf <#green-goblin> ; - a foaf:Person ; - foaf:name ""Spiderman"", ""Человек-паук""@ru ."; - - using (Stream s = GenerateStreamFromString(turtle)) - { - Assert.IsTrue(Model.Read(s, RdfSerializationFormat.Turtle, false)); - } - - IResource r = Model.GetResource(new Uri("http://example.org/#green-goblin")); - string name = r.GetValue(new Property(new Uri("http://xmlns.com/foaf/0.1/name"))) as string; - Assert.AreEqual("Green Goblin", name); - - string turtle2 = @"@base . -@prefix xsd: . -@prefix foaf: . - - -<#green-goblin> foaf:age ""27""^^xsd:int ."; - - using (Stream s = GenerateStreamFromString(turtle2)) - { - Assert.IsTrue(Model.Read(s, RdfSerializationFormat.Turtle, true)); - } - - r = Model.GetResource(new Uri("http://example.org/#green-goblin")); - int age = (int)r.GetValue(new Property(new Uri("http://xmlns.com/foaf/0.1/age"))); - name = r.GetValue(new Property(new Uri("http://xmlns.com/foaf/0.1/name"))) as string; - Assert.AreEqual(27, age); - - turtle = @"@base . -@prefix rdf: . -@prefix rdfs: . -@prefix foaf: . -@prefix rel: . - -<#green-goblin> - rel:enemyOf <#spiderman> ; - a foaf:Person ; # in the context of the Marvel universe - foaf:name ""Green Gobo"" . -<#spiderman> - rel:enemyOf <#green-goblin> ; - a foaf:Person ; - foaf:name ""Spiderman"", ""Человек-паук""@ru ."; - - using (Stream s = GenerateStreamFromString(turtle)) - { - Assert.IsTrue(Model.Read(s, RdfSerializationFormat.Turtle, false)); - } - - r = Model.GetResource(new Uri("http://example.org/#green-goblin")); - name = r.GetValue(new Property(new Uri("http://xmlns.com/foaf/0.1/name"))) as string; - Assert.AreEqual("Green Gobo", name); - } - - [Test] - public void TestAddMultipleResources() - { - Assert.Inconclusive("This test should work, it just takes too long."); - Model.Clear(); - for (int j = 1; j < 7; j++) - { - for (int i = 1; i < 1000; i++) - { - using (PersonContact pers = Model.CreateResource()) - { - pers.Fullname = string.Format("Name {0}", i * j); - pers.Commit(); - } - } - - } - } - - public Stream GenerateStreamFromString(string s) - { - MemoryStream stream = new MemoryStream(); - StreamWriter writer = new StreamWriter(stream); - writer.Write(s); - writer.Flush(); - stream.Position = 0; - return stream; - } - - - } - - -} +// LICENSE: +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// +// AUTHORS: +// +// Moritz Eberl +// Sebastian Faubel +// +// Copyright (c) Semiodesk GmbH 2015-2019 + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using NUnit.Framework; +using Semiodesk.Trinity.Ontologies; +using System.IO; + +namespace Semiodesk.Trinity.Test.Virtuoso +{ + [TestFixture] + public class ModelTest : SetupClass + { + private IStore Store; + + private IModel Model; + private IModel Model2; + + public ModelTest() + { + } + + [SetUp] + public void SetUp() + { + string connectionString = SetupClass.ConnectionString; + + Store = StoreFactory.CreateStore(string.Format("{0};rule=urn:semiodesk/test/ruleset", connectionString)); + Store.InitializeFromConfiguration(); + + Model = Store.GetModel(new Uri("http://example.org/TestModel")); + + if (!Model.IsEmpty) + { + Model.Clear(); + } + + Model2 = Store.GetModel(new Uri("semiodesk:Trinity:Test")); + + if (!Model2.IsEmpty) + { + Model2.Clear(); + } + + IResource model_resource = Model.CreateResource(new Uri("http://example.org/MyResource")); + + Property property = new Property(new Uri("http://example.org/MyProperty")); + model_resource.AddProperty(property, "in the jungle"); + model_resource.AddProperty(property, 123); + model_resource.AddProperty(property, DateTime.Now); + model_resource.Commit(); + + IResource model_resource2 = Model.CreateResource(new Uri("ex:Resource")); + model_resource2.AddProperty(property, "in the jungle"); + model_resource2.AddProperty(property, 123); + model_resource2.AddProperty(property, DateTime.Now); + model_resource2.Commit(); + + + IResource model2_resource = Model2.CreateResource(new Uri("http://example.org/MyResource")); + model2_resource.AddProperty(property, "in the jungle"); + model2_resource.AddProperty(property, 123); + model2_resource.AddProperty(property, DateTime.Now); + model2_resource.Commit(); + + IResource model2_resource2 = Model2.CreateResource(new Uri("ex:Resource")); + model2_resource2.AddProperty(property, "in the jungle"); + model2_resource2.AddProperty(property, 123); + model2_resource2.AddProperty(property, DateTime.Now); + model2_resource2.Commit(); + } + + [TearDown] + public void TearDown() + { + Model.Clear(); + Model2.Clear(); + Store.Dispose(); + } + + public class Contact : Resource + { + // Type Mapping + public override IEnumerable GetTypes() + { + return new List { nco.Contact }; + } + + protected PropertyMapping FullnameProperty = + new PropertyMapping("Fullname", nco.fullname); + public string Fullname + { + get { return GetValue(FullnameProperty); } + set { SetValue(FullnameProperty, value); } + } + + protected PropertyMapping BirthdayProperty = + new PropertyMapping("Birthday", nco.birthDate); + public DateTime Birthday + { + get { return GetValue(BirthdayProperty); } + set { SetValue(BirthdayProperty, value); } + } + + + public Contact(Uri uri) : base(uri) { } + + } + + [Test] + public void ModelNameTest() + { + Uri modelUri = new Uri("http://www.example.com"); + Uri modelUri2 = new Uri("http://www.example.com/"); + IModel m1 = Store.GetModel(modelUri); + m1.Clear(); + IModel m2 = Store.GetModel(modelUri2); + + Assert.IsTrue(m1.IsEmpty); + Assert.IsTrue(m2.IsEmpty); + + PersonContact c = m1.CreateResource(new Uri("http://www.example.com/testResource")); + c.NameFamily = "Doe"; + c.Commit(); + + Assert.IsFalse(m1.IsEmpty); + Assert.IsFalse(m2.IsEmpty); + + m1.Clear(); + + Assert.IsTrue(m1.IsEmpty); + Assert.IsTrue(m2.IsEmpty); + + } + + [Test] + public void ContainsResourceTest() + { + Assert.IsTrue(Model.ContainsResource(new Uri("http://example.org/MyResource"))); + Assert.IsTrue(Model.ContainsResource(new Uri("ex:Resource"))); + Assert.IsTrue(Model2.ContainsResource(new Uri("http://example.org/MyResource"))); + Assert.IsTrue(Model2.ContainsResource(new Uri("ex:Resource"))); + } + + [Test] + public void CreateResourceTest() + { + Assert.IsTrue(Model.ContainsResource(new Uri("http://example.org/MyResource"))); + } + + [Test] + public void CreateEmptyResourceTest() + { + var res = Model.CreateResource(new Uri("http://semiodesk.com/emptyResource")); + res.Commit(); + } + + [Test] + public void DeleteResourceTest() + { + Uri uri0 = new Uri("http://example.org/MyResource"); + Uri uri1 = new Uri("http://example.org/MyResource1"); + + Assert.IsTrue(Model.ContainsResource(uri0)); + + Model.DeleteResource(uri0); + + Assert.IsFalse(Model.ContainsResource(uri0)); + + Property p0 = new Property(new Uri("http://example.org/MyProperty")); + Property p1 = new Property(new Uri("http://example.org/MyProperty1")); + + IResource r0 = Model.CreateResource(uri0); + r0.AddProperty(p0, "in the jungle"); + r0.AddProperty(p0, 123); + r0.Commit(); + + IResource r1 = Model.CreateResource(uri1); + r1.AddProperty(p0, 123); + r1.AddProperty(p1, r0); + r1.Commit(); + + Assert.IsTrue(Model.ContainsResource(r0)); + Assert.IsTrue(Model.ContainsResource(r1)); + + Model.DeleteResource(r0); + + Assert.IsFalse(Model.ContainsResource(r0)); + Assert.IsTrue(Model.ContainsResource(r1)); + + // Update the resource from the model. + r1 = Model.GetResource(uri1); + + Assert.IsTrue(r1.HasProperty(p0, 123)); + Assert.IsFalse(r1.HasProperty(p1, r0)); + } + + [Test] + public void GetResourceTest() + { + IResource hans = Model.GetResource(new Uri("http://example.org/MyResource")); + Assert.NotNull(hans); + Assert.NotNull(hans.Model); + + hans = Model.GetResource(new Uri("http://example.org/MyResource")); + Assert.NotNull(hans); + Assert.NotNull(hans.Model); + + hans = Model.GetResource(new Uri("http://example.org/MyResource"), typeof(Resource)) as Resource; + Assert.NotNull(hans); + Assert.NotNull(hans.Model); + + try + { + Model.GetResource(new Uri("http://example.org/None")); + + Assert.Fail(); + } + catch(ArgumentException) + { + } + } + + [Test] + public void GetResourcesTest() + { + SparqlQuery query = new SparqlQuery("DESCRIBE "); + + List resources = new List(); + resources.AddRange(Model.GetResources(query)); + + Assert.Greater(resources.Count, 0); + + foreach (IResource res in resources) + { + Assert.NotNull(res.Model); + } + } + + [Test] + public void UpdateResourceTest() + { + Property property = new Property(new Uri("http://example.org/MyProperty")); + + Uri resourceUri = new Uri("http://example.org/MyResource"); + + IResource resource = Model.GetResource(resourceUri); + resource.RemoveProperty(property, 123); + resource.Commit(); + + IResource actual = Model.GetResource(resourceUri); + + Assert.AreEqual(resource, actual); + + actual = Model.GetResource(resourceUri); + + Assert.AreEqual(resource, actual); + + // Try to update resource with different properties then persisted + Resource r2 = new Resource(resourceUri); + r2.AddProperty(property, "in the jengle"); + + r2.Model = Model; + r2.Commit(); + actual = Model.GetResource(resourceUri); + Assert.AreEqual(r2, actual); + } + + [Test] + public void DateTimeResourceTest() + { + Uri resUri = new Uri("http://example.org/DateTimeTest"); + IResource res = Model.CreateResource(resUri); + + Property property = new Property(new Uri("http://example.org/MyProperty")); + + DateTime t = new DateTime(); + Assert.IsTrue(DateTime.TryParse("2013-01-21T16:27:23.000Z", out t)); + + res.AddProperty(property, t); + res.Commit(); + + IResource actual = Model.GetResource(resUri); + object o = actual.GetValue(property); + Assert.AreEqual(typeof(DateTime), o.GetType()); + DateTime actualDateTime = (DateTime)actual.GetValue(property); + + Assert.AreEqual(t.ToUniversalTime(), actualDateTime.ToUniversalTime()); + } + + [Test] + public void LiteralWithHyphenTest() + { + Model.Clear(); + + Property property = new Property(new Uri("http://example.org/MyProperty")); + + IResource model2_resource2 = Model.CreateResource(new Uri("ex:Resource")); + model2_resource2.AddProperty(property, "\"in the jungle\""); + model2_resource2.Commit(); + + IResource r = Model.GetResource(new Uri("ex:Resource")); + object o = r.GetValue(property); + Assert.AreEqual(typeof(string), o.GetType()); + Assert.AreEqual("\"in the jungle\"", o); + } + + [Test] + public void LiteralWithNewLineTest() + { + Model.Clear(); + + Property p0 = new Property(new Uri("http://example.org/MyProperty")); + + IResource r0 = Model.CreateResource(new Uri("ex:Resource")); + r0.AddProperty(p0, "in the\n jungle"); + r0.Commit(); + + r0 = Model.GetResource(new Uri("ex:Resource")); + + object o = r0.GetValue(p0); + + Assert.AreEqual(typeof(string), o.GetType()); + Assert.AreEqual("in the\n jungle", o); + } + + [Test] + public void AddResourceTest() + { + Uri uriResource = new Uri("http://example.org/AddResourceTest"); + IResource resource = new Resource (uriResource); + + Property property = new Property(new Uri("http://example.org/MyProperty")); + resource.AddProperty(property, "in the jungle"); + resource.AddProperty(property, 123); + resource.AddProperty(property, DateTime.Now); + + Model.AddResource(resource); + + IResource actual = Model.GetResource(uriResource); + + Assert.AreEqual(uriResource, uriResource); + Assert.AreEqual(resource.ListValues(property).Count(), actual.ListValues(property).Count()); + + + uriResource = new Uri("http://example.org/AddResourceTest2"); + Contact contact = new Contact(uriResource); + contact.Fullname = "Peter"; + + Model.AddResource(contact); + + Contact actualContact = Model.GetResource(uriResource); + + Assert.AreEqual(uriResource, uriResource); + Assert.AreEqual(contact.Fullname, actualContact.Fullname); + } + + [Test] + public void GetTypedResourcesTest() + { + Uri uriResource = new Uri("http://example.org/Peter"); + Contact contact = Model.CreateResource(uriResource); + contact.Fullname = "Peter"; + contact.Commit(); + + uriResource = new Uri("http://example.org/Hans"); + Contact contact2 = Model.CreateResource(uriResource); + contact2.Fullname = "Hans"; + contact2.Commit(); + + var r = Model.GetResources(); + + Assert.AreEqual(2, r.Count()); + Assert.IsTrue(r.Contains(contact)); + Assert.IsTrue(r.Contains(contact2)); + + Model.Clear(); + + PersonContact personContact = Model.CreateResource(uriResource); + personContact.Fullname = "Peter"; + personContact.Commit(); + + r = Model.GetResources(); + Assert.AreEqual(0, r.Count()); + + r = Model.GetResources(true); + Assert.AreEqual(1, r.Count()); + + var x = Model.GetResource(uriResource); + + Assert.AreEqual(typeof(PersonContact), x.GetType()); + } + + [Test] + public void WriteTest() + { + Model.Clear(); + + Property property = new Property(new Uri("http://example.org/MyProperty")); + + IResource model2_resource2 = Model.CreateResource(new Uri("ex:Resource")); + model2_resource2.AddProperty(property, "in the\n jungle"); + model2_resource2.Commit(); + + MemoryStream wr = new MemoryStream(); + Model.Write(wr, RdfSerializationFormat.RdfXml); + var myString = Encoding.UTF8.GetString(wr.ToArray()); + } + + [Test] + public void ReadTest() + { + Model.Clear(); + + FileInfo fi = new FileInfo("Models\\test-ntriples.nt"); + UriRef fileUri = fi.ToUriRef(); + + Assert.IsTrue(Model.IsEmpty); + Assert.IsTrue(Model.Read(fileUri, RdfSerializationFormat.NTriples, false)); + Assert.IsFalse(Model.IsEmpty); + + Model.Clear(); + + Assert.IsTrue(Model.IsEmpty); + Assert.IsTrue(Model.Read(new Uri("http://www.w3.org/1999/02/22-rdf-syntax-ns#"), RdfSerializationFormat.RdfXml, false)); + Assert.IsFalse(Model.IsEmpty); + + Model.Clear(); + + fi = new FileInfo("Models\\test-tmo.trig"); + fileUri = fi.ToUriRef(); + + Assert.IsTrue(Model.IsEmpty); + Assert.Throws(typeof(ArgumentException), () => { Model.Read(fileUri, RdfSerializationFormat.Trig, false); }); + + } + + [Test] + public void ReadFromStringTest() + { + Model.Clear(); + + string turtle = @"@base . +@prefix rdf: . +@prefix rdfs: . +@prefix foaf: . +@prefix rel: . + +<#green-goblin> + rel:enemyOf <#spiderman> ; + a foaf:Person ; # in the context of the Marvel universe + foaf:name ""Green Goblin"" . +<#spiderman> + rel:enemyOf <#green-goblin> ; + a foaf:Person ; + foaf:name ""Spiderman"", ""Человек-паук""@ru ."; + + using (Stream s = GenerateStreamFromString(turtle)) + { + Assert.IsTrue(Model.Read(s, RdfSerializationFormat.Turtle, false)); + } + + IResource r = Model.GetResource(new Uri("http://example.org/#green-goblin")); + string name = r.GetValue(new Property(new Uri("http://xmlns.com/foaf/0.1/name"))) as string; + Assert.AreEqual("Green Goblin", name); + + string turtle2 = @"@base . +@prefix xsd: . +@prefix foaf: . + + +<#green-goblin> foaf:age ""27""^^xsd:int ."; + + using (Stream s = GenerateStreamFromString(turtle2)) + { + Assert.IsTrue(Model.Read(s, RdfSerializationFormat.Turtle, true)); + } + + r = Model.GetResource(new Uri("http://example.org/#green-goblin")); + int age = (int)r.GetValue(new Property(new Uri("http://xmlns.com/foaf/0.1/age"))); + name = r.GetValue(new Property(new Uri("http://xmlns.com/foaf/0.1/name"))) as string; + Assert.AreEqual(27, age); + + turtle = @"@base . +@prefix rdf: . +@prefix rdfs: . +@prefix foaf: . +@prefix rel: . + +<#green-goblin> + rel:enemyOf <#spiderman> ; + a foaf:Person ; # in the context of the Marvel universe + foaf:name ""Green Gobo"" . +<#spiderman> + rel:enemyOf <#green-goblin> ; + a foaf:Person ; + foaf:name ""Spiderman"", ""Человек-паук""@ru ."; + + using (Stream s = GenerateStreamFromString(turtle)) + { + Assert.IsTrue(Model.Read(s, RdfSerializationFormat.Turtle, false)); + } + + r = Model.GetResource(new Uri("http://example.org/#green-goblin")); + name = r.GetValue(new Property(new Uri("http://xmlns.com/foaf/0.1/name"))) as string; + Assert.AreEqual("Green Gobo", name); + } + + [Test] + public void TestAddMultipleResources() + { + //Assert.Inconclusive("This test should work, it just takes too long."); + Model.Clear(); + for (int j = 1; j < 7; j++) + { + for (int i = 1; i < 1000; i++) + { + using (PersonContact pers = Model.CreateResource()) + { + pers.Fullname = string.Format("Name {0}", i * j); + pers.Commit(); + } + } + + + } + } + + public Stream GenerateStreamFromString(string s) + { + MemoryStream stream = new MemoryStream(); + StreamWriter writer = new StreamWriter(stream); + writer.Write(s); + writer.Flush(); + stream.Position = 0; + return stream; + } + + + } + + +} diff --git a/tests/Trinity.Tests.Virtuoso/Program.cs b/tests/Trinity.Tests.Virtuoso/Program.cs new file mode 100644 index 0000000..b605d17 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/Program.cs @@ -0,0 +1,62 @@ +// LICENSE: +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// +// AUTHORS: +// +// Moritz Eberl +// Sebastian Faubel +// +// Copyright (c) Semiodesk GmbH 2015-2019 + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Reflection; + +namespace Semiodesk.Trinity.Test +{ + class TestRunner + { + [STAThread] + static void Main(string[] args) + { + string[] nunitArg = new string[args.Count() + 1]; + + int i = 0; + foreach (string arg in args) + { + nunitArg[i] = arg; + i++; + } + + nunitArg[i] = Assembly.GetExecutingAssembly().Location; + + if (i == 0) + { + // NUnit.AppEntry.Main(nunitArg); + } + else + { + // NUnit.ConsoleRunner.Runner.Main(nunitArg); + } + } + } +} diff --git a/Trinity.Tests/ResourceBindingTest.cs b/tests/Trinity.Tests.Virtuoso/ResourceBindingTest.cs similarity index 66% rename from Trinity.Tests/ResourceBindingTest.cs rename to tests/Trinity.Tests.Virtuoso/ResourceBindingTest.cs index 19d57e3..6248d5d 100644 --- a/Trinity.Tests/ResourceBindingTest.cs +++ b/tests/Trinity.Tests.Virtuoso/ResourceBindingTest.cs @@ -1,451 +1,285 @@ -// LICENSE: -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. -// -// AUTHORS: -// -// Moritz Eberl -// Sebastian Faubel -// -// Copyright (c) Semiodesk GmbH 2015-2019 - -using Semiodesk.Trinity.Ontologies; -using System; -using System.Collections.Generic; -using System.Collections.ObjectModel; -using System.Text; -using NUnit.Framework; - -namespace Semiodesk.Trinity.Test -{ - class ContactList : Resource - { - #region Constructors - public ContactList(Uri uri) : base(uri) { } - #endregion - - public override IEnumerable GetTypes() - { - return new List { nco.ContactList }; - } - - protected PropertyMapping> containsContactProperty = new PropertyMapping>("ContainsContact", nco.containsContact, new ObservableCollection()); - - public ObservableCollection ContainsContact - { - get { return GetValue(containsContactProperty); } - set { SetValue(containsContactProperty, value); } - } - } - - class EmailAddress : Resource - { - #region Constructors - public EmailAddress(Uri uri) : base(uri) { } - #endregion - - public override IEnumerable GetTypes() - { - return new List { nco.EmailAddress }; - } - - protected PropertyMapping addressProperty = new PropertyMapping("Address", nco.emailAddress); - - public string Address - { - get { return GetValue(addressProperty); } - set { SetValue(addressProperty, value); } - } - } - - class PostalAddress : Resource - { - #region Constructors - public PostalAddress(Uri uri) : base(uri) { } - #endregion - - public override IEnumerable GetTypes() - { - return new List { nco.PostalAddress }; - } - - protected PropertyMapping countryProperty = new PropertyMapping("Country", nco.country); - public string Country - { - get { return GetValue(countryProperty); } - set { SetValue(countryProperty, value); } - } - - protected PropertyMapping postalCodeProperty = new PropertyMapping("PostalCode", nco.postalcode); - public string PostalCode - { - get { return GetValue(postalCodeProperty); } - set { SetValue(postalCodeProperty, value); } - } - - protected PropertyMapping localityProperty = new PropertyMapping("City", nco.locality); - public string City - { - get { return GetValue(localityProperty); } - set { SetValue(localityProperty, value); } - } - - protected PropertyMapping streetAddressProperty = new PropertyMapping("StreetAddress", nco.postalcode); - public string StreetAddress - { - get { return GetValue(streetAddressProperty); } - set { SetValue(streetAddressProperty, value); } - } - } - - class Contact : Resource - { - #region Constructors - public Contact(Uri uri) : base(uri) { } - #endregion - - public override IEnumerable GetTypes() - { - return new List { nco.Contact }; - } - - protected PropertyMapping fullnameProperty = new PropertyMapping("Fullname", nco.fullname, true); - - public string Fullname - { - get { return GetValue(fullnameProperty); } - set { SetValue(fullnameProperty, value); } - } - - protected PropertyMapping birthDateProperty = new PropertyMapping("BirthDate", nco.birthDate); - - public DateTime BirthDate - { - get { return GetValue(birthDateProperty); } - set { SetValue(birthDateProperty, value); } - } - - protected PropertyMapping> emailAddressProperty = new PropertyMapping>("EmailAddresses", nco.hasEmailAddress, new ObservableCollection()); - public ObservableCollection EmailAddresses - { - get { return GetValue(emailAddressProperty); } - set { SetValue(emailAddressProperty, value); } - } - - protected PropertyMapping> postalAddressProperty = new PropertyMapping>("PostalAddresses", nco.hasPostalAddress, new ObservableCollection()); - public ObservableCollection PostalAddresses - { - get { return GetValue(postalAddressProperty); } - set { SetValue(postalAddressProperty, value); } - } - - } - - class PersonContact : Contact - { - #region Constructors - public PersonContact(Uri uri) : base(uri) { } - #endregion - - public override IEnumerable GetTypes() - { - return new List { nco.PersonContact }; - } - - protected PropertyMapping nameGivenProperty = new PropertyMapping("NameGiven", nco.nameGiven, true); - - public string NameGiven - { - get { return GetValue(nameGivenProperty); } - set { SetValue(nameGivenProperty, value); } - } - - protected PropertyMapping> nameAdditonalProperty = new PropertyMapping>("NameAdditional", nco.nameAdditional, new ObservableCollection(), true); - - public ObservableCollection NameAdditional - { - get { return GetValue(nameAdditonalProperty); } - set { SetValue(nameAdditonalProperty, value); } - } - - protected PropertyMapping nameFamilyProperty = new PropertyMapping("NameFamily", nco.nameFamily, true); - - public string NameFamily - { - get { return GetValue(nameFamilyProperty); } - set { SetValue(nameFamilyProperty, value); } - } - - private bool _isSelected; - - public bool IsSelected - { - get { return _isSelected; } - set { _isSelected = value; RaisePropertyChanged("IsSelected"); } - } - } - - [TestFixture] - class ResourceBindingTest - { - Uri contactListUri = new Uri("semio:test:contactList"); - IStore _store; - - [SetUp] - public void SetUp() - { - _store = StoreFactory.CreateStore("provider=virtuoso;host=localhost;port=1111;uid=dba;pw=dba;rule=urn:semiodesk/test/ruleset"); - - - } - - IModel GetModel() - { - - Uri testModelUri = new Uri("http://localhost:8899/model/TestModel"); - - IModel model = _store.GetModel(testModelUri); - return model; - } - - void InitialiseModel(IModel m) - { - m.Clear(); - - ContactList l = m.CreateResource(contactListUri); - - l.ContainsContact.Add(CreateContact(m, "Hans", new List{"Anton"}, "Meiser", new DateTime(1980, 11, 2), "meiser@test.de", "Deutschland", "Sackgasse 3", "85221", "Dachau")); - l.ContainsContact.Add(CreateContact(m, "Peter", new List{"Judith", "Ludwig"}, "Meiser", new DateTime(1981, 12, 7), "p.meiser@t-online.de", "Deutschland", "Blubweg 6", "12345", "München")); - l.ContainsContact.Add(CreateContact(m, "Franz", new List { "Hans", "Wurst" }, "Hubert", new DateTime(1976, 5, 11), "fhubert@t-online.de", "Deutschland", "Siemensstraße 183", "09876", "Berlin")); - l.ContainsContact.Add(CreateContact(m, "Isabell", new List { "Merlin"}, "Peters", new DateTime(1977, 1, 27), "isab.peters@aol.de", "Deutschland", "Walnussweg 4", "45637", "Bonn")); - l.ContainsContact.Add(CreateContact(m, "Max", new List (), "Benek", new DateTime(1989, 3, 22), "Max.Benek@aol.de", "Deutschland", "Traunweg 6", "48887", "Schweinfurt")); - l.ContainsContact.Add(CreateContact(m, "Karsten", new List { "Peter" }, "Oborn", new DateTime(1958, 7, 19), "Superchamp@gmx.de", "Deutschland", "Bei der Wurstfabrik 6", "37439", "Darmstadt")); - l.ContainsContact.Add(CreateContact(m, "Sabrina", new List { "Hans" }, "Neubert", new DateTime(1960, 8, 15), "Megabirne@gmx.net", "Deutschland", "Hanstraße 1", "55639", "Hanover")); - l.ContainsContact.Add(CreateContact(m, "Rainer", new List { "Maria" }, "Bader", new DateTime(1970, 4, 26), "Baderainer@web.de", "Deutschland", "Lalaweg 5", "86152", "Augsburg")); - l.ContainsContact.Add(CreateContact(m, "Maria", new List { "Franz" }, "Roßmann", new DateTime(1968, 10, 6), "Rossmann@web.de", "Deutschland", "Münchner Straße 9", "85123", "Odelzhausen")); - l.ContainsContact.Add(CreateContact(m, "Helga", new List { "Isabell" }, "Rößler", new DateTime(1988, 2, 1), "Roessler@gmx.de", "Deutschland", "Weiterweg 15", "12345", "München")); - l.Commit(); - } - - void InitialiseRandomModel(IModel m, int count) - { - m.Clear(); - - ContactList l = m.CreateResource(contactListUri); - - for (int i = 0; i < count; i++) - { - l.ContainsContact.Add(GenerateContact(m)); - } - - l.Commit(); - } - - public class MarkovNameGenerator - { - //constructor - public MarkovNameGenerator(IEnumerable sampleNames, int order, int minLength) - { - //fix parameter values - if (order < 1) - order = 1; - if (minLength < 1) - minLength = 1; - - _order = order; - _minLength = minLength; - - //split comma delimited lines - foreach (string line in sampleNames) - { - string[] tokens = line.Split(','); - foreach (string word in tokens) - { - string upper = word.Trim().ToUpper(); - if (upper.Length < order + 1) - continue; - _samples.Add(upper); - } - } - - //Build chains - foreach (string word in _samples) - { - for (int letter = 0; letter < word.Length - order; letter++) - { - string token = word.Substring(letter, order); - List entry = null; - if (_chains.ContainsKey(token)) - entry = _chains[token]; - else - { - entry = new List(); - _chains[token] = entry; - } - entry.Add(word[letter + order]); - } - } - } - - //Get the next random name - public string NextName - { - get - { - //get a random token somewhere in middle of sample word - string s = ""; - do - { - int n = _rnd.Next(_samples.Count); - int nameLength = _samples[n].Length; - s = _samples[n].Substring(_rnd.Next(0, _samples[n].Length - _order), _order); - while (s.Length < nameLength) - { - string token = s.Substring(s.Length - _order, _order); - char c = GetLetter(token); - if (c != '?') - s += GetLetter(token); - else - break; - } - - if (s.Contains(" ")) - { - string[] tokens = s.Split(' '); - s = ""; - for (int t = 0; t < tokens.Length; t++) - { - if (tokens[t] == "") - continue; - if (tokens[t].Length == 1) - tokens[t] = tokens[t].ToUpper(); - else - tokens[t] = tokens[t].Substring(0, 1) + tokens[t].Substring(1).ToLower(); - if (s != "") - s += " "; - s += tokens[t]; - } - } - else - s = s.Substring(0, 1) + s.Substring(1).ToLower(); - } - while (_used.Contains(s) || s.Length < _minLength); - _used.Add(s); - return s; - } - } - - //Reset the used names - public void Reset() - { - _used.Clear(); - } - - //private members - private Dictionary> _chains = new Dictionary>(); - private List _samples = new List(); - private List _used = new List(); - private Random _rnd = new Random(); - private int _order; - private int _minLength; - - //Get a random letter from the chain - private char GetLetter(string token) - { - if (!_chains.ContainsKey(token)) - return '?'; - List letters = _chains[token]; - int n = _rnd.Next(letters.Count); - return letters[n]; - } - } - - Contact GenerateContact(IModel m) - { - Random rng = new Random(); - - MarkovNameGenerator firstNameGenerator = new MarkovNameGenerator( new List{"Hans", "Peter", "Marie", "Maria", "Tina", "Tim", "Lukas", "Emma", "Tom", "Alina", "Mia", "Emma", "Siegfried", "Judith", "Karl", "Stefan", "Markus", "Martin", "Alfred", "Anton"}, 3, 5); - string firstName = firstNameGenerator.NextName; - - List additionalNames = new List(); - for (int i = rng.Next(0, 3); i > 0; i--) - { - additionalNames.Add(firstNameGenerator.NextName); - } - - MarkovNameGenerator lastNameGenerator = new MarkovNameGenerator(new List { "Maier", "Meier", "Schmied", "Schmidt", "Schulz", "Roßman", "Müller", "Klein", "Fischer", "Schwarz", "Weber", "Hofman", "Hartman", "Braun", "Koch", "Krüger", "Schröder", "Wolf", "Mayer", "Jung", "Vogel", "Lang", "Fuchs", "Huber" }, 3, 5); - string lastName = lastNameGenerator.NextName; - - DateTime start = new DateTime(1950, 1, 1); - int range = ((TimeSpan)(new DateTime(1995, 1, 1) - start)).Days; - DateTime birthDate = start.AddDays(rng.Next(range)); - - string emailAddress = string.Format("{0}.{1}@gmx.de", firstName, lastName); - - return CreateContact(m, firstName, additionalNames, lastName, birthDate, emailAddress, "Deutschland", "Teststraße 27", "123456", "Testhausen"); - } - - Contact CreateContact(IModel m, string nameGiven, List nameAdditional, string nameFamily, DateTime birthDate, string emailAddress, string country, string street, string pocode, string city) - { - Uri contactUri = new Uri("semio:"+nameGiven+":" + Guid.NewGuid().ToString()); - PersonContact c = m.CreateResource(contactUri); - StringBuilder b = new StringBuilder(); - foreach( string n in nameAdditional ) - { - b.Append(n); - b.Append(" "); - c.NameAdditional.Add(n); - } - if (b.Length > 1) - { - b.Remove(b.Length - 1, 1); - } - c.Fullname = string.Format("{0} {1} {2}", nameGiven, b, nameFamily) ; - c.NameGiven = nameGiven; - c.NameFamily = nameFamily; - c.BirthDate = birthDate; - c.EmailAddresses.Add(CreateEmailAddress(m, emailAddress)); - c.PostalAddresses.Add(CreatePostalAddress(m, country, street, pocode, city)); - - c.Commit(); - return c; - } - - EmailAddress CreateEmailAddress(IModel m, string emailAddress) - { - Uri contactUri = new Uri("semio:" + Guid.NewGuid().ToString()); - EmailAddress c = m.CreateResource(contactUri); - c.Address = emailAddress; - c.Commit(); - return c; - } - - PostalAddress CreatePostalAddress(IModel m, string country, string street, string pocode, string city) - { - Uri contactUri = new Uri("semio:" + Guid.NewGuid().ToString()); - PostalAddress c = m.CreateResource(contactUri); - c.Country = country; - c.StreetAddress = street; - c.PostalCode = pocode; - c.City = city; - c.Commit(); - return c; - } - } -} +// LICENSE: +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// +// AUTHORS: +// +// Moritz Eberl +// Sebastian Faubel +// +// Copyright (c) Semiodesk GmbH 2015-2019 + +using Semiodesk.Trinity.Ontologies; +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Text; +using NUnit.Framework; + +namespace Semiodesk.Trinity.Test.Virtuoso +{ + + [TestFixture] + public class ResourceBindingTest + { + Uri contactListUri = new Uri("semio:test:contactList"); + IStore _store; + + [SetUp] + public void SetUp() + { + _store = StoreFactory.CreateStore("provider=virtuoso;host=localhost;port=1111;uid=dba;pw=dba;rule=urn:semiodesk/test/ruleset"); + + + } + + IModel GetModel() + { + + Uri testModelUri = new Uri("http://localhost:8899/model/TestModel"); + + IModel model = _store.GetModel(testModelUri); + return model; + } + + void InitialiseModel(IModel m) + { + m.Clear(); + + ContactList l = m.CreateResource(contactListUri); + + l.ContainsContact.Add(CreateContact(m, "Hans", new List{"Anton"}, "Meiser", new DateTime(1980, 11, 2), "meiser@test.de", "Deutschland", "Sackgasse 3", "85221", "Dachau")); + l.ContainsContact.Add(CreateContact(m, "Peter", new List{"Judith", "Ludwig"}, "Meiser", new DateTime(1981, 12, 7), "p.meiser@t-online.de", "Deutschland", "Blubweg 6", "12345", "München")); + l.ContainsContact.Add(CreateContact(m, "Franz", new List { "Hans", "Wurst" }, "Hubert", new DateTime(1976, 5, 11), "fhubert@t-online.de", "Deutschland", "Siemensstraße 183", "09876", "Berlin")); + l.ContainsContact.Add(CreateContact(m, "Isabell", new List { "Merlin"}, "Peters", new DateTime(1977, 1, 27), "isab.peters@aol.de", "Deutschland", "Walnussweg 4", "45637", "Bonn")); + l.ContainsContact.Add(CreateContact(m, "Max", new List (), "Benek", new DateTime(1989, 3, 22), "Max.Benek@aol.de", "Deutschland", "Traunweg 6", "48887", "Schweinfurt")); + l.ContainsContact.Add(CreateContact(m, "Karsten", new List { "Peter" }, "Oborn", new DateTime(1958, 7, 19), "Superchamp@gmx.de", "Deutschland", "Bei der Wurstfabrik 6", "37439", "Darmstadt")); + l.ContainsContact.Add(CreateContact(m, "Sabrina", new List { "Hans" }, "Neubert", new DateTime(1960, 8, 15), "Megabirne@gmx.net", "Deutschland", "Hanstraße 1", "55639", "Hanover")); + l.ContainsContact.Add(CreateContact(m, "Rainer", new List { "Maria" }, "Bader", new DateTime(1970, 4, 26), "Baderainer@web.de", "Deutschland", "Lalaweg 5", "86152", "Augsburg")); + l.ContainsContact.Add(CreateContact(m, "Maria", new List { "Franz" }, "Roßmann", new DateTime(1968, 10, 6), "Rossmann@web.de", "Deutschland", "Münchner Straße 9", "85123", "Odelzhausen")); + l.ContainsContact.Add(CreateContact(m, "Helga", new List { "Isabell" }, "Rößler", new DateTime(1988, 2, 1), "Roessler@gmx.de", "Deutschland", "Weiterweg 15", "12345", "München")); + l.Commit(); + } + + void InitialiseRandomModel(IModel m, int count) + { + m.Clear(); + + ContactList l = m.CreateResource(contactListUri); + + for (int i = 0; i < count; i++) + { + l.ContainsContact.Add(GenerateContact(m)); + } + + l.Commit(); + } + + public class MarkovNameGenerator + { + //constructor + public MarkovNameGenerator(IEnumerable sampleNames, int order, int minLength) + { + //fix parameter values + if (order < 1) + order = 1; + if (minLength < 1) + minLength = 1; + + _order = order; + _minLength = minLength; + + //split comma delimited lines + foreach (string line in sampleNames) + { + string[] tokens = line.Split(','); + foreach (string word in tokens) + { + string upper = word.Trim().ToUpper(); + if (upper.Length < order + 1) + continue; + _samples.Add(upper); + } + } + + //Build chains + foreach (string word in _samples) + { + for (int letter = 0; letter < word.Length - order; letter++) + { + string token = word.Substring(letter, order); + List entry = null; + if (_chains.ContainsKey(token)) + entry = _chains[token]; + else + { + entry = new List(); + _chains[token] = entry; + } + entry.Add(word[letter + order]); + } + } + } + + //Get the next random name + public string NextName + { + get + { + //get a random token somewhere in middle of sample word + string s = ""; + do + { + int n = _rnd.Next(_samples.Count); + int nameLength = _samples[n].Length; + s = _samples[n].Substring(_rnd.Next(0, _samples[n].Length - _order), _order); + while (s.Length < nameLength) + { + string token = s.Substring(s.Length - _order, _order); + char c = GetLetter(token); + if (c != '?') + s += GetLetter(token); + else + break; + } + + if (s.Contains(" ")) + { + string[] tokens = s.Split(' '); + s = ""; + for (int t = 0; t < tokens.Length; t++) + { + if (tokens[t] == "") + continue; + if (tokens[t].Length == 1) + tokens[t] = tokens[t].ToUpper(); + else + tokens[t] = tokens[t].Substring(0, 1) + tokens[t].Substring(1).ToLower(); + if (s != "") + s += " "; + s += tokens[t]; + } + } + else + s = s.Substring(0, 1) + s.Substring(1).ToLower(); + } + while (_used.Contains(s) || s.Length < _minLength); + _used.Add(s); + return s; + } + } + + //Reset the used names + public void Reset() + { + _used.Clear(); + } + + //private members + private Dictionary> _chains = new Dictionary>(); + private List _samples = new List(); + private List _used = new List(); + private Random _rnd = new Random(); + private int _order; + private int _minLength; + + //Get a random letter from the chain + private char GetLetter(string token) + { + if (!_chains.ContainsKey(token)) + return '?'; + List letters = _chains[token]; + int n = _rnd.Next(letters.Count); + return letters[n]; + } + } + + Contact GenerateContact(IModel m) + { + Random rng = new Random(); + + MarkovNameGenerator firstNameGenerator = new MarkovNameGenerator( new List{"Hans", "Peter", "Marie", "Maria", "Tina", "Tim", "Lukas", "Emma", "Tom", "Alina", "Mia", "Emma", "Siegfried", "Judith", "Karl", "Stefan", "Markus", "Martin", "Alfred", "Anton"}, 3, 5); + string firstName = firstNameGenerator.NextName; + + List additionalNames = new List(); + for (int i = rng.Next(0, 3); i > 0; i--) + { + additionalNames.Add(firstNameGenerator.NextName); + } + + MarkovNameGenerator lastNameGenerator = new MarkovNameGenerator(new List { "Maier", "Meier", "Schmied", "Schmidt", "Schulz", "Roßman", "Müller", "Klein", "Fischer", "Schwarz", "Weber", "Hofman", "Hartman", "Braun", "Koch", "Krüger", "Schröder", "Wolf", "Mayer", "Jung", "Vogel", "Lang", "Fuchs", "Huber" }, 3, 5); + string lastName = lastNameGenerator.NextName; + + DateTime start = new DateTime(1950, 1, 1); + int range = ((TimeSpan)(new DateTime(1995, 1, 1) - start)).Days; + DateTime birthDate = start.AddDays(rng.Next(range)); + + string emailAddress = string.Format("{0}.{1}@gmx.de", firstName, lastName); + + return CreateContact(m, firstName, additionalNames, lastName, birthDate, emailAddress, "Deutschland", "Teststraße 27", "123456", "Testhausen"); + } + + Contact CreateContact(IModel m, string nameGiven, List nameAdditional, string nameFamily, DateTime birthDate, string emailAddress, string country, string street, string pocode, string city) + { + Uri contactUri = new Uri("semio:"+nameGiven+":" + Guid.NewGuid().ToString()); + PersonContact c = m.CreateResource(contactUri); + StringBuilder b = new StringBuilder(); + foreach( string n in nameAdditional ) + { + b.Append(n); + b.Append(" "); + c.NameAdditional.Add(n); + } + if (b.Length > 1) + { + b.Remove(b.Length - 1, 1); + } + c.Fullname = string.Format("{0} {1} {2}", nameGiven, b, nameFamily) ; + c.NameGiven = nameGiven; + c.NameFamily = nameFamily; + c.BirthDate = birthDate; + c.EmailAddresses.Add(CreateEmailAddress(m, emailAddress)); + c.PostalAddresses.Add(CreatePostalAddress(m, country, street, pocode, city)); + + c.Commit(); + return c; + } + + EmailAddress CreateEmailAddress(IModel m, string emailAddress) + { + Uri contactUri = new Uri("semio:" + Guid.NewGuid().ToString()); + EmailAddress c = m.CreateResource(contactUri); + c.Address = emailAddress; + c.Commit(); + return c; + } + + PostalAddress CreatePostalAddress(IModel m, string country, string street, string pocode, string city) + { + Uri contactUri = new Uri("semio:" + Guid.NewGuid().ToString()); + PostalAddress c = m.CreateResource(contactUri); + c.Country = country; + c.StreetAddress = street; + c.PostalCode = pocode; + c.City = city; + c.Commit(); + return c; + } + } +} diff --git a/Trinity.Tests/ResourceMappingTest.cs b/tests/Trinity.Tests.Virtuoso/ResourceMappingTest.cs similarity index 75% rename from Trinity.Tests/ResourceMappingTest.cs rename to tests/Trinity.Tests.Virtuoso/ResourceMappingTest.cs index a559f96..1f1410b 100644 --- a/Trinity.Tests/ResourceMappingTest.cs +++ b/tests/Trinity.Tests.Virtuoso/ResourceMappingTest.cs @@ -1,1927 +1,1450 @@ -// LICENSE: -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. -// -// AUTHORS: -// -// Moritz Eberl -// Sebastian Faubel -// -// Copyright (c) Semiodesk GmbH 2015-2019 - -using System; -using System.Collections.Generic; -using System.Linq; -using System.Collections.ObjectModel; -using Semiodesk.Trinity.Ontologies; -using NUnit.Framework; -using Semiodesk.Trinity.Serialization; -using Newtonsoft.Json; -#if NET35 -using Semiodesk.Trinity.Utility; -#endif - -namespace Semiodesk.Trinity.Test -{ - public abstract class AbstractMappingClass : Resource - { - protected PropertyMapping stringTestMapping = - new PropertyMapping("stringTest", TestOntology.stringTest); - - public string stringTest - { - get { return GetValue(stringTestMapping); } - set { SetValue(stringTestMapping, value); } - } - - protected AbstractMappingClass(Uri uri) : base(uri) { } - } - - public class ConcreteMappingClass : AbstractMappingClass - { - public override IEnumerable GetTypes() - { - yield return TestOntology.SingleMappingTestClass; - } - - public ConcreteMappingClass(Uri uri) : base(uri) { } - } - - public class SingleMappingTestClass : Resource - { - #region Mapping - - public override IEnumerable GetTypes() - { - yield return TestOntology.SingleMappingTestClass; - } - - protected PropertyMapping> stringTestMapping = - new PropertyMapping>("stringTest", TestOntology.stringTest, new ObservableCollection()); - - public ObservableCollection stringTest - { - get { return GetValue(stringTestMapping); } - set { SetValue(stringTestMapping, value); } - } - - #endregion - - #region Constructors - - public SingleMappingTestClass(Uri uri) : base(uri) {} - - #endregion - } - - public class SingleResourceMappingTestClass : Resource - { - #region Constructors - - public SingleResourceMappingTestClass(Uri uri) : base(uri) {} - - #endregion - - #region Mapping - - public override IEnumerable GetTypes() - { - return new List { TestOntology.SingleResourceMappingTestClass }; - } - - protected PropertyMapping> resourceTestMapping = - new PropertyMapping>("ResourceTest", TestOntology.resourceTest, new ObservableCollection()); - - public ObservableCollection ResourceTest - { - get { return GetValue(resourceTestMapping); } - set { SetValue(resourceTestMapping, value); } - } - - #endregion - } - - public class ResourceMappingTestClass : Resource - { - #region Members - - protected PropertyMapping IntegerValueMapping = new PropertyMapping("IntegerValue", TestOntology.intTest); - - public int IntegerValue - { - get { return GetValue(IntegerValueMapping); } - set { SetValue(IntegerValueMapping, value); } - } - - protected PropertyMapping ResourceMapping = new PropertyMapping("Resource", TestOntology.resourceTest); - - public ResourceMappingTestClass Resource - { - get { return GetValue(ResourceMapping); } - set { SetValue(ResourceMapping, value); } - } - - #endregion - - #region Constructors - - public ResourceMappingTestClass(Uri uri) : base(uri) { } - - #endregion - - #region Methods - - public override IEnumerable GetTypes() - { - yield return TestOntology.ResourceMappingTestClass; - } - - #endregion - } - - public class MappingTestClass : Resource - { - #region Constructors - - public MappingTestClass(Uri uri) : base(uri) {} - - #endregion - - #region Mapping - - public override IEnumerable GetTypes() - { - return new List { TestOntology.TestClass }; - } - - protected PropertyMapping> intTestMapping = - new PropertyMapping>("intTest", TestOntology.intTest, new ObservableCollection()); - - public ObservableCollection intTest - { - get { return GetValue(intTestMapping); } - set { SetValue(intTestMapping, value); } - } - - protected PropertyMapping uniqueIntTestMapping = - new PropertyMapping("uniqueIntTest", TestOntology.uniqueIntTest); - - public int uniqueIntTest - { - get { return GetValue(uniqueIntTestMapping); } - set { SetValue(uniqueIntTestMapping, value); } - } - - protected PropertyMapping> uintTestMapping = - new PropertyMapping>("uintTest", TestOntology.uintTest, new ObservableCollection()); - - public ObservableCollection uintTest - { - get { return GetValue(uintTestMapping); } - set { SetValue(uintTestMapping, value); } - } - - - protected PropertyMapping uniqueUintTestMapping = - new PropertyMapping("uniqueUintTest", TestOntology.uniqueUintTest); - - public uint uniqueUintTest - { - get { return GetValue(uniqueUintTestMapping); } - set { SetValue(uniqueUintTestMapping, value); } - } - - protected PropertyMapping> stringTestMapping = - new PropertyMapping>("stringTest", TestOntology.stringTest, new ObservableCollection()); - - public ObservableCollection stringTest - { - get { return GetValue(stringTestMapping); } - set { SetValue(stringTestMapping, value); } - } - - protected PropertyMapping uniqueStringTestMapping = - new PropertyMapping("uniqueStringTest", TestOntology.uniqueStringTest); - - public string uniqueStringTest - { - get { return GetValue(uniqueStringTestMapping); } - set { SetValue(uniqueStringTestMapping, value); } - } - - protected PropertyMapping> boolTestMapping = - new PropertyMapping>("boolTest", TestOntology.boolTest, new ObservableCollection()); - - public ObservableCollection boolTest - { - get { return GetValue(boolTestMapping); } - set { SetValue(boolTestMapping, value); } - } - - protected PropertyMapping uniqueBoolTestMapping = - new PropertyMapping("uniqueBoolTest", TestOntology.uniqueBoolTest); - - public bool uniqueBoolTest - { - get { return GetValue(uniqueBoolTestMapping); } - set { SetValue(uniqueBoolTestMapping, value); } - } - - protected PropertyMapping uniqueFloatTestMapping = - new PropertyMapping("uniqueFloatTest", TestOntology.uniqueFloatTest); - - public float uniqueFloatTest - { - get { return GetValue(uniqueFloatTestMapping); } - set { SetValue(uniqueFloatTestMapping, value); } - } - - protected PropertyMapping uniqueDoubleTestMapping = - new PropertyMapping("uniqueDoubleTest", TestOntology.uniqueDoubleTest); - - public double uniqueDoubleTest - { - get { return GetValue(uniqueDoubleTestMapping); } - set { SetValue(uniqueDoubleTestMapping, value); } - } - - protected PropertyMapping> doubleTestMapping = - new PropertyMapping>("doubleTest", TestOntology.doubleTest); - - public ObservableCollection DoubleTest - { - get { return GetValue(doubleTestMapping); } - set { SetValue(doubleTestMapping, value); } - } - - protected PropertyMapping uniqueDecimalTestMapping = - new PropertyMapping("uniqueDecimalTest", TestOntology.uniqueDecimalTest); - - public decimal uniqueDecimalTest - { - get { return GetValue(uniqueDecimalTestMapping); } - set { SetValue(uniqueDecimalTestMapping, value); } - } - - protected PropertyMapping> _genericPropertyMapping = - new PropertyMapping>("genericProperty", TestOntology.genericTest); - - public ObservableCollection genericProperty - { - get { return GetValue(_genericPropertyMapping); } - set { SetValue(_genericPropertyMapping, value); } - } - - protected PropertyMapping uniqueDateTimeTestMapping = - new PropertyMapping("uniqueDateTimeTest", TestOntology.uniqueDatetimeTest); - - public DateTime uniqueDateTimeTest - { - get { return GetValue(uniqueDateTimeTestMapping); } - set { SetValue(uniqueDateTimeTestMapping, value); } - } - - protected PropertyMapping> dateTimeTestMapping = - new PropertyMapping>("dateTimeTest", TestOntology.datetimeTest, new ObservableCollection()); - - public ObservableCollection dateTimeTest - { - get { return GetValue(dateTimeTestMapping); } - set { SetValue(dateTimeTestMapping, value); } - } - - - protected PropertyMapping> resourceTestMapping = - new PropertyMapping>("resourceTest", TestOntology.resourceTest, new ObservableCollection()); - - public ObservableCollection resourceTest - { - get { return GetValue(resourceTestMapping); } - set { SetValue(resourceTestMapping, value); } - } - - protected PropertyMapping uniqueResourceTestMapping = - new PropertyMapping("uniqueResourceTest", TestOntology.uniqueResourceTest); - - public MappingTestClass2 uniqueResourceTest - { - get { return GetValue(uniqueResourceTestMapping); } - set { SetValue(uniqueResourceTestMapping, value); } - } - - protected PropertyMapping resPropertyMapping = - new PropertyMapping("resProperty", TestOntology.resTest); - - public Resource resProperty - { - get { return (Resource)GetValue(resPropertyMapping); } - set { SetValue(resPropertyMapping, value); } - } - - protected PropertyMapping> uriTestMapping = - new PropertyMapping>("uriTest", TestOntology.uriTest, new ObservableCollection()); - - public ObservableCollection uriTest - { - get { return GetValue(uriTestMapping); } - set { SetValue(uriTestMapping, value); } - } - - protected PropertyMapping uniqueUriTestMapping = - new PropertyMapping("uniqueUriTest", TestOntology.uniqueUriTest); - - public Uri uniqueUriTest - { - get { return GetValue(uniqueUriTestMapping); } - set { SetValue(uniqueUriTestMapping, value); } - } - - - #endregion - - } - - public class MappingTestClass2 : Resource - { - #region Constructors - - public MappingTestClass2(Uri uri) : base(uri) {} - - #endregion - - #region Mapping - - public override IEnumerable GetTypes() - { - return new List { TestOntology.TestClass2 }; - } - - protected PropertyMapping uniqueStringTestMapping = - new PropertyMapping("uniqueStringTest", TestOntology.uniqueStringTest); - - public string uniqueStringTest - { - get { return GetValue(uniqueStringTestMapping); } - set { SetValue(uniqueStringTestMapping, value); } - } - - #endregion - } - - public class MappingTestClass3 : MappingTestClass2 - { - #region Constructors - - public MappingTestClass3(Uri uri) : base(uri) {} - - #endregion - - #region Mapping - - public override IEnumerable GetTypes() - { - return new List { TestOntology.TestClass3 }; - } - - #endregion - } - - public class MappingTestClass4 : MappingTestClass3 - { - #region Constructors - - public MappingTestClass4(Uri uri) : base(uri) {} - - #endregion - - #region Mapping - - public override IEnumerable GetTypes() - { - return new List { TestOntology.TestClass3 }; - } - - #endregion - } - public class MappingTestClass5 : MappingTestClass3 - { - #region Constructors - - public MappingTestClass5(Uri uri) : base(uri) {} - - #endregion - - #region Mapping - - public override IEnumerable GetTypes() - { - return new List { TestOntology.TestClass4 }; - } - - #endregion - } - - public class StringMappingTestClass : Resource - { - #region Constructors - - public StringMappingTestClass(Uri uri) : base(uri) {} - - #endregion - - #region Mapping - - public override IEnumerable GetTypes() - { - return new List { TestOntology.TestClass3 }; - } - - public PropertyMapping randomPropertyTestMapping = - new PropertyMapping("RandomProperty", "http://www.example.com/property"); - - public string RandomProperty - { - get { return GetValue(randomPropertyTestMapping); } - set { SetValue(randomPropertyTestMapping, value); } - } - - public PropertyMapping uniqueStringTestMapping = - new PropertyMapping("uniqueStringTest", TestOntology.uniqueStringTest.Uri.OriginalString); - - public string uniqueStringTest - { - get { return GetValue(uniqueStringTestMapping); } - set { SetValue(uniqueStringTestMapping, value); } - } - - public PropertyMapping> stringListTestMapping = - new PropertyMapping>("stringListTest", TestOntology.stringTest); - - public List stringListTest - { - get { return GetValue(stringListTestMapping); } - set { SetValue(stringListTestMapping, value); } - } - - public PropertyMapping> intTestMapping = - new PropertyMapping>("intTest", "semio:test:intTest", new ObservableCollection()); - - public ObservableCollection intTest - { - get { return GetValue(intTestMapping); } - set { SetValue(intTestMapping, value); } - } - - #endregion - } - - public class JsonMappingTestClass : Resource - { - #region Mapping - - public override IEnumerable GetTypes() - { - yield return TestOntology.JsonTestClass; - } - - protected PropertyMapping> stringTestMapping = - new PropertyMapping>("stringTest", TestOntology.stringTest, new ObservableCollection()); - - public ObservableCollection stringTest - { - get { return GetValue(stringTestMapping); } - set { SetValue(stringTestMapping, value); } - } - - #endregion - - #region Constructors - - public JsonMappingTestClass(Uri uri) : base(uri) { } - - #endregion - } - - [TestFixture] - public class ResourceMappingTest - { - public static bool RegisteredOntology = false; - - private IStore _store; - - [TearDown] - public void TearDown() - { - if (_store != null) - { - _store.Dispose(); - } - } - - //[Test] - // This test does not run, but it needs to. - public void AddUnmappedType() - { - IModel m = GetModel(); - m.Clear(); - - Uri t1Uri = new Uri("semio:test:testInstance1"); - Uri t2Uri = new Uri("semio:test:testInstance2"); - MappingTestClass t1 = m.CreateResource(t1Uri); - - IResource r = m.CreateResource(t2Uri); - r.AddProperty(rdf.type, TestOntology.TestClass2); - - t1.AddProperty(TestOntology.uniqueResourceTest, r); - t1.AddProperty(TestOntology.resourceTest, r); - - Assert.IsNull(t1.uniqueResourceTest); - Assert.AreEqual(0, t1.resourceTest.Count); - - m.Clear(); - } - - [Test] - public void GetTypesTest() - { - MappingTestClass2 t2 = new MappingTestClass2(new Uri("semio:t2")); - List classes = t2.GetTypes().ToList(); - Assert.AreEqual(1, classes.Count); - Assert.Contains(TestOntology.TestClass2, classes); - - MappingTestClass3 t3 = new MappingTestClass3(new Uri("semio:t3")); - classes = t3.GetTypes().ToList(); - Assert.AreEqual(1, classes.Count); - Assert.Contains(TestOntology.TestClass3, classes); - } - - [Test] - public void AddRemoveIntegerTest() - { - IModel m = GetModel(); - m.Clear(); - - Uri t1Uri = new Uri("semio:test:testInstance1"); - MappingTestClass t1 = m.CreateResource(t1Uri); - - // Add value using the mapping interface - int value = 1; - t1.uniqueIntTest = value; - - t1.Commit(); - - MappingTestClass t_actual = m.GetResource(t1Uri); - - // Test if value was stored - Assert.AreEqual(value, t_actual.uniqueIntTest); - - - // Test if property is present - IEnumerable l = t_actual.ListProperties(); - Assert.True(l.Contains(TestOntology.uniqueIntTest)); - Assert.AreEqual(2, l.Count()); - - // Test if ListValues works - Assert.AreEqual(typeof(int), t_actual.ListValues(TestOntology.uniqueIntTest).First().GetType()); - Assert.AreEqual(value, t_actual.ListValues(TestOntology.uniqueIntTest).First()); - - // Remove with RemoveProperty - t1.RemoveProperty(TestOntology.uniqueIntTest, value); - t1.Commit(); - - t_actual = m.GetResource(t1Uri); - - // Test if ListProperties works - l = t_actual.ListProperties(); - Assert.False(l.Contains(TestOntology.uniqueIntTest)); - - // Test if ListValues works - Assert.AreEqual(0, t_actual.ListValues(TestOntology.uniqueIntTest).Count()); - - m.Clear(); - } - - [Test] - public void AddRemoveIntegerListTest() - { - IModel m = GetModel(); - m.Clear(); - Uri t1Uri = new Uri("semio:test:testInstance1"); - MappingTestClass t1 = m.CreateResource(t1Uri); - // Add value using the mapping interface - int value = 2; - t1.intTest.Add(value); - - t1.Commit(); - - MappingTestClass t_actual = m.GetResource(t1Uri); - - // Test if value was stored - Assert.AreEqual(1, t_actual.intTest.Count()); - Assert.AreEqual(value, t_actual.intTest[0]); - - // Test if property is present - IEnumerable l = t_actual.ListProperties(); - Assert.True(l.Contains(TestOntology.intTest)); - Assert.AreEqual(2, l.Count()); - - // Test if ListValues works - Assert.AreEqual(typeof(int), t_actual.ListValues(TestOntology.intTest).First().GetType()); - Assert.AreEqual(value, t_actual.ListValues(TestOntology.intTest).First()); - - // Add another value - int value2 = -18583; - t1.intTest.Add(value2); - t1.Commit(); - t_actual = m.GetResource(t1Uri); - - - // Test if value was stored - Assert.AreEqual(2, t_actual.intTest.Count()); - Assert.IsTrue(t_actual.intTest.Contains(value)); - Assert.IsTrue(t_actual.intTest.Contains(value2)); - - // Test if property is present - l = t_actual.ListProperties(); - Assert.True(l.Contains(TestOntology.intTest)); - Assert.AreEqual(2, l.Count()); - - // Test if ListValues works - var res = t_actual.ListValues(TestOntology.intTest).ToList(); - Assert.AreEqual(typeof(int), res[0].GetType()); - Assert.AreEqual(typeof(int), res[1].GetType()); - Assert.IsTrue(res.Contains(value)); - Assert.IsTrue(res.Contains(value2)); - - // Remove value from mapped list - t1.intTest.Remove(value2); - t1.Commit(); - t_actual = m.GetResource(t1Uri); - - // Test if removed - Assert.AreEqual(1, t_actual.intTest.Count()); - - // Test if ListProperties works - l = t_actual.ListProperties().ToList(); - Assert.True(l.Contains(TestOntology.intTest)); - - // Test if first added property is still present - Assert.AreEqual(typeof(int), t_actual.ListValues(TestOntology.intTest).First().GetType()); - Assert.AreEqual(value, t_actual.ListValues(TestOntology.intTest).First()); - - t1.intTest.Remove(value); - t1.Commit(); - t_actual = m.GetResource(t1Uri); - - l = t_actual.ListProperties(); - Assert.False(l.Contains(TestOntology.intTest)); - - // Test if ListValues works - Assert.AreEqual(0, t_actual.ListValues(TestOntology.intTest).Count()); - - m.Clear(); - } - - /// - /// This Test fails because the datatype "unsigned int" is not stored correctly in the database. - /// To be more specific the xsd type is missing although it is given at the insert. - /// - //[Test] - public void AddRemoveUnsignedIntegerTest() - { - IModel m = GetModel(); - m.Clear(); - Uri t1Uri = new Uri("semio:test:testInstance1"); - MappingTestClass t1 = m.CreateResource(t1Uri); - - // Add value using the mapping interface - uint uValue = 1; - t1.uniqueUintTest = uValue; - - t1.Commit(); - - MappingTestClass t_actual = m.GetResource(t1Uri); - - // Test if value was stored - Assert.AreEqual(uValue, t_actual.uniqueUintTest); - - - // Test if property is present - var l = t1.ListProperties(); - Assert.True(l.Contains(TestOntology.uniqueUintTest)); - Assert.AreEqual(2, l.Count()); - - // Test if ListValues works - Assert.AreEqual(typeof(uint), t_actual.ListValues(TestOntology.uniqueUintTest).First().GetType()); - Assert.AreEqual(uValue, t_actual.ListValues(TestOntology.uniqueUintTest).First()); - - // Remove with RemoveProperty - t1.RemoveProperty(TestOntology.uniqueUintTest, uValue); - t1.Commit(); - - t_actual = m.GetResource(t1Uri); - - // Test if ListProperties works - l = (List)t_actual.ListProperties(); - Assert.False(l.Contains(TestOntology.uniqueUintTest)); - - // Test if ListValues works - Assert.AreEqual(0, t_actual.ListValues(TestOntology.uniqueUintTest).Count()); - - m.Clear(); - } - - //[Test] - public void AddRemoveUnsignedIntegerListTest() - { - IModel m = GetModel(); - m.Clear(); - Uri t1Uri = new Uri("semio:test:testInstance1"); - MappingTestClass t1 = m.CreateResource(t1Uri); - - // Add value using the mapping interface - uint uValue = 2; - t1.uintTest.Add(uValue); - - t1.Commit(); - MappingTestClass t_actual = m.GetResource(t1Uri); - - // Test if value was stored - Assert.AreEqual(1, t_actual.uintTest.Count()); - Assert.AreEqual(uValue, t_actual.uintTest[0]); - - - // Test if property is present - var l = t1.ListProperties(); - Assert.True(l.Contains(TestOntology.uintTest)); - Assert.AreEqual(2, l.Count()); - - // Test if ListValues works - Assert.AreEqual(typeof(uint), t_actual.ListValues(TestOntology.uintTest).First().GetType()); - Assert.AreEqual(uValue, t_actual.ListValues(TestOntology.uintTest).First()); - - // Remove value from mapped list - t1.uintTest.Remove(uValue); - t1.Commit(); - - t_actual = m.GetResource(t1Uri); - - // Test if removed - Assert.AreEqual(0, t_actual.uintTest.Count()); - - // Test if ListProperties works - l = (List)t_actual.ListProperties(); - Assert.False(l.Contains(TestOntology.uintTest)); - - // Test if ListValues works - Assert.AreEqual(0, t_actual.ListValues(TestOntology.uintTest).Count()); - m.Clear(); - } - - [Test] - public void AddRemoveStringTest() - { - IModel m = GetModel(); - m.Clear(); - Uri t1Uri = new Uri("semio:test:testInstance1"); - MappingTestClass t1 = m.CreateResource(t1Uri); - - - // Add value using the mapping interface - string strValue = "Hallo Welt!"; - t1.uniqueStringTest = strValue; - t1.Commit(); - - MappingTestClass t_actual = m.GetResource(t1Uri); - - // Test if value was stored - Assert.AreEqual(strValue, t_actual.uniqueStringTest); - - - // Test if property is present - var l = t_actual.ListProperties(); - Assert.True(l.Contains(TestOntology.uniqueStringTest)); - Assert.AreEqual(2, l.Count()); - - var x = t_actual.HasProperty(TestOntology.uniqueStringTest); - Assert.IsTrue(x); - - x = t_actual.HasProperty(TestOntology.uniqueStringTest, strValue); - Assert.IsTrue(x); - - // Test if ListValues works - Assert.AreEqual(typeof(string), t_actual.ListValues(TestOntology.uniqueStringTest).First().GetType()); - Assert.AreEqual(strValue, t1.ListValues(TestOntology.uniqueStringTest).First()); - - // Remove with RemoveProperty - t1.RemoveProperty(TestOntology.uniqueStringTest, strValue); - t1.Commit(); - t_actual = m.GetResource(t1Uri); - - // Test if ListProperties works - l = t_actual.ListProperties(); - Assert.False(l.Contains(TestOntology.uniqueStringTest)); - - x = t_actual.HasProperty(TestOntology.uniqueStringTest); - Assert.IsFalse(x); - - x = t_actual.HasProperty(TestOntology.uniqueStringTest, strValue); - Assert.IsFalse(x); - - // Test if ListValues works - Assert.AreEqual(0, t_actual.ListValues(TestOntology.uniqueStringTest).Count()); - - - - // Test if escaping works - t1.uniqueStringTest = "ASK { < http://steadymojo.com/sleepState> ?o. Filter( ?o != 'false'^^) }"; - t1.Commit(); - - t_actual = m.GetResource(t1Uri); - Assert.AreEqual(t_actual.uniqueStringTest, t_actual.uniqueStringTest); - - m.Clear(); - } - - [Test] - public void AddRemoveStringListTest() - { - IModel m = GetModel(); - m.Clear(); - Uri t1Uri = new Uri("semio:test:testInstance1"); - MappingTestClass t1 = m.CreateResource(t1Uri); - - // Add value using the mapping interface - string strValue = "(╯°□°)╯︵ ┻━┻"; - t1.stringTest.Add(strValue); - - t1.Commit(); - - MappingTestClass t_actual = m.GetResource(t1Uri); - - // Test if value was stored - Assert.AreEqual(1, t_actual.stringTest.Count()); - Assert.AreEqual(strValue, t_actual.stringTest[0]); - - - // Test if property is present - var l = t_actual.ListProperties(); - Assert.True(l.Contains(TestOntology.stringTest)); - Assert.AreEqual(2, l.Count()); - - var x = t_actual.HasProperty(TestOntology.stringTest); - Assert.IsTrue(x); - - x = t_actual.HasProperty(TestOntology.stringTest, strValue); - Assert.IsTrue(x); - - // Test if ListValues works - Assert.AreEqual(typeof(string), t_actual.ListValues(TestOntology.stringTest).First().GetType()); - Assert.AreEqual(strValue, t_actual.ListValues(TestOntology.stringTest).First()); - - - // Remove value from mapped list - t1.stringTest.Remove(strValue); - t1.Commit(); - - t_actual = m.GetResource(t1Uri); - - // Test if removed - Assert.AreEqual(0, t_actual.boolTest.Count()); - - // Test if ListProperties works - l = t_actual.ListProperties(); - Assert.False(l.Contains(TestOntology.stringTest)); - - x = t_actual.HasProperty(TestOntology.stringTest); - Assert.IsFalse(x); - - x = t_actual.HasProperty(TestOntology.stringTest, strValue); - Assert.IsFalse(x); - - // Test if ListValues works - Assert.AreEqual(0, t_actual.ListValues(TestOntology.stringTest).Count()); - - m.Clear(); - } - - [Test] - public void AddRemoveBoolTest() - { - IModel m = GetModel(); - m.Clear(); - Uri t1Uri = new Uri("semio:test:testInstance1"); - MappingTestClass t1 = m.CreateResource(t1Uri); - - - // Add value using the mapping interface - bool bValue = true; - t1.uniqueBoolTest = bValue; - - t1.Commit(); - - MappingTestClass t_actual = m.GetResource(t1Uri); - - // Test if value was stored - Assert.AreEqual(bValue, t_actual.uniqueBoolTest); - - - // Test if property is present - var l = t_actual.ListProperties(); - Assert.True(l.Contains(TestOntology.uniqueBoolTest)); - Assert.AreEqual(2, l.Count()); - - // Test if ListValues works - Assert.AreEqual(typeof(bool), t_actual.ListValues(TestOntology.uniqueBoolTest).First().GetType()); - Assert.AreEqual(bValue, t_actual.ListValues(TestOntology.uniqueBoolTest).First()); - - // Remove with RemoveProperty - t1.RemoveProperty(TestOntology.uniqueBoolTest, bValue); - t1.Commit(); - - t_actual = m.GetResource(t1Uri); - - // Test if ListProperties works - l = t_actual.ListProperties().ToList(); - Assert.False(l.Contains(TestOntology.uniqueBoolTest)); - - // Test if ListValues works - Assert.AreEqual(0, t_actual.ListValues(TestOntology.uniqueBoolTest).Count()); - - m.Clear(); - } - - [Test] - public void AddRemoveBoolListTest() - { - IModel model = GetModel(); - model.Clear(); - - Uri t1Uri = new Uri("semio:test:testInstance1"); - MappingTestClass t1 = model.CreateResource(t1Uri); - - // Add value using the mapping interface - bool value = true; - t1.boolTest.Add(value); - t1.Commit(); - - MappingTestClass t_actual = model.GetResource(t1Uri); - - // Test if value was stored - Assert.AreEqual(1, t_actual.boolTest.Count()); - Assert.AreEqual(value, t_actual.boolTest[0]); - - // Test if property is present - var l = t_actual.ListProperties(); - - Assert.True(l.Contains(TestOntology.boolTest)); - Assert.AreEqual(2, l.Count()); - - // Test if ListValues works - Assert.AreEqual(typeof(bool), t_actual.ListValues(TestOntology.boolTest).First().GetType()); - Assert.AreEqual(value, t_actual.ListValues(TestOntology.boolTest).First()); - - // Remove value from mapped list - t1.boolTest.Remove(value); - t1.Commit(); - - t_actual = model.GetResource(t1Uri); - - // Test if removed - Assert.AreEqual(0, t_actual.boolTest.Count()); - - // Test if ListProperties works - l = t_actual.ListProperties().ToList(); - - Assert.False(l.Contains(TestOntology.boolTest)); - - // Test if ListValues works - Assert.AreEqual(0, t_actual.ListValues(TestOntology.boolTest).Count()); - - model.Clear(); - } - - [Test] - public void AddRemoveFloatTest() - { - IModel m = GetModel(); - m.Clear(); - - Uri uri = new Uri("semio:test:testInstance1"); - - MappingTestClass testResource = m.CreateResource(uri); - - // Add value using the mapping interface - float floatValue = 1.0f; - - testResource.uniqueFloatTest = floatValue; - testResource.Commit(); - - MappingTestClass storedResource = m.GetResource(uri); - - // Test if value was stored - Assert.AreEqual(floatValue, storedResource.uniqueFloatTest); - - // Test if property is present - List properties = storedResource.ListProperties().ToList(); - - Assert.True(properties.Contains(TestOntology.uniqueFloatTest)); - Assert.AreEqual(2, properties.Count()); - - // Test if ListValues works - Assert.AreEqual(typeof(float), storedResource.ListValues(TestOntology.uniqueFloatTest).First().GetType()); - Assert.AreEqual(floatValue, storedResource.ListValues(TestOntology.uniqueFloatTest).First()); - - // Remove with RemoveProperty - testResource.RemoveProperty(TestOntology.uniqueFloatTest, floatValue); - testResource.Commit(); - - storedResource = m.GetResource(uri); - - // Test if ListProperties works - properties = storedResource.ListProperties().ToList(); - - Assert.False(properties.Contains(TestOntology.uniqueFloatTest)); - - // Test if ListValues works - Assert.AreEqual(0, storedResource.ListValues(TestOntology.uniqueFloatTest).Count()); - - m.Clear(); - } - - [Test] - public void AddRemoveDoubleTest() - { - IModel m = GetModel(); - m.Clear(); - - Uri uri = new Uri("semio:test:testInstance1"); - - MappingTestClass testResource = m.CreateResource(uri); - - // Add value using the mapping interface - double doubleValue = 1.0; - - testResource.uniqueDoubleTest = doubleValue; - testResource.Commit(); - - MappingTestClass storedResource = m.GetResource(uri); - - // Test if value was stored - Assert.AreEqual(doubleValue, storedResource.uniqueDoubleTest); - - // Test if property is present - List properties = storedResource.ListProperties().ToList(); - - Assert.True(properties.Contains(TestOntology.uniqueDoubleTest)); - Assert.AreEqual(2, properties.Count()); - - // Test if ListValues works - Assert.AreEqual(typeof(double), storedResource.ListValues(TestOntology.uniqueDoubleTest).First().GetType()); - Assert.AreEqual(doubleValue, storedResource.ListValues(TestOntology.uniqueDoubleTest).First()); - - // Remove with RemoveProperty - testResource.RemoveProperty(TestOntology.uniqueDoubleTest, doubleValue); - testResource.Commit(); - - storedResource = m.GetResource(uri); - - // Test if ListProperties works - properties = storedResource.ListProperties().ToList(); - - Assert.False(properties.Contains(TestOntology.uniqueDoubleTest)); - - // Test if ListValues works - Assert.AreEqual(0, storedResource.ListValues(TestOntology.uniqueDoubleTest).Count()); - - testResource.DoubleTest.Add(1); - testResource.DoubleTest.Add(3); - testResource.DoubleTest.Add(6); - testResource.DoubleTest.Add(17); - testResource.DoubleTest.Add(19.111); - testResource.Commit(); - - storedResource = m.GetResource(uri); - Assert.AreEqual(5, storedResource.DoubleTest.Count); - - m.Clear(); - } - - [Test] - public void AddRemoveDecimalTest() - { - IModel m = GetModel(); - m.Clear(); - - Uri uri = new Uri("semio:test:testInstance1"); - - MappingTestClass testResource = m.CreateResource(uri); - - // Add value using the mapping interface - decimal decimalValue = 1.0m; - - testResource.uniqueDecimalTest = decimalValue; - testResource.Commit(); - - MappingTestClass storedResource = m.GetResource(uri); - - // Test if value was stored - Assert.AreEqual(decimalValue, storedResource.uniqueDecimalTest); - - // Test if property is present - List properties = storedResource.ListProperties().ToList(); - - Assert.True(properties.Contains(TestOntology.uniqueDecimalTest)); - Assert.AreEqual(2, properties.Count()); - - // Test if ListValues works - Assert.AreEqual(typeof(decimal), storedResource.ListValues(TestOntology.uniqueDecimalTest).First().GetType()); - Assert.AreEqual(decimalValue, storedResource.ListValues(TestOntology.uniqueDecimalTest).First()); - - // Remove with RemoveProperty - testResource.RemoveProperty(TestOntology.uniqueDecimalTest, decimalValue); - testResource.Commit(); - - storedResource = m.GetResource(uri); - - // Test if ListProperties works - properties = storedResource.ListProperties().ToList(); - - Assert.False(properties.Contains(TestOntology.uniqueDecimalTest)); - - // Test if ListValues works - Assert.AreEqual(0, storedResource.ListValues(TestOntology.uniqueDecimalTest).Count()); - - m.Clear(); - } - - /// - /// Note: - /// Datetime precision in Virtuoso is not as high as native .net datetime precision. - /// - [Test] - public void AddRemoveDateTimeTest() - { - IModel m = GetModel(); - m.Clear(); - - Uri t1Uri = new Uri("semio:test:testInstance1"); - MappingTestClass t1 = m.CreateResource(t1Uri); - - // Add value using the mapping interface - DateTime Value = new DateTime(2012, 8, 15, 12, 3, 55, DateTimeKind.Local); - t1.uniqueDateTimeTest = Value; - t1.Commit(); - - MappingTestClass t_actual = m.GetResource(t1Uri); - - // Test if value was stored - Assert.AreEqual(Value.ToUniversalTime(), t_actual.uniqueDateTimeTest.ToUniversalTime()); - - // Test if property is present - var l = t_actual.ListProperties(); - Assert.True(l.Contains(TestOntology.uniqueDatetimeTest)); - Assert.AreEqual(2, l.Count()); - - // Test if ListValues works - Assert.AreEqual(typeof(DateTime), t_actual.ListValues(TestOntology.uniqueDatetimeTest).First().GetType()); - DateTime time = (DateTime)t_actual.ListValues(TestOntology.uniqueDatetimeTest).First(); - Assert.AreEqual(Value.ToUniversalTime(), time.ToUniversalTime()); - - // Remove with RemoveProperty - t1.RemoveProperty(TestOntology.uniqueDatetimeTest, Value); - t1.Commit(); - - t_actual = m.GetResource(t1Uri); - - // Test if ListProperties works - l = t_actual.ListProperties().ToList(); - Assert.False(l.Contains(TestOntology.uniqueDatetimeTest)); - - // Test if ListValues works - Assert.AreEqual(0, t_actual.ListValues(TestOntology.uniqueDatetimeTest).Count()); - - - DateTime t = new DateTime(); - Assert.IsTrue(DateTime.TryParse("2013-01-21T16:27:23.000Z", out t)); - - t1.uniqueDateTimeTest = t; - t1.Commit(); - - t_actual = m.GetResource(t1Uri); - Assert.AreEqual(t1.uniqueDateTimeTest, t_actual.uniqueDateTimeTest.ToLocalTime()); - - m.Clear(); - } - - [Test] - public void AddRemoveUriTest() - { - IModel model = GetModel(); - model.Clear(); - - Uri uri1 = new Uri("urn:1"); - Uri uri2 = new Uri("urn:2"); - Uri uri3 = new Uri("urn:3"); - - // 1. Create a new instance of the test class and commit it to the model. - MappingTestClass test1 = model.CreateResource(uri1); - test1.resProperty = new Resource(uri2); - test1.Commit(); - - // 2. Retrieve a new copy of the instance and validate the mapped URI property. - test1 = model.GetResource(uri1); - - Assert.NotNull(test1.resProperty); - Assert.AreEqual(test1.resProperty.Uri, uri2); - - // 3. Change the property and commit the resource. - test1.resProperty = new Resource(uri3); - test1.Commit(); - - // 4. Retrieve a new copy of the instance and validate the changed URI property. - test1 = model.GetResource(uri1); - - Assert.NotNull(test1.resProperty); - Assert.AreEqual(test1.resProperty.Uri, uri3); - } - - [Test] - public void AddRemoveUriPropTest() - { - IModel model = GetModel(); - model.Clear(); - - Uri v = new Uri("urn:test#myUri"); - - Uri t1Uri = new Uri("semio:test:testInstance1"); - MappingTestClass t1 = model.CreateResource(t1Uri); - - // Add value using the mapping interface - t1.uniqueUriTest = v; - t1.Commit(); - - MappingTestClass t_actual = model.GetResource(t1Uri); - - // Test if value was stored - Assert.IsNotNull(t_actual.uniqueUriTest); - Assert.AreEqual(v.ToString(), t_actual.uniqueUriTest.ToString()); - - // Test if property is present - var l = t_actual.ListProperties(); - Assert.True(l.Contains(TestOntology.uniqueUriTest)); - Assert.AreEqual(2, l.Count()); - - // Test if ListValues works - Assert.IsTrue( t_actual.ListValues(TestOntology.uniqueUriTest).First() is Uri); - Uri u = (Uri)t_actual.ListValues(TestOntology.uniqueUriTest).First(); - Assert.AreEqual(v.ToString(), u.ToString()); - - // Remove with RemoveProperty - t1.RemoveProperty(TestOntology.uniqueUriTest, v); - t1.Commit(); - - t_actual = model.GetResource(t1Uri); - - // Test if ListProperties works - l = t_actual.ListProperties().ToList(); - Assert.False(l.Contains(TestOntology.uniqueUriTest)); - - // Test if ListValues works - Assert.AreEqual(0, t_actual.ListValues(TestOntology.uniqueUriTest).Count()); - - t1.uriTest.Add(new Uri("urn:test#myUri1")); - t1.uriTest.Add(new Uri("urn:test#myUri2")); - t1.uriTest.Add(new Uri("urn:test3")); - t1.uriTest.Add(new Uri("urn:test/my#Uri4")); - t1.uriTest.Add(new Uri("urn:test#5")); - t1.Commit(); - - t_actual = model.GetResource(t1Uri); - Assert.AreEqual(t1.uriTest.Count, t_actual.uriTest.Count); - - - model.Clear(); - } - [Test] - public void TimeZoneTest() - { - IModel m = GetModel(); - m.Clear(); - - Uri t1Uri = new Uri("semio:test:testInstance1"); - DateTime t = new DateTime(); - Assert.IsTrue(DateTime.TryParse("2013-01-21T16:27:23.000Z", out t)); - - MappingTestClass t1 = m.CreateResource(t1Uri); - t1.uniqueDateTimeTest = t; - t1.Commit(); - - MappingTestClass t_actual = m.GetResource(t1Uri); - } - - [Test] - public void AddRemoveDateTimeListTest() - { - IModel m = GetModel(); - m.Clear(); - Uri t1Uri = new Uri("semio:test:testInstance1"); - MappingTestClass t1 = m.CreateResource(t1Uri); - - - // Add value using the mapping interface - DateTime value = new DateTime(2012, 8, 15, 12, 3, 55, DateTimeKind.Local); - t1.dateTimeTest.Add(value); - t1.Commit(); - MappingTestClass t_actual = m.GetResource(t1Uri); - - // Test if value was stored - Assert.AreEqual(1, t1.dateTimeTest.Count()); - Assert.AreEqual(value, t1.dateTimeTest[0]); - - - // Test if property is present - var l = t1.ListProperties(); - Assert.True(l.Contains(TestOntology.datetimeTest)); - Assert.AreEqual(2, l.Count()); - - // Test if ListValues works - Assert.AreEqual(typeof(DateTime), t_actual.ListValues(TestOntology.datetimeTest).First().GetType()); - DateTime time = (DateTime)t_actual.ListValues(TestOntology.datetimeTest).First(); - Assert.AreEqual(value.ToUniversalTime(), time.ToUniversalTime()); - - // Remove value from mapped list - t1.dateTimeTest.Remove(value); - t1.Commit(); - - t_actual = m.GetResource(t1Uri); - - // Test if removed - Assert.AreEqual(0, t_actual.dateTimeTest.Count()); - - // Test if ListProperties works - l = t_actual.ListProperties().ToList(); - Assert.False(l.Contains(TestOntology.datetimeTest)); - - // Test if ListValues works - Assert.AreEqual(0, t_actual.ListValues(TestOntology.datetimeTest).Count()); - } - - [Test] - public void AddRemoveResourceTest() - { - IModel m = GetModel(); - m.Clear(); - - Uri t1Uri = new Uri("semio:test:testInstance1"); - MappingTestClass t1 = m.CreateResource(t1Uri); - - Uri testClass2Uri = new Uri("semio:test:testInstance2"); - MappingTestClass2 t2 = new MappingTestClass2(testClass2Uri); - - Uri testClass3Uri = new Uri("semio:test:testInstance3"); - MappingTestClass3 t3 = m.CreateResource(testClass3Uri); - t3.Commit(); // Force loading the resource from the model with the appropriate (derived) type. - - t1.uniqueResourceTest = t2; - t1.Commit(); - - MappingTestClass t_actual = m.GetResource(t1Uri); - - Assert.AreEqual(t2, t_actual.uniqueResourceTest); - - var l = t_actual.ListProperties().ToList(); - Assert.Contains(TestOntology.uniqueResourceTest, l); - Assert.AreEqual(2, l.Count()); - - var x = t_actual.HasProperty(TestOntology.uniqueResourceTest); - Assert.IsTrue(x); - - x = t_actual.HasProperty(TestOntology.uniqueResourceTest, t2); - Assert.IsTrue(x); - - t_actual = m.GetResource(t1Uri); - var values = t_actual.ListValues().ToList(); - Assert.Contains( new Tuple(TestOntology.uniqueResourceTest, t2), values); - - - Assert.IsTrue(typeof(Resource).IsAssignableFrom(t_actual.ListValues(TestOntology.uniqueResourceTest).First().GetType())); - //Assert.AreEqual(t2, t_actual.ListValues(TestOntology.uniqeResourceTest).First()); - - t1.RemoveProperty(TestOntology.uniqueResourceTest, t2); - t1.Commit(); - t_actual = m.GetResource(t1Uri); - - - l = t_actual.ListProperties().ToList(); - Assert.False(l.Contains(TestOntology.uniqueResourceTest)); - - x = t_actual.HasProperty(TestOntology.uniqueResourceTest); - Assert.IsFalse(x); - - x = t_actual.HasProperty(TestOntology.uniqueResourceTest, t2); - Assert.IsFalse(x); - - // Test if ListValues works - Assert.AreEqual(0, t_actual.ListValues(TestOntology.uniqueResourceTest).Count()); - - // Test if derived types get properly mapped. - t1.uniqueResourceTest = t3; - t1.Commit(); - - t_actual = m.GetResource(t1Uri); - - Assert.AreEqual(t3, t_actual.uniqueResourceTest); - } - - [Test] - public void AddRemoveResourceListTest() - { - IModel m = GetModel(); - m.Clear(); - - Uri t1Uri = new Uri("semio:test:testInstance1"); - MappingTestClass t1 = m.CreateResource(t1Uri); - - // Add value using the mapping interface - MappingTestClass2 t2 = new MappingTestClass2(new Uri("semio:test:testInstance2")); - MappingTestClass3 t3 = new MappingTestClass3(new Uri("semio:test:testInstance3")); - - t1.resourceTest.Add(t2); - t1.resourceTest.Add(t3); - t1.Commit(); - - MappingTestClass t_actual = m.GetResource(t1Uri); - - Assert.AreEqual(2, t_actual.resourceTest.Count); - Assert.Contains(t2, t_actual.resourceTest); - Assert.Contains(t3, t_actual.resourceTest); - - var l = t_actual.ListProperties(); - - Assert.AreEqual(2, l.Count()); - Assert.IsTrue(l.Contains(TestOntology.resourceTest)); - - var x = t_actual.HasProperty(TestOntology.resourceTest); - Assert.IsTrue(x); - - x = t_actual.HasProperty(TestOntology.resourceTest, t2); - Assert.IsTrue(x); - - x = t_actual.HasProperty(TestOntology.resourceTest, t3); - Assert.IsTrue(x); - - var v = t_actual.ListValues(TestOntology.resourceTest); - - Assert.AreEqual(2, l.Count()); - Assert.IsTrue(v.Contains(t2)); - Assert.IsTrue(v.Contains(t3)); - - t1.resourceTest.Remove(t2); - t1.resourceTest.Remove(t3); - t1.Commit(); - - t_actual = m.GetResource(t1Uri); - - x = t_actual.HasProperty(TestOntology.resourceTest); - Assert.IsFalse(x); - - x = t_actual.HasProperty(TestOntology.resourceTest, t2); - Assert.IsFalse(x); - - Assert.AreEqual(0, t_actual.resourceTest.Count); - } - - [Test] - public void LazyLoadResourceTest() - { - - IModel model = GetModel(); - model.Clear(); - - Uri testRes1 = new Uri("semio:test:testInstance"); - Uri testRes2 = new Uri("semio:test:testInstance2"); - MappingTestClass t1 = model.CreateResource(testRes1); - MappingTestClass2 t2 = model.CreateResource(new Uri("semio:test:testInstance2")); - - t1.uniqueResourceTest = t2; - // TODO: Debug messsage, because t2 was not commited - t1.Commit(); - - MappingTestClass p1 = model.GetResource(testRes1); - //Assert.AreEqual(null, p1.uniqueResourceTest); - - var v = p1.ListValues(TestOntology.uniqueResourceTest); - Assert.AreEqual(t2.Uri.OriginalString, (v.First() as IResource).Uri.OriginalString); - - model.DeleteResource(t1); - - model.DeleteResource(t2); - - t1 = model.CreateResource(testRes1); - - t2 = model.CreateResource(new Uri("semio:test:testInstance2")); - t2.Commit(); - - t1.uniqueResourceTest = t2; - t1.Commit(); - - var tt1 = model.GetResource(testRes1); - Assert.AreEqual(t2, tt1.uniqueResourceTest); - - IResource tr1 = model.GetResource(testRes1); - Assert.AreEqual(typeof(MappingTestClass), tr1.GetType()); - - model.Clear(); - _store.RemoveModel(model); - } - - [Test] - public void MappingTypeTest() - { - IModel m = GetModel(); - m.Clear(); - Uri t1Uri = new Uri("semio:test:testInstance1"); - MappingTestClass2 t1 = m.CreateResource(t1Uri); - //Assert.AreEqual(1, t1.Classes.Count); - t1.uniqueStringTest = "testing 1"; - t1.Commit(); - - Uri t2Uri = new Uri("semio:test:testInstance2"); - MappingTestClass3 t2 = m.CreateResource(t2Uri); - t2.uniqueStringTest = "testing 2"; - t2.Commit(); - - Uri t3Uri = new Uri("semio:test:testInstance3"); - MappingTestClass4 t3 = m.CreateResource(t3Uri); - t3.uniqueStringTest = "testing 3"; - t3.Commit(); - - Resource r1 = m.GetResource(t1Uri); - Assert.AreEqual(t1, r1); - - Resource r2 = m.GetResource(t2Uri); - Assert.AreEqual(t2, r2); - - Resource r3 = m.GetResource(t3Uri); - Assert.AreEqual(t3, r3); - - } - - [Test] - public void MultipeTypesMappingTest() - { - IModel m = GetModel(); - m.Clear(); - - Uri t3Uri = new Uri("semio:test:testInstance3"); - MappingTestClass5 t3 = m.CreateResource(t3Uri); - t3.uniqueStringTest = "testing 3"; - t3.AddProperty(rdf.type, nco.Affiliation); - t3.Commit(); - - Resource r3 = m.GetResource(t3Uri); - Type tr3 = r3.GetType(); - Type tt3 = typeof(MappingTestClass5); - Assert.AreEqual(typeof(MappingTestClass5), r3.GetType()); - - m.Clear(); - t3 = m.CreateResource(t3Uri); - t3.uniqueStringTest = "testing 3"; - t3.AddProperty(rdf.type, nco.Contact); - t3.Commit(); - - r3 = m.GetResource(t3Uri); - Assert.AreEqual(typeof(MappingTestClass5), r3.GetType()); - - r3 = m.GetResource(t3Uri); - Assert.AreEqual(typeof(Contact), r3.GetType()); - } - - [Test] - public void MappingTypeWithInferencingTest() - { - IModel model = GetModel(); - - // Load the rulesets for inferencing. - _store.InitializeFromConfiguration(); - - model.Clear(); - - PersonContact r = model.CreateResource(new Uri("ex:t3")); - r.NameGiven = "Hans"; - r.Commit(); - - SparqlQuery query = new SparqlQuery("SELECT ?s ?p ?o WHERE { ?s ?p ?o . ?s a @type .}"); - query.Bind("@type", nco.Contact); - - Assert.AreEqual(1, model.ExecuteQuery(query, true).GetResources().Count()); - } - - IModel GetModel() - { - _store = StoreFactory.CreateStore(string.Format("{0};rule=urn:semiodesk/test/ruleset", SetupClass.ConnectionString)); - - return _store.GetModel(new Uri("http://example.org/TestModel")); - } - - [Test] - public void RollbackTest() - { - IModel model = GetModel(); - model.Clear(); - - Uri t1Uri = new Uri("semio:test:testInstance1"); - MappingTestClass t1 = model.CreateResource(t1Uri); - - // Add value using the mapping interface - string strValue = "Hallo Welt!"; - t1.uniqueStringTest = strValue; - t1.Commit(); - - t1.uniqueStringTest = "HelloWorld!"; - - t1.Rollback(); - - Assert.AreEqual(strValue, t1.uniqueStringTest); - - MappingTestClass newRef = model.GetResource(t1Uri); - newRef.stringTest.Add("Hi"); - newRef.stringTest.Add("Blub"); - newRef.Commit(); - - t1.Rollback(); - - - Assert.AreEqual(2, t1.stringTest.Count); - Assert.IsTrue(t1.stringTest.Contains("Hi")); - Assert.IsTrue(t1.stringTest.Contains("Blub")); - - - Uri t2Uri = new Uri("semio:test:testInstance2"); - MappingTestClass2 p = model.CreateResource(t2Uri); - p.uniqueStringTest = "blub"; - p.Commit(); - - newRef = model.GetResource(t1Uri); - newRef.resourceTest.Add(p); - newRef.Commit(); - - t1.Rollback(); - - - Assert.IsTrue(t1.resourceTest.Count == 1); - Assert.IsTrue(t1.resourceTest.Contains(p)); - } - - [Test] - public void RollbackMappedResourcesTest() - { - IModel m = GetModel(); - m.Clear(); - Uri t1Uri = new Uri("semio:test:testInstance1"); - SingleResourceMappingTestClass t1 = m.CreateResource(t1Uri); - t1.Commit(); - - Uri t2Uri = new Uri("semio:test:testInstance2"); - SingleMappingTestClass p = m.CreateResource(t2Uri); - p.stringTest.Add("blub"); - p.Commit(); - - var newRef = m.GetResource(t1Uri); - newRef.ResourceTest.Add(p); - newRef.Commit(); - - t1.Rollback(); - - Assert.IsTrue(t1.ResourceTest.Count == 1); - Assert.IsTrue(t1.ResourceTest.Contains(p)); - } - - [Test] - public void ListValuesTest() - { - IModel m = GetModel(); - m.Clear(); - Uri t1Uri = new Uri("semio:test:testInstance1"); - MappingTestClass t1 = m.CreateResource(t1Uri); - - - // Add value using the mapping interface - string strValue = "Hallo Welt!"; - t1.uniqueStringTest = strValue; - t1.Commit(); - - t1.stringTest.Add("Hi"); - t1.stringTest.Add("Blub"); - t1.Commit(); - - var x = t1.ListValues(TestOntology.stringTest).ToList(); - - MappingTestClass actual = m.GetResource(t1.Uri); - var x2 = actual.ListValues(TestOntology.stringTest).ToList().ToList(); - - Assert.AreEqual(x.Count, x2.Count); - Assert.IsTrue(x2.Contains(x[0])); - Assert.IsTrue(x2.Contains(x[1])); - } - - [Test] - public void KeepListsAfterRollbackTest() - { - IModel m = GetModel(); - m.Clear(); - Uri t1Uri = new Uri("semio:test:testInstance8"); - SingleMappingTestClass t1 = m.CreateResource(t1Uri); - t1.AddProperty(TestOntology.uniqueStringTest, "Hello"); - t1.Commit(); - t1.Rollback(); - - t1.stringTest.Add("Hi"); - t1.stringTest.Add("Blub"); - var x = t1.ListValues(TestOntology.stringTest).ToList(); - Assert.AreEqual(2, x.Count); - t1.Commit(); - - SingleMappingTestClass t2 = m.GetResource(t1Uri); - - var x2 = t2.ListValues(TestOntology.stringTest).ToList(); - - Assert.AreEqual(x.Count, x2.Count); - Assert.IsTrue(x2.Contains(x[0])); - Assert.IsTrue(x2.Contains(x[1])); - - } - - [Test] - public void TestEquality() - { - Resource c1 = new Resource(new Uri("http://www.semanticdesktop.org/ontologies/2007/04/02/ncal#cancelledStatus")); - Resource c2 = new Resource(new Uri("http://www.semanticdesktop.org/ontologies/2007/04/02/ncal#cancelledStatus")); - - Assert.IsTrue(c1.Equals(c2)); - Assert.IsFalse(c1 == c2); - } - - [Test] - public void TestStringPropertyMapping() - { - StringMappingTestClass p = new StringMappingTestClass(new Uri("http://test.example.com")); - p.uniqueStringTest = "Test string"; - - var x = p.GetValue(TestOntology.uniqueStringTest); - Assert.AreEqual(p.uniqueStringTest, x); - - p.RandomProperty = "Test string 2"; - - x = p.GetValue(new Property(new Uri("http://www.example.com/property"))); - Assert.AreEqual(p.RandomProperty, x); - } - - [Test] - public void TestLocalizedStringPropertyMapping() - { - IModel m = GetModel(); - m.Clear(); - var resUri = new Uri("http://test.example.com"); - StringMappingTestClass p = m.CreateResource(resUri); - - string germanText = "Hallo Welt"; - string englishText = "Hello World"; - p.AddProperty(TestOntology.uniqueStringTest, germanText, "DE"); - p.AddProperty(TestOntology.uniqueStringTest, englishText, "EN"); - Assert.AreEqual(null, p.uniqueStringTest); - p.Language = "DE"; - Assert.AreEqual(germanText, p.uniqueStringTest); - var x = p.ListValues(TestOntology.uniqueStringTest); - p.Language = "EN"; - Assert.AreEqual(englishText, p.uniqueStringTest); - - p.Language = null; - Assert.AreEqual(null, p.uniqueStringTest); - - } - - [Test] - public void TestLocalizedStringInvariancy() - { - IModel m = GetModel(); - m.Clear(); - Uri peterUri = new Uri("http://test.example.com/peter"); - PersonContact contact = m.CreateResource(peterUri); - contact.NameGiven = "Peter"; - contact.Language = "DE"; - Assert.AreEqual("Peter", contact.NameGiven); - } - - - [Test] - public void TestLocalizedStringListPropertyMapping() - { - IModel m = GetModel(); - m.Clear(); - var resUri = new Uri("http://test.example.com"); - StringMappingTestClass p = m.CreateResource(resUri); - - string germanText = "Hallo Welt"; - string englishText = "Hello World"; - p.AddProperty(TestOntology.stringTest, germanText+1, "DE"); - p.AddProperty(TestOntology.stringTest, germanText+2, "de"); - p.AddProperty(TestOntology.stringTest, germanText+3, "DE"); - p.AddProperty(TestOntology.stringTest, englishText+1, "EN"); - p.AddProperty(TestOntology.stringTest, englishText+2, "EN"); - p.AddProperty(TestOntology.stringTest, englishText+3, "EN"); - p.AddProperty(TestOntology.stringTest, englishText+4, "EN"); - Assert.AreEqual(0, p.stringListTest.Count); - var x = p.ListValues(TestOntology.stringTest); - Assert.AreEqual(7, x.Count()); - p.AddProperty(TestOntology.stringTest, "Hello interanational World"+1); - p.AddProperty(TestOntology.stringTest, "Hello interanational World"+2); - Assert.AreEqual(2, p.stringListTest.Count); - Assert.AreEqual(9, p.ListValues(TestOntology.stringTest).Count()); - p.Language = "DE"; - Assert.AreEqual(3, p.stringListTest.Count); - Assert.AreEqual(9, p.ListValues(TestOntology.stringTest).Count()); - p.Language = "EN"; - Assert.AreEqual(4, p.stringListTest.Count); - Assert.AreEqual(9, p.ListValues(TestOntology.stringTest).Count()); - p.RemoveProperty(TestOntology.stringTest, germanText + 1, "DE"); - Assert.AreEqual(8, p.ListValues(TestOntology.stringTest).Count()); - - p.RemoveProperty(TestOntology.stringTest, englishText + 1, "en"); - Assert.AreEqual(8, p.ListValues(TestOntology.stringTest).Count()); - - p.RemoveProperty(TestOntology.stringTest, "Hello interanational World" + 1); - } - - [Test] - public void TestLocalizedStringListPropertyMapping2() - { - IModel m = GetModel(); - m.Clear(); - var resUri = new Uri("http://test.example.com"); - StringMappingTestClass p = m.CreateResource(resUri); - - p.stringListTest.Add("Hello interanational World" + 1); - p.stringListTest.Add("Hello interanational World" + 2); - string germanText = "Hallo Welt"; - string englishText = "Hello World"; - p.Language = "DE"; - p.stringListTest.Add(germanText + 1); - p.stringListTest.Add(germanText + 2); - p.stringListTest.Add(germanText + 3); - Assert.AreEqual(3, p.stringListTest.Count); - Assert.AreEqual(5, p.ListValues(TestOntology.stringTest).Count()); - - p.Language = "EN"; - p.stringListTest.Add(englishText + 1); - p.stringListTest.Add(englishText + 2); - p.stringListTest.Add(englishText + 3); - p.stringListTest.Add(englishText + 4); - Assert.AreEqual(4, p.stringListTest.Count); - Assert.AreEqual(9, p.ListValues(TestOntology.stringTest).Count()); - - p.Language = null; - Assert.AreEqual(2, p.stringListTest.Count); - Assert.AreEqual(9, p.ListValues(TestOntology.stringTest).Count()); - } - - [Test] - public void TestJsonSerialization() - { - IModel model = GetModel(); - model.Clear(); - - JsonMappingTestClass expected = model.CreateResource(); - expected.stringTest.Add("Hello World!"); - expected.stringTest.Add("Hallo Welt!"); - expected.Commit(); - - string json = JsonConvert.SerializeObject(expected); - - JsonResourceSerializerSettings settings = new JsonResourceSerializerSettings(_store); - - JsonMappingTestClass actual = JsonConvert.DeserializeObject(json, settings); - - Assert.AreEqual(expected.Uri, actual.Uri); - Assert.AreEqual(expected.Model.Uri, actual.Model.Uri); - Assert.AreEqual(2, actual.stringTest.Count); - } - } -} +// LICENSE: +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// +// AUTHORS: +// +// Moritz Eberl +// Sebastian Faubel +// +// Copyright (c) Semiodesk GmbH 2015-2019 + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Collections.ObjectModel; +using Semiodesk.Trinity.Ontologies; +using NUnit.Framework; +using Semiodesk.Trinity.Serialization; +using Newtonsoft.Json; +#if NET35 +using Semiodesk.Trinity.Utility; +#endif + +namespace Semiodesk.Trinity.Test.Virtuoso +{ + + + [TestFixture] + public class ResourceMappingTest : SetupClass + { + public static bool RegisteredOntology = false; + + private IStore _store; + + [TearDown] + public void TearDown() + { + if (_store != null) + { + _store.Dispose(); + } + } + + //[Test] + // This test does not run, but it needs to. + public void AddUnmappedType() + { + IModel m = GetModel(); + m.Clear(); + + Uri t1Uri = new Uri("semio:test:testInstance1"); + Uri t2Uri = new Uri("semio:test:testInstance2"); + MappingTestClass t1 = m.CreateResource(t1Uri); + + IResource r = m.CreateResource(t2Uri); + r.AddProperty(rdf.type, TestOntology.TestClass2); + + t1.AddProperty(TestOntology.uniqueResourceTest, r); + t1.AddProperty(TestOntology.resourceTest, r); + + Assert.IsNull(t1.uniqueResourceTest); + Assert.AreEqual(0, t1.resourceTest.Count); + + m.Clear(); + } + + [Test] + public void GetTypesTest() + { + MappingTestClass2 t2 = new MappingTestClass2(new Uri("semio:t2")); + List classes = t2.GetTypes().ToList(); + Assert.AreEqual(1, classes.Count); + Assert.Contains(TestOntology.TestClass2, classes); + + MappingTestClass3 t3 = new MappingTestClass3(new Uri("semio:t3")); + classes = t3.GetTypes().ToList(); + Assert.AreEqual(1, classes.Count); + Assert.Contains(TestOntology.TestClass3, classes); + } + + [Test] + public void AddRemoveIntegerTest() + { + IModel m = GetModel(); + m.Clear(); + + Uri t1Uri = new Uri("semio:test:testInstance1"); + MappingTestClass t1 = m.CreateResource(t1Uri); + + // Add value using the mapping interface + int value = 1; + t1.uniqueIntTest = value; + + t1.Commit(); + + MappingTestClass t_actual = m.GetResource(t1Uri); + + // Test if value was stored + Assert.AreEqual(value, t_actual.uniqueIntTest); + + + // Test if property is present + IEnumerable l = t_actual.ListProperties(); + Assert.True(l.Contains(TestOntology.uniqueIntTest)); + Assert.AreEqual(2, l.Count()); + + // Test if ListValues works + Assert.AreEqual(typeof(int), t_actual.ListValues(TestOntology.uniqueIntTest).First().GetType()); + Assert.AreEqual(value, t_actual.ListValues(TestOntology.uniqueIntTest).First()); + + // Remove with RemoveProperty + t1.RemoveProperty(TestOntology.uniqueIntTest, value); + t1.Commit(); + + t_actual = m.GetResource(t1Uri); + + // Test if ListProperties works + l = t_actual.ListProperties(); + Assert.False(l.Contains(TestOntology.uniqueIntTest)); + + // Test if ListValues works + Assert.AreEqual(0, t_actual.ListValues(TestOntology.uniqueIntTest).Count()); + + m.Clear(); + } + + [Test] + public void AddRemoveIntegerListTest() + { + IModel m = GetModel(); + m.Clear(); + Uri t1Uri = new Uri("semio:test:testInstance1"); + MappingTestClass t1 = m.CreateResource(t1Uri); + // Add value using the mapping interface + int value = 2; + t1.intTest.Add(value); + + t1.Commit(); + + MappingTestClass t_actual = m.GetResource(t1Uri); + + // Test if value was stored + Assert.AreEqual(1, t_actual.intTest.Count()); + Assert.AreEqual(value, t_actual.intTest[0]); + + // Test if property is present + IEnumerable l = t_actual.ListProperties(); + Assert.True(l.Contains(TestOntology.intTest)); + Assert.AreEqual(2, l.Count()); + + // Test if ListValues works + Assert.AreEqual(typeof(int), t_actual.ListValues(TestOntology.intTest).First().GetType()); + Assert.AreEqual(value, t_actual.ListValues(TestOntology.intTest).First()); + + // Add another value + int value2 = -18583; + t1.intTest.Add(value2); + t1.Commit(); + t_actual = m.GetResource(t1Uri); + + + // Test if value was stored + Assert.AreEqual(2, t_actual.intTest.Count()); + Assert.IsTrue(t_actual.intTest.Contains(value)); + Assert.IsTrue(t_actual.intTest.Contains(value2)); + + // Test if property is present + l = t_actual.ListProperties(); + Assert.True(l.Contains(TestOntology.intTest)); + Assert.AreEqual(2, l.Count()); + + // Test if ListValues works + var res = t_actual.ListValues(TestOntology.intTest).ToList(); + Assert.AreEqual(typeof(int), res[0].GetType()); + Assert.AreEqual(typeof(int), res[1].GetType()); + Assert.IsTrue(res.Contains(value)); + Assert.IsTrue(res.Contains(value2)); + + // Remove value from mapped list + t1.intTest.Remove(value2); + t1.Commit(); + t_actual = m.GetResource(t1Uri); + + // Test if removed + Assert.AreEqual(1, t_actual.intTest.Count()); + + // Test if ListProperties works + l = t_actual.ListProperties().ToList(); + Assert.True(l.Contains(TestOntology.intTest)); + + // Test if first added property is still present + Assert.AreEqual(typeof(int), t_actual.ListValues(TestOntology.intTest).First().GetType()); + Assert.AreEqual(value, t_actual.ListValues(TestOntology.intTest).First()); + + t1.intTest.Remove(value); + t1.Commit(); + t_actual = m.GetResource(t1Uri); + + l = t_actual.ListProperties(); + Assert.False(l.Contains(TestOntology.intTest)); + + // Test if ListValues works + Assert.AreEqual(0, t_actual.ListValues(TestOntology.intTest).Count()); + + m.Clear(); + } + + /// + /// This Test fails because the datatype "unsigned int" is not stored correctly in the database. + /// To be more specific the xsd type is missing although it is given at the insert. + /// + //[Test] + public void AddRemoveUnsignedIntegerTest() + { + IModel m = GetModel(); + m.Clear(); + Uri t1Uri = new Uri("semio:test:testInstance1"); + MappingTestClass t1 = m.CreateResource(t1Uri); + + // Add value using the mapping interface + uint uValue = 1; + t1.uniqueUintTest = uValue; + + t1.Commit(); + + MappingTestClass t_actual = m.GetResource(t1Uri); + + // Test if value was stored + Assert.AreEqual(uValue, t_actual.uniqueUintTest); + + + // Test if property is present + var l = t1.ListProperties(); + Assert.True(l.Contains(TestOntology.uniqueUintTest)); + Assert.AreEqual(2, l.Count()); + + // Test if ListValues works + Assert.AreEqual(typeof(uint), t_actual.ListValues(TestOntology.uniqueUintTest).First().GetType()); + Assert.AreEqual(uValue, t_actual.ListValues(TestOntology.uniqueUintTest).First()); + + // Remove with RemoveProperty + t1.RemoveProperty(TestOntology.uniqueUintTest, uValue); + t1.Commit(); + + t_actual = m.GetResource(t1Uri); + + // Test if ListProperties works + l = (List)t_actual.ListProperties(); + Assert.False(l.Contains(TestOntology.uniqueUintTest)); + + // Test if ListValues works + Assert.AreEqual(0, t_actual.ListValues(TestOntology.uniqueUintTest).Count()); + + m.Clear(); + } + + //[Test] + public void AddRemoveUnsignedIntegerListTest() + { + IModel m = GetModel(); + m.Clear(); + Uri t1Uri = new Uri("semio:test:testInstance1"); + MappingTestClass t1 = m.CreateResource(t1Uri); + + // Add value using the mapping interface + uint uValue = 2; + t1.uintTest.Add(uValue); + + t1.Commit(); + MappingTestClass t_actual = m.GetResource(t1Uri); + + // Test if value was stored + Assert.AreEqual(1, t_actual.uintTest.Count()); + Assert.AreEqual(uValue, t_actual.uintTest[0]); + + + // Test if property is present + var l = t1.ListProperties(); + Assert.True(l.Contains(TestOntology.uintTest)); + Assert.AreEqual(2, l.Count()); + + // Test if ListValues works + Assert.AreEqual(typeof(uint), t_actual.ListValues(TestOntology.uintTest).First().GetType()); + Assert.AreEqual(uValue, t_actual.ListValues(TestOntology.uintTest).First()); + + // Remove value from mapped list + t1.uintTest.Remove(uValue); + t1.Commit(); + + t_actual = m.GetResource(t1Uri); + + // Test if removed + Assert.AreEqual(0, t_actual.uintTest.Count()); + + // Test if ListProperties works + l = (List)t_actual.ListProperties(); + Assert.False(l.Contains(TestOntology.uintTest)); + + // Test if ListValues works + Assert.AreEqual(0, t_actual.ListValues(TestOntology.uintTest).Count()); + m.Clear(); + } + + [Test] + public void AddRemoveStringTest() + { + IModel m = GetModel(); + m.Clear(); + Uri t1Uri = new Uri("semio:test:testInstance1"); + MappingTestClass t1 = m.CreateResource(t1Uri); + + + // Add value using the mapping interface + string strValue = "Hallo Welt!"; + t1.uniqueStringTest = strValue; + t1.Commit(); + + MappingTestClass t_actual = m.GetResource(t1Uri); + + // Test if value was stored + Assert.AreEqual(strValue, t_actual.uniqueStringTest); + + + // Test if property is present + var l = t_actual.ListProperties(); + Assert.True(l.Contains(TestOntology.uniqueStringTest)); + Assert.AreEqual(2, l.Count()); + + var x = t_actual.HasProperty(TestOntology.uniqueStringTest); + Assert.IsTrue(x); + + x = t_actual.HasProperty(TestOntology.uniqueStringTest, strValue); + Assert.IsTrue(x); + + // Test if ListValues works + Assert.AreEqual(typeof(string), t_actual.ListValues(TestOntology.uniqueStringTest).First().GetType()); + Assert.AreEqual(strValue, t1.ListValues(TestOntology.uniqueStringTest).First()); + + // Remove with RemoveProperty + t1.RemoveProperty(TestOntology.uniqueStringTest, strValue); + t1.Commit(); + t_actual = m.GetResource(t1Uri); + + // Test if ListProperties works + l = t_actual.ListProperties(); + Assert.False(l.Contains(TestOntology.uniqueStringTest)); + + x = t_actual.HasProperty(TestOntology.uniqueStringTest); + Assert.IsFalse(x); + + x = t_actual.HasProperty(TestOntology.uniqueStringTest, strValue); + Assert.IsFalse(x); + + // Test if ListValues works + Assert.AreEqual(0, t_actual.ListValues(TestOntology.uniqueStringTest).Count()); + + + + // Test if escaping works + t1.uniqueStringTest = "ASK { < http://steadymojo.com/sleepState> ?o. Filter( ?o != 'false'^^) }"; + t1.Commit(); + + t_actual = m.GetResource(t1Uri); + Assert.AreEqual(t_actual.uniqueStringTest, t_actual.uniqueStringTest); + + m.Clear(); + } + + [Test] + public void AddRemoveStringListTest() + { + IModel m = GetModel(); + m.Clear(); + Uri t1Uri = new Uri("semio:test:testInstance1"); + MappingTestClass t1 = m.CreateResource(t1Uri); + + // Add value using the mapping interface + string strValue = "(╯°□°)╯︵ ┻━┻"; + t1.stringTest.Add(strValue); + + t1.Commit(); + + MappingTestClass t_actual = m.GetResource(t1Uri); + + // Test if value was stored + Assert.AreEqual(1, t_actual.stringTest.Count()); + Assert.AreEqual(strValue, t_actual.stringTest[0]); + + + // Test if property is present + var l = t_actual.ListProperties(); + Assert.True(l.Contains(TestOntology.stringTest)); + Assert.AreEqual(2, l.Count()); + + var x = t_actual.HasProperty(TestOntology.stringTest); + Assert.IsTrue(x); + + x = t_actual.HasProperty(TestOntology.stringTest, strValue); + Assert.IsTrue(x); + + // Test if ListValues works + Assert.AreEqual(typeof(string), t_actual.ListValues(TestOntology.stringTest).First().GetType()); + Assert.AreEqual(strValue, t_actual.ListValues(TestOntology.stringTest).First()); + + + // Remove value from mapped list + t1.stringTest.Remove(strValue); + t1.Commit(); + + t_actual = m.GetResource(t1Uri); + + // Test if removed + Assert.AreEqual(0, t_actual.boolTest.Count()); + + // Test if ListProperties works + l = t_actual.ListProperties(); + Assert.False(l.Contains(TestOntology.stringTest)); + + x = t_actual.HasProperty(TestOntology.stringTest); + Assert.IsFalse(x); + + x = t_actual.HasProperty(TestOntology.stringTest, strValue); + Assert.IsFalse(x); + + // Test if ListValues works + Assert.AreEqual(0, t_actual.ListValues(TestOntology.stringTest).Count()); + + m.Clear(); + } + + [Test] + public void AddRemoveBoolTest() + { + IModel m = GetModel(); + m.Clear(); + Uri t1Uri = new Uri("semio:test:testInstance1"); + MappingTestClass t1 = m.CreateResource(t1Uri); + + + // Add value using the mapping interface + bool bValue = true; + t1.uniqueBoolTest = bValue; + + t1.Commit(); + + MappingTestClass t_actual = m.GetResource(t1Uri); + + // Test if value was stored + Assert.AreEqual(bValue, t_actual.uniqueBoolTest); + + + // Test if property is present + var l = t_actual.ListProperties(); + Assert.True(l.Contains(TestOntology.uniqueBoolTest)); + Assert.AreEqual(2, l.Count()); + + // Test if ListValues works + Assert.AreEqual(typeof(bool), t_actual.ListValues(TestOntology.uniqueBoolTest).First().GetType()); + Assert.AreEqual(bValue, t_actual.ListValues(TestOntology.uniqueBoolTest).First()); + + // Remove with RemoveProperty + t1.RemoveProperty(TestOntology.uniqueBoolTest, bValue); + t1.Commit(); + + t_actual = m.GetResource(t1Uri); + + // Test if ListProperties works + l = t_actual.ListProperties().ToList(); + Assert.False(l.Contains(TestOntology.uniqueBoolTest)); + + // Test if ListValues works + Assert.AreEqual(0, t_actual.ListValues(TestOntology.uniqueBoolTest).Count()); + + m.Clear(); + } + + [Test] + public void AddRemoveBoolListTest() + { + IModel model = GetModel(); + model.Clear(); + + Uri t1Uri = new Uri("semio:test:testInstance1"); + MappingTestClass t1 = model.CreateResource(t1Uri); + + // Add value using the mapping interface + bool value = true; + t1.boolTest.Add(value); + t1.Commit(); + + MappingTestClass t_actual = model.GetResource(t1Uri); + + // Test if value was stored + Assert.AreEqual(1, t_actual.boolTest.Count()); + Assert.AreEqual(value, t_actual.boolTest[0]); + + // Test if property is present + var l = t_actual.ListProperties(); + + Assert.True(l.Contains(TestOntology.boolTest)); + Assert.AreEqual(2, l.Count()); + + // Test if ListValues works + Assert.AreEqual(typeof(bool), t_actual.ListValues(TestOntology.boolTest).First().GetType()); + Assert.AreEqual(value, t_actual.ListValues(TestOntology.boolTest).First()); + + // Remove value from mapped list + t1.boolTest.Remove(value); + t1.Commit(); + + t_actual = model.GetResource(t1Uri); + + // Test if removed + Assert.AreEqual(0, t_actual.boolTest.Count()); + + // Test if ListProperties works + l = t_actual.ListProperties().ToList(); + + Assert.False(l.Contains(TestOntology.boolTest)); + + // Test if ListValues works + Assert.AreEqual(0, t_actual.ListValues(TestOntology.boolTest).Count()); + + model.Clear(); + } + + [Test] + public void AddRemoveFloatTest() + { + IModel m = GetModel(); + m.Clear(); + + Uri uri = new Uri("semio:test:testInstance1"); + + MappingTestClass testResource = m.CreateResource(uri); + + // Add value using the mapping interface + float floatValue = 1.0f; + + testResource.uniqueFloatTest = floatValue; + testResource.Commit(); + + MappingTestClass storedResource = m.GetResource(uri); + + // Test if value was stored + Assert.AreEqual(floatValue, storedResource.uniqueFloatTest); + + // Test if property is present + List properties = storedResource.ListProperties().ToList(); + + Assert.True(properties.Contains(TestOntology.uniqueFloatTest)); + Assert.AreEqual(2, properties.Count()); + + // Test if ListValues works + Assert.AreEqual(typeof(float), storedResource.ListValues(TestOntology.uniqueFloatTest).First().GetType()); + Assert.AreEqual(floatValue, storedResource.ListValues(TestOntology.uniqueFloatTest).First()); + + // Remove with RemoveProperty + testResource.RemoveProperty(TestOntology.uniqueFloatTest, floatValue); + testResource.Commit(); + + storedResource = m.GetResource(uri); + + // Test if ListProperties works + properties = storedResource.ListProperties().ToList(); + + Assert.False(properties.Contains(TestOntology.uniqueFloatTest)); + + // Test if ListValues works + Assert.AreEqual(0, storedResource.ListValues(TestOntology.uniqueFloatTest).Count()); + + m.Clear(); + } + + [Test] + public void AddRemoveDoubleTest() + { + IModel m = GetModel(); + m.Clear(); + + Uri uri = new Uri("semio:test:testInstance1"); + + MappingTestClass testResource = m.CreateResource(uri); + + // Add value using the mapping interface + double doubleValue = 1.0; + + testResource.uniqueDoubleTest = doubleValue; + testResource.Commit(); + + MappingTestClass storedResource = m.GetResource(uri); + + // Test if value was stored + Assert.AreEqual(doubleValue, storedResource.uniqueDoubleTest); + + // Test if property is present + List properties = storedResource.ListProperties().ToList(); + + Assert.True(properties.Contains(TestOntology.uniqueDoubleTest)); + Assert.AreEqual(2, properties.Count()); + + // Test if ListValues works + Assert.AreEqual(typeof(double), storedResource.ListValues(TestOntology.uniqueDoubleTest).First().GetType()); + Assert.AreEqual(doubleValue, storedResource.ListValues(TestOntology.uniqueDoubleTest).First()); + + // Remove with RemoveProperty + testResource.RemoveProperty(TestOntology.uniqueDoubleTest, doubleValue); + testResource.Commit(); + + storedResource = m.GetResource(uri); + + // Test if ListProperties works + properties = storedResource.ListProperties().ToList(); + + Assert.False(properties.Contains(TestOntology.uniqueDoubleTest)); + + // Test if ListValues works + Assert.AreEqual(0, storedResource.ListValues(TestOntology.uniqueDoubleTest).Count()); + + testResource.DoubleTest.Add(1); + testResource.DoubleTest.Add(3); + testResource.DoubleTest.Add(6); + testResource.DoubleTest.Add(17); + testResource.DoubleTest.Add(19.111); + testResource.Commit(); + + storedResource = m.GetResource(uri); + Assert.AreEqual(5, storedResource.DoubleTest.Count); + + m.Clear(); + } + + [Test] + public void AddRemoveDecimalTest() + { + IModel m = GetModel(); + m.Clear(); + + Uri uri = new Uri("semio:test:testInstance1"); + + MappingTestClass testResource = m.CreateResource(uri); + + // Add value using the mapping interface + decimal decimalValue = 1.0m; + + testResource.uniqueDecimalTest = decimalValue; + testResource.Commit(); + + MappingTestClass storedResource = m.GetResource(uri); + + // Test if value was stored + Assert.AreEqual(decimalValue, storedResource.uniqueDecimalTest); + + // Test if property is present + List properties = storedResource.ListProperties().ToList(); + + Assert.True(properties.Contains(TestOntology.uniqueDecimalTest)); + Assert.AreEqual(2, properties.Count()); + + // Test if ListValues works + Assert.AreEqual(typeof(decimal), storedResource.ListValues(TestOntology.uniqueDecimalTest).First().GetType()); + Assert.AreEqual(decimalValue, storedResource.ListValues(TestOntology.uniqueDecimalTest).First()); + + // Remove with RemoveProperty + testResource.RemoveProperty(TestOntology.uniqueDecimalTest, decimalValue); + testResource.Commit(); + + storedResource = m.GetResource(uri); + + // Test if ListProperties works + properties = storedResource.ListProperties().ToList(); + + Assert.False(properties.Contains(TestOntology.uniqueDecimalTest)); + + // Test if ListValues works + Assert.AreEqual(0, storedResource.ListValues(TestOntology.uniqueDecimalTest).Count()); + + m.Clear(); + } + + /// + /// Note: + /// Datetime precision in Virtuoso is not as high as native .net datetime precision. + /// + [Test] + public void AddRemoveDateTimeTest() + { + IModel m = GetModel(); + m.Clear(); + + Uri t1Uri = new Uri("semio:test:testInstance1"); + MappingTestClass t1 = m.CreateResource(t1Uri); + + // Add value using the mapping interface + DateTime Value = new DateTime(2012, 8, 15, 12, 3, 55, DateTimeKind.Local); + t1.uniqueDateTimeTest = Value; + t1.Commit(); + + MappingTestClass t_actual = m.GetResource(t1Uri); + + // Test if value was stored + Assert.AreEqual(Value.ToUniversalTime(), t_actual.uniqueDateTimeTest.ToUniversalTime()); + + // Test if property is present + var l = t_actual.ListProperties(); + Assert.True(l.Contains(TestOntology.uniqueDatetimeTest)); + Assert.AreEqual(2, l.Count()); + + // Test if ListValues works + Assert.AreEqual(typeof(DateTime), t_actual.ListValues(TestOntology.uniqueDatetimeTest).First().GetType()); + DateTime time = (DateTime)t_actual.ListValues(TestOntology.uniqueDatetimeTest).First(); + Assert.AreEqual(Value.ToUniversalTime(), time.ToUniversalTime()); + + // Remove with RemoveProperty + t1.RemoveProperty(TestOntology.uniqueDatetimeTest, Value); + t1.Commit(); + + t_actual = m.GetResource(t1Uri); + + // Test if ListProperties works + l = t_actual.ListProperties().ToList(); + Assert.False(l.Contains(TestOntology.uniqueDatetimeTest)); + + // Test if ListValues works + Assert.AreEqual(0, t_actual.ListValues(TestOntology.uniqueDatetimeTest).Count()); + + + DateTime t = new DateTime(); + Assert.IsTrue(DateTime.TryParse("2013-01-21T16:27:23.000Z", out t)); + + t1.uniqueDateTimeTest = t; + t1.Commit(); + + t_actual = m.GetResource(t1Uri); + Assert.AreEqual(t1.uniqueDateTimeTest, t_actual.uniqueDateTimeTest.ToLocalTime()); + + m.Clear(); + } + + [Test] + public void AddRemoveUriTest() + { + IModel model = GetModel(); + model.Clear(); + + Uri uri1 = new Uri("urn:1"); + Uri uri2 = new Uri("urn:2"); + Uri uri3 = new Uri("urn:3"); + + // 1. Create a new instance of the test class and commit it to the model. + MappingTestClass test1 = model.CreateResource(uri1); + test1.resProperty = new Resource(uri2); + test1.Commit(); + + // 2. Retrieve a new copy of the instance and validate the mapped URI property. + test1 = model.GetResource(uri1); + + Assert.NotNull(test1.resProperty); + Assert.AreEqual(test1.resProperty.Uri, uri2); + + // 3. Change the property and commit the resource. + test1.resProperty = new Resource(uri3); + test1.Commit(); + + // 4. Retrieve a new copy of the instance and validate the changed URI property. + test1 = model.GetResource(uri1); + + Assert.NotNull(test1.resProperty); + Assert.AreEqual(test1.resProperty.Uri, uri3); + } + + [Test] + public void AddRemoveUriPropTest() + { + IModel model = GetModel(); + model.Clear(); + + Uri v = new Uri("urn:test#myUri"); + + Uri t1Uri = new Uri("semio:test:testInstance1"); + MappingTestClass t1 = model.CreateResource(t1Uri); + + // Add value using the mapping interface + t1.uniqueUriTest = v; + t1.Commit(); + + MappingTestClass t_actual = model.GetResource(t1Uri); + + // Test if value was stored + Assert.IsNotNull(t_actual.uniqueUriTest); + Assert.AreEqual(v.ToString(), t_actual.uniqueUriTest.ToString()); + + // Test if property is present + var l = t_actual.ListProperties(); + Assert.True(l.Contains(TestOntology.uniqueUriTest)); + Assert.AreEqual(2, l.Count()); + + // Test if ListValues works + Assert.IsTrue( t_actual.ListValues(TestOntology.uniqueUriTest).First() is Uri); + Uri u = (Uri)t_actual.ListValues(TestOntology.uniqueUriTest).First(); + Assert.AreEqual(v.ToString(), u.ToString()); + + // Remove with RemoveProperty + t1.RemoveProperty(TestOntology.uniqueUriTest, v); + t1.Commit(); + + t_actual = model.GetResource(t1Uri); + + // Test if ListProperties works + l = t_actual.ListProperties().ToList(); + Assert.False(l.Contains(TestOntology.uniqueUriTest)); + + // Test if ListValues works + Assert.AreEqual(0, t_actual.ListValues(TestOntology.uniqueUriTest).Count()); + + t1.uriTest.Add(new Uri("urn:test#myUri1")); + t1.uriTest.Add(new Uri("urn:test#myUri2")); + t1.uriTest.Add(new Uri("urn:test3")); + t1.uriTest.Add(new Uri("urn:test/my#Uri4")); + t1.uriTest.Add(new Uri("urn:test#5")); + t1.Commit(); + + t_actual = model.GetResource(t1Uri); + Assert.AreEqual(t1.uriTest.Count, t_actual.uriTest.Count); + + + model.Clear(); + } + [Test] + public void TimeZoneTest() + { + IModel m = GetModel(); + m.Clear(); + + Uri t1Uri = new Uri("semio:test:testInstance1"); + DateTime t = new DateTime(); + Assert.IsTrue(DateTime.TryParse("2013-01-21T16:27:23.000Z", out t)); + + MappingTestClass t1 = m.CreateResource(t1Uri); + t1.uniqueDateTimeTest = t; + t1.Commit(); + + MappingTestClass t_actual = m.GetResource(t1Uri); + } + + [Test] + public void AddRemoveDateTimeListTest() + { + IModel m = GetModel(); + m.Clear(); + Uri t1Uri = new Uri("semio:test:testInstance1"); + MappingTestClass t1 = m.CreateResource(t1Uri); + + + // Add value using the mapping interface + DateTime value = new DateTime(2012, 8, 15, 12, 3, 55, DateTimeKind.Local); + t1.dateTimeTest.Add(value); + t1.Commit(); + MappingTestClass t_actual = m.GetResource(t1Uri); + + // Test if value was stored + Assert.AreEqual(1, t1.dateTimeTest.Count()); + Assert.AreEqual(value, t1.dateTimeTest[0]); + + + // Test if property is present + var l = t1.ListProperties(); + Assert.True(l.Contains(TestOntology.datetimeTest)); + Assert.AreEqual(2, l.Count()); + + // Test if ListValues works + Assert.AreEqual(typeof(DateTime), t_actual.ListValues(TestOntology.datetimeTest).First().GetType()); + DateTime time = (DateTime)t_actual.ListValues(TestOntology.datetimeTest).First(); + Assert.AreEqual(value.ToUniversalTime(), time.ToUniversalTime()); + + // Remove value from mapped list + t1.dateTimeTest.Remove(value); + t1.Commit(); + + t_actual = m.GetResource(t1Uri); + + // Test if removed + Assert.AreEqual(0, t_actual.dateTimeTest.Count()); + + // Test if ListProperties works + l = t_actual.ListProperties().ToList(); + Assert.False(l.Contains(TestOntology.datetimeTest)); + + // Test if ListValues works + Assert.AreEqual(0, t_actual.ListValues(TestOntology.datetimeTest).Count()); + } + + [Test] + public void AddRemoveResourceTest() + { + IModel m = GetModel(); + m.Clear(); + + Uri t1Uri = new Uri("semio:test:testInstance1"); + MappingTestClass t1 = m.CreateResource(t1Uri); + + Uri testClass2Uri = new Uri("semio:test:testInstance2"); + MappingTestClass2 t2 = new MappingTestClass2(testClass2Uri); + + Uri testClass3Uri = new Uri("semio:test:testInstance3"); + MappingTestClass3 t3 = m.CreateResource(testClass3Uri); + t3.Commit(); // Force loading the resource from the model with the appropriate (derived) type. + + t1.uniqueResourceTest = t2; + t1.Commit(); + + MappingTestClass t_actual = m.GetResource(t1Uri); + + Assert.AreEqual(t2, t_actual.uniqueResourceTest); + + var l = t_actual.ListProperties().ToList(); + Assert.Contains(TestOntology.uniqueResourceTest, l); + Assert.AreEqual(2, l.Count()); + + var x = t_actual.HasProperty(TestOntology.uniqueResourceTest); + Assert.IsTrue(x); + + x = t_actual.HasProperty(TestOntology.uniqueResourceTest, t2); + Assert.IsTrue(x); + + t_actual = m.GetResource(t1Uri); + var values = t_actual.ListValues().ToList(); + Assert.Contains( new Tuple(TestOntology.uniqueResourceTest, t2), values); + + + Assert.IsTrue(typeof(Resource).IsAssignableFrom(t_actual.ListValues(TestOntology.uniqueResourceTest).First().GetType())); + //Assert.AreEqual(t2, t_actual.ListValues(TestOntology.uniqeResourceTest).First()); + + t1.RemoveProperty(TestOntology.uniqueResourceTest, t2); + t1.Commit(); + t_actual = m.GetResource(t1Uri); + + + l = t_actual.ListProperties().ToList(); + Assert.False(l.Contains(TestOntology.uniqueResourceTest)); + + x = t_actual.HasProperty(TestOntology.uniqueResourceTest); + Assert.IsFalse(x); + + x = t_actual.HasProperty(TestOntology.uniqueResourceTest, t2); + Assert.IsFalse(x); + + // Test if ListValues works + Assert.AreEqual(0, t_actual.ListValues(TestOntology.uniqueResourceTest).Count()); + + // Test if derived types get properly mapped. + t1.uniqueResourceTest = t3; + t1.Commit(); + + t_actual = m.GetResource(t1Uri); + + Assert.AreEqual(t3, t_actual.uniqueResourceTest); + } + + [Test] + public void AddRemoveResourceListTest() + { + IModel m = GetModel(); + m.Clear(); + + Uri t1Uri = new Uri("semio:test:testInstance1"); + MappingTestClass t1 = m.CreateResource(t1Uri); + + // Add value using the mapping interface + MappingTestClass2 t2 = new MappingTestClass2(new Uri("semio:test:testInstance2")); + MappingTestClass3 t3 = new MappingTestClass3(new Uri("semio:test:testInstance3")); + + t1.resourceTest.Add(t2); + t1.resourceTest.Add(t3); + t1.Commit(); + + MappingTestClass t_actual = m.GetResource(t1Uri); + + Assert.AreEqual(2, t_actual.resourceTest.Count); + Assert.Contains(t2, t_actual.resourceTest); + Assert.Contains(t3, t_actual.resourceTest); + + var l = t_actual.ListProperties(); + + Assert.AreEqual(2, l.Count()); + Assert.IsTrue(l.Contains(TestOntology.resourceTest)); + + var x = t_actual.HasProperty(TestOntology.resourceTest); + Assert.IsTrue(x); + + x = t_actual.HasProperty(TestOntology.resourceTest, t2); + Assert.IsTrue(x); + + x = t_actual.HasProperty(TestOntology.resourceTest, t3); + Assert.IsTrue(x); + + var v = t_actual.ListValues(TestOntology.resourceTest); + + Assert.AreEqual(2, l.Count()); + Assert.IsTrue(v.Contains(t2)); + Assert.IsTrue(v.Contains(t3)); + + t1.resourceTest.Remove(t2); + t1.resourceTest.Remove(t3); + t1.Commit(); + + t_actual = m.GetResource(t1Uri); + + x = t_actual.HasProperty(TestOntology.resourceTest); + Assert.IsFalse(x); + + x = t_actual.HasProperty(TestOntology.resourceTest, t2); + Assert.IsFalse(x); + + Assert.AreEqual(0, t_actual.resourceTest.Count); + } + + [Test] + public void LazyLoadResourceTest() + { + + IModel model = GetModel(); + model.Clear(); + + Uri testRes1 = new Uri("semio:test:testInstance"); + Uri testRes2 = new Uri("semio:test:testInstance2"); + MappingTestClass t1 = model.CreateResource(testRes1); + MappingTestClass2 t2 = model.CreateResource(new Uri("semio:test:testInstance2")); + + t1.uniqueResourceTest = t2; + // TODO: Debug messsage, because t2 was not commited + t1.Commit(); + + MappingTestClass p1 = model.GetResource(testRes1); + //Assert.AreEqual(null, p1.uniqueResourceTest); + + var v = p1.ListValues(TestOntology.uniqueResourceTest); + Assert.AreEqual(t2.Uri.OriginalString, (v.First() as IResource).Uri.OriginalString); + + model.DeleteResource(t1); + + model.DeleteResource(t2); + + t1 = model.CreateResource(testRes1); + + t2 = model.CreateResource(new Uri("semio:test:testInstance2")); + t2.Commit(); + + t1.uniqueResourceTest = t2; + t1.Commit(); + + var tt1 = model.GetResource(testRes1); + Assert.AreEqual(t2, tt1.uniqueResourceTest); + + IResource tr1 = model.GetResource(testRes1); + Assert.AreEqual(typeof(MappingTestClass), tr1.GetType()); + + model.Clear(); + _store.RemoveModel(model); + } + + [Test] + public void MappingTypeTest() + { + IModel m = GetModel(); + m.Clear(); + Uri t1Uri = new Uri("semio:test:testInstance1"); + MappingTestClass2 t1 = m.CreateResource(t1Uri); + //Assert.AreEqual(1, t1.Classes.Count); + t1.uniqueStringTest = "testing 1"; + t1.Commit(); + + Uri t2Uri = new Uri("semio:test:testInstance2"); + MappingTestClass3 t2 = m.CreateResource(t2Uri); + t2.uniqueStringTest = "testing 2"; + t2.Commit(); + + Uri t3Uri = new Uri("semio:test:testInstance3"); + MappingTestClass4 t3 = m.CreateResource(t3Uri); + t3.uniqueStringTest = "testing 3"; + t3.Commit(); + + Resource r1 = m.GetResource(t1Uri); + Assert.AreEqual(t1, r1); + + Resource r2 = m.GetResource(t2Uri); + Assert.AreEqual(t2, r2); + + Resource r3 = m.GetResource(t3Uri); + Assert.AreEqual(t3, r3); + + } + + [Test] + public void MultipeTypesMappingTest() + { + IModel m = GetModel(); + m.Clear(); + + Uri t3Uri = new Uri("semio:test:testInstance3"); + MappingTestClass5 t3 = m.CreateResource(t3Uri); + t3.uniqueStringTest = "testing 3"; + t3.AddProperty(rdf.type, nco.Affiliation); + t3.Commit(); + + Resource r3 = m.GetResource(t3Uri); + Type tr3 = r3.GetType(); + Type tt3 = typeof(MappingTestClass5); + Assert.AreEqual(typeof(MappingTestClass5), r3.GetType()); + + m.Clear(); + t3 = m.CreateResource(t3Uri); + t3.uniqueStringTest = "testing 3"; + t3.AddProperty(rdf.type, nco.Contact); + t3.Commit(); + + r3 = m.GetResource(t3Uri); + Assert.AreEqual(typeof(MappingTestClass5), r3.GetType()); + + r3 = m.GetResource(t3Uri); + Assert.AreEqual(typeof(Contact), r3.GetType()); + } + + [Test] + public void MappingTypeWithInferencingTest() + { + IModel model = GetModel(); + + // Load the rulesets for inferencing. + _store.InitializeFromConfiguration(); + + model.Clear(); + + PersonContact r = model.CreateResource(new Uri("ex:t3")); + r.NameGiven = "Hans"; + r.Commit(); + + SparqlQuery query = new SparqlQuery("SELECT ?s ?p ?o WHERE { ?s ?p ?o . ?s a @type .}"); + query.Bind("@type", nco.Contact); + + Assert.AreEqual(1, model.ExecuteQuery(query, true).GetResources().Count()); + } + + IModel GetModel() + { + _store = StoreFactory.CreateStore(string.Format("{0};rule=urn:semiodesk/test/ruleset", SetupClass.ConnectionString)); + + return _store.GetModel(new Uri("http://example.org/TestModel")); + } + + [Test] + public void RollbackTest() + { + IModel model = GetModel(); + model.Clear(); + + Uri t1Uri = new Uri("semio:test:testInstance1"); + MappingTestClass t1 = model.CreateResource(t1Uri); + + // Add value using the mapping interface + string strValue = "Hallo Welt!"; + t1.uniqueStringTest = strValue; + t1.Commit(); + + t1.uniqueStringTest = "HelloWorld!"; + + t1.Rollback(); + + Assert.AreEqual(strValue, t1.uniqueStringTest); + + MappingTestClass newRef = model.GetResource(t1Uri); + newRef.stringTest.Add("Hi"); + newRef.stringTest.Add("Blub"); + newRef.Commit(); + + t1.Rollback(); + + + Assert.AreEqual(2, t1.stringTest.Count); + Assert.IsTrue(t1.stringTest.Contains("Hi")); + Assert.IsTrue(t1.stringTest.Contains("Blub")); + + + Uri t2Uri = new Uri("semio:test:testInstance2"); + MappingTestClass2 p = model.CreateResource(t2Uri); + p.uniqueStringTest = "blub"; + p.Commit(); + + newRef = model.GetResource(t1Uri); + newRef.resourceTest.Add(p); + newRef.Commit(); + + t1.Rollback(); + + + Assert.IsTrue(t1.resourceTest.Count == 1); + Assert.IsTrue(t1.resourceTest.Contains(p)); + } + + [Test] + public void RollbackMappedResourcesTest() + { + IModel m = GetModel(); + m.Clear(); + Uri t1Uri = new Uri("semio:test:testInstance1"); + SingleResourceMappingTestClass t1 = m.CreateResource(t1Uri); + t1.Commit(); + + Uri t2Uri = new Uri("semio:test:testInstance2"); + SingleMappingTestClass p = m.CreateResource(t2Uri); + p.stringTest.Add("blub"); + p.Commit(); + + var newRef = m.GetResource(t1Uri); + newRef.ResourceTest.Add(p); + newRef.Commit(); + + t1.Rollback(); + + Assert.IsTrue(t1.ResourceTest.Count == 1); + Assert.IsTrue(t1.ResourceTest.Contains(p)); + } + + [Test] + public void ListValuesTest() + { + IModel m = GetModel(); + m.Clear(); + Uri t1Uri = new Uri("semio:test:testInstance1"); + MappingTestClass t1 = m.CreateResource(t1Uri); + + + // Add value using the mapping interface + string strValue = "Hallo Welt!"; + t1.uniqueStringTest = strValue; + t1.Commit(); + + t1.stringTest.Add("Hi"); + t1.stringTest.Add("Blub"); + t1.Commit(); + + var x = t1.ListValues(TestOntology.stringTest).ToList(); + + MappingTestClass actual = m.GetResource(t1.Uri); + var x2 = actual.ListValues(TestOntology.stringTest).ToList().ToList(); + + Assert.AreEqual(x.Count, x2.Count); + Assert.IsTrue(x2.Contains(x[0])); + Assert.IsTrue(x2.Contains(x[1])); + } + + [Test] + public void KeepListsAfterRollbackTest() + { + IModel m = GetModel(); + m.Clear(); + Uri t1Uri = new Uri("semio:test:testInstance8"); + SingleMappingTestClass t1 = m.CreateResource(t1Uri); + t1.AddProperty(TestOntology.uniqueStringTest, "Hello"); + t1.Commit(); + t1.Rollback(); + + t1.stringTest.Add("Hi"); + t1.stringTest.Add("Blub"); + var x = t1.ListValues(TestOntology.stringTest).ToList(); + Assert.AreEqual(2, x.Count); + t1.Commit(); + + SingleMappingTestClass t2 = m.GetResource(t1Uri); + + var x2 = t2.ListValues(TestOntology.stringTest).ToList(); + + Assert.AreEqual(x.Count, x2.Count); + Assert.IsTrue(x2.Contains(x[0])); + Assert.IsTrue(x2.Contains(x[1])); + + } + + [Test] + public void TestEquality() + { + Resource c1 = new Resource(new Uri("http://www.semanticdesktop.org/ontologies/2007/04/02/ncal#cancelledStatus")); + Resource c2 = new Resource(new Uri("http://www.semanticdesktop.org/ontologies/2007/04/02/ncal#cancelledStatus")); + + Assert.IsTrue(c1.Equals(c2)); + Assert.IsFalse(c1 == c2); + } + + [Test] + public void TestStringPropertyMapping() + { + StringMappingTestClass p = new StringMappingTestClass(new Uri("http://test.example.com")); + p.uniqueStringTest = "Test string"; + + var x = p.GetValue(TestOntology.uniqueStringTest); + Assert.AreEqual(p.uniqueStringTest, x); + + p.RandomProperty = "Test string 2"; + + x = p.GetValue(new Property(new Uri("http://www.example.com/property"))); + Assert.AreEqual(p.RandomProperty, x); + } + + [Test] + public void TestLocalizedStringPropertyMapping() + { + IModel m = GetModel(); + m.Clear(); + var resUri = new Uri("http://test.example.com"); + StringMappingTestClass p = m.CreateResource(resUri); + + string germanText = "Hallo Welt"; + string englishText = "Hello World"; + p.AddProperty(TestOntology.uniqueStringTest, germanText, "DE"); + p.AddProperty(TestOntology.uniqueStringTest, englishText, "EN"); + Assert.AreEqual(null, p.uniqueStringTest); + p.Language = "DE"; + Assert.AreEqual(germanText, p.uniqueStringTest); + var x = p.ListValues(TestOntology.uniqueStringTest); + p.Language = "EN"; + Assert.AreEqual(englishText, p.uniqueStringTest); + + p.Language = null; + Assert.AreEqual(null, p.uniqueStringTest); + + } + + [Test] + public void TestLocalizedStringInvariancy() + { + IModel m = GetModel(); + m.Clear(); + Uri peterUri = new Uri("http://test.example.com/peter"); + PersonContact contact = m.CreateResource(peterUri); + contact.NameGiven = "Peter"; + contact.Language = "DE"; + Assert.AreEqual("Peter", contact.NameGiven); + } + + + [Test] + public void TestLocalizedStringListPropertyMapping() + { + IModel m = GetModel(); + m.Clear(); + var resUri = new Uri("http://test.example.com"); + StringMappingTestClass p = m.CreateResource(resUri); + + string germanText = "Hallo Welt"; + string englishText = "Hello World"; + p.AddProperty(TestOntology.stringTest, germanText+1, "DE"); + p.AddProperty(TestOntology.stringTest, germanText+2, "de"); + p.AddProperty(TestOntology.stringTest, germanText+3, "DE"); + p.AddProperty(TestOntology.stringTest, englishText+1, "EN"); + p.AddProperty(TestOntology.stringTest, englishText+2, "EN"); + p.AddProperty(TestOntology.stringTest, englishText+3, "EN"); + p.AddProperty(TestOntology.stringTest, englishText+4, "EN"); + Assert.AreEqual(0, p.stringListTest.Count); + var x = p.ListValues(TestOntology.stringTest); + Assert.AreEqual(7, x.Count()); + p.AddProperty(TestOntology.stringTest, "Hello interanational World"+1); + p.AddProperty(TestOntology.stringTest, "Hello interanational World"+2); + Assert.AreEqual(2, p.stringListTest.Count); + Assert.AreEqual(9, p.ListValues(TestOntology.stringTest).Count()); + p.Language = "DE"; + Assert.AreEqual(3, p.stringListTest.Count); + Assert.AreEqual(9, p.ListValues(TestOntology.stringTest).Count()); + p.Language = "EN"; + Assert.AreEqual(4, p.stringListTest.Count); + Assert.AreEqual(9, p.ListValues(TestOntology.stringTest).Count()); + p.RemoveProperty(TestOntology.stringTest, germanText + 1, "DE"); + Assert.AreEqual(8, p.ListValues(TestOntology.stringTest).Count()); + + p.RemoveProperty(TestOntology.stringTest, englishText + 1, "en"); + Assert.AreEqual(8, p.ListValues(TestOntology.stringTest).Count()); + + p.RemoveProperty(TestOntology.stringTest, "Hello interanational World" + 1); + } + + [Test] + public void TestLocalizedStringListPropertyMapping2() + { + IModel m = GetModel(); + m.Clear(); + var resUri = new Uri("http://test.example.com"); + StringMappingTestClass p = m.CreateResource(resUri); + + p.stringListTest.Add("Hello interanational World" + 1); + p.stringListTest.Add("Hello interanational World" + 2); + string germanText = "Hallo Welt"; + string englishText = "Hello World"; + p.Language = "DE"; + p.stringListTest.Add(germanText + 1); + p.stringListTest.Add(germanText + 2); + p.stringListTest.Add(germanText + 3); + Assert.AreEqual(3, p.stringListTest.Count); + Assert.AreEqual(5, p.ListValues(TestOntology.stringTest).Count()); + + p.Language = "EN"; + p.stringListTest.Add(englishText + 1); + p.stringListTest.Add(englishText + 2); + p.stringListTest.Add(englishText + 3); + p.stringListTest.Add(englishText + 4); + Assert.AreEqual(4, p.stringListTest.Count); + Assert.AreEqual(9, p.ListValues(TestOntology.stringTest).Count()); + + p.Language = null; + Assert.AreEqual(2, p.stringListTest.Count); + Assert.AreEqual(9, p.ListValues(TestOntology.stringTest).Count()); + } + + [Test] + public void TestJsonSerialization() + { + IModel model = GetModel(); + model.Clear(); + + JsonMappingTestClass expected = model.CreateResource(); + expected.stringTest.Add("Hello World!"); + expected.stringTest.Add("Hallo Welt!"); + expected.Commit(); + + string json = JsonConvert.SerializeObject(expected); + + JsonResourceSerializerSettings settings = new JsonResourceSerializerSettings(_store); + + JsonMappingTestClass actual = JsonConvert.DeserializeObject(json, settings); + + Assert.AreEqual(expected.Uri, actual.Uri); + Assert.AreEqual(expected.Model.Uri, actual.Model.Uri); + Assert.AreEqual(2, actual.stringTest.Count); + } + } +} diff --git a/tests/Trinity.Tests.Virtuoso/SetupClass.cs b/tests/Trinity.Tests.Virtuoso/SetupClass.cs new file mode 100644 index 0000000..91721b2 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/SetupClass.cs @@ -0,0 +1,55 @@ +using Semiodesk.TinyVirtuoso; +using Semiodesk.Trinity.Store.Virtuoso; +using System.Reflection; +using System.IO; +using NUnit.Framework; + +namespace Semiodesk.Trinity.Test.Virtuoso +{ + + public class SetupClass + { + #region Members + public static string ConnectionString; + + public static string HostAndPort; + + #endregion + + #region Methods + + [OneTimeSetUp] + public void Setup() + { + Directory.SetCurrentDirectory(TestContext.CurrentContext.TestDirectory); + + StoreFactory.LoadProvider(Assembly.GetAssembly(typeof(VirtuosoStoreProvider))); + OntologyDiscovery.AddAssembly(Assembly.GetExecutingAssembly()); + MappingDiscovery.RegisterAssembly(Assembly.GetExecutingAssembly()); + OntologyDiscovery.AddAssembly(typeof(AbstractMappingClass).Assembly); + MappingDiscovery.RegisterAssembly(typeof(AbstractMappingClass).Assembly); + + FileInfo location = new FileInfo(Assembly.GetExecutingAssembly().Location); + DirectoryInfo folder = new DirectoryInfo(Path.Combine(location.DirectoryName, "nunit")); + + if (folder.Exists) + { + folder.Delete(true); + } + + folder.Create(); + + + ConnectionString = "provider=virtuoso;host=127.0.0.1;port=1111;uid=dba;pw=dba"; + HostAndPort = "localhost:1111"; + } + + [OneTimeTearDown] + public void TearDown() + { + + } + + #endregion + } +} diff --git a/Trinity.Tests/SparqlQueryItemsProviderTest.cs b/tests/Trinity.Tests.Virtuoso/SparqlQueryItemsProviderTest.cs similarity index 96% rename from Trinity.Tests/SparqlQueryItemsProviderTest.cs rename to tests/Trinity.Tests.Virtuoso/SparqlQueryItemsProviderTest.cs index f978b41..7e2eba6 100644 --- a/Trinity.Tests/SparqlQueryItemsProviderTest.cs +++ b/tests/Trinity.Tests.Virtuoso/SparqlQueryItemsProviderTest.cs @@ -1,114 +1,114 @@ -// LICENSE: -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. -// -// AUTHORS: -// -// Moritz Eberl -// Sebastian Faubel -// -// Copyright (c) Semiodesk GmbH 2015-2019 - -using System; -using System.Linq; -using NUnit.Framework; -using Semiodesk.Trinity.Ontologies; - -namespace Semiodesk.Trinity.Test -{ - [TestFixture] - class SparqlQueryItemsProviderTest - { - protected IStore Store; - - protected IModel Model; - - [SetUp] - public void SetUp() - { - string connectionString = SetupClass.ConnectionString; - - Store = StoreFactory.CreateStore(string.Format("{0};rule=urn:semiodesk/test/ruleset", connectionString)); - Model = Store.GetModel(new Uri("http://example.org/TestModel")); - - if (!Model.IsEmpty) - { - Model.Clear(); - } - - OntologyDiscovery.AddNamespace("ex", new Uri("http://example.org/")); - OntologyDiscovery.AddNamespace("dc", new Uri("http://purl.org/dc/elements/1.1/")); - OntologyDiscovery.AddNamespace("vcard", new Uri("http://www.w3.org/2001/vcard-rdf/3.0#")); - OntologyDiscovery.AddNamespace("foaf", new Uri("http://xmlns.com/foaf/0.1/")); - OntologyDiscovery.AddNamespace("dbpedia", new Uri("http://dbpedia.org/ontology/")); - OntologyDiscovery.AddNamespace("dbpprop", new Uri("http://dbpedia.org/property/")); - OntologyDiscovery.AddNamespace("schema", new Uri("http://schema.org/")); - OntologyDiscovery.AddNamespace("nie", new Uri("http://www.semanticdesktop.org/ontologies/2007/01/19/nie#")); - OntologyDiscovery.AddNamespace("nco", new Uri("http://www.semanticdesktop.org/ontologies/2007/03/22/nco#")); - OntologyDiscovery.AddNamespace("sfo", sfo.GetNamespace()); - OntologyDiscovery.AddNamespace(nfo.GetPrefix(), nfo.GetNamespace()); - - Model.Clear(); - - for (int i = 0; i < 100; i++) - { - - IResource resource0 = Model.CreateResource(); - resource0.AddProperty(rdf.type, nco.PersonContact); - resource0.AddProperty(nco.fullname, Guid.NewGuid().ToString()); - resource0.Commit(); - } - - } - - [TearDown] - public void TearDown() - { - Model.Clear(); - Store.Dispose(); - } - - [Test] - public void TestCount() - { - SparqlQuery q = new SparqlQuery("select ?s ?p ?o where { ?s ?p ?o. ?s a nco:PersonContact. }"); - SparqlQueryItemsProvider p = new SparqlQueryItemsProvider(Model, q, false); - - Assert.AreEqual(100, p.Count()); - - q = new SparqlQuery("select ?s ?p ?o where { ?s ?p ?o. ?s a nco:Contact. }"); - p = new SparqlQueryItemsProvider(Model, q, false); - - Assert.AreEqual(0, p.Count()); - } - - [Test] - public void TestGetItems() - { - SparqlQuery q = new SparqlQuery("select ?s ?p ?o where { ?s rdf:type nco:PersonContact. ?s ?p ?o. }"); - SparqlQueryItemsProvider p = new SparqlQueryItemsProvider(Model, q, false); - - Assert.AreEqual(10, p.GetItems(0, 10).Count()); - - q = new SparqlQuery("select ?s ?p ?o where { ?s rdf:type nco:Contact. ?s ?p ?o. }"); - p = new SparqlQueryItemsProvider(Model, q, false); - Assert.AreEqual(0, p.GetItems(0, 10).Count()); - } - } -} +// LICENSE: +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// +// AUTHORS: +// +// Moritz Eberl +// Sebastian Faubel +// +// Copyright (c) Semiodesk GmbH 2015-2019 + +using System; +using System.Linq; +using NUnit.Framework; +using Semiodesk.Trinity.Ontologies; + +namespace Semiodesk.Trinity.Test.Virtuoso +{ + [TestFixture] + class SparqlQueryItemsProviderTest : SetupClass + { + protected IStore Store; + + protected IModel Model; + + [SetUp] + public void SetUp() + { + string connectionString = SetupClass.ConnectionString; + + Store = StoreFactory.CreateStore(string.Format("{0};rule=urn:semiodesk/test/ruleset", connectionString)); + Model = Store.GetModel(new Uri("http://example.org/TestModel")); + + if (!Model.IsEmpty) + { + Model.Clear(); + } + + OntologyDiscovery.AddNamespace("ex", new Uri("http://example.org/")); + OntologyDiscovery.AddNamespace("dc", new Uri("http://purl.org/dc/elements/1.1/")); + OntologyDiscovery.AddNamespace("vcard", new Uri("http://www.w3.org/2001/vcard-rdf/3.0#")); + OntologyDiscovery.AddNamespace("foaf", new Uri("http://xmlns.com/foaf/0.1/")); + OntologyDiscovery.AddNamespace("dbpedia", new Uri("http://dbpedia.org/ontology/")); + OntologyDiscovery.AddNamespace("dbpprop", new Uri("http://dbpedia.org/property/")); + OntologyDiscovery.AddNamespace("schema", new Uri("http://schema.org/")); + OntologyDiscovery.AddNamespace("nie", new Uri("http://www.semanticdesktop.org/ontologies/2007/01/19/nie#")); + OntologyDiscovery.AddNamespace("nco", new Uri("http://www.semanticdesktop.org/ontologies/2007/03/22/nco#")); + OntologyDiscovery.AddNamespace("sfo", sfo.GetNamespace()); + OntologyDiscovery.AddNamespace(nfo.GetPrefix(), nfo.GetNamespace()); + + Model.Clear(); + + for (int i = 0; i < 100; i++) + { + + IResource resource0 = Model.CreateResource(); + resource0.AddProperty(rdf.type, nco.PersonContact); + resource0.AddProperty(nco.fullname, Guid.NewGuid().ToString()); + resource0.Commit(); + } + + } + + [TearDown] + public void TearDown() + { + Model.Clear(); + Store.Dispose(); + } + + [Test] + public void TestCount() + { + SparqlQuery q = new SparqlQuery("select ?s ?p ?o where { ?s ?p ?o. ?s a nco:PersonContact. }"); + SparqlQueryItemsProvider p = new SparqlQueryItemsProvider(Model, q, false); + + Assert.AreEqual(100, p.Count()); + + q = new SparqlQuery("select ?s ?p ?o where { ?s ?p ?o. ?s a nco:Contact. }"); + p = new SparqlQueryItemsProvider(Model, q, false); + + Assert.AreEqual(0, p.Count()); + } + + [Test] + public void TestGetItems() + { + SparqlQuery q = new SparqlQuery("select ?s ?p ?o where { ?s rdf:type nco:PersonContact. ?s ?p ?o. }"); + SparqlQueryItemsProvider p = new SparqlQueryItemsProvider(Model, q, false); + + Assert.AreEqual(10, p.GetItems(0, 10).Count()); + + q = new SparqlQuery("select ?s ?p ?o where { ?s rdf:type nco:Contact. ?s ?p ?o. }"); + p = new SparqlQueryItemsProvider(Model, q, false); + Assert.AreEqual(0, p.GetItems(0, 10).Count()); + } + } +} diff --git a/Trinity.Tests/SparqlQueryTest.cs b/tests/Trinity.Tests.Virtuoso/SparqlQueryTest.cs similarity index 97% rename from Trinity.Tests/SparqlQueryTest.cs rename to tests/Trinity.Tests.Virtuoso/SparqlQueryTest.cs index 0627c3c..d007394 100644 --- a/Trinity.Tests/SparqlQueryTest.cs +++ b/tests/Trinity.Tests.Virtuoso/SparqlQueryTest.cs @@ -1,535 +1,535 @@ -// LICENSE: -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. -// -// AUTHORS: -// -// Moritz Eberl -// Sebastian Faubel -// -// Copyright (c) Semiodesk GmbH 2015-2019 - -using NUnit.Framework; -using Semiodesk.Trinity.Ontologies; -using System; -using System.Collections; -using System.Collections.Generic; -using System.Linq; -using System.Reflection; -using System.Text.RegularExpressions; - -namespace Semiodesk.Trinity.Test -{ - [TestFixture] - public class SparqlQueryTest - { - protected IStore Store; - - protected IModel Model; - - [SetUp] - public void SetUp() - { - OntologyDiscovery.AddNamespace("ex", new Uri("http://example.org/")); - OntologyDiscovery.AddNamespace("dc", new Uri("http://purl.org/dc/elements/1.1/")); - OntologyDiscovery.AddNamespace("vcard", new Uri("http://www.w3.org/2001/vcard-rdf/3.0#")); - OntologyDiscovery.AddNamespace("foaf", new Uri("http://xmlns.com/foaf/0.1/")); - OntologyDiscovery.AddNamespace("dbpedia", new Uri("http://dbpedia.org/ontology/")); - OntologyDiscovery.AddNamespace("dbpprop", new Uri("http://dbpedia.org/property/")); - OntologyDiscovery.AddNamespace("schema", new Uri("http://schema.org/")); - OntologyDiscovery.AddNamespace("nie", new Uri("http://www.semanticdesktop.org/ontologies/2007/01/19/nie#")); - OntologyDiscovery.AddNamespace("nco", new Uri("http://www.semanticdesktop.org/ontologies/2007/03/22/nco#")); - OntologyDiscovery.AddNamespace("sfo", sfo.GetNamespace()); - OntologyDiscovery.AddNamespace(nfo.GetPrefix(), nfo.GetNamespace()); - - Store = StoreFactory.CreateStore(string.Format("{0};rule=urn:semiodesk/test/ruleset", SetupClass.ConnectionString)); - Store.InitializeFromConfiguration(); - - Model = Store.GetModel(new Uri("http://example.org/TestModel")); - Model.Clear(); - - IResource hans = Model.CreateResource(new Uri("http://example.org/Hans")); - hans.AddProperty(rdf.type, nco.PersonContact); - hans.AddProperty(nco.fullname, "Hans Wurscht"); - hans.AddProperty(nco.birthDate, DateTime.Now); - hans.AddProperty(nco.blogUrl, "http://blog.com/Hans"); - - IResource pagerNumber0 = Model.CreateResource(new Uri("http://example.org/Hans/pagerNumber#0")); - pagerNumber0.AddProperty(rdf.type, nco.PagerNumber); - pagerNumber0.AddProperty(dc.date, DateTime.Today); - pagerNumber0.AddProperty(nco.creator, hans); - pagerNumber0.Commit(); - - IResource phoneNumber0 = Model.CreateResource(new Uri("http://example.org/Hans/phoneNumber#0")); - phoneNumber0.AddProperty(rdf.type, nco.PhoneNumber); - phoneNumber0.AddProperty(dc.date, DateTime.Today.AddDays(1)); - phoneNumber0.AddProperty(nco.creator, hans); - phoneNumber0.Commit(); - - IResource phoneNumber1 = Model.CreateResource(new Uri("http://example.org/Hans/phoneNumber#1")); - phoneNumber1.AddProperty(rdf.type, nco.PhoneNumber); - phoneNumber1.AddProperty(dc.date, DateTime.Today.AddDays(2)); - phoneNumber1.AddProperty(nco.creator, hans); - phoneNumber1.Commit(); - - hans.AddProperty(nco.hasContactMedium, pagerNumber0); - hans.AddProperty(nco.hasPhoneNumber, phoneNumber0); - hans.AddProperty(nco.hasPhoneNumber, phoneNumber1); - hans.Commit(); - - IResource acme = Model.CreateResource(new Uri("http://example.org/ACME")); - acme.AddProperty(rdf.type, nco.OrganizationContact); - acme.AddProperty(nco.fullname, "ACME"); - acme.AddProperty(nco.creator, hans); - acme.Commit(); - } - - [TearDown] - public void TearDown() - { - if (Store != null) - { - Store.Dispose(); - } - } - - [Test] - public void TestAsk() - { - // Checking the model using ASK queries. - SparqlQuery query = new SparqlQuery("ASK WHERE { ?s nco:fullname 'Hans Wurscht' . }"); - ISparqlQueryResult result = Model.ExecuteQuery(query); - - Assert.AreEqual(true, result.GetAnwser()); - - query = new SparqlQuery("ASK WHERE { ?s nco:fullname 'Hans Meier' . }"); - result = Model.ExecuteQuery(query); - - Assert.AreEqual(false, result.GetAnwser()); - } - - [Test] - public void TestSelect() - { - // Retrieving bound variables using the SELECT query form. - SparqlQuery query = new SparqlQuery("SELECT ?name ?birthday WHERE { ?x nco:fullname ?name. ?x nco:birthDate ?birthday. }"); - ISparqlQueryResult result = Model.ExecuteQuery(query); - - Assert.AreEqual(1, result.GetBindings().Count()); - - // Retrieving resoures using the SELECT or DESCRIBE query form. - query = new SparqlQuery("SELECT ?s ?p ?o WHERE { ?s ?p ?o. ?s nco:fullname 'Hans Wurscht'. }"); - result = Model.ExecuteQuery(query); - - Assert.AreEqual(1, result.GetResources().Count()); - - // Test SELECT with custom defined PREFIXes - query = new SparqlQuery("PREFIX nco: SELECT ?s ?p ?o WHERE { ?s ?p ?o. ?s nco:fullname 'Hans Wurscht'. }"); - result = Model.ExecuteQuery(query); - - Assert.AreEqual(1, result.GetResources().Count()); - - // Check if the select statement only works on the given model. - query = new SparqlQuery("SELECT * WHERE { ?s ?p ?o. }"); - result = Model.ExecuteQuery(query); - - Assert.AreEqual(5, result.GetResources().Count()); - - // Check that resource creation is done correctly for Resources containing dashes. - IResource r0 = Model.CreateResource(new Uri("http://example.org/Something#0")); - r0.AddProperty(new Property(new Uri("http://example.org/fullName")), "Something"); - r0.Commit(); - - IResource r1 = Model.CreateResource(new Uri("http://example.org/Something#1")); - r1.AddProperty(new Property(new Uri("http://example.org/fullName")), "Anotherthing"); - r1.Commit(); - - query = new SparqlQuery("SELECT * WHERE { ?s ?p ?o. }"); - result = Model.ExecuteQuery(query); - - Assert.AreEqual(7, result.GetResources().Count()); - } - - [Test] - public void TestSelectProvidesStatements() - { - SparqlQuery query = new SparqlQuery("SELECT ?s ?p ?o WHERE { ?s ?p ?o . }"); - - string[] vars = query.GetGlobalScopeVariableNames(); - - Assert.IsTrue(query.ProvidesStatements()); - Assert.AreEqual("s", vars[0]); - Assert.AreEqual("p", vars[1]); - Assert.AreEqual("o", vars[2]); - - query = new SparqlQuery("SELECT * WHERE { ?s ?p ?o . }"); - - vars = query.GetGlobalScopeVariableNames(); - - Assert.IsTrue(query.ProvidesStatements()); - Assert.AreEqual("s", vars[0]); - Assert.AreEqual("p", vars[1]); - Assert.AreEqual("o", vars[2]); - - query = new SparqlQuery("SELECT ?s ?p ?o WHERE { ?s ?p ?o . ?x ?y ?z . }"); - - vars = query.GetGlobalScopeVariableNames(); - - Assert.IsTrue(query.ProvidesStatements()); - Assert.AreEqual("s", vars[0]); - Assert.AreEqual("p", vars[1]); - Assert.AreEqual("o", vars[2]); - - query = new SparqlQuery("SELECT * WHERE { ?s ?p ?o . ?x ?y ?z . }"); - - vars = query.GetGlobalScopeVariableNames(); - - Assert.IsFalse(query.ProvidesStatements()); - Assert.AreEqual(6, vars.Length); - - query = new SparqlQuery(@" - PREFIX nie: - PREFIX artpro: - - SELECT ?s ?p ?o WHERE - { - ?s ?p ?o . - ?s a artpro:Project . - ?s nie:lastModified ?lastModified . - - FILTER isIRI(?s) - } - ORDER BY DESC(?lastModified)"); - - vars = query.GetGlobalScopeVariableNames(); - - Assert.IsTrue(query.ProvidesStatements()); - Assert.AreEqual("s", vars[0]); - Assert.AreEqual("p", vars[1]); - Assert.AreEqual("o", vars[2]); - } - - [Test] - public void TestDescribe() - { - SparqlQuery query = new SparqlQuery("DESCRIBE "); - ISparqlQueryResult result = Model.ExecuteQuery(query); - - IList resources = result.GetResources().ToList(); - Assert.AreEqual(1, resources.Count); - - query = new SparqlQuery("DESCRIBE ?s WHERE { ?s nco:fullname 'Hans Wurscht'. }"); - result = Model.ExecuteQuery(query); - - resources = result.GetResources().ToList(); - Assert.AreEqual(1, resources.Count); - - foreach (Contact c in resources) - { - Assert.AreEqual(c.GetType(), typeof(PersonContact)); - } - } - - [Test] - public void TestConstruct() - { - SparqlQuery query = new SparqlQuery(@" - CONSTRUCT - { - ?x nco:fullname ?name . - ?x vcard:N _:v . - _:v vcard:givenName ?name . - } - WHERE - { - ?x nco:fullname ?name . - }"); - - List resources = Model.GetResources(query).ToList(); - - // We expect 4 resources: 2 VCARD blank nodes and the original 2 NCO contacts. - Assert.AreEqual(4, resources.Count); - Assert.AreEqual(2, resources.Count(r => r.HasProperty(nco.fullname))); - Assert.AreEqual(2, resources.Count(r => r.HasProperty(vcard.N))); - Assert.AreEqual(2, resources.Count(r => r.HasProperty(vcard.givenName))); - } - - [Test] - public void TestInferencing() - { - // Retrieving resources using the model API. - Assert.IsTrue(Model.ContainsResource(new Uri("http://example.org/Hans"))); - Assert.IsTrue(Model.ContainsResource(new Uri("http://example.org/ACME"))); - - SparqlQuery query; - ISparqlQueryResult result; - - // This fact is not explicitly stated. - query = new SparqlQuery("ASK WHERE { a nco:Role . }"); - - result = Model.ExecuteQuery(query); - Assert.IsFalse(result.GetAnwser()); - - result = Model.ExecuteQuery(query, true); - Assert.IsTrue(result.GetAnwser()); - - // This fact is not explicitly stated. - query = new SparqlQuery("SELECT ?url WHERE { ?x nco:url ?url . }"); - - result = Model.ExecuteQuery(query); - Assert.AreEqual(0, result.GetBindings().Count()); - - result = Model.ExecuteQuery(query, true); - Assert.AreEqual(1, result.GetBindings().Count()); - - query = new SparqlQuery("ASK WHERE { nco:hasContactMedium . }"); - - result = Model.ExecuteQuery(query); - Assert.IsFalse(result.GetAnwser()); - - result = Model.ExecuteQuery(query, true); - Assert.IsTrue(result.GetAnwser()); - - query = new SparqlQuery("DESCRIBE ?element WHERE { ?element nco:hasContactMedium . }"); - - result = Model.ExecuteQuery(query); - Assert.AreEqual(0, result.GetResources().Count()); - - result = Model.ExecuteQuery(query, true); - Assert.AreEqual(1, result.GetResources().Count()); - - // The original test failed because Virtuoso ORDER BY on DATETIME values fails with DESCRIBE query forms. - // See: https://github.com/openlink/virtuoso-opensource/issues/23 - query = new SparqlQuery("SELECT ?date WHERE { ?m rdf:type nco:ContactMedium ; nco:creator ; dc:date ?date . } ORDER BY ASC(?date)"); - result = Model.ExecuteQuery(query, true); - - List bindings = result.GetBindings().ToList(); - - Assert.AreEqual(3, bindings.Count); - - DateTime? d0 = null; - DateTime? d1 = null; - - foreach (BindingSet b in bindings) - { - d1 = (DateTime)b["date"]; - - if (d0 != null) - { - Assert.Greater(d1, d0); - } - - d0 = d1; - } - } - - [Test] - public void TestModelApi() - { - // Retrieving resources using the model API. - Assert.AreEqual(true, Model.ContainsResource(new Uri("http://example.org/Hans"))); - Assert.AreEqual(false, Model.ContainsResource(new Uri("http://example.org/Peter"))); - - IResource hans = Model.GetResource(new Uri("http://example.org/Hans")); - Assert.Throws(delegate { Model.GetResource(new Uri("http://example.org/Peter")); }); - - hans = Model.GetResource(new Uri("http://example.org/Hans"), typeof(Resource)) as IResource; - Assert.NotNull(hans); - } - - [Test] - public void TestEscaping() - { - SparqlQuery query = new SparqlQuery(@" - SELECT ?s ?p ?o WHERE - { - ?s ?p ""Hello World"" . - ?s ?p ""'Hello World'"" . - ?s ?p '''Hello - World''' . - ?s ?p 'C:\\Directory\\file.ext' . - }"); - - string queryString = query.ToString(); - - Assert.IsTrue(queryString.Contains('\n')); - Assert.IsTrue(queryString.Contains("\\\\")); - Assert.IsTrue(queryString.Contains("\\'")); - } - - [Test] - public void TestUriEscaping() - { - Uri uri = new Uri("file:///F:/test/02%20-%20Take%20Me%20Somewhere%20Nice.mp3"); - var x = Model.CreateResource(uri); - var nameProperty = new Property(new Uri("ex:name")); - x.AddProperty(nameProperty, "Name"); - x.Commit(); - - var result = Model.GetResource(uri); - Assert.AreEqual(x.Uri, result.Uri); - Assert.AreEqual(x, result); - } - - [Test] - public void TestQueryParameters() - { - SparqlQuery query = new SparqlQuery(@"SELECT ?s WHERE { ?s ?p ?o . ?s ?p @someValue . }"); - - query.Bind("@someValue", "Value"); - - string queryString = query.ToString(); - - Assert.IsFalse(string.IsNullOrEmpty(queryString)); - - query = new SparqlQuery(@"SELECT ?s WHERE { ?s ?p 'Hallo'@de . }"); - - queryString = query.ToString(); - - Assert.AreEqual(queryString, @"SELECT ?s WHERE { ?s ?p 'Hallo'@de . }"); - - query = new SparqlQuery(@"SELECT ?s WHERE { ?s ?p 'Hallo'@de-de . }"); - - queryString = query.ToString(); - - Assert.AreEqual(queryString, @"SELECT ?s WHERE { ?s ?p 'Hallo'@de-de . }"); - } - - [Test] - public void TestSelectCount() - { - SparqlQuery query = new SparqlQuery("SELECT COUNT(?s) AS ?count WHERE { ?s rdf:type nco:PhoneNumber. }"); - ISparqlQueryResult result = Model.ExecuteQuery(query); - - var bindings = result.GetBindings(); - Assert.AreEqual(1, bindings.Count()); - Assert.AreEqual(2, bindings.First()["count"]); - } - - [Test] - public void TestCount() - { - SparqlQuery query = new SparqlQuery("SELECT ?s ?p ?o WHERE { ?s ?p ?o. ?s rdf:type nco:PhoneNumber. }"); - ISparqlQueryResult result = Model.ExecuteQuery(query); - - Assert.AreEqual(2, result.Count()); - - query = new SparqlQuery("SELECT ?s ?p ?o WHERE { ?s ?p ?o. ?s rdf:type nco:PhoneNumber. }"); - result = Model.ExecuteQuery(query); - - Assert.AreEqual(2, result.Count()); - } - - [Test] - public void TestSetModel() - { - Regex expression = new Regex(Regex.Escape("FROM")); - - SparqlQuery query = new SparqlQuery("SELECT COUNT(?s) AS ?count WHERE { ?s ?p ?o . }"); - - Assert.IsNull(query.Model); - Assert.AreEqual(0, expression.Matches(query.ToString()).Count); - - query.Model = Model; - - Assert.NotNull(query.Model); - Assert.AreEqual(1, expression.Matches(query.ToString()).Count); - - SparqlQuery query2 = new SparqlQuery("ASK FROM WHERE { ?s ?p ?o . }"); - - Assert.IsNull(query2.Model); - Assert.AreEqual(1, expression.Matches(query2.ToString()).Count); - - query2.Model = Model; - - Assert.IsNotNull(query2.Model); - Assert.AreEqual(1, expression.Matches(query2.ToString()).Count); - - SparqlQuery query3 = new SparqlQuery("ASK FROM @graph WHERE { ?s ?p ?o . }"); - query3.Bind("@graph", Model); - - Assert.IsNull(query3.Model); - Assert.AreEqual(1, expression.Matches(query3.ToString()).Count); - - query3.Model = Model; - - Assert.IsNotNull(query3.Model); - Assert.AreEqual(1, expression.Matches(query3.ToString()).Count); - - SparqlQuery query4 = new SparqlQuery("ASK FROM @graph WHERE { ?s ?p ?o . }"); - query4.Model = Model; - - Assert.IsNotNull(query4.Model); - - Assert.Throws(delegate { query4.Bind("@graph", Model); }); - } - - [Test] - public void TestSetLimit() - { - SparqlQuery query = new SparqlQuery(@" - SELECT ?s0 ?p0 ?o0 WHERE - { - ?s0 ?p0 ?o0 . - { - SELECT DISTINCT ?s0 WHERE - { - ?s ?p ?o. - ?s @type @class . - - { - ?s ?p1 ?o1 . - FILTER ISLITERAL(?o1) . FILTER REGEX(STR(?o1), '', 'i') . - } - UNION - { - ?s ?p1 ?s1 . - ?s1 ?p2 ?o2 . - FILTER ISLITERAL(?o2) . FILTER REGEX(STR(?o2), '', 'i') . - } - } - ORDER BY ?o - } - }"); - - query.Bind("@type", rdf.type); - query.Bind("@class", tmo.Task); - - MethodInfo method = query.GetType().GetMethod("SetLimit", BindingFlags.NonPublic | BindingFlags.Instance); - method.Invoke(query, new object[] { 10 }); - - ISparqlQueryResult result = Model.ExecuteQuery(query); - - List resources = result.GetResources().ToList(); - } - - [Test] - public void TestModelGroup() - { - Uri modelUri1 = new Uri("http://example.org/TestModel1"); - Uri modelUri2 = new Uri("http://example.org/TestModel2"); - IModelGroup g = Store.CreateModelGroup(modelUri1, modelUri2); - var query = new SparqlQuery("PREFIX nco: SELECT ?s ?p ?o WHERE { ?s ?p ?o. ?s nco:fullname 'Hans Wurscht'. }"); - query.Model = g; - var x = query.ToString(); - - - } - } -} +// LICENSE: +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// +// AUTHORS: +// +// Moritz Eberl +// Sebastian Faubel +// +// Copyright (c) Semiodesk GmbH 2015-2019 + +using NUnit.Framework; +using Semiodesk.Trinity.Ontologies; +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Text.RegularExpressions; + +namespace Semiodesk.Trinity.Test.Virtuoso +{ + [TestFixture] + public class SparqlQueryTest : SetupClass + { + protected IStore Store; + + protected IModel Model; + + [SetUp] + public void SetUp() + { + OntologyDiscovery.AddNamespace("ex", new Uri("http://example.org/")); + OntologyDiscovery.AddNamespace("dc", new Uri("http://purl.org/dc/elements/1.1/")); + OntologyDiscovery.AddNamespace("vcard", new Uri("http://www.w3.org/2001/vcard-rdf/3.0#")); + OntologyDiscovery.AddNamespace("foaf", new Uri("http://xmlns.com/foaf/0.1/")); + OntologyDiscovery.AddNamespace("dbpedia", new Uri("http://dbpedia.org/ontology/")); + OntologyDiscovery.AddNamespace("dbpprop", new Uri("http://dbpedia.org/property/")); + OntologyDiscovery.AddNamespace("schema", new Uri("http://schema.org/")); + OntologyDiscovery.AddNamespace("nie", new Uri("http://www.semanticdesktop.org/ontologies/2007/01/19/nie#")); + OntologyDiscovery.AddNamespace("nco", new Uri("http://www.semanticdesktop.org/ontologies/2007/03/22/nco#")); + OntologyDiscovery.AddNamespace("sfo", sfo.GetNamespace()); + OntologyDiscovery.AddNamespace(nfo.GetPrefix(), nfo.GetNamespace()); + + Store = StoreFactory.CreateStore(string.Format("{0};rule=urn:semiodesk/test/ruleset", SetupClass.ConnectionString)); + Store.InitializeFromConfiguration(); + + Model = Store.GetModel(new Uri("http://example.org/TestModel")); + Model.Clear(); + + IResource hans = Model.CreateResource(new Uri("http://example.org/Hans")); + hans.AddProperty(rdf.type, nco.PersonContact); + hans.AddProperty(nco.fullname, "Hans Wurscht"); + hans.AddProperty(nco.birthDate, DateTime.Now); + hans.AddProperty(nco.blogUrl, "http://blog.com/Hans"); + + IResource pagerNumber0 = Model.CreateResource(new Uri("http://example.org/Hans/pagerNumber#0")); + pagerNumber0.AddProperty(rdf.type, nco.PagerNumber); + pagerNumber0.AddProperty(dc.date, DateTime.Today); + pagerNumber0.AddProperty(nco.creator, hans); + pagerNumber0.Commit(); + + IResource phoneNumber0 = Model.CreateResource(new Uri("http://example.org/Hans/phoneNumber#0")); + phoneNumber0.AddProperty(rdf.type, nco.PhoneNumber); + phoneNumber0.AddProperty(dc.date, DateTime.Today.AddDays(1)); + phoneNumber0.AddProperty(nco.creator, hans); + phoneNumber0.Commit(); + + IResource phoneNumber1 = Model.CreateResource(new Uri("http://example.org/Hans/phoneNumber#1")); + phoneNumber1.AddProperty(rdf.type, nco.PhoneNumber); + phoneNumber1.AddProperty(dc.date, DateTime.Today.AddDays(2)); + phoneNumber1.AddProperty(nco.creator, hans); + phoneNumber1.Commit(); + + hans.AddProperty(nco.hasContactMedium, pagerNumber0); + hans.AddProperty(nco.hasPhoneNumber, phoneNumber0); + hans.AddProperty(nco.hasPhoneNumber, phoneNumber1); + hans.Commit(); + + IResource acme = Model.CreateResource(new Uri("http://example.org/ACME")); + acme.AddProperty(rdf.type, nco.OrganizationContact); + acme.AddProperty(nco.fullname, "ACME"); + acme.AddProperty(nco.creator, hans); + acme.Commit(); + } + + [TearDown] + public void TearDown() + { + if (Store != null) + { + Store.Dispose(); + } + } + + [Test] + public void TestAsk() + { + // Checking the model using ASK queries. + SparqlQuery query = new SparqlQuery("ASK WHERE { ?s nco:fullname 'Hans Wurscht' . }"); + ISparqlQueryResult result = Model.ExecuteQuery(query); + + Assert.AreEqual(true, result.GetAnwser()); + + query = new SparqlQuery("ASK WHERE { ?s nco:fullname 'Hans Meier' . }"); + result = Model.ExecuteQuery(query); + + Assert.AreEqual(false, result.GetAnwser()); + } + + [Test] + public void TestSelect() + { + // Retrieving bound variables using the SELECT query form. + SparqlQuery query = new SparqlQuery("SELECT ?name ?birthday WHERE { ?x nco:fullname ?name. ?x nco:birthDate ?birthday. }"); + ISparqlQueryResult result = Model.ExecuteQuery(query); + + Assert.AreEqual(1, result.GetBindings().Count()); + + // Retrieving resoures using the SELECT or DESCRIBE query form. + query = new SparqlQuery("SELECT ?s ?p ?o WHERE { ?s ?p ?o. ?s nco:fullname 'Hans Wurscht'. }"); + result = Model.ExecuteQuery(query); + + Assert.AreEqual(1, result.GetResources().Count()); + + // Test SELECT with custom defined PREFIXes + query = new SparqlQuery("PREFIX nco: SELECT ?s ?p ?o WHERE { ?s ?p ?o. ?s nco:fullname 'Hans Wurscht'. }"); + result = Model.ExecuteQuery(query); + + Assert.AreEqual(1, result.GetResources().Count()); + + // Check if the select statement only works on the given model. + query = new SparqlQuery("SELECT * WHERE { ?s ?p ?o. }"); + result = Model.ExecuteQuery(query); + + Assert.AreEqual(5, result.GetResources().Count()); + + // Check that resource creation is done correctly for Resources containing dashes. + IResource r0 = Model.CreateResource(new Uri("http://example.org/Something#0")); + r0.AddProperty(new Property(new Uri("http://example.org/fullName")), "Something"); + r0.Commit(); + + IResource r1 = Model.CreateResource(new Uri("http://example.org/Something#1")); + r1.AddProperty(new Property(new Uri("http://example.org/fullName")), "Anotherthing"); + r1.Commit(); + + query = new SparqlQuery("SELECT * WHERE { ?s ?p ?o. }"); + result = Model.ExecuteQuery(query); + + Assert.AreEqual(7, result.GetResources().Count()); + } + + [Test] + public void TestSelectProvidesStatements() + { + SparqlQuery query = new SparqlQuery("SELECT ?s ?p ?o WHERE { ?s ?p ?o . }"); + + string[] vars = query.GetGlobalScopeVariableNames(); + + Assert.IsTrue(query.ProvidesStatements()); + Assert.AreEqual("s", vars[0]); + Assert.AreEqual("p", vars[1]); + Assert.AreEqual("o", vars[2]); + + query = new SparqlQuery("SELECT * WHERE { ?s ?p ?o . }"); + + vars = query.GetGlobalScopeVariableNames(); + + Assert.IsTrue(query.ProvidesStatements()); + Assert.AreEqual("s", vars[0]); + Assert.AreEqual("p", vars[1]); + Assert.AreEqual("o", vars[2]); + + query = new SparqlQuery("SELECT ?s ?p ?o WHERE { ?s ?p ?o . ?x ?y ?z . }"); + + vars = query.GetGlobalScopeVariableNames(); + + Assert.IsTrue(query.ProvidesStatements()); + Assert.AreEqual("s", vars[0]); + Assert.AreEqual("p", vars[1]); + Assert.AreEqual("o", vars[2]); + + query = new SparqlQuery("SELECT * WHERE { ?s ?p ?o . ?x ?y ?z . }"); + + vars = query.GetGlobalScopeVariableNames(); + + Assert.IsFalse(query.ProvidesStatements()); + Assert.AreEqual(6, vars.Length); + + query = new SparqlQuery(@" + PREFIX nie: + PREFIX artpro: + + SELECT ?s ?p ?o WHERE + { + ?s ?p ?o . + ?s a artpro:Project . + ?s nie:lastModified ?lastModified . + + FILTER isIRI(?s) + } + ORDER BY DESC(?lastModified)"); + + vars = query.GetGlobalScopeVariableNames(); + + Assert.IsTrue(query.ProvidesStatements()); + Assert.AreEqual("s", vars[0]); + Assert.AreEqual("p", vars[1]); + Assert.AreEqual("o", vars[2]); + } + + [Test] + public void TestDescribe() + { + SparqlQuery query = new SparqlQuery("DESCRIBE "); + ISparqlQueryResult result = Model.ExecuteQuery(query); + + IList resources = result.GetResources().ToList(); + Assert.AreEqual(1, resources.Count); + + query = new SparqlQuery("DESCRIBE ?s WHERE { ?s nco:fullname 'Hans Wurscht'. }"); + result = Model.ExecuteQuery(query); + + resources = result.GetResources().ToList(); + Assert.AreEqual(1, resources.Count); + + foreach (Contact c in resources) + { + Assert.AreEqual(c.GetType(), typeof(PersonContact)); + } + } + + [Test] + public void TestConstruct() + { + SparqlQuery query = new SparqlQuery(@" + CONSTRUCT + { + ?x nco:fullname ?name . + ?x vcard:N _:v . + _:v vcard:givenName ?name . + } + WHERE + { + ?x nco:fullname ?name . + }"); + + List resources = Model.GetResources(query).ToList(); + + // We expect 4 resources: 2 VCARD blank nodes and the original 2 NCO contacts. + Assert.AreEqual(4, resources.Count); + Assert.AreEqual(2, resources.Count(r => r.HasProperty(nco.fullname))); + Assert.AreEqual(2, resources.Count(r => r.HasProperty(vcard.N))); + Assert.AreEqual(2, resources.Count(r => r.HasProperty(vcard.givenName))); + } + + [Test] + public void TestInferencing() + { + // Retrieving resources using the model API. + Assert.IsTrue(Model.ContainsResource(new Uri("http://example.org/Hans"))); + Assert.IsTrue(Model.ContainsResource(new Uri("http://example.org/ACME"))); + + SparqlQuery query; + ISparqlQueryResult result; + + // This fact is not explicitly stated. + query = new SparqlQuery("ASK WHERE { a nco:Role . }"); + + result = Model.ExecuteQuery(query); + Assert.IsFalse(result.GetAnwser()); + + result = Model.ExecuteQuery(query, true); + Assert.IsTrue(result.GetAnwser()); + + // This fact is not explicitly stated. + query = new SparqlQuery("SELECT ?url WHERE { ?x nco:url ?url . }"); + + result = Model.ExecuteQuery(query); + Assert.AreEqual(0, result.GetBindings().Count()); + + result = Model.ExecuteQuery(query, true); + Assert.AreEqual(1, result.GetBindings().Count()); + + query = new SparqlQuery("ASK WHERE { nco:hasContactMedium . }"); + + result = Model.ExecuteQuery(query); + Assert.IsFalse(result.GetAnwser()); + + result = Model.ExecuteQuery(query, true); + Assert.IsTrue(result.GetAnwser()); + + query = new SparqlQuery("DESCRIBE ?element WHERE { ?element nco:hasContactMedium . }"); + + result = Model.ExecuteQuery(query); + Assert.AreEqual(0, result.GetResources().Count()); + + result = Model.ExecuteQuery(query, true); + Assert.AreEqual(1, result.GetResources().Count()); + + // The original test failed because Virtuoso ORDER BY on DATETIME values fails with DESCRIBE query forms. + // See: https://github.com/openlink/virtuoso-opensource/issues/23 + query = new SparqlQuery("SELECT ?date WHERE { ?m rdf:type nco:ContactMedium ; nco:creator ; dc:date ?date . } ORDER BY ASC(?date)"); + result = Model.ExecuteQuery(query, true); + + List bindings = result.GetBindings().ToList(); + + Assert.AreEqual(3, bindings.Count); + + DateTime? d0 = null; + DateTime? d1 = null; + + foreach (BindingSet b in bindings) + { + d1 = (DateTime)b["date"]; + + if (d0 != null) + { + Assert.Greater(d1, d0); + } + + d0 = d1; + } + } + + [Test] + public void TestModelApi() + { + // Retrieving resources using the model API. + Assert.AreEqual(true, Model.ContainsResource(new Uri("http://example.org/Hans"))); + Assert.AreEqual(false, Model.ContainsResource(new Uri("http://example.org/Peter"))); + + IResource hans = Model.GetResource(new Uri("http://example.org/Hans")); + Assert.Throws(delegate { Model.GetResource(new Uri("http://example.org/Peter")); }); + + hans = Model.GetResource(new Uri("http://example.org/Hans"), typeof(Resource)) as IResource; + Assert.NotNull(hans); + } + + [Test] + public void TestEscaping() + { + SparqlQuery query = new SparqlQuery(@" + SELECT ?s ?p ?o WHERE + { + ?s ?p ""Hello World"" . + ?s ?p ""'Hello World'"" . + ?s ?p '''Hello + World''' . + ?s ?p 'C:\\Directory\\file.ext' . + }"); + + string queryString = query.ToString(); + + Assert.IsTrue(queryString.Contains('\n')); + Assert.IsTrue(queryString.Contains("\\\\")); + Assert.IsTrue(queryString.Contains("\\'")); + } + + [Test] + public void TestUriEscaping() + { + Uri uri = new Uri("file:///F:/test/02%20-%20Take%20Me%20Somewhere%20Nice.mp3"); + var x = Model.CreateResource(uri); + var nameProperty = new Property(new Uri("ex:name")); + x.AddProperty(nameProperty, "Name"); + x.Commit(); + + var result = Model.GetResource(uri); + Assert.AreEqual(x.Uri, result.Uri); + Assert.AreEqual(x, result); + } + + [Test] + public void TestQueryParameters() + { + SparqlQuery query = new SparqlQuery(@"SELECT ?s WHERE { ?s ?p ?o . ?s ?p @someValue . }"); + + query.Bind("@someValue", "Value"); + + string queryString = query.ToString(); + + Assert.IsFalse(string.IsNullOrEmpty(queryString)); + + query = new SparqlQuery(@"SELECT ?s WHERE { ?s ?p 'Hallo'@de . }"); + + queryString = query.ToString(); + + Assert.AreEqual(queryString, @"SELECT ?s WHERE { ?s ?p 'Hallo'@de . }"); + + query = new SparqlQuery(@"SELECT ?s WHERE { ?s ?p 'Hallo'@de-de . }"); + + queryString = query.ToString(); + + Assert.AreEqual(queryString, @"SELECT ?s WHERE { ?s ?p 'Hallo'@de-de . }"); + } + + [Test] + public void TestSelectCount() + { + SparqlQuery query = new SparqlQuery("SELECT COUNT(?s) AS ?count WHERE { ?s rdf:type nco:PhoneNumber. }"); + ISparqlQueryResult result = Model.ExecuteQuery(query); + + var bindings = result.GetBindings(); + Assert.AreEqual(1, bindings.Count()); + Assert.AreEqual(2, bindings.First()["count"]); + } + + [Test] + public void TestCount() + { + SparqlQuery query = new SparqlQuery("SELECT ?s ?p ?o WHERE { ?s ?p ?o. ?s rdf:type nco:PhoneNumber. }"); + ISparqlQueryResult result = Model.ExecuteQuery(query); + + Assert.AreEqual(2, result.Count()); + + query = new SparqlQuery("SELECT ?s ?p ?o WHERE { ?s ?p ?o. ?s rdf:type nco:PhoneNumber. }"); + result = Model.ExecuteQuery(query); + + Assert.AreEqual(2, result.Count()); + } + + [Test] + public void TestSetModel() + { + Regex expression = new Regex(Regex.Escape("FROM")); + + SparqlQuery query = new SparqlQuery("SELECT COUNT(?s) AS ?count WHERE { ?s ?p ?o . }"); + + Assert.IsNull(query.Model); + Assert.AreEqual(0, expression.Matches(query.ToString()).Count); + + query.Model = Model; + + Assert.NotNull(query.Model); + Assert.AreEqual(1, expression.Matches(query.ToString()).Count); + + SparqlQuery query2 = new SparqlQuery("ASK FROM WHERE { ?s ?p ?o . }"); + + Assert.IsNull(query2.Model); + Assert.AreEqual(1, expression.Matches(query2.ToString()).Count); + + query2.Model = Model; + + Assert.IsNotNull(query2.Model); + Assert.AreEqual(1, expression.Matches(query2.ToString()).Count); + + SparqlQuery query3 = new SparqlQuery("ASK FROM @graph WHERE { ?s ?p ?o . }"); + query3.Bind("@graph", Model); + + Assert.IsNull(query3.Model); + Assert.AreEqual(1, expression.Matches(query3.ToString()).Count); + + query3.Model = Model; + + Assert.IsNotNull(query3.Model); + Assert.AreEqual(1, expression.Matches(query3.ToString()).Count); + + SparqlQuery query4 = new SparqlQuery("ASK FROM @graph WHERE { ?s ?p ?o . }"); + query4.Model = Model; + + Assert.IsNotNull(query4.Model); + + Assert.Throws(delegate { query4.Bind("@graph", Model); }); + } + + [Test] + public void TestSetLimit() + { + SparqlQuery query = new SparqlQuery(@" + SELECT ?s0 ?p0 ?o0 WHERE + { + ?s0 ?p0 ?o0 . + { + SELECT DISTINCT ?s0 WHERE + { + ?s ?p ?o. + ?s @type @class . + + { + ?s ?p1 ?o1 . + FILTER ISLITERAL(?o1) . FILTER REGEX(STR(?o1), '', 'i') . + } + UNION + { + ?s ?p1 ?s1 . + ?s1 ?p2 ?o2 . + FILTER ISLITERAL(?o2) . FILTER REGEX(STR(?o2), '', 'i') . + } + } + ORDER BY ?o + } + }"); + + query.Bind("@type", rdf.type); + query.Bind("@class", tmo.Task); + + MethodInfo method = query.GetType().GetMethod("SetLimit", BindingFlags.NonPublic | BindingFlags.Instance); + method.Invoke(query, new object[] { 10 }); + + ISparqlQueryResult result = Model.ExecuteQuery(query); + + List resources = result.GetResources().ToList(); + } + + [Test] + public void TestModelGroup() + { + Uri modelUri1 = new Uri("http://example.org/TestModel1"); + Uri modelUri2 = new Uri("http://example.org/TestModel2"); + IModelGroup g = Store.CreateModelGroup(modelUri1, modelUri2); + var query = new SparqlQuery("PREFIX nco: SELECT ?s ?p ?o WHERE { ?s ?p ?o. ?s nco:fullname 'Hans Wurscht'. }"); + query.Model = g; + var x = query.ToString(); + + + } + } +} diff --git a/Trinity.Tests/SparqlUpdateTest.cs b/tests/Trinity.Tests.Virtuoso/SparqlUpdateTest.cs similarity index 96% rename from Trinity.Tests/SparqlUpdateTest.cs rename to tests/Trinity.Tests.Virtuoso/SparqlUpdateTest.cs index 6f0d2f0..c0da9b0 100644 --- a/Trinity.Tests/SparqlUpdateTest.cs +++ b/tests/Trinity.Tests.Virtuoso/SparqlUpdateTest.cs @@ -1,172 +1,172 @@ -// LICENSE: -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. -// -// AUTHORS: -// -// Moritz Eberl -// Sebastian Faubel -// -// Copyright (c) Semiodesk GmbH 2015-2019 - -using System; -using System.Linq; -using NUnit.Framework; - -namespace Semiodesk.Trinity.Test -{ - [TestFixture] - public class SparqlUpdateTest - { - private IStore _store; - - private IModel _model = null; - - [SetUp] - public void SetUp() - { - string connectionString = SetupClass.ConnectionString; - - _store = StoreFactory.CreateStore(string.Format("{0};rule=urn:semiodesk/test/ruleset", connectionString)); - _model = _store.GetModel(new Uri("ex:TestModel")); - - if (!_model.IsEmpty) - { - _model.Clear(); - } - - OntologyDiscovery.AddNamespace("vcard", new Uri("http://www.w3.org/2001/vcard-rdf/3.0#")); - OntologyDiscovery.AddNamespace("foaf", new Uri("http://xmlns.com/foaf/0.1/")); - OntologyDiscovery.AddNamespace("dc", new Uri("http://purl.org/dc/elements/1.1/")); - OntologyDiscovery.AddNamespace("ex", new Uri("http://example.org/")); - } - - [TearDown] - public void TearDown() - { - _model.Clear(); - _store.Dispose(); - } - - [Test] - public void TestInsert() - { - SparqlUpdate update = new SparqlUpdate(@"INSERT DATA INTO { ex:book dc:title 'This is an example title' . }"); - - _model.ExecuteUpdate(update); - - SparqlQuery query = new SparqlQuery(@"ASK WHERE { ?s dc:title 'This is an example title' . }"); - - ISparqlQueryResult result = _model.ExecuteQuery(query); - - Assert.AreEqual(true, result.GetAnwser()); - } - - [Test] - public void TestModify() - { - SparqlUpdate update = new SparqlUpdate(@" - INSERT DATA INTO { ex:book dc:title 'This is an example title' . }"); - - _model.ExecuteUpdate(update); - - update = new SparqlUpdate(@" - DELETE DATA FROM { ex:book dc:title 'This is an example title' . } - INSERT DATA INTO { ex:book dc:title 'This is an example title too' . }"); - - _model.ExecuteUpdate(update); - - SparqlQuery query = new SparqlQuery(@" - ASK WHERE { ?s dc:title 'This is an example title' . }"); - - Assert.AreEqual(false, _model.ExecuteQuery(query).GetAnwser()); - - query = new SparqlQuery(@" - ASK WHERE { ?s dc:title 'This is an example title too' . }"); - - Assert.AreEqual(true, _model.ExecuteQuery(query).GetAnwser()); - } - - [Test] - public void TestDelete() - { - SparqlUpdate update = new SparqlUpdate(@" - INSERT DATA INTO { ex:book dc:title 'This is an example title' . }"); - - _model.ExecuteUpdate(update); - - update = new SparqlUpdate(@" - DELETE DATA FROM { ex:book dc:title 'This is an example title' . }"); - - _model.ExecuteUpdate(update); - - SparqlQuery query = new SparqlQuery(@" - ASK WHERE { ?s dc:title 'This is an example title' . }"); - - Assert.AreEqual(false, _model.ExecuteQuery(query).GetAnwser()); - } - - [Test] - public void TestLoad() - { - Assert.Inconclusive(); - SparqlUpdate update = new SparqlUpdate(@"LOAD INTO "); - - _model.ExecuteUpdate(update); - - SparqlQuery query = new SparqlQuery(@"SELECT * WHERE { ?s ?p ?o . }"); - - Assert.Greater(_model.ExecuteQuery(query).GetBindings().Count(), 0); - } - - [Test] - public void TestClear() - { - SparqlUpdate update = new SparqlUpdate(@"INSERT DATA INTO { ex:book dc:title 'This is an example title' . }"); - - _model.ExecuteUpdate(update); - - update = new SparqlUpdate(@"CLEAR GRAPH "); - - _model.ExecuteUpdate(update); - - SparqlQuery query = new SparqlQuery(@"ASK WHERE { ?s dc:title 'This is an example title' . }"); - - Assert.AreEqual(false, _model.ExecuteQuery(query).GetAnwser()); - } - - [Test] - public void TestUpdateParameters() - { - SparqlUpdate update = new SparqlUpdate(@" - DELETE { ?s ?p @oldValue . } - INSERT { ?s ?p @newValue . } - WHERE { ?s ?p ?o . }"); - - update.Bind("@oldValue", "Fail"); - update.Bind("@newValue", "Success"); - - string updateString = update.ToString(); - - Assert.IsFalse(string.IsNullOrEmpty(updateString)); - - _model.ExecuteUpdate(update); - } - } -} +// LICENSE: +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// +// AUTHORS: +// +// Moritz Eberl +// Sebastian Faubel +// +// Copyright (c) Semiodesk GmbH 2015-2019 + +using System; +using System.Linq; +using NUnit.Framework; + +namespace Semiodesk.Trinity.Test.Virtuoso +{ + [TestFixture] + public class SparqlUpdateTest : SetupClass + { + private IStore _store; + + private IModel _model = null; + + [SetUp] + public void SetUp() + { + string connectionString = SetupClass.ConnectionString; + + _store = StoreFactory.CreateStore(string.Format("{0};rule=urn:semiodesk/test/ruleset", connectionString)); + _model = _store.GetModel(new Uri("ex:TestModel")); + + if (!_model.IsEmpty) + { + _model.Clear(); + } + + OntologyDiscovery.AddNamespace("vcard", new Uri("http://www.w3.org/2001/vcard-rdf/3.0#")); + OntologyDiscovery.AddNamespace("foaf", new Uri("http://xmlns.com/foaf/0.1/")); + OntologyDiscovery.AddNamespace("dc", new Uri("http://purl.org/dc/elements/1.1/")); + OntologyDiscovery.AddNamespace("ex", new Uri("http://example.org/")); + } + + [TearDown] + public void TearDown() + { + _model.Clear(); + _store.Dispose(); + } + + [Test] + public void TestInsert() + { + SparqlUpdate update = new SparqlUpdate(@"INSERT DATA INTO { ex:book dc:title 'This is an example title' . }"); + + _model.ExecuteUpdate(update); + + SparqlQuery query = new SparqlQuery(@"ASK WHERE { ?s dc:title 'This is an example title' . }"); + + ISparqlQueryResult result = _model.ExecuteQuery(query); + + Assert.AreEqual(true, result.GetAnwser()); + } + + [Test] + public void TestModify() + { + SparqlUpdate update = new SparqlUpdate(@" + INSERT DATA INTO { ex:book dc:title 'This is an example title' . }"); + + _model.ExecuteUpdate(update); + + update = new SparqlUpdate(@" + DELETE DATA FROM { ex:book dc:title 'This is an example title' . } + INSERT DATA INTO { ex:book dc:title 'This is an example title too' . }"); + + _model.ExecuteUpdate(update); + + SparqlQuery query = new SparqlQuery(@" + ASK WHERE { ?s dc:title 'This is an example title' . }"); + + Assert.AreEqual(false, _model.ExecuteQuery(query).GetAnwser()); + + query = new SparqlQuery(@" + ASK WHERE { ?s dc:title 'This is an example title too' . }"); + + Assert.AreEqual(true, _model.ExecuteQuery(query).GetAnwser()); + } + + [Test] + public void TestDelete() + { + SparqlUpdate update = new SparqlUpdate(@" + INSERT DATA INTO { ex:book dc:title 'This is an example title' . }"); + + _model.ExecuteUpdate(update); + + update = new SparqlUpdate(@" + DELETE DATA FROM { ex:book dc:title 'This is an example title' . }"); + + _model.ExecuteUpdate(update); + + SparqlQuery query = new SparqlQuery(@" + ASK WHERE { ?s dc:title 'This is an example title' . }"); + + Assert.AreEqual(false, _model.ExecuteQuery(query).GetAnwser()); + } + + [Test] + public void TestLoad() + { + Assert.Inconclusive(); + SparqlUpdate update = new SparqlUpdate(@"LOAD INTO "); + + _model.ExecuteUpdate(update); + + SparqlQuery query = new SparqlQuery(@"SELECT * WHERE { ?s ?p ?o . }"); + + Assert.Greater(_model.ExecuteQuery(query).GetBindings().Count(), 0); + } + + [Test] + public void TestClear() + { + SparqlUpdate update = new SparqlUpdate(@"INSERT DATA INTO { ex:book dc:title 'This is an example title' . }"); + + _model.ExecuteUpdate(update); + + update = new SparqlUpdate(@"CLEAR GRAPH "); + + _model.ExecuteUpdate(update); + + SparqlQuery query = new SparqlQuery(@"ASK WHERE { ?s dc:title 'This is an example title' . }"); + + Assert.AreEqual(false, _model.ExecuteQuery(query).GetAnwser()); + } + + [Test] + public void TestUpdateParameters() + { + SparqlUpdate update = new SparqlUpdate(@" + DELETE { ?s ?p @oldValue . } + INSERT { ?s ?p @newValue . } + WHERE { ?s ?p ?o . }"); + + update.Bind("@oldValue", "Fail"); + update.Bind("@newValue", "Success"); + + string updateString = update.ToString(); + + Assert.IsFalse(string.IsNullOrEmpty(updateString)); + + _model.ExecuteUpdate(update); + } + } +} diff --git a/tests/Trinity.Tests.Virtuoso/StoreProviderTest.cs b/tests/Trinity.Tests.Virtuoso/StoreProviderTest.cs new file mode 100644 index 0000000..f544e5e --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/StoreProviderTest.cs @@ -0,0 +1,26 @@ +using NUnit.Framework; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Semiodesk.Trinity.Test.Virtuoso +{ + [TestFixture] + public class StoreProviderTest : SetupClass + { + + [Test] + public void VirtuosoConfigurationStringTest() + { + string[] components = SetupClass.HostAndPort.Split(':'); + string host = components[0]; + string port = components[1]; + string connectionString = string.Format("provider=virtuoso;host={0};port={1};uid=dba;pw=dba;rule=urn:semiodesk/test/ruleset", host, port); + IStore anObject = StoreFactory.CreateStore(connectionString); + Assert.IsNotNull(anObject); + anObject.Dispose(); + } + } +} diff --git a/Trinity.Tests/virtuoso/TinyVirtuosoStoreTest.cs b/tests/Trinity.Tests.Virtuoso/TinyVirtuosoStoreTest.cs similarity index 95% rename from Trinity.Tests/virtuoso/TinyVirtuosoStoreTest.cs rename to tests/Trinity.Tests.Virtuoso/TinyVirtuosoStoreTest.cs index 0ffda99..f057f52 100644 --- a/Trinity.Tests/virtuoso/TinyVirtuosoStoreTest.cs +++ b/tests/Trinity.Tests.Virtuoso/TinyVirtuosoStoreTest.cs @@ -1,129 +1,129 @@ -// LICENSE: -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. -// -// AUTHORS: -// -// Moritz Eberl -// Sebastian Faubel -// -// Copyright (c) Semiodesk GmbH 2015-2019 - -using System; -using System.Linq; -using NUnit.Framework; - -namespace Semiodesk.Trinity.Test -{ - [TestFixture] - class TinyVirtuosoStoreTest - { - Uri _testModel = new Uri("ex:Test"); - - IStore Store; - - [SetUp] - public void SetUp() - { - string connectionString = SetupClass.ConnectionString; - - Store = StoreFactory.CreateStore(string.Format("{0};rule=urn:semiodesk/test/ruleset", connectionString)); - Store.InitializeFromConfiguration(); - Store.RemoveModel(_testModel); - } - - [TearDown] - public void TearDown() - { - Store.Dispose(); - Store = null; - } - - [Test] - public void LoadOntologiesFromFileTest() - { - var model = Store.GetModel(new Uri("http://purl.org/dc/elements/1.1/")); - - var res = model.GetResources(new SparqlQuery("SELECT ?s ?p ?o where { ?s ?p ?o. }")); - var x = res.ToList(); - } - - [Test] - public void AddModelTest() - { - IModel m = Store.CreateModel(_testModel); - - Assert.IsNotNull(m); - } - - #pragma warning disable CS0618 // Type or member is obsolete - [Test] - public void ContainsModelTest() - { - Assert.Inconclusive("This method was marked obsolete and does not behave the same way as it used to."); - } - #pragma warning restore CS0618 // Type or member is obsolete - - [Test] - public void GetModelTest() - { - IModel model; - Store.RemoveModel(_testModel); - model = Store.GetModel(_testModel); - Assert.IsTrue(model.IsEmpty); - IModel m = Store.CreateModel(_testModel); - - var res = m.CreateResource(new Uri("ex:test:resource")); - - res.AddProperty(new Property(new Uri("ex:test:property")), "var"); - res.Commit(); - - model = Store.GetModel(_testModel); - Assert.IsFalse(model.IsEmpty); - IModel model2 = Store.GetModel(_testModel); - Assert.AreEqual(_testModel, model2.Uri); - - Assert.IsTrue(model2.ContainsResource(res)); - } - - [Test] - public void RemoveModelTest() - { - IModel model; - Store.RemoveModel(_testModel); - - model = Store.GetModel(_testModel); - Assert.IsTrue(model.IsEmpty); - IModel m = Store.CreateModel(_testModel); - - var res = m.CreateResource(new Uri("ex:test:resource")); - - res.AddProperty(new Property(new Uri("ex:test:property")), "var"); - res.Commit(); - - model = Store.GetModel(_testModel); - Assert.IsFalse(model.IsEmpty); - Assert.AreEqual(_testModel, model.Uri); - - Store.RemoveModel(_testModel); - model = Store.GetModel(_testModel); - Assert.IsTrue(model.IsEmpty); - } - } -} +// LICENSE: +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// +// AUTHORS: +// +// Moritz Eberl +// Sebastian Faubel +// +// Copyright (c) Semiodesk GmbH 2015-2019 + +using System; +using System.Linq; +using NUnit.Framework; + +namespace Semiodesk.Trinity.Test.Virtuoso +{ + [TestFixture] + class TinyVirtuosoStoreTest : SetupClass + { + Uri _testModel = new Uri("ex:Test"); + + IStore Store; + + [SetUp] + public void SetUp() + { + string connectionString = SetupClass.ConnectionString; + + Store = StoreFactory.CreateStore(string.Format("{0};rule=urn:semiodesk/test/ruleset", connectionString)); + Store.InitializeFromConfiguration(); + Store.RemoveModel(_testModel); + } + + [TearDown] + public void TearDown() + { + Store.Dispose(); + Store = null; + } + + [Test] + public void LoadOntologiesFromFileTest() + { + var model = Store.GetModel(new Uri("http://purl.org/dc/elements/1.1/")); + + var res = model.GetResources(new SparqlQuery("SELECT ?s ?p ?o where { ?s ?p ?o. }")); + var x = res.ToList(); + } + + [Test] + public void AddModelTest() + { + IModel m = Store.CreateModel(_testModel); + + Assert.IsNotNull(m); + } + + #pragma warning disable CS0618 // Type or member is obsolete + [Test] + public void ContainsModelTest() + { + Assert.Inconclusive("This method was marked obsolete and does not behave the same way as it used to."); + } + #pragma warning restore CS0618 // Type or member is obsolete + + [Test] + public void GetModelTest() + { + IModel model; + Store.RemoveModel(_testModel); + model = Store.GetModel(_testModel); + Assert.IsTrue(model.IsEmpty); + IModel m = Store.CreateModel(_testModel); + + var res = m.CreateResource(new Uri("ex:test:resource")); + + res.AddProperty(new Property(new Uri("ex:test:property")), "var"); + res.Commit(); + + model = Store.GetModel(_testModel); + Assert.IsFalse(model.IsEmpty); + IModel model2 = Store.GetModel(_testModel); + Assert.AreEqual(_testModel, model2.Uri); + + Assert.IsTrue(model2.ContainsResource(res)); + } + + [Test] + public void RemoveModelTest() + { + IModel model; + Store.RemoveModel(_testModel); + + model = Store.GetModel(_testModel); + Assert.IsTrue(model.IsEmpty); + IModel m = Store.CreateModel(_testModel); + + var res = m.CreateResource(new Uri("ex:test:resource")); + + res.AddProperty(new Property(new Uri("ex:test:property")), "var"); + res.Commit(); + + model = Store.GetModel(_testModel); + Assert.IsFalse(model.IsEmpty); + Assert.AreEqual(_testModel, model.Uri); + + Store.RemoveModel(_testModel); + model = Store.GetModel(_testModel); + Assert.IsTrue(model.IsEmpty); + } + } +} diff --git a/Trinity.Tests/TransactionTest.cs b/tests/Trinity.Tests.Virtuoso/TransactionTest.cs similarity index 96% rename from Trinity.Tests/TransactionTest.cs rename to tests/Trinity.Tests.Virtuoso/TransactionTest.cs index b967c7f..f4c1c1e 100644 --- a/Trinity.Tests/TransactionTest.cs +++ b/tests/Trinity.Tests.Virtuoso/TransactionTest.cs @@ -1,408 +1,408 @@ -// LICENSE: -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. -// -// AUTHORS: -// -// Moritz Eberl -// Sebastian Faubel -// -// Copyright (c) Semiodesk GmbH 2015-2019 - -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.Linq; -using System.Threading; -using NUnit.Framework; - -namespace Semiodesk.Trinity.Test -{ - //[TestFixture] - class TransactionTest - { - #region Members - - private string _connectionString = SetupClass.ConnectionString; - - private IStore _store; - - private UriRef _model = new UriRef("ex:TransactionTest"); - - #endregion - - #region Methods - - [SetUp] - public void SetUp() - { - _store = StoreFactory.CreateStore(_connectionString); - - IModel model = _store.GetModel(_model); - - if(!model.IsEmpty) - { - model.Clear(); - } - } - - [TearDown] - public void TearDown() - { - IModel model = _store.GetModel(_model); - - if (!model.IsEmpty) - { - model.Clear(); - } - } - - public IModel GetModel(out IStore store) - { - store = StoreFactory.CreateStore(_connectionString); - - return store.GetModel(_model); - } - - [Test] - public void TestAddingElements() - { - Assert.Inconclusive(); - - List list1 = new List(); - List list2 = new List(); - - Barrier sync = new Barrier(3); - - Thread worker1 = new Thread(() => - { - IStore s; - IModel m = GetModel(out s); - ITransaction t = m.BeginTransaction(System.Data.IsolationLevel.ReadCommitted); - sync.SignalAndWait(); - for (int i = 0; i < 50; i++) - { - var res = m.CreateResource(new Uri("ex:Resource:Thread1#" + i), t); - res.stringTest.Add("Thread1 " + i.ToString()); - res.Commit(); - list1.Add(res); - } - t.Commit(); - s.Dispose(); - }); - - Thread worker2 = new Thread(() => - { - IStore s; - IModel m = GetModel(out s); - ITransaction t = m.BeginTransaction(System.Data.IsolationLevel.ReadCommitted); - sync.SignalAndWait(); - for (int i = 0; i < 50; i++) - { - var res = m.CreateResource(new Uri("ex:Resource:Thread2#" + i), t); - res.stringTest.Add("Thread2 " + i.ToString()); - res.Commit(); - list2.Add(res); - } - t.Commit(); - s.Dispose(); - }); - - worker1.Start(); - worker2.Start(); - - sync.SignalAndWait(); - - worker1.Join(); - worker2.Join(); - - Assert.AreEqual(50, list1.Count()); - Assert.AreEqual(50, list2.Count()); - - IModel model = _store.GetModel(_model); - - foreach (var res in list1) - { - var actual = model.GetResource(res.Uri); - Assert.AreEqual(res.stringTest.Count(), actual.stringTest.Count()); - Assert.AreEqual(res.stringTest[0], actual.stringTest[0]); - } - - foreach (var res in list2) - { - var actual = model.GetResource(res.Uri); - Assert.AreEqual(res.stringTest.Count(), actual.stringTest.Count()); - Assert.AreEqual(res.stringTest[0], actual.stringTest[0]); - } - } - - [Test] - public void TestModifyElement() - { - Assert.Inconclusive(); - IModel model = _store.GetModel(_model); - var newResource = model.CreateResource(); - newResource.stringTest.Add("Hello"); - newResource.stringTest.Add("my"); - newResource.stringTest.Add("dear"); - newResource.Commit(); - - Barrier sync = new Barrier(3); - Barrier sync2 = new Barrier(2); - - Thread worker1 = new Thread(() => - { - IStore s; - IModel m = GetModel(out s); - - try - { - ITransaction t = m.BeginTransaction(System.Data.IsolationLevel.RepeatableRead); - sync.SignalAndWait(); - var res = m.GetResource(newResource.Uri, t); - - res.stringTest.Add("Thread1"); - res.stringTest.Remove("my"); - - res.Commit(); - t.Commit(); - - s.Dispose(); - } - catch (Exception) - { - sync2.SignalAndWait(); - } - }); - - Thread worker2 = new Thread(() => - { - try - { - IStore s; - IModel m = GetModel(out s); - ITransaction t = m.BeginTransaction(System.Data.IsolationLevel.RepeatableRead); - - - var res = m.GetResource(newResource.Uri, t); - sync.SignalAndWait(); - res.stringTest.Add("Thread2"); - res.stringTest.Remove("dear"); - sync2.SignalAndWait(); - res.Commit(); - t.Commit(); - s.Dispose(); - } - catch (Exception) {} - }); - - // Start both threads - worker1.Start(); - worker2.Start(); - - // Wait to enter transaction - sync.SignalAndWait(); - - // Wait for threads to end - worker2.Join(); - worker1.Join(); - - - var actualResource = model.GetResource(newResource.Uri); - Assert.IsFalse(actualResource.stringTest.Contains("dear")); - Assert.IsTrue(actualResource.stringTest.Contains("my")); - Assert.IsTrue(actualResource.stringTest.Contains("Thread2")); - - } - - [Test] - public void TestModifyAndAddElement() - { - Assert.Inconclusive(); - - IModel model = _store.GetModel(_model); - var newResource = model.CreateResource(); - newResource.stringTest.Add("Hello"); - newResource.stringTest.Add("my"); - newResource.stringTest.Add("dear"); - newResource.Commit(); - - Uri addedResourceUri = new Uri("ex:blub"); - - Barrier sync = new Barrier(3); - - Thread worker1 = new Thread(() => - { - IStore s; - IModel m = GetModel(out s); - ITransaction t = m.BeginTransaction(System.Data.IsolationLevel.ReadCommitted); - Debug.WriteLine("Worker 1: Started Transaction"); - sync.SignalAndWait(); - var res = m.CreateResource(addedResourceUri); - res.stringTest.Add("Thread1"); - - res.Commit(); - Debug.WriteLine("Worker 1: Commit Resource"); - t.Commit(); - Debug.WriteLine("Worker 1: Commit Transaction"); - s.Dispose(); - }); - - Thread worker2 = new Thread(() => - { - IStore s; - IModel m = GetModel(out s); - ITransaction t = m.BeginTransaction(System.Data.IsolationLevel.RepeatableRead); - Debug.WriteLine("Worker 2: started Transaction"); - sync.SignalAndWait(); - - try - { - ModifyData(m, newResource.Uri, t); - }catch(Exception) - { - // Retry - ModifyData(m, newResource.Uri, t); - } - - Debug.WriteLine("Worker 2: Commit Resource"); - t.Commit(); - Debug.WriteLine("Worker 2: Commit Transcation"); - s.Dispose(); - - }); - - worker1.Start(); - worker2.Start(); - sync.SignalAndWait(); - - worker1.Join(); - worker2.Join(); - - var actualResource = model.GetResource(newResource.Uri); - var actualResource2 = model.GetResource(addedResourceUri); - - - } - - [Test] - public void TestCreateResourceMemberVariables() - { - Assert.Inconclusive(); - - bool faulted = false; - - Barrier sync = new Barrier(2); - Barrier sync2 = new Barrier(3); - - Thread createWorker = new Thread(() => - { - IStore store; - IModel model = GetModel(out store); - - model.Clear(); - - using (ITransaction tx = model.BeginTransaction(System.Data.IsolationLevel.ReadCommitted)) - { - ResourceMappingTestClass r1 = model.CreateResource(new Uri("ex:r1"), tx); - r1.IntegerValue = 1; - r1.Commit(); - - ResourceMappingTestClass r0 = model.CreateResource(new Uri("ex:r0"), tx); - r0.Resource = r1; - r0.Commit(); - - tx.Commit(); - } - - store.Dispose(); - - sync.SignalAndWait(); - }); - - Thread getWorker = new Thread(() => - { - try - { - IStore store; - IModel model = GetModel(out store); - - ResourceMappingTestClass r3 = model.GetResource(new Uri("ex:r0")); - - Assert.NotNull(r3.Resource); - Assert.AreEqual(r3.Resource.IntegerValue, 1); - - store.Dispose(); - } - catch(Exception) - { - faulted = true; - } - - sync2.SignalAndWait(); - }); - - Thread getWorkerTx = new Thread(() => - { - try - { - IStore store; - IModel model = GetModel(out store); - - using (ITransaction tx = model.BeginTransaction(System.Data.IsolationLevel.ReadCommitted)) - { - ResourceMappingTestClass r2 = model.GetResource(new Uri("ex:r0"), tx); - - Assert.NotNull(r2.Resource); - Assert.AreEqual(r2.Resource.IntegerValue, 1); - } - - store.Dispose(); - } - catch(Exception) - { - faulted = true; - } - - sync2.SignalAndWait(); - }); - - createWorker.Start(); - - sync.SignalAndWait(); - - getWorker.Start(); - getWorkerTx.Start(); - - sync2.SignalAndWait(); - - Assert.IsFalse(faulted); - } - - protected void ModifyData(IModel m, Uri uri, ITransaction t) - { - var res = m.GetResource(uri, t); - res.stringTest.Add("Thread2"); - res.stringTest.Remove("dear"); - res.Commit(); - } - - #endregion - } -} +// LICENSE: +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// +// AUTHORS: +// +// Moritz Eberl +// Sebastian Faubel +// +// Copyright (c) Semiodesk GmbH 2015-2019 + +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Threading; +using NUnit.Framework; + +namespace Semiodesk.Trinity.Test.Virtuoso +{ + //[TestFixture] + class TransactionTest : SetupClass + { + #region Members + + private string _connectionString = SetupClass.ConnectionString; + + private IStore _store; + + private UriRef _model = new UriRef("ex:TransactionTest"); + + #endregion + + #region Methods + + [SetUp] + public void SetUp() + { + _store = StoreFactory.CreateStore(_connectionString); + + IModel model = _store.GetModel(_model); + + if(!model.IsEmpty) + { + model.Clear(); + } + } + + [TearDown] + public void TearDown() + { + IModel model = _store.GetModel(_model); + + if (!model.IsEmpty) + { + model.Clear(); + } + } + + public IModel GetModel(out IStore store) + { + store = StoreFactory.CreateStore(_connectionString); + + return store.GetModel(_model); + } + + [Test] + public void TestAddingElements() + { + Assert.Inconclusive(); + + List list1 = new List(); + List list2 = new List(); + + Barrier sync = new Barrier(3); + + Thread worker1 = new Thread(() => + { + IStore s; + IModel m = GetModel(out s); + ITransaction t = m.BeginTransaction(System.Data.IsolationLevel.ReadCommitted); + sync.SignalAndWait(); + for (int i = 0; i < 50; i++) + { + var res = m.CreateResource(new Uri("ex:Resource:Thread1#" + i), t); + res.stringTest.Add("Thread1 " + i.ToString()); + res.Commit(); + list1.Add(res); + } + t.Commit(); + s.Dispose(); + }); + + Thread worker2 = new Thread(() => + { + IStore s; + IModel m = GetModel(out s); + ITransaction t = m.BeginTransaction(System.Data.IsolationLevel.ReadCommitted); + sync.SignalAndWait(); + for (int i = 0; i < 50; i++) + { + var res = m.CreateResource(new Uri("ex:Resource:Thread2#" + i), t); + res.stringTest.Add("Thread2 " + i.ToString()); + res.Commit(); + list2.Add(res); + } + t.Commit(); + s.Dispose(); + }); + + worker1.Start(); + worker2.Start(); + + sync.SignalAndWait(); + + worker1.Join(); + worker2.Join(); + + Assert.AreEqual(50, list1.Count()); + Assert.AreEqual(50, list2.Count()); + + IModel model = _store.GetModel(_model); + + foreach (var res in list1) + { + var actual = model.GetResource(res.Uri); + Assert.AreEqual(res.stringTest.Count(), actual.stringTest.Count()); + Assert.AreEqual(res.stringTest[0], actual.stringTest[0]); + } + + foreach (var res in list2) + { + var actual = model.GetResource(res.Uri); + Assert.AreEqual(res.stringTest.Count(), actual.stringTest.Count()); + Assert.AreEqual(res.stringTest[0], actual.stringTest[0]); + } + } + + [Test] + public void TestModifyElement() + { + Assert.Inconclusive(); + IModel model = _store.GetModel(_model); + var newResource = model.CreateResource(); + newResource.stringTest.Add("Hello"); + newResource.stringTest.Add("my"); + newResource.stringTest.Add("dear"); + newResource.Commit(); + + Barrier sync = new Barrier(3); + Barrier sync2 = new Barrier(2); + + Thread worker1 = new Thread(() => + { + IStore s; + IModel m = GetModel(out s); + + try + { + ITransaction t = m.BeginTransaction(System.Data.IsolationLevel.RepeatableRead); + sync.SignalAndWait(); + var res = m.GetResource(newResource.Uri, t); + + res.stringTest.Add("Thread1"); + res.stringTest.Remove("my"); + + res.Commit(); + t.Commit(); + + s.Dispose(); + } + catch (Exception) + { + sync2.SignalAndWait(); + } + }); + + Thread worker2 = new Thread(() => + { + try + { + IStore s; + IModel m = GetModel(out s); + ITransaction t = m.BeginTransaction(System.Data.IsolationLevel.RepeatableRead); + + + var res = m.GetResource(newResource.Uri, t); + sync.SignalAndWait(); + res.stringTest.Add("Thread2"); + res.stringTest.Remove("dear"); + sync2.SignalAndWait(); + res.Commit(); + t.Commit(); + s.Dispose(); + } + catch (Exception) {} + }); + + // Start both threads + worker1.Start(); + worker2.Start(); + + // Wait to enter transaction + sync.SignalAndWait(); + + // Wait for threads to end + worker2.Join(); + worker1.Join(); + + + var actualResource = model.GetResource(newResource.Uri); + Assert.IsFalse(actualResource.stringTest.Contains("dear")); + Assert.IsTrue(actualResource.stringTest.Contains("my")); + Assert.IsTrue(actualResource.stringTest.Contains("Thread2")); + + } + + [Test] + public void TestModifyAndAddElement() + { + Assert.Inconclusive(); + + IModel model = _store.GetModel(_model); + var newResource = model.CreateResource(); + newResource.stringTest.Add("Hello"); + newResource.stringTest.Add("my"); + newResource.stringTest.Add("dear"); + newResource.Commit(); + + Uri addedResourceUri = new Uri("ex:blub"); + + Barrier sync = new Barrier(3); + + Thread worker1 = new Thread(() => + { + IStore s; + IModel m = GetModel(out s); + ITransaction t = m.BeginTransaction(System.Data.IsolationLevel.ReadCommitted); + Debug.WriteLine("Worker 1: Started Transaction"); + sync.SignalAndWait(); + var res = m.CreateResource(addedResourceUri); + res.stringTest.Add("Thread1"); + + res.Commit(); + Debug.WriteLine("Worker 1: Commit Resource"); + t.Commit(); + Debug.WriteLine("Worker 1: Commit Transaction"); + s.Dispose(); + }); + + Thread worker2 = new Thread(() => + { + IStore s; + IModel m = GetModel(out s); + ITransaction t = m.BeginTransaction(System.Data.IsolationLevel.RepeatableRead); + Debug.WriteLine("Worker 2: started Transaction"); + sync.SignalAndWait(); + + try + { + ModifyData(m, newResource.Uri, t); + }catch(Exception) + { + // Retry + ModifyData(m, newResource.Uri, t); + } + + Debug.WriteLine("Worker 2: Commit Resource"); + t.Commit(); + Debug.WriteLine("Worker 2: Commit Transcation"); + s.Dispose(); + + }); + + worker1.Start(); + worker2.Start(); + sync.SignalAndWait(); + + worker1.Join(); + worker2.Join(); + + var actualResource = model.GetResource(newResource.Uri); + var actualResource2 = model.GetResource(addedResourceUri); + + + } + + [Test] + public void TestCreateResourceMemberVariables() + { + Assert.Inconclusive(); + + bool faulted = false; + + Barrier sync = new Barrier(2); + Barrier sync2 = new Barrier(3); + + Thread createWorker = new Thread(() => + { + IStore store; + IModel model = GetModel(out store); + + model.Clear(); + + using (ITransaction tx = model.BeginTransaction(System.Data.IsolationLevel.ReadCommitted)) + { + ResourceMappingTestClass r1 = model.CreateResource(new Uri("ex:r1"), tx); + r1.IntegerValue = 1; + r1.Commit(); + + ResourceMappingTestClass r0 = model.CreateResource(new Uri("ex:r0"), tx); + r0.Resource = r1; + r0.Commit(); + + tx.Commit(); + } + + store.Dispose(); + + sync.SignalAndWait(); + }); + + Thread getWorker = new Thread(() => + { + try + { + IStore store; + IModel model = GetModel(out store); + + ResourceMappingTestClass r3 = model.GetResource(new Uri("ex:r0")); + + Assert.NotNull(r3.Resource); + Assert.AreEqual(r3.Resource.IntegerValue, 1); + + store.Dispose(); + } + catch(Exception) + { + faulted = true; + } + + sync2.SignalAndWait(); + }); + + Thread getWorkerTx = new Thread(() => + { + try + { + IStore store; + IModel model = GetModel(out store); + + using (ITransaction tx = model.BeginTransaction(System.Data.IsolationLevel.ReadCommitted)) + { + ResourceMappingTestClass r2 = model.GetResource(new Uri("ex:r0"), tx); + + Assert.NotNull(r2.Resource); + Assert.AreEqual(r2.Resource.IntegerValue, 1); + } + + store.Dispose(); + } + catch(Exception) + { + faulted = true; + } + + sync2.SignalAndWait(); + }); + + createWorker.Start(); + + sync.SignalAndWait(); + + getWorker.Start(); + getWorkerTx.Start(); + + sync2.SignalAndWait(); + + Assert.IsFalse(faulted); + } + + protected void ModifyData(IModel m, Uri uri, ITransaction t) + { + var res = m.GetResource(uri, t); + res.stringTest.Add("Thread2"); + res.stringTest.Remove("dear"); + res.Commit(); + } + + #endregion + } +} diff --git a/tests/Trinity.Tests.Virtuoso/Trinity.Tests.Virtuoso.csproj b/tests/Trinity.Tests.Virtuoso/Trinity.Tests.Virtuoso.csproj new file mode 100644 index 0000000..2532d7a --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/Trinity.Tests.Virtuoso.csproj @@ -0,0 +1,53 @@ + + + + net472 + Trinity.Test.Virtuoso + Copyright © Semiodesk GmbH 2019 + + Semiodesk GmbH + 1.0.0.8 + 1.0.0.8 + 1.0.0.8 + Semiodesk.Trinity.Tests.Virtuoso + Semiodesk.Trinity.Tests.Virtuoso + Exe + + + + + + + + + + + + + + + + + + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + + diff --git a/tests/Trinity.Tests.Virtuoso/bin/Debug/INIFileParser.xml b/tests/Trinity.Tests.Virtuoso/bin/Debug/INIFileParser.xml new file mode 100644 index 0000000..dbab5dd --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Debug/INIFileParser.xml @@ -0,0 +1,980 @@ + + + + INIFileParser + + + + + Asserts that a strings has no blank spaces. + + The string to be checked. + + + + Represents an INI data parser for files. + + + + Implements reading ini data from a file. + + + Uses codification for the file. + + + Path to the file + + + + Implements reading ini data from a file. + + + Path to the file + + + File's encoding. + + + + Saves INI data to a file. + + + Creats an ASCII encoded file by default. + + + Path to the file. + + + IniData to be saved as an INI file. + + + + Writes INI data to a text file. + + + Path to the file. + + + IniData to be saved as an INI file. + + + Specifies the encoding used to create the file. + + + + Represents all data from an INI file + + + + Represents all sections from an INI file + + + + Initializes an empty IniData instance. + + + + Initializes a new IniData instance using a previous + . + + + object containing the + data with the sections of the file + + + + Configuration used to write an ini file with the proper + delimiter characters and data. + + + If the instance was created by a parser, + this instance is a copy of the used + by the parser (i.e. different objects instances) + If this instance is created programatically without using a parser, this + property returns an instance of + + + + Global sections. Contains key/value pairs which are not + enclosed in any section (i.e. they are defined at the beginning + of the file, before any section. + + + + Gets the instance + with the specified section name. + + + + Gets or sets all the + for this IniData instance. + + + + Creates a new object that is a copy of the current instance. + + + A new object that is a copy of this instance. + + + + See property for more information. + + + + Deletes all comments in all sections and key values + + + + Merges the other iniData into this one by overwriting existing values. + Comments get appended. + + + IniData instance to merge into this. + If it is null this operation does nothing. + + + + Merge the sections into this by overwriting this sections. + + + + Merges the given global values into this globals by overwriting existing values. + + + + Information associated to a key from an INI file. + Includes both the value and the comments associated to the key. + + + + Initializes a new instance of the class. + + + + Initializes a new instance of the class + from a previous instance of . + + + Data is deeply copied + + + The instance of the class + used to create the new instance. + + + + Gets or sets the comment list associated to this key. + + + + Gets or sets the value associated to this key. + + + + Gets or sets the name of the key. + + + + Creates a new object that is a copy of the current instance. + + + A new object that is a copy of this instance. + + + + Represents a collection of Keydata. + + + + Initializes a new instance of the class. + + + + Initializes a new instance of the class with a given + search comparer + + + Search comparer used to find the key by name in the collection + + + + Initializes a new instance of the class + from a previous instance of . + + + Data from the original KeyDataCollection instance is deeply copied + + + The instance of the class + used to create the new instance. + + + + Gets or sets the value of a concrete key. + + + If we try to assign the value of a key which doesn't exists, + a new key is added with the name and the value is assigned to it. + + + Name of the key + + + The string with key's value or null if the key was not found. + + + + Return the number of keys in the collection + + + + + Adds a new key to the collection + + + KeyData instance. + + + true if the key was added false if a key with the same name already exist + in the collection + + + + Adds a new key with the specified name and value to the collection + + + Name of the new key to be added. + + + Value associated to the key. + + + true if the key was added false if a key with the same name already exist + in the collection. + + + + Clears all comments of this section + + + + Gets if a specifyed key name exists in the collection. + + Key name to search + true if a key with the specified name exists in the collectoin + false otherwise + + + Retrieves the data for a specified key given its name + + Name of the key to retrieve. + + A instance holding + the key information or null if the key wasn't found. + + + + Deletes all keys in this collection. + + + + Deletes a previously existing key, including its associated data. + + The key to be removed. + + true if a key with the specified name was removed + false otherwise. + + + + Sets the key data associated to a specified key. + + The new for the key. + + + Allows iteration througt the collection. + + A strong-typed IEnumerator + + + Implementation needed + + A weak-typed IEnumerator. + + + Creates a new object that is a copy of the current instance. + + + A new object that is a copy of this instance. + + + + Collection of KeyData for a given section + + + + Responsible for parsing an string from an ini file, and creating + an structure. + + + + Ctor + + + The parser uses a by default + + + + Ctor + + + Parser's instance. + + + + Configuration that defines the behaviour and constraints + that the parser must follow. + + + + True is the parsing operation encounter any problem + + + + Returns the list of errors found while parsing the ini file. + + + If the configuration option ThrowExceptionOnError is false it can contain one element + for each problem found while parsing; otherwise it will only contain the very same + exception that was raised. + + + + Parses a string containing valid ini data + + + String with data + + + An instance with the data contained in + the correctly parsed an structured. + + + Thrown if the data could not be parsed + + + + Checks if a given string contains a comment. + + + String with a line to be checked. + + + true if any substring from s is a comment, false otherwise. + + + + Checks if a given string represents a section delimiter. + + + The string to be checked. + + + true if the string represents a section, false otherwise. + + + + Checks if a given string represents a key / value pair. + + + The string to be checked. + + + true if the string represents a key / value pair, false otherwise. + + + + Removes a comment from a string if exist, and returns the string without + the comment substring. + + + The string we want to remove the comments from. + + + The string s without comments. + + + + Processes one line and parses the data found in that line + (section or key/value pair who may or may not have comments) + + The string with the line to process + + + Proccess a string which contains an ini section. + + + The string to be processed + + + + Processes a string containing an ini key/value pair. + + + The string to be processed + + + + Extracts the key portion of a string containing a key/value pair.. + + + The string to be processed, which contains a key/value pair + + + The name of the extracted key. + + + + Extracts the value portion of a string containing a key/value pair.. + + + The string to be processed, which contains a key/value pair + + + The name of the extracted value. + + + + Abstract Method that decides what to do in case we are trying to add a duplicated key to a section + + + + Adds a key to a concrete instance, checking + if duplicate keys are allowed in the configuration + + + Key name + + + Key's value + + + collection where the key should be inserted + + + Name of the section where the is contained. + Used only for logging purposes. + + + + Temp list of comments + + + + Tmp var with the name of the seccion which is being process + + + + Information associated to a section in a INI File + Includes both the value and the comments associated to the key. + + + + Initializes a new instance of the class. + + + + Initializes a new instance of the class + from a previous instance of . + + + Data is deeply copied + + + The instance of the class + used to create the new instance. + + + Search comparer. + + + + Deletes all comments in this section and key/value pairs + + + + Deletes all the key-value pairs in this section. + + + + Merges otherSection into this, adding new keys if they don't exists + or overwriting values if the key already exists. + Comments get appended. + + + Comments are also merged but they are always added, not overwritten. + + + + + Gets or sets the name of the section. + + + The name of the section + + + + Gets or sets the comment list associated to this section. + + + A list of strings. + + + + Gets or sets the comment list associated to this section. + + + A list of strings. + + + + Gets or sets the comment list associated to this section. + + + A list of strings. + + + + Gets or sets the keys associated to this section. + + + A collection of KeyData objects. + + + + Creates a new object that is a copy of the current instance. + + + A new object that is a copy of this instance. + + + + Represents a collection of SectionData. + + + + Initializes a new instance of the class. + + + + Initializes a new instance of the class. + + + StringComparer used when accessing section names + + + + Initializes a new instance of the class + from a previous instance of . + + + Data is deeply copied + + + The instance of the class + used to create the new instance. + + + Returns the number of SectionData elements in the collection + + + + Gets the key data associated to a specified section name. + + An instance of as class + holding the key data from the current parsed INI data, or a null + value if the section doesn't exist. + + + Creates a new section with empty data. + + + If a section with the same name exists, this operation has no effect. + + Name of the section to be created + true if the a new section with the specified name was added, + false otherwise + If the section name is not valid. + + + Adds a new SectionData instance to the collection + + Data. + + + Removes all entries from this collection + + + + Gets if a section with a specified name exists in the collection. + + Name of the section to search + + true if a section with the specified name exists in the + collection false otherwise + + + + Returns the section data from a specify section given its name. + + Name of the section. + + An instance of a class + holding the section data for the currently INI data + + + + Sets the section data for given a section name. + + + The new instance. + + + + + true if the section with the specified name was removed, + false otherwise + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + Creates a new object that is a copy of the current instance. + + + A new object that is a copy of this instance. + + + + Data associated to this section + + + + Represents an INI data parser for streams. + + + + This instance will handle ini data parsing and writing + + + + Ctor + + + + Ctor + + + + + Reads data in INI format from a stream. + + Reader stream. + + And instance with the readed ini data parsed. + + + Thrown if is null. + + + + Writes the ini data to a stream. + + A write stream where the ini data will be stored + An instance. + + Thrown if is null. + + + + Writes the ini data to a stream. + + A write stream where the ini data will be stored + An instance. + Formaterr instance that controls how the ini data is transformed to a string + + Thrown if is null. + + + + Represents an INI data parser for strings. + + + This class is deprecated and kept for backwards compatibility. + It's just a wrapper around class. + Please, replace your code. + + + + This instance will handle ini data parsing and writing + + + + Ctor + + + + Ctor + + + + + Parses a string containing data formatted as an INI file. + + The string containing the data. + + A new instance with the data parsed from the string. + + + + Creates a string from the INI data. + + An instance. + + A formatted string with the contents of the + instance object. + + + + Represents an error ococcurred while parsing data + + + + Configuration used to write an ini file with the proper + delimiter characters and data. + + + If the instance was created by a parser, + this instance is a copy of the used + by the parser (i.e. different objects instances) + If this instance is created programatically without using a parser, this + property returns an instance of + + + + Formats a IniData structure to an string + + + + Produces an string given + + The data to string. + Ini data. + + + Configuration used by this formatter when converting IniData + to an string + + + + Represents all data from an INI file exactly as the + class, but searching for sections and keys names is done with + a case insensitive search. + + + + Initializes an empty IniData instance. + + + + Initializes a new IniData instance using a previous + . + + + object containing the + data with the sections of the file + + + + Copies an instance of the class + + Original + + + Defines data for a Parser configuration object. + + With a configuration object you can redefine how the parser + will detect special items in the ini file by defining new regex + (e.g. you can redefine the comment regex so it just treat text as + a comment iff the comment caracter is the first in the line) + or changing the set of characters used to define elements in + the ini file (e.g. change the 'comment' caracter from ';' to '#') + You can also define how the parser should treat errors, or how liberal + or conservative should it be when parsing files with "strange" formats. + + + Default values used if an instance of + is created without specifying a configuration. + + + By default the various delimiters for the data are setted: + ';' for one-line comments + '[' ']' for delimiting a section + '=' for linking key / value pairs + + An example of well formed data with the default values: + + ;section comment
+ [section] ; section comment
+
+ ; key comment
+ key = value ;key comment
+
+ ;key2 comment
+ key2 = value
+
+
+
+ + + Copy ctor. + + + Original instance to be copied. + + + + Sets the char that defines the start of a section name. + + + Defaults to character '[' + + + + Sets the char that defines the end of a section name. + + + Defaults to character ']' + + + + Retrieving section / keys by name is done with a case-insensitive + search. + + + Defaults to false (case sensitive search) + + + + Sets the char that defines the start of a comment. + A comment spans from the comment character to the end of the line. + + + Defaults to character ';' + + + + Sets the string that defines the start of a comment. + A comment spans from the mirst matching comment string + to the end of the line. + + + Defaults to string ";" + + + + Sets the char that defines a value assigned to a key + + + Defaults to character '=' + + + + Sets the string around KeyValuesAssignmentChar + + + Defaults to string ' ' + + + + Allows having keys in the file that don't belong to any section. + i.e. allows defining keys before defining a section. + If set to false and keys without a section are defined, + the will stop with an error. + + + Defaults to true. + + + + If set to false and the finds duplicate keys in a + section the parser will stop with an error. + If set to true, duplicated keys are allowed in the file. The value + of the duplicate key will be the last value asigned to the key in the file. + + + Defaults to false. + + + + Only used if is also true + If set to true when the parser finds a duplicate key, it overrites + the previous value, so the key will always contain the value of the + last key readed in the file + If set to false the first readed value is preserved, so the key will + always contain the value of the first key readed in the file + + + Defaults to false. + + + + Gets or sets a value indicating whether duplicate keys are concatenate + together by . + + + Defaults to false. + + + + If true the instance will thrown an exception + if an error is found. + If false the parser will just stop execution and return a null value. + + + Defaults to true. + + + + If set to false and the finds a duplicate section + the parser will stop with an error. + If set to true, duplicated sections are allowed in the file, but only a + element will be created in the + collection. + + + Defaults to false. + + + + Creates a new object that is a copy of the current instance. + + + A new object that is a copy of this instance. + + 2 + +
+
diff --git a/tests/Trinity.Tests.Virtuoso/bin/Debug/Models/rdf-schema.rdf b/tests/Trinity.Tests.Virtuoso/bin/Debug/Models/rdf-schema.rdf new file mode 100644 index 0000000..bf17bab --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Debug/Models/rdf-schema.rdf @@ -0,0 +1,130 @@ + + + + + + + Resource + The class resource, everything. + + + + + Class + The class of classes. + + + + + + subClassOf + The subject is a subclass of a class. + + + + + + + subPropertyOf + The subject is a subproperty of a property. + + + + + + + comment + A description of the subject resource. + + + + + + + label + A human-readable name for the subject. + + + + + + + domain + A domain of the subject property. + + + + + + + range + A range of the subject property. + + + + + + + seeAlso + Further information about the subject resource. + + + + + + + + isDefinedBy + The defininition of the subject resource. + + + + + + + Literal + The class of literal values, eg. textual strings and integers. + + + + + + Container + + The class of RDF containers. + + + + + ContainerMembershipProperty + The class of container membership properties, rdf:_1, rdf:_2, ..., + all of which are sub-properties of 'member'. + + + + + + member + A member of the subject resource. + + + + + + + Datatype + The class of RDF datatypes. + + + + + + + + diff --git a/tests/Trinity.Tests.Virtuoso/bin/Debug/Models/rdf-syntax.rdf b/tests/Trinity.Tests.Virtuoso/bin/Debug/Models/rdf-syntax.rdf new file mode 100644 index 0000000..a6815ec --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Debug/Models/rdf-syntax.rdf @@ -0,0 +1,156 @@ + + + + The RDF Concepts Vocabulary (RDF) + This is the RDF Schema for the RDF vocabulary terms in the RDF Namespace, defined in RDF 1.1 Concepts. + + + + + + + HTML + The datatype of RDF literals storing fragments of HTML content + + + + + + + langString + The datatype of language-tagged string values + + + + + + + PlainLiteral + The class of plain (i.e. untyped) literal values, as used in RIF and OWL 2 + + + + + + type + The subject is an instance of a class. + + + + + + + Property + The class of RDF properties. + + + + + + Statement + + The class of RDF statements. + + + + + subject + The subject of the subject RDF statement. + + + + + + + predicate + The predicate of the subject RDF statement. + + + + + + + object + The object of the subject RDF statement. + + + + + + + Bag + The class of unordered containers. + + + + + + Seq + The class of ordered containers. + + + + + + Alt + The class of containers of alternatives. + + + + + + value + Idiomatic property used for structured values. + + + + + + + + + List + The class of RDF Lists. + + + + + + nil + The empty list, with no items in it. If the rest of a list is nil then the list has no more items in it. + + + + + first + The first item in the subject RDF list. + + + + + + + rest + The rest of the subject RDF list after the first item. + + + + + + + + XMLLiteral + The datatype of XML literal values. + + + + + + + + diff --git a/tests/Trinity.Tests.Virtuoso/bin/Debug/Models/test-ntriples.nt b/tests/Trinity.Tests.Virtuoso/bin/Debug/Models/test-ntriples.nt new file mode 100644 index 0000000..91b4988 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Debug/Models/test-ntriples.nt @@ -0,0 +1,79 @@ +# +# Copyright World Wide Web Consortium, (Massachusetts Institute of +# Technology, Institut National de Recherche en Informatique et en +# Automatique, Keio University). +# +# All Rights Reserved. +# +# Please see the full Copyright clause at +# +# +# Test file with a variety of legal N-Triples +# +# Dave Beckett - http://purl.org/net/dajobe/ +# +# $Id: test.nt,v 1.7 2003/10/06 15:52:19 dbeckett2 Exp $ +# +##################################################################### + +# comment lines + # comment line after whitespace +# empty blank line, then one with spaces and tabs + + + . +_:anon . + _:anon . +# spaces and tabs throughout: + . + +# line ending with CR NL (ASCII 13, ASCII 10) + . + +# 2 statement lines separated by single CR (ASCII 10) + . + . + + +# All literal escapes + "simple literal" . + "backslash:\\" . + "dquote:\"" . + "newline:\n" . + "return\r" . + "tab:\t" . + +# Space is optional before final . + . + "x". + _:anon. + +# \u and \U escapes +# latin small letter e with acute symbol \u00E9 - 3 UTF-8 bytes #xC3 #A9 + "\u00E9" . +# Euro symbol \u20ac - 3 UTF-8 bytes #xE2 #x82 #xAC + "\u20AC" . +# resource18 test removed +# resource19 test removed +# resource20 test removed + +# XML Literals as Datatyped Literals + ""^^ . + " "^^ . + "x"^^ . + "\""^^ . + ""^^ . + "a "^^ . + "a c"^^ . + "a\n\nc"^^ . + "chat"^^ . +# resource28 test removed 2003-08-03 +# resource29 test removed 2003-08-03 + +# Plain literals with languages + "chat"@fr . + "chat"@en . + +# Typed Literals + "abc"^^ . +# resource33 test removed 2003-08-03 diff --git a/tests/Trinity.Tests.Virtuoso/bin/Debug/Models/test-ppo.rdf b/tests/Trinity.Tests.Virtuoso/bin/Debug/Models/test-ppo.rdf new file mode 100644 index 0000000..a4dcaf0 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Debug/Models/test-ppo.rdf @@ -0,0 +1,102 @@ + + + + + + + + + + + Documents + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ddMMYYYY + MMddYYYY + + + + + + hhmmss + + + + + {Wahr,Falsch} + {True,False} + + + \ No newline at end of file diff --git a/tests/Trinity.Tests.Virtuoso/bin/Debug/Models/test-tmo.trig b/tests/Trinity.Tests.Virtuoso/bin/Debug/Models/test-tmo.trig new file mode 100644 index 0000000..c368bb9 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Debug/Models/test-tmo.trig @@ -0,0 +1,1145 @@ +# +# Copyright (c) 2007 NEPOMUK Consortium +# All rights reserved, licensed under either CC-BY or BSD. +# +# You are free: +# * to Share - to copy, distribute and transmit the work +# * to Remix - to adapt the work +# Under the following conditions: +# * Attribution - You must attribute the work in the manner specified by the author +# or licensor (but not in any way that suggests that they endorse you or your use +# of the work). +# +# Redistribution and use in source and binary forms, with or without modification, +# are permitted provided that the following conditions are met: +# * Redistributions of source code must retain the above copyright notice, this +# list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this +# list of conditions and the following disclaimer in the documentation and/or +# other materials provided with the distribution. +# * Neither the names of the authors nor the names of contributors may +# be used to endorse or promote products derived from this ontology without +# specific prior written permission. +# +# THIS ONTOLOGY IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +# THIS ONTOLOGY, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +@prefix dc: . +@prefix exif: . +@prefix geo: . +@prefix protege: . +@prefix nao: . +@prefix nfo: . +@prefix nie: . +@prefix ncal: . +@prefix nco: . +@prefix dcterms: . +@prefix rdfs: . +@prefix pimo: . +@prefix nmo: . +@prefix nrl: . +@prefix tmo: . +@prefix xsd: . +@prefix rdf: . +@prefix nid3: . +@prefix nexif: . + +tmo: {tmo:TMO_Instance_PersonInvolvementRole_Creator + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Creator" . + + tmo:abilityCarrierRole + a rdf:Property ; + rdfs:domain tmo:AbilityCarrierInvolvement ; + rdfs:label "abilityCarrierRole" ; + rdfs:range tmo:AbilityCarrierRole ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:PersonInvolvement + a rdfs:Class ; + rdfs:comment "PersonInvolvement realizes n-ary associations to Persons which are realtedd to an task. The involvement is further characterized by an PersonTaskRole." ; + rdfs:label "PersonInvolvement" ; + rdfs:subClassOf rdfs:Resource , pimo:Association . + + tmo:TMO_Instance_TaskState_Running + a tmo:TaskState ; + rdfs:label "TMO_Instance_TaskState_Running" . + + tmo:SimilarityDependence + a rdfs:Class ; + rdfs:label "SimilarityDependence" ; + rdfs:subClassOf tmo:UndirectedDependency . + + tmo:PredecessorDependency + a rdfs:Class ; + rdfs:comment "In a PredecessorDependency the dependencyMemberA is the task which is to be executed before dependencyMemberB." ; + rdfs:label "PredecessorDependency" ; + rdfs:subClassOf tmo:PredecessorSuccessorDependency . + + tmo:TMO_Instance_TaskContainer_outbox + a tmo:TaskContainer ; + rdfs:label "TMO_Instance_TaskContainer_outbox" . + + tmo:dueDate + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "dueDate" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf pimo:taskDueTime , tmo:dateTime ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_Urgency_04 + a tmo:Urgency ; + rdfs:label "TMO_Instance_Urgency_04" . + + tmo:Priority + a rdfs:Class ; + rdfs:label "Priority" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:TaskContainer + a rdfs:Class ; + rdfs:label "TaskContainer" ; + rdfs:subClassOf pimo:Collection . + + tmo:Task + a rdfs:Class ; + rdfs:comment "The tmo:task is the central entitiey of the tmo. Task can range from vague things to be possibly done in e distant future to concrete things to be done in a precise forseeable manner. It is not unrealisitc to assume that knowledge worker have hundred or more tasks a day." ; + rdfs:label "Task" ; + rdfs:subClassOf pimo:Task . + + tmo:PersonInvolvementRole + a rdfs:Class ; + rdfs:comment """They further specify the type a person was related to an task. +Examples instances of AttachmentRoles are e.g.""" ; + rdfs:label "PersonInvolvementRole" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:actualCompletion + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "actualCompletion" ; + rdfs:range rdfs:Literal ; + rdfs:subPropertyOf tmo:progress ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_PersonInvolvementRole_Co-worker + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Co-worker" . + + tmo:urgency + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "urgency" ; + rdfs:range tmo:Urgency ; + rdfs:subPropertyOf tmo:timemanagement ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_TaskContainer_archive + a tmo:TaskContainer ; + rdfs:label "TMO_Instance_TaskContainer_archive" . + + tmo:dependency + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "dependency" ; + rdfs:range tmo:TaskDependency . + + tmo:TMO_Instance_Importance_10 + a tmo:Importance ; + rdfs:label "TMO_Instance_Importance_10" . + + tmo:targetStartTime + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "targetStartTime" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:targetTime , tmo:startTime ; + nrl:maxCardinality "1" . + + tmo:dependencyDescription + a rdf:Property ; + rdfs:comment "Endusers can clarify why they created a depedency." ; + rdfs:domain tmo:TaskDependency ; + rdfs:label "dependencyDescription" ; + rdfs:subPropertyOf nao:description ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_Importance_09 + a tmo:Importance ; + rdfs:label "TMO_Instance_Importance_09" . + + tmo:transmissionState + a rdf:Property ; + rdfs:domain tmo:TaskTransmission ; + rdfs:label "transmissionState" ; + rdfs:range tmo:TransmissionState ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:AbilityCarrierRole + a rdfs:Class ; + rdfs:comment "Examples instances of AbilityCarrirRoles are e.g. \"requested\", \"required\" and \"used\" which further specify the type a person was involved in." ; + rdfs:label "AbilityCarrierRole" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:TMO_Instance_TaskState_Finalized + a tmo:TaskState ; + rdfs:label "TMO_Instance_TaskState_Finalized" . + + tmo:abilityCarrier + a rdf:Property ; + rdfs:domain tmo:AbilityCarrierInvolvement ; + rdfs:label "abilityCarrier" ; + rdfs:range tmo:AbilityCarrier ; + rdfs:subPropertyOf pimo:associationMember ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:TMO_Instance_TransmissionState_Rejected_Transmitted + a tmo:TransmissionState ; + rdfs:label "TMO_Instance_TransmissionState_Rejected_Transmitted" . + + tmo:TMO_Instance_Delegability_High + a tmo:Delegability ; + rdfs:label "TMO_Instance_Delegability_High" . + + tmo:TMO_Instance_Urgency_10 + a tmo:Urgency ; + rdfs:label "TMO_Instance_Urgency_10" . + + tmo:taskId + a rdf:Property ; + rdfs:comment """The Task Identifier allows a unique identification of a task object within the range of all Nepomuk objects. +The Task Identifier is automatically generated during the creation of a task. The generation of identifiers (IDs) is a Nepomuk architecture issue (Wp2000/WP6000).""" ; + rdfs:domain tmo:Task ; + rdfs:label "taskId" ; + rdfs:range rdfs:Literal ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:TMO_Instance_Importance_01 + a tmo:Importance ; + rdfs:label "TMO_Instance_Importance_01" . + + tmo:TMO_Instance_TransmissionType_Transfer + a tmo:TransmissionType ; + rdfs:label "TMO_Instance_TransmissionType_Transfer" . + + tmo:priority + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "priority" ; + rdfs:range tmo:Priority ; + rdfs:subPropertyOf tmo:timemanagement ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_Urgency_03 + a tmo:Urgency ; + rdfs:label "TMO_Instance_Urgency_03" . + + tmo:involvedPersons + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "involvedPersons" ; + rdfs:range tmo:PersonInvolvement ; + nrl:inverseProperty tmo:involvedPersonTask . + + tmo:involvedPerson + a rdf:Property ; + rdfs:domain tmo:PersonInvolvement ; + rdfs:label "involvedPerson" ; + rdfs:range pimo:Person ; + rdfs:subPropertyOf pimo:associationMember ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:TaskTransmission + a rdfs:Class ; + rdfs:comment """On the SSD, tasks are not restricted to one person and may cross from +the PTM of one person to the PTM of another. With transmission, we +refer to the process of sending a task – from one person (sender) to one +or more other persons (receiver(s)) (see Section 5.2.1.3 Task +Transmission). Task delegation and task transfer are two special kinds of +task transmission which are described at the end of this section. In +addition, the collaborative task is realized by task transmission. +For the process of sending a task, some information is required. This +information is also modelled in the task ontology. This information is still +useful after the process of sending a task was completed. Task Delegation is a process where the sender of the task restricts the +access rights of the receiver. This includes the right to distribute further +this task and additionally the obligation to give feedback to the sender. +The person that receives a task by delegation usually has not the full +control about the task. The attributes described in the following section +have the purpose to enable such \"access rights\". The receiver will also +probably have obligations regarding what to report to whom at which +time. +In contrast, the simplest case is that all rights are granted to the receiver +and there is no feedback desired by the sender. What to do with the task +may be apparent by the organization context, or it may be left to the +receiver. This is like sending an email – but with the advantage that the +information is transferred in the \"task space\" of the participating persons.""" ; + rdfs:label "TaskTransmission" ; + rdfs:subClassOf rdfs:Resource . + + tmo:containsTask + a rdf:Property ; + rdfs:domain tmo:TaskContainer ; + rdfs:label "containsTask" ; + rdfs:range tmo:Task ; + rdfs:subPropertyOf pimo:hasPart . + + tmo:TMO_Instance_PersonInvolvementRole_Suggested + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Suggested" . + + tmo:TMO_Instance_TaskState_Archived + a tmo:TaskState ; + rdfs:label "TMO_Instance_TaskState_Archived" . + + tmo:targetTime + a rdf:Property ; + rdfs:label "targetTime" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:dateTime ; + nrl:maxCardinality "1" . + + tmo:indexPosition + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "indexPosition" ; + rdfs:range rdfs:Literal ; + nrl:maxCardinality "1" . + + tmo:dependencyType + a rdf:Property ; + rdfs:label "dependencyType" ; + rdfs:range rdfs:Resource ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:targetEndTime + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "targetEndTime" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:targetTime , tmo:endTime ; + nrl:maxCardinality "1" . + + tmo:PredecessorSuccessorDependency + a rdfs:Class ; + rdfs:comment "The PredecessorSuccessorDependency enables a directed relation between task. By means of the concrete sublcasses one can further distinguish from which point of view this relation is created." ; + rdfs:label "PredecessorSuccessorDependency" ; + rdfs:subClassOf tmo:TaskDependency ; + protege:role "abstract" . + + tmo:TMO_Instance_Importance_08 + a tmo:Importance ; + rdfs:label "TMO_Instance_Importance_08" . + + tmo:attachmentReference + a rdf:Property ; + rdfs:domain tmo:Attachment ; + rdfs:label "attachmentReference" ; + rdfs:range rdfs:Resource ; + rdfs:subPropertyOf pimo:associationMember ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:TMO_Instance_Delegability_Never + a tmo:Delegability ; + rdfs:label "TMO_Instance_Delegability_Never" . + + tmo:superTask + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "superTask" ; + rdfs:range tmo:Task ; + rdfs:subPropertyOf pimo:partOf , tmo:taskReference ; + nrl:inverseProperty tmo:subTask ; + nrl:maxCardinality "1" . + + tmo:taskDescription + a rdf:Property ; + rdfs:comment """The task description helps users to understand the goal and the proceeding of a task. It can also describe the context of a task. The task description is composed at minimum of a summary of what is done to reach the goal. The task description is the main source for identifying related information, e.g., suitable patterns. +A Task Description can be either an informal, described textual content (?TextualDescription) or it can be a more formally structured representation (àFormalDescription). +Technology considerations: Informal descriptions allow for text similarity processing, a formal description allows for applying case based similarity measures.""" ; + rdfs:domain tmo:Task ; + rdfs:label "taskDescription" ; + rdfs:subPropertyOf nao:description ; + nrl:maxCardinality "1" . + + tmo:SuperSubTaskDependency + a rdfs:Class ; + rdfs:comment "By means of the SuperSubTaskDependency one can further describe the subtask-supertask relation .e.g by an descriptin. This enables an n-ary relation between subtask and supertask." ; + rdfs:label "SuperSubTaskDependency" ; + rdfs:subClassOf tmo:TaskDependency . + + tmo:contextTask + a rdf:Property ; + rdfs:label "contextTask" ; + rdfs:range tmo:Task ; + nrl:inverseProperty tmo:contextThread ; + nrl:maxCardinality "1" . + + tmo:SuccessorDependency + a rdfs:Class ; + rdfs:comment "In a SuccessorrDependency the dependencyMemberA is the task which is to be executed after dependencyMemberB." ; + rdfs:label "SuccessorDependency" ; + rdfs:subClassOf tmo:PredecessorSuccessorDependency . + + tmo:stateTypeRole + a rdf:Property ; + rdfs:label "stateTypeRole" ; + rdfs:range rdfs:Resource ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_TransmissionState_NotTransmitted + a tmo:TransmissionState ; + rdfs:label "TMO_Instance_TransmissionState_NotTransmitted" . + + tmo:TMO_Instance_Urgency_06 + a tmo:Urgency ; + rdfs:label "TMO_Instance_Urgency_06" . + + tmo:abilityCarrierInvolvement + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "abilityCarrierInvolvement" ; + rdfs:range tmo:AbilityCarrierInvolvement ; + nrl:inverseProperty tmo:abilityCarrierTask . + + tmo:TMO_Instance_AbilityCarrierRole_Required + a tmo:AbilityCarrierRole ; + rdfs:label "TMO_Instance_AbilityCarrierRole_Required" . + + tmo:actualStartTime + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "actualStartTime" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:actualTime , tmo:startTime ; + nrl:maxCardinality "1" . + + tmo:transmissionType + a rdf:Property ; + rdfs:domain tmo:TaskTransmission ; + rdfs:label "transmissionType" ; + rdfs:range tmo:TransmissionType ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:taskTransmission + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "taskTransmission" ; + rdfs:range tmo:TaskTransmission ; + nrl:inverseProperty tmo:transmissionTask . + + tmo:TMO_Instance_PersonInvolvementRole_Executor + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Executor" . + + tmo:targetCompletion + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "targetCompletion" ; + rdfs:range rdfs:Literal ; + rdfs:subPropertyOf tmo:progress ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_Delegability_Medium + a tmo:Delegability ; + rdfs:label "TMO_Instance_Delegability_Medium" . + + tmo:AgentAbilityCarrier + a rdfs:Class ; + rdfs:label "AgentAbilityCarrier" ; + rdfs:subClassOf tmo:AbilityCarrier ; + protege:role "abstract" . + + tmo:transmissionTask + a rdf:Property ; + rdfs:domain tmo:TaskTransmission ; + rdfs:label "transmissionTask" ; + rdfs:range tmo:Task ; + rdfs:subPropertyOf tmo:taskReference ; + nrl:inverseProperty tmo:taskTransmission ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:Attachment + a rdfs:Class ; + rdfs:comment "By means of attachments, references to other resources can be established. Resources are information objects. Every Thing, which can be referenced, on the SSD is an information object. In contrast to the usual SSD references/associations, here additionally information can be specified. Further metadata about the role an attachment plays can be stated by means of instances of AttachmentRole. It can be expressed what the Role of attachment is e.g., regarding \"desired/requested\" or \"required\" or \"potentially useful / somehow related\" or \"used/produced/achieved\". The reference property models the actual link to the attached piece of information." ; + rdfs:label "Attachment" ; + rdfs:subClassOf rdfs:Resource , pimo:Association . + + tmo:TMO_Instance_TaskPrivacy_Private + a tmo:TaskPrivacyState ; + rdfs:label "TMO_Instance_TaskPrivacy_Private" . + + tmo:TMO_Instance_Importance_07 + a tmo:Importance ; + rdfs:label "TMO_Instance_Importance_07" . + + tmo:AssociationDependency + a rdfs:Class ; + rdfs:label "AssociationDependency" ; + rdfs:subClassOf tmo:UndirectedDependency . + + tmo:nextReviewIntervall + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "nextReviewIntervall" ; + rdfs:range xsd:integer ; + nrl:maxCardinality "1" . + + tmo:transmissionFrom + a rdf:Property ; + rdfs:domain tmo:TaskTransmission ; + rdfs:label "transmissionFrom" ; + rdfs:range pimo:Person ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:taskState + a rdf:Property ; + rdfs:comment "The task state describes the current state of the task as described in Section 5.2.7." ; + rdfs:domain tmo:Task ; + rdfs:label "taskState" ; + rdfs:range tmo:TaskState ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:delegability + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "delegability" ; + rdfs:range tmo:Delegability ; + rdfs:subPropertyOf tmo:timemanagement ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_PersonInvolvementRole_Related + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Related" . + + tmo:TMO_Instance_TaskContainer_inbox + a tmo:TaskContainer ; + rdfs:label "TMO_Instance_TaskContainer_inbox" . + + tmo:TMO_Instance_AttachmentRole_Required + a tmo:AttachmentRole ; + rdfs:label "TMO_Instance_AttachmentRole_Required" . + + tmo:taskPrivacyState + a rdf:Property ; + rdfs:comment """For the separation between professional and private purpose of a task, this attribute provides with the values \"professional/private\" a high level separation of privacy in terms of setting distribution rights to other users for the task. +This separation may arise as a general Nepomuk issue and may therefore be handled in conjunction with a privacy preserving SSD architecture.""" ; + rdfs:domain tmo:Task ; + rdfs:label "taskPrivacyState" ; + rdfs:range tmo:TaskPrivacyState ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" . + + tmo:taskName + a rdf:Property ; + rdfs:comment "The Task Name helps the user to identify a task in a list. It should be expressive enough to give a meaningful recognition. Details should be written in the description attribute instead. A name attribute is not allowed to contain line breaks." ; + rdfs:domain tmo:Task ; + rdfs:label "taskName" ; + rdfs:range rdfs:Literal ; + rdfs:subPropertyOf nao:prefLabel ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_AbilityCarrierRole_Requested + a tmo:AbilityCarrierRole ; + rdfs:label "TMO_Instance_AbilityCarrierRole_Requested" . + + tmo:TMO_Instance_PersonInvolvementRole_Controller + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Controller" . + + tmo:TMO_Instance_PersonInvolvementRole_Delegate + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Delegate" . + + tmo:transmissionStateChangesFrom + a rdf:Property ; + rdfs:domain tmo:TransmissionState ; + rdfs:label "transmissionStateChangesFrom" ; + rdfs:range tmo:TransmissionState ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" . + + tmo:TransmissionState + a rdfs:Class ; + rdfs:comment "States a task can go through during transmission of an task." ; + rdfs:label "TransmissionState" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:transmissionStateChangesTo + a rdf:Property ; + rdfs:domain tmo:TransmissionState ; + rdfs:label "transmissionStateChangesTo" ; + rdfs:range tmo:TransmissionState ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_PersonInvolvementRole_ExternalObserver + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_ExternalObserver" . + + tmo:TMO_Instance_Urgency_05 + a tmo:Urgency ; + rdfs:label "TMO_Instance_Urgency_05" . + + tmo:TaskDependency + a rdfs:Class ; + rdfs:comment """Between the tasks, further dependencies may exist. These dependencies allow for a graph network structure. For ease of use, dependencies should not be too frequent, otherwise the primarily character of a hierarchy would be diminished and a consequent graph representation would become considerable. However, such a graph representation has other drawbacks, the user is likely to loose oversight, tree structures are more helpful in structuring the work. + +A dependency relation is characterized by the type of the relation and by an additional description. There are different possibilities for dependency relations between tasks.""" ; + rdfs:label "TaskDependency" ; + rdfs:subClassOf rdfs:Resource , pimo:Association ; + protege:role "abstract" . + + tmo:TMO_Instance_TaskState_Completed + a tmo:TaskState ; + rdfs:label "TMO_Instance_TaskState_Completed" . + + tmo:TMO_Instance_Importance_06 + a tmo:Importance ; + rdfs:label "TMO_Instance_Importance_06" . + + tmo:attachmentRole + a rdf:Property ; + rdfs:domain tmo:Attachment ; + rdfs:label "attachmentRole" ; + rdfs:range tmo:AttachmentRole ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_TaskPrivacy_Professional + a tmo:TaskPrivacyState ; + rdfs:label "TMO_Instance_TaskPrivacy_Professional" . + + tmo:TMO_Instance_TaskState_Terminated + a tmo:TaskState ; + rdfs:label "TMO_Instance_TaskState_Terminated" . + + tmo:TMO_Instance_PersonInvolvementRole_Owner + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Owner" . + + tmo:TMO_Instance_AttachmentRole_Desired_Requested + a tmo:AttachmentRole ; + rdfs:label "TMO_Instance_AttachmentRole_Desired_Requested" . + + tmo:involvedPersonTask + a rdf:Property ; + rdfs:domain tmo:PersonInvolvement ; + rdfs:label "involvedPersonTask" ; + rdfs:range tmo:Task ; + rdfs:subPropertyOf pimo:associationMember ; + nrl:inverseProperty tmo:involvedPersons ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_TransmissionState_Accepted_NotTransmitted + a tmo:TransmissionState ; + rdfs:label "TMO_Instance_TransmissionState_Accepted_NotTransmitted" . + + tmo:TMO_Instance_PersonInvolvementRole_Analyst + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Analyst" . + + tmo:logEntry + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "logEntry" ; + rdfs:range rdfs:Resource . + + tmo:transmissionTo + a rdf:Property ; + rdfs:domain tmo:TaskTransmission ; + rdfs:label "transmissionTo" ; + rdfs:range pimo:Person ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:Importance + a rdfs:Class ; + rdfs:label "Importance" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:TMO_Instance_TransmissionType_Join + a tmo:TransmissionType ; + rdfs:label "TMO_Instance_TransmissionType_Join" . + + tmo:Delegability + a rdfs:Class ; + rdfs:label "Delegability" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:lastReviewDate + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "lastReviewDate" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:dateTime ; + nrl:maxCardinality "1" . + + tmo:Role + a rdfs:Class ; + rdfs:comment "examples: Architect, Developer, ..." ; + rdfs:label "Role" ; + rdfs:subClassOf tmo:AbilityCarrier . + + tmo:timemanagement + a rdf:Property ; + rdfs:label "timemanagement" ; + rdfs:range rdfs:Literal ; + nrl:maxCardinality "1" . + + tmo:taskGoal + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "taskGoal" ; + rdfs:range rdfs:Resource . + + tmo:dependencyMemberA + a rdf:Property ; + rdfs:comment "The semantic of this relation is defined in the sublclass of undirected Dependency on which this property is stated. (The subject of the statment where this property is expressed)" ; + rdfs:domain tmo:TaskDependency ; + rdfs:label "dependencyMemberA" ; + rdfs:range tmo:Task ; + rdfs:subPropertyOf tmo:taskReference , pimo:associationMember ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:startTime + a rdf:Property ; + rdfs:label "startTime" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:dateTime ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_Urgency_08 + a tmo:Urgency ; + rdfs:label "TMO_Instance_Urgency_08" . + + tmo:taskStateChangesFrom + a rdf:Property ; + rdfs:domain tmo:TaskState ; + rdfs:label "taskStateChangesFrom" ; + rdfs:range tmo:TaskState ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" . + + tmo:receiveDateTime + a rdf:Property ; + rdfs:domain tmo:TaskTransmission ; + rdfs:label "receiveDateTime" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:dateTime ; + nrl:maxCardinality "1" . + + tmo:createdBy + a rdf:Property ; + rdfs:domain tmo:Attachment ; + rdfs:label "createdBy" ; + rdfs:range pimo:Person ; + nrl:maxCardinality "1" . + + tmo:progress + a rdf:Property ; + rdfs:label "progress" ; + rdfs:range rdfs:Literal ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_AbilityCarrierRole_Used + a tmo:AbilityCarrierRole ; + rdfs:label "TMO_Instance_AbilityCarrierRole_Used" . + + tmo:TMO_Instance_Importance_05 + a tmo:Importance ; + rdfs:label "TMO_Instance_Importance_05" . + + tmo:TMO_Instance_TaskContainer_activetasks + a tmo:TaskContainer ; + rdfs:label "TMO_Instance_TaskContainer_activetasks" . + + tmo:sendDateTime + a rdf:Property ; + rdfs:domain tmo:TaskTransmission ; + rdfs:label "sendDateTime" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:dateTime ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_PersonInvolvementRole_Collaborator + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Collaborator" . + + tmo:TMO_Instance_TaskState_Suspended + a tmo:TaskState ; + rdfs:label "TMO_Instance_TaskState_Suspended" . + + tmo:AbilityCarrierInvolvement + a rdfs:Class ; + rdfs:comment "The class AbilityCarrier_Involvement ties together an AbilityCarrier with an AbilityCarrier_Role. This is a role based modelling approach. An n-ary relation is realized." ; + rdfs:label "AbilityCarrierInvolvement" ; + rdfs:subClassOf rdfs:Resource , pimo:Association . + + tmo:endTime + a rdf:Property ; + rdfs:label "endTime" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:dateTime ; + nrl:maxCardinality "1" . + + tmo:dependencyMemberB + a rdf:Property ; + rdfs:comment "The semantic of this relation is defined in the sublclass of undirected Dependency on which this property is stated. (The subject of the statment where this property is expressed)" ; + rdfs:domain tmo:TaskDependency ; + rdfs:label "dependencyMemberB" ; + rdfs:range tmo:Task ; + rdfs:subPropertyOf tmo:taskReference , pimo:associationMember ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:TMO_Instance_Priority_High + a tmo:Priority ; + rdfs:label "TMO_Instance_Priority_High" . + + tmo:TMO_Instance_PersonInvolvementRole_Observer + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Observer" . + + tmo:TMO_Instance_Delegability_Unrestricted + a tmo:Delegability ; + rdfs:label "TMO_Instance_Delegability_Unrestricted" . + + tmo:TMO_Instance_Priority_Medium + a tmo:Priority ; + rdfs:label "TMO_Instance_Priority_Medium" . + + tmo:TMO_Instance_Delegability_Low + a tmo:Delegability ; + rdfs:label "TMO_Instance_Delegability_Low" . + + tmo:Interdependence + a rdfs:Class ; + rdfs:label "Interdependence" ; + rdfs:subClassOf tmo:UndirectedDependency . + + tmo:involvedPersonRole + a rdf:Property ; + rdfs:domain tmo:PersonInvolvement ; + rdfs:label "involvedPersonRole" ; + rdfs:range tmo:PersonInvolvementRole ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:AttachmentRole + a rdfs:Class ; + rdfs:comment "AttachmentRoles further specify the type of how an attachment relates to a task. Example instances of AttachmentRoles are e.g. \"desired_request\", \"required\" and \"used\"." ; + rdfs:label "AttachmentRole" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:TMO_Instance_Urgency_07 + a tmo:Urgency ; + rdfs:label "TMO_Instance_Urgency_07" . + + tmo:TMO_Instance_PersonInvolvementRole_Reviewer + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Reviewer" . + + tmo:TransmissionType + a rdfs:Class ; + rdfs:comment "By means of the TransmissionType one can distinguish several different types which might imply a different business logic. e.g. delegation can mean that the results of the task fulfillment care to be reported back to the sender of the task." ; + rdfs:label "TransmissionType" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:actualEndTime + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "actualEndTime" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:endTime , tmo:actualTime ; + nrl:maxCardinality "1" . + + tmo:subTask + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "subTask" ; + rdfs:range tmo:Task ; + rdfs:subPropertyOf pimo:hasPart ; + nrl:inverseProperty tmo:superTask . + + tmo:TMO_Instance_TransmissionType_Delegation + a tmo:TransmissionType ; + rdfs:label "TMO_Instance_TransmissionType_Delegation" . + + tmo:TMO_Instance_Importance_04 + a tmo:Importance ; + rdfs:label "TMO_Instance_Importance_04" . + + tmo:TaskState + a rdfs:Class ; + rdfs:comment """The task state property allows tracking a task during its lifecycle. Initially the state is just \"created\". +The TaskState class was modeled so that for each state can be set which the typical prior and posterior states are. This has the advantage that e.g. a UI can retrieve the allowed states at runtime from the ontology; rather can having this potentially changing knowledge hard coded. But the prior and posterior states are only defaults; the human user is always free to change the state.""" ; + rdfs:label "TaskState" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:taskSource + a rdf:Property ; + rdfs:comment "here can be stated from which sources a task was derived. e.g from another task or from an task pattern" ; + rdfs:domain tmo:Task ; + rdfs:label "taskSource" ; + rdfs:range rdfs:Resource ; + rdfs:subPropertyOf tmo:taskReference ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_Urgency_02 + a tmo:Urgency ; + rdfs:label "TMO_Instance_Urgency_02" . + + tmo:TMO_Instance_TransmissionState_Accepted_Transmitted + a tmo:TransmissionState ; + rdfs:label "TMO_Instance_TransmissionState_Accepted_Transmitted" . + + tmo:TMO_Instance_TaskState_New + a tmo:TaskState ; + rdfs:label "TMO_Instance_TaskState_New" . + + tmo:Urgency + a rdfs:Class ; + rdfs:label "Urgency" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:StateTypeRole + a rdfs:Class ; + rdfs:comment "StateTypeRole is an abstract class which subsumes various other classes which represent \"states\" or roles e.g. in role based modelling conpetualisations." ; + rdfs:label "StateTypeRole" ; + rdfs:subClassOf rdfs:Resource . + + tmo:TMO_Instance_TaskContainer_trashtasks + a tmo:TaskContainer ; + rdfs:label "TMO_Instance_TaskContainer_trashtasks" . + + tmo:contextThread + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "contextThread" ; + rdfs:range ; + nrl:inverseProperty tmo:contextTask ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_AttachmentRole_Used + a tmo:AttachmentRole ; + rdfs:label "TMO_Instance_AttachmentRole_Used" . + + tmo:abilityCarrierTask + a rdf:Property ; + rdfs:domain tmo:AbilityCarrierInvolvement ; + rdfs:label "abilityCarrierTask" ; + rdfs:range tmo:Task ; + rdfs:subPropertyOf pimo:associationMember ; + nrl:inverseProperty tmo:abilityCarrierInvolvement ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_TransmissionState_Rejected_NotTransmitted + a tmo:TransmissionState ; + rdfs:label "TMO_Instance_TransmissionState_Rejected_NotTransmitted" . + + tmo:TMO_Instance_Priority_Low + a tmo:Priority ; + rdfs:label "TMO_Instance_Priority_Low" . + + tmo:TMO_Instance_TransmissionState_Transmitted + a tmo:TransmissionState ; + rdfs:label "TMO_Instance_TransmissionState_Transmitted" . + + tmo:TMO_Instance_Importance_03 + a tmo:Importance ; + rdfs:label "TMO_Instance_Importance_03" . + + tmo:TMO_Instance_AttachmentRole_Related + a tmo:AttachmentRole ; + rdfs:label "TMO_Instance_AttachmentRole_Related" . + + tmo:taskReference + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "taskReference" ; + rdfs:range tmo:Task ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_PersonInvolvementRole_Involved + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Involved" . + + tmo:AbilityCarrier + a rdfs:Class ; + rdfs:comment """AbilityCarrier is an abstract class which circumferences all entities which can take action or which are somehow involved in tasks. +This is in other task conceptualizations rather named \"actor\". But here it is named AbilityCarrier because it is not neccessarily \"active\". + +The execution of a task relies on certain abilities. The abstract concept of +Abilitiy_Carriers circumference all those more concrete concepts +of which one can think of while working on tasks. Using this abstract +class enables to substitute such Ability Carrier's in the process of +generating patterns from task instances and vice versa in the process of +instantiating task instances from patterns without violating the schema. +With this attribute, a series of ability carrying entities (Person, Role, +Skill, OrganizationalUnit, InformalDescribedAbility) +and the role of involvement (required, request, used) is enabled. The role +hereby allows specifying how the ability carrying entity is or was +involved.""" ; + rdfs:label "AbilityCarrier" ; + rdfs:subClassOf rdfs:Resource ; + protege:role "abstract" . + + tmo:importance + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "importance" ; + rdfs:range tmo:Importance ; + rdfs:subPropertyOf tmo:timemanagement ; + nrl:maxCardinality "1" . + + tmo:subTaskOrdering + a rdf:Property ; + rdfs:comment "Ordering of the subtasks listed in the tmo:subTasks property of this Task. This is only for ordering/sorting in GUIs, the semantic relation is defined in subTasks, and if this and subTasks differ, subTasks is the correct list." ; + rdfs:domain tmo:Task ; + rdfs:label "subTaskOrdering" ; + rdfs:range rdf:List ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_Urgency_01 + a tmo:Urgency ; + rdfs:label "TMO_Instance_Urgency_01" . + + tmo:dependencyOrderNumber + a rdf:Property ; + rdfs:domain tmo:TaskDependency ; + rdfs:label "dependencyOrderNumber" ; + rdfs:range xsd:int ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:actualTime + a rdf:Property ; + rdfs:label "actualTime" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:dateTime ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_PersonInvolvementRole_Initiator + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Initiator" . + + tmo:dateTime + a rdf:Property ; + rdfs:comment "dateTime subsumes various properties with Range XMLSchema:dateTime. If possible they are further grouped by \"abstract\" properties." ; + rdfs:label "dateTime" ; + rdfs:range xsd:dateTime ; + nrl:maxCardinality "1" . + + tmo:UndirectedDependency + a rdfs:Class ; + rdfs:comment "A symmetric relations between task." ; + rdfs:label "UndirectedDependency" ; + rdfs:subClassOf tmo:TaskDependency . + + tmo:attachment + a rdf:Property ; + rdfs:comment "connects a Task with an Attachment object. Attachments are associations of Things." ; + rdfs:domain tmo:Task ; + rdfs:label "attachment" ; + rdfs:range tmo:Attachment ; + nrl:inverseProperty tmo:attachmentTask . + + tmo:attachmentTask + a rdf:Property ; + rdfs:comment "Inverse of attachment, connects an Attachment Association to the associated Task. Is required for every instance of Attachment." ; + rdfs:domain tmo:Attachment ; + rdfs:label "attachmentTask" ; + rdfs:range tmo:Task ; + rdfs:subPropertyOf pimo:associationMember ; + nrl:inverseProperty tmo:attachment ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_PersonInvolvementRole_Receiver + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Receiver" . + + tmo:TMO_Instance_TaskState_Deleted + a tmo:TaskState ; + rdfs:label "TMO_Instance_TaskState_Deleted" . + + tmo:taskStateChangesTo + a rdf:Property ; + rdfs:domain tmo:TaskState ; + rdfs:label "taskStateChangesTo" ; + rdfs:range tmo:TaskState ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" . + + tmo:TaskPrivacyState + a rdfs:Class ; + rdfs:comment """Privacy Status serves for the separation between a professional and a private purpose of a task. This attribute provides with the values \"professional/private\" a high-level separation of privacy in terms of setting distribution and access +rights to other users for the task. +This separation may arise as a general Nepomuk issue and may therefore be handled in conjunction with a privacy preserving SSD architecture.""" ; + rdfs:label "TaskPrivacyState" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:TMO_Instance_Urgency_09 + a tmo:Urgency ; + rdfs:label "TMO_Instance_Urgency_09" . + + tmo:TMO_Instance_Importance_02 + a tmo:Importance ; + rdfs:label "TMO_Instance_Importance_02" . + + tmo:TMO_Instance_PersonInvolvementRole_InternalObserver + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_InternalObserver" . + + tmo:Skill + a rdfs:Class ; + rdfs:comment "examples are e.g. technologies like Java, XML, ..." ; + rdfs:label "Skill" ; + rdfs:subClassOf tmo:AbilityCarrier . +} + + {tmo: a nrl:Ontology ; + nao:creator ; + nao:hasDefaultNamespace + "http://www.semanticdesktop.org/ontologies/2008/05/20/tmo#" ; + nao:hasDefaultNamespaceAbbreviation + "tmo" ; + nao:lastModified "2009-08-14T10:04:25.546Z" ; + nao:status "Unstable" ; + nao:updatable "0 " ; + nao:version "0.9.0" ; + nao:prefLabel "Task Management Ontology" ; + nao:description "The TMO Ontology can be used to describe personal tasks of individuals, also known as to-do lists. It is based on RDF and NRL, the Nepomuk Representational Language and other Semantic Web ontologies." . + + + a nrl:GraphMetadata ; + nrl:coreGraphMetadataFor + tmo: . +} + diff --git a/tests/Trinity.Tests.Virtuoso/bin/Debug/Models/test-vocab.rdf b/tests/Trinity.Tests.Virtuoso/bin/Debug/Models/test-vocab.rdf new file mode 100644 index 0000000..b295ae6 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Debug/Models/test-vocab.rdf @@ -0,0 +1,39 @@ + + + + + + + Animal + An animal + + + + + Horse + A Horse + + + + + + consumes + Something an animal consumes. + + + + + + consumes + Something an animal consumes. + + + + + diff --git a/tests/Trinity.Tests.Virtuoso/bin/Debug/Newtonsoft.Json.xml b/tests/Trinity.Tests.Virtuoso/bin/Debug/Newtonsoft.Json.xml new file mode 100644 index 0000000..2ef7a77 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Debug/Newtonsoft.Json.xml @@ -0,0 +1,10912 @@ + + + + Newtonsoft.Json + + + + + Represents a BSON Oid (object id). + + + + + Gets or sets the value of the Oid. + + The value of the Oid. + + + + Initializes a new instance of the class. + + The Oid value. + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized BSON data. + + + + + Gets or sets a value indicating whether binary data reading should be compatible with incorrect Json.NET 3.5 written binary. + + + true if binary data reading will be compatible with incorrect Json.NET 3.5 written binary; otherwise, false. + + + + + Gets or sets a value indicating whether the root object will be read as a JSON array. + + + true if the root object will be read as a JSON array; otherwise, false. + + + + + Gets or sets the used when reading values from BSON. + + The used when reading values from BSON. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + if set to true the root object will be read as a JSON array. + The used when reading values from BSON. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + if set to true the root object will be read as a JSON array. + The used when reading values from BSON. + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating BSON data. + + + + + Gets or sets the used when writing values to BSON. + When set to no conversion will occur. + + The used when writing values to BSON. + + + + Initializes a new instance of the class. + + The to write to. + + + + Initializes a new instance of the class. + + The to write to. + + + + Flushes whatever is in the buffer to the underlying and also flushes the underlying stream. + + + + + Writes the end. + + The token. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + + + + Writes the beginning of a JSON array. + + + + + Writes the beginning of a JSON object. + + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Closes this writer. + If is set to true, the underlying is also closed. + If is set to true, the JSON is auto-completed. + + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value that represents a BSON object id. + + The Object ID value to write. + + + + Writes a BSON regex. + + The regex pattern. + The regex options. + + + + Specifies how constructors are used when initializing objects during deserialization by the . + + + + + First attempt to use the public default constructor, then fall back to a single parameterized constructor, then to the non-public default constructor. + + + + + Json.NET will use a non-public default constructor before falling back to a parameterized constructor. + + + + + Converts a binary value to and from a base 64 string value. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from JSON and BSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Creates a custom object. + + The object type to convert. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Creates an object which will then be populated by the serializer. + + Type of the object. + The created object. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Gets a value indicating whether this can write JSON. + + + true if this can write JSON; otherwise, false. + + + + + Converts a to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified value type. + + Type of the value. + + true if this instance can convert the specified value type; otherwise, false. + + + + + Converts a to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified value type. + + Type of the value. + + true if this instance can convert the specified value type; otherwise, false. + + + + + Provides a base class for converting a to and from JSON. + + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a F# discriminated union type to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts an Entity Framework to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts an to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Gets a value indicating whether this can write JSON. + + + true if this can write JSON; otherwise, false. + + + + + Converts a to and from the ISO 8601 date format (e.g. "2008-04-12T12:53Z"). + + + + + Gets or sets the date time styles used when converting a date to and from JSON. + + The date time styles used when converting a date to and from JSON. + + + + Gets or sets the date time format used when converting a date to and from JSON. + + The date time format used when converting a date to and from JSON. + + + + Gets or sets the culture used when converting a date to and from JSON. + + The culture used when converting a date to and from JSON. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Converts a to and from a JavaScript Date constructor (e.g. new Date(52231943)). + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing property value of the JSON that is being converted. + The calling serializer. + The object value. + + + + Converts a to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from JSON and BSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts an to and from its name string value. + + + + + Gets or sets a value indicating whether the written enum text should be camel case. + The default value is false. + + true if the written enum text will be camel case; otherwise, false. + + + + Gets or sets a value indicating whether integer values are allowed when deserializing. + The default value is true. + + true if integers are allowed when deserializing; otherwise, false. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + true if the written enum text will be camel case; otherwise, false. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from Unix epoch time + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing property value of the JSON that is being converted. + The calling serializer. + The object value. + + + + Converts a to and from a string (e.g. "1.2.3.4"). + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing property value of the JSON that is being converted. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts XML to and from JSON. + + + + + Gets or sets the name of the root element to insert when deserializing to XML if the JSON structure has produced multiple root elements. + + The name of the deserialized root element. + + + + Gets or sets a flag to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + true if the array attribute is written to the XML; otherwise, false. + + + + Gets or sets a value indicating whether to write the root JSON object. + + true if the JSON root object is omitted; otherwise, false. + + + + Writes the JSON representation of the object. + + The to write to. + The calling serializer. + The value. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Checks if the is a namespace attribute. + + Attribute name to test. + The attribute name prefix if it has one, otherwise an empty string. + true if attribute name is for a namespace attribute, otherwise false. + + + + Determines whether this instance can convert the specified value type. + + Type of the value. + + true if this instance can convert the specified value type; otherwise, false. + + + + + Specifies how dates are formatted when writing JSON text. + + + + + Dates are written in the ISO 8601 format, e.g. "2012-03-21T05:40Z". + + + + + Dates are written in the Microsoft JSON format, e.g. "\/Date(1198908717056)\/". + + + + + Specifies how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON text. + + + + + Date formatted strings are not parsed to a date type and are read as strings. + + + + + Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . + + + + + Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . + + + + + Specifies how to treat the time value when converting between string and . + + + + + Treat as local time. If the object represents a Coordinated Universal Time (UTC), it is converted to the local time. + + + + + Treat as a UTC. If the object represents a local time, it is converted to a UTC. + + + + + Treat as a local time if a is being converted to a string. + If a string is being converted to , convert to a local time if a time zone is specified. + + + + + Time zone information should be preserved when converting. + + + + + Specifies default value handling options for the . + + + + + + + + + Include members where the member value is the same as the member's default value when serializing objects. + Included members are written to JSON. Has no effect when deserializing. + + + + + Ignore members where the member value is the same as the member's default value when serializing objects + so that it is not written to JSON. + This option will ignore all default values (e.g. null for objects and nullable types; 0 for integers, + decimals and floating point numbers; and false for booleans). The default value ignored can be changed by + placing the on the property. + + + + + Members with a default value but no JSON will be set to their default value when deserializing. + + + + + Ignore members where the member value is the same as the member's default value when serializing objects + and set members to their default value when deserializing. + + + + + Specifies float format handling options when writing special floating point numbers, e.g. , + and with . + + + + + Write special floating point values as strings in JSON, e.g. "NaN", "Infinity", "-Infinity". + + + + + Write special floating point values as symbols in JSON, e.g. NaN, Infinity, -Infinity. + Note that this will produce non-valid JSON. + + + + + Write special floating point values as the property's default value in JSON, e.g. 0.0 for a property, null for a of property. + + + + + Specifies how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Floating point numbers are parsed to . + + + + + Floating point numbers are parsed to . + + + + + Specifies formatting options for the . + + + + + No special formatting is applied. This is the default. + + + + + Causes child objects to be indented according to the and settings. + + + + + Provides an interface for using pooled arrays. + + The array type content. + + + + Rent an array from the pool. This array must be returned when it is no longer needed. + + The minimum required length of the array. The returned array may be longer. + The rented array from the pool. This array must be returned when it is no longer needed. + + + + Return an array to the pool. + + The array that is being returned. + + + + Provides an interface to enable a class to return line and position information. + + + + + Gets a value indicating whether the class can return line information. + + + true if and can be provided; otherwise, false. + + + + + Gets the current line number. + + The current line number or 0 if no line information is available (for example, when returns false). + + + + Gets the current line position. + + The current line position or 0 if no line information is available (for example, when returns false). + + + + Instructs the how to serialize the collection. + + + + + Gets or sets a value indicating whether null items are allowed in the collection. + + true if null items are allowed in the collection; otherwise, false. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a flag indicating whether the array can contain null items. + + A flag indicating whether the array can contain null items. + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Instructs the to use the specified constructor when deserializing that object. + + + + + Instructs the how to serialize the object. + + + + + Gets or sets the id. + + The id. + + + + Gets or sets the title. + + The title. + + + + Gets or sets the description. + + The description. + + + + Gets or sets the collection's items converter. + + The collection's items converter. + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonContainer(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonContainer(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets a value that indicates whether to preserve object references. + + + true to keep object reference; otherwise, false. The default is false. + + + + + Gets or sets a value that indicates whether to preserve collection's items references. + + + true to keep collection's items object references; otherwise, false. The default is false. + + + + + Gets or sets the reference loop handling used when serializing the collection's items. + + The reference loop handling. + + + + Gets or sets the type name handling used when serializing the collection's items. + + The type name handling. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Provides methods for converting between .NET types and JSON types. + + + + + + + + Gets or sets a function that creates default . + Default settings are automatically used by serialization methods on , + and and on . + To serialize without using any default settings create a with + . + + + + + Represents JavaScript's boolean value true as a string. This field is read-only. + + + + + Represents JavaScript's boolean value false as a string. This field is read-only. + + + + + Represents JavaScript's null as a string. This field is read-only. + + + + + Represents JavaScript's undefined as a string. This field is read-only. + + + + + Represents JavaScript's positive infinity as a string. This field is read-only. + + + + + Represents JavaScript's negative infinity as a string. This field is read-only. + + + + + Represents JavaScript's NaN as a string. This field is read-only. + + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation using the specified. + + The value to convert. + The format the date will be converted to. + The time zone handling when the date is converted to a string. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation using the specified. + + The value to convert. + The format the date will be converted to. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + The string delimiter character. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + The string delimiter character. + The string escape handling. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Serializes the specified object to a JSON string. + + The object to serialize. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using formatting. + + The object to serialize. + Indicates how the output should be formatted. + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using a collection of . + + The object to serialize. + A collection of converters used while serializing. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using formatting and a collection of . + + The object to serialize. + Indicates how the output should be formatted. + A collection of converters used while serializing. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using . + + The object to serialize. + The used to serialize the object. + If this is null, default serialization settings will be used. + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using a type, formatting and . + + The object to serialize. + The used to serialize the object. + If this is null, default serialization settings will be used. + + The type of the value being serialized. + This parameter is used when is to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using formatting and . + + The object to serialize. + Indicates how the output should be formatted. + The used to serialize the object. + If this is null, default serialization settings will be used. + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using a type, formatting and . + + The object to serialize. + Indicates how the output should be formatted. + The used to serialize the object. + If this is null, default serialization settings will be used. + + The type of the value being serialized. + This parameter is used when is to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + A JSON string representation of the object. + + + + + Deserializes the JSON to a .NET object. + + The JSON to deserialize. + The deserialized object from the JSON string. + + + + Deserializes the JSON to a .NET object using . + + The JSON to deserialize. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type. + + The JSON to deserialize. + The of object being deserialized. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type. + + The type of the object to deserialize to. + The JSON to deserialize. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the given anonymous type. + + + The anonymous type to deserialize to. This can't be specified + traditionally and must be inferred from the anonymous type passed + as a parameter. + + The JSON to deserialize. + The anonymous type object. + The deserialized anonymous type from the JSON string. + + + + Deserializes the JSON to the given anonymous type using . + + + The anonymous type to deserialize to. This can't be specified + traditionally and must be inferred from the anonymous type passed + as a parameter. + + The JSON to deserialize. + The anonymous type object. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized anonymous type from the JSON string. + + + + Deserializes the JSON to the specified .NET type using a collection of . + + The type of the object to deserialize to. + The JSON to deserialize. + Converters to use while deserializing. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type using . + + The type of the object to deserialize to. + The object to deserialize. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type using a collection of . + + The JSON to deserialize. + The type of the object to deserialize. + Converters to use while deserializing. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type using . + + The JSON to deserialize. + The type of the object to deserialize to. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized object from the JSON string. + + + + Populates the object with values from the JSON string. + + The JSON to populate values from. + The target object to populate values onto. + + + + Populates the object with values from the JSON string using . + + The JSON to populate values from. + The target object to populate values onto. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + + + + Serializes the to a JSON string. + + The node to serialize. + A JSON string of the . + + + + Serializes the to a JSON string using formatting. + + The node to serialize. + Indicates how the output should be formatted. + A JSON string of the . + + + + Serializes the to a JSON string using formatting and omits the root object if is true. + + The node to serialize. + Indicates how the output should be formatted. + Omits writing the root object. + A JSON string of the . + + + + Deserializes the from a JSON string. + + The JSON string. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by . + + The JSON string. + The name of the root element to append when deserializing. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by + and writes a Json.NET array attribute for collections. + + The JSON string. + The name of the root element to append when deserializing. + + A flag to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + The deserialized . + + + + Serializes the to a JSON string. + + The node to convert to JSON. + A JSON string of the . + + + + Serializes the to a JSON string using formatting. + + The node to convert to JSON. + Indicates how the output should be formatted. + A JSON string of the . + + + + Serializes the to a JSON string using formatting and omits the root object if is true. + + The node to serialize. + Indicates how the output should be formatted. + Omits writing the root object. + A JSON string of the . + + + + Deserializes the from a JSON string. + + The JSON string. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by . + + The JSON string. + The name of the root element to append when deserializing. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by + and writes a Json.NET array attribute for collections. + + The JSON string. + The name of the root element to append when deserializing. + + A flag to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + The deserialized . + + + + Converts an object to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Gets a value indicating whether this can read JSON. + + true if this can read JSON; otherwise, false. + + + + Gets a value indicating whether this can write JSON. + + true if this can write JSON; otherwise, false. + + + + Converts an object to and from JSON. + + The object type to convert. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. If there is no existing value then null will be used. + The existing value has a value. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Instructs the to use the specified when serializing the member or class. + + + + + Gets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + + + + + Initializes a new instance of the class. + + Type of the . + + + + Initializes a new instance of the class. + + Type of the . + Parameter list to use when constructing the . Can be null. + + + + Represents a collection of . + + + + + Instructs the how to serialize the collection. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + The exception thrown when an error occurs during JSON serialization or deserialization. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Instructs the to deserialize properties with no matching class member into the specified collection + and write values during serialization. + + + + + Gets or sets a value that indicates whether to write extension data when serializing the object. + + + true to write extension data when serializing the object; otherwise, false. The default is true. + + + + + Gets or sets a value that indicates whether to read extension data when deserializing the object. + + + true to read extension data when deserializing the object; otherwise, false. The default is true. + + + + + Initializes a new instance of the class. + + + + + Instructs the not to serialize the public field or public read/write property value. + + + + + Instructs the how to serialize the object. + + + + + Gets or sets the member serialization. + + The member serialization. + + + + Gets or sets how the object's properties with null values are handled during serialization and deserialization. + + How the object's properties with null values are handled during serialization and deserialization. + + + + Gets or sets a value that indicates whether the object's properties are required. + + + A value indicating whether the object's properties are required. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified member serialization. + + The member serialization. + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Instructs the to always serialize the member with the specified name. + + + + + Gets or sets the used when serializing the property's collection items. + + The collection's items . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonProperty(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonProperty(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the null value handling used when serializing this property. + + The null value handling. + + + + Gets or sets the default value handling used when serializing this property. + + The default value handling. + + + + Gets or sets the reference loop handling used when serializing this property. + + The reference loop handling. + + + + Gets or sets the object creation handling used when deserializing this property. + + The object creation handling. + + + + Gets or sets the type name handling used when serializing this property. + + The type name handling. + + + + Gets or sets whether this property's value is serialized as a reference. + + Whether this property's value is serialized as a reference. + + + + Gets or sets the order of serialization of a member. + + The numeric order of serialization. + + + + Gets or sets a value indicating whether this property is required. + + + A value indicating whether this property is required. + + + + + Gets or sets the name of the property. + + The name of the property. + + + + Gets or sets the reference loop handling used when serializing the property's collection items. + + The collection's items reference loop handling. + + + + Gets or sets the type name handling used when serializing the property's collection items. + + The collection's items type name handling. + + + + Gets or sets whether this property's collection items are serialized as a reference. + + Whether this property's collection items are serialized as a reference. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified name. + + Name of the property. + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. + + + + + Asynchronously reads the next JSON token from the source. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns true if the next token was read successfully; false if there are no more tokens to read. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously skips the children of the current token. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a []. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the []. This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Specifies the state of the reader. + + + + + A read method has not been called. + + + + + The end of the file has been reached successfully. + + + + + Reader is at a property. + + + + + Reader is at the start of an object. + + + + + Reader is in an object. + + + + + Reader is at the start of an array. + + + + + Reader is in an array. + + + + + The method has been called. + + + + + Reader has just read a value. + + + + + Reader is at the start of a constructor. + + + + + Reader is in a constructor. + + + + + An error occurred that prevents the read operation from continuing. + + + + + The end of the file has been reached successfully. + + + + + Gets the current reader state. + + The current reader state. + + + + Gets or sets a value indicating whether the source should be closed when this reader is closed. + + + true to close the source when this reader is closed; otherwise false. The default is true. + + + + + Gets or sets a value indicating whether multiple pieces of JSON content can + be read from a continuous stream without erroring. + + + true to support reading multiple pieces of JSON content; otherwise false. + The default is false. + + + + + Gets the quotation mark character used to enclose the value of a string. + + + + + Gets or sets how time zones are handled when reading JSON. + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Gets or sets how custom date formatted strings are parsed when reading JSON. + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + + + + + Gets the type of the current JSON token. + + + + + Gets the text value of the current JSON token. + + + + + Gets the .NET type for the current JSON token. + + + + + Gets the depth of the current token in the JSON document. + + The depth of the current token in the JSON document. + + + + Gets the path of the current JSON token. + + + + + Gets or sets the culture used when reading JSON. Defaults to . + + + + + Initializes a new instance of the class. + + + + + Reads the next JSON token from the source. + + true if the next token was read successfully; false if there are no more tokens to read. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a []. + + A [] or null if the next JSON token is null. This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Skips the children of the current token. + + + + + Sets the current token. + + The new token. + + + + Sets the current token and value. + + The new token. + The value. + + + + Sets the current token and value. + + The new token. + The value. + A flag indicating whether the position index inside an array should be updated. + + + + Sets the state based on current token type. + + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Changes the reader's state to . + If is set to true, the source is also closed. + + + + + The exception thrown when an error occurs while reading JSON text. + + + + + Gets the line number indicating where the error occurred. + + The line number indicating where the error occurred. + + + + Gets the line position indicating where the error occurred. + + The line position indicating where the error occurred. + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Initializes a new instance of the class + with a specified error message, JSON path, line number, line position, and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The path to the JSON where the error occurred. + The line number indicating where the error occurred. + The line position indicating where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Instructs the to always serialize the member, and to require that the member has a value. + + + + + The exception thrown when an error occurs during JSON serialization or deserialization. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Serializes and deserializes objects into and from the JSON format. + The enables you to control how objects are encoded into JSON. + + + + + Occurs when the errors during serialization and deserialization. + + + + + Gets or sets the used by the serializer when resolving references. + + + + + Gets or sets the used by the serializer when resolving type names. + + + + + Gets or sets the used by the serializer when resolving type names. + + + + + Gets or sets the used by the serializer when writing trace messages. + + The trace writer. + + + + Gets or sets the equality comparer used by the serializer when comparing references. + + The equality comparer. + + + + Gets or sets how type name writing and reading is handled by the serializer. + The default value is . + + + should be used with caution when your application deserializes JSON from an external source. + Incoming types should be validated with a custom + when deserializing with a value other than . + + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how object references are preserved by the serializer. + The default value is . + + + + + Gets or sets how reference loops (e.g. a class referencing itself) is handled. + The default value is . + + + + + Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. + The default value is . + + + + + Gets or sets how null values are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how default values are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how objects are created during deserialization. + The default value is . + + The object creation handling. + + + + Gets or sets how constructors are used during deserialization. + The default value is . + + The constructor handling. + + + + Gets or sets how metadata properties are used during deserialization. + The default value is . + + The metadata properties handling. + + + + Gets a collection that will be used during serialization. + + Collection that will be used during serialization. + + + + Gets or sets the contract resolver used by the serializer when + serializing .NET objects to JSON and vice versa. + + + + + Gets or sets the used by the serializer when invoking serialization callback methods. + + The context. + + + + Indicates how JSON text output is formatted. + The default value is . + + + + + Gets or sets how dates are written to JSON text. + The default value is . + + + + + Gets or sets how time zones are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + The default value is . + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + The default value is . + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written as JSON text. + The default value is . + + + + + Gets or sets how strings are escaped when writing JSON text. + The default value is . + + + + + Gets or sets how and values are formatted when writing JSON text, + and the expected date format when reading JSON text. + The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK". + + + + + Gets or sets the culture used when reading JSON. + The default value is . + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + A null value means there is no maximum. + The default value is null. + + + + + Gets a value indicating whether there will be a check for additional JSON content after deserializing an object. + The default value is false. + + + true if there will be a check for additional JSON content after deserializing an object; otherwise, false. + + + + + Initializes a new instance of the class. + + + + + Creates a new instance. + The will not use default settings + from . + + + A new instance. + The will not use default settings + from . + + + + + Creates a new instance using the specified . + The will not use default settings + from . + + The settings to be applied to the . + + A new instance using the specified . + The will not use default settings + from . + + + + + Creates a new instance. + The will use default settings + from . + + + A new instance. + The will use default settings + from . + + + + + Creates a new instance using the specified . + The will use default settings + from as well as the specified . + + The settings to be applied to the . + + A new instance using the specified . + The will use default settings + from as well as the specified . + + + + + Populates the JSON values onto the target object. + + The that contains the JSON structure to reader values from. + The target object to populate values onto. + + + + Populates the JSON values onto the target object. + + The that contains the JSON structure to reader values from. + The target object to populate values onto. + + + + Deserializes the JSON structure contained by the specified . + + The that contains the JSON structure to deserialize. + The being deserialized. + + + + Deserializes the JSON structure contained by the specified + into an instance of the specified type. + + The containing the object. + The of object being deserialized. + The instance of being deserialized. + + + + Deserializes the JSON structure contained by the specified + into an instance of the specified type. + + The containing the object. + The type of the object to deserialize. + The instance of being deserialized. + + + + Deserializes the JSON structure contained by the specified + into an instance of the specified type. + + The containing the object. + The of object being deserialized. + The instance of being deserialized. + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + The type of the value being serialized. + This parameter is used when is to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + The type of the value being serialized. + This parameter is used when is Auto to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + + + Specifies the settings on a object. + + + + + Gets or sets how reference loops (e.g. a class referencing itself) are handled. + The default value is . + + Reference loop handling. + + + + Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. + The default value is . + + Missing member handling. + + + + Gets or sets how objects are created during deserialization. + The default value is . + + The object creation handling. + + + + Gets or sets how null values are handled during serialization and deserialization. + The default value is . + + Null value handling. + + + + Gets or sets how default values are handled during serialization and deserialization. + The default value is . + + The default value handling. + + + + Gets or sets a collection that will be used during serialization. + + The converters. + + + + Gets or sets how object references are preserved by the serializer. + The default value is . + + The preserve references handling. + + + + Gets or sets how type name writing and reading is handled by the serializer. + The default value is . + + + should be used with caution when your application deserializes JSON from an external source. + Incoming types should be validated with a custom + when deserializing with a value other than . + + The type name handling. + + + + Gets or sets how metadata properties are used during deserialization. + The default value is . + + The metadata properties handling. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how constructors are used during deserialization. + The default value is . + + The constructor handling. + + + + Gets or sets the contract resolver used by the serializer when + serializing .NET objects to JSON and vice versa. + + The contract resolver. + + + + Gets or sets the equality comparer used by the serializer when comparing references. + + The equality comparer. + + + + Gets or sets the used by the serializer when resolving references. + + The reference resolver. + + + + Gets or sets a function that creates the used by the serializer when resolving references. + + A function that creates the used by the serializer when resolving references. + + + + Gets or sets the used by the serializer when writing trace messages. + + The trace writer. + + + + Gets or sets the used by the serializer when resolving type names. + + The binder. + + + + Gets or sets the used by the serializer when resolving type names. + + The binder. + + + + Gets or sets the error handler called during serialization and deserialization. + + The error handler called during serialization and deserialization. + + + + Gets or sets the used by the serializer when invoking serialization callback methods. + + The context. + + + + Gets or sets how and values are formatted when writing JSON text, + and the expected date format when reading JSON text. + The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK". + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + A null value means there is no maximum. + The default value is null. + + + + + Indicates how JSON text output is formatted. + The default value is . + + + + + Gets or sets how dates are written to JSON text. + The default value is . + + + + + Gets or sets how time zones are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + The default value is . + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written as JSON. + The default value is . + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + The default value is . + + + + + Gets or sets how strings are escaped when writing JSON text. + The default value is . + + + + + Gets or sets the culture used when reading JSON. + The default value is . + + + + + Gets a value indicating whether there will be a check for additional content after deserializing an object. + The default value is false. + + + true if there will be a check for additional content after deserializing an object; otherwise, false. + + + + + Initializes a new instance of the class. + + + + + Represents a reader that provides fast, non-cached, forward-only access to JSON text data. + + + + + Asynchronously reads the next JSON token from the source. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns true if the next token was read successfully; false if there are no more tokens to read. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a []. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the []. This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Initializes a new instance of the class with the specified . + + The containing the JSON data to read. + + + + Gets or sets the reader's character buffer pool. + + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a []. + + A [] or null if the next JSON token is null. This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Gets a value indicating whether the class can return line information. + + + true if and can be provided; otherwise, false. + + + + + Gets the current line number. + + + The current line number or 0 if no line information is available (for example, returns false). + + + + + Gets the current line position. + + + The current line position or 0 if no line information is available (for example, returns false). + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Asynchronously flushes whatever is in the buffer to the destination and also flushes the destination. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the JSON value delimiter. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the specified end token. + + The end token to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously closes this writer. + If is set to true, the destination is also closed. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of the current JSON object or array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes indent characters. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes an indent space. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes raw JSON without changing the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a null value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the beginning of a JSON array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the beginning of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the start of a constructor with the given name. + + The name of the constructor. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes an undefined value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the given white space. + + The string of white space characters. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a [] value. + + The [] value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of an array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of a constructor. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Gets or sets the writer's character array pool. + + + + + Gets or sets how many s to write for each level in the hierarchy when is set to . + + + + + Gets or sets which character to use to quote attribute values. + + + + + Gets or sets which character to use for indenting when is set to . + + + + + Gets or sets a value indicating whether object names will be surrounded with quotes. + + + + + Initializes a new instance of the class using the specified . + + The to write to. + + + + Flushes whatever is in the buffer to the underlying and also flushes the underlying . + + + + + Closes this writer. + If is set to true, the underlying is also closed. + If is set to true, the JSON is auto-completed. + + + + + Writes the beginning of a JSON object. + + + + + Writes the beginning of a JSON array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the specified end token. + + The end token to write. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + + + + Writes indent characters. + + + + + Writes the JSON value delimiter. + + + + + Writes an indent space. + + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a value. + + The value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the given white space. + + The string of white space characters. + + + + Specifies the type of JSON token. + + + + + This is returned by the if a read method has not been called. + + + + + An object start token. + + + + + An array start token. + + + + + A constructor start token. + + + + + An object property name. + + + + + A comment. + + + + + Raw JSON. + + + + + An integer. + + + + + A float. + + + + + A string. + + + + + A boolean. + + + + + A null token. + + + + + An undefined token. + + + + + An object end token. + + + + + An array end token. + + + + + A constructor end token. + + + + + A Date. + + + + + Byte data. + + + + + + Represents a reader that provides validation. + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Sets an event handler for receiving schema validation errors. + + + + + Gets the text value of the current JSON token. + + + + + + Gets the depth of the current token in the JSON document. + + The depth of the current token in the JSON document. + + + + Gets the path of the current JSON token. + + + + + Gets the quotation mark character used to enclose the value of a string. + + + + + + Gets the type of the current JSON token. + + + + + + Gets the .NET type for the current JSON token. + + + + + + Initializes a new instance of the class that + validates the content returned from the given . + + The to read from while validating. + + + + Gets or sets the schema. + + The schema. + + + + Gets the used to construct this . + + The specified in the constructor. + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a []. + + + A [] or null if the next JSON token is null. + + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Asynchronously closes this writer. + If is set to true, the destination is also closed. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously flushes whatever is in the buffer to the destination and also flushes the destination. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the specified end token. + + The end token to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes indent characters. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the JSON value delimiter. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes an indent space. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes raw JSON without changing the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the end of the current JSON object or array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the end of an array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the end of a constructor. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the end of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a null value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the beginning of a JSON array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the start of a constructor with the given name. + + The name of the constructor. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the beginning of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the current token. + + The to read the token from. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the current token. + + The to read the token from. + A flag indicating whether the current token's children should be written. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the token and its value. + + The to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the token and its value. + + The to write. + + The value to write. + A value is only required for tokens that have an associated value, e.g. the property name for . + null can be passed to the method for tokens that don't have a value, e.g. . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a [] value. + + The [] value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes an undefined value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the given white space. + + The string of white space characters. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously ets the state of the . + + The being written. + The value being written. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Gets or sets a value indicating whether the destination should be closed when this writer is closed. + + + true to close the destination when this writer is closed; otherwise false. The default is true. + + + + + Gets or sets a value indicating whether the JSON should be auto-completed when this writer is closed. + + + true to auto-complete the JSON when this writer is closed; otherwise false. The default is true. + + + + + Gets the top. + + The top. + + + + Gets the state of the writer. + + + + + Gets the path of the writer. + + + + + Gets or sets a value indicating how JSON text output should be formatted. + + + + + Gets or sets how dates are written to JSON text. + + + + + Gets or sets how time zones are handled when writing JSON text. + + + + + Gets or sets how strings are escaped when writing JSON text. + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written to JSON text. + + + + + Gets or sets how and values are formatted when writing JSON text. + + + + + Gets or sets the culture used when writing JSON. Defaults to . + + + + + Initializes a new instance of the class. + + + + + Flushes whatever is in the buffer to the destination and also flushes the destination. + + + + + Closes this writer. + If is set to true, the destination is also closed. + If is set to true, the JSON is auto-completed. + + + + + Writes the beginning of a JSON object. + + + + + Writes the end of a JSON object. + + + + + Writes the beginning of a JSON array. + + + + + Writes the end of an array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the end constructor. + + + + + Writes the property name of a name/value pair of a JSON object. + + The name of the property. + + + + Writes the property name of a name/value pair of a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + + + + Writes the end of the current JSON object or array. + + + + + Writes the current token and its children. + + The to read the token from. + + + + Writes the current token. + + The to read the token from. + A flag indicating whether the current token's children should be written. + + + + Writes the token and its value. + + The to write. + + The value to write. + A value is only required for tokens that have an associated value, e.g. the property name for . + null can be passed to the method for tokens that don't have a value, e.g. . + + + + + Writes the token. + + The to write. + + + + Writes the specified end token. + + The end token to write. + + + + Writes indent characters. + + + + + Writes the JSON value delimiter. + + + + + Writes an indent space. + + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON without changing the writer's state. + + The raw JSON to write. + + + + Writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the given white space. + + The string of white space characters. + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Sets the state of the . + + The being written. + The value being written. + + + + The exception thrown when an error occurs while writing JSON text. + + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Initializes a new instance of the class + with a specified error message, JSON path and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The path to the JSON where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Specifies how JSON comments are handled when loading JSON. + + + + + Ignore comments. + + + + + Load comments as a with type . + + + + + Contains the LINQ to JSON extension methods. + + + + + Returns a collection of tokens that contains the ancestors of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains the ancestors of every token in the source collection. + + + + Returns a collection of tokens that contains every token in the source collection, and the ancestors of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains every token in the source collection, the ancestors of every token in the source collection. + + + + Returns a collection of tokens that contains the descendants of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains the descendants of every token in the source collection. + + + + Returns a collection of tokens that contains every token in the source collection, and the descendants of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains every token in the source collection, and the descendants of every token in the source collection. + + + + Returns a collection of child properties of every object in the source collection. + + An of that contains the source collection. + An of that contains the properties of every object in the source collection. + + + + Returns a collection of child values of every object in the source collection with the given key. + + An of that contains the source collection. + The token key. + An of that contains the values of every token in the source collection with the given key. + + + + Returns a collection of child values of every object in the source collection. + + An of that contains the source collection. + An of that contains the values of every token in the source collection. + + + + Returns a collection of converted child values of every object in the source collection with the given key. + + The type to convert the values to. + An of that contains the source collection. + The token key. + An that contains the converted values of every token in the source collection with the given key. + + + + Returns a collection of converted child values of every object in the source collection. + + The type to convert the values to. + An of that contains the source collection. + An that contains the converted values of every token in the source collection. + + + + Converts the value. + + The type to convert the value to. + A cast as a of . + A converted value. + + + + Converts the value. + + The source collection type. + The type to convert the value to. + A cast as a of . + A converted value. + + + + Returns a collection of child tokens of every array in the source collection. + + The source collection type. + An of that contains the source collection. + An of that contains the values of every token in the source collection. + + + + Returns a collection of converted child tokens of every array in the source collection. + + An of that contains the source collection. + The type to convert the values to. + The source collection type. + An that contains the converted values of every token in the source collection. + + + + Returns the input typed as . + + An of that contains the source collection. + The input typed as . + + + + Returns the input typed as . + + The source collection type. + An of that contains the source collection. + The input typed as . + + + + Represents a collection of objects. + + The type of token. + + + + Gets the of with the specified key. + + + + + + Represents a JSON array. + + + + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous load. The property contains the JSON that was read from the specified . + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous load. The property contains the JSON that was read from the specified . + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets the node type for this . + + The type. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified content. + + The contents of the array. + + + + Initializes a new instance of the class with the specified content. + + The contents of the array. + + + + Loads an from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads an from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + + + + + + Load a from a string that contains JSON. + + A that contains JSON. + The used to load the JSON. + If this is null, default load settings will be used. + A populated from the string that contains JSON. + + + + + + + Creates a from an object. + + The object that will be used to create . + A with the values of the specified object. + + + + Creates a from an object. + + The object that will be used to create . + The that will be used to read the object. + A with the values of the specified object. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets or sets the at the specified index. + + + + + + Determines the index of a specific item in the . + + The object to locate in the . + + The index of if found in the list; otherwise, -1. + + + + + Inserts an item to the at the specified index. + + The zero-based index at which should be inserted. + The object to insert into the . + + is not a valid index in the . + + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + is not a valid index in the . + + + + + Returns an enumerator that iterates through the collection. + + + A of that can be used to iterate through the collection. + + + + + Adds an item to the . + + The object to add to the . + + + + Removes all items from the . + + + + + Determines whether the contains a specific value. + + The object to locate in the . + + true if is found in the ; otherwise, false. + + + + + Copies the elements of the to an array, starting at a particular array index. + + The array. + Index of the array. + + + + Gets a value indicating whether the is read-only. + + true if the is read-only; otherwise, false. + + + + Removes the first occurrence of a specific object from the . + + The object to remove from the . + + true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . + + + + + Represents a JSON constructor. + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets or sets the name of this constructor. + + The constructor name. + + + + Gets the node type for this . + + The type. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified name and content. + + The constructor name. + The contents of the constructor. + + + + Initializes a new instance of the class with the specified name and content. + + The constructor name. + The contents of the constructor. + + + + Initializes a new instance of the class with the specified name. + + The constructor name. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Gets the with the specified key. + + The with the specified key. + + + + Loads a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Represents a token that can contain other tokens. + + + + + Occurs when the list changes or an item in the list changes. + + + + + Occurs before an item is added to the collection. + + + + + Occurs when the items list of the collection has changed, or the collection is reset. + + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Gets a value indicating whether this token has child tokens. + + + true if this token has child values; otherwise, false. + + + + + Get the first child token of this token. + + + A containing the first child token of the . + + + + + Get the last child token of this token. + + + A containing the last child token of the . + + + + + Returns a collection of the child tokens of this token, in document order. + + + An of containing the child tokens of this , in document order. + + + + + Returns a collection of the child values of this token, in document order. + + The type to convert the values to. + + A containing the child values of this , in document order. + + + + + Returns a collection of the descendant tokens for this token in document order. + + An of containing the descendant tokens of the . + + + + Returns a collection of the tokens that contain this token, and all descendant tokens of this token, in document order. + + An of containing this token, and all the descendant tokens of the . + + + + Adds the specified content as children of this . + + The content to be added. + + + + Adds the specified content as the first children of this . + + The content to be added. + + + + Creates a that can be used to add tokens to the . + + A that is ready to have content written to it. + + + + Replaces the child nodes of this token with the specified content. + + The content. + + + + Removes the child nodes from this token. + + + + + Merge the specified content into this . + + The content to be merged. + + + + Merge the specified content into this using . + + The content to be merged. + The used to merge the content. + + + + Gets the count of child JSON tokens. + + The count of child JSON tokens. + + + + Represents a collection of objects. + + The type of token. + + + + An empty collection of objects. + + + + + Initializes a new instance of the struct. + + The enumerable. + + + + Returns an enumerator that can be used to iterate through the collection. + + + A that can be used to iterate through the collection. + + + + + Gets the of with the specified key. + + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Represents a JSON object. + + + + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Occurs when a property value changes. + + + + + Occurs when a property value is changing. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified content. + + The contents of the object. + + + + Initializes a new instance of the class with the specified content. + + The contents of the object. + + + + Gets the node type for this . + + The type. + + + + Gets an of of this object's properties. + + An of of this object's properties. + + + + Gets a the specified name. + + The property name. + A with the specified name or null. + + + + Gets a of of this object's property values. + + A of of this object's property values. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets or sets the with the specified property name. + + + + + + Loads a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + is not valid JSON. + + + + + Loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + is not valid JSON. + + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + is not valid JSON. + + + + + + + + Load a from a string that contains JSON. + + A that contains JSON. + The used to load the JSON. + If this is null, default load settings will be used. + A populated from the string that contains JSON. + + is not valid JSON. + + + + + + + + Creates a from an object. + + The object that will be used to create . + A with the values of the specified object. + + + + Creates a from an object. + + The object that will be used to create . + The that will be used to read the object. + A with the values of the specified object. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Gets the with the specified property name. + + Name of the property. + The with the specified property name. + + + + Gets the with the specified property name. + The exact property name will be searched for first and if no matching property is found then + the will be used to match a property. + + Name of the property. + One of the enumeration values that specifies how the strings will be compared. + The with the specified property name. + + + + Tries to get the with the specified property name. + The exact property name will be searched for first and if no matching property is found then + the will be used to match a property. + + Name of the property. + The value. + One of the enumeration values that specifies how the strings will be compared. + true if a value was successfully retrieved; otherwise, false. + + + + Adds the specified property name. + + Name of the property. + The value. + + + + Determines whether the JSON object has the specified property name. + + Name of the property. + true if the JSON object has the specified property name; otherwise, false. + + + + Removes the property with the specified name. + + Name of the property. + true if item was successfully removed; otherwise, false. + + + + Tries to get the with the specified property name. + + Name of the property. + The value. + true if a value was successfully retrieved; otherwise, false. + + + + Returns an enumerator that can be used to iterate through the collection. + + + A that can be used to iterate through the collection. + + + + + Raises the event with the provided arguments. + + Name of the property. + + + + Raises the event with the provided arguments. + + Name of the property. + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Represents a JSON property. + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous creation. The + property returns a that contains the JSON that was read from the specified . + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous creation. The + property returns a that contains the JSON that was read from the specified . + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets the property name. + + The property name. + + + + Gets or sets the property value. + + The property value. + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Gets the node type for this . + + The type. + + + + Initializes a new instance of the class. + + The property name. + The property content. + + + + Initializes a new instance of the class. + + The property name. + The property content. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Loads a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Represents a view of a . + + + + + Initializes a new instance of the class. + + The name. + + + + When overridden in a derived class, returns whether resetting an object changes its value. + + + true if resetting the component changes its value; otherwise, false. + + The component to test for reset capability. + + + + When overridden in a derived class, gets the current value of the property on a component. + + + The value of a property for a given component. + + The component with the property for which to retrieve the value. + + + + When overridden in a derived class, resets the value for this property of the component to the default value. + + The component with the property value that is to be reset to the default value. + + + + When overridden in a derived class, sets the value of the component to a different value. + + The component with the property value that is to be set. + The new value. + + + + When overridden in a derived class, determines a value indicating whether the value of this property needs to be persisted. + + + true if the property should be persisted; otherwise, false. + + The component with the property to be examined for persistence. + + + + When overridden in a derived class, gets the type of the component this property is bound to. + + + A that represents the type of component this property is bound to. + When the or + + methods are invoked, the object specified might be an instance of this type. + + + + + When overridden in a derived class, gets a value indicating whether this property is read-only. + + + true if the property is read-only; otherwise, false. + + + + + When overridden in a derived class, gets the type of the property. + + + A that represents the type of the property. + + + + + Gets the hash code for the name of the member. + + + + The hash code for the name of the member. + + + + + Represents a raw JSON string. + + + + + Asynchronously creates an instance of with the content of the reader's current token. + + The reader. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous creation. The + property returns an instance of with the content of the reader's current token. + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class. + + The raw json. + + + + Creates an instance of with the content of the reader's current token. + + The reader. + An instance of with the content of the reader's current token. + + + + Specifies the settings used when loading JSON. + + + + + Initializes a new instance of the class. + + + + + Gets or sets how JSON comments are handled when loading JSON. + + The JSON comment handling. + + + + Gets or sets how JSON line info is handled when loading JSON. + + The JSON line info handling. + + + + Specifies the settings used when merging JSON. + + + + + Gets or sets the method used when merging JSON arrays. + + The method used when merging JSON arrays. + + + + Gets or sets how null value properties are merged. + + How null value properties are merged. + + + + Represents an abstract JSON token. + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Writes this token to a asynchronously. + + A into which this method will write. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously creates a from a . + + An positioned at the token to read into this . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a that contains + the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Asynchronously creates a from a . + + An positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a that contains + the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Asynchronously creates a from a . + + A positioned at the token to read into this . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Asynchronously creates a from a . + + A positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Gets a comparer that can compare two tokens for value equality. + + A that can compare two nodes for value equality. + + + + Gets or sets the parent. + + The parent. + + + + Gets the root of this . + + The root of this . + + + + Gets the node type for this . + + The type. + + + + Gets a value indicating whether this token has child tokens. + + + true if this token has child values; otherwise, false. + + + + + Compares the values of two tokens, including the values of all descendant tokens. + + The first to compare. + The second to compare. + true if the tokens are equal; otherwise false. + + + + Gets the next sibling token of this node. + + The that contains the next sibling token. + + + + Gets the previous sibling token of this node. + + The that contains the previous sibling token. + + + + Gets the path of the JSON token. + + + + + Adds the specified content immediately after this token. + + A content object that contains simple content or a collection of content objects to be added after this token. + + + + Adds the specified content immediately before this token. + + A content object that contains simple content or a collection of content objects to be added before this token. + + + + Returns a collection of the ancestor tokens of this token. + + A collection of the ancestor tokens of this token. + + + + Returns a collection of tokens that contain this token, and the ancestors of this token. + + A collection of tokens that contain this token, and the ancestors of this token. + + + + Returns a collection of the sibling tokens after this token, in document order. + + A collection of the sibling tokens after this tokens, in document order. + + + + Returns a collection of the sibling tokens before this token, in document order. + + A collection of the sibling tokens before this token, in document order. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets the with the specified key converted to the specified type. + + The type to convert the token to. + The token key. + The converted token value. + + + + Get the first child token of this token. + + A containing the first child token of the . + + + + Get the last child token of this token. + + A containing the last child token of the . + + + + Returns a collection of the child tokens of this token, in document order. + + An of containing the child tokens of this , in document order. + + + + Returns a collection of the child tokens of this token, in document order, filtered by the specified type. + + The type to filter the child tokens on. + A containing the child tokens of this , in document order. + + + + Returns a collection of the child values of this token, in document order. + + The type to convert the values to. + A containing the child values of this , in document order. + + + + Removes this token from its parent. + + + + + Replaces this token with the specified token. + + The value. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Returns the indented JSON for this token. + + + The indented JSON for this token. + + + + + Returns the JSON for this token using the given formatting and converters. + + Indicates how the output should be formatted. + A collection of s which will be used when writing the token. + The JSON for this token using the given formatting and converters. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to []. + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from [] to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Creates a for this token. + + A that can be used to read this token and its descendants. + + + + Creates a from an object. + + The object that will be used to create . + A with the value of the specified object. + + + + Creates a from an object using the specified . + + The object that will be used to create . + The that will be used when reading the object. + A with the value of the specified object. + + + + Creates an instance of the specified .NET type from the . + + The object type that the token will be deserialized to. + The new object created from the JSON value. + + + + Creates an instance of the specified .NET type from the . + + The object type that the token will be deserialized to. + The new object created from the JSON value. + + + + Creates an instance of the specified .NET type from the using the specified . + + The object type that the token will be deserialized to. + The that will be used when creating the object. + The new object created from the JSON value. + + + + Creates an instance of the specified .NET type from the using the specified . + + The object type that the token will be deserialized to. + The that will be used when creating the object. + The new object created from the JSON value. + + + + Creates a from a . + + A positioned at the token to read into this . + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Creates a from a . + + An positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + + + Load a from a string that contains JSON. + + A that contains JSON. + The used to load the JSON. + If this is null, default load settings will be used. + A populated from the string that contains JSON. + + + + Creates a from a . + + A positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Creates a from a . + + A positioned at the token to read into this . + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Selects a using a JPath expression. Selects the token that matches the object path. + + + A that contains a JPath expression. + + A , or null. + + + + Selects a using a JPath expression. Selects the token that matches the object path. + + + A that contains a JPath expression. + + A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. + A . + + + + Selects a collection of elements using a JPath expression. + + + A that contains a JPath expression. + + An of that contains the selected elements. + + + + Selects a collection of elements using a JPath expression. + + + A that contains a JPath expression. + + A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. + An of that contains the selected elements. + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Creates a new instance of the . All child tokens are recursively cloned. + + A new instance of the . + + + + Adds an object to the annotation list of this . + + The annotation to add. + + + + Get the first annotation object of the specified type from this . + + The type of the annotation to retrieve. + The first annotation object that matches the specified type, or null if no annotation is of the specified type. + + + + Gets the first annotation object of the specified type from this . + + The of the annotation to retrieve. + The first annotation object that matches the specified type, or null if no annotation is of the specified type. + + + + Gets a collection of annotations of the specified type for this . + + The type of the annotations to retrieve. + An that contains the annotations for this . + + + + Gets a collection of annotations of the specified type for this . + + The of the annotations to retrieve. + An of that contains the annotations that match the specified type for this . + + + + Removes the annotations of the specified type from this . + + The type of annotations to remove. + + + + Removes the annotations of the specified type from this . + + The of annotations to remove. + + + + Compares tokens to determine whether they are equal. + + + + + Determines whether the specified objects are equal. + + The first object of type to compare. + The second object of type to compare. + + true if the specified objects are equal; otherwise, false. + + + + + Returns a hash code for the specified object. + + The for which a hash code is to be returned. + A hash code for the specified object. + The type of is a reference type and is null. + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. + + + + + Gets the at the reader's current position. + + + + + Initializes a new instance of the class. + + The token to read from. + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Gets the path of the current JSON token. + + + + + Specifies the type of token. + + + + + No token type has been set. + + + + + A JSON object. + + + + + A JSON array. + + + + + A JSON constructor. + + + + + A JSON object property. + + + + + A comment. + + + + + An integer value. + + + + + A float value. + + + + + A string value. + + + + + A boolean value. + + + + + A null value. + + + + + An undefined value. + + + + + A date value. + + + + + A raw JSON value. + + + + + A collection of bytes value. + + + + + A Guid value. + + + + + A Uri value. + + + + + A TimeSpan value. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Gets the at the writer's current position. + + + + + Gets the token being written. + + The token being written. + + + + Initializes a new instance of the class writing to the given . + + The container being written to. + + + + Initializes a new instance of the class. + + + + + Flushes whatever is in the buffer to the underlying . + + + + + Closes this writer. + If is set to true, the JSON is auto-completed. + + + Setting to true has no additional effect, since the underlying is a type that cannot be closed. + + + + + Writes the beginning of a JSON object. + + + + + Writes the beginning of a JSON array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the end. + + The token. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Writes a value. + An error will be raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Represents a value in JSON (string, integer, date, etc). + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Gets a value indicating whether this token has child tokens. + + + true if this token has child values; otherwise, false. + + + + + Creates a comment with the given value. + + The value. + A comment with the given value. + + + + Creates a string with the given value. + + The value. + A string with the given value. + + + + Creates a null value. + + A null value. + + + + Creates a undefined value. + + A undefined value. + + + + Gets the node type for this . + + The type. + + + + Gets or sets the underlying token value. + + The underlying token value. + + + + Writes this token to a . + + A into which this method will write. + A collection of s which will be used when writing the token. + + + + Indicates whether the current object is equal to another object of the same type. + + + true if the current object is equal to the parameter; otherwise, false. + + An object to compare with this object. + + + + Determines whether the specified is equal to the current . + + The to compare with the current . + + true if the specified is equal to the current ; otherwise, false. + + + + + Serves as a hash function for a particular type. + + + A hash code for the current . + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format. + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format provider. + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format. + The format provider. + + A that represents this instance. + + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object. + + An object to compare with this instance. + + A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has these meanings: + Value + Meaning + Less than zero + This instance is less than . + Zero + This instance is equal to . + Greater than zero + This instance is greater than . + + + is not of the same type as this instance. + + + + + Specifies how line information is handled when loading JSON. + + + + + Ignore line information. + + + + + Load line information. + + + + + Specifies how JSON arrays are merged together. + + + + Concatenate arrays. + + + Union arrays, skipping items that already exist. + + + Replace all array items. + + + Merge array items together, matched by index. + + + + Specifies how null value properties are merged. + + + + + The content's null value properties will be ignored during merging. + + + + + The content's null value properties will be merged. + + + + + Specifies the member serialization options for the . + + + + + All public members are serialized by default. Members can be excluded using or . + This is the default member serialization mode. + + + + + Only members marked with or are serialized. + This member serialization mode can also be set by marking the class with . + + + + + All public and private fields are serialized. Members can be excluded using or . + This member serialization mode can also be set by marking the class with + and setting IgnoreSerializableAttribute on to false. + + + + + Specifies metadata property handling options for the . + + + + + Read metadata properties located at the start of a JSON object. + + + + + Read metadata properties located anywhere in a JSON object. Note that this setting will impact performance. + + + + + Do not try to read metadata properties. + + + + + Specifies missing member handling options for the . + + + + + Ignore a missing member and do not attempt to deserialize it. + + + + + Throw a when a missing member is encountered during deserialization. + + + + + Specifies null value handling options for the . + + + + + + + + + Include null values when serializing and deserializing objects. + + + + + Ignore null values when serializing and deserializing objects. + + + + + Specifies how object creation is handled by the . + + + + + Reuse existing objects, create new objects when needed. + + + + + Only reuse existing objects. + + + + + Always create new objects. + + + + + Specifies reference handling options for the . + Note that references cannot be preserved when a value is set via a non-default constructor such as types that implement . + + + + + + + + Do not preserve references when serializing types. + + + + + Preserve references when serializing into a JSON object structure. + + + + + Preserve references when serializing into a JSON array structure. + + + + + Preserve references when serializing. + + + + + Specifies reference loop handling options for the . + + + + + Throw a when a loop is encountered. + + + + + Ignore loop references and do not serialize. + + + + + Serialize loop references. + + + + + Indicating whether a property is required. + + + + + The property is not required. The default state. + + + + + The property must be defined in JSON but can be a null value. + + + + + The property must be defined in JSON and cannot be a null value. + + + + + The property is not required but it cannot be a null value. + + + + + + Contains the JSON schema extension methods. + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + + Determines whether the is valid. + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + + true if the specified is valid; otherwise, false. + + + + + + Determines whether the is valid. + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + When this method returns, contains any error messages generated while validating. + + true if the specified is valid; otherwise, false. + + + + + + Validates the specified . + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + + + + + Validates the specified . + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + The validation event handler. + + + + + An in-memory representation of a JSON Schema. + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets or sets the id. + + + + + Gets or sets the title. + + + + + Gets or sets whether the object is required. + + + + + Gets or sets whether the object is read-only. + + + + + Gets or sets whether the object is visible to users. + + + + + Gets or sets whether the object is transient. + + + + + Gets or sets the description of the object. + + + + + Gets or sets the types of values allowed by the object. + + The type. + + + + Gets or sets the pattern. + + The pattern. + + + + Gets or sets the minimum length. + + The minimum length. + + + + Gets or sets the maximum length. + + The maximum length. + + + + Gets or sets a number that the value should be divisible by. + + A number that the value should be divisible by. + + + + Gets or sets the minimum. + + The minimum. + + + + Gets or sets the maximum. + + The maximum. + + + + Gets or sets a flag indicating whether the value can not equal the number defined by the minimum attribute (). + + A flag indicating whether the value can not equal the number defined by the minimum attribute (). + + + + Gets or sets a flag indicating whether the value can not equal the number defined by the maximum attribute (). + + A flag indicating whether the value can not equal the number defined by the maximum attribute (). + + + + Gets or sets the minimum number of items. + + The minimum number of items. + + + + Gets or sets the maximum number of items. + + The maximum number of items. + + + + Gets or sets the of items. + + The of items. + + + + Gets or sets a value indicating whether items in an array are validated using the instance at their array position from . + + + true if items are validated using their array position; otherwise, false. + + + + + Gets or sets the of additional items. + + The of additional items. + + + + Gets or sets a value indicating whether additional items are allowed. + + + true if additional items are allowed; otherwise, false. + + + + + Gets or sets whether the array items must be unique. + + + + + Gets or sets the of properties. + + The of properties. + + + + Gets or sets the of additional properties. + + The of additional properties. + + + + Gets or sets the pattern properties. + + The pattern properties. + + + + Gets or sets a value indicating whether additional properties are allowed. + + + true if additional properties are allowed; otherwise, false. + + + + + Gets or sets the required property if this property is present. + + The required property if this property is present. + + + + Gets or sets the a collection of valid enum values allowed. + + A collection of valid enum values allowed. + + + + Gets or sets disallowed types. + + The disallowed types. + + + + Gets or sets the default value. + + The default value. + + + + Gets or sets the collection of that this schema extends. + + The collection of that this schema extends. + + + + Gets or sets the format. + + The format. + + + + Initializes a new instance of the class. + + + + + Reads a from the specified . + + The containing the JSON Schema to read. + The object representing the JSON Schema. + + + + Reads a from the specified . + + The containing the JSON Schema to read. + The to use when resolving schema references. + The object representing the JSON Schema. + + + + Load a from a string that contains JSON Schema. + + A that contains JSON Schema. + A populated from the string that contains JSON Schema. + + + + Load a from a string that contains JSON Schema using the specified . + + A that contains JSON Schema. + The resolver. + A populated from the string that contains JSON Schema. + + + + Writes this schema to a . + + A into which this method will write. + + + + Writes this schema to a using the specified . + + A into which this method will write. + The resolver used. + + + + Returns a that represents the current . + + + A that represents the current . + + + + + + Returns detailed information about the schema exception. + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets the line number indicating where the error occurred. + + The line number indicating where the error occurred. + + + + Gets the line position indicating where the error occurred. + + The line position indicating where the error occurred. + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + + Generates a from a specified . + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets or sets how undefined schemas are handled by the serializer. + + + + + Gets or sets the contract resolver. + + The contract resolver. + + + + Generate a from the specified type. + + The type to generate a from. + A generated from the specified type. + + + + Generate a from the specified type. + + The type to generate a from. + The used to resolve schema references. + A generated from the specified type. + + + + Generate a from the specified type. + + The type to generate a from. + Specify whether the generated root will be nullable. + A generated from the specified type. + + + + Generate a from the specified type. + + The type to generate a from. + The used to resolve schema references. + Specify whether the generated root will be nullable. + A generated from the specified type. + + + + + Resolves from an id. + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets or sets the loaded schemas. + + The loaded schemas. + + + + Initializes a new instance of the class. + + + + + Gets a for the specified reference. + + The id. + A for the specified reference. + + + + + The value types allowed by the . + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + No type specified. + + + + + String type. + + + + + Float type. + + + + + Integer type. + + + + + Boolean type. + + + + + Object type. + + + + + Array type. + + + + + Null type. + + + + + Any type. + + + + + + Specifies undefined schema Id handling options for the . + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Do not infer a schema Id. + + + + + Use the .NET type name as the schema Id. + + + + + Use the assembly qualified .NET type name as the schema Id. + + + + + + Returns detailed information related to the . + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets the associated with the validation error. + + The JsonSchemaException associated with the validation error. + + + + Gets the path of the JSON location where the validation error occurred. + + The path of the JSON location where the validation error occurred. + + + + Gets the text description corresponding to the validation error. + + The text description. + + + + + Represents the callback method that will handle JSON schema validation events and the . + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + A camel case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Resolves member mappings for a type, camel casing property names. + + + + + Initializes a new instance of the class. + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Used by to resolve a for a given . + + + + + Gets a value indicating whether members are being get and set using dynamic code generation. + This value is determined by the runtime permissions available. + + + true if using dynamic code generation; otherwise, false. + + + + + Gets or sets the default members search flags. + + The default members search flags. + + + + Gets or sets a value indicating whether compiler generated members should be serialized. + + + true if serialized compiler generated members; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore the interface when serializing and deserializing types. + + + true if the interface will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore the attribute when serializing and deserializing types. + + + true if the attribute will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore IsSpecified members when serializing and deserializing types. + + + true if the IsSpecified members will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore ShouldSerialize members when serializing and deserializing types. + + + true if the ShouldSerialize members will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets the naming strategy used to resolve how property names and dictionary keys are serialized. + + The naming strategy used to resolve how property names and dictionary keys are serialized. + + + + Initializes a new instance of the class. + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Gets the serializable members for the type. + + The type to get serializable members for. + The serializable members for the type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates the constructor parameters. + + The constructor to create properties for. + The type's member properties. + Properties for the given . + + + + Creates a for the given . + + The matching member property. + The constructor parameter. + A created for the given . + + + + Resolves the default for the contract. + + Type of the object. + The contract's default . + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Determines which contract type is created for the given type. + + Type of the object. + A for the given type. + + + + Creates properties for the given . + + The type to create properties for. + /// The member serialization mode for the type. + Properties for the given . + + + + Creates the used by the serializer to get and set values from a member. + + The member. + The used by the serializer to get and set values from a member. + + + + Creates a for the given . + + The member's parent . + The member to create a for. + A created for the given . + + + + Resolves the name of the property. + + Name of the property. + Resolved name of the property. + + + + Resolves the name of the extension data. By default no changes are made to extension data names. + + Name of the extension data. + Resolved name of the extension data. + + + + Resolves the key of the dictionary. By default is used to resolve dictionary keys. + + Key of the dictionary. + Resolved key of the dictionary. + + + + Gets the resolved name of the property. + + Name of the property. + Name of the property. + + + + The default naming strategy. Property names and dictionary keys are unchanged. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + The default serialization binder used when resolving and loading classes from type names. + + + + + Initializes a new instance of the class. + + + + + When overridden in a derived class, controls the binding of a serialized object to a type. + + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + The type of the object the formatter creates a new instance of. + + + + + When overridden in a derived class, controls the binding of a serialized object to a type. + + The type of the object the formatter creates a new instance of. + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + + + Represents a trace writer that writes to the application's instances. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of will exclude messages and include , + and messages. + + + The that will be used to filter the trace messages passed to the writer. + + + + + Writes the specified trace level, message and optional exception. + + The at which to write this trace. + The trace message. + The trace exception. This parameter is optional. + + + + Get and set values for a using dynamic methods. + + + + + Initializes a new instance of the class. + + The member info. + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + Provides information surrounding an error. + + + + + Gets the error. + + The error. + + + + Gets the original object that caused the error. + + The original object that caused the error. + + + + Gets the member that caused the error. + + The member that caused the error. + + + + Gets the path of the JSON location where the error occurred. + + The path of the JSON location where the error occurred. + + + + Gets or sets a value indicating whether this is handled. + + true if handled; otherwise, false. + + + + Provides data for the Error event. + + + + + Gets the current object the error event is being raised against. + + The current object the error event is being raised against. + + + + Gets the error context. + + The error context. + + + + Initializes a new instance of the class. + + The current object. + The error context. + + + + Get and set values for a using dynamic methods. + + + + + Initializes a new instance of the class. + + The member info. + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + Provides methods to get attributes. + + + + + Returns a collection of all of the attributes, or an empty collection if there are no attributes. + + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. + + The type of the attributes. + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Used by to resolve a for a given . + + + + + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Used to resolve references when serializing and deserializing JSON by the . + + + + + Resolves a reference to its object. + + The serialization context. + The reference to resolve. + The object that was resolved from the reference. + + + + Gets the reference for the specified object. + + The serialization context. + The object to get a reference for. + The reference to the object. + + + + Determines whether the specified object is referenced. + + The serialization context. + The object to test for a reference. + + true if the specified object is referenced; otherwise, false. + + + + + Adds a reference to the specified object. + + The serialization context. + The reference. + The object to reference. + + + + Allows users to control class loading and mandate what class to load. + + + + + When implemented, controls the binding of a serialized object to a type. + + Specifies the name of the serialized object. + Specifies the name of the serialized object + The type of the object the formatter creates a new instance of. + + + + When implemented, controls the binding of a serialized object to a type. + + The type of the object the formatter creates a new instance of. + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + + + Represents a trace writer. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of will exclude messages and include , + and messages. + + The that will be used to filter the trace messages passed to the writer. + + + + Writes the specified trace level, message and optional exception. + + The at which to write this trace. + The trace message. + The trace exception. This parameter is optional. + + + + Provides methods to get and set values. + + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + Contract details for a used by the . + + + + + Gets the of the collection items. + + The of the collection items. + + + + Gets a value indicating whether the collection type is a multidimensional array. + + true if the collection type is a multidimensional array; otherwise, false. + + + + Gets or sets the function used to create the object. When set this function will override . + + The function used to create the object. + + + + Gets a value indicating whether the creator has a parameter with the collection values. + + true if the creator has a parameter with the collection values; otherwise, false. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets or sets the default collection items . + + The converter. + + + + Gets or sets a value indicating whether the collection items preserve object references. + + true if collection items preserve object references; otherwise, false. + + + + Gets or sets the collection item reference loop handling. + + The reference loop handling. + + + + Gets or sets the collection item type name handling. + + The type name handling. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Handles serialization callback events. + + The object that raised the callback event. + The streaming context. + + + + Handles serialization error callback events. + + The object that raised the callback event. + The streaming context. + The error context. + + + + Sets extension data for an object during deserialization. + + The object to set extension data on. + The extension data key. + The extension data value. + + + + Gets extension data for an object during serialization. + + The object to set extension data on. + + + + Contract details for a used by the . + + + + + Gets the underlying type for the contract. + + The underlying type for the contract. + + + + Gets or sets the type created during deserialization. + + The type created during deserialization. + + + + Gets or sets whether this type contract is serialized as a reference. + + Whether this type contract is serialized as a reference. + + + + Gets or sets the default for this contract. + + The converter. + + + + Gets or sets all methods called immediately after deserialization of the object. + + The methods called immediately after deserialization of the object. + + + + Gets or sets all methods called during deserialization of the object. + + The methods called during deserialization of the object. + + + + Gets or sets all methods called after serialization of the object graph. + + The methods called after serialization of the object graph. + + + + Gets or sets all methods called before serialization of the object. + + The methods called before serialization of the object. + + + + Gets or sets all method called when an error is thrown during the serialization of the object. + + The methods called when an error is thrown during the serialization of the object. + + + + Gets or sets the default creator method used to create the object. + + The default creator method used to create the object. + + + + Gets or sets a value indicating whether the default creator is non-public. + + true if the default object creator is non-public; otherwise, false. + + + + Contract details for a used by the . + + + + + Gets or sets the dictionary key resolver. + + The dictionary key resolver. + + + + Gets the of the dictionary keys. + + The of the dictionary keys. + + + + Gets the of the dictionary values. + + The of the dictionary values. + + + + Gets or sets the function used to create the object. When set this function will override . + + The function used to create the object. + + + + Gets a value indicating whether the creator has a parameter with the dictionary values. + + true if the creator has a parameter with the dictionary values; otherwise, false. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets the object's properties. + + The object's properties. + + + + Gets or sets the property name resolver. + + The property name resolver. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets or sets the object constructor. + + The object constructor. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets or sets the object member serialization. + + The member object serialization. + + + + Gets or sets a value that indicates whether the object's properties are required. + + + A value indicating whether the object's properties are required. + + + + + Gets or sets how the object's properties with null values are handled during serialization and deserialization. + + How the object's properties with null values are handled during serialization and deserialization. + + + + Gets the object's properties. + + The object's properties. + + + + Gets a collection of instances that define the parameters used with . + + + + + Gets or sets the function used to create the object. When set this function will override . + This function is called with a collection of arguments which are defined by the collection. + + The function used to create the object. + + + + Gets or sets the extension data setter. + + + + + Gets or sets the extension data getter. + + + + + Gets or sets the extension data value type. + + + + + Gets or sets the extension data name resolver. + + The extension data name resolver. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Maps a JSON property to a .NET member or constructor parameter. + + + + + Gets or sets the name of the property. + + The name of the property. + + + + Gets or sets the type that declared this property. + + The type that declared this property. + + + + Gets or sets the order of serialization of a member. + + The numeric order of serialization. + + + + Gets or sets the name of the underlying member or parameter. + + The name of the underlying member or parameter. + + + + Gets the that will get and set the during serialization. + + The that will get and set the during serialization. + + + + Gets or sets the for this property. + + The for this property. + + + + Gets or sets the type of the property. + + The type of the property. + + + + Gets or sets the for the property. + If set this converter takes precedence over the contract converter for the property type. + + The converter. + + + + Gets or sets the member converter. + + The member converter. + + + + Gets or sets a value indicating whether this is ignored. + + true if ignored; otherwise, false. + + + + Gets or sets a value indicating whether this is readable. + + true if readable; otherwise, false. + + + + Gets or sets a value indicating whether this is writable. + + true if writable; otherwise, false. + + + + Gets or sets a value indicating whether this has a member attribute. + + true if has a member attribute; otherwise, false. + + + + Gets the default value. + + The default value. + + + + Gets or sets a value indicating whether this is required. + + A value indicating whether this is required. + + + + Gets or sets a value indicating whether this property preserves object references. + + + true if this instance is reference; otherwise, false. + + + + + Gets or sets the property null value handling. + + The null value handling. + + + + Gets or sets the property default value handling. + + The default value handling. + + + + Gets or sets the property reference loop handling. + + The reference loop handling. + + + + Gets or sets the property object creation handling. + + The object creation handling. + + + + Gets or sets or sets the type name handling. + + The type name handling. + + + + Gets or sets a predicate used to determine whether the property should be serialized. + + A predicate used to determine whether the property should be serialized. + + + + Gets or sets a predicate used to determine whether the property should be deserialized. + + A predicate used to determine whether the property should be deserialized. + + + + Gets or sets a predicate used to determine whether the property should be serialized. + + A predicate used to determine whether the property should be serialized. + + + + Gets or sets an action used to set whether the property has been deserialized. + + An action used to set whether the property has been deserialized. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Gets or sets the converter used when serializing the property's collection items. + + The collection's items converter. + + + + Gets or sets whether this property's collection items are serialized as a reference. + + Whether this property's collection items are serialized as a reference. + + + + Gets or sets the type name handling used when serializing the property's collection items. + + The collection's items type name handling. + + + + Gets or sets the reference loop handling used when serializing the property's collection items. + + The collection's items reference loop handling. + + + + A collection of objects. + + + + + Initializes a new instance of the class. + + The type. + + + + When implemented in a derived class, extracts the key from the specified element. + + The element from which to extract the key. + The key for the specified element. + + + + Adds a object. + + The property to add to the collection. + + + + Gets the closest matching object. + First attempts to get an exact case match of and then + a case insensitive match. + + Name of the property. + A matching property if found. + + + + Gets a property by property name. + + The name of the property to get. + Type property name string comparison. + A matching property if found. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Lookup and create an instance of the type described by the argument. + + The type to create. + Optional arguments to pass to an initializing constructor of the JsonConverter. + If null, the default constructor is used. + + + + Represents a trace writer that writes to memory. When the trace message limit is + reached then old trace messages will be removed as new messages are added. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of will exclude messages and include , + and messages. + + + The that will be used to filter the trace messages passed to the writer. + + + + + Initializes a new instance of the class. + + + + + Writes the specified trace level, message and optional exception. + + The at which to write this trace. + The trace message. + The trace exception. This parameter is optional. + + + + Returns an enumeration of the most recent trace messages. + + An enumeration of the most recent trace messages. + + + + Returns a of the most recent trace messages. + + + A of the most recent trace messages. + + + + + A base class for resolving how property names and dictionary keys are serialized. + + + + + A flag indicating whether dictionary keys should be processed. + Defaults to false. + + + + + A flag indicating whether extension data names should be processed. + Defaults to false. + + + + + A flag indicating whether explicitly specified property names, + e.g. a property name customized with a , should be processed. + Defaults to false. + + + + + Gets the serialized name for a given property name. + + The initial property name. + A flag indicating whether the property has had a name explicitly specified. + The serialized property name. + + + + Gets the serialized name for a given extension data name. + + The initial extension data name. + The serialized extension data name. + + + + Gets the serialized key for a given dictionary key. + + The initial dictionary key. + The serialized dictionary key. + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Represents a method that constructs an object. + + The object type to create. + + + + When applied to a method, specifies that the method is called when an error occurs serializing an object. + + + + + Provides methods to get attributes from a , , or . + + + + + Initializes a new instance of the class. + + The instance to get attributes for. This parameter should be a , , or . + + + + Returns a collection of all of the attributes, or an empty collection if there are no attributes. + + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. + + The type of the attributes. + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Get and set values for a using reflection. + + + + + Initializes a new instance of the class. + + The member info. + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + A snake case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Specifies how strings are escaped when writing JSON text. + + + + + Only control characters (e.g. newline) are escaped. + + + + + All non-ASCII and control characters (e.g. newline) are escaped. + + + + + HTML (<, >, &, ', ") and control characters (e.g. newline) are escaped. + + + + + Indicates the method that will be used during deserialization for locating and loading assemblies. + + + + + In simple mode, the assembly used during deserialization need not match exactly the assembly used during serialization. Specifically, the version numbers need not match as the LoadWithPartialName method of the class is used to load the assembly. + + + + + In full mode, the assembly used during deserialization must match exactly the assembly used during serialization. The Load method of the class is used to load the assembly. + + + + + Specifies type name handling options for the . + + + should be used with caution when your application deserializes JSON from an external source. + Incoming types should be validated with a custom + when deserializing with a value other than . + + + + + Do not include the .NET type name when serializing types. + + + + + Include the .NET type name when serializing into a JSON object structure. + + + + + Include the .NET type name when serializing into a JSON array structure. + + + + + Always include the .NET type name when serializing. + + + + + Include the .NET type name when the type of the object being serialized is not the same as its declared type. + Note that this doesn't include the root serialized object by default. To include the root object's type name in JSON + you must specify a root type object with + or . + + + + + Determines whether the collection is null or empty. + + The collection. + + true if the collection is null or empty; otherwise, false. + + + + + Adds the elements of the specified collection to the specified generic . + + The list to add to. + The collection of elements to add. + + + + Converts the value to the specified type. If the value is unable to be converted, the + value is checked whether it assignable to the specified type. + + The value to convert. + The culture to use when converting. + The type to convert or cast the value to. + + The converted type. If conversion was unsuccessful, the initial value + is returned if assignable to the target type. + + + + + Helper method for generating a MetaObject which calls a + specific method on Dynamic that returns a result + + + + + Helper method for generating a MetaObject which calls a + specific method on Dynamic, but uses one of the arguments for + the result. + + + + + Helper method for generating a MetaObject which calls a + specific method on Dynamic, but uses one of the arguments for + the result. + + + + + Returns a Restrictions object which includes our current restrictions merged + with a restriction limiting our type + + + + + Helper class for serializing immutable collections. + Note that this is used by all builds, even those that don't support immutable collections, in case the DLL is GACed + https://github.com/JamesNK/Newtonsoft.Json/issues/652 + + + + + Gets the type of the typed collection's items. + + The type. + The type of the typed collection's items. + + + + Gets the member's underlying type. + + The member. + The underlying type of the member. + + + + Determines whether the member is an indexed property. + + The member. + + true if the member is an indexed property; otherwise, false. + + + + + Determines whether the property is an indexed property. + + The property. + + true if the property is an indexed property; otherwise, false. + + + + + Gets the member's value on the object. + + The member. + The target object. + The member's value on the object. + + + + Sets the member's value on the target object. + + The member. + The target. + The value. + + + + Determines whether the specified MemberInfo can be read. + + The MemberInfo to determine whether can be read. + /// if set to true then allow the member to be gotten non-publicly. + + true if the specified MemberInfo can be read; otherwise, false. + + + + + Determines whether the specified MemberInfo can be set. + + The MemberInfo to determine whether can be set. + if set to true then allow the member to be set non-publicly. + if set to true then allow the member to be set if read-only. + + true if the specified MemberInfo can be set; otherwise, false. + + + + + Builds a string. Unlike this class lets you reuse its internal buffer. + + + + + Determines whether the string is all white space. Empty string will return false. + + The string to test whether it is all white space. + + true if the string is all white space; otherwise, false. + + + + + Specifies the state of the . + + + + + An exception has been thrown, which has left the in an invalid state. + You may call the method to put the in the Closed state. + Any other method calls result in an being thrown. + + + + + The method has been called. + + + + + An object is being written. + + + + + An array is being written. + + + + + A constructor is being written. + + + + + A property is being written. + + + + + A write method has not been called. + + + + diff --git a/tests/Trinity.Tests.Virtuoso/bin/Debug/Ontologies/dces.ttl b/tests/Trinity.Tests.Virtuoso/bin/Debug/Ontologies/dces.ttl new file mode 100644 index 0000000..4510e02 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Debug/Ontologies/dces.ttl @@ -0,0 +1,177 @@ +@prefix rdf: . +@prefix owl: . +@prefix skos: . +@prefix dcam: . +@prefix dcterms: . +@prefix rdfs: . + + + dcterms:modified "2013-01-03"^^ ; + dcterms:publisher ; + dcterms:title "Dublin Core Metadata Element Set, Version 1.1"@en . + + + dcterms:description "Examples of a Contributor include a person, an organization, or a service. Typically, the name of a Contributor should be used to indicate the entity."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "An entity responsible for making contributions to the resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Contributor"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Spatial topic and spatial applicability may be a named place or a location specified by its geographic coordinates. Temporal topic may be a named period, date, or date range. A jurisdiction may be a named administrative entity or a geographic place to which the resource applies. Recommended best practice is to use a controlled vocabulary such as the Thesaurus of Geographic Names [TGN]. Where appropriate, named places or time periods can be used in preference to numeric identifiers such as sets of coordinates or date ranges."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "The spatial or temporal topic of the resource, the spatial applicability of the resource, or the jurisdiction under which the resource is relevant."@en ; + rdfs:isDefinedBy ; + rdfs:label "Coverage"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Examples of a Creator include a person, an organization, or a service. Typically, the name of a Creator should be used to indicate the entity."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "An entity primarily responsible for making the resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Creator"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Date may be used to express temporal information at any level of granularity. Recommended best practice is to use an encoding scheme, such as the W3CDTF profile of ISO 8601 [W3CDTF]."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "A point or period of time associated with an event in the lifecycle of the resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Date"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Description may include but is not limited to: an abstract, a table of contents, a graphical representation, or a free-text account of the resource."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "An account of the resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Description"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Examples of dimensions include size and duration. Recommended best practice is to use a controlled vocabulary such as the list of Internet Media Types [MIME]."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "The file format, physical medium, or dimensions of the resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Format"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Recommended best practice is to identify the resource by means of a string conforming to a formal identification system. "@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "An unambiguous reference to the resource within a given context."@en ; + rdfs:isDefinedBy ; + rdfs:label "Identifier"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Recommended best practice is to use a controlled vocabulary such as RFC 4646 [RFC4646]."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "A language of the resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Language"@en ; + rdfs:seeAlso ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Examples of a Publisher include a person, an organization, or a service. Typically, the name of a Publisher should be used to indicate the entity."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "An entity responsible for making the resource available."@en ; + rdfs:isDefinedBy ; + rdfs:label "Publisher"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Recommended best practice is to identify the related resource by means of a string conforming to a formal identification system. "@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "A related resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Relation"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Typically, rights information includes a statement about various property rights associated with the resource, including intellectual property rights."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "Information about rights held in and over the resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Rights"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "The described resource may be derived from the related resource in whole or in part. Recommended best practice is to identify the related resource by means of a string conforming to a formal identification system."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "A related resource from which the described resource is derived."@en ; + rdfs:isDefinedBy ; + rdfs:label "Source"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Typically, the subject will be represented using keywords, key phrases, or classification codes. Recommended best practice is to use a controlled vocabulary."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2012-06-14"^^ ; + a rdf:Property ; + rdfs:comment "The topic of the resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Subject"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "A name given to the resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Title"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Recommended best practice is to use a controlled vocabulary such as the DCMI Type Vocabulary [DCMITYPE]. To describe the file format, physical medium, or dimensions of the resource, use the Format element."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "The nature or genre of the resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Type"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + diff --git a/tests/Trinity.Tests.Virtuoso/bin/Debug/Ontologies/fo af.rdf b/tests/Trinity.Tests.Virtuoso/bin/Debug/Ontologies/fo af.rdf new file mode 100644 index 0000000..68d0700 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Debug/Ontologies/fo af.rdf @@ -0,0 +1,609 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Label Property + A foaf:LabelProperty is any RDF property with texual values that serve as labels. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/Trinity.Tests.Virtuoso/bin/Debug/Ontologies/foaf.rdf b/tests/Trinity.Tests.Virtuoso/bin/Debug/Ontologies/foaf.rdf new file mode 100644 index 0000000..68d0700 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Debug/Ontologies/foaf.rdf @@ -0,0 +1,609 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Label Property + A foaf:LabelProperty is any RDF property with texual values that serve as labels. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/Trinity.Tests.Virtuoso/bin/Debug/Ontologies/nco.trig b/tests/Trinity.Tests.Virtuoso/bin/Debug/Ontologies/nco.trig new file mode 100644 index 0000000..c7b560c --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Debug/Ontologies/nco.trig @@ -0,0 +1,811 @@ +# +# Copyright (c) 2007 NEPOMUK Consortium +# Copyright (c) 2009-2011 Sebastian Trueg +# +# All rights reserved, licensed under either CC-BY or BSD. +# +# You are free: +# * to Share - to copy, distribute and transmit the work +# * to Remix - to adapt the work +# Under the following conditions: +# * Attribution - You must attribute the work in the manner specified by the author +# or licensor (but not in any way that suggests that they endorse you or your use +# of the work). +# +# Redistribution and use in source and binary forms, with or without modification, +# are permitted provided that the following conditions are met: +# * Redistributions of source code must retain the above copyright notice, this +# list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this +# list of conditions and the following disclaimer in the documentation and/or +# other materials provided with the distribution. +# * Neither the names of the authors nor the names of contributors may +# be used to endorse or promote products derived from this ontology without +# specific prior written permission. +# +# THIS ONTOLOGY IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +# THIS ONTOLOGY, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +@prefix exif: . +@prefix nid3: . +@prefix nrl: . +@prefix nfo: . +@prefix xsd: . +@prefix tmo: . +@prefix protege: . +@prefix nmo: . +@prefix rdfs: . +@prefix nexif: . +@prefix ncal: . +@prefix pimo: . +@prefix dcterms: . +@prefix nao: . +@prefix geo: . +@prefix dc: . +@prefix nie: . +@prefix nco: . +@prefix rdf: . + +nco: {nco:region + a rdf:Property ; + rdfs:comment "Region. Inspired by the fifth part of the value of the 'ADR' property as defined in RFC 2426, sec. 3.2.1" ; + rdfs:domain nco:PostalAddress ; + rdfs:label "region" ; + rdfs:range xsd:string ; + nrl:maxCardinality 1 . + + nco:key + a rdf:Property ; + rdfs:comment "An encryption key attached to a contact. Inspired by the KEY property defined in RFC 2426 sec. 3.7.2" ; + rdfs:domain nco:Contact ; + rdfs:label "key" ; + rdfs:range nie:DataObject ; + rdfs:subPropertyOf nie:hasPart . + + nco:nameHonorificSuffix + a rdf:Property ; + rdfs:comment "A suffix for the name of the Object represented by the given object. See documentation for the 'nameFamily' for details." ; + rdfs:domain nco:PersonContact ; + rdfs:label "nameHonorificSuffix" ; + rdfs:range xsd:string . + + nco:url + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "A uniform resource locator associated with the given role of a Contact. Inspired by the 'URL' property defined in RFC 2426 Sec. 3.6.8." ; + rdfs:domain nco:Role ; + rdfs:label "url" ; + rdfs:range rdfs:Resource . + + nco:VoicePhoneNumber + a rdfs:Class ; + rdfs:comment "A telephone number with voice communication capabilities. Class inspired by the TYPE=voice parameter of the TEL property defined in RFC 2426 sec. 3.3.1" ; + rdfs:label "VoicePhoneNumber" ; + rdfs:subClassOf nco:PhoneNumber . + + nco:nameFamily + a rdf:Property ; + rdfs:comment "The family name of an Object represented by this Contact. These applies to people that have more than one given name. The 'first' one is considered 'the' given name (see nameGiven) property. All additional ones are considered 'additional' names. The name inherited from parents is the 'family name'. e.g. For Dr. John Phil Paul Stevenson Jr. M.D. A.C.P. we have contact with: honorificPrefix: 'Dr.', nameGiven: 'John', nameAdditional: 'Phil', nameAdditional: 'Paul', nameFamily: 'Stevenson', honorificSuffix: 'Jr.', honorificSuffix: 'M.D.', honorificSuffix: 'A.C.P.'. These properties form an equivalent of the compound 'N' property as defined in RFC 2426 Sec. 3.1.2" ; + rdfs:domain nco:PersonContact ; + rdfs:label "nameFamily" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" . + + nco:VideoTelephoneNumber + a rdfs:Class ; + rdfs:comment "A Video telephone number. A class inspired by the TYPE=video parameter of the TEL property defined in RFC 2426 sec. 3.3.1" ; + rdfs:label "VideoTelephoneNumber" ; + rdfs:subClassOf nco:VoicePhoneNumber . + + nco:contactUID + a rdf:Property ; + rdfs:comment "A value that represents a globally unique identifier corresponding to the individual or resource associated with the Contact. An equivalent of the 'UID' property defined in RFC 2426 Sec. 3.6.7" ; + rdfs:domain nco:Contact ; + rdfs:label "contactUID" ; + rdfs:range xsd:string ; + rdfs:subPropertyOf nie:identifier ; + nrl:maxCardinality "1" . + + nco:publisher + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "An entity responsible for making the InformationElement available." ; + rdfs:domain nie:InformationElement ; + rdfs:label "publisher" ; + rdfs:range nco:Contact ; + rdfs:subPropertyOf dc:publisher . + + nco:country + a rdf:Property ; + rdfs:comment "A part of an address specyfing the country. Inspired by the seventh part of the value of the 'ADR' property as defined in RFC 2426, sec. 3.2.1" ; + rdfs:domain nco:PostalAddress ; + rdfs:label "country" ; + rdfs:range xsd:string ; + nrl:maxCardinality 1 . + + nco:nameHonorificPrefix + a rdf:Property ; + rdfs:comment "A prefix for the name of the object represented by this Contact. See documentation for the 'nameFamily' property for details." ; + rdfs:domain nco:PersonContact ; + rdfs:label "nameHonorificPrefix" ; + rdfs:range xsd:string . + + nco:extendedAddress + a rdf:Property ; + rdfs:comment "An extended part of an address. This field might be used to express parts of an address that aren't include in the name of the Contact but also aren't part of the actual location. Usually the streed address and following fields are enough for a postal letter to arrive. Examples may include ('University of California Campus building 45', 'Sears Tower 34th floor' etc.) Inspired by the second part of the value of the 'ADR' property as defined in RFC 2426, sec. 3.2.1" ; + rdfs:domain nco:PostalAddress ; + rdfs:label "extendedAddress" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" . + + nco:IMAccount + a rdfs:Class ; + rdfs:comment "An account in an Instant Messaging system." ; + rdfs:label "IMAccount" ; + rdfs:subClassOf nco:ContactMedium . + + nco:hasIMAccount + a rdf:Property ; + rdfs:comment "Indicates that an Instant Messaging account owned by an entity represented by this contact." ; + rdfs:domain nco:Role ; + rdfs:label "hasIMAccount" ; + rdfs:range nco:IMAccount ; + rdfs:subPropertyOf nco:hasContactMedium . + + nco:IsdnNumber + a rdfs:Class ; + rdfs:comment "An ISDN phone number. Inspired by the (TYPE=isdn) parameter of the TEL property as defined in RFC 2426 sec 3.3.1." ; + rdfs:label "IsdnNumber" ; + rdfs:subClassOf nco:VoicePhoneNumber . + + nco:creator + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "Creator of an information element, an entity primarily responsible for the creation of the content of the data object." ; + rdfs:domain nie:InformationElement ; + rdfs:label "creator" ; + rdfs:range nco:Contact ; + rdfs:subPropertyOf dc:creator , nco:contributor , nao:creator . + + nco:hasLocation + a rdf:Property ; + rdfs:comment "Geographical location of the contact. Inspired by the 'GEO' property specified in RFC 2426 Sec. 3.4.2" ; + rdfs:domain nco:Contact ; + rdfs:label "hasLocation" ; + rdfs:range geo:Point ; + nrl:maxCardinality "1" . + + nco:birthday + a rdf:Property ; + rdfs:comment "Links a contact with the calendar event of his birthday. (NCAL version)"; + rdfs:label "birthday" ; + rdfs:domain nco:Contact ; + rdfs:range ncal:BirthdayEvent ; + nrl:maxCardinality "1" . + + nco:phoneNumber + a rdf:Property ; + rdfs:domain nco:PhoneNumber ; + rdfs:label "phoneNumber" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" . + + nco:nickname + a rdf:Property ; + rdfs:comment "A nickname of the Object represented by this Contact. This is an equivalent of the 'NICKNAME' property as defined in RFC 2426 Sec. 3.1.3." ; + rdfs:domain nco:Contact ; + rdfs:label "nickname" ; + rdfs:range xsd:string . + + nco:imStatus + a rdf:Property, nrl:NonDefiningProperty ; + rdfs:comment "Current status of the given IM account. When this property is set, the nco:imStatusType should also always be set. Applications should attempt to parse this property to determine the presence, only falling back to the nco:imStatusType property in the case that this property's value is unrecognised. Values for this property may include 'available', 'offline', 'busy' etc. The exact choice of them is unspecified, although it is recommended to follow the guidance of the Telepathy project when choosing a string identifier http://telepathy.freedesktop.org/spec/Connection_Interface_Simple_Presence.html#description" ; + rdfs:domain nco:IMAccount ; + rdfs:label "imStatus" ; + rdfs:range xsd:string ; + nrl:maxCardinality 1 . + + nco:imStatusType + a rdf:Property ; + rdfs:comment "Current status type of the given IM account. When this property is set, the nco:imStatus property should also always be set. Applications should attempt to parse the nco:imStatus property to determine the presence, only falling back to this property in the case that the nco:imStatus property's value is unrecognised." ; + rdfs:domain nco:IMAccount ; + rdfs:label "instant messaging status type" ; + rdfs:range nco:IMStatusType ; + nrl:maxCardinality 1 . + + nco:IMStatusType a rdfs:Class ; + rdfs:label "instant messaging status type" ; + rdfs:comment "The status type of an IMAccount. Based on the Connection_Presence_Type enumeration of the Telepathy project: http://telepathy.freedesktop.org/spec/Connection_Interface_Simple_Presence.html#Enum:Connection_Presence_Type" ; + rdfs:subClassOf rdfs:Resource . + + nco:IMStatusTypeOffline + a nco:IMStatusType ; + rdfs:label "offline" . + + nco:IMStatusTypeAvailable + a nco:IMStatusType ; + rdfs:label "available" . + + nco:IMStatusTypeAway + a nco:IMStatusType ; + rdfs:label "away" . + + nco:IMStatusTypeExtendedAway + a nco:IMStatusType ; + rdfs:label "extended away". + + nco:IMStatusTypeHidden + a nco:IMStatusType ; + rdfs:label "hidden" . + + nco:IMStatusTypeBusy + a nco:IMStatusType ; + rdfs:label "busy" . + + nco:IMStatusTypeUnknown + a nco:IMStatusType ; + rdfs:label "unknown" . + + nco:containsContact + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment """A property used to group contacts into contact groups. This + property was NOT defined in the VCARD standard. See documentation for the + 'ContactList' class for details""" ; + rdfs:domain nco:ContactList ; + rdfs:label "containsContact" ; + rdfs:range nco:ContactListDataObject ; + rdfs:subPropertyOf nie:hasPart . + + nco:department + a rdf:Property ; + rdfs:comment "Department. The organizational unit within the organization." ; + rdfs:domain nco:Affiliation ; + rdfs:label "department" ; + rdfs:range xsd:string . + + nco:imID + a rdf:Property ; + rdfs:comment "Identifier of the IM account. Examples of such identifier might include ICQ UINs, Jabber IDs, Skype names etc." ; + rdfs:domain nco:IMAccount ; + rdfs:label "imID" ; + rdfs:range xsd:string ; + rdfs:subPropertyOf nao:identifier . + + nco:addressLocation + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "The geographical location of a postal address." ; + rdfs:domain nco:PostalAddress ; + rdfs:label "addressLocation" ; + rdfs:range geo:Point ; + nrl:maxCardinality "1" . + + nco:note + a rdf:Property ; + rdfs:comment "A note about the object represented by this Contact. An equivalent for the 'NOTE' property defined in RFC 2426 Sec. 3.6.2" ; + rdfs:domain nco:Contact ; + rdfs:label "note" ; + rdfs:range xsd:string ; + rdfs:subPropertyOf nie:description . + + nco:representative + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "An object that represent an object represented by this Contact. Usually this property is used to link a Contact to an organization, to a contact to the representative of this organization the user directly interacts with. An equivalent for the 'AGENT' property defined in RFC 2426 Sec. 3.5.4" ; + rdfs:domain nco:Contact ; + rdfs:label "representative" ; + rdfs:range nco:Contact . + + nco:nameAdditional + a rdf:Property ; + rdfs:comment "Additional given name of an object represented by this contact. See documentation for 'nameFamily' property for details." ; + rdfs:domain nco:PersonContact ; + rdfs:label "nameAdditional" ; + rdfs:range xsd:string . + + nco:nameGiven + a rdf:Property ; + rdfs:comment "The given name for the object represented by this Contact. See documentation for 'nameFamily' property for details." ; + rdfs:domain nco:PersonContact ; + rdfs:label "nameGiven" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" . + + nco:PcsNumber + a rdfs:Class ; + rdfs:comment "Personal Communication Services Number. A class inspired by the TYPE=pcs parameter of the TEL property defined in RFC 2426 sec. 3.3.1" ; + rdfs:label "PcsNumber" ; + rdfs:subClassOf nco:VoicePhoneNumber . + + nco:ContactList + a rdfs:Class ; + rdfs:comment "A contact list, this class represents an addressbook or a contact list of an IM application. Contacts inside a contact list can belong to contact groups." ; + rdfs:label "ContactList" ; + rdfs:subClassOf nie:InformationElement . + + nco:fullname + a rdf:Property ; + rdfs:comment "To specify the formatted text corresponding to the name of the object the Contact represents. An equivalent of the FN property as defined in RFC 2426 Sec. 3.1.1." ; + rdfs:domain nco:Contact ; + rdfs:label "fullname" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" ; + rdfs:subPropertyOf nie:title . + + nco:ContactGroup + a rdfs:Class ; + rdfs:comment "A group of Contacts. Could be used to express a group in an addressbook or on a contact list of an IM application. One contact can belong to many groups." ; + rdfs:label "ContactGroup" ; + rdfs:subClassOf nie:InformationElement . + + nco:BbsNumber + a rdfs:Class ; + rdfs:comment "A Bulletin Board System (BBS) phone number. Inspired by the (TYPE=bbsl) parameter of the TEL property as defined in RFC 2426 sec 3.3.1." ; + rdfs:label "BbsNumber" ; + rdfs:subClassOf nco:ModemNumber . + + nco:Affiliation + a rdfs:Class ; + rdfs:comment "Aggregates three properties defined in RFC2426. Originally all three were attached directly to a person. One person could have only one title and one role within one organization. This class is intended to lift this limitation." ; + rdfs:label "Affiliation" ; + rdfs:subClassOf nco:Role . + + nco:streetAddress + a rdf:Property ; + rdfs:comment "The streed address. Inspired by the third part of the value of the 'ADR' property as defined in RFC 2426, sec. 3.2.1" ; + rdfs:domain nco:PostalAddress ; + rdfs:label "streetAddress" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" . + + nco:OrganizationContact + a rdfs:Class ; + rdfs:comment "A Contact that denotes on Organization." ; + rdfs:label "OrganizationContact" ; + rdfs:subClassOf nco:Contact . + + nco:PhoneNumber + a rdfs:Class ; + rdfs:comment "A telephone number." ; + rdfs:label "PhoneNumber" ; + rdfs:subClassOf nco:ContactMedium . + + nco:Contact + a rdfs:Class ; + rdfs:comment "A Contact. A piece of data that can provide means to identify or communicate with an entity." ; + rdfs:label "Contact" ; + rdfs:subClassOf nco:Role , nie:InformationElement , nao:Party . + + nco:ModemNumber + a rdfs:Class ; + rdfs:comment "A modem phone number. Inspired by the (TYPE=modem) parameter of the TEL property as defined in RFC 2426 sec 3.3.1." ; + rdfs:label "ModemNumber" ; + rdfs:subClassOf nco:PhoneNumber . + + nco:Role + a rdfs:Class ; + rdfs:comment "A role played by a contact. Contacts that denote people, can have many roles (e.g. see the hasAffiliation property and Affiliation class). Contacts that denote Organizations or other Agents usually have one role. Each role can introduce additional contact media." ; + rdfs:label "Role" ; + rdfs:subClassOf rdfs:Resource . + + nco:PagerNumber + a rdfs:Class ; + rdfs:comment "A pager phone number. Inspired by the (TYPE=pager) parameter of the TEL property as defined in RFC 2426 sec 3.3.1." ; + rdfs:label "PagerNumber" ; + rdfs:subClassOf nco:MessagingNumber . + + nco:hasPhoneNumber + a rdf:Property ; + rdfs:comment "A number for telephony communication with the object represented by this Contact. An equivalent of the 'TEL' property defined in RFC 2426 Sec. 3.3.1" ; + rdfs:domain nco:Role ; + rdfs:label "hasPhoneNumber" ; + rdfs:range nco:PhoneNumber ; + rdfs:subPropertyOf nco:hasContactMedium . + + nco:photo + a rdf:Property ; + rdfs:comment "Photograph attached to a Contact. The DataObject referred to by this property is usually interpreted as an nfo:Image. Inspired by the PHOTO property defined in RFC 2426 sec. 3.1.4" ; + rdfs:domain nco:Contact ; + rdfs:label "photo" ; + rdfs:range nie:DataObject ; + rdfs:subPropertyOf nie:hasPart . + + nco:contributor + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "An entity responsible for making contributions to the content of the InformationElement." ; + rdfs:domain nie:InformationElement ; + rdfs:label "contributor" ; + rdfs:range nco:Contact ; + rdfs:subPropertyOf dc:contributor , nao:contributor . + + nco:logo + a rdf:Property ; + rdfs:comment "Logo of a company. Inspired by the LOGO property defined in RFC 2426 sec. 3.5.3" ; + rdfs:domain nco:OrganizationContact ; + rdfs:label "logo" ; + rdfs:range nie:DataObject ; + rdfs:subPropertyOf nie:hasPart . + + nco:websiteUrl + a rdf:Property ; + rdfs:comment "A url of a website." ; + rdfs:domain nco:Role ; + rdfs:label "websiteUrl" ; + rdfs:range rdfs:Resource ; + rdfs:subPropertyOf nco:url . + + nco:ContactMedium + a rdfs:Class ; + rdfs:comment "A superclass for all contact media - ways to contact an entity represented by a Contact instance. Some of the subclasses of this class (the various kinds of telephone numbers and postal addresses) have been inspired by the values of the TYPE parameter of ADR and TEL properties defined in RFC 2426 sec. 3.2.1. and 3.3.1 respectively. Each value is represented by an appropriate subclass with two major exceptions TYPE=home and TYPE=work. They are to be expressed by the roles these contact media are attached to i.e. contact media with TYPE=home parameter are to be attached to the default role (nco:Contact or nco:PersonContact), whereas media with TYPE=work parameter should be attached to nco:Affiliation or nco:OrganizationContact." ; + rdfs:label "ContactMedium" ; + rdfs:subClassOf rdfs:Resource . + + nco:Gender + a rdfs:Class ; + rdfs:comment "Gender. Instances of this class may include male and female." ; + rdfs:label "Gender" ; + rdfs:subClassOf rdfs:Resource . + + nco:male + a nco:Gender ; + rdfs:comment "A Male" ; + rdfs:label "male" . + + nco:birthDate + a rdf:Property ; + rdfs:comment "Birth date of the object represented by this Contact. An equivalent of the 'BDAY' property as defined in RFC 2426 Sec. 3.1.5." ; + rdfs:domain nco:Contact ; + rdfs:label "birthDate" ; + rdfs:range xsd:date ; + rdfs:subPropertyOf dc:date ; + nrl:maxCardinality 1 . + + nco:hasEmailAddress + a rdf:Property ; + rdfs:comment "An address for electronic mail communication with the object specified by this contact. An equivalent of the 'EMAIL' property as defined in RFC 2426 Sec. 3.3.1." ; + rdfs:domain nco:Role ; + rdfs:label "hasEmailAddress" ; + rdfs:range nco:EmailAddress ; + rdfs:subPropertyOf nco:hasContactMedium . + + nco:postalcode + a rdf:Property ; + rdfs:comment "Postal Code. Inspired by the sixth part of the value of the 'ADR' property as defined in RFC 2426, sec. 3.2.1" ; + rdfs:domain nco:PostalAddress ; + rdfs:label "postalcode" ; + rdfs:range xsd:string ; + nrl:maxCardinality 1 . + + nco:MessagingNumber + a rdfs:Class ; + rdfs:comment "A number that can accept textual messages." ; + rdfs:label "MessagingNumber" ; + rdfs:subClassOf nco:PhoneNumber . + + nco:org + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "Name of an organization or a unit within an organization the object represented by a Contact is associated with. An equivalent of the 'ORG' property defined in RFC 2426 Sec. 3.5.5" ; + rdfs:domain nco:Affiliation ; + rdfs:label "org" ; + rdfs:range nco:OrganizationContact ; + nrl:maxCardinality "1" . + + nco:PersonContact + a rdfs:Class ; + rdfs:comment "A Contact that denotes a Person. A person can have multiple Affiliations." ; + rdfs:label "PersonContact" ; + rdfs:subClassOf nco:Contact . + + nco:ParcelDeliveryAddress + a rdfs:Class ; + rdfs:comment "Parcel Delivery Addresse. Class inspired by TYPE=parcel parameter of the ADR property defined in RFC 2426 sec. 3.2.1" ; + rdfs:label "ParcelDeliveryAddress" ; + rdfs:subClassOf nco:PostalAddress . + + nco:title + a rdf:Property ; + rdfs:comment "The official title the object represented by this contact in an organization. E.g. 'CEO', 'Director, Research and Development', 'Junior Software Developer/Analyst' etc. An equivalent of the 'TITLE' property defined in RFC 2426 Sec. 3.5.1" ; + rdfs:domain nco:Affiliation ; + rdfs:label "title" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" . + + nco:AudioIMAccount + a rdfs:Class ; + nao:deprecated true ; + rdfs:comment "Deprecated in favour of nco:imCapabilityAudio." ; + rdfs:label "AudioIMAccount" ; + rdfs:subClassOf nco:IMAccount . + + nco:voiceMail + a rdf:Property ; + rdfs:comment "Indicates if the given number accepts voice mail. (e.g. there is an answering machine). Inspired by TYPE=msg parameter of the TEL property defined in RFC 2426 sec. 3.3.1" ; + rdfs:domain nco:VoicePhoneNumber ; + rdfs:label "voiceMail" ; + rdfs:range xsd:boolean ; + nrl:maxCardinality "1" . + + nco:PostalAddress + a rdfs:Class ; + rdfs:comment "A postal address. A class aggregating the various parts of a value for the 'ADR' property as defined in RFC 2426 Sec. 3.2.1." ; + rdfs:label "PostalAddress" ; + rdfs:subClassOf nco:ContactMedium . + + nco:belongsToGroup + a rdf:Property ; + rdfs:comment "Links a Contact with a ContactGroup it belongs to." ; + rdfs:domain nco:Contact ; + rdfs:label "belongsToGroup" ; + rdfs:range nco:ContactGroup . + + nco:hasContactMedium + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "A superProperty for all properties linking a Contact to an instance of a contact medium." ; + rdfs:domain nco:Role ; + rdfs:label "hasContactMedium" ; + rdfs:range nco:ContactMedium . + + nco:contactGroupName + a rdf:Property ; + rdfs:comment """The name of the contact group. This property was NOT defined + in the VCARD standard. See documentation of the 'ContactGroup' class for + details""" ; + rdfs:domain nco:ContactGroup ; + rdfs:label "contactGroupName" ; + rdfs:range xsd:string ; + rdfs:subPropertyOf dc:title ; + nrl:maxCardinality 1 . + + nco:FaxNumber + a rdfs:Class ; + rdfs:comment "A fax number. Inspired by the (TYPE=fax) parameter of the TEL property as defined in RFC 2426 sec 3.3.1." ; + rdfs:label "FaxNumber" ; + rdfs:subClassOf nco:PhoneNumber . + + nco:contactMediumComment + a rdf:Property ; + rdfs:comment "A comment about the contact medium. (Deprecated in favor of nie:comment or nao:description - based on the context)" ; + rdfs:domain nco:ContactMedium ; + rdfs:label "contactMediumComment" ; + rdfs:range xsd:string ; + nao:deprecated true. + + nco:foafUrl + a rdf:Property ; + rdfs:comment "The URL of the FOAF file." ; + rdfs:domain nco:Role ; + rdfs:label "foafUrl" ; + rdfs:range rdfs:Resource ; + rdfs:subPropertyOf nco:url . + + nco:CarPhoneNumber + a rdfs:Class ; + rdfs:comment "A car phone number. Inspired by the (TYPE=car) parameter of the TEL property as defined in RFC 2426 sec 3.3.1." ; + rdfs:label "CarPhoneNumber" ; + rdfs:subClassOf nco:VoicePhoneNumber . + + nco:ContactListDataObject + a rdfs:Class ; + rdfs:comment "An entity occuring on a contact list (usually interpreted as an nco:Contact)" ; + rdfs:label "ContactListDataObject" ; + rdfs:subClassOf nie:DataObject . + + nco:emailAddress + a rdf:Property ; + rdfs:domain nco:EmailAddress ; + rdfs:label "emailAddress" ; + rdfs:range xsd:string ; + nrl:maxCardinality 1 . + + nco:InternationalDeliveryAddress + a rdfs:Class ; + rdfs:comment "International Delivery Addresse. Class inspired by TYPE=intl parameter of the ADR property defined in RFC 2426 sec. 3.2.1" ; + rdfs:label "InternationalDeliveryAddress" ; + rdfs:subClassOf nco:PostalAddress . + + nco:locality + a rdf:Property ; + rdfs:comment "Locality or City. Inspired by the fourth part of the value of the 'ADR' property as defined in RFC 2426, sec. 3.2.1" ; + rdfs:domain nco:PostalAddress ; + rdfs:label "locality" ; + rdfs:range xsd:string ; + nrl:maxCardinality 1 . + + nco:VideoIMAccount + a rdfs:Class ; + nao:deprecated true ; + rdfs:comment "Deprecated in favour of nco:imCapabilityVideo." ; + rdfs:label "VideoIMAccount" ; + rdfs:subClassOf nco:AudioIMAccount . + + nco:sound + a rdf:Property ; + rdfs:comment "Sound clip attached to a Contact. The DataObject referred to by this property is usually interpreted as an nfo:Audio. Inspired by the SOUND property defined in RFC 2425 sec. 3.6.6." ; + rdfs:domain nco:Contact ; + rdfs:label "sound" ; + rdfs:range nie:DataObject ; + rdfs:subPropertyOf nie:hasPart . + + nco:EmailAddress + a rdfs:Class ; + rdfs:comment "An email address. The recommended best practice is to use mailto: uris for instances of this class." ; + rdfs:label "EmailAddress" ; + rdfs:subClassOf nco:ContactMedium . + + nco:imNickname + a rdf:Property ; + rdfs:comment "A nickname attached to a particular IM Account." ; + rdfs:domain nco:IMAccount ; + rdfs:label "imNickname" ; + rdfs:range xsd:string . + + nco:hobby + a rdf:Property ; + rdfs:comment "A hobby associated with a PersonContact. This property can be used to express hobbies and interests." ; + rdfs:domain nco:PersonContact ; + rdfs:label "hobby" ; + rdfs:range xsd:string . + + nco:blogUrl + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "A Blog url." ; + rdfs:domain nco:Role ; + rdfs:label "blogUrl" ; + rdfs:range rdfs:Resource ; + rdfs:subPropertyOf nco:url . + + nco:CellPhoneNumber + a rdfs:Class ; + rdfs:comment "A cellular phone number. Inspired by the (TYPE=cell) parameter of the TEL property as defined in RFC 2426 sec 3.3.1. Usually a cellular phone can accept voice calls as well as textual messages (SMS), therefore this class has two superclasses." ; + rdfs:label "CellPhoneNumber" ; + rdfs:subClassOf nco:MessagingNumber , nco:VoicePhoneNumber . + + nco:role + a rdf:Property ; + rdfs:comment "Role an object represented by this contact represents in the organization. This might include 'Programmer', 'Manager', 'Sales Representative'. Be careful to avoid confusion with the title property. An equivalent of the 'ROLE' property as defined in RFC 2426. Sec. 3.5.2. Note the difference between nco:Role class and nco:role property." ; + rdfs:domain nco:Affiliation ; + rdfs:label "role" ; + rdfs:range xsd:string . + + nco:DomesticDeliveryAddress + a rdfs:Class ; + rdfs:comment "Domestic Delivery Addresse. Class inspired by TYPE=dom parameter of the ADR property defined in RFC 2426 sec. 3.2.1" ; + rdfs:label "DomesticDeliveryAddress" ; + rdfs:subClassOf nco:PostalAddress . + + nco:female + a nco:Gender ; + rdfs:comment "A Female" ; + rdfs:label "female" . + + nco:hasPostalAddress + a rdf:Property ; + rdfs:comment "The default Address for a Contact. An equivalent of the 'ADR' property as defined in RFC 2426 Sec. 3.2.1." ; + rdfs:domain nco:Role ; + rdfs:label "hasPostalAddress" ; + rdfs:range nco:PostalAddress ; + rdfs:subPropertyOf nco:hasContactMedium . + + nco:imAccountType + a rdf:Property ; + rdfs:comment "Type of the IM account. This may be the name of the service that provides the IM functionality. Examples might include Jabber, ICQ, MSN etc" ; + rdfs:domain nco:IMAccount ; + rdfs:label "imAccountType" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" . + + nco:pobox + a rdf:Property ; + rdfs:comment "Post office box. This is the first part of the value of the 'ADR' property as defined in RFC 2426, sec. 3.2.1" ; + rdfs:domain nco:PostalAddress ; + rdfs:label "pobox" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1". + + nco:hasAffiliation + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "Links a PersonContact with an Affiliation." ; + rdfs:domain nco:PersonContact ; + rdfs:label "hasAffiliation" ; + rdfs:range nco:Affiliation . + + nco:gender + a rdf:Property ; + rdfs:comment "Gender of the given contact." ; + rdfs:domain nco:PersonContact ; + rdfs:label "gender" ; + rdfs:range nco:Gender ; + nrl:maxCardinality 1 . + + nco:imStatusMessage + a rdf:Property, nrl:NonDefiningProperty ; + rdfs:comment "A feature common in most IM systems. A message left by the user for all his/her contacts to see." ; + rdfs:domain nco:IMAccount ; + rdfs:label "imStatusMessage" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" . + + nco:start + a rdf:Property ; + rdfs:comment "Start datetime for the role, such as: the datetime of joining a project or organization, datetime of starting employment, datetime of marriage" ; + rdfs:label "start" ; + rdfs:domain nco:Role ; + rdfs:range xsd:dateTime ; + nrl:maxCardinality 1 . + + nco:end + a rdf:Property; + rdfs:comment "End datetime for the role, such as: the datetime of leaving a project or organization, datetime of ending employment, datetime of divorce. If absent or set to a date in the future, the role is currently active." ; + rdfs:label "end" ; + rdfs:domain nco:Role ; + rdfs:range xsd:dateTime ; + nrl:maxCardinality 1 . + + nco:IMCapability a rdfs:Class ; + rdfs:label "imCapability" ; + rdfs:comment "Capabilities of a cetain IMAccount." ; + rdfs:subClassOf rdfs:Resource . + + nco:imCapabilityText a nco:IMCapability . + nco:imCapabilityAudio a nco:IMCapability . + nco:imCapabilityVideo a nco:IMCapability . + + nco:hasIMCapability + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "Indicates that an IMAccount has a certain capability." ; + rdfs:domain nco:IMAccount ; + rdfs:label "hasIMCapability" ; + rdfs:range nco:IMCapability . + + nco:isAccessedBy + a rdf:Property ; + rdfs:comment "Indicates the local IMAccount by which this IMAccount is accessed. This does not imply membership of a contact list." ; + rdfs:label "isKnownBy" ; + rdfs:domain nco:IMAccount ; + rdfs:range nco:IMAccount . + + nco:publishesPresenceTo + a rdf:Property ; + rdfs:comment "Indicates that this IMAccount publishes its presence information to the other IMAccount." ; + rdfs:label "publishesPresenceTo" ; + rdfs:domain nco:IMAccount ; + rdfs:range nco:IMAccount . + + nco:requestedPresenceSubscriptionTo + a rdf:Property ; + rdfs:comment "Indicates that this IMAccount has requested a subscription to the presence information of the other IMAccount." ; + rdfs:label "requestedPresenceSubscriptionTo" ; + rdfs:domain nco:IMAccount ; + rdfs:range nco:IMAccount . + + nco:isBlocked + a rdf:Property ; + rdfs:comment "Indicates that this IMAccount has been blocked." ; + rdfs:domain nco:IMAccount ; + rdfs:label "isBlocked" ; + rdfs:range xsd:boolean ; + nrl:maxCardinality "1" . +} + + {nco: a nrl:Ontology ; + nao:creator ; + nao:hasDefaultNamespace + "http://www.semanticdesktop.org/ontologies/2007/03/22/nco#" ; + nao:hasDefaultNamespaceAbbreviation + "nco" ; + nao:lastModified "2011-12-13T12:44:58Z" ; + nao:status "Unstable" ; + nao:updatable "0 " ; + nao:version "0.10.0" ; + nao:prefLabel "Nepomuk Contact Ontology" ; + nao:description "The Nepomuk Contact Ontology describes contact information, common in many places on the desktop. It evolved from the VCARD specification (RFC 2426) and has been inspired by the Vcard Ontology by Renato Ianella. The scope of NCO is much broader though." . + + + a nrl:GraphMetadata ; + nrl:coreGraphMetadataFor + nco: . +} diff --git a/tests/Trinity.Tests.Virtuoso/bin/Debug/Ontologies/owl.n3 b/tests/Trinity.Tests.Virtuoso/bin/Debug/Ontologies/owl.n3 new file mode 100644 index 0000000..87467e7 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Debug/Ontologies/owl.n3 @@ -0,0 +1,552 @@ +@prefix dc: . +@prefix grddl: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix xml: . +@prefix xsd: . + + a owl:Ontology ; + dc:title "The OWL 2 Schema vocabulary (OWL 2)" ; + rdfs:comment """ + This ontology partially describes the built-in classes and + properties that together form the basis of the RDF/XML syntax of OWL 2. + The content of this ontology is based on Tables 6.1 and 6.2 + in Section 6.4 of the OWL 2 RDF-Based Semantics specification, + available at http://www.w3.org/TR/owl2-rdf-based-semantics/. + Please note that those tables do not include the different annotations + (labels, comments and rdfs:isDefinedBy links) used in this file. + Also note that the descriptions provided in this ontology do not + provide a complete and correct formal description of either the syntax + or the semantics of the introduced terms (please see the OWL 2 + recommendations for the complete and normative specifications). + Furthermore, the information provided by this ontology may be + misleading if not used with care. This ontology SHOULD NOT be imported + into OWL ontologies. Importing this file into an OWL 2 DL ontology + will cause it to become an OWL 2 Full ontology and may have other, + unexpected, consequences. + """ ; + rdfs:isDefinedBy + , + , + ; + rdfs:seeAlso , + ; + owl:imports ; + owl:versionIRI ; + owl:versionInfo "$Date: 2009/11/15 10:54:12 $" ; + grddl:namespaceTransformation . + + +owl:AllDifferent a rdfs:Class ; + rdfs:label "AllDifferent" ; + rdfs:comment "The class of collections of pairwise different individuals." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Resource . + +owl:AllDisjointClasses a rdfs:Class ; + rdfs:label "AllDisjointClasses" ; + rdfs:comment "The class of collections of pairwise disjoint classes." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Resource . + +owl:AllDisjointProperties a rdfs:Class ; + rdfs:label "AllDisjointProperties" ; + rdfs:comment "The class of collections of pairwise disjoint properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Resource . + +owl:Annotation a rdfs:Class ; + rdfs:label "Annotation" ; + rdfs:comment "The class of annotated annotations for which the RDF serialization consists of an annotated subject, predicate and object." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Resource . + +owl:AnnotationProperty a rdfs:Class ; + rdfs:label "AnnotationProperty" ; + rdfs:comment "The class of annotation properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdf:Property . + +owl:AsymmetricProperty a rdfs:Class ; + rdfs:label "AsymmetricProperty" ; + rdfs:comment "The class of asymmetric properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:ObjectProperty . + +owl:Axiom a rdfs:Class ; + rdfs:label "Axiom" ; + rdfs:comment "The class of annotated axioms for which the RDF serialization consists of an annotated subject, predicate and object." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Resource . + +owl:Class a rdfs:Class ; + rdfs:label "Class" ; + rdfs:comment "The class of OWL classes." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Class . + +owl:DataRange a rdfs:Class ; + rdfs:label "DataRange" ; + rdfs:comment "The class of OWL data ranges, which are special kinds of datatypes. Note: The use of the IRI owl:DataRange has been deprecated as of OWL 2. The IRI rdfs:Datatype SHOULD be used instead." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Datatype . + +owl:DatatypeProperty a rdfs:Class ; + rdfs:label "DatatypeProperty" ; + rdfs:comment "The class of data properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdf:Property . + +owl:DeprecatedClass a rdfs:Class ; + rdfs:label "DeprecatedClass" ; + rdfs:comment "The class of deprecated classes." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Class . + +owl:DeprecatedProperty a rdfs:Class ; + rdfs:label "DeprecatedProperty" ; + rdfs:comment "The class of deprecated properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdf:Property . + +owl:FunctionalProperty a rdfs:Class ; + rdfs:label "FunctionalProperty" ; + rdfs:comment "The class of functional properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdf:Property . + +owl:InverseFunctionalProperty a rdfs:Class ; + rdfs:label "InverseFunctionalProperty" ; + rdfs:comment "The class of inverse-functional properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:ObjectProperty . + +owl:IrreflexiveProperty a rdfs:Class ; + rdfs:label "IrreflexiveProperty" ; + rdfs:comment "The class of irreflexive properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:ObjectProperty . + +owl:NamedIndividual a rdfs:Class ; + rdfs:label "NamedIndividual" ; + rdfs:comment "The class of named individuals." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:Thing . + +owl:NegativePropertyAssertion a rdfs:Class ; + rdfs:label "NegativePropertyAssertion" ; + rdfs:comment "The class of negative property assertions." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Resource . + +owl:Nothing a owl:Class ; + rdfs:label "Nothing" ; + rdfs:comment "This is the empty class." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:Thing . + +owl:ObjectProperty a rdfs:Class ; + rdfs:label "ObjectProperty" ; + rdfs:comment "The class of object properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdf:Property . + +owl:Ontology a rdfs:Class ; + rdfs:label "Ontology" ; + rdfs:comment "The class of ontologies." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Resource . + +owl:OntologyProperty a rdfs:Class ; + rdfs:label "OntologyProperty" ; + rdfs:comment "The class of ontology properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdf:Property . + +owl:ReflexiveProperty a rdfs:Class ; + rdfs:label "ReflexiveProperty" ; + rdfs:comment "The class of reflexive properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:ObjectProperty . + +owl:Restriction a rdfs:Class ; + rdfs:label "Restriction" ; + rdfs:comment "The class of property restrictions." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:Class . + +owl:SymmetricProperty a rdfs:Class ; + rdfs:label "SymmetricProperty" ; + rdfs:comment "The class of symmetric properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:ObjectProperty . + +owl:TransitiveProperty a rdfs:Class ; + rdfs:label "TransitiveProperty" ; + rdfs:comment "The class of transitive properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:ObjectProperty . + +owl:Thing a owl:Class ; + rdfs:label "Thing" ; + rdfs:comment "The class of OWL individuals." ; + rdfs:isDefinedBy . + +owl:allValuesFrom a rdf:Property ; + rdfs:label "allValuesFrom" ; + rdfs:comment "The property that determines the class that a universal property restriction refers to." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Class . + +owl:annotatedProperty a rdf:Property ; + rdfs:label "annotatedProperty" ; + rdfs:comment "The property that determines the predicate of an annotated axiom or annotated annotation." ; + rdfs:domain rdfs:Resource ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Resource . + +owl:annotatedSource a rdf:Property ; + rdfs:label "annotatedSource" ; + rdfs:comment "The property that determines the subject of an annotated axiom or annotated annotation." ; + rdfs:domain rdfs:Resource ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Resource . + +owl:annotatedTarget a rdf:Property ; + rdfs:label "annotatedTarget" ; + rdfs:comment "The property that determines the object of an annotated axiom or annotated annotation." ; + rdfs:domain rdfs:Resource ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Resource . + +owl:assertionProperty a rdf:Property ; + rdfs:label "assertionProperty" ; + rdfs:comment "The property that determines the predicate of a negative property assertion." ; + rdfs:domain owl:NegativePropertyAssertion ; + rdfs:isDefinedBy ; + rdfs:range rdf:Property . + +owl:backwardCompatibleWith a owl:AnnotationProperty, owl:OntologyProperty ; + rdfs:label "backwardCompatibleWith" ; + rdfs:comment "The annotation property that indicates that a given ontology is backward compatible with another ontology." ; + rdfs:domain owl:Ontology ; + rdfs:isDefinedBy ; + rdfs:range owl:Ontology . + +owl:bottomDataProperty a owl:DatatypeProperty ; + rdfs:label "bottomDataProperty" ; + rdfs:comment "The data property that does not relate any individual to any data value." ; + rdfs:domain owl:Thing ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Literal . + +owl:bottomObjectProperty a owl:ObjectProperty ; + rdfs:label "bottomObjectProperty" ; + rdfs:comment "The object property that does not relate any two individuals." ; + rdfs:domain owl:Thing ; + rdfs:isDefinedBy ; + rdfs:range owl:Thing . + +owl:cardinality a rdf:Property ; + rdfs:label "cardinality" ; + rdfs:comment "The property that determines the cardinality of an exact cardinality restriction." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range xsd:nonNegativeInteger . + +owl:complementOf a rdf:Property ; + rdfs:label "complementOf" ; + rdfs:comment "The property that determines that a given class is the complement of another class." ; + rdfs:domain owl:Class ; + rdfs:isDefinedBy ; + rdfs:range owl:Class . + +owl:datatypeComplementOf a rdf:Property ; + rdfs:label "datatypeComplementOf" ; + rdfs:comment "The property that determines that a given data range is the complement of another data range with respect to the data domain." ; + rdfs:domain rdfs:Datatype ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Datatype . + +owl:deprecated a owl:AnnotationProperty ; + rdfs:label "deprecated" ; + rdfs:comment "The annotation property that indicates that a given entity has been deprecated." ; + rdfs:domain rdfs:Resource ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Resource . + +owl:differentFrom a rdf:Property ; + rdfs:label "differentFrom" ; + rdfs:comment "The property that determines that two given individuals are different." ; + rdfs:domain owl:Thing ; + rdfs:isDefinedBy ; + rdfs:range owl:Thing . + +owl:disjointUnionOf a rdf:Property ; + rdfs:label "disjointUnionOf" ; + rdfs:comment "The property that determines that a given class is equivalent to the disjoint union of a collection of other classes." ; + rdfs:domain owl:Class ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:disjointWith a rdf:Property ; + rdfs:label "disjointWith" ; + rdfs:comment "The property that determines that two given classes are disjoint." ; + rdfs:domain owl:Class ; + rdfs:isDefinedBy ; + rdfs:range owl:Class . + +owl:distinctMembers a rdf:Property ; + rdfs:label "distinctMembers" ; + rdfs:comment "The property that determines the collection of pairwise different individuals in a owl:AllDifferent axiom." ; + rdfs:domain owl:AllDifferent ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:equivalentClass a rdf:Property ; + rdfs:label "equivalentClass" ; + rdfs:comment "The property that determines that two given classes are equivalent, and that is used to specify datatype definitions." ; + rdfs:domain rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Class . + +owl:equivalentProperty a rdf:Property ; + rdfs:label "equivalentProperty" ; + rdfs:comment "The property that determines that two given properties are equivalent." ; + rdfs:domain rdf:Property ; + rdfs:isDefinedBy ; + rdfs:range rdf:Property . + +owl:hasKey a rdf:Property ; + rdfs:label "hasKey" ; + rdfs:comment "The property that determines the collection of properties that jointly build a key." ; + rdfs:domain owl:Class ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:hasSelf a rdf:Property ; + rdfs:label "hasSelf" ; + rdfs:comment "The property that determines the property that a self restriction refers to." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Resource . + +owl:hasValue a rdf:Property ; + rdfs:label "hasValue" ; + rdfs:comment "The property that determines the individual that a has-value restriction refers to." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Resource . + +owl:imports a owl:OntologyProperty ; + rdfs:label "imports" ; + rdfs:comment "The property that is used for importing other ontologies into a given ontology." ; + rdfs:domain owl:Ontology ; + rdfs:isDefinedBy ; + rdfs:range owl:Ontology . + +owl:incompatibleWith a owl:AnnotationProperty, owl:OntologyProperty ; + rdfs:label "incompatibleWith" ; + rdfs:comment "The annotation property that indicates that a given ontology is incompatible with another ontology." ; + rdfs:domain owl:Ontology ; + rdfs:isDefinedBy ; + rdfs:range owl:Ontology . + +owl:intersectionOf a rdf:Property ; + rdfs:label "intersectionOf" ; + rdfs:comment "The property that determines the collection of classes or data ranges that build an intersection." ; + rdfs:domain rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:inverseOf a rdf:Property ; + rdfs:label "inverseOf" ; + rdfs:comment "The property that determines that two given properties are inverse." ; + rdfs:domain owl:ObjectProperty ; + rdfs:isDefinedBy ; + rdfs:range owl:ObjectProperty . + +owl:maxCardinality a rdf:Property ; + rdfs:label "maxCardinality" ; + rdfs:comment "The property that determines the cardinality of a maximum cardinality restriction." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range xsd:nonNegativeInteger . + +owl:maxQualifiedCardinality a rdf:Property ; + rdfs:label "maxQualifiedCardinality" ; + rdfs:comment "The property that determines the cardinality of a maximum qualified cardinality restriction." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range xsd:nonNegativeInteger . + +owl:members a rdf:Property ; + rdfs:label "members" ; + rdfs:comment "The property that determines the collection of members in either a owl:AllDifferent, owl:AllDisjointClasses or owl:AllDisjointProperties axiom." ; + rdfs:domain rdfs:Resource ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:minCardinality a rdf:Property ; + rdfs:label "minCardinality" ; + rdfs:comment "The property that determines the cardinality of a minimum cardinality restriction." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range xsd:nonNegativeInteger . + +owl:minQualifiedCardinality a rdf:Property ; + rdfs:label "minQualifiedCardinality" ; + rdfs:comment "The property that determines the cardinality of a minimum qualified cardinality restriction." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range xsd:nonNegativeInteger . + +owl:onClass a rdf:Property ; + rdfs:label "onClass" ; + rdfs:comment "The property that determines the class that a qualified object cardinality restriction refers to." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range owl:Class . + +owl:onDataRange a rdf:Property ; + rdfs:label "onDataRange" ; + rdfs:comment "The property that determines the data range that a qualified data cardinality restriction refers to." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Datatype . + +owl:onDatatype a rdf:Property ; + rdfs:label "onDatatype" ; + rdfs:comment "The property that determines the datatype that a datatype restriction refers to." ; + rdfs:domain rdfs:Datatype ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Datatype . + +owl:oneOf a rdf:Property ; + rdfs:label "oneOf" ; + rdfs:comment "The property that determines the collection of individuals or data values that build an enumeration." ; + rdfs:domain rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:onProperties a rdf:Property ; + rdfs:label "onProperties" ; + rdfs:comment "The property that determines the n-tuple of properties that a property restriction on an n-ary data range refers to." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:onProperty a rdf:Property ; + rdfs:label "onProperty" ; + rdfs:comment "The property that determines the property that a property restriction refers to." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range rdf:Property . + +owl:priorVersion a owl:AnnotationProperty, owl:OntologyProperty ; + rdfs:label "priorVersion" ; + rdfs:comment "The annotation property that indicates the predecessor ontology of a given ontology." ; + rdfs:domain owl:Ontology ; + rdfs:isDefinedBy ; + rdfs:range owl:Ontology . + +owl:propertyChainAxiom a rdf:Property ; + rdfs:label "propertyChainAxiom" ; + rdfs:comment "The property that determines the n-tuple of properties that build a sub property chain of a given property." ; + rdfs:domain owl:ObjectProperty ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:propertyDisjointWith a rdf:Property ; + rdfs:label "propertyDisjointWith" ; + rdfs:comment "The property that determines that two given properties are disjoint." ; + rdfs:domain rdf:Property ; + rdfs:isDefinedBy ; + rdfs:range rdf:Property . + +owl:qualifiedCardinality a rdf:Property ; + rdfs:label "qualifiedCardinality" ; + rdfs:comment "The property that determines the cardinality of an exact qualified cardinality restriction." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range xsd:nonNegativeInteger . + +owl:sameAs a rdf:Property ; + rdfs:label "sameAs" ; + rdfs:comment "The property that determines that two given individuals are equal." ; + rdfs:domain owl:Thing ; + rdfs:isDefinedBy ; + rdfs:range owl:Thing . + +owl:someValuesFrom a rdf:Property ; + rdfs:label "someValuesFrom" ; + rdfs:comment "The property that determines the class that an existential property restriction refers to." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Class . + +owl:sourceIndividual a rdf:Property ; + rdfs:label "sourceIndividual" ; + rdfs:comment "The property that determines the subject of a negative property assertion." ; + rdfs:domain owl:NegativePropertyAssertion ; + rdfs:isDefinedBy ; + rdfs:range owl:Thing . + +owl:targetIndividual a rdf:Property ; + rdfs:label "targetIndividual" ; + rdfs:comment "The property that determines the object of a negative object property assertion." ; + rdfs:domain owl:NegativePropertyAssertion ; + rdfs:isDefinedBy ; + rdfs:range owl:Thing . + +owl:targetValue a rdf:Property ; + rdfs:label "targetValue" ; + rdfs:comment "The property that determines the value of a negative data property assertion." ; + rdfs:domain owl:NegativePropertyAssertion ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Literal . + +owl:topDataProperty a owl:DatatypeProperty ; + rdfs:label "topDataProperty" ; + rdfs:comment "The data property that relates every individual to every data value." ; + rdfs:domain owl:Thing ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Literal . + +owl:topObjectProperty a owl:ObjectProperty ; + rdfs:label "topObjectProperty" ; + rdfs:comment "The object property that relates every two individuals." ; + rdfs:domain owl:Thing ; + rdfs:isDefinedBy ; + rdfs:range owl:Thing . + +owl:unionOf a rdf:Property ; + rdfs:label "unionOf" ; + rdfs:comment "The property that determines the collection of classes or data ranges that build a union." ; + rdfs:domain rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:versionInfo a owl:AnnotationProperty ; + rdfs:label "versionInfo" ; + rdfs:comment "The annotation property that provides version information for an ontology or another OWL construct." ; + rdfs:domain rdfs:Resource ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Resource . + +owl:versionIRI a owl:OntologyProperty ; + rdfs:label "versionIRI" ; + rdfs:comment "The property that identifies the version IRI of an ontology." ; + rdfs:domain owl:Ontology ; + rdfs:isDefinedBy ; + rdfs:range owl:Ontology . + +owl:withRestrictions a rdf:Property ; + rdfs:label "withRestrictions" ; + rdfs:comment "The property that determines the collection of facet-value pairs that define a datatype restriction." ; + rdfs:domain rdfs:Datatype ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + \ No newline at end of file diff --git a/tests/Trinity.Tests.Virtuoso/bin/Debug/Ontologies/rdf.rdf b/tests/Trinity.Tests.Virtuoso/bin/Debug/Ontologies/rdf.rdf new file mode 100644 index 0000000..a6815ec --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Debug/Ontologies/rdf.rdf @@ -0,0 +1,156 @@ + + + + The RDF Concepts Vocabulary (RDF) + This is the RDF Schema for the RDF vocabulary terms in the RDF Namespace, defined in RDF 1.1 Concepts. + + + + + + + HTML + The datatype of RDF literals storing fragments of HTML content + + + + + + + langString + The datatype of language-tagged string values + + + + + + + PlainLiteral + The class of plain (i.e. untyped) literal values, as used in RIF and OWL 2 + + + + + + type + The subject is an instance of a class. + + + + + + + Property + The class of RDF properties. + + + + + + Statement + + The class of RDF statements. + + + + + subject + The subject of the subject RDF statement. + + + + + + + predicate + The predicate of the subject RDF statement. + + + + + + + object + The object of the subject RDF statement. + + + + + + + Bag + The class of unordered containers. + + + + + + Seq + The class of ordered containers. + + + + + + Alt + The class of containers of alternatives. + + + + + + value + Idiomatic property used for structured values. + + + + + + + + + List + The class of RDF Lists. + + + + + + nil + The empty list, with no items in it. If the rest of a list is nil then the list has no more items in it. + + + + + first + The first item in the subject RDF list. + + + + + + + rest + The rest of the subject RDF list after the first item. + + + + + + + + XMLLiteral + The datatype of XML literal values. + + + + + + + + diff --git a/tests/Trinity.Tests.Virtuoso/bin/Debug/Ontologies/rdfs.n3 b/tests/Trinity.Tests.Virtuoso/bin/Debug/Ontologies/rdfs.n3 new file mode 100644 index 0000000..a5b8eac --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Debug/Ontologies/rdfs.n3 @@ -0,0 +1,109 @@ +@prefix rdf: . +@prefix rdfs: . +@prefix owl: . +@prefix dc: . + + a owl:Ontology ; + dc:title "The RDF Schema vocabulary (RDFS)" . + +rdfs:Resource a rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:label "Resource" ; + rdfs:comment "The class resource, everything." . + +rdfs:Class a rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:label "Class" ; + rdfs:comment "The class of classes." ; + rdfs:subClassOf rdfs:Resource . + +rdfs:subClassOf a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:label "subClassOf" ; + rdfs:comment "The subject is a subclass of a class." ; + rdfs:range rdfs:Class ; + rdfs:domain rdfs:Class . + +rdfs:subPropertyOf a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:label "subPropertyOf" ; + rdfs:comment "The subject is a subproperty of a property." ; + rdfs:range rdf:Property ; + rdfs:domain rdf:Property . + +rdfs:comment a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:label "comment" ; + rdfs:comment "A description of the subject resource." ; + rdfs:domain rdfs:Resource ; + rdfs:range rdfs:Literal . + +rdfs:label a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:label "label" ; + rdfs:comment "A human-readable name for the subject." ; + rdfs:domain rdfs:Resource ; + rdfs:range rdfs:Literal . + +rdfs:domain a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:label "domain" ; + rdfs:comment "A domain of the subject property." ; + rdfs:range rdfs:Class ; + rdfs:domain rdf:Property . + +rdfs:range a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:label "range" ; + rdfs:comment "A range of the subject property." ; + rdfs:range rdfs:Class ; + rdfs:domain rdf:Property . + +rdfs:seeAlso a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:label "seeAlso" ; + rdfs:comment "Further information about the subject resource." ; + rdfs:range rdfs:Resource ; + rdfs:domain rdfs:Resource . + +rdfs:isDefinedBy a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:subPropertyOf rdfs:seeAlso ; + rdfs:label "isDefinedBy" ; + rdfs:comment "The defininition of the subject resource." ; + rdfs:range rdfs:Resource ; + rdfs:domain rdfs:Resource . + +rdfs:Literal a rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:label "Literal" ; + rdfs:comment "The class of literal values, eg. textual strings and integers." ; + rdfs:subClassOf rdfs:Resource . + +rdfs:Container a rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:label "Container" ; + rdfs:subClassOf rdfs:Resource ; + rdfs:comment "The class of RDF containers." . + +rdfs:ContainerMembershipProperty a rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:label "ContainerMembershipProperty" ; + rdfs:comment """The class of container membership properties, rdf:_1, rdf:_2, ..., + all of which are sub-properties of 'member'.""" ; + rdfs:subClassOf rdf:Property . + +rdfs:member a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:label "member" ; + rdfs:comment "A member of the subject resource." ; + rdfs:domain rdfs:Resource ; + rdfs:range rdfs:Resource . + +rdfs:Datatype a rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:label "Datatype" ; + rdfs:comment "The class of RDF datatypes." ; + rdfs:subClassOf rdfs:Class . + + rdfs:seeAlso . diff --git a/tests/Trinity.Tests.Virtuoso/bin/Debug/Ontologies/space test ontology.ttl b/tests/Trinity.Tests.Virtuoso/bin/Debug/Ontologies/space test ontology.ttl new file mode 100644 index 0000000..e9f6944 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Debug/Ontologies/space test ontology.ttl @@ -0,0 +1,13 @@ +@prefix rdf: . +@prefix owl: . +@prefix rdfs: . +@prefix myo: . + +myo: +rdfs:label "my ontology". + +myo:Class a rdfs:Class ; +rdfs:label "MyClass" . + +myo:Property a rdf:Property ; +rdfs:label "MyProperty" . \ No newline at end of file diff --git a/tests/Trinity.Tests.Virtuoso/bin/Debug/Semiodesk.Trinity.Tests.exe.config b/tests/Trinity.Tests.Virtuoso/bin/Debug/Semiodesk.Trinity.Tests.exe.config new file mode 100644 index 0000000..92d10a9 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Debug/Semiodesk.Trinity.Tests.exe.config @@ -0,0 +1,62 @@ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/Trinity.Tests.Virtuoso/bin/Debug/Semiodesk.Trinity.xml b/tests/Trinity.Tests.Virtuoso/bin/Debug/Semiodesk.Trinity.xml new file mode 100644 index 0000000..d4242d2 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Debug/Semiodesk.Trinity.xml @@ -0,0 +1,5915 @@ + + + + Semiodesk.Trinity + + + + + Marks the property as NotifyingProperty. + + + + + Decorate a class with this attribute to mark it as mapping for an RDF class of the given type. + + + + + The Uri of the type. + + + + + Constructor + + The uri of the RDF class for this mapping. + + + + Decorate a property with this attribute to mark it as mapped RDF property with the given type. + + + + + Uri of the the RDF property + + + + + Flag determining if property is language invariant. Only valid for string or string collections. + + + + + Constructor + + There uri of the rdf property for this mapping. + The mapping ignores the language setting and is always non-localized. Only valid if type or generic type is string or string collection. + + + + The class of resources that are RDF classes. + + + + + Constructor + + + + + Constrctor + + + + + Constrctor + + + + + Derived VirtualizatingCollection, performing loading asychronously. + + The type of items in the collection + + + + Gets the synchronization context used for UI-related operations. This is obtained as + the current SynchronizationContext when the AsyncVirtualizingCollection is created. + + The synchronization context. + + + + Gets or sets a value indicating whether the collection is loading. + + + true if this collection is loading; otherwise, false. + + + + + Initializes a new instance of the class. + + The items provider. + + + + Initializes a new instance of the class. + + The items provider. + Size of the page. + + + + Initializes a new instance of the class. + + The items provider. + Size of the page. + The page timeout. + + + + Asynchronously loads the count of items. + + + + + Performed on background thread. + + None required. + + + + Performed on UI-thread after LoadCountWork. + + Number of items returned. + + + + Asynchronously loads the page. + + The index. + + + + Performed on background thread. + + Index of the page to load. + + + + Performed on UI-thread after LoadPageWork. + + object[] { int pageIndex, IList(T) page } + + + + The event that gets notified if the collection gets changed. + + + + + The event that gets notified if a property has changed. + + + + + An generic asynchrous virtualizing collection for sparql queries. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + A generic items provider collection. + + + + + + Number of element in the provider. + + + + + + Enumerator of the items. + + + + + + + + A generic virtualizing collection. + + + + + + The page size contains the number of elements per page. + + + + + The time after which a page can be removed. + + + + + The page size contains the number of elements per page. + + + + + Timeout in ms. If the page has not been touched it can be removed with CleanUpPages. + + + + + Number of elements in the list. + + + + + Gets an object that can be used to synchronize access to the . + + + + An object that can be used to synchronize access to the . + + + + + Gets a value indicating whether access to the is synchronized (thread safe). + + + Always false. + + + + + Gets a value indicating whether the is read-only. + + + Always true. + + + + + Gets a value indicating whether the has a fixed size. + + + Always false. + + + + + Access an element at a certain index. + + + + + + + Initializes a new instance of the class. + + Items provider + Size of the page. + The page timeout. + + + + Initializes a new instance of the class. + + The items provider. + Size of the page. + + + + Initializes a new instance of the class. + + + + + Returns the enumerator of the collection + + + + + + The list is read-only, not supported. + + + + + + The list is read-only, not supported. + + + + + + The list is read-only, not supported. + + + + + Returns the index of a certain element. + + + + + + + The list is read-only, not supported. + + + + + + + The list is read-only, not supported. + + + + + + + The list is read-only, not supported. + + + + + + The list is read-only, not supported. + + + + + + The list is read-only, not supported. + + + + + + + The list is read-only, not supported. + + + + + + + The list is read-only, not supported. + + + + + + + Removes pages that have not been touched recently. The timeout can be configured with the PageTimeout. + + + + + Load page with the given index. + + + + + + Sets the given page to the given index. + + + + + + + Load the page with the given index. + + + + + + Loads the count of the collection. + + + + + Gets the page from the item provider. + + + + + + + Gets the element count from the item provider. + + + + + + The item provider for sparql queries. + + + + + + Constructor for the SparqlQueryItemsProvider. + + The model on which the query should be executed. + The query that should be executed. + Modifier if inferncing should be enabled. Default is true + + + + Number of elements in the result. + + + + + + Enumerator of the items. Should be narrowed with offset and limit. + + Offset of the element where to start. + Number of elements. + + + + + A virtualizing collection for sparql query results + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The model to query. + The query. + Size of the page. + Using inferencing + + + + Initializes a new instance of the class. + + + + + The FileSource represents the path of the ontology on the disk. + + + + + This is the string containing the path. + + + + + The ontology configuration section. + + + + + The uri of the ontology as string. + + + + + Wrapper for the uri of the ontology as Uri. + + + + + The prefix of the ontology. + + + + + The timestamp when the ontology was first introduced in the project. + + + + + Version of the ontology. + + + + + The location of the ontology file in the web. + + + + + The location of the ontology file on the disk. + + + + + Serialization of th ontology. + + + + + + Hashcode of the ontology. + + + + + + Wrapper for the local path of the ontology. + + + + + Location of the ontology in the web. + + + + + The url of the ontology in the web. + + + + + The section containing all ontologies. + + + + + The list of all ontologies + + + + + The namespace the ontologies should be generated to. + + + + + The general store configuration section. + + + + + The store type this configuration belongs to. + + + + + The content of the store configuration. Will be handled by the store implementation. + + + + + The store section of the configuration. + + + + + The list of the store configurations. + + + + + The general configuration section. + + + + + The ontology section. + + + + + The store section. + + + + + Wrapper for the namespace for this project. + + + + + Wrapper for an easier ontology access. + + + + + + Wrapper for the store configurations. + + + + + + Loads Trinity RDF settings from a XML configuration file. + + + + + Exposes settings for Trinity RDF projects. + + + + + Get the default namespace for generated C# classes. + + + + + Get the ontology settings for the current project. + + An enumeration of ontology settings. + + + + Get the triple store settings for the current project. + + An enumeration of triple store settings. + + + + Exposes ontology settings for a Trinity RDF project. + + + + + Get the namespace URI of the ontology. + + + + + Get the default prefix of the ontology. + + + + + Get the location of the ontology source file. + + + + + Exposes triple store settings for Trinity RDF projects. + + + + + Get the triple store type identifier. + + + + + Get store specific XML configuration data. + + + + + A file source of a element + + + + + The location of this file source + + + + + A graph element in the configuration. + + + + + The Uri of the graph element + + + + + A collection containing all graphs in the configuration + + + + + Create a new graph element + + + + + + Gets the key of the given graph element. Uri is used. + + + + + + + The type of the collection + + + + + The name of the element + + + + + The index operator + + + + + + + Get the element by the key + + + + + + + Test if key exists + + + + + + + Get enumerator of collection + + + + + + A ontology element + + + + + Prefix of this ontology. + + + + + URI of this ontology. + + + + + String representation of the URI. + + + + + The key of the element. + + + + + The location of the ontology file. + + + + + The uri of the metadata graph, only needed for TriG serialisations. + + + + + The string representation of the metadata graph URI. + + + + + String representation of this element. + + + + + + Overwritten hashcode. + + + + + + Get the location of the ontology file source. + + + + + A collection of ontology settings. + + + + + Create a new ontology configuration element. + + A new configuration element. + + + + Get the key associated with a configuration element. + + + URI of the configuration element. + + + + Get the configuration element collection type. + + + + + XML element tag name. + + + + + Gets the configuration element at the specified index location. + + The index location of the System.Configuration.ConfigurationElement to return. + The System.Configuration.ConfigurationElement at the specified index. + + + + Gets the configuration element with the specified identifier. + + The identifier of the System.Configuration.ConfigurationElement to return. + The System.Configuration.ConfigurationElement at the specified index. + + + + Indicates if an element with the given key exists in this collection. + + The identifier to be checked. + true if an element with the given key exists, false otherwise. + + + + Get an enumerator for iterating over the items in this collection. + + An enumerator. + + + + A ruleset element + + + + + Gets or sets the URI of the rule set. + + + + + Gat a collection of graphs associated with this rule set. + + + + + Collection of rule sets. + + + + + Create a new rule set element. + + + + + + Gets the key (the uri) of a RuleSet element. + + + + + + + The collection type. + + + + + Contains the name of the element. + + + + + The index operator. + + + + + + + Index operator with key name. + + The key of the ruleset. + + + + + Can be used to test if the key exists. + + + + + + + Enumerator for the collection. + + + + + + Constains Virtuoso specific settings. + + + + + A collection of inference rule sets. + + + + + Get the triple store type identifier. + + + + + Get store specific XML configuration data. + + + + + Constains the settings for the Semiodesk.Trinity framework. + + + + + Namespace of the generated ontology file. + + + + + Collection of ontology settings. + + + + + Virtuoso specific triple store settings. + + + + + Get the ontology settings for the current project. + + An enumeration of ontology settings. + + + + Get the triple store settings for the current project. + + An enumeration of triple store settings. + + + + This exception will be thrown if the store rejects the query as invalid. + + + + + Contains the offending query + + + + + Create a new exception without information. + + + + + Create a new exception with an error string. + + Details about the issue. + + + + Create a new exception with an error string and an inner exception. + + Details about the issue. + The exception that propmted the query failure. + The offending query + + + + This exception will be thrown when trying to access query result methods + for unsupported SPARQL query forms (i.e. trying to get bindings from an ASK query). + + + + + Contains the offending query. + + + + + Create a new exception with an error string. + + SPARQL query type. + + + + Represents error when one or more resources you tried to access was locked. + + + + + Create a new instance of the ResourceLockedException class. + + Inner exception. + + + + Represents error when a resource could not be retrieved. + + + The exception is derived from ArgumentException to ensure backwards compatibility. + + + + + Create a new instance of the ResourceNotFoundException class. + + URI of the resource. + + + + Represents errors when a suitable triple store adapter could not be found. + + + + + Create a new instance of the StoreProviderMissingException class. + + Error message. + + + + Create a new instance of the StoreProviderMissingException class. + + Error message. + Inner exception. + + + + Extension to FileSystemInfo concerting UriRef handling + + + + + Create a UriRef from a FileSystemInfo + + + + + + + Collection of string extension related to Uris + + + + + Create a UriRef from this string. + + + + + + + Create a UriRef from this string with a given kind + + + + + + Extension of Uri class concering UriRef handling. + + + + + Create a UriRef from this Uri. + + + + + + + The datatype of the the mapped property + + + + + If the datatype is a collection, this contains the generic type. + + + + + True if the property is mapped to a collection. + + + + + The property that should be mapped. + + + + + The name of the mapped property. + + + + + True if the value has not been set. + + + + + Language of the value + + + + + The mapping ignores the language setting and is always non-localized. Only valid if type or generic type is string or string collection. + + + + + Method to test if a type is compatible. In case of collection, the containing type is tested for compatibility. + + The type to test. + True if the type is compatible + + + + Gets the value or values mapped to this property. + + + + + + This method is meant to be called from the non-mapped interface. It replaces the current value if + it is mapped to one value, adds it if the property is mapped to a list. + + + + + + Deletes the containing value and sets the state to unset. In case of a collection, it tries to remove the value from it. + + + + + + Clones the mapping of another resource. + + + + + + Clears the mapping and resets it. + + + + + This interface encapsulates the access to the methods of a RDF resource. + + + + + Uniform Resource Identifier (URI). + + + + + Model from which the resource was instantiated. + + + + + Indicates that this resource is not writable, thus Commit() is illegal. + + + + + Set the language of this resource. This will change te mapped strings to this language. + + + + + Indicates if the resources has been disposed. + + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A instance of IResource. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A string literal. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A string literal. + The culture of the string literal. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A string literal. + The language of the string literal. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A 16-bit integer value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A 32-bit integer value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A 64-bit integer value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A 16-bit unsigned integer value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A 32-bit unsigned integer value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A 64-bit unsigned integer value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A single precision float value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A double precision float value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A decimal value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A boolean value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A datetime value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + Arbitrary data in form of a byte array. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + An Uri. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + An IResource instance. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A instance of IResource. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A string literal. + The culture of the string + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A string literal. + The language of the string. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A 16-bit integer value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A 32-bit integer value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A 64-bit integer value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A 16-bit unsigned integer value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A 32-bit unsigned integer value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A 64-bit unsigned integer value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A single precision float value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A double precision float value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A decimal value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A blooean value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A date value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + Arbitrary data in form of a byte array. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + An Uri. + + + + Indicates if the resource has at least one property of the given type. + + + True on success, False otherwise. + + + + Indicates if the resource has a property with the given value. + + + + True on success, False otherwise. + + + + Indicates if the resource has a property with the given translated string value. + + + + + True on success, False otherwise. + + + + Indicates if the resource has a property with the given translated string value. + + + + + True on success, False otherwise. + + + + Enumerates all properties associated with this resource. + + + + + + Enumerates all properties associated with this resource in form + of a tuple mapping properties to their corresponding values. + + Only return values which should be serialized. + + + + + Enumerates all property values associated with this resource. + + + + + + + Gets the value of a uniquely asserted property. + + A RDF property. + + + + + Gets the value of a uniquely asserted property. + + A RDF property. + Specifies a default value that should be returned if no value exists. + + + + + This static class is responsible for discovering mapped classes. + Every assembly that defines mapping classes needs to register them with this service. + + + + + A class containing information about a RDF class mapped to c#. + + + + + The .NET type of the class. + + + + + RDF classes that are mapped to this class. + + + + + Inferenced RDF classes mapped to this class. Currently not used. + + + + + The number of classes that are not sub class of any other class. + + + + + Constructor to create a new MappingClass + + The c# type + The mapped rdf classes. + The rdf base classes. + + + + The list of all registered assemblies. + + + + + The list of all registered mapped classes. + + + + + Adds a collection of mapped classes to the registration. + + + + + + Adds a mapped class to the registration. + + + + + + Add the super classes of a given .NET type to a given list. + + A .NET type. + List where the base types will be added to. + + + + Loads all mapped classes from the assembly calling this method. + + + + + Register ALL THE THINGS!! + from all assemblies currently loaded. + + + + + Load all mapped classes from the given assembly. + + + + + + Returns all types which match the given restrictions. + + List of RDF classes + A c# type in a inheritence tree. Give Resource if you don't know what to do. + Should inferencing be factored in. + + + + The the RDF class of a C# type. + + + + + + + An interface for classes which provide functionality to manage a set of resources. + + + + + Uri of this model. + + + + + True if the model is empty. + + + + + All unampped properties will be ignored for update and thus deleted. + This reduces the amount of data thats get sent to the database but also might remove important data. + Setting this to true essentialy disables the triple API. + + + + + Adds an existing resource to the model and its backing RDF store. The resulting resource supports the use of the Commit() method. + + The resource to be added to the model. + Transaction associated with the action. + The resource which is now connected to the current model. + + + + Adds an existing resource to the model and its backing RDF store. The resulting resource supports the use of the Commit() method. + + The resource to be added to the model. + Transaction associated with this action. + The resource which is now connected to the current model. + + + + Creates a new resource in the model and its backing RDF store. + + The format string from which a globally unique identifier URI should be generated from. + Transaction associated with this action. + An instance of the given object type wrapping the newly created resource. + The newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Creates a new resource in the model and its backing RDF store. + + A Uniform Resource Identifier. + Transaction associated with this action. + The newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Creates a new resource in the model and its backing RDF store. Provides a resource object of the given type. + + Type of the resource object. Must be derived from Resource. + The format string from which a globally unique identifier URI should be generated from. + Transaction associated with this action. + An instance of the given object type wrapping the newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Creates a new resource in the model and its backing RDF store. Provides a resource object of the given type. + + Type of the resource object. Must be derived from Resource. + A Uniform Resource Identifier. + Transaction associated with this action. + An instance of the given object type wrapping the newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Creates a new resource in the model and its backing RDF store. Provides a resource object of the given type. + + The concrete type of the resource. This must be a subclass of resource. + The format of the resulting uri. + Transaction associated with this action. + An instance of the given object type wrapping the newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Creates a new resource in the model and its backing RDF store. Provides a resource object of the given type. + This method can be used to create a resource of a type which was asserted at runtime. + + A Uniform Resource Identifier. + Type of the resource object. Must be derived from Resource. + Transaction associated with this action. + An instance of the given object type wrapping the newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Removes the given resource from the model and its backing RDF store. Note that there is no verification + that the given resource and its stored represenation have identical properties. + + A Uniform Resource Identifier. + The transaction associated with this action. + + + + Removes the given resource from the model and its backing RDF store. Note that there is no verification + that the given resource and its stored represenation have identical properties. + + Resource that is to be removed from the model. + Transaction associated with this action. + + + + Indicates wheter a given resource is part of the model. + + A Uniform Resource Identifier. + Transaction associated with this action. + True if the resource is part of the model, False if not. + + + + Indicates wheter a given resource is part of the model. + + Resource that should be looked up in the model. + Transaction associated with this action. + True if the resource is part of the model, False if not. + + + + Execute a SPARQL query against the model. + + A SparqlQuery object. + Modifier to enable inferencing. Default is false. + Transaction associated with this action. + A SPARQL query result object. + + + + Execute a SparqlUpdate against the model. + + A sparql update object. + Transaction associated with this action. + + + + Retrieves a resource from the model. + + A Uniform Resource Identifier. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. Provides a resource object of the given type. + + A Uniform Resource Identifier. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. + + The instance of IResource to be retrieved. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. Provides a resource object of the given type. + + A Uniform Resource Identifier. + The type the resource should have. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. + + The instance of IResource to be retrieved. + Transaction associated with this action. + A resource with all asserted properties. + + + + Executes a SPARQL query and provides an enumeration of matching resources. + + A SparqlQuery object. + Modifier to enable inferencing. Default is false. + Transaction associated with the action. + An enumeration of resources that match the given query. + + + + Executes a SPARQL query and provides an enumeration of matching resources. + + A SparqlQuery object. + Modifier to enable inferencing. Default is false. + Transaction associated with the action. + An enumeration of resources that match the given query. + + + + Returns a enumeration of all resources that match the given type. + + Modifier to enable inferencing. Default is false. + Transaction associated with the action. + An enumeration of resources that match the given query. + + + + Returns a queryable object that can be used to build LINQ statements. + + + + + + + Executes a SPARQL query and provides an enumeration of matching resources. + + A SparqlQuery object. + Modifier to enable inferencing. Default is false. + Transaction associated with the action. + An enumeration of resources that match the given query. + + + + Imports the contents of a model located by the given URL. The method supports + importing files and other models stored in the local RDF store. + + A uniform resource locator. + The serialization format. + True to update the model, false to replace the data. + True if the contents of the model were imported, False if not. + + + + Imports the contents of a graph serialized in the stream to this model. + + The stream containing the serialization + Format of the serialization + True to update the model, false to replace the data. + True if the contents of the model were imported, False if not. + + + + Serializes the contents of the model and provides a memory stream. + + The file stream to write to. + The serialization format. + A serialization of the models contents. + + + + Updates a resource with it's current state in the model. + + + + + + + Removes all elements from the model. + + + + + Starts a transaction which can be used to group more queries together to be executed as one. + + Isolation level used to lock the database. + A handle to the transaction. + + + + Compares two models by their uris + + + + + Equals + + + + + + + + HashCode + + + + + + + The model group can be used to query over multiple models at once. + + + + + The default model of this group + + + + + A set of resources which represent a logical model for a given application domain. + + + + + The Uniform Resource Identifier which provides a name for the model. + + + + + Indicates if the model contains statements. + + + + + All unampped properties will be ignored for update and thus deleted. + This reduces the amount of data thats get sent to the database but also might remove important data. + Setting this to true essentialy disables the triple API. + + + + + This constructor is intended to be used only be the ModelManager. + + The underlying triple store implementation to be used. + Uniform Resource Identifier of the model. + + + + Removes all elements from the model. + + + + + Adds an existing resource to the model and its backing RDF store. The resulting resource supports the use of the Commit() method. + + The resource to be added to the model. + Transaction associated with the action. + The resource which is now connected to the current model. + + + + Adds an existing resource to the model and its backing RDF store. The resulting resource supports the use of the Commit() method. + + The resource to be added to the model. + Transaction associated with the action. + The resource which is now connected to the current model. + + + + Creates a new resource in the model and its backing RDF store. Provides a resource object of the given type. + + The format of the resulting uri. + Transaction associated with this action. + An instance of the given object type wrapping the newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Creates a new resource in the model and its backing RDF store. + + A Uniform Resource Identifier. + Transaction associated with this action. + The newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Creates a new resource in the model and its backing RDF store. Provides a resource object of the given type. + + Type of the resource object. Must be derived from Resource. + The format of the resulting uri. + Transaction associated with this action. + An instance of the given object type wrapping the newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Creates a new resource in the model and its backing RDF store. Provides a resource object of the given type. + + Type of the resource object. Must be derived from Resource. + A Uniform Resource Identifier. + Transaction associated with this action. + An instance of the given object type wrapping the newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Creates a new resource in the model and its backing RDF store. Provides a resource object of the given type. + + Type of the resource object. Must be derived from Resource. + The format of the resulting uri. + Transaction associated with this action. + An instance of the given object type wrapping the newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Creates a new resource in the model and its backing RDF store. Provides a resource object of the given type. + This method can be used to create a resource of a type which was asserted at runtime. + + A Uniform Resource Identifier. + Type of the resource object. Must be derived from Resource. + Transaction associated with this action. + An instance of the given object type wrapping the newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Removes the given resource from the model and its backing RDF store. Note that there is no verification + that the given resource and its stored representation have identical properties. + + A Uniform Resource Identifier. + Transaction associated with this action. + + + + Removes the given resource from the model and its backing RDF store. Note that there is no verification + that the given resource and its stored representation have identical properties. + + A resource object. + Transaction associated with this action. + + + + Updates the properties of a resource in the backing RDF store. + + Resource that is to be updated in the backing store. + Transaction associated with this action. + + + + Indicates wheter a given resource is part of the model. + + A Uniform Resource Identifier. + Transaction associated with this action. + True if the resource is part of the model, False if not. + + + + Indicates wheter a given resource is part of the model. + + A resource object. + Transaction associated with this action. + True if the resource is part of the model, False if not. + + + + Execute a SPARQL Query. + + A SparqlQuery object. + Indicate that this query should work with enabled inferencing. + Transaction associated with this action. + A SparqlQueryResults object in any case. + + + + Execute a SPARQL Update. + + A SparqlUpdate object. + Transaction associated with this action. + + + + Retrieves a resource from the model. + + A Uniform Resource Identifier. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. + + The instance of IResource to be retrieved. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. Provides a resource object of the given type. + + A Uniform Resource Identifier. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. Provides a resource object of the given type. + + The resource that should be retrieved. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. Provides a resource object of the given type. + This method can be used for runtime asserted types. + + A Uniform Resource Identifier. + Type of the resource object. Must be derived from Resource. + Transaction associated with this action. + An instance of the given resource object type, Null otherwise. + + + + Executes a SPARQL query and provides an enumeration of matching resources. + + The SparqlQuery object that should be executed. + Indicate that this query should work with enabled inferencing. + transaction associated with this action. + An enumeration of resources that match the given query. + + + + Executes a SPARQL query and provides an enumeration of matching resources. + Provides a resource object of the given type. + + The SparqlQuery object that should be executed. + Indicate that this query should work with enabled inferencing. + transaction associated with this action. + An enumeration of resources that match the given query. + + + + Returns a enumeration of all resources that match the given type. + + Indicate that this query should work with enabled inferencing. + transaction associated with this action. + An enumeration of resources that match the given query. + + + + TODO + + + + + + + Executes a SPARQL-select query and provides a list of binding sets. This method + implements transparent type marshalling and delivers the bound variables in C# + native data types. + + A SPARQL-select query which results in a set of bound variables. + Indicate that this query should work with enabled inferencing. + Transaction associated with this action. + An enumeration of bound variables that match the given query. + + + + Exports the contents of the model and provides a memory stream. + + File stream to write to. + The serialization format. + A serialization of the models contents. + + + + Imports the contents of a model located by the given URL. The method supports + importing files and other models stored in the local RDF store. The location + of the model is determined by the URI scheme. + + A uniform resource locator. + Serialization format + Pass false if you want to overwrite existing data. True if you want to keep the data and add the new entries. + True if the contents of the model were imported, False if not. + + + + Reads model contents from a stream. The method supports importing files and other models stored in the local RDF store. + + A stream. + Serialization format + Pass false if you want to overwrite existing data. True if you want to keep the data and add the new entries. + True if the contents of the model were imported, False if not. + + + + Starts a transaction which can be used to group more queries together to be executed as one. + + Isolation level used to lock the database. + A handle to the transaction. + + + + Implementation of the IModelGroup interface. + + + + + All unampped properties will be ignored for update and thus deleted. + This reduces the amount of data thats get sent to the database but also might remove important data. + Setting this to true essentialy disables the triple API. + + + + + The default model of this group. + + + + + Uri of the model group is null. + + + + + Tests if all contained models are empty. + + + + + Create a new model group from a store and a collection of models + + A store + A collection of models belonging to that store. + + + + Create a new model group from a store and a collection of models + + A store + A set of models belonging to that store. + + + + Not supported. ModelGroups are read-only. + + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + Not supported. ModelGroups are read-only. + + + + + Not supported. ModelGroups are read-only. + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + + + Indicates wheter a given resource is part of the model. + + A Uniform Resource Identifier. + Transaction associated with this action. + True if the resource is part of the model, False if not. + + + + Indicates wheter a given resource is part of the model. + + Resource that should be looked up in the model. + Transaction associated with this action. + True if the resource is part of the model, False if not. + + + + Execute a SPARQL query against the model. + + A SparqlQuery object. + Modifier to enable inferencing. Default is false. + Transaction associated with this action. + A SPARQL query result object. + + + + Retrieves a resource from the model. + + A Uniform Resource Identifier. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. Provides a resource object of the given type. + + The instance of IResource to be retrieved. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. + + A Uniform Resource Identifier. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. Provides a resource object of the given type. + + The instance of IResource that is to be retrieved. + Transaction associated with this action. + The type of the resource. + A resource with all asserted properties. + + + + Retrieves a resource from the model. + + The uri of the resource that is to be retrieved. + The type the resource should have. + Transaction associated with this action. + A resource with all asserted properties. + + + + Executes a SPARQL query and provides an enumeration of matching resources. + + A SparqlQuery object. + Modifier to enable inferencing. Default is false. + Transaction associated with the action. + An enumeration of resources that match the given query. + + + + Executes a SPARQL query and provides an enumeration of matching resources. + + A SparqlQuery object. + Modifier to enable inferencing. Default is false. + Transaction associated with the action. + An enumeration of resources that match the given query. + + + + Returns a enumeration of all resources that match the given type. + + Modifier to enable inferencing. Default is false. + Transaction associated with the action. + An enumeration of resources that match the given query. + + + + TODO + + + + + + + Executes a SPARQL query and provides an enumeration of matching resources. + + A SparqlQuery object. + Modifier to enable inferencing. Default is false. + Transaction associated with the action. + An enumeration of resources that match the given query. + + + + Serializes the contents of the model and provides a memory stream. + + The file stream to write to. + The serialization format. + A serialization of the models contents. + + + + Imports the contents of a graph serialized in the stream to this model. + + The stream containing the serialization + Format of the serialization + True to update the model, false to replace the data. + True if the contents of the model were imported, False if not. + + + + Add another model to the model group. + + The model to add + true if the element is added to the model group false if the element is already present + + + + Removes all elements in the specified collection from the model group. + + The collection of models to remove. + + + + Modifies the model group to contain only elements that are present in the current group and the specified collection. + + The collection to compare. + + + + Determines whether the model group is a subset of the given collection. + + The collection to compare. + true if the model group is a subset; otherwise, false. + + + + Determines whether the model group is a superset of the given collection. + + The collection to compare + true if the model group is a superset; otherwise, false. + + + + Determines whether the model group is a subset of the given collection. + + The collection to compare. + true if the model group is a subset; otherwise, false. + + + + Determines whether the model group is a superset of the given collection. + + The collection to compare. + >true if the model group is a superset; otherwise, false. + + + + Determines wether the model group and the given collection share common models. + + The collection to compare. + true if the model group shares common models; otherwise, false. + + + + Determines wether the model group and the given collection contain the same elements. + + The collection to compare. + true if the collections is equal; otherwise, false. + + + + Modifies the mode group to contain only elements either present in that object or the given collection, but not both. + + The collection to compare. + + + + Modifies the mode group to contain both elements present in that object and the given collection. + + The collection to compare. + + + + Determines if the model group contains the given model. + + The model to locate. + true if the model exists in the group; otherwise, false. + + + + Copies the given models in the group starting at the specified index. + + The models to copy. + The array index + + + + Returns the number of models in the group. + + + + + Returns if the group is read only. + + + + + Removes a model from the group. + + + + + + + Enumerator of the models + + + + + + Enumerator of the models + + + + + + Abstract class which marks subclasses as ontologies. Needed for automatic discovery. + + + + + This static class contains a mapping of all properties and classes to its uris for discovery of the proper object and its attributes. + For future reference: look into PreApplicationStartMethodAttribute Class or ModuleInitializer + + + + + All registered RDF ontology prefixes in the current application. + + + + + All registered RDF properties in the current application. + + + + + All registered RDF classes in the current application. + + + + + Register a namespace with a prefix. + + A namespace prefix. + A uniform resource identifier. + + + + Register an assembly to search for RDF ontologies. + + + + + + Register the calling assembly to search for RDF ontologies. + + + + + Register the concepts from a given set of ontologies. + + An enumeration of ontologies. + + + + Returns a a property with the given Uri. Creates a new one if it doesn't exist. + + + + + + + Returns a a property with the given string. Creates a new one if it doesn't exist. + + + + + + + Objects of this class represent RDF properties. + + + + + Constructor taking a Uri parameter + + Uri of the property + + + + Constructor taking a UriRef parameter + + Uri of the property + + + + Determines wheter the URIs of the compared objects are equal. + + The object to be compared. + true if the URIs of the compared objects are equal, false otherwise. + + + + Returns the hash code of the objects URI. + + A hash code string. + + + + This class does the heavy lifting of the property mapping mechanism. It stores the value and acts as intermediary for the resource. + + + + + + The value of the mapped property. + + + + + The datatype of the the mapped property. + + + + + The datatype of the the mapped property. + + + + + If the datatype is a collection, this contains the generic type. + + + + + If the datatype is a collection, this contains the generic type. + + + + + True if the property is mapped to a collection. + + + + + True if the property is mapped to a collection. + + + + + True if the value has not been set. + + + + + True if the value has not been set. + + + + + Language of the value. + + + + + Gets the mapped RDF property. + + + + + Gets the URI of the mapped RDF property. + + + + + Gets the name of the mapped .NET property. + + + + + Only valid if type or generic type is string. The mapping ignores the language setting and is always non-localized. + + + + + Creates a new property mapping. + + Name of the property in the class + The RDF property that should be mapped + This parameter is only valid if the type is string. Tells the mapping that the values should be treated as non-localized literals. + + + + Creates a new property mapping. + + Name of the property in the class + The RDF property that should be mapped + The default value used to initialize this property + This parameter is only valid if the type is string. Tells the mapping that the values should be treated as non-localized literals. + + + + Creates a new property mapping. + + Name of the property in the class + The URI of the RDF property that should be mapped + This parameter is only valid if the type is string. Tells the mapping that the values should be treated as non-localized literals. + + + + Creates a new property mapping. + + Name of the property in the class + The URI of the RDF property that should be mapped + The default value used to initialize this property + This parameter is only valid if the type is string. Tells the mapping that the values should be treated as non-localized literals. + + + + Sets the property value. + + A value. + + + + Returns the property value. + + The value, if any. + + + + Sets a single literal value or adds a value to a property mapped to a value collection. + + + This method is meant to be called from the non-mapped interface. It replaces the current value if + it is mapped to one value, adds it if the property is mapped to a list. + + The value. + + + + Deletes the containing value and sets the state to unset. In case of a collection, it tries to remove the value from it. + + + + + + Gets the value or values mapped to this property. + + + + + + Gets a list of strings as list of tuples containing the values and the language tags. + + + + + + Method to test if a type is compatible. In case of collection, the containing type is tested for compatibility. + + The type to test. + True if the type is compatible + + + + Indicates if the mapped value is a numeric type. + + A .NET type object. + true if the type is numeric, false otherwise. + + + + Indicates if the precision of a numeric target type is greater or equal to a given source type. + + The source type. + The target type. + true if the types are precision compatible, false otherwise. + + + + Clones the mapping of another resource. + + + + + + Clears the mapping and resets it. + + + + + A dictionary of named value bindings which represents a single query solution. + + + + + Exposes a SPARQL query. + + + + + The model on which the query will be run. + + + + + The type of the query. + + + + + Indicates if inference should be enabled. It depends on the underlying store if and how this is used. + + + + + Bind parameters to specified values. + + + + + + + Returns all prefixes that were specified by the query. + + + + + + Enumerates the graphs which are declared in FROM and FROM NAMED directives at the root level. + + An enumeration of URI strings. + + + + Get an array of all variable names that are defined in the root scope of the query. + + An array of avaiable names without the preceding '$' or '?' characters, if any. + + + + Get the root graph pattern. + + A non empty string, on success. + + + + Gets the outermost ORDER BY clause. + + A non empty string if a ORDER BY clause is defined. + + + + Indicates if the query selects variables that are used as subject, predicate and object in a triple pattern. + + true if the query selects triples, false otherwise. + + + + Returns the string representation of the query. + + The SPARQL query string. + + + + Exposes the results of a SPARQL query. + + + + + Number of items in the result set. + + + + + + Enumerate the resource objects in the result. + + + + + + + + Enumerate the resource objects of a given type in the result. + + + + + + + + + Returns the bool value from ASK query forms. + + True on success, False otherwise. + + + + Returns marshalled Resource objects returned from DESCRIBE, CONSTRUCT + or interpretable SELECT query forms. + + An enumeration of Resource objects. + + + + Returns marshalled instances of the given Resource type which were + returned from DESCRIBE, CONSTRUCT or interpretable SELECT query forms. + + The Resource type object. + An enumeration of instances of the given type. + + + + Returns a set of bound values (bindings) returned from SELECT query forms. + + An enumeration of bound solution variables (BindingSet). + + + + Extensions for the ConstantExpression type. + + + + + Convert the expression into a ConstantTerm. + + A constant expression. + A ConstantTerm object. + + + + Convert the expression into a IriExpression. + + A constant expression. + A IriExpression object. + + + + Convert the expression into a LiteralExpression. + + A constant expression. + A LiteralExpression object. + + + + Convert the expression into a numeric expression. + + A constant expression. + A NumericExpression object. + + + + Convert the expression into a node. + + A constant expression. + A Node object. + + + + Indicates if the expression can be evaluated to false. + + A constant expression. + true if the value is either null or false, false otherwise. + + + + Indicate if an expression contains antoher or is equal to it. + + An expression. + Expression to be evaluated. + true if e is equal to the given expression or one of its query sources, false otherwise. + + + + Extensions for the MemberInfo type. + + + + + Gets the first custom attribute of a specified type which is attached to a class member. + + Custom attribute type. + A class member. + A custom attribute object on success, null otherwise. + + + + Get the .NET type of the given class member. + + A class member. + The class member type. + + + + Indicates if the given member is of type Uri or a sub type. + + A class member. + true if the member can be represented by a URI, false otherwise. + + + + Indicates if the given member is a built-in call. + + A class member. + true if the class member is a built-in call, false otherwise. + + + + Extensions for the MethodCall type. + + + + + Indicates if the method call has an argument with a specified value at a specified location. + + A method call expression. + Location of the argument. + Value of the argument. + true if the method call has an argument with the given value, false otherwise. + + + + Indicates if the method call has an argument at a speficied loaction with one of the specified values. + + A method call expression. + Location of the argument. + Values of the argument. + true if the method call has an argument with one of the given values, false otherwise. + + + + Get the value of an argument at the specified location. + + Value type. + A method call expression. + Argument location. + + + + + Get the value of an argument at the specified location. + + Value type. + A method call expression. + Argument location. + Value to be returned if no argument is specified at the given location. + + + + + Extension for the NodeFactory type. + + + + + Create a boolean literal value. + + A node factory. + Value of the literal node. + A new literal node object. + + + + Generates SELECT queries which return binding sets. + + + This class is intended to be used as a root query generator. For generating SELECT queries + for sub-queries, refer to SubSelectQueryGenerator. + + + + + Builds the triples required to access a given member and accociates its value with a variable. + + The member to be accessed. + The object variable associated with the member value. + + + + Builds the triples required to access a given member and accociates its value with a variable. + + The member to be accessed. + The object variable associated with the member value. + + + + Generates a SPARQL query from a LINQ query model by visiting all clauses and invoking + expression implementation using a ExpressionTreeVisitor. + + The result type. + + + + Allows to access query generators and sub query generators in a tree-like fashion. + + + + + Visits all expressions in a query model and handles the query generation. + + + + + Get a variable from an expression that can be used as a subject in triple patterns and represents resources. + + + + + + + A simple SPARQL parser. + + + This class is primarily intended to support a limited range of query + preprocessing tasks such as setting the values of query parameters (@-variables) + as quickly as possible. It does not aim to support the full SPARQL standard syntax. + + + + + We use the list of tokens to generate the query string with bound parameters on demand. + + + + + Type of the last read token. + + + + + URIs of the graphs queried or manipulated by the query. + + + + + Namespace prefixes defined in the query. + + + + + Namespace prefixes referenced in the query. + + + + + Names of the bindable query parameters starting with '@'. + + + + + Bound literal values of the query parameters. + + + + + Token types of the query parameters. + + + + + Creates a new instance of the SparqlPreprocessor class. + + A text reader. + SPARQL syntax level. + + + + Starts analyzing the SPARQL query. + + Trz to add prefix definitions for the namespaces used but not declared in the query. + + + + Gets the next parseable Token from the Input or raises an Error. + + + + + + Add FROM definition to the query. + + URI of the graph. + + + + Add a FROM NAMED definition to the query. + + URI of the graph. + + + + Gets the PREFIX definitions in the query. + + + + + + Set the value for a query parameter which is preceeded by '@'. + + The parameter name including the '@'. + The paramter value. + + + + Return the query with all bound variables. + + Level of the sub graph to be returned (0 := entire query). + + + + + Returns the entire query string. + + + + + + Graph pattern scope of variables defined in a SPARQL query. + + + + + A variable accessible in all levels of the query. + + + + + A locally accessible variable. + + + + + A simple SPAQL Query class. This class aims to ease formulating SPARQL + query strings by automatically setting PREFIX declarations from a given + namespace manager. + + + + + + Cached version of the query string. + + + + + Indicates if a query parameter value has been changed and the cached query string needs to be regenerated. + + + + + The SPARQL query processor used to determine the prefixes and statement variables in the query. + + + + + Names of the globally defined variables without the preceding '?'. + + + + + The default model of the Query, if there is excactly one. + + + + + Get or set the model used for this query. + + + + + The query form as defined in http://www.w3.org/TR/rdf-sparql-query/#QueryForms + + + + + Indicates if the query result should be expanded using run-time inferencing. + + + + + Creates a new SPARQL query. If enabled, the PREFIXES used in any of the query's graph patterns will + be declared in the query header if they are found in the application config. Additionally, the query + may be compacted in order to reduce processing overhead when being used repeatedly in loops. + + The SPARQL query string. + Set to true if the namespace prefixes used in the query should be declared. + + + + Indicates if the query provides a description of one or more resources. + + + + + Set the value for a query parameter which is preceeded by '@'. + + The parameter name including the '@'. + The paramter value. + + + + Enumerates the graphs which are declared in FROM and FROM NAMED directives at the root level. + + An enumeration of URI strings. + + + + Returns all prefixes that were specified by the query. + + + + + + Gets the names of all variables which are defined in the root graph pattern. + + + + + + Gets the entire query as a string. + + + + + + Indicates if the query contains an ORDER BY clause in any of its graph patterns. + + true if the query contains an ORDER BY clause, false otherwise. + + + + Adds a LIMIT <int> clause to the query in order to restrict it to put an upper bound on the number of solutions returned. + + The number of return values. + + + + Adds an Offset <int> clause to the query which causes the solutions generated to start after the specified number of solutions. + + The number of entries to skip. + + + + Returns the query string with generated prefixes and subsituted parameters. + + A valid SPARQL string. + + + + The SPARQL query forms as specified in http://www.w3.org/TR/rdf-sparql-query/#QueryForms + + + + + The SPARQL query type could not be determined. + + + + + The ASK query form. + + + + + The CONSTRUCT query form. + + + + + The DESCRIBE query form. + + + + + The SELECT query form. + + + + + A preprocsesor for SPARQL queries. + + + + + The SPARQL query form, i.e. ASK, DESCRIBE, SELECT, CONSTRUCT. + + + + + Indicates if the query returns triples. + + + + + Variables visible in the query root scope. + + + + + Variables only visible in local scope. + + + + + Indicates if the query has an ORDER BY solution modifier. + + + + + Create a new instance of the SparqlQueryPreprocessor class. + + A text reader. + SPARQL syntax level. + + + + Gets the next token in the query and advance the reader position. + + A SPARQL token. + + + + Adds a LIMIT clause to the query in order to restrict it to put an upper bound on the number of solutions returned. + + The number of return values. + + + + Adds an OFFSET clause to the query which causes the solutions generated to start after the specified number of solutions. + + The number of return values. + + + + Get the entire SPARQL query string. + + A SPARQL query string. + + + + Get the ORDER BY clause. + + A string. + + + + Provides functionality to perform serialization of native .NET types into SPARQL strings. + + + + + Serializes a string and excapes special characters. + + A string literal. + + + + + Serializes a string with a translation + + A string literal. + A language tag. + + + + + Serializes a typed literal. + + A value. + A type URI. + + + + + Serializes a value depdening on its type. + + An object. + + + + + Serializes a DateTime object. + + A date time object. + + + + + Serializes a URI. + + A uniform resource identifier. + + + + + Serializes a resource. + + A resource. + Ignores all unmapped properties for serialization. + + + + + Generate the dataset clause for a given model. + + A model. + + + + + Generate a dataset clause for a model group. + + A model group. + + + + + Generate a dataset clause for an enumeration of models. + + An enumeration of models. + + + + + Serialize a count query for the given SPARQL query. + + The model to be queried. + The query which results should be counted. + + + + + Generate a query which returns the URIs of all resources selected in a given query. + + The model to be queried. + The SPARQL query which provides resources. + Offset solution modifier. + Limit solution modifier. + + + + + Add an offset or limit solution modifier to a given SPARQL query. + + The model to be queried. + The SPARQL query to be executed. + Offset solution modifier. + Limit solution modifier. + + + + + A simple SPARQL Update class. This class aims to ease formulating SPARQL + query strings by automatically setting PREFIX declarations from a given + namespace manager. + + + + + Get or set the model used for this query. + + + + + Get or set the resource being updated. + + + + + The SPARQL processor used to determine the prefixes and statement variables in the query. + + + + + The plain SPARQL update string. + + + + + Create a new SPARQL Update with an optional namespace manager instance which + can be used to declare PREFIX declarations for the namespace abbreviations + used in the update string. + + The u update string. + + + + Set the value for a query parameter which is preceeded by '@'. + + The parameter name including the '@'. + The paramter value. + + + + Returns the query string with generated prefixes and subsituted parameters. + + A valid SPARQL string. + + + + Enumerates all supported RDF serialization formats. + + + + + RDF/XML http://www.w3.org/TR/REC-rdf-syntax/ + + + + + N3 http://www.w3.org/TeamSubmission/n3/ + + + + + NTriples http://www.w3.org/2001/sw/RDFCore/ntriples/ + + + + + NTriples https://www.w3.org/TR/2014/REC-n-quads-20140225/ + + + + + TriG http://www.w3.org/TR/trig/ + + + + + Turtle http://www.w3.org/TR/turtle/ + + + + + JSON + + + + + JSON-LD https://www.w3.org/TR/json-ld/ + + + + + This class repesents a RDF resource. + + + + + The cache for the associated resources, needed to support lazy loading for mapping. + + + + + This dictionary contains the properties and the associated values. + + + + + Contains a list of all properties which implement the INotifyPropertyChanged interface. + + + + + All mappings as discovered by InitialisePropertyMapping. + + + + + Handle to the model. + + + + + Public accessor to the model. + + + + + The uri which represents the resource. + + + + + New resource which have never been committed need to be treated differently. + + + + + Indicates if the resources has been disposed. + + + + + True if the properties of the resources has been committed to the model. + + + + + Indicates this resource is read-only. + + + + + This method provides a mechanism to change writability in subclasses. + + + + + + Set the language of this resource. This will change te mapped strings to this language. + + + + + Private since a Resource cannot be created without a URI. + + + + + Create a new resource with a given Uri. + + + + + + Create a new resource with a given Uri. + + + + + + Create a new resource with a given string. Throws an exception if string is Uri compatible. + + The string converted to a Uri. Throws an exception if not possible. + + + + Create a new instance of the class and copy the properties from another class instance. + + + + + + Destructor + + + + + Sets the model the resource is stored in. + + A model. + + + + Loads and initialises all mapped properties. + + + This method could be re-reimplemented and sped up by the CIL generator. + + + + + Overwrite this method to return the RDF classes of your resource type. + + + + + + Returns the uri with brackets. + + + + + + Determines wheter the URIs of the compared objects are equal. + + The object to be compared. + true if the URIs of the compared objects are equal, false otherwise. + + + + Returns the hash code of the objects URI. + + A hash code string. + + + + Internal method to add the values. This is not public because the value is of type object and thus not typesafe for rdf. + + + + + + + + Add a property with a resource as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a string as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a string and language as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a string and language as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a Int16 as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a Int32 as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a Int64 as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a UInt16 as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a UInt32 as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a UInt64 as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a float as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a double as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a decimal as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a bool as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a DateTime as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a byte array as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with an Uri as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Internal method to remove the values. This is not public because the value is of type object and thus not typesafe for rdf. + + + + + + + Removes a property with a IResource value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a string value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a string value associated with the given language. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a string value associated with the given language. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a Int16 value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a Int32 value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a Int64 value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a UInt16 value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a UInt32 value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a UInt64 value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a float value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a double value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a decimal value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a bool value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a DateTime value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a byte array value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with an Uri value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Internal method to remove all properties. + + + + + Returns true if the resource has any object connected with the specified property. + + The property to be checked. + true if the property is associated, false if not + + + + Returns true if the specified value is connected to this resource with the given property. + + The property to be checked + The value that should be tested + true if the value is associated with the property, false if not + + + + Returns true if the specified string value with the given language is connected to this resource with the given property. + + The property + The string value. + The language the string is in. + + + + + Returns true if the specified string value with the given language is connected to this resource with the given property. + + The property + The string value. + The language the string is in. + + + + + This method lists all combinations of properties and values. + + Only return values which should be serialized. + + + + + Lists all values associated with one property. + This inclues the mapped values as well. + + + + + + + List all available properties. + This includes mapped properties if they have valid values. + + + + + + Return the value for a given property. + + A RDF property. + The value on success, null if the object has no such property. + + + + Return the value for a given property with a predefined default value. + + A RDF property. + Specifies a default value that should be returned if no value exists. + The value on success, the default value if the object has no such property. + + + + Persist changes in the model. + + + + + Reload the resource from the model. + + + + + This method returns if property is mapped. + + Rdf property to be tested. + Type of the mapping. + + + + + This method returns the mapped property of the given rdf property and type. It returns null if this mapping is not available. + + Rdf property to be tested. + Type of the mapping. + + + + + Returns the value from the mapped property. + + + + + + + + Set the mapped value. This also raises the PropertyChanged event. + + + + + + + + Load all cached resources from the mapped property. The values of the mapped property are resolved when this method returns. + + + + + + Register a property name to raise the INotifyProperty signal on rollback. + + Name of a property. + + + + Raises the PropertyChanged event of the object. + + Name of a property. + + + + Update the property mappings with the values in the selected language. + + + + + Dispose this resource. + Does nothing meaningful currently. + + + + + Needed for the implementation of the INotifyPropertyChanged interface. + + + + + Warns the developer if this object does not have + a public property with the specified name. This + method does not exist in a Release build. + + + + + Returns whether an exception is thrown, or if a Debug.Fail() is used + when an invalid property name is passed to the VerifyPropertyName method. + The default value is false, but subclasses used by unit tests might + override this property's getter to return true. + + + + + This method loads the cached Resources for the given MappingProperty from the Storage and returns them. + They are instantiated as the defined type. The cache for this mapping property is emptied. + + Mapping property which should be loaded from cache. + List of formerly cached resources. + + + + Tests if the mapping has cached values. + + + + + + + Tests if the mapping has a certain cached values. + + + + + + + + + + + + + + + Converts resources to and from JSON format. + + + + + Create a new instance of the JsonResourceConverter class. + + A triple store. + + + + Indicates if the given object can be converted. + + An object. + true if the object is of type Resource, false otherwise. + + + + Convert a JSON string into an object. + + A JSON reader. + Returned object type. + The existing value of object being read. + The calling serializer. + + + + + Indicates if the converter can write JSON. + + + + + Write the JSON representation of an object. + + The JSON writer to be used. + The object value. + The JSON serializer to be used. + + + + Settings for the serializing resources to and from JSON format. + + + + + Create a new instance of the JsonResourceSerializerSettings class. + + A triple store. + + + + A store adapter for dotNetRDF. + + + + + Creates a new dotNetRDFStore. + + A list of ontology file paths relative to this assembly. The store will be populated with these ontologies. + + + + Removes model from the store. + + Uri of the model which is to be removed. + + + + Query if the model exists in the store. + OBSOLETE: This method does not list empty models. At the moment you should just call GetModel() and test for IsEmpty() + + Uri of the model which is to be queried. + + + + + Executes a query on the store which does not expect a result. + + The update query + An associated transaction + + + + Executes a SparqlQuery on the store. + + + + + + + + This method queries the dotNetRdf store directly. + + + + + + + Gets a handle to a model in the store. + + Uri of the model. + + + + + Indicates if the store is ready to be queried. + + + + + Lists all models in the store. + + All handles to existing models. + + + + Try parse RDF from a given text reader into the store. + + The text reader to read from. + The graph to store the read triples. + RDF format to be read. + + + + Loads a serialized graph from the given stream into the current store. See allowed formats. + + Stream containing a serialized graph + Uri of the graph in this store + Allowed formats + Pass false if you want to overwrite the existing data. True if you want to add the new data to the existing. + + + + + Loads a serialized graph from the given location into the current store. See allowed formats. + + Uri of the graph in this store + Location + Allowed formats + Pass false if you want to overwrite the existing data. True if you want to add the new data to the existing. + + + + + Writes a serialized graph to the given stream. See allowed formats. + + Stream to which the content should be written. + Uri fo the graph in this store + Allowed formats + + + + + + + + + + + + Creates a model group which allows for queries to be made on multiple models at once. + + + + + + + Creates a model group which allows for queries to be made on multiple models at once. + + + + + + + Closes the store. It is not usable after this call. + + + + + A store provider for dotNetRDF triple store adapters. + + + + + Create a new instance of the dotNetRDFStoreProvider class. + + + + + Create a new triple store with the given settings. + + Triple store setting variables. + + + + + A generic triple provider interface + + + + + Indicates if another triple is available + + + + + Iterates to the next triple + + + + + Subject + + + + + Predicate + + + + + Object + + + + + Number of total triples + + + + + Resets the provider + + + + + Storage that can can connect to Sparql Endpoints + + + + + + + Indicates if the store is ready to be queried. + + + + + Set this property to log the SPARQL queries which are executed on this store. + For example, to log to the console, set this property to System.Console.Write(System.String). + + + + + A store adapter for SPARQL protocol endpoints. + + + + + Create a new instance of the SparqlEndpointStoreProvider. + + + + + Create a new triple store with a specified configuration. + + Triple store specific configuration variables. + + + + + Handles query results for Stardog triple stores. + + + + + An RDF handler for Stardog triple stores. + + + + + Handles events when reading an RDF file has started and no triples have been read. + + The source of the event. + + + + Handle events when reading an RDF file has ended and all triples have been read. + + The source of the event. + Indicates if errors have occured while reading the file. + + + + Handle events when during reading of an RDF file a triple has been read. + + The source of the event. + The triple. + + + + RDF result handler for Stardog triple stores. + + + + + Result value of ASK queries. + + + + + Binding result of SELECT queries. + + + + + Create a new instance of the class StardogResultHandler. + + + + + Must be overridden by derived handlers to appropriately handle boolean results. + + Boolean result value. + + + + Must be overridden by derived handlers to appropriately handler SPARQL Results. + + SPARQL bindings. + + + + + Must be overridden by derived handlers to appropriately handle variable declarations. + + Variable name. + + + + + Indicates the result value of ASK queries. + + true or false + + + + A store adapter for Stardog databases. + + + + + Indicates if the store is connected and awaiting queries. + + + + + Create a new instance of the StardogStore class. + + URL of the host to connect to. + Username to be used when connecting. + Password to be used when connecting. + Knowledge base / database identifier. + + + + Adds a new model with the given uri to the storage. + + Uri of the model + Handle to the model + + + + Query if the model exists in the store. + OBSOLETE: This method does not list empty models. At the moment you should just call GetModel() and test for IsEmpty + + Uri of the model which is to be queried. + + + + + Executes a query on the store which does not expect a result. + + SPARQL Update to be executed. + An optional transaction. + + + + Executes a SparqlQuery on the store. + + SPARQL query string to be executed. + An optional transaction. + + + + + Executes a SparqlQuery on the store. + + SPARQL query to be executed. + An optional transaction. + + + + + Gets a handle to a model in the store. + + Model URI. + + + + + Lists all models in the store. + + All handles to existing models. + + + + Loads a serialized graph from the given stream into the current store. See allowed formats. + + Stream containing a serialized graph + Uri of the graph in this store + Allowed formats + Pass false if you want to overwrite the existing data. True if you want to add the new data to the existing. + + + + + Loads a serialized graph from the given location into the current store. See allowed formats. + + Uri of the graph in this store + Location + Allowed formats + Pass false if you want to overwrite the existing data. True if you want to add the new data to the existing. + + + + + Writes a serialized graph to the given stream. See allowed formats. + + Stream to which the content should be written. + Uri fo the graph in this store + Allowed formats + + + + + Removes model from the store. + + Uri of the model which is to be removed. + + + + Starts a transaction. The resulting transaction handle can be used to chain operations together. + + Isolation level of the operations executed in the transaction. + + + + + Invoked when a transaction is completed. + + Object which invoked the event. + Event arguments. + + + + Creates a model group which allows for queries to be made on multiple models at once. + + The list of uris of the models that should be grouped together. + + + + + Creates a model group which allows for queries to be made on multiple models at once. + + The list of model handles that should be grouped together. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Wrapper to support Stardog transactions. At present, nested transaction is NOT supported as the transaction instance is a wrapper around the StardogConnector. + + + + + + + + Instance is active and has not been committed or rolled back. + Once the transaction has been committed or rolled back, it should be disposed of. + + + + + + + + + + + + + + + + + + + + Number of pending "Additions" in the current transaction. + + + + + Number of pending "Removals" in the current transaction. + + + + + Has any pending changes. + + + + + SPARQL converter. Takes a typical Stardog "update" query and decomposes it so that it can be used with the StardogConnector's UpdateGraph method. + Does require a valid Store instance to extract the Removals from the current connection. + + + + + An RDF triple. + + + + + Get or set the subject of the triple. + + + + + Get or set the predicate of the triple. + + + + + Get or set the object of the triple. + + + + + Gets a SPARQL compliant string representation of the triple. + + A string. + + + + An RDF node. + + + + + Get or set the literal node. + + + + + Get or set the literal data type URI. + + + + + Indicates if the node is a literal. + + + + + Get a SPARQL compliant string representation of the node. + + + + + + The last SPARQL query supplied to + + + + + The URI of the Graph Additions and Deletes will be applied to. + + + + + The URI of the entity being updated/saved. + + + + + Triple instances which will be removed + + + + + Triple instances converted from UpdateTriples + + + + + Parsed TripleSet instances which constitute the Additions + + + + + Create an instance of the class StardogUpdateSparqlConvertor. + + + + + Create an instance of the class StardogUpdateSparqlConvertor. + + Startdog store instance. + + + + Given a typical SPARQL update query, it will be parsed and decomposed into the appropriate artifacts suitable to call the StardogConnector UpdateGraph method. + + SPARQL query string. + + + + Returns string based triples, separated by a ' ; ' string. If only two are found, the s value is returned as null since it is assumed that predicate and object are present. + + + + + Peaks ahead to see if there is another node present; indicated by the next non-whitespace of a < or ' character. + + + + + Extensions for the System.String type. + + + + + Extracts the instance'th string between start and end. + If start or end is null/empty then instance is assumed to always be 1 regardless of the value. + + Input string + Start delimiter + End delimiter + Instance of start/end to use. + + + + Extracts the instance'th string between start and end. + If start or end is null/empty then instance is assumed to always be 1 regardless of the value. + + Input string + Start delimiter + End delimiter + Pointer into input where parsing ended. This will be at the point AFTER end was found. + Instance of start/end to use. + + + + Returns the string between the first set of single quotes. Supports escaped single quotes but only \\' + + Input string + Pointer into input where parsing ended. This will be at the point AFTER end was found. + + + + + This class allows the usage of the Stardog store. + An IStore handle can be created by calling + StoreFactory.CreateStore("provider=stardog;host=http://localhost:5820;uid=admin;pw=admin;sid=MyStore"); + + + + + Create a new instance of the class StardogStoreProvider. + + + + + The GetStore method which will be called with the parsed configuration string. + + Store specific configuation parameters. + An instance of IStore. + + + + The IStorage interface describes the methods an RDF Storage has to implement. + + + + + Indicates if the store is ready to be queried. + + + + + Set this property to log the SPARQL queries which are executed on this store. + For example, to log to the console, set this property to System.Console.Write(System.String). + + + + + Adds a new model with the given uri to the storage. + + Uri of the model + Handle to the model + + + + Removes model from the store. + + Uri of the model which is to be removed. + + + + Removes model from the store. + + Handle to the model which is to be removed. + + + + Query if the model exists in the store. + OBSOLETE: This method does not list empty models. At the moment you should just call GetModel() and test for IsEmpty + + Uri of the model which is to be queried. + + + + + Query if the model exists in the store. + OBSOLETE: This method does not list empty models. At the moment you should just call GetModel() and test for IsEmpty + + Handle to the model which is to be queried. + + + + + Gets a handle to a model in the store. + + Uri of the model. + + + + + Lists all models in the store. + + All handles to existing models. + + + + Executes a SparqlQuery on the store. + + + + + + + + Executes a query on the store which does not expect a result. + + + + + + + Starts a transaction. The resulting transaction handle can be used to chain operations together. + + The isolation level of the transaction. + + + + + Creates a model group which allows for queries to be made on multiple models at once. + + The list of uris of the models that should be grouped together. + + + + + Creates a model group which allows for queries to be made on multiple models at once. + + The list of uris of the models that should be grouped together. + + + + + Loads a serialized graph from the given location into the current store. See allowed formats. + + Uri of the graph in this store + Location + Allowed formats + Pass false if you want to overwrite the existing data. True if you want to add the new data to the existing. + + + + + Loads a serialized graph from the given stream into the current store. See allowed formats. + + Stream containing a serialized graph + Uri of the graph in this store + Allowed formats + Pass false if you want to overwrite the existing data. True if you want to add the new data to the existing. + + + + + Writes a serialized graph to the given stream. See allowed formats. + + Stream to which the content should be written. + Uri fo the graph in this store + Allowed formats + + + + + Initializes the store from the configuration. It uses either the provided file or attempts to load from "ontologies.config" located next to the executing assembly. + For legacy reasons it also looks in the app.config file. + If the ontology files are in a different path, this can be supplied as a base path.. + + Path the configuration should be read from. + Path where the ontologies should be searched for. + + + + Initializes the store from the configuration. It uses either the provided file or attempts to load from "ontologies.config" located next to the executing assembly. + For legacy reasons it also looks in the app.config file. + If the ontology files are in a different path, this can be supplied as a base path.. + + Load a specific configuration file. + If given, this function tries to load the ontologies from this folder. + + + + Exposes methods for executing triple store specific methods. + + + + + Load storage specific configurations. + + Triple store instance. + + + + This class encapsulates the functionality of an abstract triple store. Cannot be used directly. + Use StoreFactory to get a concret implementation. + + + + + Indicates if the store is connected and awaiting queries. + + + + + Set this property to log the SPARQL queries which are executed on this store. + For example, to log to the console, set this property to System.Console.Write(System.String). + + + + + Removes model from the store. + + Uri of the model which is to be removed. + + + + Removes model from the store. + + Handle of the model which is to be removed. + + + + Query if the model exists in the store. + OBSOLETE: This method does not list empty models. At the moment you should just call GetModel() and test for IsEmpty + + Uri of the model which is to be queried. + + + + + Query if the model exists in the store. + OBSOLETE: This method does not list empty models. At the moment you should just call GetModel() and test for IsEmpty + + Handle to the model which is to be queried. + + + + + Lists all models in the store. + + All handles to existing models. + + + + Executes a SparqlQuery on the store. + + SPARQL query to be executed. + An optional transaction. + + + + + Executes a query on the store which does not expect a result. + + SPARQL Update to be executed. + An optional transaction. + + + + Starts a transaction. The resulting transaction handle can be used to chain operations together. + + Isolation level of the operations executed in the transaction. + + + + + Loads a serialized graph from the given location into the current store. See allowed formats. + + Uri of the graph in this store + Location + Allowed formats + Pass false if you want to overwrite the existing data. True if you want to add the new data to the existing. + + + + + Loads a serialized graph from the given stream into the current store. See allowed formats. + + Stream containing a serialized graph + Uri of the graph in this store + Allowed formats + Pass false if you want to overwrite the existing data. True if you want to add the new data to the existing. + + + + + Writes a serialized graph to the given stream. See allowed formats. + + Stream to which the content should be written. + Uri fo the graph in this store + Allowed formats + + + + + Initializes the store from the configuration. It uses either the provided file or attempts to load from "ontologies.config" located next to the executing assembly. + For legacy reasons it also looks in the app.config file. + If the ontology files are in a different path, this can be supplied as a base path.. + + Load a specific configuration file. + If given, this function tries to load the ontologies from this folder. + + + + Initializes the store from the configuration. It uses either the provided file or attempts to load from "ontologies.config" located next to the executing assembly. + For legacy reasons it also looks in the app.config file. + If the ontology files are in a different path, this can be supplied as a base path.. + + Path the configuration should be read from. + Path where the ontologies should be searched for. + + + + This method loads the configuration data from the given file. + This can read the old App.config and new ontologies.config files. + + Path to either ontologies.config or App.config file. + + + + + Loads Ontologies defined in the currently loaded config file into the store. + + Handle of the configuration. + Searchpath for the ontologies. + + + + Disposes this store and it's underlying connection. This object cannot be reused after disposing. + + + + + Adds a new model with the given uri to the storage. + + Uri of the model + Handle to the model + + + + Gets a handle to a model in the store. + + Model URI. + + + + + Creates a model group which allows for queries to be made on multiple models at once. + + The list of uris of the models that should be grouped together. + + + + + Creates a model group which allows for queries to be made on multiple models at once. + + The list of model handles that should be grouped together. + + + + + This is the factory for object implementing the IStore interface. + If you want to use your own store, you can load the assembly containing the provider with the LoadProvider method. + + + + + Tests if the given connection string is valid. + + + + + + + Creates a store from the given connection string. + + + + + + + Tries to read a connection string with the given name from the configuration. If no name was given, the first compatible connection string is used. + + + + + + + Creates a temporary in-memory store using the dotNetRDF provider. + + + + + + Create a store suitable for querying SPARQL protocol endpoints. + + URL of the SPARQL endpoint. + + + + + Tries to load a store provider from the given assembly. + + + + + + + Tries to load a store provider from the given assembly file. + + A assembly file info object. + + + + + Tries to load a store provider from the given assembly. + + An assembly. + + + + + This is the abstract store provider class. Implement it if you want to write your own store provider. + + + + + The name of the store. + + + + + All valid configuration options + + + + + The constructor of the store provider + + + + + The GetStore method which will be called with the parsed configuration string. + + Store specific configuation parameters. + An instance of IStore. + + + + This class can be used to load or update ontologies in stores. It provides convinence methods to load directly from the ontologies.config file. + + + + + Create a new instance of the StoreUpdater class. + + The store you want to update. + A directory used as base path. + + + + This method loads the given ontologies into the provided store. + A model will be created for each ontology. If it already exists, it wil be replaced. + + A collection of ontologies to be loaded. + + + + Gets an absolute path from a location relative to the triple store instance. + + A relative path. + + + + + This method can be used to load storage specific configuration. + + + + + + Handle for transaction events. + + Object which raised the event. + Event arguments. + + + + Exposes a repository which supports transactions. + + + + + The isolation level of the transaction. + + + + + Commit the transaction. + + + + + Rolls the transaction back. + + + + + Will be raised if transaction finishes. + + + + + Interface for a transactional object + + + + + Persist any changes to the object. + + + + + Discard any changes to the object. + + + + + This class encapsulates arguments for transaction event. + + + + + Indicates that the transaction finished with a commit. + + + + + Indicates that the transaction finished with a rollback. + + + + + Create a new transaction event object. + + Pass true to indicate that a commit happened. Pass false to indicate that a rollback happend. + + + + This class extends the framework Uri class to also include fragments for + equality testing. + + + + + Creates an UriRef from an Uri + + + + + + Create an UriRef from a string. + + + + + + Creates an UriRef from a string with a given UriKind. + + + + + + + Creates an UriRef from a base uri and a relative uri as string. + + + + + + + Tests the equality of two UriRefs. + + + + + + + Override of GetHashCode which factors the fragment in. + + + + + + Generates a globally unique resource identifier in the Semiodesk namespace: <urn:uuid:{GUID}/> + + A Uniform Resource Identifier. + + + + A Uniform Resource Name (URN). + + + + + Create a new instance of a URN from an identifier. + + Identifier associated with a URN namespace. + + + + Provides functionality for the serialization and deserialization of .NET + objects to XML Schema encoded strings. + + + + + XSD URI vocabulary. + + + + + Maps .NET types to XSD type URIs. + + + + + Maps XSD type URIs to .NET types. + + + + + Maps .NET types to object serialization delegates. + + + + + Maps XSD type URIs to object deserialization delegates. + + + + + Provides the XML Schema type URI for a given .NET type. + + A .NET type object. + A XML Schema type URI. + + + + Indicates if there is a registered XML Schema type URI for the given .NET type. + + A .NET type object. + true if there is a XML schema type, false otherwise. + + + + Provides the XML Schema type URI for a given .NET type. + + A xsd type uri. + A XML Schema type URI. + + + + The object serialization delegate + + + + + + + Serializes an object to an XML Schema encoded string. + + + + + + + Serializes an object forcd to a given type to an XML Schema encoded string. + + + + + + + + Serialize an IResource + + + + + + + Serialize an Uri + + + + + + + Serialize a string + + + + + + + Serialize an array of strings + + + + + + + Serialize a tuple consisting of a string and its associated culture + + + + + + + Serialize a DateTime + + + + + + + Serialize a byte array + + + + + + + Serialize a bool + + + + + + + Serialize an Int16 + + + + + + + Serialize an Int32 + + + + + + + Serialize an Int64 + + + + + + + Serialize an Uint16 + + + + + + + Serialize an Uint32 + + + + + + + Serialize an Uint64 + + + + + + + Serialize a decimal + + + + + + + Serialize a double + + + + + + + Serialize a float + + + + + + + Deserialization delegate, format for deserialization functions. + + + + + + + Deserialize string, nothing to do. + + The string + The string + + + + Deserialize string with given type uri. + + The value as string. + The xsd type. + The value in its correct type. + + + + Deserialize an int16 from a string. + + The serialized int16 + An int16 + + + + Deserialize an int32 from a string. + + The serialized int32 + a int32 value + + + + Deserialize an int64 from a string. + + The serialized int64 + A int64 value + + + + Deserialize an uint6 from a string. + + The serialized int64 + A uint16 value + + + + Deserialize an int32 from a string. + + The serialized int32 + A int32 value + + + + Deserialize an uint64 from a string. + + The serialized uint64 + A uint64 value + + + + Deserialize a bool from a string. + + The serialized bool + A bool value + + + + Deserialize a decimal from a string. + + The serialized decimal + A decimal value + + + + Deserialize a double from a string. + + The serialized double + A double value + + + + Deserialize a single from a string. + + The serialized single + A single value + + + + Deserialize a DateTime from a string. + + The serialized DateTime + A DateTime value + + + + Deserialize a Resource from a string. + + The serialized Resource + A Resource value + + + + Deserialize a uri from a string. + + The serialized uri + A uri value + + + + Deserialize a ByteArray from a string. + + The serialized ByteArray + A ByteArray value + + + + Deserialize a XmlNode from a string. + + The serialized XmlNode + A XmlNode value + + + + Deserialize a LiteralNode from a string. + + The serialized LiteralNode + A LiteralNode value + + + diff --git a/tests/Trinity.Tests.Virtuoso/bin/Debug/Targets/Semiodesk.Trinity.targets b/tests/Trinity.Tests.Virtuoso/bin/Debug/Targets/Semiodesk.Trinity.targets new file mode 100644 index 0000000..9b0ba79 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Debug/Targets/Semiodesk.Trinity.targets @@ -0,0 +1,31 @@ + + + + + + Full + + + + + + + + + + + + $(CoreCompileDependsOn);GenerateOntologyTarget + + + + + + + + + + + + + \ No newline at end of file diff --git a/Trinity.Tests/Net35/TinyVirtuoso/database/virtuoso.ini b/tests/Trinity.Tests.Virtuoso/bin/Debug/TinyVirtuoso/database/virtuoso.ini similarity index 100% rename from Trinity.Tests/Net35/TinyVirtuoso/database/virtuoso.ini rename to tests/Trinity.Tests.Virtuoso/bin/Debug/TinyVirtuoso/database/virtuoso.ini diff --git a/Trinity.Tests/Net35/app.config b/tests/Trinity.Tests.Virtuoso/bin/Debug/Trinity.Tests.Virtuoso.exe.config similarity index 98% rename from Trinity.Tests/Net35/app.config rename to tests/Trinity.Tests.Virtuoso/bin/Debug/Trinity.Tests.Virtuoso.exe.config index 6a6c40b..a6a2b7f 100644 --- a/Trinity.Tests/Net35/app.config +++ b/tests/Trinity.Tests.Virtuoso/bin/Debug/Trinity.Tests.Virtuoso.exe.config @@ -1,2 +1,2 @@ - + \ No newline at end of file diff --git a/tests/Trinity.Tests.Virtuoso/bin/Debug/custom.config b/tests/Trinity.Tests.Virtuoso/bin/Debug/custom.config new file mode 100644 index 0000000..3261e54 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Debug/custom.config @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/Trinity.Tests.Virtuoso/bin/Debug/net472/Models/rdf-schema.rdf b/tests/Trinity.Tests.Virtuoso/bin/Debug/net472/Models/rdf-schema.rdf new file mode 100644 index 0000000..bf17bab --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Debug/net472/Models/rdf-schema.rdf @@ -0,0 +1,130 @@ + + + + + + + Resource + The class resource, everything. + + + + + Class + The class of classes. + + + + + + subClassOf + The subject is a subclass of a class. + + + + + + + subPropertyOf + The subject is a subproperty of a property. + + + + + + + comment + A description of the subject resource. + + + + + + + label + A human-readable name for the subject. + + + + + + + domain + A domain of the subject property. + + + + + + + range + A range of the subject property. + + + + + + + seeAlso + Further information about the subject resource. + + + + + + + + isDefinedBy + The defininition of the subject resource. + + + + + + + Literal + The class of literal values, eg. textual strings and integers. + + + + + + Container + + The class of RDF containers. + + + + + ContainerMembershipProperty + The class of container membership properties, rdf:_1, rdf:_2, ..., + all of which are sub-properties of 'member'. + + + + + + member + A member of the subject resource. + + + + + + + Datatype + The class of RDF datatypes. + + + + + + + + diff --git a/tests/Trinity.Tests.Virtuoso/bin/Debug/net472/Models/rdf-syntax.rdf b/tests/Trinity.Tests.Virtuoso/bin/Debug/net472/Models/rdf-syntax.rdf new file mode 100644 index 0000000..a6815ec --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Debug/net472/Models/rdf-syntax.rdf @@ -0,0 +1,156 @@ + + + + The RDF Concepts Vocabulary (RDF) + This is the RDF Schema for the RDF vocabulary terms in the RDF Namespace, defined in RDF 1.1 Concepts. + + + + + + + HTML + The datatype of RDF literals storing fragments of HTML content + + + + + + + langString + The datatype of language-tagged string values + + + + + + + PlainLiteral + The class of plain (i.e. untyped) literal values, as used in RIF and OWL 2 + + + + + + type + The subject is an instance of a class. + + + + + + + Property + The class of RDF properties. + + + + + + Statement + + The class of RDF statements. + + + + + subject + The subject of the subject RDF statement. + + + + + + + predicate + The predicate of the subject RDF statement. + + + + + + + object + The object of the subject RDF statement. + + + + + + + Bag + The class of unordered containers. + + + + + + Seq + The class of ordered containers. + + + + + + Alt + The class of containers of alternatives. + + + + + + value + Idiomatic property used for structured values. + + + + + + + + + List + The class of RDF Lists. + + + + + + nil + The empty list, with no items in it. If the rest of a list is nil then the list has no more items in it. + + + + + first + The first item in the subject RDF list. + + + + + + + rest + The rest of the subject RDF list after the first item. + + + + + + + + XMLLiteral + The datatype of XML literal values. + + + + + + + + diff --git a/tests/Trinity.Tests.Virtuoso/bin/Debug/net472/Models/test-ntriples.nt b/tests/Trinity.Tests.Virtuoso/bin/Debug/net472/Models/test-ntriples.nt new file mode 100644 index 0000000..91b4988 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Debug/net472/Models/test-ntriples.nt @@ -0,0 +1,79 @@ +# +# Copyright World Wide Web Consortium, (Massachusetts Institute of +# Technology, Institut National de Recherche en Informatique et en +# Automatique, Keio University). +# +# All Rights Reserved. +# +# Please see the full Copyright clause at +# +# +# Test file with a variety of legal N-Triples +# +# Dave Beckett - http://purl.org/net/dajobe/ +# +# $Id: test.nt,v 1.7 2003/10/06 15:52:19 dbeckett2 Exp $ +# +##################################################################### + +# comment lines + # comment line after whitespace +# empty blank line, then one with spaces and tabs + + + . +_:anon . + _:anon . +# spaces and tabs throughout: + . + +# line ending with CR NL (ASCII 13, ASCII 10) + . + +# 2 statement lines separated by single CR (ASCII 10) + . + . + + +# All literal escapes + "simple literal" . + "backslash:\\" . + "dquote:\"" . + "newline:\n" . + "return\r" . + "tab:\t" . + +# Space is optional before final . + . + "x". + _:anon. + +# \u and \U escapes +# latin small letter e with acute symbol \u00E9 - 3 UTF-8 bytes #xC3 #A9 + "\u00E9" . +# Euro symbol \u20ac - 3 UTF-8 bytes #xE2 #x82 #xAC + "\u20AC" . +# resource18 test removed +# resource19 test removed +# resource20 test removed + +# XML Literals as Datatyped Literals + ""^^ . + " "^^ . + "x"^^ . + "\""^^ . + ""^^ . + "a "^^ . + "a c"^^ . + "a\n\nc"^^ . + "chat"^^ . +# resource28 test removed 2003-08-03 +# resource29 test removed 2003-08-03 + +# Plain literals with languages + "chat"@fr . + "chat"@en . + +# Typed Literals + "abc"^^ . +# resource33 test removed 2003-08-03 diff --git a/tests/Trinity.Tests.Virtuoso/bin/Debug/net472/Models/test-ppo.rdf b/tests/Trinity.Tests.Virtuoso/bin/Debug/net472/Models/test-ppo.rdf new file mode 100644 index 0000000..a4dcaf0 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Debug/net472/Models/test-ppo.rdf @@ -0,0 +1,102 @@ + + + + + + + + + + + Documents + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ddMMYYYY + MMddYYYY + + + + + + hhmmss + + + + + {Wahr,Falsch} + {True,False} + + + \ No newline at end of file diff --git a/tests/Trinity.Tests.Virtuoso/bin/Debug/net472/Models/test-tmo.trig b/tests/Trinity.Tests.Virtuoso/bin/Debug/net472/Models/test-tmo.trig new file mode 100644 index 0000000..c368bb9 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Debug/net472/Models/test-tmo.trig @@ -0,0 +1,1145 @@ +# +# Copyright (c) 2007 NEPOMUK Consortium +# All rights reserved, licensed under either CC-BY or BSD. +# +# You are free: +# * to Share - to copy, distribute and transmit the work +# * to Remix - to adapt the work +# Under the following conditions: +# * Attribution - You must attribute the work in the manner specified by the author +# or licensor (but not in any way that suggests that they endorse you or your use +# of the work). +# +# Redistribution and use in source and binary forms, with or without modification, +# are permitted provided that the following conditions are met: +# * Redistributions of source code must retain the above copyright notice, this +# list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this +# list of conditions and the following disclaimer in the documentation and/or +# other materials provided with the distribution. +# * Neither the names of the authors nor the names of contributors may +# be used to endorse or promote products derived from this ontology without +# specific prior written permission. +# +# THIS ONTOLOGY IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +# THIS ONTOLOGY, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +@prefix dc: . +@prefix exif: . +@prefix geo: . +@prefix protege: . +@prefix nao: . +@prefix nfo: . +@prefix nie: . +@prefix ncal: . +@prefix nco: . +@prefix dcterms: . +@prefix rdfs: . +@prefix pimo: . +@prefix nmo: . +@prefix nrl: . +@prefix tmo: . +@prefix xsd: . +@prefix rdf: . +@prefix nid3: . +@prefix nexif: . + +tmo: {tmo:TMO_Instance_PersonInvolvementRole_Creator + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Creator" . + + tmo:abilityCarrierRole + a rdf:Property ; + rdfs:domain tmo:AbilityCarrierInvolvement ; + rdfs:label "abilityCarrierRole" ; + rdfs:range tmo:AbilityCarrierRole ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:PersonInvolvement + a rdfs:Class ; + rdfs:comment "PersonInvolvement realizes n-ary associations to Persons which are realtedd to an task. The involvement is further characterized by an PersonTaskRole." ; + rdfs:label "PersonInvolvement" ; + rdfs:subClassOf rdfs:Resource , pimo:Association . + + tmo:TMO_Instance_TaskState_Running + a tmo:TaskState ; + rdfs:label "TMO_Instance_TaskState_Running" . + + tmo:SimilarityDependence + a rdfs:Class ; + rdfs:label "SimilarityDependence" ; + rdfs:subClassOf tmo:UndirectedDependency . + + tmo:PredecessorDependency + a rdfs:Class ; + rdfs:comment "In a PredecessorDependency the dependencyMemberA is the task which is to be executed before dependencyMemberB." ; + rdfs:label "PredecessorDependency" ; + rdfs:subClassOf tmo:PredecessorSuccessorDependency . + + tmo:TMO_Instance_TaskContainer_outbox + a tmo:TaskContainer ; + rdfs:label "TMO_Instance_TaskContainer_outbox" . + + tmo:dueDate + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "dueDate" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf pimo:taskDueTime , tmo:dateTime ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_Urgency_04 + a tmo:Urgency ; + rdfs:label "TMO_Instance_Urgency_04" . + + tmo:Priority + a rdfs:Class ; + rdfs:label "Priority" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:TaskContainer + a rdfs:Class ; + rdfs:label "TaskContainer" ; + rdfs:subClassOf pimo:Collection . + + tmo:Task + a rdfs:Class ; + rdfs:comment "The tmo:task is the central entitiey of the tmo. Task can range from vague things to be possibly done in e distant future to concrete things to be done in a precise forseeable manner. It is not unrealisitc to assume that knowledge worker have hundred or more tasks a day." ; + rdfs:label "Task" ; + rdfs:subClassOf pimo:Task . + + tmo:PersonInvolvementRole + a rdfs:Class ; + rdfs:comment """They further specify the type a person was related to an task. +Examples instances of AttachmentRoles are e.g.""" ; + rdfs:label "PersonInvolvementRole" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:actualCompletion + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "actualCompletion" ; + rdfs:range rdfs:Literal ; + rdfs:subPropertyOf tmo:progress ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_PersonInvolvementRole_Co-worker + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Co-worker" . + + tmo:urgency + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "urgency" ; + rdfs:range tmo:Urgency ; + rdfs:subPropertyOf tmo:timemanagement ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_TaskContainer_archive + a tmo:TaskContainer ; + rdfs:label "TMO_Instance_TaskContainer_archive" . + + tmo:dependency + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "dependency" ; + rdfs:range tmo:TaskDependency . + + tmo:TMO_Instance_Importance_10 + a tmo:Importance ; + rdfs:label "TMO_Instance_Importance_10" . + + tmo:targetStartTime + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "targetStartTime" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:targetTime , tmo:startTime ; + nrl:maxCardinality "1" . + + tmo:dependencyDescription + a rdf:Property ; + rdfs:comment "Endusers can clarify why they created a depedency." ; + rdfs:domain tmo:TaskDependency ; + rdfs:label "dependencyDescription" ; + rdfs:subPropertyOf nao:description ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_Importance_09 + a tmo:Importance ; + rdfs:label "TMO_Instance_Importance_09" . + + tmo:transmissionState + a rdf:Property ; + rdfs:domain tmo:TaskTransmission ; + rdfs:label "transmissionState" ; + rdfs:range tmo:TransmissionState ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:AbilityCarrierRole + a rdfs:Class ; + rdfs:comment "Examples instances of AbilityCarrirRoles are e.g. \"requested\", \"required\" and \"used\" which further specify the type a person was involved in." ; + rdfs:label "AbilityCarrierRole" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:TMO_Instance_TaskState_Finalized + a tmo:TaskState ; + rdfs:label "TMO_Instance_TaskState_Finalized" . + + tmo:abilityCarrier + a rdf:Property ; + rdfs:domain tmo:AbilityCarrierInvolvement ; + rdfs:label "abilityCarrier" ; + rdfs:range tmo:AbilityCarrier ; + rdfs:subPropertyOf pimo:associationMember ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:TMO_Instance_TransmissionState_Rejected_Transmitted + a tmo:TransmissionState ; + rdfs:label "TMO_Instance_TransmissionState_Rejected_Transmitted" . + + tmo:TMO_Instance_Delegability_High + a tmo:Delegability ; + rdfs:label "TMO_Instance_Delegability_High" . + + tmo:TMO_Instance_Urgency_10 + a tmo:Urgency ; + rdfs:label "TMO_Instance_Urgency_10" . + + tmo:taskId + a rdf:Property ; + rdfs:comment """The Task Identifier allows a unique identification of a task object within the range of all Nepomuk objects. +The Task Identifier is automatically generated during the creation of a task. The generation of identifiers (IDs) is a Nepomuk architecture issue (Wp2000/WP6000).""" ; + rdfs:domain tmo:Task ; + rdfs:label "taskId" ; + rdfs:range rdfs:Literal ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:TMO_Instance_Importance_01 + a tmo:Importance ; + rdfs:label "TMO_Instance_Importance_01" . + + tmo:TMO_Instance_TransmissionType_Transfer + a tmo:TransmissionType ; + rdfs:label "TMO_Instance_TransmissionType_Transfer" . + + tmo:priority + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "priority" ; + rdfs:range tmo:Priority ; + rdfs:subPropertyOf tmo:timemanagement ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_Urgency_03 + a tmo:Urgency ; + rdfs:label "TMO_Instance_Urgency_03" . + + tmo:involvedPersons + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "involvedPersons" ; + rdfs:range tmo:PersonInvolvement ; + nrl:inverseProperty tmo:involvedPersonTask . + + tmo:involvedPerson + a rdf:Property ; + rdfs:domain tmo:PersonInvolvement ; + rdfs:label "involvedPerson" ; + rdfs:range pimo:Person ; + rdfs:subPropertyOf pimo:associationMember ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:TaskTransmission + a rdfs:Class ; + rdfs:comment """On the SSD, tasks are not restricted to one person and may cross from +the PTM of one person to the PTM of another. With transmission, we +refer to the process of sending a task – from one person (sender) to one +or more other persons (receiver(s)) (see Section 5.2.1.3 Task +Transmission). Task delegation and task transfer are two special kinds of +task transmission which are described at the end of this section. In +addition, the collaborative task is realized by task transmission. +For the process of sending a task, some information is required. This +information is also modelled in the task ontology. This information is still +useful after the process of sending a task was completed. Task Delegation is a process where the sender of the task restricts the +access rights of the receiver. This includes the right to distribute further +this task and additionally the obligation to give feedback to the sender. +The person that receives a task by delegation usually has not the full +control about the task. The attributes described in the following section +have the purpose to enable such \"access rights\". The receiver will also +probably have obligations regarding what to report to whom at which +time. +In contrast, the simplest case is that all rights are granted to the receiver +and there is no feedback desired by the sender. What to do with the task +may be apparent by the organization context, or it may be left to the +receiver. This is like sending an email – but with the advantage that the +information is transferred in the \"task space\" of the participating persons.""" ; + rdfs:label "TaskTransmission" ; + rdfs:subClassOf rdfs:Resource . + + tmo:containsTask + a rdf:Property ; + rdfs:domain tmo:TaskContainer ; + rdfs:label "containsTask" ; + rdfs:range tmo:Task ; + rdfs:subPropertyOf pimo:hasPart . + + tmo:TMO_Instance_PersonInvolvementRole_Suggested + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Suggested" . + + tmo:TMO_Instance_TaskState_Archived + a tmo:TaskState ; + rdfs:label "TMO_Instance_TaskState_Archived" . + + tmo:targetTime + a rdf:Property ; + rdfs:label "targetTime" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:dateTime ; + nrl:maxCardinality "1" . + + tmo:indexPosition + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "indexPosition" ; + rdfs:range rdfs:Literal ; + nrl:maxCardinality "1" . + + tmo:dependencyType + a rdf:Property ; + rdfs:label "dependencyType" ; + rdfs:range rdfs:Resource ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:targetEndTime + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "targetEndTime" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:targetTime , tmo:endTime ; + nrl:maxCardinality "1" . + + tmo:PredecessorSuccessorDependency + a rdfs:Class ; + rdfs:comment "The PredecessorSuccessorDependency enables a directed relation between task. By means of the concrete sublcasses one can further distinguish from which point of view this relation is created." ; + rdfs:label "PredecessorSuccessorDependency" ; + rdfs:subClassOf tmo:TaskDependency ; + protege:role "abstract" . + + tmo:TMO_Instance_Importance_08 + a tmo:Importance ; + rdfs:label "TMO_Instance_Importance_08" . + + tmo:attachmentReference + a rdf:Property ; + rdfs:domain tmo:Attachment ; + rdfs:label "attachmentReference" ; + rdfs:range rdfs:Resource ; + rdfs:subPropertyOf pimo:associationMember ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:TMO_Instance_Delegability_Never + a tmo:Delegability ; + rdfs:label "TMO_Instance_Delegability_Never" . + + tmo:superTask + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "superTask" ; + rdfs:range tmo:Task ; + rdfs:subPropertyOf pimo:partOf , tmo:taskReference ; + nrl:inverseProperty tmo:subTask ; + nrl:maxCardinality "1" . + + tmo:taskDescription + a rdf:Property ; + rdfs:comment """The task description helps users to understand the goal and the proceeding of a task. It can also describe the context of a task. The task description is composed at minimum of a summary of what is done to reach the goal. The task description is the main source for identifying related information, e.g., suitable patterns. +A Task Description can be either an informal, described textual content (?TextualDescription) or it can be a more formally structured representation (àFormalDescription). +Technology considerations: Informal descriptions allow for text similarity processing, a formal description allows for applying case based similarity measures.""" ; + rdfs:domain tmo:Task ; + rdfs:label "taskDescription" ; + rdfs:subPropertyOf nao:description ; + nrl:maxCardinality "1" . + + tmo:SuperSubTaskDependency + a rdfs:Class ; + rdfs:comment "By means of the SuperSubTaskDependency one can further describe the subtask-supertask relation .e.g by an descriptin. This enables an n-ary relation between subtask and supertask." ; + rdfs:label "SuperSubTaskDependency" ; + rdfs:subClassOf tmo:TaskDependency . + + tmo:contextTask + a rdf:Property ; + rdfs:label "contextTask" ; + rdfs:range tmo:Task ; + nrl:inverseProperty tmo:contextThread ; + nrl:maxCardinality "1" . + + tmo:SuccessorDependency + a rdfs:Class ; + rdfs:comment "In a SuccessorrDependency the dependencyMemberA is the task which is to be executed after dependencyMemberB." ; + rdfs:label "SuccessorDependency" ; + rdfs:subClassOf tmo:PredecessorSuccessorDependency . + + tmo:stateTypeRole + a rdf:Property ; + rdfs:label "stateTypeRole" ; + rdfs:range rdfs:Resource ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_TransmissionState_NotTransmitted + a tmo:TransmissionState ; + rdfs:label "TMO_Instance_TransmissionState_NotTransmitted" . + + tmo:TMO_Instance_Urgency_06 + a tmo:Urgency ; + rdfs:label "TMO_Instance_Urgency_06" . + + tmo:abilityCarrierInvolvement + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "abilityCarrierInvolvement" ; + rdfs:range tmo:AbilityCarrierInvolvement ; + nrl:inverseProperty tmo:abilityCarrierTask . + + tmo:TMO_Instance_AbilityCarrierRole_Required + a tmo:AbilityCarrierRole ; + rdfs:label "TMO_Instance_AbilityCarrierRole_Required" . + + tmo:actualStartTime + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "actualStartTime" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:actualTime , tmo:startTime ; + nrl:maxCardinality "1" . + + tmo:transmissionType + a rdf:Property ; + rdfs:domain tmo:TaskTransmission ; + rdfs:label "transmissionType" ; + rdfs:range tmo:TransmissionType ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:taskTransmission + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "taskTransmission" ; + rdfs:range tmo:TaskTransmission ; + nrl:inverseProperty tmo:transmissionTask . + + tmo:TMO_Instance_PersonInvolvementRole_Executor + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Executor" . + + tmo:targetCompletion + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "targetCompletion" ; + rdfs:range rdfs:Literal ; + rdfs:subPropertyOf tmo:progress ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_Delegability_Medium + a tmo:Delegability ; + rdfs:label "TMO_Instance_Delegability_Medium" . + + tmo:AgentAbilityCarrier + a rdfs:Class ; + rdfs:label "AgentAbilityCarrier" ; + rdfs:subClassOf tmo:AbilityCarrier ; + protege:role "abstract" . + + tmo:transmissionTask + a rdf:Property ; + rdfs:domain tmo:TaskTransmission ; + rdfs:label "transmissionTask" ; + rdfs:range tmo:Task ; + rdfs:subPropertyOf tmo:taskReference ; + nrl:inverseProperty tmo:taskTransmission ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:Attachment + a rdfs:Class ; + rdfs:comment "By means of attachments, references to other resources can be established. Resources are information objects. Every Thing, which can be referenced, on the SSD is an information object. In contrast to the usual SSD references/associations, here additionally information can be specified. Further metadata about the role an attachment plays can be stated by means of instances of AttachmentRole. It can be expressed what the Role of attachment is e.g., regarding \"desired/requested\" or \"required\" or \"potentially useful / somehow related\" or \"used/produced/achieved\". The reference property models the actual link to the attached piece of information." ; + rdfs:label "Attachment" ; + rdfs:subClassOf rdfs:Resource , pimo:Association . + + tmo:TMO_Instance_TaskPrivacy_Private + a tmo:TaskPrivacyState ; + rdfs:label "TMO_Instance_TaskPrivacy_Private" . + + tmo:TMO_Instance_Importance_07 + a tmo:Importance ; + rdfs:label "TMO_Instance_Importance_07" . + + tmo:AssociationDependency + a rdfs:Class ; + rdfs:label "AssociationDependency" ; + rdfs:subClassOf tmo:UndirectedDependency . + + tmo:nextReviewIntervall + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "nextReviewIntervall" ; + rdfs:range xsd:integer ; + nrl:maxCardinality "1" . + + tmo:transmissionFrom + a rdf:Property ; + rdfs:domain tmo:TaskTransmission ; + rdfs:label "transmissionFrom" ; + rdfs:range pimo:Person ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:taskState + a rdf:Property ; + rdfs:comment "The task state describes the current state of the task as described in Section 5.2.7." ; + rdfs:domain tmo:Task ; + rdfs:label "taskState" ; + rdfs:range tmo:TaskState ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:delegability + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "delegability" ; + rdfs:range tmo:Delegability ; + rdfs:subPropertyOf tmo:timemanagement ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_PersonInvolvementRole_Related + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Related" . + + tmo:TMO_Instance_TaskContainer_inbox + a tmo:TaskContainer ; + rdfs:label "TMO_Instance_TaskContainer_inbox" . + + tmo:TMO_Instance_AttachmentRole_Required + a tmo:AttachmentRole ; + rdfs:label "TMO_Instance_AttachmentRole_Required" . + + tmo:taskPrivacyState + a rdf:Property ; + rdfs:comment """For the separation between professional and private purpose of a task, this attribute provides with the values \"professional/private\" a high level separation of privacy in terms of setting distribution rights to other users for the task. +This separation may arise as a general Nepomuk issue and may therefore be handled in conjunction with a privacy preserving SSD architecture.""" ; + rdfs:domain tmo:Task ; + rdfs:label "taskPrivacyState" ; + rdfs:range tmo:TaskPrivacyState ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" . + + tmo:taskName + a rdf:Property ; + rdfs:comment "The Task Name helps the user to identify a task in a list. It should be expressive enough to give a meaningful recognition. Details should be written in the description attribute instead. A name attribute is not allowed to contain line breaks." ; + rdfs:domain tmo:Task ; + rdfs:label "taskName" ; + rdfs:range rdfs:Literal ; + rdfs:subPropertyOf nao:prefLabel ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_AbilityCarrierRole_Requested + a tmo:AbilityCarrierRole ; + rdfs:label "TMO_Instance_AbilityCarrierRole_Requested" . + + tmo:TMO_Instance_PersonInvolvementRole_Controller + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Controller" . + + tmo:TMO_Instance_PersonInvolvementRole_Delegate + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Delegate" . + + tmo:transmissionStateChangesFrom + a rdf:Property ; + rdfs:domain tmo:TransmissionState ; + rdfs:label "transmissionStateChangesFrom" ; + rdfs:range tmo:TransmissionState ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" . + + tmo:TransmissionState + a rdfs:Class ; + rdfs:comment "States a task can go through during transmission of an task." ; + rdfs:label "TransmissionState" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:transmissionStateChangesTo + a rdf:Property ; + rdfs:domain tmo:TransmissionState ; + rdfs:label "transmissionStateChangesTo" ; + rdfs:range tmo:TransmissionState ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_PersonInvolvementRole_ExternalObserver + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_ExternalObserver" . + + tmo:TMO_Instance_Urgency_05 + a tmo:Urgency ; + rdfs:label "TMO_Instance_Urgency_05" . + + tmo:TaskDependency + a rdfs:Class ; + rdfs:comment """Between the tasks, further dependencies may exist. These dependencies allow for a graph network structure. For ease of use, dependencies should not be too frequent, otherwise the primarily character of a hierarchy would be diminished and a consequent graph representation would become considerable. However, such a graph representation has other drawbacks, the user is likely to loose oversight, tree structures are more helpful in structuring the work. + +A dependency relation is characterized by the type of the relation and by an additional description. There are different possibilities for dependency relations between tasks.""" ; + rdfs:label "TaskDependency" ; + rdfs:subClassOf rdfs:Resource , pimo:Association ; + protege:role "abstract" . + + tmo:TMO_Instance_TaskState_Completed + a tmo:TaskState ; + rdfs:label "TMO_Instance_TaskState_Completed" . + + tmo:TMO_Instance_Importance_06 + a tmo:Importance ; + rdfs:label "TMO_Instance_Importance_06" . + + tmo:attachmentRole + a rdf:Property ; + rdfs:domain tmo:Attachment ; + rdfs:label "attachmentRole" ; + rdfs:range tmo:AttachmentRole ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_TaskPrivacy_Professional + a tmo:TaskPrivacyState ; + rdfs:label "TMO_Instance_TaskPrivacy_Professional" . + + tmo:TMO_Instance_TaskState_Terminated + a tmo:TaskState ; + rdfs:label "TMO_Instance_TaskState_Terminated" . + + tmo:TMO_Instance_PersonInvolvementRole_Owner + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Owner" . + + tmo:TMO_Instance_AttachmentRole_Desired_Requested + a tmo:AttachmentRole ; + rdfs:label "TMO_Instance_AttachmentRole_Desired_Requested" . + + tmo:involvedPersonTask + a rdf:Property ; + rdfs:domain tmo:PersonInvolvement ; + rdfs:label "involvedPersonTask" ; + rdfs:range tmo:Task ; + rdfs:subPropertyOf pimo:associationMember ; + nrl:inverseProperty tmo:involvedPersons ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_TransmissionState_Accepted_NotTransmitted + a tmo:TransmissionState ; + rdfs:label "TMO_Instance_TransmissionState_Accepted_NotTransmitted" . + + tmo:TMO_Instance_PersonInvolvementRole_Analyst + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Analyst" . + + tmo:logEntry + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "logEntry" ; + rdfs:range rdfs:Resource . + + tmo:transmissionTo + a rdf:Property ; + rdfs:domain tmo:TaskTransmission ; + rdfs:label "transmissionTo" ; + rdfs:range pimo:Person ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:Importance + a rdfs:Class ; + rdfs:label "Importance" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:TMO_Instance_TransmissionType_Join + a tmo:TransmissionType ; + rdfs:label "TMO_Instance_TransmissionType_Join" . + + tmo:Delegability + a rdfs:Class ; + rdfs:label "Delegability" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:lastReviewDate + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "lastReviewDate" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:dateTime ; + nrl:maxCardinality "1" . + + tmo:Role + a rdfs:Class ; + rdfs:comment "examples: Architect, Developer, ..." ; + rdfs:label "Role" ; + rdfs:subClassOf tmo:AbilityCarrier . + + tmo:timemanagement + a rdf:Property ; + rdfs:label "timemanagement" ; + rdfs:range rdfs:Literal ; + nrl:maxCardinality "1" . + + tmo:taskGoal + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "taskGoal" ; + rdfs:range rdfs:Resource . + + tmo:dependencyMemberA + a rdf:Property ; + rdfs:comment "The semantic of this relation is defined in the sublclass of undirected Dependency on which this property is stated. (The subject of the statment where this property is expressed)" ; + rdfs:domain tmo:TaskDependency ; + rdfs:label "dependencyMemberA" ; + rdfs:range tmo:Task ; + rdfs:subPropertyOf tmo:taskReference , pimo:associationMember ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:startTime + a rdf:Property ; + rdfs:label "startTime" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:dateTime ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_Urgency_08 + a tmo:Urgency ; + rdfs:label "TMO_Instance_Urgency_08" . + + tmo:taskStateChangesFrom + a rdf:Property ; + rdfs:domain tmo:TaskState ; + rdfs:label "taskStateChangesFrom" ; + rdfs:range tmo:TaskState ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" . + + tmo:receiveDateTime + a rdf:Property ; + rdfs:domain tmo:TaskTransmission ; + rdfs:label "receiveDateTime" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:dateTime ; + nrl:maxCardinality "1" . + + tmo:createdBy + a rdf:Property ; + rdfs:domain tmo:Attachment ; + rdfs:label "createdBy" ; + rdfs:range pimo:Person ; + nrl:maxCardinality "1" . + + tmo:progress + a rdf:Property ; + rdfs:label "progress" ; + rdfs:range rdfs:Literal ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_AbilityCarrierRole_Used + a tmo:AbilityCarrierRole ; + rdfs:label "TMO_Instance_AbilityCarrierRole_Used" . + + tmo:TMO_Instance_Importance_05 + a tmo:Importance ; + rdfs:label "TMO_Instance_Importance_05" . + + tmo:TMO_Instance_TaskContainer_activetasks + a tmo:TaskContainer ; + rdfs:label "TMO_Instance_TaskContainer_activetasks" . + + tmo:sendDateTime + a rdf:Property ; + rdfs:domain tmo:TaskTransmission ; + rdfs:label "sendDateTime" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:dateTime ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_PersonInvolvementRole_Collaborator + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Collaborator" . + + tmo:TMO_Instance_TaskState_Suspended + a tmo:TaskState ; + rdfs:label "TMO_Instance_TaskState_Suspended" . + + tmo:AbilityCarrierInvolvement + a rdfs:Class ; + rdfs:comment "The class AbilityCarrier_Involvement ties together an AbilityCarrier with an AbilityCarrier_Role. This is a role based modelling approach. An n-ary relation is realized." ; + rdfs:label "AbilityCarrierInvolvement" ; + rdfs:subClassOf rdfs:Resource , pimo:Association . + + tmo:endTime + a rdf:Property ; + rdfs:label "endTime" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:dateTime ; + nrl:maxCardinality "1" . + + tmo:dependencyMemberB + a rdf:Property ; + rdfs:comment "The semantic of this relation is defined in the sublclass of undirected Dependency on which this property is stated. (The subject of the statment where this property is expressed)" ; + rdfs:domain tmo:TaskDependency ; + rdfs:label "dependencyMemberB" ; + rdfs:range tmo:Task ; + rdfs:subPropertyOf tmo:taskReference , pimo:associationMember ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:TMO_Instance_Priority_High + a tmo:Priority ; + rdfs:label "TMO_Instance_Priority_High" . + + tmo:TMO_Instance_PersonInvolvementRole_Observer + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Observer" . + + tmo:TMO_Instance_Delegability_Unrestricted + a tmo:Delegability ; + rdfs:label "TMO_Instance_Delegability_Unrestricted" . + + tmo:TMO_Instance_Priority_Medium + a tmo:Priority ; + rdfs:label "TMO_Instance_Priority_Medium" . + + tmo:TMO_Instance_Delegability_Low + a tmo:Delegability ; + rdfs:label "TMO_Instance_Delegability_Low" . + + tmo:Interdependence + a rdfs:Class ; + rdfs:label "Interdependence" ; + rdfs:subClassOf tmo:UndirectedDependency . + + tmo:involvedPersonRole + a rdf:Property ; + rdfs:domain tmo:PersonInvolvement ; + rdfs:label "involvedPersonRole" ; + rdfs:range tmo:PersonInvolvementRole ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:AttachmentRole + a rdfs:Class ; + rdfs:comment "AttachmentRoles further specify the type of how an attachment relates to a task. Example instances of AttachmentRoles are e.g. \"desired_request\", \"required\" and \"used\"." ; + rdfs:label "AttachmentRole" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:TMO_Instance_Urgency_07 + a tmo:Urgency ; + rdfs:label "TMO_Instance_Urgency_07" . + + tmo:TMO_Instance_PersonInvolvementRole_Reviewer + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Reviewer" . + + tmo:TransmissionType + a rdfs:Class ; + rdfs:comment "By means of the TransmissionType one can distinguish several different types which might imply a different business logic. e.g. delegation can mean that the results of the task fulfillment care to be reported back to the sender of the task." ; + rdfs:label "TransmissionType" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:actualEndTime + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "actualEndTime" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:endTime , tmo:actualTime ; + nrl:maxCardinality "1" . + + tmo:subTask + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "subTask" ; + rdfs:range tmo:Task ; + rdfs:subPropertyOf pimo:hasPart ; + nrl:inverseProperty tmo:superTask . + + tmo:TMO_Instance_TransmissionType_Delegation + a tmo:TransmissionType ; + rdfs:label "TMO_Instance_TransmissionType_Delegation" . + + tmo:TMO_Instance_Importance_04 + a tmo:Importance ; + rdfs:label "TMO_Instance_Importance_04" . + + tmo:TaskState + a rdfs:Class ; + rdfs:comment """The task state property allows tracking a task during its lifecycle. Initially the state is just \"created\". +The TaskState class was modeled so that for each state can be set which the typical prior and posterior states are. This has the advantage that e.g. a UI can retrieve the allowed states at runtime from the ontology; rather can having this potentially changing knowledge hard coded. But the prior and posterior states are only defaults; the human user is always free to change the state.""" ; + rdfs:label "TaskState" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:taskSource + a rdf:Property ; + rdfs:comment "here can be stated from which sources a task was derived. e.g from another task or from an task pattern" ; + rdfs:domain tmo:Task ; + rdfs:label "taskSource" ; + rdfs:range rdfs:Resource ; + rdfs:subPropertyOf tmo:taskReference ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_Urgency_02 + a tmo:Urgency ; + rdfs:label "TMO_Instance_Urgency_02" . + + tmo:TMO_Instance_TransmissionState_Accepted_Transmitted + a tmo:TransmissionState ; + rdfs:label "TMO_Instance_TransmissionState_Accepted_Transmitted" . + + tmo:TMO_Instance_TaskState_New + a tmo:TaskState ; + rdfs:label "TMO_Instance_TaskState_New" . + + tmo:Urgency + a rdfs:Class ; + rdfs:label "Urgency" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:StateTypeRole + a rdfs:Class ; + rdfs:comment "StateTypeRole is an abstract class which subsumes various other classes which represent \"states\" or roles e.g. in role based modelling conpetualisations." ; + rdfs:label "StateTypeRole" ; + rdfs:subClassOf rdfs:Resource . + + tmo:TMO_Instance_TaskContainer_trashtasks + a tmo:TaskContainer ; + rdfs:label "TMO_Instance_TaskContainer_trashtasks" . + + tmo:contextThread + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "contextThread" ; + rdfs:range ; + nrl:inverseProperty tmo:contextTask ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_AttachmentRole_Used + a tmo:AttachmentRole ; + rdfs:label "TMO_Instance_AttachmentRole_Used" . + + tmo:abilityCarrierTask + a rdf:Property ; + rdfs:domain tmo:AbilityCarrierInvolvement ; + rdfs:label "abilityCarrierTask" ; + rdfs:range tmo:Task ; + rdfs:subPropertyOf pimo:associationMember ; + nrl:inverseProperty tmo:abilityCarrierInvolvement ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_TransmissionState_Rejected_NotTransmitted + a tmo:TransmissionState ; + rdfs:label "TMO_Instance_TransmissionState_Rejected_NotTransmitted" . + + tmo:TMO_Instance_Priority_Low + a tmo:Priority ; + rdfs:label "TMO_Instance_Priority_Low" . + + tmo:TMO_Instance_TransmissionState_Transmitted + a tmo:TransmissionState ; + rdfs:label "TMO_Instance_TransmissionState_Transmitted" . + + tmo:TMO_Instance_Importance_03 + a tmo:Importance ; + rdfs:label "TMO_Instance_Importance_03" . + + tmo:TMO_Instance_AttachmentRole_Related + a tmo:AttachmentRole ; + rdfs:label "TMO_Instance_AttachmentRole_Related" . + + tmo:taskReference + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "taskReference" ; + rdfs:range tmo:Task ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_PersonInvolvementRole_Involved + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Involved" . + + tmo:AbilityCarrier + a rdfs:Class ; + rdfs:comment """AbilityCarrier is an abstract class which circumferences all entities which can take action or which are somehow involved in tasks. +This is in other task conceptualizations rather named \"actor\". But here it is named AbilityCarrier because it is not neccessarily \"active\". + +The execution of a task relies on certain abilities. The abstract concept of +Abilitiy_Carriers circumference all those more concrete concepts +of which one can think of while working on tasks. Using this abstract +class enables to substitute such Ability Carrier's in the process of +generating patterns from task instances and vice versa in the process of +instantiating task instances from patterns without violating the schema. +With this attribute, a series of ability carrying entities (Person, Role, +Skill, OrganizationalUnit, InformalDescribedAbility) +and the role of involvement (required, request, used) is enabled. The role +hereby allows specifying how the ability carrying entity is or was +involved.""" ; + rdfs:label "AbilityCarrier" ; + rdfs:subClassOf rdfs:Resource ; + protege:role "abstract" . + + tmo:importance + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "importance" ; + rdfs:range tmo:Importance ; + rdfs:subPropertyOf tmo:timemanagement ; + nrl:maxCardinality "1" . + + tmo:subTaskOrdering + a rdf:Property ; + rdfs:comment "Ordering of the subtasks listed in the tmo:subTasks property of this Task. This is only for ordering/sorting in GUIs, the semantic relation is defined in subTasks, and if this and subTasks differ, subTasks is the correct list." ; + rdfs:domain tmo:Task ; + rdfs:label "subTaskOrdering" ; + rdfs:range rdf:List ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_Urgency_01 + a tmo:Urgency ; + rdfs:label "TMO_Instance_Urgency_01" . + + tmo:dependencyOrderNumber + a rdf:Property ; + rdfs:domain tmo:TaskDependency ; + rdfs:label "dependencyOrderNumber" ; + rdfs:range xsd:int ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:actualTime + a rdf:Property ; + rdfs:label "actualTime" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:dateTime ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_PersonInvolvementRole_Initiator + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Initiator" . + + tmo:dateTime + a rdf:Property ; + rdfs:comment "dateTime subsumes various properties with Range XMLSchema:dateTime. If possible they are further grouped by \"abstract\" properties." ; + rdfs:label "dateTime" ; + rdfs:range xsd:dateTime ; + nrl:maxCardinality "1" . + + tmo:UndirectedDependency + a rdfs:Class ; + rdfs:comment "A symmetric relations between task." ; + rdfs:label "UndirectedDependency" ; + rdfs:subClassOf tmo:TaskDependency . + + tmo:attachment + a rdf:Property ; + rdfs:comment "connects a Task with an Attachment object. Attachments are associations of Things." ; + rdfs:domain tmo:Task ; + rdfs:label "attachment" ; + rdfs:range tmo:Attachment ; + nrl:inverseProperty tmo:attachmentTask . + + tmo:attachmentTask + a rdf:Property ; + rdfs:comment "Inverse of attachment, connects an Attachment Association to the associated Task. Is required for every instance of Attachment." ; + rdfs:domain tmo:Attachment ; + rdfs:label "attachmentTask" ; + rdfs:range tmo:Task ; + rdfs:subPropertyOf pimo:associationMember ; + nrl:inverseProperty tmo:attachment ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_PersonInvolvementRole_Receiver + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Receiver" . + + tmo:TMO_Instance_TaskState_Deleted + a tmo:TaskState ; + rdfs:label "TMO_Instance_TaskState_Deleted" . + + tmo:taskStateChangesTo + a rdf:Property ; + rdfs:domain tmo:TaskState ; + rdfs:label "taskStateChangesTo" ; + rdfs:range tmo:TaskState ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" . + + tmo:TaskPrivacyState + a rdfs:Class ; + rdfs:comment """Privacy Status serves for the separation between a professional and a private purpose of a task. This attribute provides with the values \"professional/private\" a high-level separation of privacy in terms of setting distribution and access +rights to other users for the task. +This separation may arise as a general Nepomuk issue and may therefore be handled in conjunction with a privacy preserving SSD architecture.""" ; + rdfs:label "TaskPrivacyState" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:TMO_Instance_Urgency_09 + a tmo:Urgency ; + rdfs:label "TMO_Instance_Urgency_09" . + + tmo:TMO_Instance_Importance_02 + a tmo:Importance ; + rdfs:label "TMO_Instance_Importance_02" . + + tmo:TMO_Instance_PersonInvolvementRole_InternalObserver + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_InternalObserver" . + + tmo:Skill + a rdfs:Class ; + rdfs:comment "examples are e.g. technologies like Java, XML, ..." ; + rdfs:label "Skill" ; + rdfs:subClassOf tmo:AbilityCarrier . +} + + {tmo: a nrl:Ontology ; + nao:creator ; + nao:hasDefaultNamespace + "http://www.semanticdesktop.org/ontologies/2008/05/20/tmo#" ; + nao:hasDefaultNamespaceAbbreviation + "tmo" ; + nao:lastModified "2009-08-14T10:04:25.546Z" ; + nao:status "Unstable" ; + nao:updatable "0 " ; + nao:version "0.9.0" ; + nao:prefLabel "Task Management Ontology" ; + nao:description "The TMO Ontology can be used to describe personal tasks of individuals, also known as to-do lists. It is based on RDF and NRL, the Nepomuk Representational Language and other Semantic Web ontologies." . + + + a nrl:GraphMetadata ; + nrl:coreGraphMetadataFor + tmo: . +} + diff --git a/tests/Trinity.Tests.Virtuoso/bin/Debug/net472/Models/test-vocab.rdf b/tests/Trinity.Tests.Virtuoso/bin/Debug/net472/Models/test-vocab.rdf new file mode 100644 index 0000000..b295ae6 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Debug/net472/Models/test-vocab.rdf @@ -0,0 +1,39 @@ + + + + + + + Animal + An animal + + + + + Horse + A Horse + + + + + + consumes + Something an animal consumes. + + + + + + consumes + Something an animal consumes. + + + + + diff --git a/tests/Trinity.Tests.Virtuoso/bin/Debug/net472/Ontologies/dces.ttl b/tests/Trinity.Tests.Virtuoso/bin/Debug/net472/Ontologies/dces.ttl new file mode 100644 index 0000000..4510e02 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Debug/net472/Ontologies/dces.ttl @@ -0,0 +1,177 @@ +@prefix rdf: . +@prefix owl: . +@prefix skos: . +@prefix dcam: . +@prefix dcterms: . +@prefix rdfs: . + + + dcterms:modified "2013-01-03"^^ ; + dcterms:publisher ; + dcterms:title "Dublin Core Metadata Element Set, Version 1.1"@en . + + + dcterms:description "Examples of a Contributor include a person, an organization, or a service. Typically, the name of a Contributor should be used to indicate the entity."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "An entity responsible for making contributions to the resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Contributor"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Spatial topic and spatial applicability may be a named place or a location specified by its geographic coordinates. Temporal topic may be a named period, date, or date range. A jurisdiction may be a named administrative entity or a geographic place to which the resource applies. Recommended best practice is to use a controlled vocabulary such as the Thesaurus of Geographic Names [TGN]. Where appropriate, named places or time periods can be used in preference to numeric identifiers such as sets of coordinates or date ranges."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "The spatial or temporal topic of the resource, the spatial applicability of the resource, or the jurisdiction under which the resource is relevant."@en ; + rdfs:isDefinedBy ; + rdfs:label "Coverage"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Examples of a Creator include a person, an organization, or a service. Typically, the name of a Creator should be used to indicate the entity."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "An entity primarily responsible for making the resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Creator"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Date may be used to express temporal information at any level of granularity. Recommended best practice is to use an encoding scheme, such as the W3CDTF profile of ISO 8601 [W3CDTF]."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "A point or period of time associated with an event in the lifecycle of the resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Date"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Description may include but is not limited to: an abstract, a table of contents, a graphical representation, or a free-text account of the resource."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "An account of the resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Description"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Examples of dimensions include size and duration. Recommended best practice is to use a controlled vocabulary such as the list of Internet Media Types [MIME]."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "The file format, physical medium, or dimensions of the resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Format"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Recommended best practice is to identify the resource by means of a string conforming to a formal identification system. "@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "An unambiguous reference to the resource within a given context."@en ; + rdfs:isDefinedBy ; + rdfs:label "Identifier"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Recommended best practice is to use a controlled vocabulary such as RFC 4646 [RFC4646]."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "A language of the resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Language"@en ; + rdfs:seeAlso ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Examples of a Publisher include a person, an organization, or a service. Typically, the name of a Publisher should be used to indicate the entity."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "An entity responsible for making the resource available."@en ; + rdfs:isDefinedBy ; + rdfs:label "Publisher"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Recommended best practice is to identify the related resource by means of a string conforming to a formal identification system. "@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "A related resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Relation"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Typically, rights information includes a statement about various property rights associated with the resource, including intellectual property rights."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "Information about rights held in and over the resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Rights"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "The described resource may be derived from the related resource in whole or in part. Recommended best practice is to identify the related resource by means of a string conforming to a formal identification system."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "A related resource from which the described resource is derived."@en ; + rdfs:isDefinedBy ; + rdfs:label "Source"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Typically, the subject will be represented using keywords, key phrases, or classification codes. Recommended best practice is to use a controlled vocabulary."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2012-06-14"^^ ; + a rdf:Property ; + rdfs:comment "The topic of the resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Subject"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "A name given to the resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Title"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Recommended best practice is to use a controlled vocabulary such as the DCMI Type Vocabulary [DCMITYPE]. To describe the file format, physical medium, or dimensions of the resource, use the Format element."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "The nature or genre of the resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Type"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + diff --git a/tests/Trinity.Tests.Virtuoso/bin/Debug/net472/Ontologies/fo af.rdf b/tests/Trinity.Tests.Virtuoso/bin/Debug/net472/Ontologies/fo af.rdf new file mode 100644 index 0000000..68d0700 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Debug/net472/Ontologies/fo af.rdf @@ -0,0 +1,609 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Label Property + A foaf:LabelProperty is any RDF property with texual values that serve as labels. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/Trinity.Tests.Virtuoso/bin/Debug/net472/Ontologies/foaf.rdf b/tests/Trinity.Tests.Virtuoso/bin/Debug/net472/Ontologies/foaf.rdf new file mode 100644 index 0000000..68d0700 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Debug/net472/Ontologies/foaf.rdf @@ -0,0 +1,609 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Label Property + A foaf:LabelProperty is any RDF property with texual values that serve as labels. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/Trinity.Tests.Virtuoso/bin/Debug/net472/Ontologies/nco.trig b/tests/Trinity.Tests.Virtuoso/bin/Debug/net472/Ontologies/nco.trig new file mode 100644 index 0000000..c7b560c --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Debug/net472/Ontologies/nco.trig @@ -0,0 +1,811 @@ +# +# Copyright (c) 2007 NEPOMUK Consortium +# Copyright (c) 2009-2011 Sebastian Trueg +# +# All rights reserved, licensed under either CC-BY or BSD. +# +# You are free: +# * to Share - to copy, distribute and transmit the work +# * to Remix - to adapt the work +# Under the following conditions: +# * Attribution - You must attribute the work in the manner specified by the author +# or licensor (but not in any way that suggests that they endorse you or your use +# of the work). +# +# Redistribution and use in source and binary forms, with or without modification, +# are permitted provided that the following conditions are met: +# * Redistributions of source code must retain the above copyright notice, this +# list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this +# list of conditions and the following disclaimer in the documentation and/or +# other materials provided with the distribution. +# * Neither the names of the authors nor the names of contributors may +# be used to endorse or promote products derived from this ontology without +# specific prior written permission. +# +# THIS ONTOLOGY IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +# THIS ONTOLOGY, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +@prefix exif: . +@prefix nid3: . +@prefix nrl: . +@prefix nfo: . +@prefix xsd: . +@prefix tmo: . +@prefix protege: . +@prefix nmo: . +@prefix rdfs: . +@prefix nexif: . +@prefix ncal: . +@prefix pimo: . +@prefix dcterms: . +@prefix nao: . +@prefix geo: . +@prefix dc: . +@prefix nie: . +@prefix nco: . +@prefix rdf: . + +nco: {nco:region + a rdf:Property ; + rdfs:comment "Region. Inspired by the fifth part of the value of the 'ADR' property as defined in RFC 2426, sec. 3.2.1" ; + rdfs:domain nco:PostalAddress ; + rdfs:label "region" ; + rdfs:range xsd:string ; + nrl:maxCardinality 1 . + + nco:key + a rdf:Property ; + rdfs:comment "An encryption key attached to a contact. Inspired by the KEY property defined in RFC 2426 sec. 3.7.2" ; + rdfs:domain nco:Contact ; + rdfs:label "key" ; + rdfs:range nie:DataObject ; + rdfs:subPropertyOf nie:hasPart . + + nco:nameHonorificSuffix + a rdf:Property ; + rdfs:comment "A suffix for the name of the Object represented by the given object. See documentation for the 'nameFamily' for details." ; + rdfs:domain nco:PersonContact ; + rdfs:label "nameHonorificSuffix" ; + rdfs:range xsd:string . + + nco:url + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "A uniform resource locator associated with the given role of a Contact. Inspired by the 'URL' property defined in RFC 2426 Sec. 3.6.8." ; + rdfs:domain nco:Role ; + rdfs:label "url" ; + rdfs:range rdfs:Resource . + + nco:VoicePhoneNumber + a rdfs:Class ; + rdfs:comment "A telephone number with voice communication capabilities. Class inspired by the TYPE=voice parameter of the TEL property defined in RFC 2426 sec. 3.3.1" ; + rdfs:label "VoicePhoneNumber" ; + rdfs:subClassOf nco:PhoneNumber . + + nco:nameFamily + a rdf:Property ; + rdfs:comment "The family name of an Object represented by this Contact. These applies to people that have more than one given name. The 'first' one is considered 'the' given name (see nameGiven) property. All additional ones are considered 'additional' names. The name inherited from parents is the 'family name'. e.g. For Dr. John Phil Paul Stevenson Jr. M.D. A.C.P. we have contact with: honorificPrefix: 'Dr.', nameGiven: 'John', nameAdditional: 'Phil', nameAdditional: 'Paul', nameFamily: 'Stevenson', honorificSuffix: 'Jr.', honorificSuffix: 'M.D.', honorificSuffix: 'A.C.P.'. These properties form an equivalent of the compound 'N' property as defined in RFC 2426 Sec. 3.1.2" ; + rdfs:domain nco:PersonContact ; + rdfs:label "nameFamily" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" . + + nco:VideoTelephoneNumber + a rdfs:Class ; + rdfs:comment "A Video telephone number. A class inspired by the TYPE=video parameter of the TEL property defined in RFC 2426 sec. 3.3.1" ; + rdfs:label "VideoTelephoneNumber" ; + rdfs:subClassOf nco:VoicePhoneNumber . + + nco:contactUID + a rdf:Property ; + rdfs:comment "A value that represents a globally unique identifier corresponding to the individual or resource associated with the Contact. An equivalent of the 'UID' property defined in RFC 2426 Sec. 3.6.7" ; + rdfs:domain nco:Contact ; + rdfs:label "contactUID" ; + rdfs:range xsd:string ; + rdfs:subPropertyOf nie:identifier ; + nrl:maxCardinality "1" . + + nco:publisher + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "An entity responsible for making the InformationElement available." ; + rdfs:domain nie:InformationElement ; + rdfs:label "publisher" ; + rdfs:range nco:Contact ; + rdfs:subPropertyOf dc:publisher . + + nco:country + a rdf:Property ; + rdfs:comment "A part of an address specyfing the country. Inspired by the seventh part of the value of the 'ADR' property as defined in RFC 2426, sec. 3.2.1" ; + rdfs:domain nco:PostalAddress ; + rdfs:label "country" ; + rdfs:range xsd:string ; + nrl:maxCardinality 1 . + + nco:nameHonorificPrefix + a rdf:Property ; + rdfs:comment "A prefix for the name of the object represented by this Contact. See documentation for the 'nameFamily' property for details." ; + rdfs:domain nco:PersonContact ; + rdfs:label "nameHonorificPrefix" ; + rdfs:range xsd:string . + + nco:extendedAddress + a rdf:Property ; + rdfs:comment "An extended part of an address. This field might be used to express parts of an address that aren't include in the name of the Contact but also aren't part of the actual location. Usually the streed address and following fields are enough for a postal letter to arrive. Examples may include ('University of California Campus building 45', 'Sears Tower 34th floor' etc.) Inspired by the second part of the value of the 'ADR' property as defined in RFC 2426, sec. 3.2.1" ; + rdfs:domain nco:PostalAddress ; + rdfs:label "extendedAddress" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" . + + nco:IMAccount + a rdfs:Class ; + rdfs:comment "An account in an Instant Messaging system." ; + rdfs:label "IMAccount" ; + rdfs:subClassOf nco:ContactMedium . + + nco:hasIMAccount + a rdf:Property ; + rdfs:comment "Indicates that an Instant Messaging account owned by an entity represented by this contact." ; + rdfs:domain nco:Role ; + rdfs:label "hasIMAccount" ; + rdfs:range nco:IMAccount ; + rdfs:subPropertyOf nco:hasContactMedium . + + nco:IsdnNumber + a rdfs:Class ; + rdfs:comment "An ISDN phone number. Inspired by the (TYPE=isdn) parameter of the TEL property as defined in RFC 2426 sec 3.3.1." ; + rdfs:label "IsdnNumber" ; + rdfs:subClassOf nco:VoicePhoneNumber . + + nco:creator + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "Creator of an information element, an entity primarily responsible for the creation of the content of the data object." ; + rdfs:domain nie:InformationElement ; + rdfs:label "creator" ; + rdfs:range nco:Contact ; + rdfs:subPropertyOf dc:creator , nco:contributor , nao:creator . + + nco:hasLocation + a rdf:Property ; + rdfs:comment "Geographical location of the contact. Inspired by the 'GEO' property specified in RFC 2426 Sec. 3.4.2" ; + rdfs:domain nco:Contact ; + rdfs:label "hasLocation" ; + rdfs:range geo:Point ; + nrl:maxCardinality "1" . + + nco:birthday + a rdf:Property ; + rdfs:comment "Links a contact with the calendar event of his birthday. (NCAL version)"; + rdfs:label "birthday" ; + rdfs:domain nco:Contact ; + rdfs:range ncal:BirthdayEvent ; + nrl:maxCardinality "1" . + + nco:phoneNumber + a rdf:Property ; + rdfs:domain nco:PhoneNumber ; + rdfs:label "phoneNumber" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" . + + nco:nickname + a rdf:Property ; + rdfs:comment "A nickname of the Object represented by this Contact. This is an equivalent of the 'NICKNAME' property as defined in RFC 2426 Sec. 3.1.3." ; + rdfs:domain nco:Contact ; + rdfs:label "nickname" ; + rdfs:range xsd:string . + + nco:imStatus + a rdf:Property, nrl:NonDefiningProperty ; + rdfs:comment "Current status of the given IM account. When this property is set, the nco:imStatusType should also always be set. Applications should attempt to parse this property to determine the presence, only falling back to the nco:imStatusType property in the case that this property's value is unrecognised. Values for this property may include 'available', 'offline', 'busy' etc. The exact choice of them is unspecified, although it is recommended to follow the guidance of the Telepathy project when choosing a string identifier http://telepathy.freedesktop.org/spec/Connection_Interface_Simple_Presence.html#description" ; + rdfs:domain nco:IMAccount ; + rdfs:label "imStatus" ; + rdfs:range xsd:string ; + nrl:maxCardinality 1 . + + nco:imStatusType + a rdf:Property ; + rdfs:comment "Current status type of the given IM account. When this property is set, the nco:imStatus property should also always be set. Applications should attempt to parse the nco:imStatus property to determine the presence, only falling back to this property in the case that the nco:imStatus property's value is unrecognised." ; + rdfs:domain nco:IMAccount ; + rdfs:label "instant messaging status type" ; + rdfs:range nco:IMStatusType ; + nrl:maxCardinality 1 . + + nco:IMStatusType a rdfs:Class ; + rdfs:label "instant messaging status type" ; + rdfs:comment "The status type of an IMAccount. Based on the Connection_Presence_Type enumeration of the Telepathy project: http://telepathy.freedesktop.org/spec/Connection_Interface_Simple_Presence.html#Enum:Connection_Presence_Type" ; + rdfs:subClassOf rdfs:Resource . + + nco:IMStatusTypeOffline + a nco:IMStatusType ; + rdfs:label "offline" . + + nco:IMStatusTypeAvailable + a nco:IMStatusType ; + rdfs:label "available" . + + nco:IMStatusTypeAway + a nco:IMStatusType ; + rdfs:label "away" . + + nco:IMStatusTypeExtendedAway + a nco:IMStatusType ; + rdfs:label "extended away". + + nco:IMStatusTypeHidden + a nco:IMStatusType ; + rdfs:label "hidden" . + + nco:IMStatusTypeBusy + a nco:IMStatusType ; + rdfs:label "busy" . + + nco:IMStatusTypeUnknown + a nco:IMStatusType ; + rdfs:label "unknown" . + + nco:containsContact + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment """A property used to group contacts into contact groups. This + property was NOT defined in the VCARD standard. See documentation for the + 'ContactList' class for details""" ; + rdfs:domain nco:ContactList ; + rdfs:label "containsContact" ; + rdfs:range nco:ContactListDataObject ; + rdfs:subPropertyOf nie:hasPart . + + nco:department + a rdf:Property ; + rdfs:comment "Department. The organizational unit within the organization." ; + rdfs:domain nco:Affiliation ; + rdfs:label "department" ; + rdfs:range xsd:string . + + nco:imID + a rdf:Property ; + rdfs:comment "Identifier of the IM account. Examples of such identifier might include ICQ UINs, Jabber IDs, Skype names etc." ; + rdfs:domain nco:IMAccount ; + rdfs:label "imID" ; + rdfs:range xsd:string ; + rdfs:subPropertyOf nao:identifier . + + nco:addressLocation + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "The geographical location of a postal address." ; + rdfs:domain nco:PostalAddress ; + rdfs:label "addressLocation" ; + rdfs:range geo:Point ; + nrl:maxCardinality "1" . + + nco:note + a rdf:Property ; + rdfs:comment "A note about the object represented by this Contact. An equivalent for the 'NOTE' property defined in RFC 2426 Sec. 3.6.2" ; + rdfs:domain nco:Contact ; + rdfs:label "note" ; + rdfs:range xsd:string ; + rdfs:subPropertyOf nie:description . + + nco:representative + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "An object that represent an object represented by this Contact. Usually this property is used to link a Contact to an organization, to a contact to the representative of this organization the user directly interacts with. An equivalent for the 'AGENT' property defined in RFC 2426 Sec. 3.5.4" ; + rdfs:domain nco:Contact ; + rdfs:label "representative" ; + rdfs:range nco:Contact . + + nco:nameAdditional + a rdf:Property ; + rdfs:comment "Additional given name of an object represented by this contact. See documentation for 'nameFamily' property for details." ; + rdfs:domain nco:PersonContact ; + rdfs:label "nameAdditional" ; + rdfs:range xsd:string . + + nco:nameGiven + a rdf:Property ; + rdfs:comment "The given name for the object represented by this Contact. See documentation for 'nameFamily' property for details." ; + rdfs:domain nco:PersonContact ; + rdfs:label "nameGiven" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" . + + nco:PcsNumber + a rdfs:Class ; + rdfs:comment "Personal Communication Services Number. A class inspired by the TYPE=pcs parameter of the TEL property defined in RFC 2426 sec. 3.3.1" ; + rdfs:label "PcsNumber" ; + rdfs:subClassOf nco:VoicePhoneNumber . + + nco:ContactList + a rdfs:Class ; + rdfs:comment "A contact list, this class represents an addressbook or a contact list of an IM application. Contacts inside a contact list can belong to contact groups." ; + rdfs:label "ContactList" ; + rdfs:subClassOf nie:InformationElement . + + nco:fullname + a rdf:Property ; + rdfs:comment "To specify the formatted text corresponding to the name of the object the Contact represents. An equivalent of the FN property as defined in RFC 2426 Sec. 3.1.1." ; + rdfs:domain nco:Contact ; + rdfs:label "fullname" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" ; + rdfs:subPropertyOf nie:title . + + nco:ContactGroup + a rdfs:Class ; + rdfs:comment "A group of Contacts. Could be used to express a group in an addressbook or on a contact list of an IM application. One contact can belong to many groups." ; + rdfs:label "ContactGroup" ; + rdfs:subClassOf nie:InformationElement . + + nco:BbsNumber + a rdfs:Class ; + rdfs:comment "A Bulletin Board System (BBS) phone number. Inspired by the (TYPE=bbsl) parameter of the TEL property as defined in RFC 2426 sec 3.3.1." ; + rdfs:label "BbsNumber" ; + rdfs:subClassOf nco:ModemNumber . + + nco:Affiliation + a rdfs:Class ; + rdfs:comment "Aggregates three properties defined in RFC2426. Originally all three were attached directly to a person. One person could have only one title and one role within one organization. This class is intended to lift this limitation." ; + rdfs:label "Affiliation" ; + rdfs:subClassOf nco:Role . + + nco:streetAddress + a rdf:Property ; + rdfs:comment "The streed address. Inspired by the third part of the value of the 'ADR' property as defined in RFC 2426, sec. 3.2.1" ; + rdfs:domain nco:PostalAddress ; + rdfs:label "streetAddress" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" . + + nco:OrganizationContact + a rdfs:Class ; + rdfs:comment "A Contact that denotes on Organization." ; + rdfs:label "OrganizationContact" ; + rdfs:subClassOf nco:Contact . + + nco:PhoneNumber + a rdfs:Class ; + rdfs:comment "A telephone number." ; + rdfs:label "PhoneNumber" ; + rdfs:subClassOf nco:ContactMedium . + + nco:Contact + a rdfs:Class ; + rdfs:comment "A Contact. A piece of data that can provide means to identify or communicate with an entity." ; + rdfs:label "Contact" ; + rdfs:subClassOf nco:Role , nie:InformationElement , nao:Party . + + nco:ModemNumber + a rdfs:Class ; + rdfs:comment "A modem phone number. Inspired by the (TYPE=modem) parameter of the TEL property as defined in RFC 2426 sec 3.3.1." ; + rdfs:label "ModemNumber" ; + rdfs:subClassOf nco:PhoneNumber . + + nco:Role + a rdfs:Class ; + rdfs:comment "A role played by a contact. Contacts that denote people, can have many roles (e.g. see the hasAffiliation property and Affiliation class). Contacts that denote Organizations or other Agents usually have one role. Each role can introduce additional contact media." ; + rdfs:label "Role" ; + rdfs:subClassOf rdfs:Resource . + + nco:PagerNumber + a rdfs:Class ; + rdfs:comment "A pager phone number. Inspired by the (TYPE=pager) parameter of the TEL property as defined in RFC 2426 sec 3.3.1." ; + rdfs:label "PagerNumber" ; + rdfs:subClassOf nco:MessagingNumber . + + nco:hasPhoneNumber + a rdf:Property ; + rdfs:comment "A number for telephony communication with the object represented by this Contact. An equivalent of the 'TEL' property defined in RFC 2426 Sec. 3.3.1" ; + rdfs:domain nco:Role ; + rdfs:label "hasPhoneNumber" ; + rdfs:range nco:PhoneNumber ; + rdfs:subPropertyOf nco:hasContactMedium . + + nco:photo + a rdf:Property ; + rdfs:comment "Photograph attached to a Contact. The DataObject referred to by this property is usually interpreted as an nfo:Image. Inspired by the PHOTO property defined in RFC 2426 sec. 3.1.4" ; + rdfs:domain nco:Contact ; + rdfs:label "photo" ; + rdfs:range nie:DataObject ; + rdfs:subPropertyOf nie:hasPart . + + nco:contributor + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "An entity responsible for making contributions to the content of the InformationElement." ; + rdfs:domain nie:InformationElement ; + rdfs:label "contributor" ; + rdfs:range nco:Contact ; + rdfs:subPropertyOf dc:contributor , nao:contributor . + + nco:logo + a rdf:Property ; + rdfs:comment "Logo of a company. Inspired by the LOGO property defined in RFC 2426 sec. 3.5.3" ; + rdfs:domain nco:OrganizationContact ; + rdfs:label "logo" ; + rdfs:range nie:DataObject ; + rdfs:subPropertyOf nie:hasPart . + + nco:websiteUrl + a rdf:Property ; + rdfs:comment "A url of a website." ; + rdfs:domain nco:Role ; + rdfs:label "websiteUrl" ; + rdfs:range rdfs:Resource ; + rdfs:subPropertyOf nco:url . + + nco:ContactMedium + a rdfs:Class ; + rdfs:comment "A superclass for all contact media - ways to contact an entity represented by a Contact instance. Some of the subclasses of this class (the various kinds of telephone numbers and postal addresses) have been inspired by the values of the TYPE parameter of ADR and TEL properties defined in RFC 2426 sec. 3.2.1. and 3.3.1 respectively. Each value is represented by an appropriate subclass with two major exceptions TYPE=home and TYPE=work. They are to be expressed by the roles these contact media are attached to i.e. contact media with TYPE=home parameter are to be attached to the default role (nco:Contact or nco:PersonContact), whereas media with TYPE=work parameter should be attached to nco:Affiliation or nco:OrganizationContact." ; + rdfs:label "ContactMedium" ; + rdfs:subClassOf rdfs:Resource . + + nco:Gender + a rdfs:Class ; + rdfs:comment "Gender. Instances of this class may include male and female." ; + rdfs:label "Gender" ; + rdfs:subClassOf rdfs:Resource . + + nco:male + a nco:Gender ; + rdfs:comment "A Male" ; + rdfs:label "male" . + + nco:birthDate + a rdf:Property ; + rdfs:comment "Birth date of the object represented by this Contact. An equivalent of the 'BDAY' property as defined in RFC 2426 Sec. 3.1.5." ; + rdfs:domain nco:Contact ; + rdfs:label "birthDate" ; + rdfs:range xsd:date ; + rdfs:subPropertyOf dc:date ; + nrl:maxCardinality 1 . + + nco:hasEmailAddress + a rdf:Property ; + rdfs:comment "An address for electronic mail communication with the object specified by this contact. An equivalent of the 'EMAIL' property as defined in RFC 2426 Sec. 3.3.1." ; + rdfs:domain nco:Role ; + rdfs:label "hasEmailAddress" ; + rdfs:range nco:EmailAddress ; + rdfs:subPropertyOf nco:hasContactMedium . + + nco:postalcode + a rdf:Property ; + rdfs:comment "Postal Code. Inspired by the sixth part of the value of the 'ADR' property as defined in RFC 2426, sec. 3.2.1" ; + rdfs:domain nco:PostalAddress ; + rdfs:label "postalcode" ; + rdfs:range xsd:string ; + nrl:maxCardinality 1 . + + nco:MessagingNumber + a rdfs:Class ; + rdfs:comment "A number that can accept textual messages." ; + rdfs:label "MessagingNumber" ; + rdfs:subClassOf nco:PhoneNumber . + + nco:org + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "Name of an organization or a unit within an organization the object represented by a Contact is associated with. An equivalent of the 'ORG' property defined in RFC 2426 Sec. 3.5.5" ; + rdfs:domain nco:Affiliation ; + rdfs:label "org" ; + rdfs:range nco:OrganizationContact ; + nrl:maxCardinality "1" . + + nco:PersonContact + a rdfs:Class ; + rdfs:comment "A Contact that denotes a Person. A person can have multiple Affiliations." ; + rdfs:label "PersonContact" ; + rdfs:subClassOf nco:Contact . + + nco:ParcelDeliveryAddress + a rdfs:Class ; + rdfs:comment "Parcel Delivery Addresse. Class inspired by TYPE=parcel parameter of the ADR property defined in RFC 2426 sec. 3.2.1" ; + rdfs:label "ParcelDeliveryAddress" ; + rdfs:subClassOf nco:PostalAddress . + + nco:title + a rdf:Property ; + rdfs:comment "The official title the object represented by this contact in an organization. E.g. 'CEO', 'Director, Research and Development', 'Junior Software Developer/Analyst' etc. An equivalent of the 'TITLE' property defined in RFC 2426 Sec. 3.5.1" ; + rdfs:domain nco:Affiliation ; + rdfs:label "title" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" . + + nco:AudioIMAccount + a rdfs:Class ; + nao:deprecated true ; + rdfs:comment "Deprecated in favour of nco:imCapabilityAudio." ; + rdfs:label "AudioIMAccount" ; + rdfs:subClassOf nco:IMAccount . + + nco:voiceMail + a rdf:Property ; + rdfs:comment "Indicates if the given number accepts voice mail. (e.g. there is an answering machine). Inspired by TYPE=msg parameter of the TEL property defined in RFC 2426 sec. 3.3.1" ; + rdfs:domain nco:VoicePhoneNumber ; + rdfs:label "voiceMail" ; + rdfs:range xsd:boolean ; + nrl:maxCardinality "1" . + + nco:PostalAddress + a rdfs:Class ; + rdfs:comment "A postal address. A class aggregating the various parts of a value for the 'ADR' property as defined in RFC 2426 Sec. 3.2.1." ; + rdfs:label "PostalAddress" ; + rdfs:subClassOf nco:ContactMedium . + + nco:belongsToGroup + a rdf:Property ; + rdfs:comment "Links a Contact with a ContactGroup it belongs to." ; + rdfs:domain nco:Contact ; + rdfs:label "belongsToGroup" ; + rdfs:range nco:ContactGroup . + + nco:hasContactMedium + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "A superProperty for all properties linking a Contact to an instance of a contact medium." ; + rdfs:domain nco:Role ; + rdfs:label "hasContactMedium" ; + rdfs:range nco:ContactMedium . + + nco:contactGroupName + a rdf:Property ; + rdfs:comment """The name of the contact group. This property was NOT defined + in the VCARD standard. See documentation of the 'ContactGroup' class for + details""" ; + rdfs:domain nco:ContactGroup ; + rdfs:label "contactGroupName" ; + rdfs:range xsd:string ; + rdfs:subPropertyOf dc:title ; + nrl:maxCardinality 1 . + + nco:FaxNumber + a rdfs:Class ; + rdfs:comment "A fax number. Inspired by the (TYPE=fax) parameter of the TEL property as defined in RFC 2426 sec 3.3.1." ; + rdfs:label "FaxNumber" ; + rdfs:subClassOf nco:PhoneNumber . + + nco:contactMediumComment + a rdf:Property ; + rdfs:comment "A comment about the contact medium. (Deprecated in favor of nie:comment or nao:description - based on the context)" ; + rdfs:domain nco:ContactMedium ; + rdfs:label "contactMediumComment" ; + rdfs:range xsd:string ; + nao:deprecated true. + + nco:foafUrl + a rdf:Property ; + rdfs:comment "The URL of the FOAF file." ; + rdfs:domain nco:Role ; + rdfs:label "foafUrl" ; + rdfs:range rdfs:Resource ; + rdfs:subPropertyOf nco:url . + + nco:CarPhoneNumber + a rdfs:Class ; + rdfs:comment "A car phone number. Inspired by the (TYPE=car) parameter of the TEL property as defined in RFC 2426 sec 3.3.1." ; + rdfs:label "CarPhoneNumber" ; + rdfs:subClassOf nco:VoicePhoneNumber . + + nco:ContactListDataObject + a rdfs:Class ; + rdfs:comment "An entity occuring on a contact list (usually interpreted as an nco:Contact)" ; + rdfs:label "ContactListDataObject" ; + rdfs:subClassOf nie:DataObject . + + nco:emailAddress + a rdf:Property ; + rdfs:domain nco:EmailAddress ; + rdfs:label "emailAddress" ; + rdfs:range xsd:string ; + nrl:maxCardinality 1 . + + nco:InternationalDeliveryAddress + a rdfs:Class ; + rdfs:comment "International Delivery Addresse. Class inspired by TYPE=intl parameter of the ADR property defined in RFC 2426 sec. 3.2.1" ; + rdfs:label "InternationalDeliveryAddress" ; + rdfs:subClassOf nco:PostalAddress . + + nco:locality + a rdf:Property ; + rdfs:comment "Locality or City. Inspired by the fourth part of the value of the 'ADR' property as defined in RFC 2426, sec. 3.2.1" ; + rdfs:domain nco:PostalAddress ; + rdfs:label "locality" ; + rdfs:range xsd:string ; + nrl:maxCardinality 1 . + + nco:VideoIMAccount + a rdfs:Class ; + nao:deprecated true ; + rdfs:comment "Deprecated in favour of nco:imCapabilityVideo." ; + rdfs:label "VideoIMAccount" ; + rdfs:subClassOf nco:AudioIMAccount . + + nco:sound + a rdf:Property ; + rdfs:comment "Sound clip attached to a Contact. The DataObject referred to by this property is usually interpreted as an nfo:Audio. Inspired by the SOUND property defined in RFC 2425 sec. 3.6.6." ; + rdfs:domain nco:Contact ; + rdfs:label "sound" ; + rdfs:range nie:DataObject ; + rdfs:subPropertyOf nie:hasPart . + + nco:EmailAddress + a rdfs:Class ; + rdfs:comment "An email address. The recommended best practice is to use mailto: uris for instances of this class." ; + rdfs:label "EmailAddress" ; + rdfs:subClassOf nco:ContactMedium . + + nco:imNickname + a rdf:Property ; + rdfs:comment "A nickname attached to a particular IM Account." ; + rdfs:domain nco:IMAccount ; + rdfs:label "imNickname" ; + rdfs:range xsd:string . + + nco:hobby + a rdf:Property ; + rdfs:comment "A hobby associated with a PersonContact. This property can be used to express hobbies and interests." ; + rdfs:domain nco:PersonContact ; + rdfs:label "hobby" ; + rdfs:range xsd:string . + + nco:blogUrl + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "A Blog url." ; + rdfs:domain nco:Role ; + rdfs:label "blogUrl" ; + rdfs:range rdfs:Resource ; + rdfs:subPropertyOf nco:url . + + nco:CellPhoneNumber + a rdfs:Class ; + rdfs:comment "A cellular phone number. Inspired by the (TYPE=cell) parameter of the TEL property as defined in RFC 2426 sec 3.3.1. Usually a cellular phone can accept voice calls as well as textual messages (SMS), therefore this class has two superclasses." ; + rdfs:label "CellPhoneNumber" ; + rdfs:subClassOf nco:MessagingNumber , nco:VoicePhoneNumber . + + nco:role + a rdf:Property ; + rdfs:comment "Role an object represented by this contact represents in the organization. This might include 'Programmer', 'Manager', 'Sales Representative'. Be careful to avoid confusion with the title property. An equivalent of the 'ROLE' property as defined in RFC 2426. Sec. 3.5.2. Note the difference between nco:Role class and nco:role property." ; + rdfs:domain nco:Affiliation ; + rdfs:label "role" ; + rdfs:range xsd:string . + + nco:DomesticDeliveryAddress + a rdfs:Class ; + rdfs:comment "Domestic Delivery Addresse. Class inspired by TYPE=dom parameter of the ADR property defined in RFC 2426 sec. 3.2.1" ; + rdfs:label "DomesticDeliveryAddress" ; + rdfs:subClassOf nco:PostalAddress . + + nco:female + a nco:Gender ; + rdfs:comment "A Female" ; + rdfs:label "female" . + + nco:hasPostalAddress + a rdf:Property ; + rdfs:comment "The default Address for a Contact. An equivalent of the 'ADR' property as defined in RFC 2426 Sec. 3.2.1." ; + rdfs:domain nco:Role ; + rdfs:label "hasPostalAddress" ; + rdfs:range nco:PostalAddress ; + rdfs:subPropertyOf nco:hasContactMedium . + + nco:imAccountType + a rdf:Property ; + rdfs:comment "Type of the IM account. This may be the name of the service that provides the IM functionality. Examples might include Jabber, ICQ, MSN etc" ; + rdfs:domain nco:IMAccount ; + rdfs:label "imAccountType" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" . + + nco:pobox + a rdf:Property ; + rdfs:comment "Post office box. This is the first part of the value of the 'ADR' property as defined in RFC 2426, sec. 3.2.1" ; + rdfs:domain nco:PostalAddress ; + rdfs:label "pobox" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1". + + nco:hasAffiliation + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "Links a PersonContact with an Affiliation." ; + rdfs:domain nco:PersonContact ; + rdfs:label "hasAffiliation" ; + rdfs:range nco:Affiliation . + + nco:gender + a rdf:Property ; + rdfs:comment "Gender of the given contact." ; + rdfs:domain nco:PersonContact ; + rdfs:label "gender" ; + rdfs:range nco:Gender ; + nrl:maxCardinality 1 . + + nco:imStatusMessage + a rdf:Property, nrl:NonDefiningProperty ; + rdfs:comment "A feature common in most IM systems. A message left by the user for all his/her contacts to see." ; + rdfs:domain nco:IMAccount ; + rdfs:label "imStatusMessage" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" . + + nco:start + a rdf:Property ; + rdfs:comment "Start datetime for the role, such as: the datetime of joining a project or organization, datetime of starting employment, datetime of marriage" ; + rdfs:label "start" ; + rdfs:domain nco:Role ; + rdfs:range xsd:dateTime ; + nrl:maxCardinality 1 . + + nco:end + a rdf:Property; + rdfs:comment "End datetime for the role, such as: the datetime of leaving a project or organization, datetime of ending employment, datetime of divorce. If absent or set to a date in the future, the role is currently active." ; + rdfs:label "end" ; + rdfs:domain nco:Role ; + rdfs:range xsd:dateTime ; + nrl:maxCardinality 1 . + + nco:IMCapability a rdfs:Class ; + rdfs:label "imCapability" ; + rdfs:comment "Capabilities of a cetain IMAccount." ; + rdfs:subClassOf rdfs:Resource . + + nco:imCapabilityText a nco:IMCapability . + nco:imCapabilityAudio a nco:IMCapability . + nco:imCapabilityVideo a nco:IMCapability . + + nco:hasIMCapability + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "Indicates that an IMAccount has a certain capability." ; + rdfs:domain nco:IMAccount ; + rdfs:label "hasIMCapability" ; + rdfs:range nco:IMCapability . + + nco:isAccessedBy + a rdf:Property ; + rdfs:comment "Indicates the local IMAccount by which this IMAccount is accessed. This does not imply membership of a contact list." ; + rdfs:label "isKnownBy" ; + rdfs:domain nco:IMAccount ; + rdfs:range nco:IMAccount . + + nco:publishesPresenceTo + a rdf:Property ; + rdfs:comment "Indicates that this IMAccount publishes its presence information to the other IMAccount." ; + rdfs:label "publishesPresenceTo" ; + rdfs:domain nco:IMAccount ; + rdfs:range nco:IMAccount . + + nco:requestedPresenceSubscriptionTo + a rdf:Property ; + rdfs:comment "Indicates that this IMAccount has requested a subscription to the presence information of the other IMAccount." ; + rdfs:label "requestedPresenceSubscriptionTo" ; + rdfs:domain nco:IMAccount ; + rdfs:range nco:IMAccount . + + nco:isBlocked + a rdf:Property ; + rdfs:comment "Indicates that this IMAccount has been blocked." ; + rdfs:domain nco:IMAccount ; + rdfs:label "isBlocked" ; + rdfs:range xsd:boolean ; + nrl:maxCardinality "1" . +} + + {nco: a nrl:Ontology ; + nao:creator ; + nao:hasDefaultNamespace + "http://www.semanticdesktop.org/ontologies/2007/03/22/nco#" ; + nao:hasDefaultNamespaceAbbreviation + "nco" ; + nao:lastModified "2011-12-13T12:44:58Z" ; + nao:status "Unstable" ; + nao:updatable "0 " ; + nao:version "0.10.0" ; + nao:prefLabel "Nepomuk Contact Ontology" ; + nao:description "The Nepomuk Contact Ontology describes contact information, common in many places on the desktop. It evolved from the VCARD specification (RFC 2426) and has been inspired by the Vcard Ontology by Renato Ianella. The scope of NCO is much broader though." . + + + a nrl:GraphMetadata ; + nrl:coreGraphMetadataFor + nco: . +} diff --git a/tests/Trinity.Tests.Virtuoso/bin/Debug/net472/Ontologies/owl.n3 b/tests/Trinity.Tests.Virtuoso/bin/Debug/net472/Ontologies/owl.n3 new file mode 100644 index 0000000..87467e7 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Debug/net472/Ontologies/owl.n3 @@ -0,0 +1,552 @@ +@prefix dc: . +@prefix grddl: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix xml: . +@prefix xsd: . + + a owl:Ontology ; + dc:title "The OWL 2 Schema vocabulary (OWL 2)" ; + rdfs:comment """ + This ontology partially describes the built-in classes and + properties that together form the basis of the RDF/XML syntax of OWL 2. + The content of this ontology is based on Tables 6.1 and 6.2 + in Section 6.4 of the OWL 2 RDF-Based Semantics specification, + available at http://www.w3.org/TR/owl2-rdf-based-semantics/. + Please note that those tables do not include the different annotations + (labels, comments and rdfs:isDefinedBy links) used in this file. + Also note that the descriptions provided in this ontology do not + provide a complete and correct formal description of either the syntax + or the semantics of the introduced terms (please see the OWL 2 + recommendations for the complete and normative specifications). + Furthermore, the information provided by this ontology may be + misleading if not used with care. This ontology SHOULD NOT be imported + into OWL ontologies. Importing this file into an OWL 2 DL ontology + will cause it to become an OWL 2 Full ontology and may have other, + unexpected, consequences. + """ ; + rdfs:isDefinedBy + , + , + ; + rdfs:seeAlso , + ; + owl:imports ; + owl:versionIRI ; + owl:versionInfo "$Date: 2009/11/15 10:54:12 $" ; + grddl:namespaceTransformation . + + +owl:AllDifferent a rdfs:Class ; + rdfs:label "AllDifferent" ; + rdfs:comment "The class of collections of pairwise different individuals." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Resource . + +owl:AllDisjointClasses a rdfs:Class ; + rdfs:label "AllDisjointClasses" ; + rdfs:comment "The class of collections of pairwise disjoint classes." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Resource . + +owl:AllDisjointProperties a rdfs:Class ; + rdfs:label "AllDisjointProperties" ; + rdfs:comment "The class of collections of pairwise disjoint properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Resource . + +owl:Annotation a rdfs:Class ; + rdfs:label "Annotation" ; + rdfs:comment "The class of annotated annotations for which the RDF serialization consists of an annotated subject, predicate and object." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Resource . + +owl:AnnotationProperty a rdfs:Class ; + rdfs:label "AnnotationProperty" ; + rdfs:comment "The class of annotation properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdf:Property . + +owl:AsymmetricProperty a rdfs:Class ; + rdfs:label "AsymmetricProperty" ; + rdfs:comment "The class of asymmetric properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:ObjectProperty . + +owl:Axiom a rdfs:Class ; + rdfs:label "Axiom" ; + rdfs:comment "The class of annotated axioms for which the RDF serialization consists of an annotated subject, predicate and object." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Resource . + +owl:Class a rdfs:Class ; + rdfs:label "Class" ; + rdfs:comment "The class of OWL classes." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Class . + +owl:DataRange a rdfs:Class ; + rdfs:label "DataRange" ; + rdfs:comment "The class of OWL data ranges, which are special kinds of datatypes. Note: The use of the IRI owl:DataRange has been deprecated as of OWL 2. The IRI rdfs:Datatype SHOULD be used instead." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Datatype . + +owl:DatatypeProperty a rdfs:Class ; + rdfs:label "DatatypeProperty" ; + rdfs:comment "The class of data properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdf:Property . + +owl:DeprecatedClass a rdfs:Class ; + rdfs:label "DeprecatedClass" ; + rdfs:comment "The class of deprecated classes." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Class . + +owl:DeprecatedProperty a rdfs:Class ; + rdfs:label "DeprecatedProperty" ; + rdfs:comment "The class of deprecated properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdf:Property . + +owl:FunctionalProperty a rdfs:Class ; + rdfs:label "FunctionalProperty" ; + rdfs:comment "The class of functional properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdf:Property . + +owl:InverseFunctionalProperty a rdfs:Class ; + rdfs:label "InverseFunctionalProperty" ; + rdfs:comment "The class of inverse-functional properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:ObjectProperty . + +owl:IrreflexiveProperty a rdfs:Class ; + rdfs:label "IrreflexiveProperty" ; + rdfs:comment "The class of irreflexive properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:ObjectProperty . + +owl:NamedIndividual a rdfs:Class ; + rdfs:label "NamedIndividual" ; + rdfs:comment "The class of named individuals." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:Thing . + +owl:NegativePropertyAssertion a rdfs:Class ; + rdfs:label "NegativePropertyAssertion" ; + rdfs:comment "The class of negative property assertions." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Resource . + +owl:Nothing a owl:Class ; + rdfs:label "Nothing" ; + rdfs:comment "This is the empty class." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:Thing . + +owl:ObjectProperty a rdfs:Class ; + rdfs:label "ObjectProperty" ; + rdfs:comment "The class of object properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdf:Property . + +owl:Ontology a rdfs:Class ; + rdfs:label "Ontology" ; + rdfs:comment "The class of ontologies." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Resource . + +owl:OntologyProperty a rdfs:Class ; + rdfs:label "OntologyProperty" ; + rdfs:comment "The class of ontology properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdf:Property . + +owl:ReflexiveProperty a rdfs:Class ; + rdfs:label "ReflexiveProperty" ; + rdfs:comment "The class of reflexive properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:ObjectProperty . + +owl:Restriction a rdfs:Class ; + rdfs:label "Restriction" ; + rdfs:comment "The class of property restrictions." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:Class . + +owl:SymmetricProperty a rdfs:Class ; + rdfs:label "SymmetricProperty" ; + rdfs:comment "The class of symmetric properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:ObjectProperty . + +owl:TransitiveProperty a rdfs:Class ; + rdfs:label "TransitiveProperty" ; + rdfs:comment "The class of transitive properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:ObjectProperty . + +owl:Thing a owl:Class ; + rdfs:label "Thing" ; + rdfs:comment "The class of OWL individuals." ; + rdfs:isDefinedBy . + +owl:allValuesFrom a rdf:Property ; + rdfs:label "allValuesFrom" ; + rdfs:comment "The property that determines the class that a universal property restriction refers to." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Class . + +owl:annotatedProperty a rdf:Property ; + rdfs:label "annotatedProperty" ; + rdfs:comment "The property that determines the predicate of an annotated axiom or annotated annotation." ; + rdfs:domain rdfs:Resource ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Resource . + +owl:annotatedSource a rdf:Property ; + rdfs:label "annotatedSource" ; + rdfs:comment "The property that determines the subject of an annotated axiom or annotated annotation." ; + rdfs:domain rdfs:Resource ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Resource . + +owl:annotatedTarget a rdf:Property ; + rdfs:label "annotatedTarget" ; + rdfs:comment "The property that determines the object of an annotated axiom or annotated annotation." ; + rdfs:domain rdfs:Resource ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Resource . + +owl:assertionProperty a rdf:Property ; + rdfs:label "assertionProperty" ; + rdfs:comment "The property that determines the predicate of a negative property assertion." ; + rdfs:domain owl:NegativePropertyAssertion ; + rdfs:isDefinedBy ; + rdfs:range rdf:Property . + +owl:backwardCompatibleWith a owl:AnnotationProperty, owl:OntologyProperty ; + rdfs:label "backwardCompatibleWith" ; + rdfs:comment "The annotation property that indicates that a given ontology is backward compatible with another ontology." ; + rdfs:domain owl:Ontology ; + rdfs:isDefinedBy ; + rdfs:range owl:Ontology . + +owl:bottomDataProperty a owl:DatatypeProperty ; + rdfs:label "bottomDataProperty" ; + rdfs:comment "The data property that does not relate any individual to any data value." ; + rdfs:domain owl:Thing ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Literal . + +owl:bottomObjectProperty a owl:ObjectProperty ; + rdfs:label "bottomObjectProperty" ; + rdfs:comment "The object property that does not relate any two individuals." ; + rdfs:domain owl:Thing ; + rdfs:isDefinedBy ; + rdfs:range owl:Thing . + +owl:cardinality a rdf:Property ; + rdfs:label "cardinality" ; + rdfs:comment "The property that determines the cardinality of an exact cardinality restriction." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range xsd:nonNegativeInteger . + +owl:complementOf a rdf:Property ; + rdfs:label "complementOf" ; + rdfs:comment "The property that determines that a given class is the complement of another class." ; + rdfs:domain owl:Class ; + rdfs:isDefinedBy ; + rdfs:range owl:Class . + +owl:datatypeComplementOf a rdf:Property ; + rdfs:label "datatypeComplementOf" ; + rdfs:comment "The property that determines that a given data range is the complement of another data range with respect to the data domain." ; + rdfs:domain rdfs:Datatype ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Datatype . + +owl:deprecated a owl:AnnotationProperty ; + rdfs:label "deprecated" ; + rdfs:comment "The annotation property that indicates that a given entity has been deprecated." ; + rdfs:domain rdfs:Resource ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Resource . + +owl:differentFrom a rdf:Property ; + rdfs:label "differentFrom" ; + rdfs:comment "The property that determines that two given individuals are different." ; + rdfs:domain owl:Thing ; + rdfs:isDefinedBy ; + rdfs:range owl:Thing . + +owl:disjointUnionOf a rdf:Property ; + rdfs:label "disjointUnionOf" ; + rdfs:comment "The property that determines that a given class is equivalent to the disjoint union of a collection of other classes." ; + rdfs:domain owl:Class ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:disjointWith a rdf:Property ; + rdfs:label "disjointWith" ; + rdfs:comment "The property that determines that two given classes are disjoint." ; + rdfs:domain owl:Class ; + rdfs:isDefinedBy ; + rdfs:range owl:Class . + +owl:distinctMembers a rdf:Property ; + rdfs:label "distinctMembers" ; + rdfs:comment "The property that determines the collection of pairwise different individuals in a owl:AllDifferent axiom." ; + rdfs:domain owl:AllDifferent ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:equivalentClass a rdf:Property ; + rdfs:label "equivalentClass" ; + rdfs:comment "The property that determines that two given classes are equivalent, and that is used to specify datatype definitions." ; + rdfs:domain rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Class . + +owl:equivalentProperty a rdf:Property ; + rdfs:label "equivalentProperty" ; + rdfs:comment "The property that determines that two given properties are equivalent." ; + rdfs:domain rdf:Property ; + rdfs:isDefinedBy ; + rdfs:range rdf:Property . + +owl:hasKey a rdf:Property ; + rdfs:label "hasKey" ; + rdfs:comment "The property that determines the collection of properties that jointly build a key." ; + rdfs:domain owl:Class ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:hasSelf a rdf:Property ; + rdfs:label "hasSelf" ; + rdfs:comment "The property that determines the property that a self restriction refers to." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Resource . + +owl:hasValue a rdf:Property ; + rdfs:label "hasValue" ; + rdfs:comment "The property that determines the individual that a has-value restriction refers to." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Resource . + +owl:imports a owl:OntologyProperty ; + rdfs:label "imports" ; + rdfs:comment "The property that is used for importing other ontologies into a given ontology." ; + rdfs:domain owl:Ontology ; + rdfs:isDefinedBy ; + rdfs:range owl:Ontology . + +owl:incompatibleWith a owl:AnnotationProperty, owl:OntologyProperty ; + rdfs:label "incompatibleWith" ; + rdfs:comment "The annotation property that indicates that a given ontology is incompatible with another ontology." ; + rdfs:domain owl:Ontology ; + rdfs:isDefinedBy ; + rdfs:range owl:Ontology . + +owl:intersectionOf a rdf:Property ; + rdfs:label "intersectionOf" ; + rdfs:comment "The property that determines the collection of classes or data ranges that build an intersection." ; + rdfs:domain rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:inverseOf a rdf:Property ; + rdfs:label "inverseOf" ; + rdfs:comment "The property that determines that two given properties are inverse." ; + rdfs:domain owl:ObjectProperty ; + rdfs:isDefinedBy ; + rdfs:range owl:ObjectProperty . + +owl:maxCardinality a rdf:Property ; + rdfs:label "maxCardinality" ; + rdfs:comment "The property that determines the cardinality of a maximum cardinality restriction." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range xsd:nonNegativeInteger . + +owl:maxQualifiedCardinality a rdf:Property ; + rdfs:label "maxQualifiedCardinality" ; + rdfs:comment "The property that determines the cardinality of a maximum qualified cardinality restriction." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range xsd:nonNegativeInteger . + +owl:members a rdf:Property ; + rdfs:label "members" ; + rdfs:comment "The property that determines the collection of members in either a owl:AllDifferent, owl:AllDisjointClasses or owl:AllDisjointProperties axiom." ; + rdfs:domain rdfs:Resource ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:minCardinality a rdf:Property ; + rdfs:label "minCardinality" ; + rdfs:comment "The property that determines the cardinality of a minimum cardinality restriction." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range xsd:nonNegativeInteger . + +owl:minQualifiedCardinality a rdf:Property ; + rdfs:label "minQualifiedCardinality" ; + rdfs:comment "The property that determines the cardinality of a minimum qualified cardinality restriction." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range xsd:nonNegativeInteger . + +owl:onClass a rdf:Property ; + rdfs:label "onClass" ; + rdfs:comment "The property that determines the class that a qualified object cardinality restriction refers to." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range owl:Class . + +owl:onDataRange a rdf:Property ; + rdfs:label "onDataRange" ; + rdfs:comment "The property that determines the data range that a qualified data cardinality restriction refers to." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Datatype . + +owl:onDatatype a rdf:Property ; + rdfs:label "onDatatype" ; + rdfs:comment "The property that determines the datatype that a datatype restriction refers to." ; + rdfs:domain rdfs:Datatype ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Datatype . + +owl:oneOf a rdf:Property ; + rdfs:label "oneOf" ; + rdfs:comment "The property that determines the collection of individuals or data values that build an enumeration." ; + rdfs:domain rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:onProperties a rdf:Property ; + rdfs:label "onProperties" ; + rdfs:comment "The property that determines the n-tuple of properties that a property restriction on an n-ary data range refers to." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:onProperty a rdf:Property ; + rdfs:label "onProperty" ; + rdfs:comment "The property that determines the property that a property restriction refers to." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range rdf:Property . + +owl:priorVersion a owl:AnnotationProperty, owl:OntologyProperty ; + rdfs:label "priorVersion" ; + rdfs:comment "The annotation property that indicates the predecessor ontology of a given ontology." ; + rdfs:domain owl:Ontology ; + rdfs:isDefinedBy ; + rdfs:range owl:Ontology . + +owl:propertyChainAxiom a rdf:Property ; + rdfs:label "propertyChainAxiom" ; + rdfs:comment "The property that determines the n-tuple of properties that build a sub property chain of a given property." ; + rdfs:domain owl:ObjectProperty ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:propertyDisjointWith a rdf:Property ; + rdfs:label "propertyDisjointWith" ; + rdfs:comment "The property that determines that two given properties are disjoint." ; + rdfs:domain rdf:Property ; + rdfs:isDefinedBy ; + rdfs:range rdf:Property . + +owl:qualifiedCardinality a rdf:Property ; + rdfs:label "qualifiedCardinality" ; + rdfs:comment "The property that determines the cardinality of an exact qualified cardinality restriction." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range xsd:nonNegativeInteger . + +owl:sameAs a rdf:Property ; + rdfs:label "sameAs" ; + rdfs:comment "The property that determines that two given individuals are equal." ; + rdfs:domain owl:Thing ; + rdfs:isDefinedBy ; + rdfs:range owl:Thing . + +owl:someValuesFrom a rdf:Property ; + rdfs:label "someValuesFrom" ; + rdfs:comment "The property that determines the class that an existential property restriction refers to." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Class . + +owl:sourceIndividual a rdf:Property ; + rdfs:label "sourceIndividual" ; + rdfs:comment "The property that determines the subject of a negative property assertion." ; + rdfs:domain owl:NegativePropertyAssertion ; + rdfs:isDefinedBy ; + rdfs:range owl:Thing . + +owl:targetIndividual a rdf:Property ; + rdfs:label "targetIndividual" ; + rdfs:comment "The property that determines the object of a negative object property assertion." ; + rdfs:domain owl:NegativePropertyAssertion ; + rdfs:isDefinedBy ; + rdfs:range owl:Thing . + +owl:targetValue a rdf:Property ; + rdfs:label "targetValue" ; + rdfs:comment "The property that determines the value of a negative data property assertion." ; + rdfs:domain owl:NegativePropertyAssertion ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Literal . + +owl:topDataProperty a owl:DatatypeProperty ; + rdfs:label "topDataProperty" ; + rdfs:comment "The data property that relates every individual to every data value." ; + rdfs:domain owl:Thing ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Literal . + +owl:topObjectProperty a owl:ObjectProperty ; + rdfs:label "topObjectProperty" ; + rdfs:comment "The object property that relates every two individuals." ; + rdfs:domain owl:Thing ; + rdfs:isDefinedBy ; + rdfs:range owl:Thing . + +owl:unionOf a rdf:Property ; + rdfs:label "unionOf" ; + rdfs:comment "The property that determines the collection of classes or data ranges that build a union." ; + rdfs:domain rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:versionInfo a owl:AnnotationProperty ; + rdfs:label "versionInfo" ; + rdfs:comment "The annotation property that provides version information for an ontology or another OWL construct." ; + rdfs:domain rdfs:Resource ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Resource . + +owl:versionIRI a owl:OntologyProperty ; + rdfs:label "versionIRI" ; + rdfs:comment "The property that identifies the version IRI of an ontology." ; + rdfs:domain owl:Ontology ; + rdfs:isDefinedBy ; + rdfs:range owl:Ontology . + +owl:withRestrictions a rdf:Property ; + rdfs:label "withRestrictions" ; + rdfs:comment "The property that determines the collection of facet-value pairs that define a datatype restriction." ; + rdfs:domain rdfs:Datatype ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + \ No newline at end of file diff --git a/tests/Trinity.Tests.Virtuoso/bin/Debug/net472/Ontologies/rdf.rdf b/tests/Trinity.Tests.Virtuoso/bin/Debug/net472/Ontologies/rdf.rdf new file mode 100644 index 0000000..a6815ec --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Debug/net472/Ontologies/rdf.rdf @@ -0,0 +1,156 @@ + + + + The RDF Concepts Vocabulary (RDF) + This is the RDF Schema for the RDF vocabulary terms in the RDF Namespace, defined in RDF 1.1 Concepts. + + + + + + + HTML + The datatype of RDF literals storing fragments of HTML content + + + + + + + langString + The datatype of language-tagged string values + + + + + + + PlainLiteral + The class of plain (i.e. untyped) literal values, as used in RIF and OWL 2 + + + + + + type + The subject is an instance of a class. + + + + + + + Property + The class of RDF properties. + + + + + + Statement + + The class of RDF statements. + + + + + subject + The subject of the subject RDF statement. + + + + + + + predicate + The predicate of the subject RDF statement. + + + + + + + object + The object of the subject RDF statement. + + + + + + + Bag + The class of unordered containers. + + + + + + Seq + The class of ordered containers. + + + + + + Alt + The class of containers of alternatives. + + + + + + value + Idiomatic property used for structured values. + + + + + + + + + List + The class of RDF Lists. + + + + + + nil + The empty list, with no items in it. If the rest of a list is nil then the list has no more items in it. + + + + + first + The first item in the subject RDF list. + + + + + + + rest + The rest of the subject RDF list after the first item. + + + + + + + + XMLLiteral + The datatype of XML literal values. + + + + + + + + diff --git a/tests/Trinity.Tests.Virtuoso/bin/Debug/net472/Ontologies/rdfs.n3 b/tests/Trinity.Tests.Virtuoso/bin/Debug/net472/Ontologies/rdfs.n3 new file mode 100644 index 0000000..a5b8eac --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Debug/net472/Ontologies/rdfs.n3 @@ -0,0 +1,109 @@ +@prefix rdf: . +@prefix rdfs: . +@prefix owl: . +@prefix dc: . + + a owl:Ontology ; + dc:title "The RDF Schema vocabulary (RDFS)" . + +rdfs:Resource a rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:label "Resource" ; + rdfs:comment "The class resource, everything." . + +rdfs:Class a rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:label "Class" ; + rdfs:comment "The class of classes." ; + rdfs:subClassOf rdfs:Resource . + +rdfs:subClassOf a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:label "subClassOf" ; + rdfs:comment "The subject is a subclass of a class." ; + rdfs:range rdfs:Class ; + rdfs:domain rdfs:Class . + +rdfs:subPropertyOf a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:label "subPropertyOf" ; + rdfs:comment "The subject is a subproperty of a property." ; + rdfs:range rdf:Property ; + rdfs:domain rdf:Property . + +rdfs:comment a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:label "comment" ; + rdfs:comment "A description of the subject resource." ; + rdfs:domain rdfs:Resource ; + rdfs:range rdfs:Literal . + +rdfs:label a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:label "label" ; + rdfs:comment "A human-readable name for the subject." ; + rdfs:domain rdfs:Resource ; + rdfs:range rdfs:Literal . + +rdfs:domain a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:label "domain" ; + rdfs:comment "A domain of the subject property." ; + rdfs:range rdfs:Class ; + rdfs:domain rdf:Property . + +rdfs:range a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:label "range" ; + rdfs:comment "A range of the subject property." ; + rdfs:range rdfs:Class ; + rdfs:domain rdf:Property . + +rdfs:seeAlso a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:label "seeAlso" ; + rdfs:comment "Further information about the subject resource." ; + rdfs:range rdfs:Resource ; + rdfs:domain rdfs:Resource . + +rdfs:isDefinedBy a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:subPropertyOf rdfs:seeAlso ; + rdfs:label "isDefinedBy" ; + rdfs:comment "The defininition of the subject resource." ; + rdfs:range rdfs:Resource ; + rdfs:domain rdfs:Resource . + +rdfs:Literal a rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:label "Literal" ; + rdfs:comment "The class of literal values, eg. textual strings and integers." ; + rdfs:subClassOf rdfs:Resource . + +rdfs:Container a rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:label "Container" ; + rdfs:subClassOf rdfs:Resource ; + rdfs:comment "The class of RDF containers." . + +rdfs:ContainerMembershipProperty a rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:label "ContainerMembershipProperty" ; + rdfs:comment """The class of container membership properties, rdf:_1, rdf:_2, ..., + all of which are sub-properties of 'member'.""" ; + rdfs:subClassOf rdf:Property . + +rdfs:member a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:label "member" ; + rdfs:comment "A member of the subject resource." ; + rdfs:domain rdfs:Resource ; + rdfs:range rdfs:Resource . + +rdfs:Datatype a rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:label "Datatype" ; + rdfs:comment "The class of RDF datatypes." ; + rdfs:subClassOf rdfs:Class . + + rdfs:seeAlso . diff --git a/tests/Trinity.Tests.Virtuoso/bin/Debug/net472/Ontologies/space test ontology.ttl b/tests/Trinity.Tests.Virtuoso/bin/Debug/net472/Ontologies/space test ontology.ttl new file mode 100644 index 0000000..e9f6944 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Debug/net472/Ontologies/space test ontology.ttl @@ -0,0 +1,13 @@ +@prefix rdf: . +@prefix owl: . +@prefix rdfs: . +@prefix myo: . + +myo: +rdfs:label "my ontology". + +myo:Class a rdfs:Class ; +rdfs:label "MyClass" . + +myo:Property a rdf:Property ; +rdfs:label "MyProperty" . \ No newline at end of file diff --git a/tests/Trinity.Tests.Virtuoso/bin/Debug/net472/Semiodesk.Trinity.Tests.Virtuoso.exe.config b/tests/Trinity.Tests.Virtuoso/bin/Debug/net472/Semiodesk.Trinity.Tests.Virtuoso.exe.config new file mode 100644 index 0000000..3e2fdf6 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Debug/net472/Semiodesk.Trinity.Tests.Virtuoso.exe.config @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/Trinity.Tests.Virtuoso/bin/Debug/net472/Semiodesk.Trinity.Tests.exe.config b/tests/Trinity.Tests.Virtuoso/bin/Debug/net472/Semiodesk.Trinity.Tests.exe.config new file mode 100644 index 0000000..92d10a9 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Debug/net472/Semiodesk.Trinity.Tests.exe.config @@ -0,0 +1,62 @@ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/Trinity.Tests.Virtuoso/bin/Debug/net472/Semiodesk.Trinity.xml b/tests/Trinity.Tests.Virtuoso/bin/Debug/net472/Semiodesk.Trinity.xml new file mode 100644 index 0000000..d4242d2 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Debug/net472/Semiodesk.Trinity.xml @@ -0,0 +1,5915 @@ + + + + Semiodesk.Trinity + + + + + Marks the property as NotifyingProperty. + + + + + Decorate a class with this attribute to mark it as mapping for an RDF class of the given type. + + + + + The Uri of the type. + + + + + Constructor + + The uri of the RDF class for this mapping. + + + + Decorate a property with this attribute to mark it as mapped RDF property with the given type. + + + + + Uri of the the RDF property + + + + + Flag determining if property is language invariant. Only valid for string or string collections. + + + + + Constructor + + There uri of the rdf property for this mapping. + The mapping ignores the language setting and is always non-localized. Only valid if type or generic type is string or string collection. + + + + The class of resources that are RDF classes. + + + + + Constructor + + + + + Constrctor + + + + + Constrctor + + + + + Derived VirtualizatingCollection, performing loading asychronously. + + The type of items in the collection + + + + Gets the synchronization context used for UI-related operations. This is obtained as + the current SynchronizationContext when the AsyncVirtualizingCollection is created. + + The synchronization context. + + + + Gets or sets a value indicating whether the collection is loading. + + + true if this collection is loading; otherwise, false. + + + + + Initializes a new instance of the class. + + The items provider. + + + + Initializes a new instance of the class. + + The items provider. + Size of the page. + + + + Initializes a new instance of the class. + + The items provider. + Size of the page. + The page timeout. + + + + Asynchronously loads the count of items. + + + + + Performed on background thread. + + None required. + + + + Performed on UI-thread after LoadCountWork. + + Number of items returned. + + + + Asynchronously loads the page. + + The index. + + + + Performed on background thread. + + Index of the page to load. + + + + Performed on UI-thread after LoadPageWork. + + object[] { int pageIndex, IList(T) page } + + + + The event that gets notified if the collection gets changed. + + + + + The event that gets notified if a property has changed. + + + + + An generic asynchrous virtualizing collection for sparql queries. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + A generic items provider collection. + + + + + + Number of element in the provider. + + + + + + Enumerator of the items. + + + + + + + + A generic virtualizing collection. + + + + + + The page size contains the number of elements per page. + + + + + The time after which a page can be removed. + + + + + The page size contains the number of elements per page. + + + + + Timeout in ms. If the page has not been touched it can be removed with CleanUpPages. + + + + + Number of elements in the list. + + + + + Gets an object that can be used to synchronize access to the . + + + + An object that can be used to synchronize access to the . + + + + + Gets a value indicating whether access to the is synchronized (thread safe). + + + Always false. + + + + + Gets a value indicating whether the is read-only. + + + Always true. + + + + + Gets a value indicating whether the has a fixed size. + + + Always false. + + + + + Access an element at a certain index. + + + + + + + Initializes a new instance of the class. + + Items provider + Size of the page. + The page timeout. + + + + Initializes a new instance of the class. + + The items provider. + Size of the page. + + + + Initializes a new instance of the class. + + + + + Returns the enumerator of the collection + + + + + + The list is read-only, not supported. + + + + + + The list is read-only, not supported. + + + + + + The list is read-only, not supported. + + + + + Returns the index of a certain element. + + + + + + + The list is read-only, not supported. + + + + + + + The list is read-only, not supported. + + + + + + + The list is read-only, not supported. + + + + + + The list is read-only, not supported. + + + + + + The list is read-only, not supported. + + + + + + + The list is read-only, not supported. + + + + + + + The list is read-only, not supported. + + + + + + + Removes pages that have not been touched recently. The timeout can be configured with the PageTimeout. + + + + + Load page with the given index. + + + + + + Sets the given page to the given index. + + + + + + + Load the page with the given index. + + + + + + Loads the count of the collection. + + + + + Gets the page from the item provider. + + + + + + + Gets the element count from the item provider. + + + + + + The item provider for sparql queries. + + + + + + Constructor for the SparqlQueryItemsProvider. + + The model on which the query should be executed. + The query that should be executed. + Modifier if inferncing should be enabled. Default is true + + + + Number of elements in the result. + + + + + + Enumerator of the items. Should be narrowed with offset and limit. + + Offset of the element where to start. + Number of elements. + + + + + A virtualizing collection for sparql query results + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The model to query. + The query. + Size of the page. + Using inferencing + + + + Initializes a new instance of the class. + + + + + The FileSource represents the path of the ontology on the disk. + + + + + This is the string containing the path. + + + + + The ontology configuration section. + + + + + The uri of the ontology as string. + + + + + Wrapper for the uri of the ontology as Uri. + + + + + The prefix of the ontology. + + + + + The timestamp when the ontology was first introduced in the project. + + + + + Version of the ontology. + + + + + The location of the ontology file in the web. + + + + + The location of the ontology file on the disk. + + + + + Serialization of th ontology. + + + + + + Hashcode of the ontology. + + + + + + Wrapper for the local path of the ontology. + + + + + Location of the ontology in the web. + + + + + The url of the ontology in the web. + + + + + The section containing all ontologies. + + + + + The list of all ontologies + + + + + The namespace the ontologies should be generated to. + + + + + The general store configuration section. + + + + + The store type this configuration belongs to. + + + + + The content of the store configuration. Will be handled by the store implementation. + + + + + The store section of the configuration. + + + + + The list of the store configurations. + + + + + The general configuration section. + + + + + The ontology section. + + + + + The store section. + + + + + Wrapper for the namespace for this project. + + + + + Wrapper for an easier ontology access. + + + + + + Wrapper for the store configurations. + + + + + + Loads Trinity RDF settings from a XML configuration file. + + + + + Exposes settings for Trinity RDF projects. + + + + + Get the default namespace for generated C# classes. + + + + + Get the ontology settings for the current project. + + An enumeration of ontology settings. + + + + Get the triple store settings for the current project. + + An enumeration of triple store settings. + + + + Exposes ontology settings for a Trinity RDF project. + + + + + Get the namespace URI of the ontology. + + + + + Get the default prefix of the ontology. + + + + + Get the location of the ontology source file. + + + + + Exposes triple store settings for Trinity RDF projects. + + + + + Get the triple store type identifier. + + + + + Get store specific XML configuration data. + + + + + A file source of a element + + + + + The location of this file source + + + + + A graph element in the configuration. + + + + + The Uri of the graph element + + + + + A collection containing all graphs in the configuration + + + + + Create a new graph element + + + + + + Gets the key of the given graph element. Uri is used. + + + + + + + The type of the collection + + + + + The name of the element + + + + + The index operator + + + + + + + Get the element by the key + + + + + + + Test if key exists + + + + + + + Get enumerator of collection + + + + + + A ontology element + + + + + Prefix of this ontology. + + + + + URI of this ontology. + + + + + String representation of the URI. + + + + + The key of the element. + + + + + The location of the ontology file. + + + + + The uri of the metadata graph, only needed for TriG serialisations. + + + + + The string representation of the metadata graph URI. + + + + + String representation of this element. + + + + + + Overwritten hashcode. + + + + + + Get the location of the ontology file source. + + + + + A collection of ontology settings. + + + + + Create a new ontology configuration element. + + A new configuration element. + + + + Get the key associated with a configuration element. + + + URI of the configuration element. + + + + Get the configuration element collection type. + + + + + XML element tag name. + + + + + Gets the configuration element at the specified index location. + + The index location of the System.Configuration.ConfigurationElement to return. + The System.Configuration.ConfigurationElement at the specified index. + + + + Gets the configuration element with the specified identifier. + + The identifier of the System.Configuration.ConfigurationElement to return. + The System.Configuration.ConfigurationElement at the specified index. + + + + Indicates if an element with the given key exists in this collection. + + The identifier to be checked. + true if an element with the given key exists, false otherwise. + + + + Get an enumerator for iterating over the items in this collection. + + An enumerator. + + + + A ruleset element + + + + + Gets or sets the URI of the rule set. + + + + + Gat a collection of graphs associated with this rule set. + + + + + Collection of rule sets. + + + + + Create a new rule set element. + + + + + + Gets the key (the uri) of a RuleSet element. + + + + + + + The collection type. + + + + + Contains the name of the element. + + + + + The index operator. + + + + + + + Index operator with key name. + + The key of the ruleset. + + + + + Can be used to test if the key exists. + + + + + + + Enumerator for the collection. + + + + + + Constains Virtuoso specific settings. + + + + + A collection of inference rule sets. + + + + + Get the triple store type identifier. + + + + + Get store specific XML configuration data. + + + + + Constains the settings for the Semiodesk.Trinity framework. + + + + + Namespace of the generated ontology file. + + + + + Collection of ontology settings. + + + + + Virtuoso specific triple store settings. + + + + + Get the ontology settings for the current project. + + An enumeration of ontology settings. + + + + Get the triple store settings for the current project. + + An enumeration of triple store settings. + + + + This exception will be thrown if the store rejects the query as invalid. + + + + + Contains the offending query + + + + + Create a new exception without information. + + + + + Create a new exception with an error string. + + Details about the issue. + + + + Create a new exception with an error string and an inner exception. + + Details about the issue. + The exception that propmted the query failure. + The offending query + + + + This exception will be thrown when trying to access query result methods + for unsupported SPARQL query forms (i.e. trying to get bindings from an ASK query). + + + + + Contains the offending query. + + + + + Create a new exception with an error string. + + SPARQL query type. + + + + Represents error when one or more resources you tried to access was locked. + + + + + Create a new instance of the ResourceLockedException class. + + Inner exception. + + + + Represents error when a resource could not be retrieved. + + + The exception is derived from ArgumentException to ensure backwards compatibility. + + + + + Create a new instance of the ResourceNotFoundException class. + + URI of the resource. + + + + Represents errors when a suitable triple store adapter could not be found. + + + + + Create a new instance of the StoreProviderMissingException class. + + Error message. + + + + Create a new instance of the StoreProviderMissingException class. + + Error message. + Inner exception. + + + + Extension to FileSystemInfo concerting UriRef handling + + + + + Create a UriRef from a FileSystemInfo + + + + + + + Collection of string extension related to Uris + + + + + Create a UriRef from this string. + + + + + + + Create a UriRef from this string with a given kind + + + + + + Extension of Uri class concering UriRef handling. + + + + + Create a UriRef from this Uri. + + + + + + + The datatype of the the mapped property + + + + + If the datatype is a collection, this contains the generic type. + + + + + True if the property is mapped to a collection. + + + + + The property that should be mapped. + + + + + The name of the mapped property. + + + + + True if the value has not been set. + + + + + Language of the value + + + + + The mapping ignores the language setting and is always non-localized. Only valid if type or generic type is string or string collection. + + + + + Method to test if a type is compatible. In case of collection, the containing type is tested for compatibility. + + The type to test. + True if the type is compatible + + + + Gets the value or values mapped to this property. + + + + + + This method is meant to be called from the non-mapped interface. It replaces the current value if + it is mapped to one value, adds it if the property is mapped to a list. + + + + + + Deletes the containing value and sets the state to unset. In case of a collection, it tries to remove the value from it. + + + + + + Clones the mapping of another resource. + + + + + + Clears the mapping and resets it. + + + + + This interface encapsulates the access to the methods of a RDF resource. + + + + + Uniform Resource Identifier (URI). + + + + + Model from which the resource was instantiated. + + + + + Indicates that this resource is not writable, thus Commit() is illegal. + + + + + Set the language of this resource. This will change te mapped strings to this language. + + + + + Indicates if the resources has been disposed. + + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A instance of IResource. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A string literal. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A string literal. + The culture of the string literal. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A string literal. + The language of the string literal. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A 16-bit integer value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A 32-bit integer value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A 64-bit integer value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A 16-bit unsigned integer value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A 32-bit unsigned integer value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A 64-bit unsigned integer value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A single precision float value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A double precision float value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A decimal value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A boolean value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A datetime value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + Arbitrary data in form of a byte array. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + An Uri. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + An IResource instance. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A instance of IResource. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A string literal. + The culture of the string + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A string literal. + The language of the string. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A 16-bit integer value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A 32-bit integer value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A 64-bit integer value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A 16-bit unsigned integer value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A 32-bit unsigned integer value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A 64-bit unsigned integer value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A single precision float value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A double precision float value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A decimal value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A blooean value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A date value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + Arbitrary data in form of a byte array. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + An Uri. + + + + Indicates if the resource has at least one property of the given type. + + + True on success, False otherwise. + + + + Indicates if the resource has a property with the given value. + + + + True on success, False otherwise. + + + + Indicates if the resource has a property with the given translated string value. + + + + + True on success, False otherwise. + + + + Indicates if the resource has a property with the given translated string value. + + + + + True on success, False otherwise. + + + + Enumerates all properties associated with this resource. + + + + + + Enumerates all properties associated with this resource in form + of a tuple mapping properties to their corresponding values. + + Only return values which should be serialized. + + + + + Enumerates all property values associated with this resource. + + + + + + + Gets the value of a uniquely asserted property. + + A RDF property. + + + + + Gets the value of a uniquely asserted property. + + A RDF property. + Specifies a default value that should be returned if no value exists. + + + + + This static class is responsible for discovering mapped classes. + Every assembly that defines mapping classes needs to register them with this service. + + + + + A class containing information about a RDF class mapped to c#. + + + + + The .NET type of the class. + + + + + RDF classes that are mapped to this class. + + + + + Inferenced RDF classes mapped to this class. Currently not used. + + + + + The number of classes that are not sub class of any other class. + + + + + Constructor to create a new MappingClass + + The c# type + The mapped rdf classes. + The rdf base classes. + + + + The list of all registered assemblies. + + + + + The list of all registered mapped classes. + + + + + Adds a collection of mapped classes to the registration. + + + + + + Adds a mapped class to the registration. + + + + + + Add the super classes of a given .NET type to a given list. + + A .NET type. + List where the base types will be added to. + + + + Loads all mapped classes from the assembly calling this method. + + + + + Register ALL THE THINGS!! + from all assemblies currently loaded. + + + + + Load all mapped classes from the given assembly. + + + + + + Returns all types which match the given restrictions. + + List of RDF classes + A c# type in a inheritence tree. Give Resource if you don't know what to do. + Should inferencing be factored in. + + + + The the RDF class of a C# type. + + + + + + + An interface for classes which provide functionality to manage a set of resources. + + + + + Uri of this model. + + + + + True if the model is empty. + + + + + All unampped properties will be ignored for update and thus deleted. + This reduces the amount of data thats get sent to the database but also might remove important data. + Setting this to true essentialy disables the triple API. + + + + + Adds an existing resource to the model and its backing RDF store. The resulting resource supports the use of the Commit() method. + + The resource to be added to the model. + Transaction associated with the action. + The resource which is now connected to the current model. + + + + Adds an existing resource to the model and its backing RDF store. The resulting resource supports the use of the Commit() method. + + The resource to be added to the model. + Transaction associated with this action. + The resource which is now connected to the current model. + + + + Creates a new resource in the model and its backing RDF store. + + The format string from which a globally unique identifier URI should be generated from. + Transaction associated with this action. + An instance of the given object type wrapping the newly created resource. + The newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Creates a new resource in the model and its backing RDF store. + + A Uniform Resource Identifier. + Transaction associated with this action. + The newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Creates a new resource in the model and its backing RDF store. Provides a resource object of the given type. + + Type of the resource object. Must be derived from Resource. + The format string from which a globally unique identifier URI should be generated from. + Transaction associated with this action. + An instance of the given object type wrapping the newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Creates a new resource in the model and its backing RDF store. Provides a resource object of the given type. + + Type of the resource object. Must be derived from Resource. + A Uniform Resource Identifier. + Transaction associated with this action. + An instance of the given object type wrapping the newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Creates a new resource in the model and its backing RDF store. Provides a resource object of the given type. + + The concrete type of the resource. This must be a subclass of resource. + The format of the resulting uri. + Transaction associated with this action. + An instance of the given object type wrapping the newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Creates a new resource in the model and its backing RDF store. Provides a resource object of the given type. + This method can be used to create a resource of a type which was asserted at runtime. + + A Uniform Resource Identifier. + Type of the resource object. Must be derived from Resource. + Transaction associated with this action. + An instance of the given object type wrapping the newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Removes the given resource from the model and its backing RDF store. Note that there is no verification + that the given resource and its stored represenation have identical properties. + + A Uniform Resource Identifier. + The transaction associated with this action. + + + + Removes the given resource from the model and its backing RDF store. Note that there is no verification + that the given resource and its stored represenation have identical properties. + + Resource that is to be removed from the model. + Transaction associated with this action. + + + + Indicates wheter a given resource is part of the model. + + A Uniform Resource Identifier. + Transaction associated with this action. + True if the resource is part of the model, False if not. + + + + Indicates wheter a given resource is part of the model. + + Resource that should be looked up in the model. + Transaction associated with this action. + True if the resource is part of the model, False if not. + + + + Execute a SPARQL query against the model. + + A SparqlQuery object. + Modifier to enable inferencing. Default is false. + Transaction associated with this action. + A SPARQL query result object. + + + + Execute a SparqlUpdate against the model. + + A sparql update object. + Transaction associated with this action. + + + + Retrieves a resource from the model. + + A Uniform Resource Identifier. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. Provides a resource object of the given type. + + A Uniform Resource Identifier. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. + + The instance of IResource to be retrieved. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. Provides a resource object of the given type. + + A Uniform Resource Identifier. + The type the resource should have. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. + + The instance of IResource to be retrieved. + Transaction associated with this action. + A resource with all asserted properties. + + + + Executes a SPARQL query and provides an enumeration of matching resources. + + A SparqlQuery object. + Modifier to enable inferencing. Default is false. + Transaction associated with the action. + An enumeration of resources that match the given query. + + + + Executes a SPARQL query and provides an enumeration of matching resources. + + A SparqlQuery object. + Modifier to enable inferencing. Default is false. + Transaction associated with the action. + An enumeration of resources that match the given query. + + + + Returns a enumeration of all resources that match the given type. + + Modifier to enable inferencing. Default is false. + Transaction associated with the action. + An enumeration of resources that match the given query. + + + + Returns a queryable object that can be used to build LINQ statements. + + + + + + + Executes a SPARQL query and provides an enumeration of matching resources. + + A SparqlQuery object. + Modifier to enable inferencing. Default is false. + Transaction associated with the action. + An enumeration of resources that match the given query. + + + + Imports the contents of a model located by the given URL. The method supports + importing files and other models stored in the local RDF store. + + A uniform resource locator. + The serialization format. + True to update the model, false to replace the data. + True if the contents of the model were imported, False if not. + + + + Imports the contents of a graph serialized in the stream to this model. + + The stream containing the serialization + Format of the serialization + True to update the model, false to replace the data. + True if the contents of the model were imported, False if not. + + + + Serializes the contents of the model and provides a memory stream. + + The file stream to write to. + The serialization format. + A serialization of the models contents. + + + + Updates a resource with it's current state in the model. + + + + + + + Removes all elements from the model. + + + + + Starts a transaction which can be used to group more queries together to be executed as one. + + Isolation level used to lock the database. + A handle to the transaction. + + + + Compares two models by their uris + + + + + Equals + + + + + + + + HashCode + + + + + + + The model group can be used to query over multiple models at once. + + + + + The default model of this group + + + + + A set of resources which represent a logical model for a given application domain. + + + + + The Uniform Resource Identifier which provides a name for the model. + + + + + Indicates if the model contains statements. + + + + + All unampped properties will be ignored for update and thus deleted. + This reduces the amount of data thats get sent to the database but also might remove important data. + Setting this to true essentialy disables the triple API. + + + + + This constructor is intended to be used only be the ModelManager. + + The underlying triple store implementation to be used. + Uniform Resource Identifier of the model. + + + + Removes all elements from the model. + + + + + Adds an existing resource to the model and its backing RDF store. The resulting resource supports the use of the Commit() method. + + The resource to be added to the model. + Transaction associated with the action. + The resource which is now connected to the current model. + + + + Adds an existing resource to the model and its backing RDF store. The resulting resource supports the use of the Commit() method. + + The resource to be added to the model. + Transaction associated with the action. + The resource which is now connected to the current model. + + + + Creates a new resource in the model and its backing RDF store. Provides a resource object of the given type. + + The format of the resulting uri. + Transaction associated with this action. + An instance of the given object type wrapping the newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Creates a new resource in the model and its backing RDF store. + + A Uniform Resource Identifier. + Transaction associated with this action. + The newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Creates a new resource in the model and its backing RDF store. Provides a resource object of the given type. + + Type of the resource object. Must be derived from Resource. + The format of the resulting uri. + Transaction associated with this action. + An instance of the given object type wrapping the newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Creates a new resource in the model and its backing RDF store. Provides a resource object of the given type. + + Type of the resource object. Must be derived from Resource. + A Uniform Resource Identifier. + Transaction associated with this action. + An instance of the given object type wrapping the newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Creates a new resource in the model and its backing RDF store. Provides a resource object of the given type. + + Type of the resource object. Must be derived from Resource. + The format of the resulting uri. + Transaction associated with this action. + An instance of the given object type wrapping the newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Creates a new resource in the model and its backing RDF store. Provides a resource object of the given type. + This method can be used to create a resource of a type which was asserted at runtime. + + A Uniform Resource Identifier. + Type of the resource object. Must be derived from Resource. + Transaction associated with this action. + An instance of the given object type wrapping the newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Removes the given resource from the model and its backing RDF store. Note that there is no verification + that the given resource and its stored representation have identical properties. + + A Uniform Resource Identifier. + Transaction associated with this action. + + + + Removes the given resource from the model and its backing RDF store. Note that there is no verification + that the given resource and its stored representation have identical properties. + + A resource object. + Transaction associated with this action. + + + + Updates the properties of a resource in the backing RDF store. + + Resource that is to be updated in the backing store. + Transaction associated with this action. + + + + Indicates wheter a given resource is part of the model. + + A Uniform Resource Identifier. + Transaction associated with this action. + True if the resource is part of the model, False if not. + + + + Indicates wheter a given resource is part of the model. + + A resource object. + Transaction associated with this action. + True if the resource is part of the model, False if not. + + + + Execute a SPARQL Query. + + A SparqlQuery object. + Indicate that this query should work with enabled inferencing. + Transaction associated with this action. + A SparqlQueryResults object in any case. + + + + Execute a SPARQL Update. + + A SparqlUpdate object. + Transaction associated with this action. + + + + Retrieves a resource from the model. + + A Uniform Resource Identifier. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. + + The instance of IResource to be retrieved. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. Provides a resource object of the given type. + + A Uniform Resource Identifier. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. Provides a resource object of the given type. + + The resource that should be retrieved. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. Provides a resource object of the given type. + This method can be used for runtime asserted types. + + A Uniform Resource Identifier. + Type of the resource object. Must be derived from Resource. + Transaction associated with this action. + An instance of the given resource object type, Null otherwise. + + + + Executes a SPARQL query and provides an enumeration of matching resources. + + The SparqlQuery object that should be executed. + Indicate that this query should work with enabled inferencing. + transaction associated with this action. + An enumeration of resources that match the given query. + + + + Executes a SPARQL query and provides an enumeration of matching resources. + Provides a resource object of the given type. + + The SparqlQuery object that should be executed. + Indicate that this query should work with enabled inferencing. + transaction associated with this action. + An enumeration of resources that match the given query. + + + + Returns a enumeration of all resources that match the given type. + + Indicate that this query should work with enabled inferencing. + transaction associated with this action. + An enumeration of resources that match the given query. + + + + TODO + + + + + + + Executes a SPARQL-select query and provides a list of binding sets. This method + implements transparent type marshalling and delivers the bound variables in C# + native data types. + + A SPARQL-select query which results in a set of bound variables. + Indicate that this query should work with enabled inferencing. + Transaction associated with this action. + An enumeration of bound variables that match the given query. + + + + Exports the contents of the model and provides a memory stream. + + File stream to write to. + The serialization format. + A serialization of the models contents. + + + + Imports the contents of a model located by the given URL. The method supports + importing files and other models stored in the local RDF store. The location + of the model is determined by the URI scheme. + + A uniform resource locator. + Serialization format + Pass false if you want to overwrite existing data. True if you want to keep the data and add the new entries. + True if the contents of the model were imported, False if not. + + + + Reads model contents from a stream. The method supports importing files and other models stored in the local RDF store. + + A stream. + Serialization format + Pass false if you want to overwrite existing data. True if you want to keep the data and add the new entries. + True if the contents of the model were imported, False if not. + + + + Starts a transaction which can be used to group more queries together to be executed as one. + + Isolation level used to lock the database. + A handle to the transaction. + + + + Implementation of the IModelGroup interface. + + + + + All unampped properties will be ignored for update and thus deleted. + This reduces the amount of data thats get sent to the database but also might remove important data. + Setting this to true essentialy disables the triple API. + + + + + The default model of this group. + + + + + Uri of the model group is null. + + + + + Tests if all contained models are empty. + + + + + Create a new model group from a store and a collection of models + + A store + A collection of models belonging to that store. + + + + Create a new model group from a store and a collection of models + + A store + A set of models belonging to that store. + + + + Not supported. ModelGroups are read-only. + + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + Not supported. ModelGroups are read-only. + + + + + Not supported. ModelGroups are read-only. + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + + + Indicates wheter a given resource is part of the model. + + A Uniform Resource Identifier. + Transaction associated with this action. + True if the resource is part of the model, False if not. + + + + Indicates wheter a given resource is part of the model. + + Resource that should be looked up in the model. + Transaction associated with this action. + True if the resource is part of the model, False if not. + + + + Execute a SPARQL query against the model. + + A SparqlQuery object. + Modifier to enable inferencing. Default is false. + Transaction associated with this action. + A SPARQL query result object. + + + + Retrieves a resource from the model. + + A Uniform Resource Identifier. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. Provides a resource object of the given type. + + The instance of IResource to be retrieved. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. + + A Uniform Resource Identifier. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. Provides a resource object of the given type. + + The instance of IResource that is to be retrieved. + Transaction associated with this action. + The type of the resource. + A resource with all asserted properties. + + + + Retrieves a resource from the model. + + The uri of the resource that is to be retrieved. + The type the resource should have. + Transaction associated with this action. + A resource with all asserted properties. + + + + Executes a SPARQL query and provides an enumeration of matching resources. + + A SparqlQuery object. + Modifier to enable inferencing. Default is false. + Transaction associated with the action. + An enumeration of resources that match the given query. + + + + Executes a SPARQL query and provides an enumeration of matching resources. + + A SparqlQuery object. + Modifier to enable inferencing. Default is false. + Transaction associated with the action. + An enumeration of resources that match the given query. + + + + Returns a enumeration of all resources that match the given type. + + Modifier to enable inferencing. Default is false. + Transaction associated with the action. + An enumeration of resources that match the given query. + + + + TODO + + + + + + + Executes a SPARQL query and provides an enumeration of matching resources. + + A SparqlQuery object. + Modifier to enable inferencing. Default is false. + Transaction associated with the action. + An enumeration of resources that match the given query. + + + + Serializes the contents of the model and provides a memory stream. + + The file stream to write to. + The serialization format. + A serialization of the models contents. + + + + Imports the contents of a graph serialized in the stream to this model. + + The stream containing the serialization + Format of the serialization + True to update the model, false to replace the data. + True if the contents of the model were imported, False if not. + + + + Add another model to the model group. + + The model to add + true if the element is added to the model group false if the element is already present + + + + Removes all elements in the specified collection from the model group. + + The collection of models to remove. + + + + Modifies the model group to contain only elements that are present in the current group and the specified collection. + + The collection to compare. + + + + Determines whether the model group is a subset of the given collection. + + The collection to compare. + true if the model group is a subset; otherwise, false. + + + + Determines whether the model group is a superset of the given collection. + + The collection to compare + true if the model group is a superset; otherwise, false. + + + + Determines whether the model group is a subset of the given collection. + + The collection to compare. + true if the model group is a subset; otherwise, false. + + + + Determines whether the model group is a superset of the given collection. + + The collection to compare. + >true if the model group is a superset; otherwise, false. + + + + Determines wether the model group and the given collection share common models. + + The collection to compare. + true if the model group shares common models; otherwise, false. + + + + Determines wether the model group and the given collection contain the same elements. + + The collection to compare. + true if the collections is equal; otherwise, false. + + + + Modifies the mode group to contain only elements either present in that object or the given collection, but not both. + + The collection to compare. + + + + Modifies the mode group to contain both elements present in that object and the given collection. + + The collection to compare. + + + + Determines if the model group contains the given model. + + The model to locate. + true if the model exists in the group; otherwise, false. + + + + Copies the given models in the group starting at the specified index. + + The models to copy. + The array index + + + + Returns the number of models in the group. + + + + + Returns if the group is read only. + + + + + Removes a model from the group. + + + + + + + Enumerator of the models + + + + + + Enumerator of the models + + + + + + Abstract class which marks subclasses as ontologies. Needed for automatic discovery. + + + + + This static class contains a mapping of all properties and classes to its uris for discovery of the proper object and its attributes. + For future reference: look into PreApplicationStartMethodAttribute Class or ModuleInitializer + + + + + All registered RDF ontology prefixes in the current application. + + + + + All registered RDF properties in the current application. + + + + + All registered RDF classes in the current application. + + + + + Register a namespace with a prefix. + + A namespace prefix. + A uniform resource identifier. + + + + Register an assembly to search for RDF ontologies. + + + + + + Register the calling assembly to search for RDF ontologies. + + + + + Register the concepts from a given set of ontologies. + + An enumeration of ontologies. + + + + Returns a a property with the given Uri. Creates a new one if it doesn't exist. + + + + + + + Returns a a property with the given string. Creates a new one if it doesn't exist. + + + + + + + Objects of this class represent RDF properties. + + + + + Constructor taking a Uri parameter + + Uri of the property + + + + Constructor taking a UriRef parameter + + Uri of the property + + + + Determines wheter the URIs of the compared objects are equal. + + The object to be compared. + true if the URIs of the compared objects are equal, false otherwise. + + + + Returns the hash code of the objects URI. + + A hash code string. + + + + This class does the heavy lifting of the property mapping mechanism. It stores the value and acts as intermediary for the resource. + + + + + + The value of the mapped property. + + + + + The datatype of the the mapped property. + + + + + The datatype of the the mapped property. + + + + + If the datatype is a collection, this contains the generic type. + + + + + If the datatype is a collection, this contains the generic type. + + + + + True if the property is mapped to a collection. + + + + + True if the property is mapped to a collection. + + + + + True if the value has not been set. + + + + + True if the value has not been set. + + + + + Language of the value. + + + + + Gets the mapped RDF property. + + + + + Gets the URI of the mapped RDF property. + + + + + Gets the name of the mapped .NET property. + + + + + Only valid if type or generic type is string. The mapping ignores the language setting and is always non-localized. + + + + + Creates a new property mapping. + + Name of the property in the class + The RDF property that should be mapped + This parameter is only valid if the type is string. Tells the mapping that the values should be treated as non-localized literals. + + + + Creates a new property mapping. + + Name of the property in the class + The RDF property that should be mapped + The default value used to initialize this property + This parameter is only valid if the type is string. Tells the mapping that the values should be treated as non-localized literals. + + + + Creates a new property mapping. + + Name of the property in the class + The URI of the RDF property that should be mapped + This parameter is only valid if the type is string. Tells the mapping that the values should be treated as non-localized literals. + + + + Creates a new property mapping. + + Name of the property in the class + The URI of the RDF property that should be mapped + The default value used to initialize this property + This parameter is only valid if the type is string. Tells the mapping that the values should be treated as non-localized literals. + + + + Sets the property value. + + A value. + + + + Returns the property value. + + The value, if any. + + + + Sets a single literal value or adds a value to a property mapped to a value collection. + + + This method is meant to be called from the non-mapped interface. It replaces the current value if + it is mapped to one value, adds it if the property is mapped to a list. + + The value. + + + + Deletes the containing value and sets the state to unset. In case of a collection, it tries to remove the value from it. + + + + + + Gets the value or values mapped to this property. + + + + + + Gets a list of strings as list of tuples containing the values and the language tags. + + + + + + Method to test if a type is compatible. In case of collection, the containing type is tested for compatibility. + + The type to test. + True if the type is compatible + + + + Indicates if the mapped value is a numeric type. + + A .NET type object. + true if the type is numeric, false otherwise. + + + + Indicates if the precision of a numeric target type is greater or equal to a given source type. + + The source type. + The target type. + true if the types are precision compatible, false otherwise. + + + + Clones the mapping of another resource. + + + + + + Clears the mapping and resets it. + + + + + A dictionary of named value bindings which represents a single query solution. + + + + + Exposes a SPARQL query. + + + + + The model on which the query will be run. + + + + + The type of the query. + + + + + Indicates if inference should be enabled. It depends on the underlying store if and how this is used. + + + + + Bind parameters to specified values. + + + + + + + Returns all prefixes that were specified by the query. + + + + + + Enumerates the graphs which are declared in FROM and FROM NAMED directives at the root level. + + An enumeration of URI strings. + + + + Get an array of all variable names that are defined in the root scope of the query. + + An array of avaiable names without the preceding '$' or '?' characters, if any. + + + + Get the root graph pattern. + + A non empty string, on success. + + + + Gets the outermost ORDER BY clause. + + A non empty string if a ORDER BY clause is defined. + + + + Indicates if the query selects variables that are used as subject, predicate and object in a triple pattern. + + true if the query selects triples, false otherwise. + + + + Returns the string representation of the query. + + The SPARQL query string. + + + + Exposes the results of a SPARQL query. + + + + + Number of items in the result set. + + + + + + Enumerate the resource objects in the result. + + + + + + + + Enumerate the resource objects of a given type in the result. + + + + + + + + + Returns the bool value from ASK query forms. + + True on success, False otherwise. + + + + Returns marshalled Resource objects returned from DESCRIBE, CONSTRUCT + or interpretable SELECT query forms. + + An enumeration of Resource objects. + + + + Returns marshalled instances of the given Resource type which were + returned from DESCRIBE, CONSTRUCT or interpretable SELECT query forms. + + The Resource type object. + An enumeration of instances of the given type. + + + + Returns a set of bound values (bindings) returned from SELECT query forms. + + An enumeration of bound solution variables (BindingSet). + + + + Extensions for the ConstantExpression type. + + + + + Convert the expression into a ConstantTerm. + + A constant expression. + A ConstantTerm object. + + + + Convert the expression into a IriExpression. + + A constant expression. + A IriExpression object. + + + + Convert the expression into a LiteralExpression. + + A constant expression. + A LiteralExpression object. + + + + Convert the expression into a numeric expression. + + A constant expression. + A NumericExpression object. + + + + Convert the expression into a node. + + A constant expression. + A Node object. + + + + Indicates if the expression can be evaluated to false. + + A constant expression. + true if the value is either null or false, false otherwise. + + + + Indicate if an expression contains antoher or is equal to it. + + An expression. + Expression to be evaluated. + true if e is equal to the given expression or one of its query sources, false otherwise. + + + + Extensions for the MemberInfo type. + + + + + Gets the first custom attribute of a specified type which is attached to a class member. + + Custom attribute type. + A class member. + A custom attribute object on success, null otherwise. + + + + Get the .NET type of the given class member. + + A class member. + The class member type. + + + + Indicates if the given member is of type Uri or a sub type. + + A class member. + true if the member can be represented by a URI, false otherwise. + + + + Indicates if the given member is a built-in call. + + A class member. + true if the class member is a built-in call, false otherwise. + + + + Extensions for the MethodCall type. + + + + + Indicates if the method call has an argument with a specified value at a specified location. + + A method call expression. + Location of the argument. + Value of the argument. + true if the method call has an argument with the given value, false otherwise. + + + + Indicates if the method call has an argument at a speficied loaction with one of the specified values. + + A method call expression. + Location of the argument. + Values of the argument. + true if the method call has an argument with one of the given values, false otherwise. + + + + Get the value of an argument at the specified location. + + Value type. + A method call expression. + Argument location. + + + + + Get the value of an argument at the specified location. + + Value type. + A method call expression. + Argument location. + Value to be returned if no argument is specified at the given location. + + + + + Extension for the NodeFactory type. + + + + + Create a boolean literal value. + + A node factory. + Value of the literal node. + A new literal node object. + + + + Generates SELECT queries which return binding sets. + + + This class is intended to be used as a root query generator. For generating SELECT queries + for sub-queries, refer to SubSelectQueryGenerator. + + + + + Builds the triples required to access a given member and accociates its value with a variable. + + The member to be accessed. + The object variable associated with the member value. + + + + Builds the triples required to access a given member and accociates its value with a variable. + + The member to be accessed. + The object variable associated with the member value. + + + + Generates a SPARQL query from a LINQ query model by visiting all clauses and invoking + expression implementation using a ExpressionTreeVisitor. + + The result type. + + + + Allows to access query generators and sub query generators in a tree-like fashion. + + + + + Visits all expressions in a query model and handles the query generation. + + + + + Get a variable from an expression that can be used as a subject in triple patterns and represents resources. + + + + + + + A simple SPARQL parser. + + + This class is primarily intended to support a limited range of query + preprocessing tasks such as setting the values of query parameters (@-variables) + as quickly as possible. It does not aim to support the full SPARQL standard syntax. + + + + + We use the list of tokens to generate the query string with bound parameters on demand. + + + + + Type of the last read token. + + + + + URIs of the graphs queried or manipulated by the query. + + + + + Namespace prefixes defined in the query. + + + + + Namespace prefixes referenced in the query. + + + + + Names of the bindable query parameters starting with '@'. + + + + + Bound literal values of the query parameters. + + + + + Token types of the query parameters. + + + + + Creates a new instance of the SparqlPreprocessor class. + + A text reader. + SPARQL syntax level. + + + + Starts analyzing the SPARQL query. + + Trz to add prefix definitions for the namespaces used but not declared in the query. + + + + Gets the next parseable Token from the Input or raises an Error. + + + + + + Add FROM definition to the query. + + URI of the graph. + + + + Add a FROM NAMED definition to the query. + + URI of the graph. + + + + Gets the PREFIX definitions in the query. + + + + + + Set the value for a query parameter which is preceeded by '@'. + + The parameter name including the '@'. + The paramter value. + + + + Return the query with all bound variables. + + Level of the sub graph to be returned (0 := entire query). + + + + + Returns the entire query string. + + + + + + Graph pattern scope of variables defined in a SPARQL query. + + + + + A variable accessible in all levels of the query. + + + + + A locally accessible variable. + + + + + A simple SPAQL Query class. This class aims to ease formulating SPARQL + query strings by automatically setting PREFIX declarations from a given + namespace manager. + + + + + + Cached version of the query string. + + + + + Indicates if a query parameter value has been changed and the cached query string needs to be regenerated. + + + + + The SPARQL query processor used to determine the prefixes and statement variables in the query. + + + + + Names of the globally defined variables without the preceding '?'. + + + + + The default model of the Query, if there is excactly one. + + + + + Get or set the model used for this query. + + + + + The query form as defined in http://www.w3.org/TR/rdf-sparql-query/#QueryForms + + + + + Indicates if the query result should be expanded using run-time inferencing. + + + + + Creates a new SPARQL query. If enabled, the PREFIXES used in any of the query's graph patterns will + be declared in the query header if they are found in the application config. Additionally, the query + may be compacted in order to reduce processing overhead when being used repeatedly in loops. + + The SPARQL query string. + Set to true if the namespace prefixes used in the query should be declared. + + + + Indicates if the query provides a description of one or more resources. + + + + + Set the value for a query parameter which is preceeded by '@'. + + The parameter name including the '@'. + The paramter value. + + + + Enumerates the graphs which are declared in FROM and FROM NAMED directives at the root level. + + An enumeration of URI strings. + + + + Returns all prefixes that were specified by the query. + + + + + + Gets the names of all variables which are defined in the root graph pattern. + + + + + + Gets the entire query as a string. + + + + + + Indicates if the query contains an ORDER BY clause in any of its graph patterns. + + true if the query contains an ORDER BY clause, false otherwise. + + + + Adds a LIMIT <int> clause to the query in order to restrict it to put an upper bound on the number of solutions returned. + + The number of return values. + + + + Adds an Offset <int> clause to the query which causes the solutions generated to start after the specified number of solutions. + + The number of entries to skip. + + + + Returns the query string with generated prefixes and subsituted parameters. + + A valid SPARQL string. + + + + The SPARQL query forms as specified in http://www.w3.org/TR/rdf-sparql-query/#QueryForms + + + + + The SPARQL query type could not be determined. + + + + + The ASK query form. + + + + + The CONSTRUCT query form. + + + + + The DESCRIBE query form. + + + + + The SELECT query form. + + + + + A preprocsesor for SPARQL queries. + + + + + The SPARQL query form, i.e. ASK, DESCRIBE, SELECT, CONSTRUCT. + + + + + Indicates if the query returns triples. + + + + + Variables visible in the query root scope. + + + + + Variables only visible in local scope. + + + + + Indicates if the query has an ORDER BY solution modifier. + + + + + Create a new instance of the SparqlQueryPreprocessor class. + + A text reader. + SPARQL syntax level. + + + + Gets the next token in the query and advance the reader position. + + A SPARQL token. + + + + Adds a LIMIT clause to the query in order to restrict it to put an upper bound on the number of solutions returned. + + The number of return values. + + + + Adds an OFFSET clause to the query which causes the solutions generated to start after the specified number of solutions. + + The number of return values. + + + + Get the entire SPARQL query string. + + A SPARQL query string. + + + + Get the ORDER BY clause. + + A string. + + + + Provides functionality to perform serialization of native .NET types into SPARQL strings. + + + + + Serializes a string and excapes special characters. + + A string literal. + + + + + Serializes a string with a translation + + A string literal. + A language tag. + + + + + Serializes a typed literal. + + A value. + A type URI. + + + + + Serializes a value depdening on its type. + + An object. + + + + + Serializes a DateTime object. + + A date time object. + + + + + Serializes a URI. + + A uniform resource identifier. + + + + + Serializes a resource. + + A resource. + Ignores all unmapped properties for serialization. + + + + + Generate the dataset clause for a given model. + + A model. + + + + + Generate a dataset clause for a model group. + + A model group. + + + + + Generate a dataset clause for an enumeration of models. + + An enumeration of models. + + + + + Serialize a count query for the given SPARQL query. + + The model to be queried. + The query which results should be counted. + + + + + Generate a query which returns the URIs of all resources selected in a given query. + + The model to be queried. + The SPARQL query which provides resources. + Offset solution modifier. + Limit solution modifier. + + + + + Add an offset or limit solution modifier to a given SPARQL query. + + The model to be queried. + The SPARQL query to be executed. + Offset solution modifier. + Limit solution modifier. + + + + + A simple SPARQL Update class. This class aims to ease formulating SPARQL + query strings by automatically setting PREFIX declarations from a given + namespace manager. + + + + + Get or set the model used for this query. + + + + + Get or set the resource being updated. + + + + + The SPARQL processor used to determine the prefixes and statement variables in the query. + + + + + The plain SPARQL update string. + + + + + Create a new SPARQL Update with an optional namespace manager instance which + can be used to declare PREFIX declarations for the namespace abbreviations + used in the update string. + + The u update string. + + + + Set the value for a query parameter which is preceeded by '@'. + + The parameter name including the '@'. + The paramter value. + + + + Returns the query string with generated prefixes and subsituted parameters. + + A valid SPARQL string. + + + + Enumerates all supported RDF serialization formats. + + + + + RDF/XML http://www.w3.org/TR/REC-rdf-syntax/ + + + + + N3 http://www.w3.org/TeamSubmission/n3/ + + + + + NTriples http://www.w3.org/2001/sw/RDFCore/ntriples/ + + + + + NTriples https://www.w3.org/TR/2014/REC-n-quads-20140225/ + + + + + TriG http://www.w3.org/TR/trig/ + + + + + Turtle http://www.w3.org/TR/turtle/ + + + + + JSON + + + + + JSON-LD https://www.w3.org/TR/json-ld/ + + + + + This class repesents a RDF resource. + + + + + The cache for the associated resources, needed to support lazy loading for mapping. + + + + + This dictionary contains the properties and the associated values. + + + + + Contains a list of all properties which implement the INotifyPropertyChanged interface. + + + + + All mappings as discovered by InitialisePropertyMapping. + + + + + Handle to the model. + + + + + Public accessor to the model. + + + + + The uri which represents the resource. + + + + + New resource which have never been committed need to be treated differently. + + + + + Indicates if the resources has been disposed. + + + + + True if the properties of the resources has been committed to the model. + + + + + Indicates this resource is read-only. + + + + + This method provides a mechanism to change writability in subclasses. + + + + + + Set the language of this resource. This will change te mapped strings to this language. + + + + + Private since a Resource cannot be created without a URI. + + + + + Create a new resource with a given Uri. + + + + + + Create a new resource with a given Uri. + + + + + + Create a new resource with a given string. Throws an exception if string is Uri compatible. + + The string converted to a Uri. Throws an exception if not possible. + + + + Create a new instance of the class and copy the properties from another class instance. + + + + + + Destructor + + + + + Sets the model the resource is stored in. + + A model. + + + + Loads and initialises all mapped properties. + + + This method could be re-reimplemented and sped up by the CIL generator. + + + + + Overwrite this method to return the RDF classes of your resource type. + + + + + + Returns the uri with brackets. + + + + + + Determines wheter the URIs of the compared objects are equal. + + The object to be compared. + true if the URIs of the compared objects are equal, false otherwise. + + + + Returns the hash code of the objects URI. + + A hash code string. + + + + Internal method to add the values. This is not public because the value is of type object and thus not typesafe for rdf. + + + + + + + + Add a property with a resource as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a string as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a string and language as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a string and language as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a Int16 as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a Int32 as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a Int64 as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a UInt16 as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a UInt32 as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a UInt64 as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a float as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a double as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a decimal as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a bool as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a DateTime as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a byte array as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with an Uri as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Internal method to remove the values. This is not public because the value is of type object and thus not typesafe for rdf. + + + + + + + Removes a property with a IResource value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a string value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a string value associated with the given language. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a string value associated with the given language. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a Int16 value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a Int32 value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a Int64 value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a UInt16 value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a UInt32 value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a UInt64 value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a float value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a double value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a decimal value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a bool value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a DateTime value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a byte array value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with an Uri value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Internal method to remove all properties. + + + + + Returns true if the resource has any object connected with the specified property. + + The property to be checked. + true if the property is associated, false if not + + + + Returns true if the specified value is connected to this resource with the given property. + + The property to be checked + The value that should be tested + true if the value is associated with the property, false if not + + + + Returns true if the specified string value with the given language is connected to this resource with the given property. + + The property + The string value. + The language the string is in. + + + + + Returns true if the specified string value with the given language is connected to this resource with the given property. + + The property + The string value. + The language the string is in. + + + + + This method lists all combinations of properties and values. + + Only return values which should be serialized. + + + + + Lists all values associated with one property. + This inclues the mapped values as well. + + + + + + + List all available properties. + This includes mapped properties if they have valid values. + + + + + + Return the value for a given property. + + A RDF property. + The value on success, null if the object has no such property. + + + + Return the value for a given property with a predefined default value. + + A RDF property. + Specifies a default value that should be returned if no value exists. + The value on success, the default value if the object has no such property. + + + + Persist changes in the model. + + + + + Reload the resource from the model. + + + + + This method returns if property is mapped. + + Rdf property to be tested. + Type of the mapping. + + + + + This method returns the mapped property of the given rdf property and type. It returns null if this mapping is not available. + + Rdf property to be tested. + Type of the mapping. + + + + + Returns the value from the mapped property. + + + + + + + + Set the mapped value. This also raises the PropertyChanged event. + + + + + + + + Load all cached resources from the mapped property. The values of the mapped property are resolved when this method returns. + + + + + + Register a property name to raise the INotifyProperty signal on rollback. + + Name of a property. + + + + Raises the PropertyChanged event of the object. + + Name of a property. + + + + Update the property mappings with the values in the selected language. + + + + + Dispose this resource. + Does nothing meaningful currently. + + + + + Needed for the implementation of the INotifyPropertyChanged interface. + + + + + Warns the developer if this object does not have + a public property with the specified name. This + method does not exist in a Release build. + + + + + Returns whether an exception is thrown, or if a Debug.Fail() is used + when an invalid property name is passed to the VerifyPropertyName method. + The default value is false, but subclasses used by unit tests might + override this property's getter to return true. + + + + + This method loads the cached Resources for the given MappingProperty from the Storage and returns them. + They are instantiated as the defined type. The cache for this mapping property is emptied. + + Mapping property which should be loaded from cache. + List of formerly cached resources. + + + + Tests if the mapping has cached values. + + + + + + + Tests if the mapping has a certain cached values. + + + + + + + + + + + + + + + Converts resources to and from JSON format. + + + + + Create a new instance of the JsonResourceConverter class. + + A triple store. + + + + Indicates if the given object can be converted. + + An object. + true if the object is of type Resource, false otherwise. + + + + Convert a JSON string into an object. + + A JSON reader. + Returned object type. + The existing value of object being read. + The calling serializer. + + + + + Indicates if the converter can write JSON. + + + + + Write the JSON representation of an object. + + The JSON writer to be used. + The object value. + The JSON serializer to be used. + + + + Settings for the serializing resources to and from JSON format. + + + + + Create a new instance of the JsonResourceSerializerSettings class. + + A triple store. + + + + A store adapter for dotNetRDF. + + + + + Creates a new dotNetRDFStore. + + A list of ontology file paths relative to this assembly. The store will be populated with these ontologies. + + + + Removes model from the store. + + Uri of the model which is to be removed. + + + + Query if the model exists in the store. + OBSOLETE: This method does not list empty models. At the moment you should just call GetModel() and test for IsEmpty() + + Uri of the model which is to be queried. + + + + + Executes a query on the store which does not expect a result. + + The update query + An associated transaction + + + + Executes a SparqlQuery on the store. + + + + + + + + This method queries the dotNetRdf store directly. + + + + + + + Gets a handle to a model in the store. + + Uri of the model. + + + + + Indicates if the store is ready to be queried. + + + + + Lists all models in the store. + + All handles to existing models. + + + + Try parse RDF from a given text reader into the store. + + The text reader to read from. + The graph to store the read triples. + RDF format to be read. + + + + Loads a serialized graph from the given stream into the current store. See allowed formats. + + Stream containing a serialized graph + Uri of the graph in this store + Allowed formats + Pass false if you want to overwrite the existing data. True if you want to add the new data to the existing. + + + + + Loads a serialized graph from the given location into the current store. See allowed formats. + + Uri of the graph in this store + Location + Allowed formats + Pass false if you want to overwrite the existing data. True if you want to add the new data to the existing. + + + + + Writes a serialized graph to the given stream. See allowed formats. + + Stream to which the content should be written. + Uri fo the graph in this store + Allowed formats + + + + + + + + + + + + Creates a model group which allows for queries to be made on multiple models at once. + + + + + + + Creates a model group which allows for queries to be made on multiple models at once. + + + + + + + Closes the store. It is not usable after this call. + + + + + A store provider for dotNetRDF triple store adapters. + + + + + Create a new instance of the dotNetRDFStoreProvider class. + + + + + Create a new triple store with the given settings. + + Triple store setting variables. + + + + + A generic triple provider interface + + + + + Indicates if another triple is available + + + + + Iterates to the next triple + + + + + Subject + + + + + Predicate + + + + + Object + + + + + Number of total triples + + + + + Resets the provider + + + + + Storage that can can connect to Sparql Endpoints + + + + + + + Indicates if the store is ready to be queried. + + + + + Set this property to log the SPARQL queries which are executed on this store. + For example, to log to the console, set this property to System.Console.Write(System.String). + + + + + A store adapter for SPARQL protocol endpoints. + + + + + Create a new instance of the SparqlEndpointStoreProvider. + + + + + Create a new triple store with a specified configuration. + + Triple store specific configuration variables. + + + + + Handles query results for Stardog triple stores. + + + + + An RDF handler for Stardog triple stores. + + + + + Handles events when reading an RDF file has started and no triples have been read. + + The source of the event. + + + + Handle events when reading an RDF file has ended and all triples have been read. + + The source of the event. + Indicates if errors have occured while reading the file. + + + + Handle events when during reading of an RDF file a triple has been read. + + The source of the event. + The triple. + + + + RDF result handler for Stardog triple stores. + + + + + Result value of ASK queries. + + + + + Binding result of SELECT queries. + + + + + Create a new instance of the class StardogResultHandler. + + + + + Must be overridden by derived handlers to appropriately handle boolean results. + + Boolean result value. + + + + Must be overridden by derived handlers to appropriately handler SPARQL Results. + + SPARQL bindings. + + + + + Must be overridden by derived handlers to appropriately handle variable declarations. + + Variable name. + + + + + Indicates the result value of ASK queries. + + true or false + + + + A store adapter for Stardog databases. + + + + + Indicates if the store is connected and awaiting queries. + + + + + Create a new instance of the StardogStore class. + + URL of the host to connect to. + Username to be used when connecting. + Password to be used when connecting. + Knowledge base / database identifier. + + + + Adds a new model with the given uri to the storage. + + Uri of the model + Handle to the model + + + + Query if the model exists in the store. + OBSOLETE: This method does not list empty models. At the moment you should just call GetModel() and test for IsEmpty + + Uri of the model which is to be queried. + + + + + Executes a query on the store which does not expect a result. + + SPARQL Update to be executed. + An optional transaction. + + + + Executes a SparqlQuery on the store. + + SPARQL query string to be executed. + An optional transaction. + + + + + Executes a SparqlQuery on the store. + + SPARQL query to be executed. + An optional transaction. + + + + + Gets a handle to a model in the store. + + Model URI. + + + + + Lists all models in the store. + + All handles to existing models. + + + + Loads a serialized graph from the given stream into the current store. See allowed formats. + + Stream containing a serialized graph + Uri of the graph in this store + Allowed formats + Pass false if you want to overwrite the existing data. True if you want to add the new data to the existing. + + + + + Loads a serialized graph from the given location into the current store. See allowed formats. + + Uri of the graph in this store + Location + Allowed formats + Pass false if you want to overwrite the existing data. True if you want to add the new data to the existing. + + + + + Writes a serialized graph to the given stream. See allowed formats. + + Stream to which the content should be written. + Uri fo the graph in this store + Allowed formats + + + + + Removes model from the store. + + Uri of the model which is to be removed. + + + + Starts a transaction. The resulting transaction handle can be used to chain operations together. + + Isolation level of the operations executed in the transaction. + + + + + Invoked when a transaction is completed. + + Object which invoked the event. + Event arguments. + + + + Creates a model group which allows for queries to be made on multiple models at once. + + The list of uris of the models that should be grouped together. + + + + + Creates a model group which allows for queries to be made on multiple models at once. + + The list of model handles that should be grouped together. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Wrapper to support Stardog transactions. At present, nested transaction is NOT supported as the transaction instance is a wrapper around the StardogConnector. + + + + + + + + Instance is active and has not been committed or rolled back. + Once the transaction has been committed or rolled back, it should be disposed of. + + + + + + + + + + + + + + + + + + + + Number of pending "Additions" in the current transaction. + + + + + Number of pending "Removals" in the current transaction. + + + + + Has any pending changes. + + + + + SPARQL converter. Takes a typical Stardog "update" query and decomposes it so that it can be used with the StardogConnector's UpdateGraph method. + Does require a valid Store instance to extract the Removals from the current connection. + + + + + An RDF triple. + + + + + Get or set the subject of the triple. + + + + + Get or set the predicate of the triple. + + + + + Get or set the object of the triple. + + + + + Gets a SPARQL compliant string representation of the triple. + + A string. + + + + An RDF node. + + + + + Get or set the literal node. + + + + + Get or set the literal data type URI. + + + + + Indicates if the node is a literal. + + + + + Get a SPARQL compliant string representation of the node. + + + + + + The last SPARQL query supplied to + + + + + The URI of the Graph Additions and Deletes will be applied to. + + + + + The URI of the entity being updated/saved. + + + + + Triple instances which will be removed + + + + + Triple instances converted from UpdateTriples + + + + + Parsed TripleSet instances which constitute the Additions + + + + + Create an instance of the class StardogUpdateSparqlConvertor. + + + + + Create an instance of the class StardogUpdateSparqlConvertor. + + Startdog store instance. + + + + Given a typical SPARQL update query, it will be parsed and decomposed into the appropriate artifacts suitable to call the StardogConnector UpdateGraph method. + + SPARQL query string. + + + + Returns string based triples, separated by a ' ; ' string. If only two are found, the s value is returned as null since it is assumed that predicate and object are present. + + + + + Peaks ahead to see if there is another node present; indicated by the next non-whitespace of a < or ' character. + + + + + Extensions for the System.String type. + + + + + Extracts the instance'th string between start and end. + If start or end is null/empty then instance is assumed to always be 1 regardless of the value. + + Input string + Start delimiter + End delimiter + Instance of start/end to use. + + + + Extracts the instance'th string between start and end. + If start or end is null/empty then instance is assumed to always be 1 regardless of the value. + + Input string + Start delimiter + End delimiter + Pointer into input where parsing ended. This will be at the point AFTER end was found. + Instance of start/end to use. + + + + Returns the string between the first set of single quotes. Supports escaped single quotes but only \\' + + Input string + Pointer into input where parsing ended. This will be at the point AFTER end was found. + + + + + This class allows the usage of the Stardog store. + An IStore handle can be created by calling + StoreFactory.CreateStore("provider=stardog;host=http://localhost:5820;uid=admin;pw=admin;sid=MyStore"); + + + + + Create a new instance of the class StardogStoreProvider. + + + + + The GetStore method which will be called with the parsed configuration string. + + Store specific configuation parameters. + An instance of IStore. + + + + The IStorage interface describes the methods an RDF Storage has to implement. + + + + + Indicates if the store is ready to be queried. + + + + + Set this property to log the SPARQL queries which are executed on this store. + For example, to log to the console, set this property to System.Console.Write(System.String). + + + + + Adds a new model with the given uri to the storage. + + Uri of the model + Handle to the model + + + + Removes model from the store. + + Uri of the model which is to be removed. + + + + Removes model from the store. + + Handle to the model which is to be removed. + + + + Query if the model exists in the store. + OBSOLETE: This method does not list empty models. At the moment you should just call GetModel() and test for IsEmpty + + Uri of the model which is to be queried. + + + + + Query if the model exists in the store. + OBSOLETE: This method does not list empty models. At the moment you should just call GetModel() and test for IsEmpty + + Handle to the model which is to be queried. + + + + + Gets a handle to a model in the store. + + Uri of the model. + + + + + Lists all models in the store. + + All handles to existing models. + + + + Executes a SparqlQuery on the store. + + + + + + + + Executes a query on the store which does not expect a result. + + + + + + + Starts a transaction. The resulting transaction handle can be used to chain operations together. + + The isolation level of the transaction. + + + + + Creates a model group which allows for queries to be made on multiple models at once. + + The list of uris of the models that should be grouped together. + + + + + Creates a model group which allows for queries to be made on multiple models at once. + + The list of uris of the models that should be grouped together. + + + + + Loads a serialized graph from the given location into the current store. See allowed formats. + + Uri of the graph in this store + Location + Allowed formats + Pass false if you want to overwrite the existing data. True if you want to add the new data to the existing. + + + + + Loads a serialized graph from the given stream into the current store. See allowed formats. + + Stream containing a serialized graph + Uri of the graph in this store + Allowed formats + Pass false if you want to overwrite the existing data. True if you want to add the new data to the existing. + + + + + Writes a serialized graph to the given stream. See allowed formats. + + Stream to which the content should be written. + Uri fo the graph in this store + Allowed formats + + + + + Initializes the store from the configuration. It uses either the provided file or attempts to load from "ontologies.config" located next to the executing assembly. + For legacy reasons it also looks in the app.config file. + If the ontology files are in a different path, this can be supplied as a base path.. + + Path the configuration should be read from. + Path where the ontologies should be searched for. + + + + Initializes the store from the configuration. It uses either the provided file or attempts to load from "ontologies.config" located next to the executing assembly. + For legacy reasons it also looks in the app.config file. + If the ontology files are in a different path, this can be supplied as a base path.. + + Load a specific configuration file. + If given, this function tries to load the ontologies from this folder. + + + + Exposes methods for executing triple store specific methods. + + + + + Load storage specific configurations. + + Triple store instance. + + + + This class encapsulates the functionality of an abstract triple store. Cannot be used directly. + Use StoreFactory to get a concret implementation. + + + + + Indicates if the store is connected and awaiting queries. + + + + + Set this property to log the SPARQL queries which are executed on this store. + For example, to log to the console, set this property to System.Console.Write(System.String). + + + + + Removes model from the store. + + Uri of the model which is to be removed. + + + + Removes model from the store. + + Handle of the model which is to be removed. + + + + Query if the model exists in the store. + OBSOLETE: This method does not list empty models. At the moment you should just call GetModel() and test for IsEmpty + + Uri of the model which is to be queried. + + + + + Query if the model exists in the store. + OBSOLETE: This method does not list empty models. At the moment you should just call GetModel() and test for IsEmpty + + Handle to the model which is to be queried. + + + + + Lists all models in the store. + + All handles to existing models. + + + + Executes a SparqlQuery on the store. + + SPARQL query to be executed. + An optional transaction. + + + + + Executes a query on the store which does not expect a result. + + SPARQL Update to be executed. + An optional transaction. + + + + Starts a transaction. The resulting transaction handle can be used to chain operations together. + + Isolation level of the operations executed in the transaction. + + + + + Loads a serialized graph from the given location into the current store. See allowed formats. + + Uri of the graph in this store + Location + Allowed formats + Pass false if you want to overwrite the existing data. True if you want to add the new data to the existing. + + + + + Loads a serialized graph from the given stream into the current store. See allowed formats. + + Stream containing a serialized graph + Uri of the graph in this store + Allowed formats + Pass false if you want to overwrite the existing data. True if you want to add the new data to the existing. + + + + + Writes a serialized graph to the given stream. See allowed formats. + + Stream to which the content should be written. + Uri fo the graph in this store + Allowed formats + + + + + Initializes the store from the configuration. It uses either the provided file or attempts to load from "ontologies.config" located next to the executing assembly. + For legacy reasons it also looks in the app.config file. + If the ontology files are in a different path, this can be supplied as a base path.. + + Load a specific configuration file. + If given, this function tries to load the ontologies from this folder. + + + + Initializes the store from the configuration. It uses either the provided file or attempts to load from "ontologies.config" located next to the executing assembly. + For legacy reasons it also looks in the app.config file. + If the ontology files are in a different path, this can be supplied as a base path.. + + Path the configuration should be read from. + Path where the ontologies should be searched for. + + + + This method loads the configuration data from the given file. + This can read the old App.config and new ontologies.config files. + + Path to either ontologies.config or App.config file. + + + + + Loads Ontologies defined in the currently loaded config file into the store. + + Handle of the configuration. + Searchpath for the ontologies. + + + + Disposes this store and it's underlying connection. This object cannot be reused after disposing. + + + + + Adds a new model with the given uri to the storage. + + Uri of the model + Handle to the model + + + + Gets a handle to a model in the store. + + Model URI. + + + + + Creates a model group which allows for queries to be made on multiple models at once. + + The list of uris of the models that should be grouped together. + + + + + Creates a model group which allows for queries to be made on multiple models at once. + + The list of model handles that should be grouped together. + + + + + This is the factory for object implementing the IStore interface. + If you want to use your own store, you can load the assembly containing the provider with the LoadProvider method. + + + + + Tests if the given connection string is valid. + + + + + + + Creates a store from the given connection string. + + + + + + + Tries to read a connection string with the given name from the configuration. If no name was given, the first compatible connection string is used. + + + + + + + Creates a temporary in-memory store using the dotNetRDF provider. + + + + + + Create a store suitable for querying SPARQL protocol endpoints. + + URL of the SPARQL endpoint. + + + + + Tries to load a store provider from the given assembly. + + + + + + + Tries to load a store provider from the given assembly file. + + A assembly file info object. + + + + + Tries to load a store provider from the given assembly. + + An assembly. + + + + + This is the abstract store provider class. Implement it if you want to write your own store provider. + + + + + The name of the store. + + + + + All valid configuration options + + + + + The constructor of the store provider + + + + + The GetStore method which will be called with the parsed configuration string. + + Store specific configuation parameters. + An instance of IStore. + + + + This class can be used to load or update ontologies in stores. It provides convinence methods to load directly from the ontologies.config file. + + + + + Create a new instance of the StoreUpdater class. + + The store you want to update. + A directory used as base path. + + + + This method loads the given ontologies into the provided store. + A model will be created for each ontology. If it already exists, it wil be replaced. + + A collection of ontologies to be loaded. + + + + Gets an absolute path from a location relative to the triple store instance. + + A relative path. + + + + + This method can be used to load storage specific configuration. + + + + + + Handle for transaction events. + + Object which raised the event. + Event arguments. + + + + Exposes a repository which supports transactions. + + + + + The isolation level of the transaction. + + + + + Commit the transaction. + + + + + Rolls the transaction back. + + + + + Will be raised if transaction finishes. + + + + + Interface for a transactional object + + + + + Persist any changes to the object. + + + + + Discard any changes to the object. + + + + + This class encapsulates arguments for transaction event. + + + + + Indicates that the transaction finished with a commit. + + + + + Indicates that the transaction finished with a rollback. + + + + + Create a new transaction event object. + + Pass true to indicate that a commit happened. Pass false to indicate that a rollback happend. + + + + This class extends the framework Uri class to also include fragments for + equality testing. + + + + + Creates an UriRef from an Uri + + + + + + Create an UriRef from a string. + + + + + + Creates an UriRef from a string with a given UriKind. + + + + + + + Creates an UriRef from a base uri and a relative uri as string. + + + + + + + Tests the equality of two UriRefs. + + + + + + + Override of GetHashCode which factors the fragment in. + + + + + + Generates a globally unique resource identifier in the Semiodesk namespace: <urn:uuid:{GUID}/> + + A Uniform Resource Identifier. + + + + A Uniform Resource Name (URN). + + + + + Create a new instance of a URN from an identifier. + + Identifier associated with a URN namespace. + + + + Provides functionality for the serialization and deserialization of .NET + objects to XML Schema encoded strings. + + + + + XSD URI vocabulary. + + + + + Maps .NET types to XSD type URIs. + + + + + Maps XSD type URIs to .NET types. + + + + + Maps .NET types to object serialization delegates. + + + + + Maps XSD type URIs to object deserialization delegates. + + + + + Provides the XML Schema type URI for a given .NET type. + + A .NET type object. + A XML Schema type URI. + + + + Indicates if there is a registered XML Schema type URI for the given .NET type. + + A .NET type object. + true if there is a XML schema type, false otherwise. + + + + Provides the XML Schema type URI for a given .NET type. + + A xsd type uri. + A XML Schema type URI. + + + + The object serialization delegate + + + + + + + Serializes an object to an XML Schema encoded string. + + + + + + + Serializes an object forcd to a given type to an XML Schema encoded string. + + + + + + + + Serialize an IResource + + + + + + + Serialize an Uri + + + + + + + Serialize a string + + + + + + + Serialize an array of strings + + + + + + + Serialize a tuple consisting of a string and its associated culture + + + + + + + Serialize a DateTime + + + + + + + Serialize a byte array + + + + + + + Serialize a bool + + + + + + + Serialize an Int16 + + + + + + + Serialize an Int32 + + + + + + + Serialize an Int64 + + + + + + + Serialize an Uint16 + + + + + + + Serialize an Uint32 + + + + + + + Serialize an Uint64 + + + + + + + Serialize a decimal + + + + + + + Serialize a double + + + + + + + Serialize a float + + + + + + + Deserialization delegate, format for deserialization functions. + + + + + + + Deserialize string, nothing to do. + + The string + The string + + + + Deserialize string with given type uri. + + The value as string. + The xsd type. + The value in its correct type. + + + + Deserialize an int16 from a string. + + The serialized int16 + An int16 + + + + Deserialize an int32 from a string. + + The serialized int32 + a int32 value + + + + Deserialize an int64 from a string. + + The serialized int64 + A int64 value + + + + Deserialize an uint6 from a string. + + The serialized int64 + A uint16 value + + + + Deserialize an int32 from a string. + + The serialized int32 + A int32 value + + + + Deserialize an uint64 from a string. + + The serialized uint64 + A uint64 value + + + + Deserialize a bool from a string. + + The serialized bool + A bool value + + + + Deserialize a decimal from a string. + + The serialized decimal + A decimal value + + + + Deserialize a double from a string. + + The serialized double + A double value + + + + Deserialize a single from a string. + + The serialized single + A single value + + + + Deserialize a DateTime from a string. + + The serialized DateTime + A DateTime value + + + + Deserialize a Resource from a string. + + The serialized Resource + A Resource value + + + + Deserialize a uri from a string. + + The serialized uri + A uri value + + + + Deserialize a ByteArray from a string. + + The serialized ByteArray + A ByteArray value + + + + Deserialize a XmlNode from a string. + + The serialized XmlNode + A XmlNode value + + + + Deserialize a LiteralNode from a string. + + The serialized LiteralNode + A LiteralNode value + + + diff --git a/tests/Trinity.Tests.Virtuoso/bin/Debug/net472/Targets/Semiodesk.Trinity.targets b/tests/Trinity.Tests.Virtuoso/bin/Debug/net472/Targets/Semiodesk.Trinity.targets new file mode 100644 index 0000000..9b0ba79 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Debug/net472/Targets/Semiodesk.Trinity.targets @@ -0,0 +1,31 @@ + + + + + + Full + + + + + + + + + + + + $(CoreCompileDependsOn);GenerateOntologyTarget + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/Trinity.Tests.Virtuoso/bin/Debug/net472/custom.config b/tests/Trinity.Tests.Virtuoso/bin/Debug/net472/custom.config new file mode 100644 index 0000000..3261e54 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Debug/net472/custom.config @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/Trinity.Tests.Virtuoso/bin/Debug/net472/nunit_random_seed.tmp b/tests/Trinity.Tests.Virtuoso/bin/Debug/net472/nunit_random_seed.tmp new file mode 100644 index 0000000..bf5267c --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Debug/net472/nunit_random_seed.tmp @@ -0,0 +1 @@ +2146855766 \ No newline at end of file diff --git a/tests/Trinity.Tests.Virtuoso/bin/Debug/net472/ontologies-test.config b/tests/Trinity.Tests.Virtuoso/bin/Debug/net472/ontologies-test.config new file mode 100644 index 0000000..6e04670 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Debug/net472/ontologies-test.config @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/Trinity.Tests.Virtuoso/bin/Debug/net472/ontologies.config b/tests/Trinity.Tests.Virtuoso/bin/Debug/net472/ontologies.config new file mode 100644 index 0000000..370a980 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Debug/net472/ontologies.config @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/Trinity.Tests.Virtuoso/bin/Debug/net472/without_store.config b/tests/Trinity.Tests.Virtuoso/bin/Debug/net472/without_store.config new file mode 100644 index 0000000..76533dd --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Debug/net472/without_store.config @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/Trinity.Tests.Virtuoso/bin/Debug/nunit.framework.xml b/tests/Trinity.Tests.Virtuoso/bin/Debug/nunit.framework.xml new file mode 100644 index 0000000..e871828 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Debug/nunit.framework.xml @@ -0,0 +1,20670 @@ + + + + nunit.framework + + + + + The different targets a test action attribute can be applied to + + + + + Default target, which is determined by where the action attribute is attached + + + + + Target a individual test case + + + + + Target a suite of test cases + + + + + DefaultTestAssemblyBuilder loads a single assembly and builds a TestSuite + containing test fixtures present in the assembly. + + + + + The default suite builder used by the test assembly builder. + + + + + Initializes a new instance of the class. + + + + + Build a suite of tests from a provided assembly + + The assembly from which tests are to be built + A dictionary of options to use in building the suite + + A TestSuite containing the tests found in the assembly + + + + + Build a suite of tests given the name or the location of an assembly + + The name or the location of the assembly. + A dictionary of options to use in building the suite + + A TestSuite containing the tests found in the assembly + + + + + FrameworkController provides a facade for use in loading, browsing + and running tests without requiring a reference to the NUnit + framework. All calls are encapsulated in constructors for + this class and its nested classes, which only require the + types of the Common Type System as arguments. + + The controller supports four actions: Load, Explore, Count and Run. + They are intended to be called by a driver, which should allow for + proper sequencing of calls. Load must be called before any of the + other actions. The driver may support other actions, such as + reload on run, by combining these calls. + + + + + Construct a FrameworkController using the default builder and runner. + + The AssemblyName or path to the test assembly + A prefix used for all test ids created under this controller. + A Dictionary of settings to use in loading and running the tests + + + + Construct a FrameworkController using the default builder and runner. + + The test assembly + A prefix used for all test ids created under this controller. + A Dictionary of settings to use in loading and running the tests + + + + Construct a FrameworkController, specifying the types to be used + for the runner and builder. This constructor is provided for + purposes of development. + + The full AssemblyName or the path to the test assembly + A prefix used for all test ids created under this controller. + A Dictionary of settings to use in loading and running the tests + The Type of the test runner + The Type of the test builder + + + + Construct a FrameworkController, specifying the types to be used + for the runner and builder. This constructor is provided for + purposes of development. + + The test assembly + A prefix used for all test ids created under this controller. + A Dictionary of settings to use in loading and running the tests + The Type of the test runner + The Type of the test builder + + + + Gets the ITestAssemblyBuilder used by this controller instance. + + The builder. + + + + Gets the ITestAssemblyRunner used by this controller instance. + + The runner. + + + + Gets the AssemblyName or the path for which this FrameworkController was created + + + + + Gets the Assembly for which this + + + + + Gets a dictionary of settings for the FrameworkController + + + + + Loads the tests in the assembly + + + + + + Returns info about the tests in an assembly + + A string containing the XML representation of the filter to use + The XML result of exploring the tests + + + + Runs the tests in an assembly + + A string containing the XML representation of the filter to use + The XML result of the test run + + + + Runs the tests in an assembly synchronously reporting back the test results through the callback + or through the return value + + The callback that receives the test results + A string containing the XML representation of the filter to use + The XML result of the test run + + + + Runs the tests in an assembly asynchronously reporting back the test results through the callback + + The callback that receives the test results + A string containing the XML representation of the filter to use + + + + Stops the test run + + True to force the stop, false for a cooperative stop + + + + Counts the number of test cases in the loaded TestSuite + + A string containing the XML representation of the filter to use + The number of tests + + + + Inserts environment element + + Target node + The new node + + + + Inserts settings element + + Target node + Settings dictionary + The new node + + + + FrameworkControllerAction is the base class for all actions + performed against a FrameworkController. + + + + + LoadTestsAction loads a test into the FrameworkController + + + + + LoadTestsAction loads the tests in an assembly. + + The controller. + The callback handler. + + + + ExploreTestsAction returns info about the tests in an assembly + + + + + Initializes a new instance of the class. + + The controller for which this action is being performed. + Filter used to control which tests are included (NYI) + The callback handler. + + + + CountTestsAction counts the number of test cases in the loaded TestSuite + held by the FrameworkController. + + + + + Construct a CountsTestAction and perform the count of test cases. + + A FrameworkController holding the TestSuite whose cases are to be counted + A string containing the XML representation of the filter to use + A callback handler used to report results + + + + RunTestsAction runs the loaded TestSuite held by the FrameworkController. + + + + + Construct a RunTestsAction and run all tests in the loaded TestSuite. + + A FrameworkController holding the TestSuite to run + A string containing the XML representation of the filter to use + A callback handler used to report results + + + + RunAsyncAction initiates an asynchronous test run, returning immediately + + + + + Construct a RunAsyncAction and run all tests in the loaded TestSuite. + + A FrameworkController holding the TestSuite to run + A string containing the XML representation of the filter to use + A callback handler used to report results + + + + StopRunAction stops an ongoing run. + + + + + Construct a StopRunAction and stop any ongoing run. If no + run is in process, no error is raised. + + The FrameworkController for which a run is to be stopped. + True the stop should be forced, false for a cooperative stop. + >A callback handler used to report results + A forced stop will cause threads and processes to be killed as needed. + + + + The ITestAssemblyBuilder interface is implemented by a class + that is able to build a suite of tests given an assembly or + an assembly filename. + + + + + Build a suite of tests from a provided assembly + + The assembly from which tests are to be built + A dictionary of options to use in building the suite + A TestSuite containing the tests found in the assembly + + + + Build a suite of tests given the filename of an assembly + + The filename of the assembly from which tests are to be built + A dictionary of options to use in building the suite + A TestSuite containing the tests found in the assembly + + + + The ITestAssemblyRunner interface is implemented by classes + that are able to execute a suite of tests loaded + from an assembly. + + + + + Gets the tree of loaded tests, or null if + no tests have been loaded. + + + + + Gets the tree of test results, if the test + run is completed, otherwise null. + + + + + Indicates whether a test has been loaded + + + + + Indicates whether a test is currently running + + + + + Indicates whether a test run is complete + + + + + Loads the tests found in an Assembly, returning an + indication of whether or not the load succeeded. + + File name of the assembly to load + Dictionary of options to use in loading the test + An ITest representing the loaded tests + + + + Loads the tests found in an Assembly, returning an + indication of whether or not the load succeeded. + + The assembly to load + Dictionary of options to use in loading the test + An ITest representing the loaded tests + + + + Count Test Cases using a filter + + The filter to apply + The number of test cases found + + + + Explore the test cases using a filter + + The filter to apply + Test Assembly with test cases that matches the filter + + + + Run selected tests and return a test result. The test is run synchronously, + and the listener interface is notified as it progresses. + + Interface to receive ITestListener notifications. + A test filter used to select tests to be run + + + + Run selected tests asynchronously, notifying the listener interface as it progresses. + + Interface to receive EventListener notifications. + A test filter used to select tests to be run + + + + Wait for the ongoing run to complete. + + Time to wait in milliseconds + True if the run completed, otherwise false + + + + Signal any test run that is in process to stop. Return without error if no test is running. + + If true, kill any test-running threads + + + + Implementation of ITestAssemblyRunner + + + + + Initializes a new instance of the class. + + The builder. + + + + Gets the default level of parallel execution (worker threads) + + + + + The tree of tests that was loaded by the builder + + + + + The test result, if a run has completed + + + + + Indicates whether a test is loaded + + + + + Indicates whether a test is running + + + + + Indicates whether a test run is complete + + + + + Our settings, specified when loading the assembly + + + + + The top level WorkItem created for the assembly as a whole + + + + + The TestExecutionContext for the top level WorkItem + + + + + Loads the tests found in an Assembly + + File name or path of the assembly to load + Dictionary of option settings for loading the assembly + A Test Assembly containing all loaded tests + + + + Loads the tests found in an Assembly + + The assembly to load + Dictionary of option settings for loading the assembly + A Test Assembly containing all loaded tests + + + + Count Test Cases using a filter + + The filter to apply + The number of test cases found + + + + Explore the test cases using a filter + + The filter to apply + Test Assembly with test cases that matches the filter + + + + Run selected tests and return a test result. The test is run synchronously, + and the listener interface is notified as it progresses. + + Interface to receive EventListener notifications. + A test filter used to select tests to be run + The test results from the run + + + + Run selected tests asynchronously, notifying the listener interface as it progresses. + + Interface to receive EventListener notifications. + A test filter used to select tests to be run + + RunAsync is a template method, calling various abstract and + virtual methods to be overridden by derived classes. + + + + + Wait for the ongoing run to complete. + + Time to wait in milliseconds + True if the run completed, otherwise false + + + + Signal any test run that is in process to stop. Return without error if no test is running. + + If true, kill any tests that are currently running + + + + Initiate the test run. + + + + + Create the initial TestExecutionContext used to run tests + + The ITestListener specified in the RunAsync call + + + + Handle the Completed event for the top level work item + + + + + Executes the action within an + which ensures the is cleaned up + suitably at the end of the test run. This method only has an effect running + the full .NET Framework. + + + + + The Assert class contains a collection of static methods that + implement the most common assertions used in NUnit. + + + The Assert class contains a collection of static methods that + implement the most common assertions used in NUnit. + + + + + Verifies that the first int is greater than the second + int. If it is not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the first int is greater than the second + int. If it is not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + + + + Verifies that the first value is greater than the second + value. If it is not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the first value is greater than the second + value. If it is not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + + + + Verifies that the first value is greater than the second + value. If it is not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the first value is greater than the second + value. If it is not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + + + + Verifies that the first value is greater than the second + value. If it is not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the first value is greater than the second + value. If it is not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + + + + Verifies that the first value is greater than the second + value. If it is not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the first value is greater than the second + value. If it is not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + + + + Verifies that the first value is greater than the second + value. If it is not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the first value is greater than the second + value. If it is not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + + + + Verifies that the first value is greater than the second + value. If it is not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the first value is greater than the second + value. If it is not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + + + + Verifies that the first value is greater than the second + value. If it is not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the first value is greater than the second + value. If it is not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + + + + Verifies that the first value is less than the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the first value is less than the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + + + + Verifies that the first value is less than the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the first value is less than the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + + + + Verifies that the first value is less than the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the first value is less than the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + + + + Verifies that the first value is less than the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the first value is less than the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + + + + Verifies that the first value is less than the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the first value is less than the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + + + + Verifies that the first value is less than the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the first value is less than the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + + + + Verifies that the first value is less than the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the first value is less than the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + + + + Verifies that the first value is less than the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the first value is less than the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + + + + Verifies that the first value is greater than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the first value is greater than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + + + + Verifies that the first value is greater than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the first value is greater than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + + + + Verifies that the first value is greater than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the first value is greater than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + + + + Verifies that the first value is greater than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the first value is greater than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + + + + Verifies that the first value is greater than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the first value is greater than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + + + + Verifies that the first value is greater than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the first value is greater than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + + + + Verifies that the first value is greater than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the first value is greater than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + + + + Verifies that the first value is greater than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the first value is greater than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + + + + Verifies that the first value is less than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the first value is less than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + + + + Verifies that the first value is less than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the first value is less than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + + + + Verifies that the first value is less than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the first value is less than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + + + + Verifies that the first value is less than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the first value is less than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + + + + Verifies that the first value is less than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the first value is less than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + + + + Verifies that the first value is less than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the first value is less than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + + + + Verifies that the first value is less than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the first value is less than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + + + + Verifies that the first value is less than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the first value is less than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + + + + Asserts that a condition is true. If the condition is false the method throws + an . + + The evaluated condition + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that a condition is true. If the condition is false the method throws + an . + + The evaluated condition + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that a condition is true. If the condition is false the method throws + an . + + The evaluated condition + + + + Asserts that a condition is true. If the condition is false the method throws + an . + + The evaluated condition + + + + Asserts that a condition is true. If the condition is false the method throws + an . + + The evaluated condition + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that a condition is true. If the condition is false the method throws + an . + + The evaluated condition + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that a condition is true. If the condition is false the method throws + an . + + The evaluated condition + + + + Asserts that a condition is true. If the condition is false the method throws + an . + + The evaluated condition + + + + Asserts that a condition is false. If the condition is true the method throws + an . + + The evaluated condition + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that a condition is false. If the condition is true the method throws + an . + + The evaluated condition + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that a condition is false. If the condition is true the method throws + an . + + The evaluated condition + + + + Asserts that a condition is false. If the condition is true the method throws + an . + + The evaluated condition + + + + Asserts that a condition is false. If the condition is true the method throws + an . + + The evaluated condition + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that a condition is false. If the condition is true the method throws + an . + + The evaluated condition + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that a condition is false. If the condition is true the method throws + an . + + The evaluated condition + + + + Asserts that a condition is false. If the condition is true the method throws + an . + + The evaluated condition + + + + Verifies that the object that is passed in is not equal to null + If the object is null then an + is thrown. + + The object that is to be tested + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the object that is passed in is not equal to null + If the object is null then an + is thrown. + + The object that is to be tested + + + + Verifies that the object that is passed in is not equal to null + If the object is null then an + is thrown. + + The object that is to be tested + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the object that is passed in is not equal to null + If the object is null then an + is thrown. + + The object that is to be tested + + + + Verifies that the object that is passed in is equal to null + If the object is not null then an + is thrown. + + The object that is to be tested + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the object that is passed in is equal to null + If the object is not null then an + is thrown. + + The object that is to be tested + + + + Verifies that the object that is passed in is equal to null + If the object is not null then an + is thrown. + + The object that is to be tested + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the object that is passed in is equal to null + If the object is not null then an + is thrown. + + The object that is to be tested + + + + Verifies that the double that is passed in is an NaN value. + If the object is not NaN then an + is thrown. + + The value that is to be tested + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the double that is passed in is an NaN value. + If the object is not NaN then an + is thrown. + + The value that is to be tested + + + + Verifies that the double that is passed in is an NaN value. + If the object is not NaN then an + is thrown. + + The value that is to be tested + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the double that is passed in is an NaN value. + If the object is not NaN then an + is thrown. + + The value that is to be tested + + + + Assert that a string is empty - that is equal to string.Empty + + The string to be tested + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Assert that a string is empty - that is equal to string.Empty + + The string to be tested + + + + Assert that an array, list or other collection is empty + + An array, list or other collection implementing ICollection + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Assert that an array, list or other collection is empty + + An array, list or other collection implementing ICollection + + + + Assert that a string is not empty - that is not equal to string.Empty + + The string to be tested + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Assert that a string is not empty - that is not equal to string.Empty + + The string to be tested + + + + Assert that an array, list or other collection is not empty + + An array, list or other collection implementing ICollection + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Assert that an array, list or other collection is not empty + + An array, list or other collection implementing ICollection + + + + Asserts that an int is zero. + + The number to be examined + + + + Asserts that an int is zero. + + The number to be examined + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that an unsigned int is zero. + + The number to be examined + + + + Asserts that an unsigned int is zero. + + The number to be examined + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that a Long is zero. + + The number to be examined + + + + Asserts that a Long is zero. + + The number to be examined + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that an unsigned Long is zero. + + The number to be examined + + + + Asserts that an unsigned Long is zero. + + The number to be examined + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that a decimal is zero. + + The number to be examined + + + + Asserts that a decimal is zero. + + The number to be examined + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that a double is zero. + + The number to be examined + + + + Asserts that a double is zero. + + The number to be examined + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that a float is zero. + + The number to be examined + + + + Asserts that a float is zero. + + The number to be examined + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that an int is not zero. + + The number to be examined + + + + Asserts that an int is not zero. + + The number to be examined + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that an unsigned int is not zero. + + The number to be examined + + + + Asserts that an unsigned int is not zero. + + The number to be examined + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that a Long is not zero. + + The number to be examined + + + + Asserts that a Long is not zero. + + The number to be examined + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that an unsigned Long is not zero. + + The number to be examined + + + + Asserts that an unsigned Long is not zero. + + The number to be examined + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that a decimal is zero. + + The number to be examined + + + + Asserts that a decimal is zero. + + The number to be examined + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that a double is zero. + + The number to be examined + + + + Asserts that a double is zero. + + The number to be examined + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that a float is zero. + + The number to be examined + + + + Asserts that a float is zero. + + The number to be examined + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that an int is positive. + + The number to be examined + + + + Asserts that an int is positive. + + The number to be examined + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that an unsigned int is positive. + + The number to be examined + + + + Asserts that an unsigned int is positive. + + The number to be examined + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that a Long is positive. + + The number to be examined + + + + Asserts that a Long is positive. + + The number to be examined + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that an unsigned Long is positive. + + The number to be examined + + + + Asserts that an unsigned Long is positive. + + The number to be examined + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that a decimal is positive. + + The number to be examined + + + + Asserts that a decimal is positive. + + The number to be examined + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that a double is positive. + + The number to be examined + + + + Asserts that a double is positive. + + The number to be examined + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that a float is positive. + + The number to be examined + + + + Asserts that a float is positive. + + The number to be examined + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that an int is negative. + + The number to be examined + + + + Asserts that an int is negative. + + The number to be examined + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that an unsigned int is negative. + + The number to be examined + + + + Asserts that an unsigned int is negative. + + The number to be examined + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that a Long is negative. + + The number to be examined + + + + Asserts that a Long is negative. + + The number to be examined + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that an unsigned Long is negative. + + The number to be examined + + + + Asserts that an unsigned Long is negative. + + The number to be examined + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that a decimal is negative. + + The number to be examined + + + + Asserts that a decimal is negative. + + The number to be examined + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that a double is negative. + + The number to be examined + + + + Asserts that a double is negative. + + The number to be examined + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that a float is negative. + + The number to be examined + + + + Asserts that a float is negative. + + The number to be examined + The message to display in case of failure + Array of objects to be used in formatting the message + + + + DO NOT USE! Use Assert.AreEqual(...) instead. + The Equals method throws an InvalidOperationException. This is done + to make sure there is no mistake by calling this function. + + + + + + + DO NOT USE! + The ReferenceEquals method throws an InvalidOperationException. This is done + to make sure there is no mistake by calling this function. + + + + + + + Throws a with the message and arguments + that are passed in. This allows a test to be cut short, with a result + of success returned to NUnit. + + The message to initialize the with. + Arguments to be used in formatting the message + + + + Throws a with the message and arguments + that are passed in. This allows a test to be cut short, with a result + of success returned to NUnit. + + The message to initialize the with. + + + + Throws a with the message and arguments + that are passed in. This allows a test to be cut short, with a result + of success returned to NUnit. + + + + + Throws an with the message and arguments + that are passed in. This is used by the other Assert functions. + + The message to initialize the with. + Arguments to be used in formatting the message + + + + Throws an with the message that is + passed in. This is used by the other Assert functions. + + The message to initialize the with. + + + + Throws an . + This is used by the other Assert functions. + + + + + Issues a warning using the message and arguments provided. + + The message to display. + Arguments to be used in formatting the message + + + + Issues a warning using the message provided. + + The message to display. + + + + Throws an with the message and arguments + that are passed in. This causes the test to be reported as ignored. + + The message to initialize the with. + Arguments to be used in formatting the message + + + + Throws an with the message that is + passed in. This causes the test to be reported as ignored. + + The message to initialize the with. + + + + Throws an . + This causes the test to be reported as ignored. + + + + + Throws an with the message and arguments + that are passed in. This causes the test to be reported as inconclusive. + + The message to initialize the with. + Arguments to be used in formatting the message + + + + Throws an with the message that is + passed in. This causes the test to be reported as inconclusive. + + The message to initialize the with. + + + + Throws an . + This causes the test to be reported as Inconclusive. + + + + + Asserts that an object is contained in a collection. + + The expected object + The collection to be examined + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that an object is contained in a collection. + + The expected object + The collection to be examined + + + + Wraps code containing a series of assertions, which should all + be executed, even if they fail. Failed results are saved and + reported at the end of the code block. + + A TestDelegate to be executed in Multiple Assertion mode. + + + + Wraps code containing a series of assertions, which should all + be executed, even if they fail. Failed results are saved and + reported at the end of the code block. + + A TestDelegate to be executed in Multiple Assertion mode. + + + + Verifies that two doubles are equal considering a delta. If the + expected value is infinity then the delta value is ignored. If + they are not equal then an is + thrown. + + The expected value + The actual value + The maximum acceptable difference between the + the expected and the actual + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that two doubles are equal considering a delta. If the + expected value is infinity then the delta value is ignored. If + they are not equal then an is + thrown. + + The expected value + The actual value + The maximum acceptable difference between the + the expected and the actual + + + + Verifies that two doubles are equal considering a delta. If the + expected value is infinity then the delta value is ignored. If + they are not equal then an is + thrown. + + The expected value + The actual value + The maximum acceptable difference between the + the expected and the actual + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that two doubles are equal considering a delta. If the + expected value is infinity then the delta value is ignored. If + they are not equal then an is + thrown. + + The expected value + The actual value + The maximum acceptable difference between the + the expected and the actual + + + + Verifies that two objects are equal. Two objects are considered + equal if both are null, or if both have the same value. NUnit + has special semantics for some object types. + If they are not equal an is thrown. + + The value that is expected + The actual value + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that two objects are equal. Two objects are considered + equal if both are null, or if both have the same value. NUnit + has special semantics for some object types. + If they are not equal an is thrown. + + The value that is expected + The actual value + + + + Verifies that two objects are not equal. Two objects are considered + equal if both are null, or if both have the same value. NUnit + has special semantics for some object types. + If they are equal an is thrown. + + The value that is expected + The actual value + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that two objects are not equal. Two objects are considered + equal if both are null, or if both have the same value. NUnit + has special semantics for some object types. + If they are equal an is thrown. + + The value that is expected + The actual value + + + + Asserts that two objects refer to the same object. If they + are not the same an is thrown. + + The expected object + The actual object + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that two objects refer to the same object. If they + are not the same an is thrown. + + The expected object + The actual object + + + + Asserts that two objects do not refer to the same object. If they + are the same an is thrown. + + The expected object + The actual object + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that two objects do not refer to the same object. If they + are the same an is thrown. + + The expected object + The actual object + + + + Helper for Assert.AreEqual(double expected, double actual, ...) + allowing code generation to work consistently. + + The expected value + The actual value + The maximum acceptable difference between the + the expected and the actual + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that an async delegate throws a particular exception when called. + + A constraint to be satisfied by the exception + A TestSnippet delegate + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Verifies that an async delegate throws a particular exception when called. + + A constraint to be satisfied by the exception + A TestSnippet delegate + + + + Verifies that an async delegate throws a particular exception when called. + + The exception Type expected + A TestDelegate + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Verifies that an async delegate throws a particular exception when called. + + The exception Type expected + A TestDelegate + + + + Verifies that an async delegate throws a particular exception when called. + + Type of the expected exception + A TestDelegate + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Verifies that an async delegate throws a particular exception when called. + + Type of the expected exception + A TestDelegate + + + + Verifies that an async delegate throws an exception when called + and returns it. + + A TestDelegate + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Verifies that an async delegate throws an exception when called + and returns it. + + A TestDelegate + + + + Verifies that an async delegate throws an exception of a certain Type + or one derived from it when called and returns it. + + The expected Exception Type + A TestDelegate + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Verifies that an async delegate throws an exception of a certain Type + or one derived from it when called and returns it. + + The expected Exception Type + A TestDelegate + + + + Verifies that an async delegate throws an exception of a certain Type + or one derived from it when called and returns it. + + A TestDelegate + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Verifies that an async delegate throws an exception of a certain Type + or one derived from it when called and returns it. + + A TestDelegate + + + + Verifies that an async delegate does not throw an exception + + A TestDelegate + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Verifies that an async delegate does not throw an exception. + + A TestDelegate + + + + Verifies that a delegate throws a particular exception when called. + + A constraint to be satisfied by the exception + A TestSnippet delegate + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Verifies that a delegate throws a particular exception when called. + + A constraint to be satisfied by the exception + A TestSnippet delegate + + + + Verifies that a delegate throws a particular exception when called. + + The exception Type expected + A TestDelegate + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Verifies that a delegate throws a particular exception when called. + + The exception Type expected + A TestDelegate + + + + Verifies that a delegate throws a particular exception when called. + + Type of the expected exception + A TestDelegate + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Verifies that a delegate throws a particular exception when called. + + Type of the expected exception + A TestDelegate + + + + Verifies that a delegate throws an exception when called + and returns it. + + A TestDelegate + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Verifies that a delegate throws an exception when called + and returns it. + + A TestDelegate + + + + Verifies that a delegate throws an exception of a certain Type + or one derived from it when called and returns it. + + The expected Exception Type + A TestDelegate + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Verifies that a delegate throws an exception of a certain Type + or one derived from it when called and returns it. + + The expected Exception Type + A TestDelegate + + + + Verifies that a delegate throws an exception of a certain Type + or one derived from it when called and returns it. + + A TestDelegate + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Verifies that a delegate throws an exception of a certain Type + or one derived from it when called and returns it. + + A TestDelegate + + + + Verifies that a delegate does not throw an exception + + A TestDelegate + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Verifies that a delegate does not throw an exception. + + A TestDelegate + + + + Asserts that a condition is true. If the condition is false the method throws + an . + + The evaluated condition + The message to display if the condition is false + Arguments to be used in formatting the message + + + + Asserts that a condition is true. If the condition is false the method throws + an . + + The evaluated condition + + + + Asserts that a condition is true. If the condition is false the method throws + an . + + The evaluated condition + A function to build the message included with the Exception + + + + Asserts that a condition is true. If the condition is false the method throws + an . + + A lambda that returns a Boolean + The message to display if the condition is false + Arguments to be used in formatting the message + + + + Asserts that a condition is true. If the condition is false the method throws + an . + + A lambda that returns a Boolean + + + + Asserts that a condition is true. If the condition is false the method throws + an . + + A lambda that returns a Boolean + A function to build the message included with the Exception + + + + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and throwing an assertion exception on failure. + + The Type being compared. + An ActualValueDelegate returning the value to be tested + A Constraint expression to be applied + + + + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and throwing an assertion exception on failure. + + The Type being compared. + An ActualValueDelegate returning the value to be tested + A Constraint expression to be applied + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and throwing an assertion exception on failure. + + The Type being compared. + An ActualValueDelegate returning the value to be tested + A Constraint expression to be applied + A function to build the message included with the Exception + + + + Asserts that the code represented by a delegate throws an exception + that satisfies the constraint provided. + + A TestDelegate to be executed + A Constraint expression to be applied + + + + Asserts that the code represented by a delegate throws an exception + that satisfies the constraint provided. + + A TestDelegate to be executed + A Constraint expression to be applied + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Asserts that the code represented by a delegate throws an exception + that satisfies the constraint provided. + + A TestDelegate to be executed + A Constraint expression to be applied + A function to build the message included with the Exception + + + + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and throwing an assertion exception on failure. + + The Type being compared. + The actual value to test + A Constraint expression to be applied + + + + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and throwing an assertion exception on failure. + + The Type being compared. + The actual value to test + A Constraint expression to be applied + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and throwing an assertion exception on failure. + + The Type being compared. + The actual value to test + A Constraint expression to be applied + A function to build the message included with the Exception + + + + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and throwing an assertion exception on failure. + Used as a synonym for That in rare cases where a private setter + causes a Visual Basic compilation error. + + The actual value to test + A Constraint expression to be applied + + + + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and throwing an assertion exception on failure. + Used as a synonym for That in rare cases where a private setter + causes a Visual Basic compilation error. + + + This method is provided for use by VB developers needing to test + the value of properties with private setters. + + The actual value to test + A Constraint expression to be applied + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Asserts that an object may be assigned a value of a given Type. + + The expected Type. + The object under examination + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that an object may be assigned a value of a given Type. + + The expected Type. + The object under examination + + + + Asserts that an object may be assigned a value of a given Type. + + The expected Type. + The object under examination + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that an object may be assigned a value of a given Type. + + The expected Type. + The object under examination + + + + Asserts that an object may not be assigned a value of a given Type. + + The expected Type. + The object under examination + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that an object may not be assigned a value of a given Type. + + The expected Type. + The object under examination + + + + Asserts that an object may not be assigned a value of a given Type. + + The expected Type. + The object under examination + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that an object may not be assigned a value of a given Type. + + The expected Type. + The object under examination + + + + Asserts that an object is an instance of a given type. + + The expected Type + The object being examined + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that an object is an instance of a given type. + + The expected Type + The object being examined + + + + Asserts that an object is an instance of a given type. + + The expected Type + The object being examined + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that an object is an instance of a given type. + + The expected Type + The object being examined + + + + Asserts that an object is not an instance of a given type. + + The expected Type + The object being examined + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that an object is not an instance of a given type. + + The expected Type + The object being examined + + + + Asserts that an object is not an instance of a given type. + + The expected Type + The object being examined + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that an object is not an instance of a given type. + + The expected Type + The object being examined + + + + Delegate used by tests that execute code and + capture any thrown exception. + + + + + Delegate used by tests that execute async code and + capture any thrown exception. + + + + + AssertionHelper is an optional base class for user tests, + allowing the use of shorter names in making asserts. + + + + + Asserts that a condition is true. If the condition is false the method throws + an . Works Identically to + . + + The evaluated condition + The message to display if the condition is false + Arguments to be used in formatting the message + + + + Asserts that a condition is true. If the condition is false the method throws + an . Works Identically to . + + The evaluated condition + + + + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and throwing an assertion exception on failure. + + A Constraint expression to be applied + An ActualValueDelegate returning the value to be tested + + + + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and throwing an assertion exception on failure. + + An ActualValueDelegate returning the value to be tested + A Constraint expression to be applied + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Asserts that the code represented by a delegate throws an exception + that satisfies the constraint provided. + + A TestDelegate to be executed + A Constraint expression to be applied + + + + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and throwing an assertion exception on failure. + + A Constraint expression to be applied + The actual value to test + + + + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and throwing an assertion exception on failure. + + A Constraint expression to be applied + The actual value to test + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Returns a ListMapper based on a collection. + + The original collection + + + + + Returns a ConstraintExpression that negates any + following constraint. + + + + + Returns a ConstraintExpression that negates any + following constraint. + + + + + Returns a ConstraintExpression, which will apply + the following constraint to all members of a collection, + succeeding if all of them succeed. + + + + + Returns a ConstraintExpression, which will apply + the following constraint to all members of a collection, + succeeding if at least one of them succeeds. + + + + + Returns a ConstraintExpression, which will apply + the following constraint to all members of a collection, + succeeding if all of them fail. + + + + + Returns a ConstraintExpression, which will apply + the following constraint to all members of a collection, + succeeding only if a specified number of them succeed. + + + + + Returns a new PropertyConstraintExpression, which will either + test for the existence of the named property on the object + being tested or apply any following constraint to that property. + + + + + Returns a new ConstraintExpression, which will apply the following + constraint to the Length property of the object being tested. + + + + + Returns a new ConstraintExpression, which will apply the following + constraint to the Count property of the object being tested. + + + + + Returns a new ConstraintExpression, which will apply the following + constraint to the Message property of the object being tested. + + + + + Returns a new ConstraintExpression, which will apply the following + constraint to the InnerException property of the object being tested. + + + + + Returns a new AttributeConstraint checking for the + presence of a particular attribute on an object. + + + + + Returns a new AttributeConstraint checking for the + presence of a particular attribute on an object. + + + + + Returns a constraint that tests for null + + + + + Returns a constraint that tests for True + + + + + Returns a constraint that tests for False + + + + + Returns a constraint that tests for a positive value + + + + + Returns a constraint that tests for a negative value + + + + + Returns a constraint that tests for equality with zero + + + + + Returns a constraint that tests for NaN + + + + + Returns a constraint that tests for empty + + + + + Returns a constraint that tests whether a collection + contains all unique items. + + + + + Returns a constraint that tests whether an object graph is serializable in binary format. + + + + + Returns a constraint that tests whether an object graph is serializable in XML format. + + + + + Returns a constraint that tests two items for equality + + + + + Returns a constraint that tests that two references are the same object + + + + + Returns a constraint that tests whether the + actual value is greater than the supplied argument + + + + + Returns a constraint that tests whether the + actual value is greater than or equal to the supplied argument + + + + + Returns a constraint that tests whether the + actual value is greater than or equal to the supplied argument + + + + + Returns a constraint that tests whether the + actual value is less than the supplied argument + + + + + Returns a constraint that tests whether the + actual value is less than or equal to the supplied argument + + + + + Returns a constraint that tests whether the + actual value is less than or equal to the supplied argument + + + + + Returns a constraint that tests whether the actual + value is of the exact type supplied as an argument. + + + + + Returns a constraint that tests whether the actual + value is of the exact type supplied as an argument. + + + + + Returns a constraint that tests whether the actual value + is of the type supplied as an argument or a derived type. + + + + + Returns a constraint that tests whether the actual value + is of the type supplied as an argument or a derived type. + + + + + Returns a constraint that tests whether the actual value + is assignable from the type supplied as an argument. + + + + + Returns a constraint that tests whether the actual value + is assignable from the type supplied as an argument. + + + + + Returns a constraint that tests whether the actual value + is assignable from the type supplied as an argument. + + + + + Returns a constraint that tests whether the actual value + is assignable from the type supplied as an argument. + + + + + Returns a constraint that tests whether the actual value + is a collection containing the same elements as the + collection supplied as an argument. + + + + + Returns a constraint that tests whether the actual value + is a subset of the collection supplied as an argument. + + + + + Returns a constraint that tests whether the actual value + is a superset of the collection supplied as an argument. + + + + + Returns a constraint that tests whether a collection is ordered + + + + + Returns a new checking for the + presence of a particular object in the collection. + + + + + + Returns a new checking for the + presence of a particular object in the collection. + + + To search for a substring instead of a collection element, use the + overload. + + + + + + + Returns a new ContainsConstraint. This constraint + will, in turn, make use of the appropriate second-level + constraint, depending on the type of the actual argument. + + + To search for a collection element instead of a substring, use the + overload. + + + + + + Returns a constraint that succeeds if the actual + value contains the substring supplied as an argument. + + + + + Returns a constraint that succeeds if the actual + value contains the substring supplied as an argument. + + + + + Returns a constraint that fails if the actual + value contains the substring supplied as an argument. + + + + + Returns a constraint that succeeds if the actual + value starts with the substring supplied as an argument. + + + + + Returns a constraint that succeeds if the actual + value starts with the substring supplied as an argument. + + + + + Returns a constraint that succeeds if the actual + value starts with the substring supplied as an argument. + + + + + Returns a constraint that fails if the actual + value starts with the substring supplied as an argument. + + + + + Returns a constraint that succeeds if the actual + value ends with the substring supplied as an argument. + + + + + Returns a constraint that succeeds if the actual + value ends with the substring supplied as an argument. + + + + + Returns a constraint that succeeds if the actual + value ends with the substring supplied as an argument. + + + + + Returns a constraint that fails if the actual + value ends with the substring supplied as an argument. + + + + + Returns a constraint that succeeds if the actual + value matches the regular expression supplied as an argument. + + + + + Returns a constraint that succeeds if the actual + value matches the regular expression supplied as an argument. + + + + + Returns a constraint that succeeds if the actual + value matches the regular expression supplied as an argument. + + + + + Returns a constraint that fails if the actual + value matches the pattern supplied as an argument. + + + + + Returns a constraint that tests whether the path provided + is the same as an expected path after canonicalization. + + + + + Returns a constraint that tests whether the path provided + is a subpath of the expected path after canonicalization. + + + + + Returns a constraint that tests whether the path provided + is the same path or under an expected path after canonicalization. + + + + + Returns a constraint that tests whether the actual value falls + within a specified range. + + + + + Provides static methods to express the assumptions + that must be met for a test to give a meaningful + result. If an assumption is not met, the test + should produce an inconclusive result. + + + + + DO NOT USE! + The Equals method throws an InvalidOperationException. This is done + to make sure there is no mistake by calling this function. + + The left object. + The right object. + Not applicable + + + + DO NOT USE! + The ReferenceEquals method throws an InvalidOperationException. This is done + to make sure there is no mistake by calling this function. + + The left object. + The right object. + + + + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and throwing an InconclusiveException on failure. + + The Type being compared. + An ActualValueDelegate returning the value to be tested + A Constraint expression to be applied + + + + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and throwing an InconclusiveException on failure. + + The Type being compared. + An ActualValueDelegate returning the value to be tested + A Constraint expression to be applied + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and throwing an InconclusiveException on failure. + + The Type being compared. + An ActualValueDelegate returning the value to be tested + A Constraint expression to be applied + A function to build the message included with the Exception + + + + Asserts that a condition is true. If the condition is false the method throws + an . + + The evaluated condition + The message to display if the condition is false + Arguments to be used in formatting the message + + + + Asserts that a condition is true. If the condition is false the + method throws an . + + The evaluated condition + + + + Asserts that a condition is true. If the condition is false the method throws + an . + + The evaluated condition + A function to build the message included with the Exception + + + + Asserts that a condition is true. If the condition is false the method throws + an . + + A lambda that returns a Boolean + The message to display if the condition is false + Arguments to be used in formatting the message + + + + Asserts that a condition is true. If the condition is false the method throws + an . + + A lambda that returns a Boolean + + + + Asserts that a condition is true. If the condition is false the method throws + an . + + A lambda that returns a Boolean + A function to build the message included with the Exception + + + + Asserts that the code represented by a delegate throws an exception + that satisfies the constraint provided. + + A TestDelegate to be executed + A ThrowsConstraint used in the test + + + + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and throwing an InconclusiveException on failure. + + The Type being compared. + The actual value to test + A Constraint expression to be applied + + + + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and throwing an InconclusiveException on failure. + + The Type being compared. + The actual value to test + A Constraint expression to be applied + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and throwing an InconclusiveException on failure. + + The Type being compared. + The actual value to test + A Constraint expression to be applied + A function to build the message included with the Exception + + + + Marks a test as needing to be run in a particular threading apartment state. This will cause it + to run in a separate thread if necessary. + + + + + Construct an ApartmentAttribute + + The apartment state that this test must be run under. You must pass in a valid apartment state. + + + + Provides the author of a test or test fixture. + + + + + Initializes a new instance of the class. + + The name of the author. + + + + Initializes a new instance of the class. + + The name of the author. + The email address of the author. + + + + Applies a category to a test + + + + + The name of the category + + + + + Construct attribute for a given category based on + a name. The name may not contain the characters ',', + '+', '-' or '!'. However, this is not checked in the + constructor since it would cause an error to arise at + as the test was loaded without giving a clear indication + of where the problem is located. The error is handled + in NUnitFramework.cs by marking the test as not + runnable. + + The name of the category + + + + Protected constructor uses the Type name as the name + of the category. + + + + + The name of the category + + + + + Modifies a test by adding a category to it. + + The test to modify + + + + Marks a test to use a combinatorial join of any argument data provided. + Since this is the default, the attribute is optional. + + + + + Default constructor + + + + + Marks a test as using a particular CombiningStrategy to join any supplied parameter data. + Since this is the default, the attribute is optional. + + + + + Construct a CombiningStrategyAttribute incorporating an + ICombiningStrategy and an IParameterDataProvider. + + Combining strategy to be used in combining data + An IParameterDataProvider to supply data + + + + Construct a CombiningStrategyAttribute incorporating an object + that implements ICombiningStrategy and an IParameterDataProvider. + This constructor is provided for CLS compliance. + + Combining strategy to be used in combining data + An IParameterDataProvider to supply data + + + + Builds any number of tests from the specified method and context. + + The MethodInfo for which tests are to be constructed. + The suite to which the tests will be added. + + + + Modify the test by adding the name of the combining strategy + to the properties. + + The test to modify + + + + Marks an assembly, test fixture or test method as applying to a specific Culture. + + + + + Constructor with no cultures specified, for use + with named property syntax. + + + + + Constructor taking one or more cultures + + Comma-delimited list of cultures + + + + Causes a test to be skipped if this CultureAttribute is not satisfied. + + The test to modify + + + + Tests to determine if the current culture is supported + based on the properties of this attribute. + + True, if the current culture is supported + + + + Test to determine if the a particular culture or comma- + delimited set of cultures is in use. + + Name of the culture or comma-separated list of culture ids + True if the culture is in use on the system + + + + Test to determine if one of a collection of cultures + is being used currently. + + + + + + + Abstract base class for all data-providing attributes defined by NUnit. + Used to select all data sources for a method, class or parameter. + + + + + Default constructor + + + + + Marks a field for use as a datapoint when executing a theory within + the same fixture that requires an argument of the field's Type. + + + + + Marks a field, property or method as providing a set of datapoints for use + in executing any theories within the same fixture that require an argument of + the provided Type. The data source may provide an array of the required Type + or an . Synonymous with . + + + + + Marks a field, property or method as providing a set of datapoints for use + in executing any theories within the same fixture that require an argument + of the provided type. The data source may provide an array of the required + Type or an . Synonymous with . + + + + + Sets the tolerance used by default when checking the equality of floating point values + within the test assembly, fixture or method. + + + + + Construct specifying an amount + + + + + + Apply changes to the TestExecutionContext + + The TestExecutionContext + + + + Provides the descriptive text relating to the assembly, test fixture or test method. + + + + + Construct a description Attribute + + The text of the description + + + + Marks an assembly, test fixture or test method such that it will only run if explicitly + executed from the GUI, command line or included within a test filter. + The test will not be run simply because an enclosing suite is run. + + + + + Default constructor + + + + + Constructor with a reason + + The reason test is marked explicit + + + + Modifies a test by marking it as explicit. + + The test to modify + + + + Marks an assembly, test fixture or test method as being ignored. Ignored tests result in a warning message when the tests are run. + + + + + Constructs the attribute giving a reason for ignoring the test + + The reason for ignoring the test + + + + The date in the future to stop ignoring the test as a string in UTC time. + For example for a date and time, "2014-12-25 08:10:00Z" or for just a date, + "2014-12-25". If just a date is given, the Ignore will expire at midnight UTC. + + + Once the ignore until date has passed, the test will be marked + as runnable. Tests with an ignore until date will have an IgnoreUntilDate + property set which will appear in the test results. + + The string does not contain a valid string representation of a date and time. + + + + Modifies a test by marking it as Ignored. + + The test to modify + + + + Abstract base for attributes that are used to include tests in + the test run based on environmental settings. + + + + + Constructor with no included items specified, for use + with named property syntax. + + + + + Constructor taking one or more included items + + Comma-delimited list of included items + + + + Name of the item that is needed in order for + a test to run. Multiple items may be given, + separated by a comma. + + + + + Name of the item to be excluded. Multiple items + may be given, separated by a comma. + + + + + The reason for including or excluding the test + + + + + Sets the number of worker threads that may be allocated by the framework + for running tests. + + + + + Construct a LevelOfParallelismAttribute. + + The number of worker threads to be created by the framework. + + + + Specifies the maximum time (in milliseconds) for a test case to succeed. + + + + + Construct a MaxTimeAttribute, given a time in milliseconds. + + The maximum elapsed time in milliseconds + + + + Marks tests that should NOT be run in parallel. + + + + + Construct a NonParallelizableAttribute. + + + + + Used by third-party frameworks, or other software, that reference + the NUnit framework but do not contain any tests. Applying the + attribute indicates that the assembly is not a test assembly and + may prevent errors if certain runners attempt to load the assembly. + Note that recognition of the attribute depends on each individual runner. + + + + + Abstract base class for all custom attributes defined by NUnit. + + + + + Default constructor + + + + + Identifies a method that is called once to perform setup before any child tests are run. + + + + + Identifies a method to be called once after all the child tests have run. + The method is guaranteed to be called, even if an exception is thrown. + + + + + Defines the order that the test will run in + + + + + Defines the order that the test will run in + + + + + Defines the order that the test will run in + + + + + + Modifies a test as defined for the specific attribute. + + The test to modify + + + + Marks a test as using a pairwise join of any supplied argument data. Arguments will be + combined in such a way that all possible pairs of arguments are used. + + + + + Default constructor + + + + + Marks a test assembly, fixture or method that may be run in parallel. + + + + + Construct a ParallelizableAttribute using default ParallelScope.Self. + + + + + Construct a ParallelizableAttribute with a specified scope. + + The ParallelScope associated with this attribute. + + + + Defines the degree to which this test and its descendants may be run in parallel + + + + + Overridden to check for invalid combinations of settings + + + + + + Modify the context to be used for child tests + + The current TestExecutionContext + + + + Specifies the degree to which a test, and its descendants, + may be run in parallel. + + + + + No ParallelScope was specified on the test + + + + + The test may be run in parallel with others at the same level. + Valid on classes and methods but has no effect on assemblies. + + + + + Test may not be run in parallel with any others. Valid on + classes and methods but not assemblies. + + + + + Mask used to extract the flags that apply to the item on which a + ParallelizableAttribute has been placed, as opposed to descendants. + + + + + Descendants of the test may be run in parallel with one another. + Valid on assemblies and classes but not on non-parameterized methods. + + + + + Descendants of the test down to the level of TestFixtures may be + run in parallel with one another. Valid on assemblies and classes + but not on methods. + + + + + Mask used to extract all the flags that impact descendants of a + test and place them in the TestExecutionContext. + + + + + The test and its descendants may be run in parallel with others at + the same level. Valid on classes and parameterized methods. + For assemblies it is recommended to use + instead, as has no effect on assemblies. + + + + + Marks an assembly, test fixture or test method as applying to a specific platform. + + + + + Constructor with no platforms specified, for use + with named property syntax. + + + + + Constructor taking one or more platforms + + Comma-delimited list of platforms + + + + Causes a test to be skipped if this PlatformAttribute is not satisfied. + + The test to modify + + + + Attaches information to a test assembly, fixture or method as a name/value pair. + + + + + Construct a PropertyAttribute with a name and string value + + The name of the property + The property value + + + + Construct a PropertyAttribute with a name and int value + + The name of the property + The property value + + + + Construct a PropertyAttribute with a name and double value + + The name of the property + The property value + + + + Constructor for derived classes that set the + property dictionary directly. + + + + + Constructor for use by derived classes that use the + name of the type as the property name. Derived classes + must ensure that the Type of the property value is + a standard type supported by the BCL. Any custom + types will cause a serialization Exception when + in the client. + + + + + Gets the property dictionary for this attribute + + + + + Modifies a test by adding properties to it. + + The test to modify + + + + Supplies a set of random values to a single parameter of a parameterized test. + + + + + If true, no value will be repeated. + + + + + Construct a random set of values appropriate for the Type of the + parameter on which the attribute appears, specifying only the count. + + + + + + Construct a set of ints within a specified range + + + + + Construct a set of unsigned ints within a specified range + + + + + Construct a set of longs within a specified range + + + + + Construct a set of unsigned longs within a specified range + + + + + Construct a set of shorts within a specified range + + + + + Construct a set of unsigned shorts within a specified range + + + + + Construct a set of doubles within a specified range + + + + + Construct a set of floats within a specified range + + + + + Construct a set of bytes within a specified range + + + + + Construct a set of sbytes within a specified range + + + + + Retrieves a list of arguments which can be passed to the specified parameter. + + The parameter of a parameterized test. + + + + Supplies a range of values to an individual parameter of a parameterized test. + + + + + Construct a range of ints using default step of 1 + + + + + Construct a range of ints specifying the step size + + + + + Construct a range of unsigned ints using default step of 1 + + + + + Construct a range of unsigned ints specifying the step size + + + + + Construct a range of longs using a default step of 1 + + + + + Construct a range of longs + + + + + Construct a range of unsigned longs using default step of 1 + + + + + Construct a range of unsigned longs specifying the step size + + + + + Construct a range of doubles + + + + + Construct a range of floats + + + + + Retrieves a list of arguments which can be passed to the specified parameter. + + The parameter of a parameterized test. + + + Returns a string that represents the current object. + + + + Specifies that a test should be run multiple times. + + + + + Construct a RepeatAttribute + + The number of times to run the test + + + + Wrap a command and return the result. + + The command to be wrapped + The wrapped command + + + + The test command for the RepeatAttribute + + + + + Initializes a new instance of the class. + + The inner command. + The number of repetitions + + + + Runs the test, saving a TestResult in the supplied TestExecutionContext. + + The context in which the test should run. + A TestResult + + + + Marks a test that must run on a separate thread. + + + + + Construct a RequiresThreadAttribute + + + + + Construct a RequiresThreadAttribute, specifying the apartment + + + + + Specifies that a test method should be rerun on failure up to the specified + maximum number of times. + + + + + Construct a + + The maximum number of times the test should be run if it fails + + + + Wrap a command and return the result. + + The command to be wrapped + The wrapped command + + + + The test command for the + + + + + Initializes a new instance of the class. + + The inner command. + The maximum number of repetitions + + + + Runs the test, saving a TestResult in the supplied TestExecutionContext. + + The context in which the test should run. + A TestResult + + + + Marks a test to use a sequential join of any provided argument data. + Arguments will be combined into test cases, taking the next value of + each argument until all are used. + + + + + Default constructor + + + + + Sets the current Culture on an assembly, test fixture or test method for + the duration of a test. The culture remains set until the test or fixture + completes and is then reset to its original value. + + + + + + Construct given the name of a culture + + + + + + Sets the current UI Culture on an assembly, test fixture or test method + for the duration of a test. The UI culture remains set until the test or + fixture completes and is then reset to its original value. + + + + + + Construct given the name of a culture + + + + + + Identifies a method to be called immediately before each test is run. + + + + + Identifies a class as containing or + methods for all the test fixtures + under a given namespace. + + + + + Builds a from the specified type. + + The type info of the fixture to be used. + + + + Marks a test fixture as requiring all child tests to be run on the + same thread as the OneTimeSetUp and OneTimeTearDown. A flag in the + is set forcing all child tests + to be run sequentially on the current thread. + Any setting is ignored. + + + + + Apply changes to the TestExecutionContext + + The TestExecutionContext + + + + Identifies a method to be called immediately after each test is run. + The method is guaranteed to be called, even if an exception is thrown. + + + + + Abstract attribute providing actions to execute before and after tests. + + + + + Executed before each test is run + + The test that is going to be run. + + + + Executed after each test is run + + The test that has just been run. + + + + Provides the target for the action attribute + + + + + Marks a test assembly as needing a special assembly resolution hook that will + explicitly search the test assembly's directory for dependent assemblies. + This works around a conflict between mixed-mode assembly initialization and + tests running in their own AppDomain in some cases. + + + + + Marks the method as callable from the NUnit test runner. + + + + [TestFixture] + public class Fixture + { + [Test] + public void MethodToTest() + {} + + [Test(Description = "more detailed description")] + public void TestDescriptionMethod() + {} + } + + + + + + Descriptive text for this test + + + + + The author of this test + + + + + The type that this test is testing + + + + + Gets or sets the expected result. Not valid if the test + method has parameters. + + The result. + + + + Modifies a test by adding a description, if not already set. + + The test to modify + + + + Builds a single test from the specified method and context. + + The method for which a test is to be constructed. + The suite to which the test will be added. + + + + Marks a method as a parameterized test suite and provides arguments for each test case. + + + + + Construct a TestCaseAttribute with a list of arguments. + This constructor is not CLS-Compliant + + + + + + Construct a TestCaseAttribute with a single argument + + + + + + Construct a TestCaseAttribute with a two arguments + + + + + + + Construct a TestCaseAttribute with a three arguments + + + + + + + + Gets or sets the name of the test. + + The name of the test. + + + + Gets or sets the RunState of this test case. + + + + + Gets the list of arguments to a test case + + + + + Gets the properties of the test case + + + + + Gets or sets the expected result. + + The result. + + + + Returns true if the expected result has been set + + + + + Gets or sets the description. + + The description. + + + + The author of this test + + + + + The type that this test is testing + + + + + Gets or sets the reason for ignoring the test + + + + + Gets or sets a value indicating whether this is explicit. + + + true if explicit; otherwise, false. + + + + + Gets or sets the reason for not running the test. + + The reason. + + + + Gets or sets the ignore reason. When set to a non-null + non-empty value, the test is marked as ignored. + + The ignore reason. + + + + Comma-delimited list of platforms to run the test for + + + + + Comma-delimited list of platforms to not run the test for + + + + + Gets and sets the category for this test case. + May be a comma-separated list of categories. + + + + + Performs several special conversions allowed by NUnit in order to + permit arguments with types that cannot be used in the constructor + of an Attribute such as TestCaseAttribute or to simplify their use. + + The arguments to be converted + The ParameterInfo array for the method + + + + Builds a single test from the specified method and context. + + The MethodInfo for which tests are to be constructed. + The suite to which the tests will be added. + + + + Indicates the source to be used to provide test fixture instances for a test class. + + + + + Construct with the name of the method, property or field that will provide data + + The name of a static method, property or field that will provide data. + + + + Construct with a Type and name + + The Type that will provide data + The name of a static method, property or field that will provide data. + A set of parameters passed to the method, works only if the Source Name is a method. + If the source name is a field or property has no effect. + + + + Construct with a Type and name + + The Type that will provide data + The name of a static method, property or field that will provide data. + + + + Construct with a name + + The name of a static method, property or field that will provide data. + A set of parameters passed to the method, works only if the Source Name is a method. + If the source name is a field or property has no effect. + + + + Construct with a Type + + The type that will provide data + + + + A set of parameters passed to the method, works only if the Source Name is a method. + If the source name is a field or property has no effect. + + + + + The name of a the method, property or fiend to be used as a source + + + + + A Type to be used as a source + + + + + Gets or sets the category associated with every fixture created from + this attribute. May be a single category or a comma-separated list. + + + + + Builds any number of tests from the specified method and context. + + The IMethod for which tests are to be constructed. + The suite to which the tests will be added. + + + + Marks the class as a TestFixture. + + + + + Default constructor + + + + + Construct with a object[] representing a set of arguments. + The arguments may later be separated into type arguments and constructor arguments. + + + + + + Gets or sets the name of the test. + + The name of the test. + + + + Gets or sets the RunState of this test fixture. + + + + + The arguments originally provided to the attribute + + + + + Properties pertaining to this fixture + + + + + Get or set the type arguments. If not set + explicitly, any leading arguments that are + Types are taken as type arguments. + + + + + Descriptive text for this fixture + + + + + The author of this fixture + + + + + The type that this fixture is testing + + + + + Gets or sets the ignore reason. May set RunState as a side effect. + + The ignore reason. + + + + Gets or sets the reason for not running the fixture. + + The reason. + + + + Gets or sets the ignore reason. When set to a non-null + non-empty value, the test is marked as ignored. + + The ignore reason. + + + + Gets or sets a value indicating whether this is explicit. + + + true if explicit; otherwise, false. + + + + + Gets and sets the category for this fixture. + May be a comma-separated list of categories. + + + + + Builds a single test fixture from the specified type. + + + + + Builds a single test fixture from the specified type. + + The type info of the fixture to be used. + Filter used to select methods as tests. + + + + Identifies the source used to provide test fixture instances for a test class. + + + + + Error message string is public so the tests can use it + + + + + Construct with the name of the method, property or field that will provide data + + The name of a static method, property or field that will provide data. + + + + Construct with a Type and name + + The Type that will provide data + The name of a static method, property or field that will provide data. + + + + Construct with a Type + + The type that will provide data + + + + The name of a the method, property or fiend to be used as a source + + + + + A Type to be used as a source + + + + + Gets or sets the category associated with every fixture created from + this attribute. May be a single category or a comma-separated list. + + + + + Builds any number of test fixtures from the specified type. + + The TypeInfo for which fixtures are to be constructed. + + + + Builds any number of test fixtures from the specified type. + + The TypeInfo for which fixtures are to be constructed. + PreFilter used to select methods as tests. + + + + Returns a set of ITestFixtureData items for use as arguments + to a parameterized test fixture. + + The type for which data is needed. + + + + + Indicates the method or class the assembly, test fixture or test method is testing. + + + + + Initializes a new instance of the class. + + The type that is being tested. + + + + Initializes a new instance of the class. + + The type that is being tested. + + + + Adding this attribute to a method within a + class makes the method callable from the NUnit test runner. There is a property + called Description which is optional which you can provide a more detailed test + description. This class cannot be inherited. + + + + [TestFixture] + public class Fixture + { + [Test] + public void MethodToTest() + {} + + [Test(Description = "more detailed description")] + public void TestDescriptionMethod() + {} + } + + + + + + Construct the attribute, specifying a combining strategy and source of parameter data. + + + + + Applies a timeout in milliseconds to a test. + When applied to a method, the test is cancelled if the timeout is exceeded. + When applied to a class or assembly, the default timeout is set for all contained test methods. + + + + + Construct a TimeoutAttribute given a time in milliseconds + + The timeout value in milliseconds + + + + Provides literal arguments for an individual parameter of a test. + + + + + The collection of data to be returned. Must + be set by any derived attribute classes. + We use an object[] so that the individual + elements may have their type changed in GetData + if necessary + + + + + Constructs for use with an Enum parameter. Will pass every enum + value in to the test. + + + + + Construct with one argument + + + + + + Construct with two arguments + + + + + + + Construct with three arguments + + + + + + + + Construct with an array of arguments + + + + + + Retrieves a list of arguments which can be passed to the specified parameter. + + The parameter of a parameterized test. + + + + To generate data for Values attribute, in case no data is provided. + + + + + To Check if type is nullable enum. + + + + + Indicates the source used to provide data for one parameter of a test method. + + + + + Construct with the name of the factory - for use with languages + that don't support params arrays. + + The name of a static method, property or field that will provide data. + + + + Construct with a Type and name - for use with languages + that don't support params arrays. + + The Type that will provide data + The name of a static method, property or field that will provide data. + + + + The name of a the method, property or fiend to be used as a source + + + + + A Type to be used as a source + + + + + Retrieves a list of arguments which can be passed to the specified parameter. + + The parameter of a parameterized test. + + + + A set of Assert methods operating on one or more collections + + + + + DO NOT USE! Use CollectionAssert.AreEqual(...) instead. + The Equals method throws an InvalidOperationException. This is done + to make sure there is no mistake by calling this function. + + + + + + + DO NOT USE! + The ReferenceEquals method throws an InvalidOperationException. This is done + to make sure there is no mistake by calling this function. + + + + + + + Asserts that all items contained in collection are of the type specified by expectedType. + + IEnumerable containing objects to be considered + System.Type that all objects in collection must be instances of + + + + Asserts that all items contained in collection are of the type specified by expectedType. + + IEnumerable containing objects to be considered + System.Type that all objects in collection must be instances of + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Asserts that all items contained in collection are not equal to null. + + IEnumerable containing objects to be considered + + + + Asserts that all items contained in collection are not equal to null. + + IEnumerable of objects to be considered + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Ensures that every object contained in collection exists within the collection + once and only once. + + IEnumerable of objects to be considered + + + + Ensures that every object contained in collection exists within the collection + once and only once. + + IEnumerable of objects to be considered + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Asserts that expected and actual are exactly equal. The collections must have the same count, + and contain the exact same objects in the same order. + + The first IEnumerable of objects to be considered + The second IEnumerable of objects to be considered + + + + Asserts that expected and actual are exactly equal. The collections must have the same count, + and contain the exact same objects in the same order. + If comparer is not null then it will be used to compare the objects. + + The first IEnumerable of objects to be considered + The second IEnumerable of objects to be considered + The IComparer to use in comparing objects from each IEnumerable + + + + Asserts that expected and actual are exactly equal. The collections must have the same count, + and contain the exact same objects in the same order. + + The first IEnumerable of objects to be considered + The second IEnumerable of objects to be considered + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Asserts that expected and actual are exactly equal. The collections must have the same count, + and contain the exact same objects in the same order. + If comparer is not null then it will be used to compare the objects. + + The first IEnumerable of objects to be considered + The second IEnumerable of objects to be considered + The IComparer to use in comparing objects from each IEnumerable + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Asserts that expected and actual are equivalent, containing the same objects but the match may be in any order. + + The first IEnumerable of objects to be considered + The second IEnumerable of objects to be considered + + + + Asserts that expected and actual are equivalent, containing the same objects but the match may be in any order. + + The first IEnumerable of objects to be considered + The second IEnumerable of objects to be considered + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Asserts that expected and actual are not exactly equal. + + The first IEnumerable of objects to be considered + The second IEnumerable of objects to be considered + + + + Asserts that expected and actual are not exactly equal. + If comparer is not null then it will be used to compare the objects. + + The first IEnumerable of objects to be considered + The second IEnumerable of objects to be considered + The IComparer to use in comparing objects from each IEnumerable + + + + Asserts that expected and actual are not exactly equal. + + The first IEnumerable of objects to be considered + The second IEnumerable of objects to be considered + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Asserts that expected and actual are not exactly equal. + If comparer is not null then it will be used to compare the objects. + + The first IEnumerable of objects to be considered + The second IEnumerable of objects to be considered + The IComparer to use in comparing objects from each IEnumerable + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Asserts that expected and actual are not equivalent. + + The first IEnumerable of objects to be considered + The second IEnumerable of objects to be considered + + + + Asserts that expected and actual are not equivalent. + + The first IEnumerable of objects to be considered + The second IEnumerable of objects to be considered + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Asserts that collection contains actual as an item. + + IEnumerable of objects to be considered + Object to be found within collection + + + + Asserts that collection contains actual as an item. + + IEnumerable of objects to be considered + Object to be found within collection + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Asserts that collection does not contain actual as an item. + + IEnumerable of objects to be considered + Object that cannot exist within collection + + + + Asserts that collection does not contain actual as an item. + + IEnumerable of objects to be considered + Object that cannot exist within collection + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Asserts that the superset does not contain the subset + + The IEnumerable subset to be considered + The IEnumerable superset to be considered + + + + Asserts that the superset does not contain the subset + + The IEnumerable subset to be considered + The IEnumerable superset to be considered + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Asserts that the superset contains the subset. + + The IEnumerable subset to be considered + The IEnumerable superset to be considered + + + + Asserts that the superset contains the subset. + + The IEnumerable subset to be considered + The IEnumerable superset to be considered + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Asserts that the subset does not contain the superset + + The IEnumerable superset to be considered + The IEnumerable subset to be considered + + + + Asserts that the subset does not contain the superset + + The IEnumerable superset to be considered + The IEnumerable subset to be considered + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Asserts that the subset contains the superset. + + The IEnumerable superset to be considered + The IEnumerable subset to be considered + + + + Asserts that the subset contains the superset. + + The IEnumerable superset to be considered + The IEnumerable subset to be considered + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Assert that an array, list or other collection is empty + + An array, list or other collection implementing IEnumerable + The message to be displayed on failure + Arguments to be used in formatting the message + + + + Assert that an array,list or other collection is empty + + An array, list or other collection implementing IEnumerable + + + + Assert that an array, list or other collection is empty + + An array, list or other collection implementing IEnumerable + The message to be displayed on failure + Arguments to be used in formatting the message + + + + Assert that an array,list or other collection is empty + + An array, list or other collection implementing IEnumerable + + + + Assert that an array, list or other collection is ordered + + An array, list or other collection implementing IEnumerable + The message to be displayed on failure + Arguments to be used in formatting the message + + + + Assert that an array, list or other collection is ordered + + An array, list or other collection implementing IEnumerable + + + + Assert that an array, list or other collection is ordered + + An array, list or other collection implementing IEnumerable + A custom comparer to perform the comparisons + The message to be displayed on failure + Arguments to be used in formatting the message + + + + Assert that an array, list or other collection is ordered + + An array, list or other collection implementing IEnumerable + A custom comparer to perform the comparisons + + + + AllItemsConstraint applies another constraint to each + item in a collection, succeeding if they all succeed. + + + + + Construct an AllItemsConstraint on top of an existing constraint + + + + + + The display name of this Constraint for use by ToString(). + The default value is the name of the constraint with + trailing "Constraint" removed. Derived classes may set + this to another name in their constructors. + + + + + Apply the item constraint to each item in the collection, + failing if any item fails. + + + + + + + AndConstraint succeeds only if both members succeed. + + + + + Create an AndConstraint from two other constraints + + The first constraint + The second constraint + + + + Gets text describing a constraint + + + + + Apply both member constraints to an actual value, succeeding + succeeding only if both of them succeed. + + The actual value + True if the constraints both succeeded + + + + Write the actual value for a failing constraint test to a + MessageWriter. The default implementation simply writes + the raw value of actual, leaving it to the writer to + perform any formatting. + + The writer on which the actual value is displayed + + + + is used to determine whether the value is equal to any of the expected values. + + + + + Construct a + + Collection of expected values + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + Test whether item is present in expected collection + + Actual item type + Actual item + + + + Flag the constraint to ignore case and return self. + + + + + Flag the constraint to use the supplied IComparer object. + + The IComparer object to use. + + + + Flag the constraint to use the supplied IComparer object. + + The IComparer object to use. + + + + Flag the constraint to use the supplied Comparison object. + + The Comparison object to use. + + + + Flag the constraint to use the supplied IEqualityComparer object. + + The IEqualityComparer object to use. + + + + Flag the constraint to use the supplied IEqualityComparer object. + + The IComparer object to use. + + + + Flag the constraint to use the supplied boolean-returning delegate. + + The supplied boolean-returning delegate to use. + + + + AssignableFromConstraint is used to test that an object + can be assigned from a given Type. + + + + + Construct an AssignableFromConstraint for the type provided + + + + + + Apply the constraint to an actual value, returning true if it succeeds + + The actual argument + True if the constraint succeeds, otherwise false. + + + + AssignableToConstraint is used to test that an object + can be assigned to a given Type. + + + + + Construct an AssignableToConstraint for the type provided + + + + + + Apply the constraint to an actual value, returning true if it succeeds + + The actual argument + True if the constraint succeeds, otherwise false. + + + + AttributeConstraint tests that a specified attribute is present + on a Type or other provider and that the value of the attribute + satisfies some other constraint. + + + + + Constructs an AttributeConstraint for a specified attribute + Type and base constraint. + + + + + + + Determines whether the Type or other provider has the + expected attribute and if its value matches the + additional constraint specified. + + + + + Returns a string representation of the constraint. + + + + + AttributeExistsConstraint tests for the presence of a + specified attribute on a Type. + + + + + Constructs an AttributeExistsConstraint for a specific attribute Type + + + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + Tests whether the object provides the expected attribute. + + A Type, MethodInfo, or other ICustomAttributeProvider + True if the expected attribute is present, otherwise false + + + + BinaryConstraint is the abstract base of all constraints + that combine two other constraints in some fashion. + + + + + The first constraint being combined + + + + + The second constraint being combined + + + + + Construct a BinaryConstraint from two other constraints + + The first constraint + The second constraint + + + + BinarySerializableConstraint tests whether + an object is serializable in binary format. + + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + Test whether the constraint is satisfied by a given value + + The value to be tested + True for success, false for failure + + + + Returns the string representation + + + + + CollectionConstraint is the abstract base class for + constraints that operate on collections. + + + + + Construct an empty CollectionConstraint + + + + + Construct a CollectionConstraint + + + + + + Determines whether the specified enumerable is empty. + + The enumerable. + + true if the specified enumerable is empty; otherwise, false. + + + + + Test whether the constraint is satisfied by a given value + + The value to be tested + True for success, false for failure + + + + Protected method to be implemented by derived classes + + + + + + + CollectionContainsConstraint is used to test whether a collection + contains an expected object as a member. + + + + + Construct a CollectionContainsConstraint + + + + + + The display name of this Constraint for use by ToString(). + The default value is the name of the constraint with + trailing "Constraint" removed. Derived classes may set + this to another name in their constructors. + + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + Gets the expected object + + + + + Test whether the expected item is contained in the collection + + + + + + + Flag the constraint to use the supplied predicate function + + The comparison function to use. + Self. + + + + CollectionEquivalentConstraint is used to determine whether two + collections are equivalent. + + + + The result of the from the collections + under comparison. + + + Construct a CollectionEquivalentConstraint + Expected collection. + + + + The display name of this Constraint for use by ToString(). + The default value is the name of the constraint with + trailing "Constraint" removed. Derived classes may set + this to another name in their constructors. + + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + Test whether two collections are equivalent + + + + + + + Test whether the collection is equivalent to the expected. + + + Actual collection type. + + + Actual collection to compare. + + + A indicating whether or not + the two collections are equivalent. + + + + + Flag the constraint to use the supplied predicate function + + The comparison function to use. + Self. + + + Provides a for the . + + + Result of a of the collections to compare for equivalence. + + + Maximum amount of elements to write to the if there are + extra/missing elements from the collection. + + + Construct a using a . + Source . + Result of the collection comparison. + Actual collection to compare. + Whether or not the succeeded. + + + Write any additional lines (following Expected: and But was:) for a failing constraint. + The to write the failure message to. + + + + CollectionItemsEqualConstraint is the abstract base class for all + collection constraints that apply some notion of item equality + as a part of their operation. + + + + + The NUnitEqualityComparer in use for this constraint + + + + + Construct an empty CollectionConstraint + + + + + Construct a CollectionConstraint + + + + + + Get a flag indicating whether the user requested us to ignore case. + + + + + Get a flag indicating whether any external comparers are in use. + + + + + Flag the constraint to ignore case and return self. + + + + + Flag the constraint to use the supplied IComparer object. + + The IComparer object to use. + + + + Flag the constraint to use the supplied IComparer object. + + The IComparer object to use. + + + + Flag the constraint to use the supplied Comparison object. + + The Comparison object to use. + + + + Flag the constraint to use the supplied IEqualityComparer object. + + The IComparer object to use. + + + + Flag the constraint to use the supplied IEqualityComparer object. + + The IComparer object to use. + + + + Flag the constraint to use the supplied boolean-returning delegate. + + The supplied boolean-returning delegate to use. + + + + Compares two collection members for equality + + + + + Return a new CollectionTally for use in making tests + + The collection to be included in the tally + + + + CollectionOrderedConstraint is used to test whether a collection is ordered. + + + + + Construct a CollectionOrderedConstraint + + + + + The display name of this Constraint for use by ToString(). + The default value is the name of the constraint with + trailing "Constraint" removed. Derived classes may set + this to another name in their constructors. + + + + + If used performs a default ascending comparison + + + + + If used performs a reverse comparison + + + + + Modifies the constraint to use an and returns self. + + + + + Modifies the constraint to use an and returns self. + + + + + Modifies the constraint to use a and returns self. + + + + + Modifies the constraint to test ordering by the value of + a specified property and returns self. + + + + + Then signals a break between two ordering steps + + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + Test whether the constraint is satisfied by a given value + + The value to be tested + True for success, false for failure + + + + Test whether the collection is ordered + + + + + Returns the string representation of the constraint. + + + + + + An OrderingStep represents one stage of the sort + + + + + Constructor for success result. + + The Constraint to which this result applies. + The actual value to which the Constraint was applied. + + + + Constructor for failure result. + + The Constraint to which this result applies. + The actual value to which the Constraint was applied. + Index at which collection order breaks. + Value at which collection order breaks. + + + + CollectionSubsetConstraint is used to determine whether + one collection is a subset of another + + + + + Construct a CollectionSubsetConstraint + + The collection that the actual value is expected to be a subset of + + + + The display name of this Constraint for use by ToString(). + The default value is the name of the constraint with + trailing "Constraint" removed. Derived classes may set + this to another name in their constructors. + + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + Test whether the actual collection is a subset of + the expected collection provided. + + + + + + + Flag the constraint to use the supplied predicate function + + The comparison function to use. + Self. + + + + CollectionSupersetConstraint is used to determine whether + one collection is a superset of another + + + + + Construct a CollectionSupersetConstraint + + The collection that the actual value is expected to be a superset of + + + + The display name of this Constraint for use by ToString(). + The default value is the name of the constraint with + trailing "Constraint" removed. Derived classes may set + this to another name in their constructors. + + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + Test whether the actual collection is a superset of + the expected collection provided. + + + + + + + Flag the constraint to use the supplied predicate function + + The comparison function to use. + Self. + + + counts (tallies) the number of occurrences + of each object in one or more enumerations. + + + The result of a . + + + Items that were not in the expected collection. + + + Items that were not accounted for in the expected collection. + + + Initializes a new instance of the class with the given fields. + + + The result of the comparison between the two collections. + + + Construct a CollectionTally object from a comparer and a collection. + The comparer to use for equality. + The expected collection to compare against. + + + Try to remove an object from the tally. + The object to remove. + + + Try to remove a set of objects from the tally. + The objects to remove. + + + + Comparator for two s. + + + + + Comparator for two s. + + + + + Comparator for two s. + + + + + Comparator for two s. + + + + + Comparator for two s. + + + + + Comparator for two s. + + + + + Comparator for two s. + + + + + Comparator for two types related by . + + + + + Interface for comparing two s. + + + + + Method for comparing two objects with a tolerance. + + The first object to compare. + The second object to compare. + The tolerance to use when comparing the objects. + Flag indicating whether or not this is the top level comparison. + + null if the objects cannot be compared using the method. + Otherwise the result of the comparison is returned. + + + + + Comparator for two s. + + + + + Comparator for two s. + + + + + Comparator for two s. + + + + + Comparator for two s. + + + + + Comparator for two s or s. + + + + + Comparator for two Tuples. + + + + + Base class for comparators for tuples (both regular Tuples and ValueTuples). + + + + + Comparator for two ValueTuples. + + + + + ComparisonAdapter class centralizes all comparisons of + values in NUnit, adapting to the use of any provided + , + or . + + + + + Gets the default ComparisonAdapter, which wraps an + NUnitComparer object. + + + + + Returns a ComparisonAdapter that wraps an + + + + + Returns a ComparisonAdapter that wraps an + + + + + Returns a ComparisonAdapter that wraps a + + + + + Compares two objects + + + + + Construct a default ComparisonAdapter + + + + + Construct a ComparisonAdapter for an + + + + + Compares two objects + + + + + + + + ComparerAdapter extends and + allows use of an or + to actually perform the comparison. + + + + + Construct a ComparisonAdapter for an + + + + + Compare a Type T to an object + + + + + Construct a ComparisonAdapter for a + + + + + Compare a Type T to an object + + + + + Abstract base class for constraints that compare values to + determine if one is greater than, equal to or less than + the other. + + + + + The value against which a comparison is to be made + + + + + Tolerance used in making the comparison + + + + + ComparisonAdapter to be used in making the comparison + + + + + Initializes a new instance of the class. + + The value against which to make a comparison. + + + + Test whether the constraint is satisfied by a given value + + The value to be tested + A ConstraintResult + + + + Protected function overridden by derived class to actually perform the comparison + + + + + Modifies the constraint to use an and returns self + + The comparer used for comparison tests + A constraint modified to use the given comparer + + + + Modifies the constraint to use an and returns self + + The comparer used for comparison tests + A constraint modified to use the given comparer + + + + Modifies the constraint to use a and returns self + + The comparer used for comparison tests + A constraint modified to use the given comparer + + + + Set the tolerance for use in this comparison + + + + + Switches the .Within() modifier to interpret its tolerance as + a percentage that the actual values is allowed to deviate from + the expected value. + + Self + + + + Provides standard description of what the constraint tests + based on comparison text. + + Describes the comparison being tested, throws + if null + Is thrown when null passed to a method + + + + Delegate used to delay evaluation of the actual value + to be used in evaluating a constraint + + + + + The Constraint class is the base of all built-in constraints + within NUnit. It provides the operator overloads used to combine + constraints. + + + + + Construct a constraint with optional arguments + + Arguments to be saved + + + + The display name of this Constraint for use by ToString(). + The default value is the name of the constraint with + trailing "Constraint" removed. Derived classes may set + this to another name in their constructors. + + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + Arguments provided to this Constraint, for use in + formatting the description. + + + + + The ConstraintBuilder holding this constraint + + + + + Applies the constraint to an actual value, returning a ConstraintResult. + + The value to be tested + A ConstraintResult + + + + Applies the constraint to an ActualValueDelegate that returns + the value to be tested. The default implementation simply evaluates + the delegate but derived classes may override it to provide for + delayed processing. + + An ActualValueDelegate + A ConstraintResult + + + + Test whether the constraint is satisfied by a given reference. + The default implementation simply dereferences the value but + derived classes may override it to provide for delayed processing. + + A reference to the value to be tested + A ConstraintResult + + + + Retrieves the value to be tested from an ActualValueDelegate. + The default implementation simply evaluates the delegate but derived + classes may override it to provide for delayed processing. + + An ActualValueDelegate + Delegate evaluation result + + + + Default override of ToString returns the constraint DisplayName + followed by any arguments within angle brackets. + + + + + + Returns the string representation of this constraint + + + + + This operator creates a constraint that is satisfied only if both + argument constraints are satisfied. + + + + + This operator creates a constraint that is satisfied if either + of the argument constraints is satisfied. + + + + + This operator creates a constraint that is satisfied if the + argument constraint is not satisfied. + + + + + Returns a ConstraintExpression by appending And + to the current constraint. + + + + + Returns a ConstraintExpression by appending And + to the current constraint. + + + + + Returns a ConstraintExpression by appending Or + to the current constraint. + + + + + Returns a DelayedConstraint.WithRawDelayInterval with the specified delay time. + + The delay, which defaults to milliseconds. + + + + + Returns a DelayedConstraint with the specified delay time + and polling interval. + + The delay in milliseconds. + The interval at which to test the constraint. + + + + + Resolves any pending operators and returns the resolved constraint. + + + + + ConstraintBuilder maintains the stacks that are used in + processing a ConstraintExpression. An OperatorStack + is used to hold operators that are waiting for their + operands to be reorganized. a ConstraintStack holds + input constraints as well as the results of each + operator applied. + + + + + OperatorStack is a type-safe stack for holding ConstraintOperators + + + + + Initializes a new instance of the class. + + The ConstraintBuilder using this stack. + + + + Gets a value indicating whether this is empty. + + true if empty; otherwise, false. + + + + Gets the topmost operator without modifying the stack. + + + + + Pushes the specified operator onto the stack. + + The operator to put onto the stack. + + + + Pops the topmost operator from the stack. + + The topmost operator on the stack + + + + ConstraintStack is a type-safe stack for holding Constraints + + + + + Initializes a new instance of the class. + + The ConstraintBuilder using this stack. + + + + Gets a value indicating whether this is empty. + + true if empty; otherwise, false. + + + + Pushes the specified constraint. As a side effect, + the constraint's Builder field is set to the + ConstraintBuilder owning this stack. + + The constraint to put onto the stack + + + + Pops this topmost constraint from the stack. + As a side effect, the constraint's Builder + field is set to null. + + The topmost constraint on the stack + + + + Initializes a new instance of the class. + + + + + Appends the specified operator to the expression by first + reducing the operator stack and then pushing the new + operator on the stack. + + The operator to push. + + + + Appends the specified constraint to the expression by pushing + it on the constraint stack. + + The constraint to push. + + + + Sets the top operator right context. + + The right context. + + + + Reduces the operator stack until the topmost item + precedence is greater than or equal to the target precedence. + + The target precedence. + + + + Resolves this instance, returning a Constraint. If the Builder + is not currently in a resolvable state, an exception is thrown. + + The resolved constraint + + + + Gets a value indicating whether this instance is resolvable. + + + true if this instance is resolvable; otherwise, false. + + + + + ConstraintExpression represents a compound constraint in the + process of being constructed from a series of syntactic elements. + + Individual elements are appended to the expression as they are + reorganized. When a constraint is appended, it is returned as the + value of the operation so that modifiers may be applied. However, + any partially built expression is attached to the constraint for + later resolution. When an operator is appended, the partial + expression is returned. If it's a self-resolving operator, then + a ResolvableConstraintExpression is returned. + + + + + The ConstraintBuilder holding the elements recognized so far + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the + class passing in a ConstraintBuilder, which may be pre-populated. + + The builder. + + + + Returns a string representation of the expression as it + currently stands. This should only be used for testing, + since it has the side-effect of resolving the expression. + + + + + + Appends an operator to the expression and returns the + resulting expression itself. + + + + + Appends a self-resolving operator to the expression and + returns a new ResolvableConstraintExpression. + + + + + Appends a constraint to the expression and returns that + constraint, which is associated with the current state + of the expression being built. Note that the constraint + is not reduced at this time. For example, if there + is a NotOperator on the stack we don't reduce and + return a NotConstraint. The original constraint must + be returned because it may support modifiers that + are yet to be applied. + + + + + Returns a ConstraintExpression that negates any + following constraint. + + + + + Returns a ConstraintExpression that negates any + following constraint. + + + + + Returns a ConstraintExpression, which will apply + the following constraint to all members of a collection, + succeeding if all of them succeed. + + + + + Returns a ConstraintExpression, which will apply + the following constraint to all members of a collection, + succeeding if at least one of them succeeds. + + + + + Returns a ConstraintExpression, which will apply + the following constraint to all members of a collection, + succeeding if all of them fail. + + + + + Returns a ConstraintExpression, which will apply + the following constraint to all members of a collection, + succeeding only if a specified number of them succeed. + + + + + Returns a , which will + apply the following constraint to a collection of length one, succeeding + only if exactly one of them succeeds. + + + + + Returns a new PropertyConstraintExpression, which will either + test for the existence of the named property on the object + being tested or apply any following constraint to that property. + + + + + Returns a new ConstraintExpression, which will apply the following + constraint to the Length property of the object being tested. + + + + + Returns a new ConstraintExpression, which will apply the following + constraint to the Count property of the object being tested. + + + + + Returns a new ConstraintExpression, which will apply the following + constraint to the Message property of the object being tested. + + + + + Returns a new ConstraintExpression, which will apply the following + constraint to the InnerException property of the object being tested. + + + + + Returns a new AttributeConstraint checking for the + presence of a particular attribute on an object. + + + + + Returns a new AttributeConstraint checking for the + presence of a particular attribute on an object. + + + + + With is currently a NOP - reserved for future use. + + + + + Returns the constraint provided as an argument - used to allow custom + custom constraints to easily participate in the syntax. + + + + + Returns the constraint provided as an argument - used to allow custom + custom constraints to easily participate in the syntax. + + + + + Returns a constraint that tests for null + + + + + Returns a constraint that tests for True + + + + + Returns a constraint that tests for False + + + + + Returns a constraint that tests for a positive value + + + + + Returns a constraint that tests for a negative value + + + + + Returns a constraint that tests if item is equal to zero + + + + + Returns a constraint that tests for NaN + + + + + Returns a constraint that tests for empty + + + + + Returns a constraint that tests whether a collection + contains all unique items. + + + + + Returns a constraint that tests whether an object graph is serializable in binary format. + + + + + Returns a constraint that tests whether an object graph is serializable in XML format. + + + + + Returns a constraint that tests two items for equality + + + + + Returns a constraint that tests that two references are the same object + + + + + Returns a constraint that tests whether the + actual value is greater than the supplied argument + + + + + Returns a constraint that tests whether the + actual value is greater than or equal to the supplied argument + + + + + Returns a constraint that tests whether the + actual value is greater than or equal to the supplied argument + + + + + Returns a constraint that tests whether the + actual value is less than the supplied argument + + + + + Returns a constraint that tests whether the + actual value is less than or equal to the supplied argument + + + + + Returns a constraint that tests whether the + actual value is less than or equal to the supplied argument + + + + + Returns a constraint that tests whether the actual + value is of the exact type supplied as an argument. + + + + + Returns a constraint that tests whether the actual + value is of the exact type supplied as an argument. + + + + + Returns a constraint that tests whether the actual value + is of the type supplied as an argument or a derived type. + + + + + Returns a constraint that tests whether the actual value + is of the type supplied as an argument or a derived type. + + + + + Returns a constraint that tests whether the actual value + is assignable from the type supplied as an argument. + + + + + Returns a constraint that tests whether the actual value + is assignable from the type supplied as an argument. + + + + + Returns a constraint that tests whether the actual value + is assignable from the type supplied as an argument. + + + + + Returns a constraint that tests whether the actual value + is assignable from the type supplied as an argument. + + + + + Returns a constraint that tests whether the actual value + is a collection containing the same elements as the + collection supplied as an argument. + + + + + Returns a constraint that tests whether the actual value + is a subset of the collection supplied as an argument. + + + + + Returns a constraint that tests whether the actual value + is a superset of the collection supplied as an argument. + + + + + Returns a constraint that tests whether a collection is ordered + + + + + Returns a new checking for the + presence of a particular object in the collection. + + + + + + Returns a new checking for the + presence of a particular object in the collection. + + + To search for a substring instead of a collection element, use the + overload. + + + + + + + Returns a new ContainsConstraint. This constraint + will, in turn, make use of the appropriate second-level + constraint, depending on the type of the actual argument. + + + To search for a collection element instead of a substring, use the + overload. + + + + + + Returns a new checking for the + presence of a particular object in the collection. + + + + + Returns a new ContainsConstraint. This constraint + will, in turn, make use of the appropriate second-level + constraint, depending on the type of the actual argument. + This overload is only used if the item sought is a string, + since any other type implies that we are looking for a + collection member. + + + + + Returns a new DictionaryContainsKeyConstraint checking for the + presence of a particular key in the Dictionary key collection. + + The key to be matched in the Dictionary key collection + + + + Returns a new DictionaryContainsValueConstraint checking for the + presence of a particular value in the Dictionary value collection. + + The value to be matched in the Dictionary value collection + + + + Returns a constraint that succeeds if the actual + value contains the substring supplied as an argument. + + + + + Returns a constraint that succeeds if the actual + value contains the substring supplied as an argument. + + + + + Returns a constraint that succeeds if the actual + value starts with the substring supplied as an argument. + + + + + Returns a constraint that succeeds if the actual + value starts with the substring supplied as an argument. + + + + + Returns a constraint that succeeds if the actual + value starts with the substring supplied as an argument. + + + + + Returns a constraint that succeeds if the actual + value ends with the substring supplied as an argument. + + + + + Returns a constraint that succeeds if the actual + value ends with the substring supplied as an argument. + + + + + Returns a constraint that succeeds if the actual + value ends with the substring supplied as an argument. + + + + + Returns a constraint that succeeds if the actual + value matches the regular expression supplied as an argument. + + + + + Returns a constraint that succeeds if the actual + value matches the regular expression supplied as an argument. + + + + + Returns a constraint that succeeds if the actual + value matches the regular expression supplied as an argument. + + + + + Returns a constraint that tests whether the path provided + is the same as an expected path after canonicalization. + + + + + Returns a constraint that tests whether the path provided + is the a subpath of the expected path after canonicalization. + + + + + Returns a constraint that tests whether the path provided + is the same path or under an expected path after canonicalization. + + + + + Returns a constraint that tests whether the actual value falls + inclusively within a specified range. + + Inclusive beginning of the range. + Inclusive end of the range. + + + + Returns a constraint that succeeds if the value + is a file or directory and it exists. + + + + + Returns a constraint that tests if an item is equal to any of parameters + + Expected values + + + + ConstraintStatus represents the status of a ConstraintResult + returned by a Constraint being applied to an actual value. + + + + + The status has not yet been set + + + + + The constraint succeeded + + + + + The constraint failed + + + + + An error occurred in applying the constraint (reserved for future use) + + + + + Contains the result of matching a against an actual value. + + + + + Constructs a for a particular . + + The Constraint to which this result applies. + The actual value to which the Constraint was applied. + + + + Constructs a for a particular . + + The Constraint to which this result applies. + The actual value to which the Constraint was applied. + The status of the new ConstraintResult. + + + + Constructs a for a particular . + + The Constraint to which this result applies. + The actual value to which the Constraint was applied. + If true, applies a status of Success to the result, otherwise Failure. + + + + The actual value that was passed to the method. + + + + + Gets and sets the ResultStatus for this result. + + + + + True if actual value meets the Constraint criteria otherwise false. + + + + + Display friendly name of the constraint. + + + + + Description of the constraint may be affected by the state the constraint had + when was performed against the actual value. + + + + + Write the failure message to the MessageWriter provided + as an argument. The default implementation simply passes + the result and the actual value to the writer, which + then displays the constraint description and the value. + + Constraints that need to provide additional details, + such as where the error occurred, can override this. + + The MessageWriter on which to display the message + + + + Write some additional failure message. + + The MessageWriter on which to display the message + + + + Write the actual value for a failing constraint test to a + MessageWriter. The default implementation simply writes + the raw value of actual, leaving it to the writer to + perform any formatting. + + The writer on which the actual value is displayed + + + + ContainsConstraint tests a whether a string contains a substring + or a collection contains an object. It postpones the decision of + which test to use until the type of the actual argument is known. + This allows testing whether a string is contained in a collection + or as a substring of another string using the same syntax. + + + + + Initializes a new instance of the class. + + The expected value contained within the string/collection. + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + Flag the constraint to ignore case and return self. + + + + + Test whether the constraint is satisfied by a given value + + The value to be tested + True for success, false for failure + + + + Applies a delay to the match so that a match can be evaluated in the future. + + + + + Allows only changing the time dimension of delay interval and setting a polling interval of a DelayedConstraint + + + + + Creates a new DelayedConstraint.WithRawDelayInterval + + Parent DelayedConstraint on which delay interval dimension is required to be set + + + + Changes delay interval dimension to minutes + + + + + Changes delay interval dimension to seconds + + + + + Changes delay interval dimension to milliseconds + + + + + Set polling interval, in milliseconds + + A time interval, in milliseconds + + + + + Allows only setting the polling interval of a DelayedConstraint + + + + + Creates a new DelayedConstraint.WithDimensionedDelayInterval + + Parent DelayedConstraint on which polling interval is required to be set + + + + Set polling interval, in milliseconds + + A time interval, in milliseconds + + + + + Allows only changing the time dimension of the polling interval of a DelayedConstraint + + + + + Creates a new DelayedConstraint.WithRawPollingInterval + + Parent DelayedConstraint on which polling dimension is required to be set + + + + Changes polling interval dimension to minutes + + + + + Changes polling interval dimension to seconds + + + + + Changes polling interval dimension to milliseconds + + + + + Delay value store as an Interval object + + + + + Polling value stored as an Interval object + + + + + Creates a new DelayedConstraint + + The inner constraint to decorate + The time interval after which the match is performed + If the value of is less than 0 + + + + Creates a new DelayedConstraint + + The inner constraint to decorate + The time interval after which the match is performed, in milliseconds + The time interval used for polling, in milliseconds + If the value of is less than 0 + + + + Gets text describing a constraint + + + + + Test whether the constraint is satisfied by a given value + + The value to be tested + True for if the base constraint fails, false if it succeeds + + + + Test whether the constraint is satisfied by a delegate + + The delegate whose value is to be tested + A ConstraintResult + + + + Test whether the constraint is satisfied by a given reference. + Overridden to wait for the specified delay period before + calling the base constraint with the dereferenced value. + + A reference to the value to be tested + True for success, false for failure + + + + Returns the string representation of the constraint. + + + + + Adjusts a Timestamp by a given TimeSpan + + + + + + + + Returns the difference between two Timestamps as a TimeSpan + + + + + + + + DictionaryContainsKeyConstraint is used to test whether a dictionary + contains an expected object as a key. + + + + + Construct a DictionaryContainsKeyConstraint + + + + + + The display name of this Constraint for use by ToString(). + The default value is the name of the constraint with + trailing "Constraint" removed. Derived classes may set + this to another name in their constructors. + + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + Gets the expected object + + + + + Flag the constraint to ignore case and return self. + + + + + Test whether the constraint is satisfied by a given value + + The value to be tested + + + + Test whether the expected key is contained in the dictionary + + + + + Flag the constraint to use the supplied predicate function + + The comparison function to use. + + + + Flag the constraint to use the supplied Comparison object. + + The Comparison object to use. + + + + Flag the constraint to use the supplied IComparer object. + + The IComparer object to use. + + + + Flag the constraint to use the supplied IComparer object. + + The IComparer object to use. + + + + Flag the constraint to use the supplied IEqualityComparer object. + + The IComparer object to use. + + + + Flag the constraint to use the supplied IEqualityComparer object. + + The IComparer object to use. + + + + Flag the constraint to use the supplied boolean-returning delegate. + + The supplied boolean-returning delegate to use. + + + + DictionaryContainsValueConstraint is used to test whether a dictionary + contains an expected object as a value. + + + + + Construct a DictionaryContainsValueConstraint + + + + + + The display name of this Constraint for use by ToString(). + The default value is the name of the constraint with + trailing "Constraint" removed. Derived classes may set + this to another name in their constructors. + + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + Gets the expected object + + + + + Test whether the expected value is contained in the dictionary + + + + + Flag the constraint to use the supplied predicate function + + The comparison function to use. + Self. + + + + Provides a for the constraints + that are applied to each item in the collection + + + + + Constructs a for a particular + Only used for Failure + + The Constraint to which this result applies + The actual value to which the Constraint was applied + Actual item that does not match expected condition + Non matching item index + + + + Write constraint description, actual items, and non-matching item + + The MessageWriter on which to display the message + + + + EmptyCollectionConstraint tests whether a collection is empty. + + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + Check that the collection is empty + + + + + + + EmptyConstraint tests a whether a string or collection is empty, + postponing the decision about which test is applied until the + type of the actual argument is known. + + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + Test whether the constraint is satisfied by a given value + + The value to be tested + True for success, false for failure + + + + EmptyDirectoryConstraint is used to test that a directory is empty + + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + Test whether the constraint is satisfied by a given value + + The value to be tested + True for success, false for failure + + + + EmptyStringConstraint tests whether a string is empty. + + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + Test whether the constraint is satisfied by a given value + + The value to be tested + True for success, false for failure + + + + EndsWithConstraint can test whether a string ends + with an expected substring. + + + + + Initializes a new instance of the class. + + The expected string + + + + Test whether the constraint is matched by the actual value. + This is a template method, which calls the IsMatch method + of the derived class. + + + + + + + EqualConstraint is able to compare an actual value with the + expected value provided in its constructor. Two objects are + considered equal if both are null, or if both have the same + value. NUnit has special semantics for some object types. + + + + + NUnitEqualityComparer used to test equality. + + + + + Initializes a new instance of the class. + + The expected value. + + + + Gets the tolerance for this comparison. + + + The tolerance. + + + + + Gets a value indicating whether to compare case insensitive. + + + true if comparing case insensitive; otherwise, false. + + + + + Gets a value indicating whether or not to clip strings. + + + true if set to clip strings otherwise, false. + + + + + Gets the failure points. + + + The failure points. + + + + + Flag the constraint to ignore case and return self. + + + + + Flag the constraint to suppress string clipping + and return self. + + + + + Flag the constraint to compare arrays as collections + and return self. + + + + + Flag the constraint to use a tolerance when determining equality. + + Tolerance value to be used + Self. + + + + Flags the constraint to include + property in comparison of two values. + + + Using this modifier does not allow to use the + constraint modifier. + + + + + Switches the .Within() modifier to interpret its tolerance as + a distance in representable values (see remarks). + + Self. + + Ulp stands for "unit in the last place" and describes the minimum + amount a given value can change. For any integers, an ulp is 1 whole + digit. For floating point values, the accuracy of which is better + for smaller numbers and worse for larger numbers, an ulp depends + on the size of the number. Using ulps for comparison of floating + point results instead of fixed tolerances is safer because it will + automatically compensate for the added inaccuracy of larger numbers. + + + + + Switches the .Within() modifier to interpret its tolerance as + a percentage that the actual values is allowed to deviate from + the expected value. + + Self + + + + Causes the tolerance to be interpreted as a TimeSpan in days. + + Self + + + + Causes the tolerance to be interpreted as a TimeSpan in hours. + + Self + + + + Causes the tolerance to be interpreted as a TimeSpan in minutes. + + Self + + + + Causes the tolerance to be interpreted as a TimeSpan in seconds. + + Self + + + + Causes the tolerance to be interpreted as a TimeSpan in milliseconds. + + Self + + + + Causes the tolerance to be interpreted as a TimeSpan in clock ticks. + + Self + + + + Flag the constraint to use the supplied IComparer object. + + The IComparer object to use. + Self. + + + + Flag the constraint to use the supplied IComparer object. + + The IComparer object to use. + Self. + + + + Flag the constraint to use the supplied boolean-returning delegate. + + The boolean-returning delegate to use. + Self. + + + + Flag the constraint to use the supplied Comparison object. + + The IComparer object to use. + Self. + + + + Flag the constraint to use the supplied IEqualityComparer object. + + The IComparer object to use. + Self. + + + + Flag the constraint to use the supplied IEqualityComparer object. + + The IComparer object to use. + Self. + + + + Flag the constraint to use the supplied predicate function + + The comparison function to use. + Self. + + + + Test whether the constraint is satisfied by a given value + + The value to be tested + True for success, false for failure + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + The EqualConstraintResult class is tailored for formatting + and displaying the result of an EqualConstraint. + + + + + Construct an EqualConstraintResult + + + + + Write a failure message. Overridden to provide custom + failure messages for EqualConstraint. + + The MessageWriter to write to + + + + Display the failure information for two collections that did not match. + + The MessageWriter on which to display + The expected collection. + The actual collection + The depth of this failure in a set of nested collections + + + + Displays a single line showing the types and sizes of the expected + and actual collections or arrays. If both are identical, the value is + only shown once. + + The MessageWriter on which to display + The expected collection or array + The actual collection or array + The indentation level for the message line + + + + Displays a single line showing the point in the expected and actual + arrays at which the comparison failed. If the arrays have different + structures or dimensions, both values are shown. + + The MessageWriter on which to display + The expected array + The actual array + Index of the failure point in the underlying collections + The indentation level for the message line + + + + Display the failure information for two IEnumerables that did not match. + + The MessageWriter on which to display + The expected enumeration. + The actual enumeration + The depth of this failure in a set of nested collections + + + + EqualityAdapter class handles all equality comparisons + that use an , + or a . + + + + + Compares two objects, returning true if they are equal + + + + + Returns true if the two objects can be compared by this adapter. + The base adapter cannot handle IEnumerables except for strings. + + + + + Returns an that wraps an . + + + + + that wraps an . + + + + + Returns an that wraps an . + + + + + Returns an EqualityAdapter that uses a predicate function for items comparison. + + + + + + + + + Returns true if the two objects can be compared by this adapter. + The base adapter cannot handle IEnumerables except for strings. + + + + + Compares two objects, returning true if they are equal + + + + + Returns true if the two objects can be compared by this adapter. + Generic adapter requires objects of the specified type. + + + + + Returns an that wraps an . + + + + + Returns an that wraps an . + + + + + that wraps an . + + + + + Returns an that wraps a . + + + + + ExactCountConstraint applies another constraint to each + item in a collection, succeeding only if a specified + number of items succeed. + + + + + Construct a standalone ExactCountConstraint + + + + + + Construct an ExactCountConstraint on top of an existing constraint + + + + + + + Apply the item constraint to each item in the collection, + succeeding only if the expected number of items pass. + + The value to be tested + A ConstraintResult + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + Contain the result of matching a against an actual value. + + + + + The maximum count of list elements that are shown on the constraint result + + + + + The count of matched items of the + + + + + A list with maximum count (+1) of items of the + (The maximum count is set in ) + + + + + Constructs a for a . + + The Constraint to which this result applies. + The actual value to which the Constraint was applied. + If true, applies a status of Success to the result, otherwise Failure. + Count of matched items of the + A list with maximum count (+1) of items of the + + + + Write the actual value for a failing constraint test to a MessageWriter. + + The writer on which the actual value is displayed + + + + ExactTypeConstraint is used to test that an object + is of the exact type provided in the constructor + + + + + Construct an ExactTypeConstraint for a given Type + + The expected Type. + + + + The display name of this Constraint for use by ToString(). + The default value is the name of the constraint with + trailing "Constraint" removed. Derived classes may set + this to another name in their constructors. + + + + + Apply the constraint to an actual value, returning true if it succeeds + + The actual argument + True if the constraint succeeds, otherwise false. + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + Applies the constraint to an actual value, returning a ConstraintResult. + + The value to be tested + A ConstraintResult + + + + ExceptionTypeConstraint is a special version of ExactTypeConstraint + used to provided detailed info about the exception thrown in + an error message. + + + + + Constructs an ExceptionTypeConstraint + + + + + Applies the constraint to an actual value, returning a ConstraintResult. + + The value to be tested + A ConstraintResult + + + + FalseConstraint tests that the actual value is false + + + + + Initializes a new instance of the class. + + + + + Test whether the constraint is satisfied by a given value + + The value to be tested + True for success, false for failure + + + + FileExistsConstraint is used to determine if a file exists + + + + + Initializes a new instance of the class. + + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + FileOrDirectoryExistsConstraint is used to determine if a file or directory exists + + + + + If true, the constraint will only check if files exist, not directories + + + + + If true, the constraint will only check if directories exist, not files + + + + + Initializes a new instance of the class that + will check files and directories. + + + + + Initializes a new instance of the class that + will only check files if ignoreDirectories is true. + + if set to true [ignore directories]. + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + Applies the constraint to an actual value, returning a ConstraintResult. + + The value to be tested + A ConstraintResult + + + Helper routines for working with floating point numbers + + + The floating point comparison code is based on this excellent article: + https://randomascii.wordpress.com/2012/02/25/comparing-floating-point-numbers-2012-edition/ + + + "ULP" means Unit in the Last Place and in the context of this library refers to + the distance between two adjacent floating point numbers. IEEE floating point + numbers can only represent a finite subset of natural numbers, with greater + accuracy for smaller numbers and lower accuracy for very large numbers. + + + If a comparison is allowed "2 ulps" of deviation, that means the values are + allowed to deviate by up to 2 adjacent floating point values, which might be + as low as 0.0000001 for small numbers or as high as 10.0 for large numbers. + + + + + Union of a floating point variable and an integer + + + The union's value as a floating point variable + + + The union's value as an integer + + + The union's value as an unsigned integer + + + Union of a double precision floating point variable and a long + + + The union's value as a double precision floating point variable + + + The union's value as a long + + + The union's value as an unsigned long + + + Compares two floating point values for equality + First floating point value to be compared + Second floating point value t be compared + + Maximum number of representable floating point values that are allowed to + be between the left and the right floating point values + + True if both numbers are equal or close to being equal + + + Floating point values can only represent a finite subset of natural numbers. + For example, the values 2.00000000 and 2.00000024 can be stored in a float, + but nothing between them. + + + This comparison will count how many possible floating point values are between + the left and the right number. If the number of possible values between both + numbers is less than or equal to maxUlps, then the numbers are considered as + being equal. + + + Implementation partially follows the code outlined here: + http://www.anttirt.net/2007/08/19/proper-floating-point-comparisons/ + + + + + Compares two double precision floating point values for equality + First double precision floating point value to be compared + Second double precision floating point value t be compared + + Maximum number of representable double precision floating point values that are + allowed to be between the left and the right double precision floating point values + + True if both numbers are equal or close to being equal + + + Double precision floating point values can only represent a limited series of + natural numbers. For example, the values 2.0000000000000000 and 2.0000000000000004 + can be stored in a double, but nothing between them. + + + This comparison will count how many possible double precision floating point + values are between the left and the right number. If the number of possible + values between both numbers is less than or equal to maxUlps, then the numbers + are considered as being equal. + + + Implementation partially follows the code outlined here: + http://www.anttirt.net/2007/08/19/proper-floating-point-comparisons/ + + + + + + Tests whether a value is greater than the value supplied to its constructor + + + + + Initializes a new instance of the class. + + The expected value. + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + Perform the comparison + + + + + Tests whether a value is greater than or equal to the value supplied to its constructor + + + + + Initializes a new instance of the class. + + The expected value. + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + Perform the comparison + + + + + Interface for all constraints + + + + + The display name of this Constraint for use by ToString(). + + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + Arguments provided to this Constraint, for use in + formatting the description. + + + + + The ConstraintBuilder holding this constraint + + + + + Applies the constraint to an actual value, returning a ConstraintResult. + + The value to be tested + A ConstraintResult + + + + Applies the constraint to an ActualValueDelegate that returns + the value to be tested. The default implementation simply evaluates + the delegate but derived classes may override it to provide for + delayed processing. + + An ActualValueDelegate + A ConstraintResult + + + + Test whether the constraint is satisfied by a given reference. + The default implementation simply dereferences the value but + derived classes may override it to provide for delayed processing. + + A reference to the value to be tested + A ConstraintResult + + + + InstanceOfTypeConstraint is used to test that an object + is of the same type provided or derived from it. + + + + + Construct an InstanceOfTypeConstraint for the type provided + + The expected Type + + + + The display name of this Constraint for use by ToString(). + The default value is the name of the constraint with + trailing "Constraint" removed. Derived classes may set + this to another name in their constructors. + + + + + Apply the constraint to an actual value, returning true if it succeeds + + The actual argument + True if the constraint succeeds, otherwise false. + + + + Keeps track of an interval time which can be represented in + Minutes, Seconds or Milliseconds + + + + + Constructs a interval given an value in milliseconds + + + + + Gets Interval value represented as a TimeSpan object + + + + + Returns the interval with the current value as a number of minutes. + + + + + Returns the interval with the current value as a number of seconds. + + + + + Returns the interval with the current value as a number of milliseconds. + + + + + Is true for intervals created with a non-zero value + + + + + Returns a string that represents the current object. + + + A string that represents the current object. + + + + + IntervalUnit provides the semantics to the value stored in Interval class. + + + + + Unit representing an Interval in minutes + + + + + Unit representing an Interval in seconds + + + + + Unit representing an Interval in milliseconds + + + + + The IResolveConstraint interface is implemented by all + complete and resolvable constraints and expressions. + + + + + Return the top-level constraint for this expression + + + + + + An extension of ResolvableConstraintExpression that adds a no-op Items property for readability. + + + + + Create a new instance of ItemsConstraintExpression + + + + + Create a new instance of ResolvableConstraintExpression, + passing in a pre-populated ConstraintBuilder. + + + + + + No-op property for readability. + + + + + Tests whether a value is less than the value supplied to its constructor + + + + + Initializes a new instance of the class. + + The expected value. + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + Perform the comparison + + + + + Tests whether a value is less than or equal to the value supplied to its constructor + + + + + Initializes a new instance of the class. + + The expected value. + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + Perform the comparison + + + + + MessageWriter is the abstract base for classes that write + constraint descriptions and messages in some form. The + class has separate methods for writing various components + of a message, allowing implementations to tailor the + presentation as needed. + + + + + Construct a MessageWriter given a culture + + + + + Abstract method to get the max line length + + + + + Method to write single line message with optional args, usually + written to precede the general failure message. + + The message to be written + Any arguments used in formatting the message + + + + Method to write single line message with optional args, usually + written to precede the general failure message, at a given + indentation level. + + The indentation level of the message + The message to be written + Any arguments used in formatting the message + + + + Display Expected and Actual lines for a constraint. This + is called by MessageWriter's default implementation of + WriteMessageTo and provides the generic two-line display. + + The failing constraint result + + + + Display Expected and Actual lines for given values. This + method may be called by constraints that need more control over + the display of actual and expected values than is provided + by the default implementation. + + The expected value + The actual value causing the failure + + + + Display Expected and Actual lines for given values, including + a tolerance value on the Expected line. + + The expected value + The actual value causing the failure + The tolerance within which the test was made + + + + Display the expected and actual string values on separate lines. + If the mismatch parameter is >=0, an additional line is displayed + line containing a caret that points to the mismatch point. + + The expected string value + The actual string value + The point at which the strings don't match or -1 + If true, case is ignored in locating the point where the strings differ + If true, the strings should be clipped to fit the line + + + + Writes the text for an actual value. + + The actual value. + + + + Writes the text for a generalized value. + + The value. + + + + Writes the text for a collection value, + starting at a particular point, to a max length + + The collection containing elements to write. + The starting point of the elements to write + The maximum number of elements to write + + + + Custom value formatter function + + The value + + + + + Custom value formatter factory function + + The next formatter function + ValueFormatter + If the given formatter is unable to handle a certain format, it must call the next formatter in the chain + + + + Static methods used in creating messages + + + + + Static string used when strings are clipped + + + + + Formatting strings used for expected and actual values + + + + + Current head of chain of value formatters. Public for testing. + + + + + Add a formatter to the chain of responsibility. + + + + + + Formats text to represent a generalized value. + + The value + The formatted text + + + + Formats text for a collection value, + starting at a particular point, to a max length + + The collection containing elements to write. + The starting point of the elements to write + The maximum number of elements to write + + + + Returns the representation of a type as used in NUnitLite. + This is the same as Type.ToString() except for arrays, + which are displayed with their declared sizes. + + + + + + + Converts any control characters in a string + to their escaped representation. + + The string to be converted + The converted string + + + + Converts any null characters in a string + to their escaped representation. + + The string to be converted + The converted string + + + + Return the a string representation for a set of indices into an array + + Array of indices for which a string is needed + + + + Get an array of indices representing the point in a collection or + array corresponding to a single int index into the collection. + + The collection to which the indices apply + Index in the collection + Array of indices + + + + Clip a string to a given length, starting at a particular offset, returning the clipped + string with ellipses representing the removed parts + + The string to be clipped + The maximum permitted length of the result string + The point at which to start clipping + The clipped string + + + + Clip the expected and actual strings in a coordinated fashion, + so that they may be displayed together. + + + + + + + + + Shows the position two strings start to differ. Comparison + starts at the start index. + + The expected string + The actual string + The index in the strings at which comparison should start + Boolean indicating whether case should be ignored + -1 if no mismatch found, or the index where mismatch found + + + + NaNConstraint tests that the actual value is a double or float NaN + + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + Test that the actual value is an NaN + + + + + + + NoItemConstraint applies another constraint to each + item in a collection, failing if any of them succeeds. + + + + + Construct a SomeItemsConstraint on top of an existing constraint + + + + + + The display name of this Constraint for use by ToString(). + The default value is the name of the constraint with + trailing "Constraint" removed. Derived classes may set + this to another name in their constructors. + + + + + Apply the item constraint to each item in the collection, + failing if any item fails. + + + + + + + NotConstraint negates the effect of some other constraint + + + + + Initializes a new instance of the class. + + The base constraint to be negated. + + + + Test whether the constraint is satisfied by a given value + + The value to be tested + True for if the base constraint fails, false if it succeeds + + + + NullConstraint tests that the actual value is null + + + + + Initializes a new instance of the class. + + + + + Applies the constraint to an actual value, returning a ConstraintResult. + + The value to be tested + A ConstraintResult + + + + The Numerics class contains common operations on numeric values. + + + + + Checks the type of the object, returning true if + the object is a numeric type. + + The object to check + true if the object is a numeric type + + + + Checks the type of the object, returning true if + the object is a floating point numeric type. + + The object to check + true if the object is a floating point numeric type + + + + Checks the type of the object, returning true if + the object is a fixed point numeric type. + + The object to check + true if the object is a fixed point numeric type + + + + Test two numeric values for equality, performing the usual numeric + conversions and using a provided or default tolerance. If the tolerance + provided is Empty, this method may set it to a default tolerance. + + The expected value + The actual value + A reference to the tolerance in effect + True if the values are equal + + + + Compare two numeric values, performing the usual numeric conversions. + + The expected value + The actual value + The relationship of the values to each other + + + + NUnitComparer encapsulates NUnit's default behavior + in comparing two objects. + + + + + Returns the default NUnitComparer. + + + + + Compares two objects + + + + + + + + NUnitEqualityComparer encapsulates NUnit's handling of + equality tests between objects. + + + + + If true, all string comparisons will ignore case + + + + + If true, arrays will be treated as collections, allowing + those of different dimensions to be compared + + + + + Comparison objects used in comparisons for some constraints. + + + + + List of points at which a failure occurred. + + + + + List of comparers used to compare pairs of objects. + + + + + Initializes a new instance of the class. + + + + + Returns the default NUnitEqualityComparer + + + + + Gets and sets a flag indicating whether case should + be ignored in determining equality. + + + + + Gets and sets a flag indicating that arrays should be + compared as collections, without regard to their shape. + + + + + Gets the list of external comparers to be used to + test for equality. They are applied to members of + collections, in place of NUnit's own logic. + + + + + Gets the list of failure points for the last Match performed. + The list consists of objects to be interpreted by the caller. + This generally means that the caller may only make use of + objects it has placed on the list at a particular depth. + + + + + Flags the comparer to include + property in comparison of two values. + + + Using this modifier does not allow to use the + modifier. + + + + + Compares two objects for equality within a tolerance. + + + + + FailurePoint class represents one point of failure + in an equality test. + + + + + The location of the failure + + + + + The expected value + + + + + The actual value + + + + + Indicates whether the expected value is valid + + + + + Indicates whether the actual value is valid + + + + + Represents a constraint that succeeds if all the + members of a collection match a base constraint. + + + + + Returns a constraint that will apply the argument + to the members of a collection, succeeding if + they all succeed. + + + + + Operator that requires both its arguments to succeed + + + + + Construct an AndOperator + + + + + Apply the operator to produce an AndConstraint + + + + + Operator that tests for the presence of a particular attribute + on a type and optionally applies further tests to the attribute. + + + + + Construct an AttributeOperator for a particular Type + + The Type of attribute tested + + + + Reduce produces a constraint from the operator and + any arguments. It takes the arguments from the constraint + stack and pushes the resulting constraint on it. + + + + + Abstract base class for all binary operators + + + + + Reduce produces a constraint from the operator and + any arguments. It takes the arguments from the constraint + stack and pushes the resulting constraint on it. + + + + + + Gets the left precedence of the operator + + + + + Gets the right precedence of the operator + + + + + Abstract method that produces a constraint by applying + the operator to its left and right constraint arguments. + + + + + Abstract base for operators that indicate how to + apply a constraint to items in a collection. + + + + + Constructs a CollectionOperator + + + + + The ConstraintOperator class is used internally by a + ConstraintBuilder to represent an operator that + modifies or combines constraints. + + Constraint operators use left and right precedence + values to determine whether the top operator on the + stack should be reduced before pushing a new operator. + + + + + The precedence value used when the operator + is about to be pushed to the stack. + + + + + The precedence value used when the operator + is on the top of the stack. + + + + + The syntax element preceding this operator + + + + + The syntax element following this operator + + + + + The precedence value used when the operator + is about to be pushed to the stack. + + + + + The precedence value used when the operator + is on the top of the stack. + + + + + Reduce produces a constraint from the operator and + any arguments. It takes the arguments from the constraint + stack and pushes the resulting constraint on it. + + + + + + Represents a constraint that succeeds if the specified + count of members of a collection match a base constraint. + + + + + Construct an ExactCountOperator for a specified count + + The expected count + + + + Reduce produces a constraint from the operator and + any arguments. It takes the arguments from the constraint + stack and pushes the resulting constraint on it. + + + + + + Represents a constraint that succeeds if none of the + members of a collection match a base constraint. + + + + + Returns a constraint that will apply the argument + to the members of a collection, succeeding if + none of them succeed. + + + + + Negates the test of the constraint it wraps. + + + + + Constructs a new NotOperator + + + + + Returns a NotConstraint applied to its argument. + + + + + Operator that requires at least one of its arguments to succeed + + + + + Construct an OrOperator + + + + + Apply the operator to produce an OrConstraint + + + + + PrefixOperator takes a single constraint and modifies + its action in some way. + + + + + Reduce produces a constraint from the operator and + any arguments. It takes the arguments from the constraint + stack and pushes the resulting constraint on it. + + + + + + Returns the constraint created by applying this + prefix to another constraint. + + + + + + + Operator used to test for the presence of a named Property + on an object and optionally apply further tests to the + value of that property. + + + + + Gets the name of the property to which the operator applies + + + + + Constructs a PropOperator for a particular named property + + + + + Reduce produces a constraint from the operator and + any arguments. It takes the arguments from the constraint + stack and pushes the resulting constraint on it. + + + + + + Abstract base class for operators that are able to reduce to a + constraint whether or not another syntactic element follows. + + + + + Represents a constraint that succeeds if any of the + members of a collection match a base constraint. + + + + + Returns a constraint that will apply the argument + to the members of a collection, succeeding if + any of them succeed. + + + + + Operator that tests that an exception is thrown and + optionally applies further tests to the exception. + + + + + Construct a ThrowsOperator + + + + + Reduce produces a constraint from the operator and + any arguments. It takes the arguments from the constraint + stack and pushes the resulting constraint on it. + + + + + Represents a constraint that simply wraps the + constraint provided as an argument, without any + further functionality, but which modifies the + order of evaluation because of its precedence. + + + + + Constructor for the WithOperator + + + + + Returns a constraint that wraps its argument + + + + + OrConstraint succeeds if either member succeeds + + + + + Create an OrConstraint from two other constraints + + The first constraint + The second constraint + + + + Gets text describing a constraint + + + + + Apply the member constraints to an actual value, succeeding + succeeding as soon as one of them succeeds. + + The actual value + True if either constraint succeeded + + + + PathConstraint serves as the abstract base of constraints + that operate on paths and provides several helper methods. + + + + + Construct a PathConstraint for a give expected path + + The expected path + + + + Modifies the current instance to be case-sensitive + and returns it. + + + + + Returns the string representation of this constraint + + + + + Canonicalize the provided path + + + The path in standardized form + + + + Test whether one path in canonical form is a subpath of another path + + The first path - supposed to be the parent path + The second path - supposed to be the child path + + + + + Predicate constraint wraps a Predicate in a constraint, + returning success if the predicate is true. + + + + + Construct a PredicateConstraint from a predicate + + + + + Gets text describing a constraint + + + + + Determines whether the predicate succeeds when applied + to the actual value. + + + + + Abstract base class used for prefixes + + + + + The base constraint + + + + + Prefix used in forming the constraint description + + + + + Construct given a base constraint + + + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + Formats a prefix constraint's description. + + + + + PropertyConstraint extracts a named property and uses + its value as the actual value for a chained constraint. + + + + + Initializes a new instance of the class. + + The name. + The constraint to apply to the property. + + + + Test whether the constraint is satisfied by a given value + + The value to be tested + + + + Returns the string representation of the constraint. + + + + + Contains the result of matching a against an actual value. + + + + + Constructs a for a particular . + + The Constraint to which this result applies. + The base result with actual value to which the Constraint was applied. + + + + Write the additional failure message for a failing constraint to a + MessageWriter. + + The writer on which the actual value is displayed + + + + PropertyExistsConstraint tests that a named property + exists on the object provided through Match. + + Originally, PropertyConstraint provided this feature + in addition to making optional tests on the value + of the property. The two constraints are now separate. + + + + + Initializes a new instance of the class. + + The name of the property. + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + Test whether the property exists for a given object + + The object to be tested + True for success, false for failure + + + + Returns the string representation of the constraint. + + + + + + RangeConstraint tests whether two values are within a + specified range. + + + + + Initializes a new instance of the class. + + Inclusive beginning of the range. + Inclusive end of the range. + + + + Gets text describing a constraint + + + + + Test whether the constraint is satisfied by a given value + + The value to be tested + True for success, false for failure + + + + Modifies the constraint to use an and returns self. + + + + + Modifies the constraint to use an and returns self. + + + + + Modifies the constraint to use a and returns self. + + + + + RegexConstraint can test whether a string matches + the pattern provided. + + + + + Initializes a new instance of the class. + + The pattern. + + + + Test whether the constraint is satisfied by a given value + + The value to be tested + True for success, false for failure + + + + ResolvableConstraintExpression is used to represent a compound + constraint being constructed at a point where the last operator + may either terminate the expression or may have additional + qualifying constraints added to it. + + It is used, for example, for a Property element or for + an Exception element, either of which may be optionally + followed by constraints that apply to the property or + exception. + + + + + Create a new instance of ResolvableConstraintExpression + + + + + Create a new instance of ResolvableConstraintExpression, + passing in a pre-populated ConstraintBuilder. + + + + + Appends an And Operator to the expression + + + + + Appends an Or operator to the expression. + + + + + Resolve the current expression to a Constraint + + + + + ReusableConstraint wraps a constraint expression after + resolving it so that it can be reused consistently. + + + + + Construct a ReusableConstraint from a constraint expression + + The expression to be resolved and reused + + + + Converts a constraint to a ReusableConstraint + + The constraint to be converted + A ReusableConstraint + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Return the top-level constraint for this expression + + + + + + SameAsConstraint tests whether an object is identical to + the object passed to its constructor + + + + + Initializes a new instance of the class. + + The expected object. + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + Test whether the constraint is satisfied by a given value + + The value to be tested + True for success, false for failure + + + + Summary description for SamePathConstraint. + + + + + Initializes a new instance of the class. + + The expected path + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + Test whether the constraint is satisfied by a given value + + The value to be tested + True for success, false for failure + + + + SamePathOrUnderConstraint tests that one path is under another + + + + + Initializes a new instance of the class. + + The expected path + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + Test whether the constraint is satisfied by a given value + + The value to be tested + True for success, false for failure + + + + SomeItemsConstraint applies another constraint to each + item in a collection, succeeding if any of them succeeds. + + + + + Construct a SomeItemsConstraint on top of an existing constraint + + + + + + The display name of this Constraint for use by ToString(). + The default value is the name of the constraint with + trailing "Constraint" removed. Derived classes may set + this to another name in their constructors. + + + + + Apply the item constraint to each item in the collection, + succeeding if any item succeeds. + + + + + + + Flag the constraint to use the supplied object. + + The type of the elements in the collection. + The type of the member. + The comparison function to use. + Self. + + + + Flag the constraint to use the supplied object. + + The IComparer object to use. + Self. + + + + Flag the constraint to use the supplied object. + + The IComparer object to use. + Self. + + + + Flag the constraint to use the supplied object. + + The IComparer object to use. + Self. + + + + Flag the constraint to use the supplied object. + + The IComparer object to use. + Self. + + + + Flag the constraint to use the supplied object. + + The IComparer object to use. + Self. + + + + StartsWithConstraint can test whether a string starts + with an expected substring. + + + + + Initializes a new instance of the class. + + The expected string + + + + Test whether the constraint is matched by the actual value. + This is a template method, which calls the IsMatch method + of the derived class. + + + + + + + StringConstraint is the abstract base for constraints + that operate on strings. It supports the IgnoreCase + modifier for string operations. + + + + + The expected value + + + + + Indicates whether tests should be case-insensitive + + + + + Description of this constraint + + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + Constructs a StringConstraint without an expected value + + + + + Constructs a StringConstraint given an expected value + + The expected value + + + + Modify the constraint to ignore case in matching. + + + + + Test whether the constraint is satisfied by a given value + + The value to be tested + True for success, false for failure + + + + Test whether the constraint is satisfied by a given string + + The string to be tested + True for success, false for failure + + + + SubPathConstraint tests that the actual path is under the expected path + + + + + Initializes a new instance of the class. + + The expected path + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + Test whether the constraint is satisfied by a given value + + The value to be tested + True for success, false for failure + + + + SubstringConstraint can test whether a string contains + the expected substring. + + + + + Initializes a new instance of the class. + + The expected. + + + + Modify the constraint to ignore case in matching. + This will call Using(StringComparison.CurrentCultureIgnoreCase). + + Thrown when a comparison type different + than was already set. + + + + Test whether the constraint is satisfied by a given value + + The value to be tested + True for success, false for failure + + + + Modify the constraint to the specified comparison. + + Thrown when a comparison type different + than was already set. + + + + ThrowsConstraint is used to test the exception thrown by + a delegate by applying a constraint to it. + + + + + Initializes a new instance of the class, + using a constraint to be applied to the exception. + + A constraint to apply to the caught exception. + + + + Get the actual exception thrown - used by Assert.Throws. + + + + + Gets text describing a constraint + + + + + Executes the code of the delegate and captures any exception. + If a non-null base constraint was provided, it applies that + constraint to the exception. + + A delegate representing the code to be tested + True if an exception is thrown and the constraint succeeds, otherwise false + + + + Converts an ActualValueDelegate to a TestDelegate + before calling the primary overload. + + + + + + + Write the actual value for a failing constraint test to a + MessageWriter. This override only handles the special message + used when an exception is expected but none is thrown. + + The writer on which the actual value is displayed + + + + ThrowsExceptionConstraint tests that an exception has + been thrown, without any further tests. + + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + Executes the code and returns success if an exception is thrown. + + A delegate representing the code to be tested + True if an exception is thrown, otherwise false + + + + Applies the constraint to an ActualValueDelegate that returns + the value to be tested. The default implementation simply evaluates + the delegate but derived classes may override it to provide for + delayed processing. + + + + + ThrowsNothingConstraint tests that a delegate does not + throw an exception. + + + + + Gets text describing a constraint + + + + + Test whether the constraint is satisfied by a given value + + The value to be tested + True if no exception is thrown, otherwise false + + + + Applies the constraint to an ActualValueDelegate that returns + the value to be tested. The default implementation simply evaluates + the delegate but derived classes may override it to provide for + delayed processing. + + An ActualValueDelegate + A ConstraintResult + + + + The Tolerance class generalizes the notion of a tolerance + within which an equality test succeeds. Normally, it is + used with numeric types, but it can be used with any + type that supports taking a difference between two + objects and comparing that difference to a value. + + + + + Returns a default Tolerance object, equivalent to an exact match. + + + + + Returns an empty Tolerance object, equivalent to an exact match. + + + + + Constructs a linear tolerance of a specified amount + + + + + Constructs a tolerance given an amount and + + + + + Returns a new tolerance, using the current amount as a percentage. + + + + + Returns a new tolerance, using the current amount in Ulps + + + + + Returns a new tolerance with a as the amount, using + the current amount as a number of days. + + + + + Returns a new tolerance with a as the amount, using + the current amount as a number of hours. + + + + + Returns a new tolerance with a as the amount, using + the current amount as a number of minutes. + + + + + Returns a new tolerance with a as the amount, using + the current amount as a number of seconds. + + + + + Returns a new tolerance with a as the amount, using + the current amount as a number of milliseconds. + + + + + Returns a new tolerance with a as the amount, using + the current amount as a number of clock ticks. + + + + + Gets the for the current Tolerance + + + + + Gets the magnitude of the current Tolerance instance. + + + + + Returns true if the current tolerance has not been set or is using the . + + + + + Apply the tolerance to an expected value and return + a Tolerance.Range that represents the acceptable values. + + + + + Tests that the current Tolerance is linear with a + numeric value, throwing an exception if it is not. + + + + + Tolerance.Range represents the range of values that match + a specific tolerance, when applied to a specific value. + + + + + The lower bound of the range + + + + + The upper bound of the range + + + + + Constructs a range + + + + + Modes in which the tolerance value for a comparison can be interpreted. + + + + + The tolerance was created with a value, without specifying + how the value would be used. This is used to prevent setting + the mode more than once and is generally changed to Linear + upon execution of the test. + + + + + The tolerance is used as a numeric range within which + two compared values are considered to be equal. + + + + + Interprets the tolerance as the percentage by which + the two compared values my deviate from each other. + + + + + Compares two values based in their distance in + representable numbers. + + + + + TrueConstraint tests that the actual value is true + + + + + Initializes a new instance of the class. + + + + + Test whether the constraint is satisfied by a given value + + The value to be tested + True for success, false for failure + + + + TypeConstraint is the abstract base for constraints + that take a Type as their expected value. + + + + + The expected Type used by the constraint + + + + + The type of the actual argument to which the constraint was applied + + + + + Construct a TypeConstraint for a given Type + + The expected type for the constraint + Prefix used in forming the constraint description + + + + Applies the constraint to an actual value, returning a ConstraintResult. + + The value to be tested + A ConstraintResult + + + + Apply the constraint to an actual value, returning true if it succeeds + + The actual argument + True if the constraint succeeds, otherwise false. + + + + UniqueItemsConstraint tests whether all the items in a + collection are unique. + + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + Check that all items are unique. + + + + + + + XmlSerializableConstraint tests whether + an object is serializable in XML format. + + + + + Gets text describing a constraint + + + + + Test whether the constraint is satisfied by a given value + + The value to be tested + True for success, false for failure + + + + Returns the string representation of this constraint + + + + + Helper class with properties and methods that supply + a number of constraints used in Asserts. + + + + + Returns a new checking for the + presence of a particular object in the collection. + + + + + Returns a new DictionaryContainsKeyConstraint checking for the + presence of a particular key in the dictionary. + + + + + Returns a new DictionaryContainsValueConstraint checking for the + presence of a particular value in the dictionary. + + + + + Returns a constraint that succeeds if the actual + value contains the substring supplied as an argument. + + + + + Asserts on Directories + + + + + DO NOT USE! Use DirectoryAssert.AreEqual(...) instead. + The Equals method throws an InvalidOperationException. This is done + to make sure there is no mistake by calling this function. + + + + + + + DO NOT USE! + The ReferenceEquals method throws an InvalidOperationException. This is done + to make sure there is no mistake by calling this function. + + + + + + + Verifies that two directories are equal. Two directories are considered + equal if both are null, or if both point to the same directory. + If they are not equal an is thrown. + + A directory containing the value that is expected + A directory containing the actual value + The message to display if the directories are not equal + Arguments to be used in formatting the message + + + + Verifies that two directories are equal. Two directories are considered + equal if both are null, or if both point to the same directory. + If they are not equal an is thrown. + + A directory containing the value that is expected + A directory containing the actual value + + + + Asserts that two directories are not equal. If they are equal + an is thrown. + + A directory containing the value that is expected + A directory containing the actual value + The message to display if directories are not equal + Arguments to be used in formatting the message + + + + Asserts that two directories are not equal. If they are equal + an is thrown. + + A directory containing the value that is expected + A directory containing the actual value + + + + Asserts that the directory exists. If it does not exist + an is thrown. + + A directory containing the actual value + The message to display if directories are not equal + Arguments to be used in formatting the message + + + + Asserts that the directory exists. If it does not exist + an is thrown. + + A directory containing the actual value + + + + Asserts that the directory exists. If it does not exist + an is thrown. + + The path to a directory containing the actual value + The message to display if directories are not equal + Arguments to be used in formatting the message + + + + Asserts that the directory exists. If it does not exist + an is thrown. + + The path to a directory containing the actual value + + + + Asserts that the directory does not exist. If it does exist + an is thrown. + + A directory containing the actual value + The message to display if directories are not equal + Arguments to be used in formatting the message + + + + Asserts that the directory does not exist. If it does exist + an is thrown. + + A directory containing the actual value + + + + Asserts that the directory does not exist. If it does exist + an is thrown. + + The path to a directory containing the actual value + The message to display if directories are not equal + Arguments to be used in formatting the message + + + + Asserts that the directory does not exist. If it does exist + an is thrown. + + The path to a directory containing the actual value + + + + Helper class with properties and methods that supply + a number of constraints used in Asserts. + + + + + Returns a ConstraintExpression that negates any + following constraint. + + + + + Returns a constraint that succeeds if the value + is a file or directory and it exists. + + + + + Returns a new checking for the + presence of a particular object in the collection. + + + + + Returns a new . This constraint + will, in turn, make use of the appropriate second-level + constraint, depending on the type of the actual argument. + This overload is only used if the item sought is a string, + since any other type implies that we are looking for a + collection member. + + + + + Returns a new DictionaryContainsKeyConstraint checking for the + presence of a particular key in the Dictionary key collection. + + The key to be matched in the Dictionary key collection + + + + Returns a new DictionaryContainsValueConstraint checking for the + presence of a particular value in the Dictionary value collection. + + The value to be matched in the Dictionary value collection + + + + Returns a constraint that succeeds if the actual + value starts with the substring supplied as an argument. + + + + + Returns a constraint that succeeds if the actual + value ends with the substring supplied as an argument. + + + + + Returns a constraint that succeeds if the actual + value matches the regular expression supplied as an argument. + + + + + Thrown when an assertion failed. + + + + The error message that explains + the reason for the exception + + + The error message that explains + the reason for the exception + The exception that caused the + current exception + + + + Serialization Constructor + + + + + Gets the ResultState provided by this exception + + + + + Thrown when an assertion failed. + + + + + + + The error message that explains + the reason for the exception + The exception that caused the + current exception + + + + Serialization Constructor + + + + + Gets the ResultState provided by this exception + + + + + Thrown when a test executes inconclusively. + + + + The error message that explains + the reason for the exception + + + The error message that explains + the reason for the exception + The exception that caused the + current exception + + + + Serialization Constructor + + + + + Gets the ResultState provided by this exception + + + + + Thrown when an assertion failed. + + + + + Default Constructor + + + + + Construct based on the TestResult so far. This is the constructor + used normally, when exiting the multiple assert block with failures. + Not used internally but provided to facilitate debugging. + + + The current result, up to this point. The result is not used + internally by NUnit but is provided to facilitate debugging. + + + + The error message that explains + the reason for the exception + The exception that caused the + current exception + + + + Serialization Constructor + + + + + Gets the provided by this exception. + + + + + Gets the of this test at the point the exception was thrown, + + + + + Abstract base for Exceptions that terminate a test and provide a ResultState. + + + + The error message that explains + the reason for the exception + + + The error message that explains + the reason for the exception + The exception that caused the + current exception + + + + Serialization Constructor + + + + + Gets the ResultState provided by this exception + + + + + Thrown when an assertion failed. + + + + + + + The error message that explains + the reason for the exception + The exception that caused the + current exception + + + + Serialization Constructor + + + + + Gets the ResultState provided by this exception + + + + + Contains extension methods that do not require a special using directive. + + + + + Asserts on Files + + + + + DO NOT USE! Use FileAssert.AreEqual(...) instead. + The Equals method throws an InvalidOperationException. This is done + to make sure there is no mistake by calling this function. + + + + + + + DO NOT USE! + The ReferenceEquals method throws an InvalidOperationException. This is done + to make sure there is no mistake by calling this function. + + + + + + + Verifies that two Streams are equal. Two Streams are considered + equal if both are null, or if both have the same value byte for byte. + If they are not equal an is thrown. + + The expected Stream + The actual Stream + The message to display if Streams are not equal + Arguments to be used in formatting the message + + + + Verifies that two Streams are equal. Two Streams are considered + equal if both are null, or if both have the same value byte for byte. + If they are not equal an is thrown. + + The expected Stream + The actual Stream + + + + Verifies that two files are equal. Two files are considered + equal if both are null, or if both have the same value byte for byte. + If they are not equal an is thrown. + + A file containing the value that is expected + A file containing the actual value + The message to display if Streams are not equal + Arguments to be used in formatting the message + + + + Verifies that two files are equal. Two files are considered + equal if both are null, or if both have the same value byte for byte. + If they are not equal an is thrown. + + A file containing the value that is expected + A file containing the actual value + + + + Verifies that two files are equal. Two files are considered + equal if both are null, or if both have the same value byte for byte. + If they are not equal an is thrown. + + The path to a file containing the value that is expected + The path to a file containing the actual value + The message to display if Streams are not equal + Arguments to be used in formatting the message + + + + Verifies that two files are equal. Two files are considered + equal if both are null, or if both have the same value byte for byte. + If they are not equal an is thrown. + + The path to a file containing the value that is expected + The path to a file containing the actual value + + + + Asserts that two Streams are not equal. If they are equal + an is thrown. + + The expected Stream + The actual Stream + The message to be displayed when the two Stream are the same. + Arguments to be used in formatting the message + + + + Asserts that two Streams are not equal. If they are equal + an is thrown. + + The expected Stream + The actual Stream + + + + Asserts that two files are not equal. If they are equal + an is thrown. + + A file containing the value that is expected + A file containing the actual value + The message to display if Streams are not equal + Arguments to be used in formatting the message + + + + Asserts that two files are not equal. If they are equal + an is thrown. + + A file containing the value that is expected + A file containing the actual value + + + + Asserts that two files are not equal. If they are equal + an is thrown. + + The path to a file containing the value that is expected + The path to a file containing the actual value + The message to display if Streams are not equal + Arguments to be used in formatting the message + + + + Asserts that two files are not equal. If they are equal + an is thrown. + + The path to a file containing the value that is expected + The path to a file containing the actual value + + + + Asserts that the file exists. If it does not exist + an is thrown. + + A file containing the actual value + The message to display if Streams are not equal + Arguments to be used in formatting the message + + + + Asserts that the file exists. If it does not exist + an is thrown. + + A file containing the actual value + + + + Asserts that the file exists. If it does not exist + an is thrown. + + The path to a file containing the actual value + The message to display if Streams are not equal + Arguments to be used in formatting the message + + + + Asserts that the file exists. If it does not exist + an is thrown. + + The path to a file containing the actual value + + + + Asserts that the file does not exist. If it does exist + an is thrown. + + A file containing the actual value + The message to display if Streams are not equal + Arguments to be used in formatting the message + + + + Asserts that the file does not exist. If it does exist + an is thrown. + + A file containing the actual value + + + + Asserts that the file does not exist. If it does exist + an is thrown. + + The path to a file containing the actual value + The message to display if Streams are not equal + Arguments to be used in formatting the message + + + + Asserts that the file does not exist. If it does exist + an is thrown. + + The path to a file containing the actual value + + + + Class used to guard against unexpected argument values + or operations by throwing an appropriate exception. + + + + + Throws an exception if an argument is null + + The value to be tested + The name of the argument + + + + Throws an exception if a string argument is null or empty + + The value to be tested + The name of the argument + + + + Throws an ArgumentOutOfRangeException if the specified condition is not met. + + The condition that must be met + The exception message to be used + The name of the argument + + + + Throws an ArgumentException if the specified condition is not met. + + The condition that must be met + The exception message to be used + The name of the argument + + + + Throws an InvalidOperationException if the specified condition is not met. + + The condition that must be met + The exception message to be used + + + + Throws an if the specified delegate is async void. + + + + + Throws an if the specified delegate is async void. + + + + + Helper class with properties and methods that supply + a number of constraints used in Asserts. + + + + + Returns a ConstraintExpression that negates any + following constraint. + + + + + Returns a ConstraintExpression, which will apply + the following constraint to all members of a collection, + succeeding if all of them succeed. + + + + + Returns a ConstraintExpression, which will apply + the following constraint to all members of a collection, + succeeding if at least one of them succeeds. + + + + + Returns a ConstraintExpression, which will apply + the following constraint to all members of a collection, + succeeding if all of them fail. + + + + + Returns a ConstraintExpression, which will apply + the following constraint to all members of a collection, + succeeding only if a specified number of them succeed. + + + + + Returns a which will apply + the following constraint to only one member of the collection, + and fail if none or more than one match occurs. + + + + + Returns a new PropertyConstraintExpression, which will either + test for the existence of the named property on the object + being tested or apply any following constraint to that property. + + + + + Returns a new ConstraintExpression, which will apply the following + constraint to the Length property of the object being tested. + + + + + Returns a new ConstraintExpression, which will apply the following + constraint to the Count property of the object being tested. + + + + + Returns a new ConstraintExpression, which will apply the following + constraint to the Message property of the object being tested. + + + + + Returns a new ConstraintExpression, which will apply the following + constraint to the InnerException property of the object being tested. + + + + + Returns a new AttributeConstraint checking for the + presence of a particular attribute on an object. + + + + + Returns a new AttributeConstraint checking for the + presence of a particular attribute on an object. + + + + + Returns a new checking for the + presence of a particular object in the collection. + + + + + The AssertionResult class represents the result of a single assertion. + + + + + Construct an AssertionResult + + + + The pass/fail status of the assertion + + + The message produced by the assertion, or null + + + The stack trace associated with the assertion, or null + + + + ToString Override + + + + + Override GetHashCode + + + + + Override Equals + + + + + + AssertionStatus enumeration represents the possible outcomes of an assertion. + The order of definition is significant, higher level values override lower + ones in determining the overall result of a test. + + + + + An assumption failed + + + + + The assertion succeeded + + + + + A warning message was issued + + + + + The assertion failed + + + + + An unexpected exception was thrown + + + + + The IApplyToContext interface is implemented by attributes + that want to make changes to the execution context before + a test is run. + + + + + Apply changes to the execution context + + The execution context + + + + The IApplyToTest interface is implemented by self-applying + attributes that modify the state of a test in some way. + + + + + Modifies a test as defined for the specific attribute. + + The test to modify + + + + CombiningStrategy is the abstract base for classes that + know how to combine values provided for individual test + parameters to create a set of test cases. + + + + + Gets the test cases generated by the CombiningStrategy. + + The test cases. + + + + ICommandWrapper is implemented by attributes and other + objects able to wrap a TestCommand with another command. + + + Attributes or other objects should implement one of the + derived interfaces, rather than this one, since they + indicate in which part of the command chain the wrapper + should be applied. + + + + + Wrap a command and return the result. + + The command to be wrapped + The wrapped command + + + + Objects implementing this interface are used to wrap + the TestMethodCommand itself. They apply after SetUp + has been run and before TearDown. + + + + + Objects implementing this interface are used to wrap + the entire test, including SetUp and TearDown. + + + + + Objects implementing this interface are used to wrap + tests that can repeat. The implementing command is run once, + invoking the chained commands any number of times. + + + + + Any ITest that implements this interface is at a level that the implementing + class should be disposed at the end of the test run + + + + + The IFixtureBuilder interface is exposed by a class that knows how to + build test fixtures from a specified type. In general, it is exposed + by an attribute, but it may be implemented in a helper class used by the + attribute in some cases. + + + + + Builds any number of test fixtures from the specified type. + + The type info of the fixture to be used. + + + + The IFixtureBuilder2 interface extends IFixtureBuilder by allowing + use of a PreFilter, which is used to select methods as test cases. + + + + + Builds any number of test fixtures from the specified type. + + The type info of the fixture to be used. + PreFilter to be used to select methods. + + + + IImplyFixture is an empty marker interface used by attributes like + TestAttribute that cause the class where they are used to be treated + as a TestFixture even without a TestFixtureAttribute. + + Marker interfaces are not usually considered a good practice, but + we use it here to avoid cluttering the attribute hierarchy with + classes that don't contain any extra implementation. + + + + + The IMethodInfo class is used to encapsulate information + about a method in a platform-independent manner. + + + + + Gets the Type from which this method was reflected. + + + + + Gets the MethodInfo for this method. + + + + + Gets the name of the method. + + + + + Gets a value indicating whether the method is abstract. + + + + + Gets a value indicating whether the method is public. + + + + + Gets a value indicating whether the method contains unassigned generic type parameters. + + + + + Gets a value indicating whether the method is a generic method. + + + + + Gets a value indicating whether the MethodInfo represents the definition of a generic method. + + + + + Gets the return Type of the method. + + + + + Gets the parameters of the method. + + + + + + Returns the Type arguments of a generic method or the Type parameters of a generic method definition. + + + + + Replaces the type parameters of the method with the array of types provided and returns a new IMethodInfo. + + The type arguments to be used + A new IMethodInfo with the type arguments replaced + + + + Invokes the method, converting any TargetInvocationException to an NUnitException. + + The object on which to invoke the method + The argument list for the method + The return value from the invoked method + + + + Provides data for a single test parameter. + + + + + Determines whether any data is available for a parameter. + + The parameter of a parameterized test. + + + + Retrieves a list of arguments which can be passed to the specified parameter. + + The parameter of a parameterized test. + + + + Provides data for a single test parameter. + + + + + Retrieves a list of arguments which can be passed to the specified parameter. + + The parameter of a parameterized test. + + + + The IParameterInfo interface is an abstraction of a .NET parameter. + + + + + Gets a value indicating whether the parameter is optional + + + + + Gets an IMethodInfo representing the method for which this is a parameter + + + + + Gets the underlying .NET ParameterInfo + + + + + Gets the Type of the parameter + + + + + Implemented by filters for use in deciding which + Types and Methods should be used to generate tests. + + + + + Use the filter on a Type, returning true if the type matches the filter + and should therefore be included in the discovery process. + + + + + Use the filter on a Type, returning true if the type matches the filter + and should therefore be included in the discovery process. + + + + + A PropertyBag represents a collection of name/value pairs + that allows duplicate entries with the same key. Methods + are provided for adding a new pair as well as for setting + a key to a single value. All keys are strings but values + may be of any type. Null values are not permitted, since + a null entry represents the absence of the key. + + The entries in a PropertyBag are of two kinds: those that + take a single value and those that take multiple values. + However, the PropertyBag has no knowledge of which entries + fall into each category and the distinction is entirely + up to the code using the PropertyBag. + + When working with multi-valued properties, client code + should use the Add method to add name/value pairs and + indexing to retrieve a list of all values for a given + key. For example: + + bag.Add("Tag", "one"); + bag.Add("Tag", "two"); + Assert.That(bag["Tag"], + Is.EqualTo(new string[] { "one", "two" })); + + When working with single-valued properties, client code + should use the Set method to set the value and Get to + retrieve the value. The GetSetting methods may also be + used to retrieve the value in a type-safe manner while + also providing default. For example: + + bag.Set("Priority", "low"); + bag.Set("Priority", "high"); // replaces value + Assert.That(bag.Get("Priority"), + Is.EqualTo("high")); + Assert.That(bag.GetSetting("Priority", "low"), + Is.EqualTo("high")); + + + + + Adds a key/value pair to the property bag + + The key + The value + + + + Sets the value for a key, removing any other + values that are already in the property set. + + + + + + + Gets a single value for a key, using the first + one if multiple values are present and returning + null if the value is not found. + + + + + Gets a flag indicating whether the specified key has + any entries in the property set. + + The key to be checked + True if their are values present, otherwise false + + + + Gets or sets the list of values for a particular key + + The key for which the values are to be retrieved or set + + + + Gets a collection containing all the keys in the property set + + + + + The IReflectionInfo interface is implemented by NUnit wrapper objects that perform reflection. + + + + + Returns an array of custom attributes of the specified type applied to this object + + + + + Returns a value indicating whether an attribute of the specified type is defined on this object. + + + + + The ISimpleTestBuilder interface is exposed by a class that knows how to + build a single tests from a specified method. In general, + it is exposed by an attribute, but it may be implemented in a helper class + used by the attribute in some cases. + + + + + Builds a single test from the specified method and context. + + The method to be used as a test + The TestSuite to which the method will be added + + + + The ISuiteBuilder interface is exposed by a class that knows how to + build a single test suite from a specified type. + + + + + Examine the type and determine if it is suitable for + this builder to use in building a TestSuite. + + Note that returning false will cause the type to be ignored + in loading the tests. If it is desired to load the suite + but label it as non-runnable, ignored, etc., then this + method must return true. + + The type of the fixture to be used + + + + Builds a single test suite from the specified type. + + The type of the fixture to be used + + + + Builds a single test suite from the specified type, subject + to a filter that decides which methods are included. + + The type of the fixture to be used + A PreFilter for selecting methods. + + + + Common interface supported by all representations + of a test. Only includes informational fields. + The Run method is specifically excluded to allow + for data-only representations of a test. + + + + + Gets the id of the test + + + + + Gets the name of the test + + + + + Gets the type of the test + + + + + Gets the fully qualified name of the test + + + + + Gets the name of the class containing this test. Returns + null if the test is not associated with a class. + + + + + Gets the name of the method implementing this test. + Returns null if the test is not implemented as a method. + + + + + Gets the Type of the test fixture, if applicable, or + null if no fixture type is associated with this test. + + + + + Gets the method which declares the test, or + if no method is associated with this test. + + + + + Gets the RunState of the test, indicating whether it can be run. + + + + + Count of the test cases ( 1 if this is a test case ) + + + + + Gets the properties of the test + + + + + Gets the parent test, if any. + + The parent test or null if none exists. + + + + Returns true if this is a test suite + + + + + Gets a bool indicating whether the current test + has any descendant tests. + + + + + Gets this test's child tests + + A list of child tests + + + + Gets a fixture object for running this test. + + + + + The arguments to use in creating the test or empty array if none are required. + + + + + The ITestBuilder interface is exposed by a class that knows how to + build tests from a specified method. In general, it is exposed + by an attribute which has additional information available to provide + the necessary test parameters to distinguish the test cases built. + + + + + Builds any number of tests from the specified method and context. + + The method to be used as a test + The TestSuite to which the method will be added + + + + The ITestCaseBuilder interface is exposed by a class that knows how to + build a test from a specified method, possibly containing child test cases. + + + + + Examine the method and determine if it is suitable for + this builder to use in building a TestCase to be + included in the suite being populated. + + Note that returning false will cause the method to be ignored + in loading the tests. If it is desired to load the method + but label it as non-runnable, ignored, etc., then this + method must return true. + + The test method to examine + The suite being populated + + + + Builds a single test from the specified method and context, + possibly containing child test cases. + + The method to be used as a test case + The test suite being populated, or null + + + + The ITestCaseData interface is implemented by a class + that is able to return complete test cases for use by + a parameterized test method. + + + + + Gets the expected result of the test case + + + + + Returns true if an expected result has been set + + + + + The ITestData interface is implemented by a class that + represents a single instance of a parameterized test. + + + + + Gets the name to be used for the test + + + + + Gets the RunState for this test case. + + + + + Gets the argument list to be provided to the test + + + + + Gets the property dictionary for the test case + + + + + Interface to be implemented by filters applied to tests. + The filter applies when running the test, after it has been + loaded, since this is the only time an ITest exists. + + + + + Determine if a particular test passes the filter criteria. Pass + may examine the parents and/or descendants of a test, depending + on the semantics of the particular filter + + The test to which the filter is applied + True if the test passes the filter, otherwise false + + + + Determine if a test matches the filter explicitly. That is, it must + be a direct match of the test itself or one of its children. + + The test to which the filter is applied + True if the test matches the filter explicitly, otherwise false + + + + The ITestCaseData interface is implemented by a class + that is able to return the data required to create an + instance of a parameterized test fixture. + + + + + Get the TypeArgs if separately set + + + + + The ITestListener interface is used internally to receive + notifications of significant events while a test is being + run. The events are propagated to clients by means of an + AsyncCallback. NUnit extensions may also monitor these events. + + + + + Called when a test has just started + + The test that is starting + + + + Called when a test has finished + + The result of the test + + + + Called when a test produces output for immediate display + + A TestOutput object containing the text to display + + + + Called when a test produces a message to be sent to listeners + + A object containing the text to send + + + + The ITestResult interface represents the result of a test. + + + + + Gets the ResultState of the test result, which + indicates the success or failure of the test. + + + + + Gets the name of the test result + + + + + Gets the full name of the test result + + + + + Gets the elapsed time for running the test in seconds + + + + + Gets or sets the time the test started running. + + + + + Gets or sets the time the test finished running. + + + + + Gets the message associated with a test + failure or with not running the test + + + + + Gets any stack trace associated with an + error or failure. + + + + Gets the number of asserts executed + when running the test and all its children. + + + + + Gets the number of test cases that failed + when running the test and all its children. + + + + + Gets the number of test cases that had warnings + when running the test and all its children. + + + + + Gets the number of test cases that passed + when running the test and all its children. + + + + + Gets the number of test cases that were skipped + when running the test and all its children. + + + + + Gets the number of test cases that were inconclusive + when running the test and all its children. + + + + + Indicates whether this result has any child results. + Accessing HasChildren should not force creation of the + Children collection in classes implementing this interface. + + + + + Gets the collection of child results. + + + + + Gets the Test to which this result applies. + + + + + Gets any text output written to this result. + + + + + Gets a list of AssertionResults associated with the test + + + + + Gets the collection of files attached to the test + + + + + The ITypeInfo interface is an abstraction of a .NET Type + + + + + Gets the underlying Type on which this ITypeInfo is based + + + + + Gets the base type of this type as an ITypeInfo + + + + + Returns true if the Type wrapped is equal to the argument + + + + + Gets the name of the Type + + + + + Gets the full name of the Type + + + + + Gets the assembly in which the type is declared + + + + + Gets the namespace of the Type + + + + + Gets a value indicating whether the type is abstract. + + + + + Gets a value indicating whether the Type is a generic Type + + + + + Gets a value indicating whether the Type has generic parameters that have not been replaced by specific Types. + + + + + Gets a value indicating whether the Type is a generic Type definition + + + + + Gets a value indicating whether the type is sealed. + + + + + Gets a value indicating whether this type is a static class. + + + + + Get the display name for this typeInfo. + + + + + Get the display name for an object of this type, constructed with specific arguments + + + + + Returns a Type representing a generic type definition from which this Type can be constructed. + + + + + Returns a new ITypeInfo representing an instance of this generic Type using the supplied Type arguments + + + + + Returns a value indicating whether this type has a method with a specified public attribute + + + + + Returns an array of IMethodInfos for methods of this Type + that match the specified flags. + + + + + Gets the public constructor taking the specified argument Types + + + + + Returns a value indicating whether this Type has a public constructor taking the specified argument Types. + + + + + Construct an object of this Type, using the specified arguments. + + + + + An object implementing IXmlNodeBuilder is able to build + an XML representation of itself and any children. + + + + + Returns a TNode representing the current object. + + If true, children are included where applicable + A TNode representing the result + + + + Returns a TNode representing the current object after + adding it as a child of the supplied parent node. + + The parent node. + If true, children are included, where applicable + + + + + The ResultState class represents the outcome of running a test. + It contains two pieces of information. The Status of the test + is an enum indicating whether the test passed, failed, was + skipped or was inconclusive. The Label provides a more + detailed breakdown for use by client runners. + + + + + Initializes a new instance of the class. + + The TestStatus. + + + + Initializes a new instance of the class. + + The TestStatus. + The label. + + + + Initializes a new instance of the class. + + The TestStatus. + The stage at which the result was produced + + + + Initializes a new instance of the class. + + The TestStatus. + The label. + The stage at which the result was produced + + + + The result is inconclusive + + + + + The test has been skipped. + + + + + The test has been ignored. + + + + + The test was skipped because it is explicit + + + + + The test succeeded + + + + + The test issued a warning + + + + + The test failed + + + + + The test encountered an unexpected exception + + + + + The test was cancelled by the user + + + + + The test was not runnable. + + + + + A suite failed because one or more child tests failed or had errors + + + + + A suite failed because one or more child tests had warnings + + + + + A suite is marked ignored because one or more child tests were ignored + + + + + A suite failed in its OneTimeSetUp + + + + + A suite had an unexpected exception in its OneTimeSetUp + + + + + A suite had an unexpected exception in its OneTimeDown + + + + + Gets the TestStatus for the test. + + The status. + + + + Gets the label under which this test result is + categorized, if any. + + + + + Gets the stage of test execution in which + the failure or other result took place. + + + + + Get a new ResultState, which is the same as the current + one but with the FailureSite set to the specified value. + + The FailureSite to use + A new ResultState + + + + Test whether this ResultState has the same Status and Label + as another one. In other words, the whether two are equal + ignoring the Site. + + + + + + + Determines whether the specified , is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Overload == operator for ResultStates + + + + + Overload != operator for ResultStates + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + The FailureSite enum indicates the stage of a test + in which an error or failure occurred. + + + + + Failure in the test itself + + + + + Failure in the SetUp method + + + + + Failure in the TearDown method + + + + + Failure of a parent test + + + + + Failure of a child test + + + + + The RunState enum indicates whether a test can be executed. + + + + + The test is not runnable. + + + + + The test is runnable. + + + + + The test can only be run explicitly + + + + + The test has been skipped. This value may + appear on a Test when certain attributes + are used to skip the test. + + + + + The test has been ignored. May appear on + a Test, when the IgnoreAttribute is used. + + + + + The TestAttachment class represents a file attached to a TestResult, + with an optional description. + + + + + Absolute file path to attachment file + + + + + User specifed description of attachment. May be null. + + + + + Creates a TestAttachment class to represent a file attached to a test result. + + Absolute file path to attachment file + User specifed description of attachment. May be null. + + + + The class holds a message sent by a test to all listeners + + + + + Construct with text, destination type and + the name of the test that produced the message. + + Destination of the message + Text to be sent + ID of the test that produced the message + + + + Converts object to string + + + + + The message to send to listeners + + + + + The Destination of the message. + + + + + The ID of the test that sent the message + + + + + Returns the XML representation of the object. + + + + + The TestOutput class holds a unit of output from + a test to a specific output stream + + + + + Construct with text, output destination type and + the name of the test that produced the output. + + Text to be output + Name of the stream or channel to which the text should be written + Id of the test that produced the output + FullName of test that produced the output + + + + Return string representation of the object for debugging + + + + + + Get the text + + + + + Get the output type + + + + + Get the name of the test that created the output + + + + + Get the id of the test that created the output + + + + + Convert the TestOutput object to an XML string + + + + + The TestStatus enum indicates the result of running a test + + + + + The test was inconclusive + + + + + The test has skipped + + + + + The test succeeded + + + + + There was a warning + + + + + The test failed + + + + + TNode represents a single node in the XML representation + of a Test or TestResult. It replaces System.Xml.XmlNode and + System.Xml.Linq.XElement, providing a minimal set of methods + for operating on the XML in a platform-independent manner. + + + + + Constructs a new instance of TNode + + The name of the node + + + + Constructs a new instance of TNode with a value + + The name of the node + The text content of the node + + + + Constructs a new instance of TNode with a value + + The name of the node + The text content of the node + Flag indicating whether to use CDATA when writing the text + + + + Gets the name of the node + + + + + Gets the value of the node + + + + + Gets a flag indicating whether the value should be output using CDATA. + + + + + Gets the dictionary of attributes + + + + + Gets a list of child nodes + + + + + Gets the first ChildNode + + + + + Gets the XML representation of this node. + + + + + Create a TNode from its XML text representation + + The XML text to be parsed + A TNode + + + + Adds a new element as a child of the current node and returns it. + + The element name. + The newly created child element + + + + Adds a new element with a value as a child of the current node and returns it. + + The element name + The text content of the new element + The newly created child element + + + + Adds a new element with a value as a child of the current node and returns it. + The value will be output using a CDATA section. + + The element name + The text content of the new element + The newly created child element + + + + Adds an attribute with a specified name and value to the XmlNode. + + The name of the attribute. + The value of the attribute. + + + + Finds a single descendant of this node matching an XPath + specification. The format of the specification is + limited to what is needed by NUnit and its tests. + + + + + + + Finds all descendants of this node matching an XPath + specification. The format of the specification is + limited to what is needed by NUnit and its tests. + + + + + Writes the XML representation of the node to an XmlWriter + + + + + + Class used to represent a list of XmlResults + + + + + Class used to represent the attributes of a node + + + + + Gets or sets the value associated with the specified key. + Overridden to return null if attribute is not found. + + The key. + Value of the attribute or null + + + + AssemblyHelper provides static methods for working + with assemblies. + + + + + Gets the path from which an assembly was loaded. + For builds where this is not possible, returns + the name of the assembly. + + The assembly. + The path. + + + + Gets the path to the directory from which an assembly was loaded. + + The assembly. + The path. + + + + Gets the AssemblyName of an assembly. + + The assembly + An AssemblyName + + + + Loads an assembly given a string, which may be the + path to the assembly or the AssemblyName + + + + + Gets the assembly path from code base. + + Public for testing purposes + The code base. + + + + + CombinatorialStrategy creates test cases by using all possible + combinations of the parameter data. + + + + + Gets the test cases generated by the CombiningStrategy. + + The test cases. + + + + Provides data from fields marked with the DatapointAttribute or the + DatapointsAttribute. + + + + + Determines whether any data is available for a parameter. + + The parameter of a parameterized test + + + + Retrieves data for use with the supplied parameter. + + The parameter of a parameterized test + + + + Built-in SuiteBuilder for all types of test classes. + + + + + Examine the type and determine if it is suitable for + this builder to use in building a TestSuite. + + Note that returning false will cause the type to be ignored + in loading the tests. If it is desired to load the suite + but label it as non-runnable, ignored, etc., then this + method must return true. + + The fixture type to check + + + + Builds a single test suite from the specified type. + + The fixture type to build + + + + Builds a single test suite from the specified type, subject + to a filter that decides which methods are included. + + The fixture type to build + A PreFilter for selecting methods. + + + + We look for attributes implementing IFixtureBuilder at one level + of inheritance at a time. Attributes on base classes are not used + unless there are no fixture builder attributes at all on the derived + class. This is by design. + + The type being examined for attributes + + + + Class to build ether a parameterized or a normal NUnitTestMethod. + There are four cases that the builder must deal with: + 1. The method needs no params and none are provided + 2. The method needs params and they are provided + 3. The method needs no params but they are provided in error + 4. The method needs params but they are not provided + This could have been done using two different builders, but it + turned out to be simpler to have just one. The BuildFrom method + takes a different branch depending on whether any parameters are + provided, but all four cases are dealt with in lower-level methods + + + + + Determines if the method can be used to build an NUnit test + test method of some kind. The method must normally be marked + with an identifying attribute for this to be true. + + Note that this method does not check that the signature + of the method for validity. If we did that here, any + test methods with invalid signatures would be passed + over in silence in the test run. Since we want such + methods to be reported, the check for validity is made + in BuildFrom rather than here. + + An IMethodInfo for the method being used as a test method + + + + Builds a single test from the specified method and context, + possibly containing child test cases. + + The method for which a test is to be built + + + + Determines if the method can be used to build an NUnit test + test method of some kind. The method must normally be marked + with an identifying attribute for this to be true. + + Note that this method does not check that the signature + of the method for validity. If we did that here, any + test methods with invalid signatures would be passed + over in silence in the test run. Since we want such + methods to be reported, the check for validity is made + in BuildFrom rather than here. + + An IMethodInfo for the method being used as a test method + The test suite being built, to which the new test would be added + + + + Builds a single test from the specified method and context, + possibly containing child test cases. + + The method for which a test is to be built + The test fixture being populated, or null + + + + Builds a ParameterizedMethodSuite containing individual test cases. + + The method for which a test is to be built. + The list of test cases to include. + + + + Build a simple, non-parameterized TestMethod for this method. + + The MethodInfo for which a test is to be built + The test suite for which the method is being built + + + + Class that can build a tree of automatic namespace + suites from a group of fixtures. + + + + + NamespaceDictionary of all test suites we have created to represent + namespaces. Used to locate namespace parent suites for fixtures. + + + + + Point in the tree where items in the global namespace are added + + + + + Initializes a new instance of the class. + + The root suite. + + + + Gets the root entry in the tree created by the NamespaceTreeBuilder. + + The root suite. + + + + Adds the specified fixtures to the tree. + + The fixtures to be added. + + + + Adds the specified fixture to the tree. + + The fixture to be added. + + + + NUnitTestCaseBuilder is a utility class used by attributes + that build test cases. + + + + + Constructs an + + + + + Builds a single NUnitTestMethod, either as a child of the fixture + or as one of a set of test cases under a ParameterizedTestMethodSuite. + + The MethodInfo from which to construct the TestMethod + The suite or fixture to which the new test will be added + The ParameterSet to be used, or null + + + + Checks to see if we have valid combinations of attributes. + + The TestMethod to be checked. If it + is found to be non-runnable, it will be modified. + True if the method signature is valid, false if not + + + + Helper method that checks the signature of a TestMethod and + any supplied parameters to determine if the test is valid. + + Currently, NUnitTestMethods are required to be public, + non-abstract methods, either static or instance, + returning void. They may take arguments but the values must + be provided or the TestMethod is not considered runnable. + + Methods not meeting these criteria will be marked as + non-runnable and the method will return false in that case. + + The TestMethod to be checked. If it + is found to be non-runnable, it will be modified. + Parameters to be used for this test, or null + True if the method signature is valid, false if not + + The return value is no longer used internally, but is retained + for testing purposes. + + + + + NUnitTestFixtureBuilder is able to build a fixture given + a class marked with a TestFixtureAttribute or an unmarked + class containing test methods. In the first case, it is + called by the attribute and in the second directly by + NUnitSuiteBuilder. + + + + + Build a TestFixture from type provided. A non-null TestSuite + must always be returned, since the method is generally called + because the user has marked the target class as a fixture. + If something prevents the fixture from being used, it should + be returned nonetheless, labelled as non-runnable. + + An ITypeInfo for the fixture to be used. + Filter used to select methods as tests. + A TestSuite object or one derived from TestSuite. + + + + Overload of BuildFrom called by tests that have arguments. + Builds a fixture using the provided type and information + in the ITestFixtureData object. + + The TypeInfo for which to construct a fixture. + Filter used to select methods as tests. + An object implementing ITestFixtureData or null. + + + + + Method to add test cases to the newly constructed fixture. + + + + + Method to create a test case from a MethodInfo and add + it to the fixture being built. It first checks to see if + any global TestCaseBuilder addin wants to build the + test case. If not, it uses the internal builder + collection maintained by this fixture builder. + + The default implementation has no test case builders. + Derived classes should add builders to the collection + in their constructor. + + The method for which a test is to be created + The test suite being built. + A newly constructed Test + + + + PairwiseStrategy creates test cases by combining the parameter + data so that all possible pairs of data items are used. + + + + The number of test cases that cover all possible pairs of test function + parameters values is significantly less than the number of test cases + that cover all possible combination of test function parameters values. + And because different studies show that most of software failures are + caused by combination of no more than two parameters, pairwise testing + can be an effective ways to test the system when it's impossible to test + all combinations of parameters. + + + The PairwiseStrategy code is based on "jenny" tool by Bob Jenkins: + https://burtleburtle.net/bob/math/jenny.html + + + + + + FleaRand is a pseudo-random number generator developed by Bob Jenkins: + https://burtleburtle.net/bob/rand/talksmall.html#flea + + + + + Initializes a new instance of the FleaRand class. + + The seed. + + + + FeatureInfo represents coverage of a single value of test function + parameter, represented as a pair of indices, Dimension and Feature. In + terms of unit testing, Dimension is the index of the test parameter and + Feature is the index of the supplied value in that parameter's list of + sources. + + + + + Initializes a new instance of FeatureInfo class. + + Index of a dimension. + Index of a feature. + + + + A FeatureTuple represents a combination of features, one per test + parameter, which should be covered by a test case. In the + PairwiseStrategy, we are only trying to cover pairs of features, so the + tuples actually may contain only single feature or pair of features, but + the algorithm itself works with triplets, quadruples and so on. + + + + + Initializes a new instance of FeatureTuple class for a single feature. + + Single feature. + + + + Initializes a new instance of FeatureTuple class for a pair of features. + + First feature. + Second feature. + + + + TestCase represents a single test case covering a list of features. + + + + + Initializes a new instance of TestCaseInfo class. + + A number of features in the test case. + + + + PairwiseTestCaseGenerator class implements an algorithm which generates + a set of test cases which covers all pairs of possible values of test + function. + + + + The algorithm starts with creating a set of all feature tuples which we + will try to cover (see method). This set + includes every single feature and all possible pairs of features. We + store feature tuples in the 3-D collection (where axes are "dimension", + "feature", and "all combinations which includes this feature"), and for + every two feature (e.g. "A" and "B") we generate both ("A", "B") and + ("B", "A") pairs. This data structure extremely reduces the amount of + time needed to calculate coverage for a single test case (this + calculation is the most time-consuming part of the algorithm). + + + Then the algorithm picks one tuple from the uncovered tuple, creates a + test case that covers this tuple, and then removes this tuple and all + other tuples covered by this test case from the collection of uncovered + tuples. + + + Picking a tuple to cover + + + There are no any special rules defined for picking tuples to cover. We + just pick them one by one, in the order they were generated. + + + Test generation + + + Test generation starts from creating a completely random test case which + covers, nevertheless, previously selected tuple. Then the algorithm + tries to maximize number of tuples which this test covers. + + + Test generation and maximization process repeats seven times for every + selected tuple and then the algorithm picks the best test case ("seven" + is a magic number which provides good results in acceptable time). + + Maximizing test coverage + + To maximize tests coverage, the algorithm walks through the list of mutable + dimensions (mutable dimension is a dimension that are not included in + the previously selected tuple). Then for every dimension, the algorithm + walks through the list of features and checks if this feature provides + better coverage than randomly selected feature, and if yes keeps this + feature. + + + This process repeats while it shows progress. If the last iteration + doesn't improve coverage, the process ends. + + + In addition, for better results, before start every iteration, the + algorithm "scrambles" dimensions - so for every iteration dimension + probes in a different order. + + + + + + Creates a set of test cases for specified dimensions. + + + An array which contains information about dimensions. Each element of + this array represents a number of features in the specific dimension. + + + A set of test cases. + + + + + Gets the test cases generated by this strategy instance. + + A set of test cases. + + + + The ParameterDataProvider class implements IParameterDataProvider + and hosts one or more individual providers. + + + + + Construct with a collection of individual providers + + + + + Determines whether any data is available for a parameter. + + The parameter of a parameterized test + + + + Retrieves data for use with the supplied parameter. + + The parameter of a parameterized test + + + + ParameterDataSourceProvider supplies individual argument values for + single parameters using attributes implementing IParameterDataSource. + + + + + Determines whether any data is available for a parameter. + + The parameter of a parameterized test + + + + Retrieves data for use with the supplied parameter. + + The parameter of a parameterized test + + + + SequentialStrategy creates test cases by using all of the + parameter data sources in parallel, substituting null + when any of them run out of data. + + + + + Gets the test cases generated by the CombiningStrategy. + + The test cases. + + + + TestActionAfterCommand handles the AfterTest method of a single + TestActionItem, provided the items BeforeTest has been run. + + + + + Initializes a new instance of the class. + + The inner command. + The TestActionItem to run before the inner command. + + + + AfterCommand is a DelegatingTestCommand that performs some + specific action after the inner command is run. + + + + + Construct an AfterCommand + + + + + Execute the command + + + + + Set this to perform action after the inner command. + + + + + ContextSettingsCommand applies specified changes to the + TestExecutionContext prior to running a test. No special + action is needed after the test runs, since the prior + context will be restored automatically. + + + + + TestActionCommand handles a single ITestAction applied + to a test. It runs the BeforeTest method, then runs the + test and finally runs the AfterTest method. + + + + + Initializes a new instance of the class. + + The inner command. + + + + Runs the test, saving a TestResult in the supplied TestExecutionContext. + + The context in which the test should run. + A TestResult + + + + Perform the before test action + + + + + Perform the after test action + + + + + TestActionBeforeCommand handles the BeforeTest method of a single + TestActionItem, relying on the item to remember it has been run. + + + + + Initializes a new instance of the class. + + The inner command. + The TestActionItem to run before the inner command. + + + + BeforeTestCommand is a DelegatingTestCommand that performs some + specific action before the inner command is run. + + + + + Construct a BeforeCommand + + + + + Execute the command + + + + + Action to perform before the inner command. + + + + + ConstructFixtureCommand constructs the user test object if necessary. + + + + + Constructs a OneTimeSetUpCommand for a suite + + The inner command to which the command applies + + + + DelegatingTestCommand wraps an inner TestCommand. + Derived classes may do what they like before or + after running the inner command. + + + + TODO: Documentation needed for field + + + + Initializes a new instance of the class. + + The inner command. + + + + OneTimeTearDownCommand performs any teardown actions + specified for a suite and calls Dispose on the user + test object, if any. + + + + + Construct a OneTimeTearDownCommand + + The command wrapped by this command + + + + EmptyTestCommand is a TestCommand that does nothing. It simply + returns the current result from the context when executed. We + use it to avoid testing for null when executing a chain of + DelegatingTestCommands. + + + + + Construct a NullCommand for a test + + + + + Execute the command + + + + + adjusts the result of a successful test + to a failure if the elapsed time has exceeded the specified maximum + time allowed. + + + + + Initializes a new instance of the class. + + The inner command. + The max time allowed in milliseconds + + + + OneTimeSetUpCommand runs any one-time setup methods for a suite, + constructing the user test object if necessary. + + + + + Constructs a OneTimeSetUpCommand for a suite + + The inner command to which the command applies + A SetUpTearDownList for use by the command + + + + OneTimeTearDownCommand performs any teardown actions + specified for a suite and calls Dispose on the user + test object, if any. + + + + + Construct a OneTimeTearDownCommand + + The command wrapped by this command + A SetUpTearDownList for use by the command + + + + SetUpTearDownCommand runs SetUp methods for a suite, + runs the test and then runs TearDown methods. + + + + + Initializes a new instance of the class. + + The inner command. + List of setup/teardown items + + + + SetUpTearDownItem holds the setup and teardown methods + for a single level of the inheritance hierarchy. + + + + + Construct a SetUpTearDownNode + + A list of setup methods for this level + A list teardown methods for this level + + + + Returns true if this level has any methods at all. + This flag is used to discard levels that do nothing. + + + + + Run SetUp on this level. + + The execution context to use for running. + + + + Run TearDown for this level. + + + + + + TODO: Documentation needed for class + + + + + Initializes a new instance of the class. + + The test being skipped. + + + + Overridden to simply set the CurrentResult to the + appropriate Skipped state. + + The execution context for the test + A TestResult + + + + TestActionCommand handles a single ITestAction applied + to a test. It runs the BeforeTest method, then runs the + test and finally runs the AfterTest method. + + + + + Initializes a new instance of the class. + + The inner command. + The TestAction with which to wrap the inner command. + + + + TestActionItem wraps a single execution of an ITestAction. + Its primary purpose is to track whether the BeforeTest + method has been called and suppress calling the + AfterTest method if it has not. This is necessary when + ITestActions are used before and after a CompositeWorkItem, + since the OneTimeSetUpCommand and OneTimeTearDownCommand + are separate command chains. By sharing a TestActionItem + between the setup and teardown chains, the two calls can + be coordinated. + + + + + Construct a TestActionItem + + The ITestAction to be included + + + + Get flag indicating if the BeforeTest entry was already called. + + + + + Run the BeforeTest method of the action and remember that it has been run. + + The test to which the action applies + + + + Run the AfterTest action, but only if the BeforeTest + action was actually run. + + The test to which the action applies + + + + TestCommand is the abstract base class for all test commands + in the framework. A TestCommand represents a single stage in + the execution of a test, e.g.: SetUp/TearDown, checking for + Timeout, verifying the returned result from a method, etc. + + TestCommands may decorate other test commands so that the + execution of a lower-level command is nested within that + of a higher level command. All nested commands are executed + synchronously, as a single unit. Scheduling test execution + on separate threads is handled at a higher level, using the + task dispatcher. + + + + + Construct a TestCommand for a test. + + The test to be executed + + + + Gets the test associated with this command. + + + + + Runs the test in a specified context, returning a TestResult. + + The TestExecutionContext to be used for running the test. + A TestResult + + + + TestMethodCommand is the lowest level concrete command + used to run actual test cases. + + + + + Initializes a new instance of the class. + + The test. + + + + Runs the test, saving a TestResult in the execution context, as + well as returning it. If the test has an expected result, it + is asserts on that value. Since failed tests and errors throw + an exception, this command must be wrapped in an outer command, + will handle that exception and records the failure. This role + is usually played by the SetUpTearDown command. + + The execution context + + + + TheoryResultCommand adjusts the result of a Theory so that + it fails if all the results were inconclusive. + + + + + Constructs a TheoryResultCommand + + The command to be wrapped by this one + + + + creates a timer in order to cancel + a test if it exceeds a specified time and adjusts + the test result if it did time out. + + + + + Initializes a new instance of the class. + + The inner command + Timeout value + + + + Provides methods to support consistent checking in constraints. + + + + + Requires that the provided object is actually of the type required. + + The object to verify. + Name of the parameter as passed into the checking method. + + If and can be null, returns null rather than throwing when is null. + If cannot be null, this parameter is ignored. + The type to require. + + + + CultureDetector is a helper class used by NUnit to determine + whether a test should be run based on the current culture. + + + + + Default constructor uses the current culture. + + + + + Construct a CultureDetector for a particular culture for testing. + + The culture to be used + + + + Test to determine if one of a collection of cultures + is being used currently. + + + + + + + Tests to determine if the current culture is supported + based on a culture attribute. + + The attribute to examine + + + + + Test to determine if the a particular culture or comma- + delimited set of cultures is in use. + + Name of the culture or comma-separated list of culture ids + True if the culture is in use on the system + + + + Return the last failure reason. Results are not + defined if called before IsSupported( Attribute ) + is called. + + + + + Useful when wrapping awaitables whose GetResult method does not block until complete. + Contains a default mechanism to implement + via and . + + + + + ExceptionHelper provides static methods for working with exceptions + + + + + Rethrows an exception, preserving its stack trace + + The exception to rethrow + + + + Builds up a message, using the Message field of the specified exception + as well as any InnerExceptions. Optionally excludes exception names, + creating a more readable message. + + The exception. + Flag indicating whether exception names should be excluded. + A combined message string. + + + + Builds up a message, using the Message field of the specified exception + as well as any InnerExceptions. + + The exception. + A combined stack trace. + + + + Gets the stack trace of the exception. If no stack trace + is provided, returns "No stack trace available". + + The exception. + A string representation of the stack trace. + + + + Executes a parameterless synchronous or async delegate and returns the exception it throws, if any. + + + + + A CompositeWorkItem represents a test suite and + encapsulates the execution of the suite as well + as all its child tests. + + + + + List of Child WorkItems + + + + + Indicates whether this work item should use a separate dispatcher. + + + + + Construct a CompositeWorkItem for executing a test suite + using a filter to select child tests. + + The TestSuite to be executed + A filter used to select child tests + + + + Method that actually performs the work. Overridden + in CompositeWorkItem to do one-time setup, run all child + items and then dispatch the one-time teardown work item. + + + + + + + + + + Cancel (abort or stop) a CompositeWorkItem and all of its children + + true if the CompositeWorkItem and all of its children should be aborted, false if it should allow all currently running tests to complete + + + + OneTimeTearDownWorkItem represents the cleanup + and one-time teardown phase of a CompositeWorkItem + + + + + Construct a OneTimeTearDownWOrkItem wrapping a CompositeWorkItem + + The CompositeWorkItem being wrapped + + + + The WorkItem name, overridden to indicate this is the teardown. + + + + + The ExecutionStrategy for use in running this work item + + + + + + + + + + PerformWork is not used in CompositeWorkItem + + + + + EventListenerTextWriter sends text output to the currently active + ITestEventListener in the form of a TestOutput object. If no event + listener is active in the context, or if there is no context, + the output is forwarded to the supplied default writer. + + + + + Construct an EventListenerTextWriter + + The name of the stream to use for events + The default writer to use if no listener is available + + + + Get the Encoding for this TextWriter + + + + + Write formatted string + + + + + Write formatted string + + + + + Write formatted string + + + + + Write an object + + + + + Write a string + + + + + Write a decimal + + + + + Write a double + + + + + Write formatted string + + + + + Write a ulong + + + + + Write a long + + + + + Write a uint + + + + + Write an int + + + + + Write a char + + + + + Write a boolean + + + + + Write chars + + + + + Write chars + + + + + Write a float + + + + + Write a string with newline + + + + + Write an object with newline + + + + + Write formatted string with newline + + + + + Write formatted string with newline + + + + + Write formatted string with newline + + + + + Write a decimal with newline + + + + + Write a formatted string with newline + + + + + Write a double with newline + + + + + Write a uint with newline + + + + + Write a ulong with newline + + + + + Write a long with newline + + + + + Write an int with newline + + + + + Write a bool with newline + + + + + Write chars with newline + + + + + Write chars with newline + + + + + Write a char with newline + + + + + Write a float with newline + + + + + Write newline + + + + + The EventPumpState enum represents the state of an + EventPump. + + + + + The pump is stopped + + + + + The pump is pumping events with no stop requested + + + + + The pump is pumping events but a stop has been requested + + + + + EventPump pulls events out of an EventQueue and sends + them to a listener. It is used to send events back to + the client without using the CallContext of the test + runner thread. + + + + + The downstream listener to which we send events + + + + + The queue that holds our events + + + + + Thread to do the pumping + + + + + The current state of the event pump + + + + + Constructor + + The EventListener to receive events + The event queue to pull events from + + + + Gets or sets the current state of the pump + + + + + Gets or sets the name of this EventPump + (used only internally and for testing). + + + + + Dispose stops the pump + Disposes the used WaitHandle, too. + + + + + Start the pump + + + + + Tell the pump to stop after emptying the queue. + + + + + Our thread proc for removing items from the event + queue and sending them on. Note that this would + need to do more locking if any other thread were + removing events from the queue. + + + + + NUnit.Core.Event is the abstract base for all stored events. + An Event is the stored representation of a call to the + ITestListener interface and is used to record such calls + or to queue them for forwarding on another thread or at + a later time. + + + + + The Send method is implemented by derived classes to send the event to the specified listener. + + The listener. + + + + TestStartedEvent holds information needed to call the TestStarted method. + + + + + Initializes a new instance of the class. + + The test. + + + + Calls TestStarted on the specified listener. + + The listener. + + + + TestFinishedEvent holds information needed to call the TestFinished method. + + + + + Initializes a new instance of the class. + + The result. + + + + Calls TestFinished on the specified listener. + + The listener. + + + + TestOutputEvent holds information needed to call the TestOutput method. + + + + + Initializes a new instance of the class. + + The output object. + + + + Calls TestOutput on the specified listener. + + The listener. + + + + TestMessageEvent holds information needed to call the SendMessage method. + + + + + Initializes a new instance of the class. + + The test message object. + + + + Calls on the specified listener. + + The listener. + + + + Holds object for sending to all listeners + + + + + Implements a queue of work items each of which + is queued as a WaitCallback. + + + + + Gets the count of items in the queue. + + + + + Enqueues the specified event + + The event to enqueue. + + + + Removes the first element from the queue and returns it (or null). + + + If true and the queue is empty, the calling thread is blocked until + either an element is enqueued, or is called. + + + + + If the queue not empty + the first element. + + + otherwise, if ==false + or has been called + null. + + + + + + + Stop processing of the queue + + + + + An IWorkItemDispatcher handles execution of work items. + + + + + The level of parallelism supported. Zero if not supported. + + + + + Start execution, performing any initialization. Sets + the top level work item and dispatches it. + + + + + Dispatch a single work item for execution. The first + work item dispatched is saved as the top-level + work item and used when stopping the run. + + The item to dispatch + + + + Cancel the ongoing run completely. + If no run is in process, the call has no effect. + + true if the IWorkItemDispatcher should abort all currently running WorkItems, false if it should allow all currently running WorkItems to complete + + + + MainThreadWorkItemDispatcher handles execution of WorkItems by + directly executing them on the main thread. This is different + from the SimpleWorkItemDispatcher where the work item is dispatched + onto its own thread. + + + + + The level of parallelism supported + + + + + Start execution, dispatching the top level + work into the main thread. + + + + + Dispatch a single work item for execution by + executing it directly. + The item to dispatch + + + + + This method is not supported for + this dispatcher. Using it will throw a + NotSupportedException. + + Not used + If used, it will always throw this. + + + + Enumeration representing the strategy to follow in executing a work item. + The value is only relevant when running under the parallel dispatcher. + + + + + Run directly on same thread + + + + + Enqueue for parallel execution + + + + + Enqueue for non-parallel execution + + + + + ParallelWorkItemDispatcher handles execution of work items by + queuing them for worker threads to process. + + + + + Event raised whenever a shift is starting. + + + + + Event raised whenever a shift has ended. + + + + + Construct a ParallelWorkItemDispatcher + + Number of workers to use + + + + Number of parallel worker threads + + + + + Enumerates all the shifts supported by the dispatcher + + + + + Enumerates all the Queues supported by the dispatcher + + + + + Start execution, setting the top level work, + enqueuing it and starting a shift to execute it. + + + + + Dispatch a single work item for execution. The first + work item dispatched is saved as the top-level + work item and used when stopping the run. + + The item to dispatch + + + + Cancel the ongoing run completely. + If no run is in process, the call has no effect. + + + + + Save the state of the queues and create a new isolated set + + + + + Try to remove isolated queues and restore old ones + + + + + QueuingEventListener uses an EventQueue to store any + events received on its EventListener interface. + + + + + The EventQueue created and filled by this listener + + + + + Construct a QueuingEventListener + + + + + A test has started + + The test that is starting + + + + A test case finished + + Result of the test case + + + + Called when a test produces output for immediate display + + A TestOutput object containing the text to display + + + + Called when a test produces a message to be sent to listeners + + A object containing the text to send + + + + A SimpleWorkItem represents a single test case and is + marked as completed immediately upon execution. This + class is also used for skipped or ignored test suites. + + + + + Construct a simple work item for a test. + + The test to be executed + The filter used to select this test + + + + Method that performs actually performs the work. + + + + + Creates a test command for use in running this test. + + A TestCommand + + + + SimpleWorkItemDispatcher handles execution of WorkItems by + directly executing them. It is provided so that a dispatcher + is always available in the context, thereby simplifying the + code needed to run child tests. + + + + + The level of parallelism supported + + + + + Start execution, creating the execution thread, + setting the top level work and dispatching it. + + + + + Dispatch a single work item for execution by + executing it directly. + The item to dispatch + + + + + Cancel (abort or stop) the ongoing run. + If no run is in process, the call has no effect. + + true if the run should be aborted, false if it should allow its currently running test to complete + + + + A TestWorker pulls work items from a queue + and executes them. + + + + + Event handler for TestWorker events + + The TestWorker sending the event + The WorkItem that caused the event + + + + Event signaled immediately before executing a WorkItem + + + + + Event signaled immediately after executing a WorkItem + + + + + Construct a new TestWorker. + + The queue from which to pull work items + The name of this worker + + + + The WorkItemQueue from which this worker pulls WorkItems + + + + + The name of this worker - also used for the thread + + + + + Indicates whether the worker thread is running + + + + + Our ThreadProc, which pulls and runs tests in a loop + + + + + Create thread and start processing work items. + + + + + Stop the thread, either immediately or after finishing the current WorkItem + + true if the thread should be aborted, false if it should allow the currently running test to complete + + + + The TextCapture class intercepts console output and writes it + to the current execution context, if one is present on the thread. + If no execution context is found, the output is written to a + default destination, normally the original destination of the + intercepted output. + + + + + Construct a TextCapture object + + The default destination for non-intercepted output + + + + Gets the Encoding in use by this TextWriter + + + + + Writes a single character + + The char to write + + + + Writes a string + + The string to write + + + + Writes a string followed by a line terminator + + The string to write + + + + A WorkItem may be an individual test case, a fixture or + a higher level grouping of tests. All WorkItems inherit + from the abstract WorkItem class, which uses the template + pattern to allow derived classes to perform work in + whatever way is needed. + + A WorkItem is created with a particular TestExecutionContext + and is responsible for re-establishing that context in the + current thread before it begins or resumes execution. + + + + + Construct a WorkItem for a particular test. + + The test that the WorkItem will run + Filter used to include or exclude child items + + + + Construct a work Item that wraps another work Item. + Wrapper items are used to represent independently + dispatched tasks, which form part of the execution + of a single test, such as OneTimeTearDown. + + The WorkItem being wrapped + + + + Initialize the TestExecutionContext. This must be done + before executing the WorkItem. + + + Originally, the context was provided in the constructor + but delaying initialization of the context until the item + is about to be dispatched allows changes in the parent + context during OneTimeSetUp to be reflected in the child. + + The TestExecutionContext to use + + + + Event triggered when the item is complete + + + + + Gets the current state of the WorkItem + + + + + The test being executed by the work item + + + + + The name of the work item - defaults to the Test name. + + + + + Filter used to include or exclude child tests + + + + + The execution context + + + + + The worker executing this item. + + + + + The ParallelExecutionStrategy to use for this work item + + + + + Indicates whether this work item should use a separate dispatcher. + + + + + The test result + + + + + Gets the ParallelScope associated with the test, if any, + otherwise returning ParallelScope.Default; + + + + + Execute the current work item, including any + child work items. + + + + + Wait until the execution of this item is complete + + + + + Marks the WorkItem as NotRunnable. + + Reason for test being NotRunnable. + + + + Cancel (abort or stop) a WorkItem + + true if the WorkItem should be aborted, false if it should run to completion + + + + Standard Dispose + + + + + Method that performs actually performs the work. It should + set the State to WorkItemState.Complete when done. + + + + + Method called by the derived class when all work is complete + + + + + Builds the set up tear down list. + + Unsorted array of setup MethodInfos. + Unsorted array of teardown MethodInfos. + A list of SetUpTearDownItems + + + + Changes the result of the test, logging the old and new states + + The new ResultState + The new message + + + + Recursively walks up the test hierarchy to see if the + has been set on any of the parent tests. + + + + + WorkItemBuilder class knows how to build a tree of work items from a tree of tests + + + + + Creates a work item. + + The test for which this WorkItem is being created. + The filter to be used in selecting any child Tests. + True if child work items should be created and added. + + + + + Compares two objects and returns a value indicating whether one is less than, equal to, or greater than the other. + + + A signed integer that indicates the relative values of and , as shown in the following table.Value Meaning Less than zero is less than .Zero equals .Greater than zero is greater than . + + The first object to compare.The second object to compare. + + + + WorkItemQueueState indicates the current state of a WorkItemQueue + + + + + The queue is paused + + + + + The queue is running + + + + + The queue is stopped + + + + + A WorkItemQueue holds work items that are ready to + be run, either initially or after some dependency + has been satisfied. + + + + + Initializes a new instance of the class. + + The name of the queue. + Flag indicating whether this is a parallel queue + ApartmentState to use for items on this queue + + + + Gets the name of the work item queue. + + + + + Gets a flag indicating whether this queue is used for parallel execution + + + + + Gets the target ApartmentState for work items on this queue + + + + + Gets the total number of items processed so far + + + + + Gets the current state of the queue + + + + + Get a bool indicating whether the queue is empty. + + + + + Enqueue a WorkItem to be processed + + The WorkItem to process + + + + Enqueue a WorkItem to be processed - internal for testing + + The WorkItem to process + The priority at which to process the item + + + + Dequeue a WorkItem for processing + + A WorkItem or null if the queue has stopped + + + + Start or restart processing of items from the queue + + + + + Signal the queue to stop + + + + + Pause the queue for restarting later + + + + + Save the current inner queue and create new ones for use by + a non-parallel fixture with parallel children. + + + + + Restore the inner queue that was previously saved + + + + + The current state of a work item + + + + + Ready to run or continue + + + + + Work Item is executing + + + + + Complete + + + + + Handler for ShiftChange events. + + The shift that is starting or ending. + + + + The dispatcher needs to do different things at different, + non-overlapped times. For example, non-parallel tests may + not be run at the same time as parallel tests. We model + this using the metaphor of a working shift. The WorkShift + class associates one or more WorkItemQueues with one or + more TestWorkers. + + Work in the queues is processed until all queues are empty + and all workers are idle. Both tests are needed because a + worker that is busy may end up adding more work to one of + the queues. At that point, the shift is over and another + shift may begin. This cycle continues until all the tests + have been run. + + + + + Construct a WorkShift + + + + + Event that fires when the shift has ended + + + + + The Name of this shift + + + + + Gets a flag indicating whether the shift is currently active + + + + + Gets a bool indicating whether this shift has any work to do + + + + + Gets a list of the queues associated with this shift. + + Internal for testing - immutable once initialized + + + + Gets the list of workers associated with this shift. + + Internal for testing - immutable once initialized + + + + Add a WorkItemQueue to the shift, starting it if the + shift is currently active. + + + + + Assign a worker to the shift. + + + + + + Start or restart processing for the shift + + + + + End the shift, pausing all queues and raising + the EndOfShift event. + + + + + Shut down the shift. + + + + + Cancel (abort or stop) the shift without completing all work + + true if the WorkShift should be aborted, false if it should allow its currently running tests to complete + + + + TextMessageWriter writes constraint descriptions and messages + in displayable form as a text stream. It tailors the display + of individual message components to form the standard message + format of NUnit assertion failure messages. + + + + + Prefix used for the expected value line of a message + + + + + Prefix used for the actual value line of a message + + + + + Length of a message prefix + + + + + Construct a TextMessageWriter + + + + + Construct a TextMessageWriter, specifying a user message + and optional formatting arguments. + + + + + + + Gets or sets the maximum line length for this writer + + + + + Method to write single line message with optional args, usually + written to precede the general failure message, at a given + indentation level. + + The indentation level of the message + The message to be written + Any arguments used in formatting the message + + + + Display Expected and Actual lines for a constraint. This + is called by MessageWriter's default implementation of + WriteMessageTo and provides the generic two-line display. + + The result of the constraint that failed + + + + Gets the unique type name between expected and actual. + + The expected value + The actual value causing the failure + Output of the unique type name for expected + Output of the unique type name for actual + + + + Display Expected and Actual lines for given values. This + method may be called by constraints that need more control over + the display of actual and expected values than is provided + by the default implementation. + + The expected value + The actual value causing the failure + + + + Display Expected and Actual lines for given values, including + a tolerance value on the expected line. + + The expected value + The actual value causing the failure + The tolerance within which the test was made + + + + Display the expected and actual string values on separate lines. + If the mismatch parameter is >=0, an additional line is displayed + line containing a caret that points to the mismatch point. + + The expected string value + The actual string value + The point at which the strings don't match or -1 + If true, case is ignored in string comparisons + If true, clip the strings to fit the max line length + + + + Writes the text for an actual value. + + The actual value. + + + + Writes the text for a generalized value. + + The value. + + + + Writes the text for a collection value, + starting at a particular point, to a max length + + The collection containing elements to write. + The starting point of the elements to write + The maximum number of elements to write + + + + Write the generic 'Expected' line for a constraint + + The constraint that failed + + + + Write the generic 'Expected' line for a given value + + The expected value + + + + Write the generic 'Expected' line for a given value + and tolerance. + + The expected value + The tolerance within which the test was made + + + + Write the generic 'Actual' line for a constraint + + The ConstraintResult for which the actual value is to be written + + + + Write the generic 'Actual' line for a given value + + The actual value causing a failure + + + + Combines multiple filters so that a test must pass all + of them in order to pass this filter. + + + + + Constructs an empty AndFilter + + + + + Constructs an AndFilter from an array of filters + + + + + + Checks whether the AndFilter is matched by a test + + The test to be matched + True if all the component filters pass, otherwise false + + + + Checks whether the AndFilter is matched by a test + + The test to be matched + True if all the component filters match, otherwise false + + + + Checks whether the AndFilter is explicit matched by a test. + + The test to be matched + True if all the component filters explicit match, otherwise false + + + + Gets the element name + + Element name + + + + CategoryFilter is able to select or exclude tests + based on their categories. + + + + + Construct a CategoryFilter using a single category name + + A category name + + + + Check whether the filter matches a test + + The test to be matched + + + + + Gets the element name + + Element name + + + + ClassName filter selects tests based on the class FullName + + + + + Construct a FullNameFilter for a single name + + The name the filter will recognize. + + + + Match a test against a single value. + + + + + Gets the element name + + Element name + + + + A base class for multi-part filters + + + + + Constructs an empty CompositeFilter + + + + + Constructs a CompositeFilter from an array of filters + + + + + + Adds a filter to the list of filters + + The filter to be added + + + + Return a list of the composing filters. + + + + + Checks whether the CompositeFilter is matched by a test. + + The test to be matched + + + + Checks whether the CompositeFilter is matched by a test. + + The test to be matched + + + + Checks whether the CompositeFilter is explicit matched by a test. + + The test to be matched + + + + Adds an XML node + + Parent node + True if recursive + The added XML node + + + + Gets the element name + + Element name + + + + FullName filter selects tests based on their FullName + + + + + Construct a FullNameFilter for a single name + + The name the filter will recognize. + + + + Match a test against a single value. + + + + + Gets the element name + + Element name + + + + IdFilter selects tests based on their id + + + + + Construct an IdFilter for a single value + + The id the filter will recognize. + + + + Match a test against a single value. + + + + + Gets the element name + + Element name + + + + FullName filter selects tests based on their FullName + + + + + Construct a MethodNameFilter for a single name + + The name the filter will recognize. + + + + Match a test against a single value. + + + + + Gets the element name + + Element name + + + + ClassName filter selects tests based on the class FullName + + + + + Construct a NamespaceFilter for a single namespace + + The namespace the filter will recognize. + + + + Match a test against a single value. + + + + + Gets the element name + + Element name + + + + NotFilter negates the operation of another filter + + + + + Construct a not filter on another filter + + The filter to be negated + + + + Gets the base filter + + + + + Determine if a particular test passes the filter criteria. + + Overriden in NotFilter so that + 1. Two nested NotFilters are simply ignored + 2. Otherwise, we only look at the test itself and parents, ignoring + any child test matches. + + The test to which the filter is applied + True if the test passes the filter, otherwise false + + + + Check whether the filter matches a test + + The test to be matched + True if it matches, otherwise false + + + + Determine if a test matches the filter explicitly. That is, it must + be a direct match of the test itself or one of its children. + + The test to which the filter is applied + True if the test matches the filter explicitly, otherwise false + + + + Adds an XML node + + Parent node + True if recursive + The added XML node + + + + Combines multiple filters so that a test must pass one + of them in order to pass this filter. + + + + + Constructs an empty OrFilter + + + + + Constructs an AndFilter from an array of filters + + + + + + Checks whether the OrFilter is matched by a test + + The test to be matched + True if any of the component filters pass, otherwise false + + + + Checks whether the OrFilter is matched by a test + + The test to be matched + True if any of the component filters match, otherwise false + + + + Checks whether the OrFilter is explicit matched by a test + + The test to be matched + True if any of the component filters explicit match, otherwise false + + + + Gets the element name + + Element name + + + + PropertyFilter is able to select or exclude tests + based on their properties. + + + + + Construct a PropertyFilter using a property name and expected value + + A property name + The expected value of the property + + + + Check whether the filter matches a test + + The test to be matched + + + + + Adds an XML node + + Parent node + True if recursive + The added XML node + + + + Gets the element name + + Element name + + + + TestName filter selects tests based on their Name + + + + + Construct a TestNameFilter for a single name + + The name the filter will recognize. + + + + Match a test against a single value. + + + + + Gets the element name + + Element name + + + + ValueMatchFilter selects tests based on some value, which + is expected to be contained in the test. + + + + + Returns the value matched by the filter - used for testing + + + + + Indicates whether the value is a regular expression + + + + + Construct a ValueMatchFilter for a single value. + + The value to be included. + + + + Match the input provided by the derived class + + The value to be matchedT + True for a match, false otherwise. + + + + Adds an XML node + + Parent node + True if recursive + The added XML node + + + + Gets the element name + + Element name + + + + GenericMethodHelper is able to deduce the Type arguments for + a generic method from the actual arguments provided. + + + + + A special value, which is used to indicate that BestCommonType() method + was unable to find a common type for the specified arguments. + + + + + Construct a GenericMethodHelper for a method + + MethodInfo for the method to examine + + + + Return the type arguments for the method, deducing them + from the arguments actually provided. + + The arguments to the method + If successful, an array of type arguments. + + + + InvalidTestFixtureException is thrown when an appropriate test + fixture constructor using the provided arguments cannot be found. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner. + + + + Serialization Constructor + + + + + InvalidPlatformException is thrown when the platform name supplied + to a test is not recognized. + + + + + Instantiates a new instance of the class. + + + + + Instantiates a new instance of the class + + The message. + + + + Instantiates a new instance of the class + + The message. + The inner. + + + + Serialization constructor for the class + + + + + InvalidTestFixtureException is thrown when an appropriate test + fixture constructor using the provided arguments cannot be found. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner. + + + + Serialization Constructor + + + + + Interface for logging within the engine + + + + + Logs the specified message at the error level. + + The message. + + + + Logs the specified message at the error level. + + The message. + The arguments. + + + + Logs the specified message at the warning level. + + The message. + + + + Logs the specified message at the warning level. + + The message. + The arguments. + + + + Logs the specified message at the info level. + + The message. + + + + Logs the specified message at the info level. + + The message. + The arguments. + + + + Logs the specified message at the debug level. + + The message. + + + + Logs the specified message at the debug level. + + The message. + The arguments. + + + + InternalTrace provides facilities for tracing the execution + of the NUnit framework. Tests and classes under test may make use + of Console writes, System.Diagnostics.Trace or various loggers and + NUnit itself traps and processes each of them. For that reason, a + separate internal trace is needed. + + Note: + InternalTrace uses a global lock to allow multiple threads to write + trace messages. This can easily make it a bottleneck so it must be + used sparingly. Keep the trace Level as low as possible and only + insert InternalTrace writes where they are needed. + TODO: add some buffering and a separate writer thread as an option. + TODO: figure out a way to turn on trace in specific classes only. + + + + + Gets a flag indicating whether the InternalTrace is initialized + + + + + Initialize the internal trace facility using the name of the log + to be written to and the trace level. + + The log name + The trace level + + + + Initialize the internal trace using a provided TextWriter and level + + A TextWriter + The InternalTraceLevel + + + + Get a named Logger + + + + + + Get a logger named for a particular Type. + + + + + InternalTraceLevel is an enumeration controlling the + level of detailed presented in the internal log. + + + + + Use the default settings as specified by the user. + + + + + Do not display any trace messages + + + + + Display Error messages only + + + + + Display Warning level and higher messages + + + + + Display informational and higher messages + + + + + Display debug messages and higher - i.e. all messages + + + + + Display debug messages and higher - i.e. all messages + + + + + A trace listener that writes to a separate file per domain + and process using it. + + + + + Construct an InternalTraceWriter that writes to a file. + + Path to the file to use + + + + Construct an InternalTraceWriter that writes to a + TextWriter provided by the caller. + + + + + + Returns the character encoding in which the output is written. + + The character encoding in which the output is written. + + + + Writes a character to the text string or stream. + + The character to write to the text stream. + + + + Writes a string to the text string or stream. + + The string to write. + + + + Writes a string followed by a line terminator to the text string or stream. + + The string to write. If is null, only the line terminator is written. + + + + Releases the unmanaged resources used by the and optionally releases the managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Clears all buffers for the current writer and causes any buffered data to be written to the underlying device. + + + + + Provides internal logging to the NUnit framework + + + + + Initializes a new instance of the class. + + The name. + The log level. + The writer where logs are sent. + + + + Logs the message at error level. + + The message. + + + + Logs the message at error level. + + The message. + The message arguments. + + + + Logs the message at warm level. + + The message. + + + + Logs the message at warning level. + + The message. + The message arguments. + + + + Logs the message at info level. + + The message. + + + + Logs the message at info level. + + The message. + The message arguments. + + + + Logs the message at debug level. + + The message. + + + + Logs the message at debug level. + + The message. + The message arguments. + + + + The MethodWrapper class wraps a MethodInfo so that it may + be used in a platform-independent manner. + + + + + Construct a MethodWrapper for a Type and a MethodInfo. + + + + + Construct a MethodInfo for a given Type and method name. + + + + + Gets the Type from which this method was reflected. + + + + + Gets the MethodInfo for this method. + + + + + Gets the name of the method. + + + + + Gets a value indicating whether the method is abstract. + + + + + Gets a value indicating whether the method is public. + + + + + Gets a value indicating whether the method contains unassigned generic type parameters. + + + + + Gets a value indicating whether the method is a generic method. + + + + + Gets a value indicating whether the MethodInfo represents the definition of a generic method. + + + + + Gets the return Type of the method. + + + + + Gets the parameters of the method. + + + + + + Returns the Type arguments of a generic method or the Type parameters of a generic method definition. + + + + + Replaces the type parameters of the method with the array of types provided and returns a new IMethodInfo. + + The type arguments to be used + A new IMethodInfo with the type arguments replaced + + + + Returns an array of custom attributes of the specified type applied to this method + + + + + Gets a value indicating whether one or more attributes of the specified type are defined on the method. + + + + + Invokes the method, converting any TargetInvocationException to an NUnitException. + + The object on which to invoke the method + The argument list for the method + The return value from the invoked method + + + + Override ToString() so that error messages in NUnit's own tests make sense + + + + + This class ensures the is correctly cleared + or restored around framework actions. This is important if running multiple assemblies within the same + process, to ensure no leakage from one assembly to the next. See https://github.com/nunit/nunit-console/issues/325 + + + + + Thrown when an assertion failed. Here to preserve the inner + exception and hence its stack trace. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The error message that explains + the reason for the exception + + + + Initializes a new instance of the class. + + The error message that explains + the reason for the exception + The exception that caused the + current exception + + + + Serialization Constructor + + + + + Enables the syntax. + + + + + Wraps an action so that it is executed when the returned object is disposed. + This disposal is thread-safe and the action will be executed at most once. + + + + + OSPlatform represents a particular operating system platform + + + + + Platform ID for Unix as defined by .NET + + + + + Platform ID for Unix as defined by Mono + + + + + Platform ID for XBox as defined by .NET and Mono + + + + + Platform ID for MacOSX as defined by .NET and Mono + + + + + Get the OSPlatform under which we are currently running + + + + + Gets the actual OS Version, not the incorrect value that might be + returned for Win 8.1 and Win 10 + + + If an application is not manifested as Windows 8.1 or Windows 10, + the version returned from Environment.OSVersion will not be 6.3 and 10.0 + respectively, but will be 6.2 and 6.3. The correct value can be found in + the registry. + + The original version + The correct OS version + + + + Product Type Enumeration used for Windows + + + + + Product type is unknown or unspecified + + + + + Product type is Workstation + + + + + Product type is Domain Controller + + + + + Product type is Server + + + + + Construct from a platform ID and version + + + + + Construct from a platform ID, version and product type + + + + + Get the platform ID of this instance + + + + + Implemented to use in place of Environment.OSVersion.ToString() + + A representation of the platform ID and version in an approximation of the format used by Environment.OSVersion.ToString() + + + + Get the Version of this instance + + + + + Get the Product Type of this instance + + + + + Return true if this is a windows platform + + + + + Return true if this is a Unix or Linux platform + + + + + Return true if the platform is Win32S + + + + + Return true if the platform is Win32Windows + + + + + Return true if the platform is Win32NT + + + + + Return true if the platform is Windows CE + + + + + Return true if the platform is Xbox + + + + + Return true if the platform is MacOSX + + + + + Return true if the platform is Windows 95 + + + + + Return true if the platform is Windows 98 + + + + + Return true if the platform is Windows ME + + + + + Return true if the platform is NT 3 + + + + + Return true if the platform is NT 4 + + + + + Return true if the platform is NT 5 + + + + + Return true if the platform is Windows 2000 + + + + + Return true if the platform is Windows XP + + + + + Return true if the platform is Windows 2003 Server + + + + + Return true if the platform is NT 6 + + + + + Return true if the platform is NT 6.0 + + + + + Return true if the platform is NT 6.1 + + + + + Return true if the platform is NT 6.2 + + + + + Return true if the platform is NT 6.3 + + + + + Return true if the platform is Vista + + + + + Return true if the platform is Windows 2008 Server (original or R2) + + + + + Return true if the platform is Windows 2008 Server (original) + + + + + Return true if the platform is Windows 2008 Server R2 + + + + + Return true if the platform is Windows 2012 Server (original or R2) + + + + + Return true if the platform is Windows 2012 Server (original) + + + + + Return true if the platform is Windows 2012 Server R2 + + + + + Return true if the platform is Windows 7 + + + + + Return true if the platform is Windows 8 + + + + + Return true if the platform is Windows 8.1 + + + + + Return true if the platform is Windows 10 + + + + + Return true if the platform is Windows Server. This is named Windows + Server 10 to distinguish it from previous versions of Windows Server. + + + + + + Examines an attribute argument and tries to simulate what that value would have been if the literal syntax + which might have defined the value in C# had instead been used as an argument to a given method parameter in a direct call. + + + For example, since you can’t apply attributes using arguments, we allow the C# syntax + 10 ( value) or 0.1 ( value) to be specified. + NUnit then converts it to match the method’s parameters, just as if you were actually + using the syntax TestMethod(10) or TestMethod(0.1). + + + For another example, you might have written the syntax 10 and picked up the attribute + constructor overload; however, the test method for which this value is intended only has a + signature. Again, NUnit simulates what would have happened if the inferred C# syntax was transplanted + and you were actually using the syntax TestMethod(10). + + + + + + Converts an array of objects to the , if it is supported. + + + + + Converts a single value to the , if it is supported. + + + + + Performs several special conversions allowed by NUnit in order to + permit arguments with types that cannot be used in the constructor + of an Attribute such as TestCaseAttribute or to simplify their use. + + The value to be converted + The target in which the should be converted + If conversion was successfully applied, the converted into + + true if was converted and should be used; + false is no conversion was applied and should be ignored + + + + + The ParameterWrapper class wraps a ParameterInfo so that it may + be used in a platform-independent manner. + + + + + Construct a ParameterWrapper for a given method and parameter + + + + + + + Gets a value indicating whether the parameter is optional + + + + + Gets an IMethodInfo representing the method for which this is a parameter. + + + + + Gets the underlying ParameterInfo + + + + + Gets the Type of the parameter + + + + + Returns an array of custom attributes of the specified type applied to this method + + + + + Gets a value indicating whether one or more attributes of the specified type are defined on the parameter. + + + + + PlatformHelper class is used by the PlatformAttribute class to + determine whether a platform is supported. + + + + + Comma-delimited list of all supported OS platform constants + + + + + Comma-delimited list of all supported Runtime platform constants + + + + + Default constructor uses the operating system and + common language runtime of the system. + + + + + Construct a PlatformHelper for a particular operating + system and common language runtime. Used in testing. + + RuntimeFramework to be used + OperatingSystem to be used + + + + Test to determine if one of a collection of platforms + is being used currently. + + + + + + + Tests to determine if the current platform is supported + based on a platform attribute. + + The attribute to examine + + + + + Tests to determine if the current platform is supported + based on a platform attribute. + + The attribute to examine + + + + + Test to determine if a particular platform or comma-delimited set of platforms is in use. + + Name of the platform or comma-separated list of platform ids + True if the platform is in use on the system + + + + Return the last failure reason. Results are not + defined if called before IsSupported( Attribute ) + is called. + + + + + Implements a simplified filter for use in deciding which + Types and Methods should be used to generate tests. It is consructed with a + list of strings, each of which may end up being interpreted in various ways. + + + + + Return a new PreFilter, without elements, which is considered + empty and always matches. + + + + + Return true if the filter is empty, in which case it + always succeeds. Technically, this is just a filter and + you can add elements but it's best to use Empty when + you need an empty filter and new when you plan to add. + + + + + Add a new filter element to the filter + + + + + + Use the filter on a Type, returning true if the type matches the filter + and should therefore be included in the discovery process. + + + + + Use the filter on a Type, returning true if the type matches the filter + and should therefore be included in the discovery process. + + + + + A PropertyBag represents a collection of name value pairs + that allows duplicate entries with the same key. Methods + are provided for adding a new pair as well as for setting + a key to a single value. All keys are strings but values + may be of any type. Null values are not permitted, since + a null entry represents the absence of the key. + + + + + Adds a key/value pair to the property set + + The key + The value + + + + Sets the value for a key, removing any other + values that are already in the property set. + + + + + + + Gets a single value for a key, using the first + one if multiple values are present and returning + null if the value is not found. + + + + + + + Gets a flag indicating whether the specified key has + any entries in the property set. + + The key to be checked + + True if their are values present, otherwise false + + + + + Gets a collection containing all the keys in the property set + + + + + + Gets or sets the list of values for a particular key + + + + + Returns an XmlNode representing the current PropertyBag. + + Not used + An XmlNode representing the PropertyBag + + + + Returns an XmlNode representing the PropertyBag after + adding it as a child of the supplied parent node. + + The parent node. + Not used + + + + + The PropertyNames class provides static constants for the + standard property ids that NUnit uses on tests. + + + + + The FriendlyName of the AppDomain in which the assembly is running + + + + + The selected strategy for joining parameter data into test cases + + + + + The process ID of the executing assembly + + + + + The stack trace from any data provider that threw + an exception. + + + + + The reason a test was not run + + + + + The author of the tests + + + + + The ApartmentState required for running the test + + + + + The categories applying to a test + + + + + The Description of a test + + + + + The number of threads to be used in running tests + + + + + The maximum time in ms, above which the test is considered to have failed + + + + + The ParallelScope associated with a test + + + + + The number of times the test should be repeated + + + + + Indicates that the test should be run on a separate thread + + + + + The culture to be set for a test + + + + + The UI culture to be set for a test + + + + + The type that is under test + + + + + The timeout value for the test + + + + + The test will be ignored until the given date + + + + + The optional Order the test will run in + + + + + Randomizer returns a set of random values in a repeatable + way, to allow re-running of tests if necessary. It extends + the .NET Random class, providing random values for a much + wider range of types. + + The class is used internally by the framework to generate + test case data and is also exposed for use by users through + the TestContext.Random property. + + + For consistency with the underlying Random Type, methods + returning a single value use the prefix "Next..." Those + without an argument return a non-negative value up to + the full positive range of the Type. Overloads are provided + for specifying a maximum or a range. Methods that return + arrays or strings use the prefix "Get..." to avoid + confusion with the single-value methods. + + + + + Initial seed used to create randomizers for this run + + + + + Get a Randomizer for a particular member, returning + one that has already been created if it exists. + This ensures that the same values are generated + each time the tests are reloaded. + + + + + Get a randomizer for a particular parameter, returning + one that has already been created if it exists. + This ensures that the same values are generated + each time the tests are reloaded. + + + + + Create a new Randomizer using the next seed + available to ensure that each randomizer gives + a unique sequence of values. + + + + + + Default constructor + + + + + Construct based on seed value + + + + + + Returns a random unsigned int. + + + + + Returns a random unsigned int less than the specified maximum. + + + + + Returns a random unsigned int within a specified range. + + + + + Returns a non-negative random short. + + + + + Returns a non-negative random short less than the specified maximum. + + + + + Returns a non-negative random short within a specified range. + + + + + Returns a random unsigned short. + + + + + Returns a random unsigned short less than the specified maximum. + + + + + Returns a random unsigned short within a specified range. + + + + + Returns a random long. + + + + + Returns a random long less than the specified maximum. + + + + + Returns a non-negative random long within a specified range. + + + + + Returns a random ulong. + + + + + Returns a random ulong less than the specified maximum. + + + + + Returns a non-negative random long within a specified range. + + + + + Returns a random Byte + + + + + Returns a random Byte less than the specified maximum. + + + + + Returns a random Byte within a specified range + + + + + Returns a random SByte + + + + + Returns a random sbyte less than the specified maximum. + + + + + Returns a random sbyte within a specified range + + + + + Returns a random bool + + + + + Returns a random bool based on the probability a true result + + + + + Returns a random double between 0.0 and the specified maximum. + + + + + Returns a random double within a specified range. + + + + + Returns a random float. + + + + + Returns a random float between 0.0 and the specified maximum. + + + + + Returns a random float within a specified range. + + + + + Returns a random enum value of the specified Type as an object. + + + + + Returns a random enum value of the specified Type. + + + + + Default characters for random functions. + + Default characters are the English alphabet (uppercase & lowercase), Arabic numerals, and underscore + + + + Generate a random string based on the characters from the input string. + + desired length of output string. + string representing the set of characters from which to construct the resulting string + A random string of arbitrary length + + + + Generate a random string based on the characters from the input string. + + desired length of output string. + A random string of arbitrary length + Uses DefaultStringChars as the input character set + + + + Generate a random string based on the characters from the input string. + + A random string of the default length + Uses DefaultStringChars as the input character set + + + + Returns a random decimal. + + + + + Returns a random decimal between positive zero and the specified maximum. + + + + + Returns a random decimal within a specified range, which is not + permitted to exceed decimal.MaxVal in the current implementation. + + + A limitation of this implementation is that the range from min + to max must not exceed decimal.MaxVal. + + + + + Generates a valid version 4 . + + + + + Helper methods for inspecting a type by reflection. + + Many of these methods take ICustomAttributeProvider as an + argument to avoid duplication, even though certain attributes can + only appear on specific types of members, like MethodInfo or Type. + + In the case where a type is being examined for the presence of + an attribute, interface or named member, the Reflect methods + operate with the full name of the member being sought. This + removes the necessity of the caller having a reference to the + assembly that defines the item being sought and allows the + NUnit core to inspect assemblies that reference an older + version of the NUnit framework. + + + + + Examine a fixture type and return an array of methods having a + particular attribute. The array is order with base methods first. + + The type to examine + The attribute Type to look for + Specifies whether to search the fixture type inheritance chain + The array of methods found + + + + Examine a fixture type and return true if it has a method with + a particular attribute. + + The type to examine + The attribute Type to look for + True if found, otherwise false + + + + Invoke the default constructor on a Type + + The Type to be constructed + An instance of the Type + + + + Invoke a constructor on a Type with arguments + + The Type to be constructed + Arguments to the constructor + An instance of the Type + + + + Returns an array of types from an array of objects. + Differs from by returning + for null elements rather than throwing . + + + + + Gets the constructors to which the specified argument types can be coerced. + + + + + Determines if the given types can be coerced to match the given parameters. + + + + + Determines whether the current type can be implicitly converted to the specified type. + + + + + Invoke a parameterless method returning void on an object. + + A MethodInfo for the method to be invoked + The object on which to invoke the method + + + + Invoke a method, converting any TargetInvocationException to an NUnitException. + + A MethodInfo for the method to be invoked + The object on which to invoke the method + The argument list for the method + The return value from the invoked method + + + + + Selects the ultimate shadowing property just like would, + rather than throwing + for properties that shadow properties of a different property type + which is what does. + + + If you request both public and nonpublic properties, every public property is preferred + over every nonpublic property. It would violate the principle of least surprise for a + derived class’s implementation detail to be chosen over the public API for a type. + + + See . + See . + See . + + + + Same as GetMethod(, | + , , , + ) except that it also chooses only non-generic methods. + Useful for avoiding the you can have with GetMethod. + + + + + Represents the result of running a single test case. + + + + + Construct a TestCaseResult based on a TestMethod + + A TestMethod to which the result applies. + + + + Gets the number of test cases that failed + when running the test and all its children. + + + + + Gets the number of test cases that had warnings + when running the test and all its children. + + + + + Gets the number of test cases that passed + when running the test and all its children. + + + + + Gets the number of test cases that were skipped + when running the test and all its children. + + + + + Gets the number of test cases that were inconclusive + when running the test and all its children. + + + + + Indicates whether this result has any child results. + + + + + Gets the collection of child results. + + + + + The TestResult class represents the result of a test. + + + + + Error message for when child tests have errors + + + + + Error message for when child tests have warnings + + + + + Error message for when child tests are ignored + + + + + The minimum duration for tests + + + + + Aggregate assertion count + + + + + ReaderWriterLock + + + + + Construct a test result given a Test + + The test to be used + + + + Gets the test with which this result is associated. + + + + + Gets the ResultState of the test result, which + indicates the success or failure of the test. + + + + + Gets the name of the test result + + + + + Gets the full name of the test result + + + + + Gets or sets the elapsed time for running the test in seconds + + + + + Gets or sets the time the test started running. + + + + + Gets or sets the time the test finished running. + + + + + Adds a test attachment to the test result + + The TestAttachment object to attach + + + + Gets the collection of files attached to the test + + + + + Gets the message associated with a test + failure or with not running the test + + + + + Gets any stack trace associated with an + error or failure. + + + + + Gets or sets the count of asserts executed + when running the test. + + + + + Gets the number of test cases that failed + when running the test and all its children. + + + + + Gets the number of test cases that had warnings + when running the test and all its children. + + + + + Gets the number of test cases that passed + when running the test and all its children. + + + + + Gets the number of test cases that were skipped + when running the test and all its children. + + + + + Gets the number of test cases that were inconclusive + when running the test and all its children. + + + + + Indicates whether this result has any child results. + + + + + Gets the collection of child results. + + + + + Gets a TextWriter, which will write output to be included in the result. + + + + + Gets any text output written to this result. + + + + + Gets a list of assertion results associated with the test. + + + + + Returns the XML representation of the result. + + If true, descendant results are included + An XmlNode representing the result + + + + Adds the XML representation of the result as a child of the + supplied parent node.. + + The parent node. + If true, descendant results are included + + + + + Gets a count of pending failures (from Multiple Assert) + + + + + Gets the worst assertion status (highest enum) in all the assertion results + + + + + Set the result of the test + + The ResultState to use in the result + + + + Set the result of the test + + The ResultState to use in the result + A message associated with the result state + + + + Set the result of the test + + The ResultState to use in the result + A message associated with the result state + Stack trace giving the location of the command + + + + Set the test result based on the type of exception thrown + + The exception that was thrown + + + + Set the test result based on the type of exception thrown + + The exception that was thrown + The FailureSite to use in the result + + + + RecordTearDownException appends the message and stack trace + from an exception arising during teardown of the test + to any previously recorded information, so that any + earlier failure information is not lost. Note that + calling Assert.Ignore, Assert.Inconclusive, etc. during + teardown is treated as an error. If the current result + represents a suite, it may show a teardown error even + though all contained tests passed. + + The Exception to be recorded + + + + Update overall test result, including legacy Message, based + on AssertionResults that have been saved to this point. + + + + + Record an assertion result + + + + + Record an assertion result + + + + + Record an assertion result + + + + + Creates a failure message incorporating failures + from a Multiple Assert block for use by runners + that don't know about AssertionResults. + + Message as a string + + + + Adds a reason element to a node and returns it. + + The target node. + The new reason element. + + + + Adds a failure element to a node and returns it. + + The target node. + The new failure element. + + + + Adds an attachments element to a node and returns it. + + The target node. + The new attachments element. + + + + Represents the result of running a test suite + + + + + Construct a TestSuiteResult base on a TestSuite + + The TestSuite to which the result applies + + + + Gets the number of test cases that failed + when running the test and all its children. + + + + + Gets the number of test cases that passed + when running the test and all its children. + + + + + Gets the number of test cases that passed + when running the test and all its children. + + + + + Gets the number of test cases that were skipped + when running the test and all its children. + + + + + Gets the number of test cases that were inconclusive + when running the test and all its children. + + + + + Indicates whether this result has any child results. + + + + + Gets the collection of child results. + + + + + Adds a child result to this result, setting this result's + ResultState to Failure if the child result failed. + + The result to be added + + + + Enumeration identifying a common language + runtime implementation. + + + + Any supported runtime framework + + + Microsoft .NET Framework + + + Microsoft Shared Source CLI + + + Mono + + + MonoTouch + + + Microsoft .NET Core + + + + RuntimeFramework represents a particular version + of a common language runtime implementation. + + + + + DefaultVersion is an empty Version, used to indicate that + NUnit should select the CLR version to use for the test. + + + + + Construct from a runtime type and version. If the version has + two parts, it is taken as a framework version. If it has three + or more, it is taken as a CLR version. In either case, the other + version is deduced based on the runtime type and provided version. + + The runtime type of the framework + The version of the framework + + + + Static method to return a RuntimeFramework object + for the framework that is currently in use. + + + + + The type of this runtime framework + + + + + The framework version for this runtime framework + + + + + The CLR version for this runtime framework + + + + + Return true if any CLR version may be used in + matching this RuntimeFramework object. + + + + + Returns the Display name for this framework + + + + + Parses a string representing a RuntimeFramework. + The string may be just a RuntimeType name or just + a Version or a hyphenated RuntimeType-Version or + a Version prefixed by 'versionString'. + + + + + + + Overridden to return the short name of the framework + + + + + + Returns true if the current framework matches the + one supplied as an argument. Two frameworks match + if their runtime types are the same or either one + is RuntimeType.Any and all specified version components + are equal. Negative (i.e. unspecified) version + components are ignored. + + The RuntimeFramework to be matched. + True on match, otherwise false + + + + Holds thread state which is captured and restored in order to sandbox user code. + + + + + Captures a snapshot of the tracked state of the current thread to be restored later. + + + + + Restores the tracked state of the current thread to the previously captured state. + + + + + Returns a copy with the specified culture. + + + + + Returns a copy with the specified UI culture. + + + + + Returns a copy with the specified principal. + + + + + May be called from any thread. + + + + + May be called from any thread. + + + + + May be called from any thread. + + + + + May be called from any thread, but may only be called once. + + + + + StackFilter class is used to remove internal NUnit + entries from a stack trace so that the resulting + trace provides better information about the test. + + + + + Single instance of our default filter + + + + + Construct a stack filter instance + + Regex pattern used to delete lines from the top of the stack + Regex pattern used to delete lines from the bottom of the stack + + + + Construct a stack filter instance + + Regex pattern used to delete lines from the top of the stack + + + + Construct a stack filter instance + + + + + Filters a raw stack trace and returns the result. + + The original stack trace + A filtered stack trace + + + + Provides methods to support legacy string comparison methods. + + + + + Compares two strings for equality, ignoring case if requested. + + The first string. + The second string.. + if set to true, the case of the letters in the strings is ignored. + Zero if the strings are equivalent, a negative number if strA is sorted first, a positive number if + strB is sorted first + + + + Compares two strings for equality, ignoring case if requested. + + The first string. + The second string.. + if set to true, the case of the letters in the strings is ignored. + True if the strings are equivalent, false if not. + + + + The TestCaseParameters class encapsulates method arguments and + other selected parameters needed for constructing + a parameterized test case. + + + + + The expected result to be returned + + + + + Default Constructor creates an empty parameter set + + + + + Construct a non-runnable ParameterSet, specifying + the provider exception that made it invalid. + + + + + Construct a parameter set with a list of arguments + + + + + + Construct a ParameterSet from an object implementing ITestCaseData + + + + + + The expected result of the test, which + must match the method return type. + + + + + Gets a value indicating whether an expected result was specified. + + + + + TestCaseTimeoutException is thrown when a test running directly + on a TestWorker thread is cancelled due to timeout. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner. + + + + Serialization Constructor + + + + + Helper class used to save and restore certain static or + singleton settings in the environment that affect tests + or which might be changed by the user tests. + + + + + Link to a prior saved context + + + + + Indicates that a stop has been requested + + + + + The event listener currently receiving notifications + + + + + The number of assertions for the current test + + + + + The current test result + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + An existing instance of TestExecutionContext. + + + + Gets and sets the current context. + + + + + Gets or sets the current test + + + + + The time the current test started execution + + + + + The time the current test started in Ticks + + + + + Gets or sets the current test result + + + + + Gets a TextWriter that will send output to the current test result. + + + + + The current test object - that is the user fixture + object on which tests are being executed. + + + + + Get or set indicator that run should stop on the first error + + + + + Gets an enum indicating whether a stop has been requested. + + + + + The current test event listener + + + + + The current WorkItemDispatcher. Made public for + use by nunitlite.tests + + + + + The ParallelScope to be used by tests running in this context. + For builds with out the parallel feature, it has no effect. + + + + + Default tolerance value used for floating point equality + when no other tolerance is specified. + + + + + The worker that spawned the context. + For builds without the parallel feature, it is null. + + + + + Gets the RandomGenerator specific to this Test + + + + + Gets the assert count. + + The assert count. + + + + The current nesting level of multiple assert blocks + + + + + Gets or sets the test case timeout value + + + + + Gets a list of ITestActions set by upstream tests + + + + + Saves or restores the CurrentCulture + + + + + Saves or restores the CurrentUICulture + + + + + Gets or sets the current for the Thread. + + + + + The current head of the ValueFormatter chain, copied from MsgUtils.ValueFormatter + + + + + If true, all tests must run on the same thread. No new thread may be spawned. + + + + + The number of times the current test has been scheduled for execution. + Currently only being executed in a test using the + + + + + Record any changes in the environment made by + the test code in the execution context so it + will be passed on to lower level tests. + + + + + Set up the execution environment to match a context. + Note that we may be running on the same thread where the + context was initially created or on a different thread. + + + + + Increments the assert count by one. + + + + + Increments the assert count by a specified amount. + + + + + Adds a new ValueFormatterFactory to the chain of formatters + + The new factory + + + + Sends a message from test to listeners. This message is not kind of test output and doesn't go to test result. + + A name recognized by the intended listeners. + A message to be sent + + + + Obtain lifetime service object + + + + + + An IsolatedContext is used when running code + that may effect the current result in ways that + should not impact the final result of the test. + A new TestExecutionContext is created with an + initially clear result, which is discarded on + exiting the context. + + + using (new TestExecutionContext.IsolatedContext()) + { + // Code that should not impact the result + } + + + + + Save the original current TestExecutionContext and + make a new isolated context current. + + + + + Restore the original TestExecutionContext. + + + + + An AdhocTestExecutionContext is created whenever a context is needed + but not available in CurrentContext. This happens when tests are run + on an ad-hoc basis or Asserts are used outside of tests. + + + + + Construct an AdhocTestExecutionContext, which is used + whenever the current TestExecutionContext is found to be null. + + + + + Enumeration indicating whether the tests are + running normally or being cancelled. + + + + + Running normally with no stop requested + + + + + A graceful stop has been requested + + + + + A forced stop has been requested + + + + + Interface to be implemented by filters applied to tests. + The filter applies when running the test, after it has been + loaded, since this is the only time an ITest exists. + + + + + Unique Empty filter. + + + + + Indicates whether this is the EmptyFilter + + + + + Indicates whether this is a top-level filter, + not contained in any other filter. + + + + + Determine if a particular test passes the filter criteria. The default + implementation checks the test itself, its parents and any descendants. + + Derived classes may override this method or any of the Match methods + to change the behavior of the filter. + + The test to which the filter is applied + True if the test passes the filter, otherwise false + + + + Determine if a test matches the filter explicitly. That is, it must + be a direct match of the test itself or one of its children. + + The test to which the filter is applied + True if the test matches the filter explicitly, otherwise false + + + + Determine whether the test itself matches the filter criteria, without + examining either parents or descendants. This is overridden by each + different type of filter to perform the necessary tests. + + The test to which the filter is applied + True if the filter matches the any parent of the test + + + + Determine whether any ancestor of the test matches the filter criteria + + The test to which the filter is applied + True if the filter matches the an ancestor of the test + + + + Determine whether any descendant of the test matches the filter criteria. + + The test to be matched + True if at least one descendant matches the filter criteria + + + + Create a TestFilter instance from an XML representation. + + + + + Create a TestFilter from its TNode representation + + + + + Nested class provides an empty filter - one that always + returns true when called. It never matches explicitly. + + + + + Adds an XML node + + True if recursive + The added XML node + + + + Adds an XML node + + Parent node + True if recursive + The added XML node + + + + The TestCaseParameters class encapsulates method arguments and + other selected parameters needed for constructing + a parameterized test case. + + + + + Default Constructor creates an empty parameter set + + + + + Construct a non-runnable ParameterSet, specifying + the provider exception that made it invalid. + + + + + Construct a parameter set with a list of arguments + + + + + + Construct a ParameterSet from an object implementing ITestCaseData + + + + + + Type arguments used to create a generic fixture instance + + + + + TestListener provides an implementation of ITestListener that + does nothing. It is used only through its NULL property. + + + + + Called when a test has just started + + The test that is starting + + + + Called when a test case has finished + + The result of the test + + + + Called when a test produces output for immediate display + + A TestOutput object containing the text to display + + + + Called when a test produces a message to be sent to listeners + + A object containing the message to send + + + + Construct a new TestListener - private so it may not be used. + + + + + Get a listener that does nothing + + + + + TestNameGenerator is able to create test names according to + a coded pattern. + + + + + Default pattern used to generate names + + + + + Construct a TestNameGenerator + + + + + Construct a TestNameGenerator + + The pattern used by this generator. + + + + Get the display name for a TestMethod and its arguments + + A TestMethod + The display name + + + + Get the display name for a TestMethod and its arguments + + A TestMethod + Arguments to be used + The display name + + + + TestParameters is the abstract base class for all classes + that know how to provide data for constructing a test. + + + + + Default Constructor creates an empty parameter set + + + + + Construct a parameter set with a list of arguments + + + + + + Construct a non-runnable ParameterSet, specifying + the provider exception that made it invalid. + + + + + Construct a ParameterSet from an object implementing ITestData + + + + + + The RunState for this set of parameters. + + + + + The arguments to be used in running the test, + which must match the method signature. + + + + + A name to be used for this test case in lieu + of the standard generated name containing + the argument list. + + + + + Gets the property dictionary for this test + + + + + Applies ParameterSet values to the test itself. + + A test. + + + + The original arguments provided by the user, + used for display purposes. + + + + + The list of display names to use as the parameters in the test name. + + + + + TestProgressReporter translates ITestListener events into + the async callbacks that are used to inform the client + software about the progress of a test run. + + + + + Initializes a new instance of the class. + + The callback handler to be used for reporting progress. + + + + Called when a test has just started + + The test that is starting + + + + Called when a test has finished. Sends a result summary to the callback. + to + + The result of the test + + + + Called when a test produces output for immediate display + + A TestOutput object containing the text to display + + + + Called when a test produces a message to be sent to listeners + + A object containing the text to send + + + + Returns the parent test item for the target test item if it exists + + + parent test item + + + + Makes a string safe for use as an attribute, replacing + characters that can't be used with their + corresponding XML representations. + + The string to be used + A new string with the values replaced + + + + ParameterizedFixtureSuite serves as a container for the set of test + fixtures created from a given Type using various parameters. + + + + + Initializes a new instance of the class. + + The ITypeInfo for the type that represents the suite. + + + + Creates a copy of the given suite with only the descendants that pass the specified filter. + + The to copy. + Determines which descendants are copied. + + + + Gets a string representing the type of test + + + + + Creates a filtered copy of the test suite. + + Determines which descendants are copied. + + + + ParameterizedMethodSuite holds a collection of individual + TestMethods with their arguments applied. + + + + + Initializes a new instance of the class. + + + + + Creates a copy of the given suite with only the descendants that pass the specified filter. + + The to copy. + Determines which descendants are copied. + + + + Gets a string representing the type of test + + + + + Creates a filtered copy of the test suite. + + Determines which descendants are copied. + + + + SetUpFixture extends TestSuite and supports + Setup and TearDown methods. + + + + + Initializes a new instance of the class. + + + + + Creates a copy of the given suite with only the descendants that pass the specified filter. + + The to copy. + Determines which descendants are copied. + + + + Creates a filtered copy of the test suite. + + Determines which descendants are copied. + + + + The Test abstract class represents a test within the framework. + + + + + Static value to seed ids. It's started at 1000 so any + uninitialized ids will stand out. + + + + + Used to cache the declaring type for this MethodInfo + + + + + Method property backing field + + + + + Constructs a test given its name + + The name of the test + + + + Constructs a test given the path through the + test hierarchy to its parent and a name. + + The parent tests full name + The name of the test + + + + Constructs a test for a specific type. + + + + + Constructs a test for a specific method. + + + + + Gets or sets the id of the test + + + + + + Gets or sets the name of the test + + + + + Gets or sets the fully qualified name of the test + + + + + + Gets the name of the class where this test was declared. + Returns null if the test is not associated with a class. + + + + + Gets the name of the method implementing this test. + Returns null if the test is not implemented as a method. + + + + + The arguments to use in creating the test or empty array if none required. + + + + + Gets the TypeInfo of the fixture used in running this test + or null if no fixture type is associated with it. + + + + + Gets a MethodInfo for the method implementing this test. + Returns null if the test is not implemented as a method. + + + + + Whether or not the test should be run + + + + + Gets the name used for the top-level element in the + XML representation of this test + + + + + Gets a string representing the type of test. Used as an attribute + value in the XML representation of a test and has no other + function in the framework. + + + + + Gets a count of test cases represented by + or contained under this test. + + + + + Gets the properties for this test + + + + + Returns true if this is a TestSuite + + + + + Gets a bool indicating whether the current test + has any descendant tests. + + + + + Gets the parent as a Test object. + Used by the core to set the parent. + + + + + Gets this test's child tests + + A list of child tests + + + + Gets or sets a fixture object for running this test. + + + + + Static prefix used for ids in this AppDomain. + Set by FrameworkController. + + + + + Gets or Sets the Int value representing the seed for the RandomGenerator + + + + + + The SetUp methods. + + + + + The teardown methods + + + + + Creates a TestResult for this test. + + A TestResult suitable for this type of test. + + + + Modify a newly constructed test by applying any of NUnit's common + attributes, based on a supplied , which is + usually the reflection element from which the test was constructed, + but may not be in some instances. The attributes retrieved are + saved for use in subsequent operations. + + + + + Mark the test as Invalid (not runnable) specifying a reason + + The reason the test is not runnable + + + + Get custom attributes applied to a test + + + + + Add standard attributes and members to a test node. + + + + + + + Returns the XML representation of the test + + If true, include child tests recursively + + + + + Returns an XmlNode representing the current result after + adding it as a child of the supplied parent node. + + The parent node. + If true, descendant results are included + + + + + Compares this test to another test for sorting purposes + + The other test + Value of -1, 0 or +1 depending on whether the current test is less than, equal to or greater than the other test + + + + TestAssembly is a TestSuite that represents the execution + of tests in a managed assembly. + + + + + Initializes a new instance of the class + specifying the Assembly and the suite name. + + The assembly this test represents. + + This becomes the full name of the suite and the filename part is used as the suite name. + + + + + Initializes a new instance of the class + specifying the suite name for an assembly that could not be loaded. + + + This becomes the full name of the suite and the filename part is used as the suite name. + + + + + Creates a copy of the given assembly with only the descendants that pass the specified filter. + + The to copy. + Determines which descendants are copied. + + + + Gets the Assembly represented by this instance. + + + + + Gets the name used for the top-level element in the + XML representation of this test + + + + + Get custom attributes specified on the assembly + + + + + Creates a filtered copy of the test suite. + + Determines which descendants are copied. + + + + TestFixture is a surrogate for a user test fixture class, + containing one or more tests. + + + + + Initializes a new instance of the class. + + Type of the fixture. + Arguments used to instantiate the test fixture, or null if none used + + + + Creates a copy of the given suite with only the descendants that pass the specified filter. + + The to copy. + Determines which descendants are copied. + + + + Creates a filtered copy of the test suite. + + Determines which descendants are copied. + + + + The TestMethod class represents a Test implemented as a method. + + + + + The ParameterSet used to create this test method + + + + + Initializes a new instance of the class. + + The method to be used as a test. + + + + Initializes a new instance of the class. + + The method to be used as a test. + The suite or fixture to which the new test will be added + + + + The arguments to use in executing the test method, or empty array if none are provided. + + + + + Overridden to return a TestCaseResult. + + A TestResult for this test. + + + + Gets a bool indicating whether the current test + has any descendant tests. + + + + + Returns a TNode representing the current result after + adding it as a child of the supplied parent node. + + The parent node. + If true, descendant results are included + + + + + Gets this test's child tests + + A list of child tests + + + + Gets the name used for the top-level element in the + XML representation of this test + + + + + Returns the name of the method + + + + + TestSuite represents a composite test, which contains other tests. + + + + + Our collection of child tests + + + + + Initializes a new instance of the class. + + The name of the suite. + + + + Initializes a new instance of the class. + + Name of the parent suite. + The name of the suite. + + + + Initializes a new instance of the class. + + Type of the fixture. + Arguments used to instantiate the test fixture, or null if none used. + + + + Initializes a new instance of the class. + + Type of the fixture. + + + + Creates a copy of the given suite with only the descendants that pass the specified filter. + + The to copy. + Determines which descendants are copied. + + + + Sorts tests under this suite. + + + + + Adds a test to the suite. + + The test. + + + + Creates a filtered copy of the test suite. + + Determines which descendants are copied. + + + + Gets this test's child tests + + The list of child tests + + + + Gets a count of test cases represented by + or contained under this test. + + + + + + The arguments to use in creating the fixture, or empty array if none are provided. + + + + + Set to true to suppress sorting this suite's contents + + + + + OneTimeSetUp methods for this suite + + + + + OneTimeTearDown methods for this suite + + + + + Overridden to return a TestSuiteResult. + + A TestResult for this test. + + + + Gets a bool indicating whether the current test + has any descendant tests. + + + + + Gets the name used for the top-level element in the + XML representation of this test + + + + + Returns an XmlNode representing the current result after + adding it as a child of the supplied parent node. + + The parent node. + If true, descendant results are included + + + + + Check that setup and teardown methods marked by certain attributes + meet NUnit's requirements and mark the tests not runnable otherwise. + + A list of methodinfos to check + + + + ThreadUtility provides a set of static methods convenient + for working with threads. + + + + + Pre-Task compatibility + + + + + Abort a thread, helping to dislodging it if it is blocked in native code + + The thread to abort + The native thread id (if known), otherwise 0. + If provided, allows the thread to be killed if it's in a message pump native blocking wait. + This must have previously been captured by calling from the running thread itself. + + + + Do our best to kill a thread + + The thread to kill + The native thread id (if known), otherwise 0. + If provided, allows the thread to be killed if it's in a message pump native blocking wait. + This must have previously been captured by calling from the running thread itself. + + + + Do our best to kill a thread, passing state info + + The thread to kill + Info for the ThreadAbortException handler + The native thread id (if known), otherwise 0. + If provided, allows the thread to be killed if it's in a message pump native blocking wait. + This must have previously been captured by calling from the running thread itself. + + + + Schedule a threadpool thread to check on the aborting thread in case it's in a message pump native blocking wait + + + + + Captures the current thread's native id. If provided to later, allows the thread to be killed if it's in a message pump native blocking wait. + + + + + Sends a message to the thread to dislodge it from native code and allow a return to managed code, where a ThreadAbortException can be generated. + The message is meaningless (WM_CLOSE without a window handle) but it will end any blocking message wait. + + + + + TypeHelper provides static methods that operate on Types. + + + + + Gets the display name for a Type as used by NUnit. + + The Type for which a display name is needed. + The display name for the Type + + + + Gets the display name for a Type as used by NUnit. + + The Type for which a display name is needed. + The arglist provided. + The display name for the Type + + + + Returns the best fit for a common type to be used in + matching actual arguments to a methods Type parameters. + + + + + Determines whether the specified type is numeric. + + The type to be examined. + + true if the specified type is numeric; otherwise, false. + + + + + Convert an argument list to the required parameter types. + Currently, only widening numeric conversions are performed. + + An array of args to be converted + A ParameterInfo[] whose types will be used as targets + + + + Determines whether this instance can deduce type args for a generic type from the supplied arguments. + + The type to be examined. + The arglist. + The type args to be used. + + true if this the provided args give sufficient information to determine the type args to be used; otherwise, false. + + + + + Return the interfaces implemented by a Type. + + The Type to be examined. + An array of Types for the interfaces. + + + + Return whether or not the given type is a ValueTuple. + + Type. + Whether or not the given type is a ValueTuple. + + + + Return whether or not the given type is a Tuple. + + Type. + Whether or not the given type is a Tuple. + + + + Determines whether the cast to the given type would succeed. + If is and + can be , the cast succeeds just like the C# language feature. + + The object to cast. + + + + Casts to a value of the given type if possible. + If is and + can be , the cast succeeds just like the C# language feature. + + The object to cast. + The value of the object, if the cast succeeded. + + + + Used for resolving the type difference between objects. + + + + + Gets the shortened type name difference between and . + + The expected object. + The actual object. + Output of the unique type name for the expected object. + Output of the unique type name for actual object. + + + + Gets the shortened type name difference between and . + + The expected object . + The actual object . + Output of the unique type name for the expected object. + Output of the unique type name for actual object. + + + + Obtain the shortened generic template parameters of the given and , + if they are generic. + + The expected . + The actual . + Shortened generic parameters of the expected . + Shortened generic parameters of the actual . + + + + Obtain a shortened name of the given . + + + + + Shorten the given names by only including the relevant differing namespaces/types, if they differ. + + The expected . + The actual . + The shortened expected name. + The shortened actual name. + + + + Returns whether or not the is generic. + + + + + Returns the fully qualified generic name of a given . + + + + + Reconstruct a generic type name using the provided generic type name, and a + of the template parameters. + + The name of the generic type, including the number of template parameters expected. + A of names of the template parameters of the provided generic type. + + + + Obtain the shortened generic names of the given expected and actual s. + + The expected . + The actual . + The shortened expected generic name. + The shortened actual generic name. + + + + The TypeWrapper class wraps a Type so it may be used in + a platform-independent manner. + + + + + Construct a TypeWrapper for a specified Type. + + + + + Gets the underlying Type on which this TypeWrapper is based. + + + + + Gets the base type of this type as an ITypeInfo + + + + + Gets the Name of the Type + + + + + Gets the FullName of the Type + + + + + Gets the assembly in which the type is declared + + + + + Gets the namespace of the Type + + + + + Gets a value indicating whether the type is abstract. + + + + + Gets a value indicating whether the Type is a generic Type + + + + + Returns true if the Type wrapped is T + + + + + Gets a value indicating whether the Type has generic parameters that have not been replaced by specific Types. + + + + + Gets a value indicating whether the Type is a generic Type definition + + + + + Gets a value indicating whether the type is sealed. + + + + + Gets a value indicating whether this type represents a static class. + + + + + Get the display name for this type + + + + + Get the display name for an object of this type, constructed with the specified args. + + + + + Returns a new ITypeInfo representing an instance of this generic Type using the supplied Type arguments + + + + + Returns a Type representing a generic type definition from which this Type can be constructed. + + + + + Returns an array of custom attributes of the specified type applied to this type + + + + + Returns a value indicating whether the type has an attribute of the specified type. + + + + + + + + Returns a flag indicating whether this type has a method with an attribute of the specified type. + + + + + + + Returns an array of IMethodInfos for methods of this Type + that match the specified flags. + + + + + Gets the public constructor taking the specified argument Types + + + + + Returns a value indicating whether this Type has a public constructor taking the specified argument Types. + + + + + Construct an object of this Type, using the specified arguments. + + + + + Override ToString() so that error messages in NUnit's own tests make sense + + + + + Encapsulates the ability to increment a value by an amount which may be of a different type. + + + + + Creates a from the specified value if the current instance is able to + use it to increment the on values which it operates. If the creation fails, + is thrown. + + + + + + Creates a from the specified value if the current instance is able to + use it to increment values on which it operates. A return value indicates + whether the creation succeeded. + + + + + Provides a convenient shorthand when is + and the default value of represents zero. + + + + + Initializes a new instance of the class. + + The amount by which to increment each time this step is applied. + + Must increment the given value and return the result. + If the result is outside the range representable by , + must throw . If the result does not change due to lack + of precision representable by , must throw . + + + + + Increments the given value and returns the result. + If the result is outside the range representable by , + throws . If the result does not change due to lack + of precision representable by , throws . + + + + + + + Encapsulates the ability to increment a value by an amount + which may be of a different type. + + + + + Increments the given value and returns the result. + If the result is outside the range representable by , + throws . If the result does not change due to lack + of precision representable by , throws . + + + + + + + Creates a from the specified value if the current instance is able to + use it to increment values of type . If the creation fails, + is thrown. + + + + + + Creates a from the specified value if the current instance is able to + use it to increment values of type . A return value indicates + whether the creation succeeded. + + + + + Helper class with properties and methods that supply + a number of constraints used in Asserts. + + + + + Returns a ConstraintExpression that negates any + following constraint. + + + + + Returns a ConstraintExpression, which will apply + the following constraint to all members of a collection, + succeeding if all of them succeed. + + + + + Returns a constraint that tests for null + + + + + Returns a constraint that tests for True + + + + + Returns a constraint that tests for False + + + + + Returns a constraint that tests for a positive value + + + + + Returns a constraint that tests for a negative value + + + + + Returns a constraint that tests for equality with zero + + + + + Returns a constraint that tests for NaN + + + + + Returns a constraint that tests for empty + + + + + Returns a constraint that tests whether a collection + contains all unique items. + + + + + Returns a constraint that tests whether an object graph is serializable in binary format. + + + + + Returns a constraint that tests whether an object graph is serializable in XML format. + + + + + Returns a constraint that tests two items for equality + + + + + Returns a constraint that tests that two references are the same object + + + + + Returns a constraint that tests whether the + actual value is greater than the supplied argument + + + + + Returns a constraint that tests whether the + actual value is greater than or equal to the supplied argument + + + + + Returns a constraint that tests whether the + actual value is greater than or equal to the supplied argument + + + + + Returns a constraint that tests whether the + actual value is less than the supplied argument + + + + + Returns a constraint that tests whether the + actual value is less than or equal to the supplied argument + + + + + Returns a constraint that tests whether the + actual value is less than or equal to the supplied argument + + + + + Returns a constraint that tests whether the actual + value is of the exact type supplied as an argument. + + + + + Returns a constraint that tests whether the actual + value is of the exact type supplied as an argument. + + + + + Returns a constraint that tests whether the actual value + is of the type supplied as an argument or a derived type. + + + + + Returns a constraint that tests whether the actual value + is of the type supplied as an argument or a derived type. + + + + + Returns a constraint that tests whether the actual value + is assignable from the type supplied as an argument. + + + + + Returns a constraint that tests whether the actual value + is assignable from the type supplied as an argument. + + + + + Returns a constraint that tests whether the actual value + is assignable to the type supplied as an argument. + + + + + Returns a constraint that tests whether the actual value + is assignable to the type supplied as an argument. + + + + + Returns a constraint that tests whether the actual value + is a collection containing the same elements as the + collection supplied as an argument. + + + + + Returns a constraint that tests whether the actual value + is a subset of the collection supplied as an argument. + + + + + Returns a constraint that tests whether the actual value + is a superset of the collection supplied as an argument. + + + + + Returns a constraint that tests whether a collection is ordered + + + + + Returns a constraint that tests whether the path provided + is the same as an expected path after canonicalization. + + + + + Returns a constraint that tests whether the path provided + is a subpath of the expected path after canonicalization. + + + + + Returns a constraint that tests whether the path provided + is the same path or under an expected path after canonicalization. + + + + + Returns a constraint that tests whether the actual value falls + inclusively within a specified range. + + Inclusive beginning of the range. + Inclusive end of the range. + + + + + Returns a constraint that tests if an item is equal to any of parameters + + Expected values + + + + When implemented by an attribute, this interface implemented to provide actions to execute before and after tests. + + + + + Executed before each test is run + + The test that is going to be run. + + + + Executed after each test is run + + The test that has just been run. + + + + Provides the target for the action attribute + + The target for the action attribute + + + + The Iz class is a synonym for Is intended for use in VB, + which regards Is as a keyword. + + + + + The List class is a helper class with properties and methods + that supply a number of constraints used with lists and collections. + + + + + List.Map returns a ListMapper, which can be used to map + the original collection to another collection. + + + + + + + ListMapper is used to transform a collection used as an actual argument + producing another collection to be used in the assertion. + + + + + Construct a ListMapper based on a collection + + The collection to be transformed + + + + Produces a collection containing all the values of a property + + The collection of property values + + + + + Basic Asserts on strings. + + + + + DO NOT USE! Use StringAssert.AreEqualIgnoringCase(...) or Assert.AreEqual(...) instead. + The Equals method throws an InvalidOperationException. This is done + to make sure there is no mistake by calling this function. + + + + + + + DO NOT USE! + The ReferenceEquals method throws an InvalidOperationException. This is done + to make sure there is no mistake by calling this function. + + + + + + + Asserts that a string is found within another string. + + The expected string + The string to be examined + The message to display in case of failure + Arguments used in formatting the message + + + + Asserts that a string is found within another string. + + The expected string + The string to be examined + + + + Asserts that a string is not found within another string. + + The expected string + The string to be examined + The message to display in case of failure + Arguments used in formatting the message + + + + Asserts that a string is found within another string. + + The expected string + The string to be examined + + + + Asserts that a string starts with another string. + + The expected string + The string to be examined + The message to display in case of failure + Arguments used in formatting the message + + + + Asserts that a string starts with another string. + + The expected string + The string to be examined + + + + Asserts that a string does not start with another string. + + The expected string + The string to be examined + The message to display in case of failure + Arguments used in formatting the message + + + + Asserts that a string does not start with another string. + + The expected string + The string to be examined + + + + Asserts that a string ends with another string. + + The expected string + The string to be examined + The message to display in case of failure + Arguments used in formatting the message + + + + Asserts that a string ends with another string. + + The expected string + The string to be examined + + + + Asserts that a string does not end with another string. + + The expected string + The string to be examined + The message to display in case of failure + Arguments used in formatting the message + + + + Asserts that a string does not end with another string. + + The expected string + The string to be examined + + + + Asserts that two strings are equal, without regard to case. + + The expected string + The actual string + The message to display in case of failure + Arguments used in formatting the message + + + + Asserts that two strings are equal, without regard to case. + + The expected string + The actual string + + + + Asserts that two strings are not equal, without regard to case. + + The expected string + The actual string + The message to display in case of failure + Arguments used in formatting the message + + + + Asserts that two strings are not equal, without regard to case. + + The expected string + The actual string + + + + Asserts that a string matches an expected regular expression pattern. + + The regex pattern to be matched + The actual string + The message to display in case of failure + Arguments used in formatting the message + + + + Asserts that a string matches an expected regular expression pattern. + + The regex pattern to be matched + The actual string + + + + Asserts that a string does not match an expected regular expression pattern. + + The regex pattern to be used + The actual string + The message to display in case of failure + Arguments used in formatting the message + + + + Asserts that a string does not match an expected regular expression pattern. + + The regex pattern to be used + The actual string + + + + The TestCaseData class represents a set of arguments + and other parameter info to be used for a parameterized + test case. It is derived from TestCaseParameters and adds a + fluent syntax for use in initializing the test case. + + + + + Initializes a new instance of the class. + + The arguments. + + + + Initializes a new instance of the class. + + The argument. + + + + Initializes a new instance of the class. + + The first argument. + The second argument. + + + + Initializes a new instance of the class. + + The first argument. + The second argument. + The third argument. + + + + Sets the expected result for the test + + The expected result + A modified TestCaseData + + + + Sets the name of the test case + + The modified TestCaseData instance + + + + Sets the list of display names to use as the parameters in the test name. + + + + + Sets the description for the test case + being constructed. + + The description. + The modified TestCaseData instance. + + + + Applies a category to the test + + + + + + + Applies a named property to the test + + + + + + + + Applies a named property to the test + + + + + + + + Applies a named property to the test + + + + + + + + Marks the test case as explicit. + + + + + Marks the test case as explicit, specifying the reason. + + + + + Ignores this TestCase, specifying the reason. + + The reason. + + + + + Provide the context information of the current test. + This is an adapter for the internal ExecutionContext + class, hiding the internals from the user test. + + + + + Construct a TestContext for an ExecutionContext + + The ExecutionContext to adapt + + + + Get the current test context. This is created + as needed. The user may save the context for + use within a test, but it should not be used + outside the test for which it is created. + + + + + Gets a TextWriter that will send output to the current test result. + + + + + Gets a TextWriter that will send output directly to Console.Error + + + + + Gets a TextWriter for use in displaying immediate progress messages + + + + + TestParameters object holds parameters for the test run, if any are specified + + + + + Static DefaultWorkDirectory is now used as the source + of the public instance property WorkDirectory. This is + a bit odd but necessary to avoid breaking user tests. + + + + + Get a representation of the current test. + + + + + Gets a Representation of the TestResult for the current test. + + + + + Gets the unique name of the Worker that is executing this test. + + + + + Gets the directory containing the current test assembly. + + + + + Gets the directory to be used for outputting files created + by this test run. + + + + + Gets the random generator. + + + The random generator. + + + + + Gets the number of assertions executed + up to this point in the test. + + + + + Get the number of times the current Test has been repeated. This is currently only + set when using the . + TODO: add this to the RepeatAttribute as well + + + + Write the string representation of a boolean value to the current result + + + Write a char to the current result + + + Write a char array to the current result + + + Write the string representation of a double to the current result + + + Write the string representation of an Int32 value to the current result + + + Write the string representation of an Int64 value to the current result + + + Write the string representation of a decimal value to the current result + + + Write the string representation of an object to the current result + + + Write the string representation of a Single value to the current result + + + Write a string to the current result + + + Write the string representation of a UInt32 value to the current result + + + Write the string representation of a UInt64 value to the current result + + + Write a formatted string to the current result + + + Write a formatted string to the current result + + + Write a formatted string to the current result + + + Write a formatted string to the current result + + + Write a line terminator to the current result + + + Write the string representation of a boolean value to the current result followed by a line terminator + + + Write a char to the current result followed by a line terminator + + + Write a char array to the current result followed by a line terminator + + + Write the string representation of a double to the current result followed by a line terminator + + + Write the string representation of an Int32 value to the current result followed by a line terminator + + + Write the string representation of an Int64 value to the current result followed by a line terminator + + + Write the string representation of a decimal value to the current result followed by a line terminator + + + Write the string representation of an object to the current result followed by a line terminator + + + Write the string representation of a Single value to the current result followed by a line terminator + + + Write a string to the current result followed by a line terminator + + + Write the string representation of a UInt32 value to the current result followed by a line terminator + + + Write the string representation of a UInt64 value to the current result followed by a line terminator + + + Write a formatted string to the current result followed by a line terminator + + + Write a formatted string to the current result followed by a line terminator + + + Write a formatted string to the current result followed by a line terminator + + + Write a formatted string to the current result followed by a line terminator + + + + This method adds the a new ValueFormatterFactory to the + chain of responsibility used for formatting values in messages. + The scope of the change is the current TestContext. + + The factory delegate + + + + Attach a file to the current test result + + Relative or absolute file path to attachment + Optional description of attachment + + + + This method provides a simplified way to add a ValueFormatter + delegate to the chain of responsibility, creating the factory + delegate internally. It is useful when the Type of the object + is the only criterion for selection of the formatter, since + it can be used without getting involved with a compound function. + + The type supported by this formatter + The ValueFormatter delegate + + + + TestAdapter adapts a Test for consumption by + the user test code. + + + + + Construct a TestAdapter for a Test + + The Test to be adapted + + + + Gets the unique Id of a test + + + + + The name of the test, which may or may not be + the same as the method name. + + + + + The name of the method representing the test. + + + + + The FullName of the test + + + + + The ClassName of the test + + + + + A shallow copy of the properties of the test. + + + + + The arguments to use in creating the test or empty array if none are required. + + + + + ResultAdapter adapts a TestResult for consumption by + the user test code. + + + + + Construct a ResultAdapter for a TestResult + + The TestResult to be adapted + + + + Gets a ResultState representing the outcome of the test + up to this point in its execution. + + + + + Gets a list of the assertion results generated + up to this point in the test. + + + + + Gets the message associated with a test + failure or with not running the test + + + + + Gets any stack trace associated with an + error or failure. + + + + + Gets the number of test cases that failed + when running the test and all its children. + + + + + Gets the number of test cases that had warnings + when running the test and all its children. + + + + + Gets the number of test cases that passed + when running the test and all its children. + + + + + Gets the number of test cases that were skipped + when running the test and all its children. + + + + + Gets the number of test cases that were inconclusive + when running the test and all its children. + + + + + adapts an + for consumption by the user. + + + + + Construct a from a source + . + + + + + Get the first property with the given , if it can be found, otherwise + returns null. + + + + + Indicates whether is found in this + . + + + + + Returns a collection of properties + with the given . + + + + + Returns the count of elements with the given . + + + + + Returns a collection of the property keys. + + + + + The TestFixtureData class represents a set of arguments + and other parameter info to be used for a parameterized + fixture. It is derived from TestFixtureParameters and adds a + fluent syntax for use in initializing the fixture. + + + + + Initializes a new instance of the class. + + The arguments. + + + + Initializes a new instance of the class. + + The argument. + + + + Initializes a new instance of the class. + + The first argument. + The second argument. + + + + Initializes a new instance of the class. + + The first argument. + The second argument. + The third argument. + + + + Sets the name of the test fixture + + The modified TestFixtureData instance + + + + Sets the list of display names to use as the parameters in the test name. + + + + + Marks the test fixture as explicit. + + + + + Marks the test fixture as explicit, specifying the reason. + + + + + Ignores this TestFixture, specifying the reason. + + The reason. + + + + + TestParameters class holds any named parameters supplied to the test run + + + + + Gets the number of test parameters + + + + + Gets a collection of the test parameter names + + + + + Gets a flag indicating whether a parameter with the specified name exists. + + Name of the parameter + True if it exists, otherwise false + + + + Indexer provides access to the internal dictionary + + Name of the parameter + Value of the parameter or null if not present + + + + Get method is a simple alternative to the indexer + + Name of the parameter + Value of the parameter or null if not present + + + + Get the value of a parameter or a default string + + Name of the parameter + Default value of the parameter + Value of the parameter or default value if not present + + + + Get the value of a parameter or return a default + + The return Type + Name of the parameter + Default value of the parameter + Value of the parameter or default value if not present + + + + Adds a parameter to the list + + Name of the parameter + Value of the parameter + + + + Helper class with properties and methods that supply + constraints that operate on exceptions. + + + + + Creates a constraint specifying an expected exception + + + + + Creates a constraint specifying an exception with a given InnerException + + + + + Creates a constraint specifying an expected TargetInvocationException + + + + + Creates a constraint specifying an expected ArgumentException + + + + + Creates a constraint specifying an expected ArgumentNullException + + + + + Creates a constraint specifying an expected InvalidOperationException + + + + + Creates a constraint specifying that no exception is thrown + + + + + Creates a constraint specifying the exact type of exception expected + + + + + Creates a constraint specifying the exact type of exception expected + + + + + Creates a constraint specifying the type of exception expected + + + + + Creates a constraint specifying the type of exception expected + + + + + Provides static methods to express conditions + that must be met for the test to succeed. If + any test fails, a warning is issued. + + + + + DO NOT USE! + The Equals method throws an InvalidOperationException. This is done + to make sure there is no mistake by calling this function. + + The left object. + The right object. + Not applicable + + + + DO NOT USE! + The ReferenceEquals method throws an InvalidOperationException. This is done + to make sure there is no mistake by calling this function. + + The left object. + The right object. + + + + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and issuing a warning on failure. + + The Type being compared. + An ActualValueDelegate returning the value to be tested + A Constraint expression to be applied + + + + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and issuing a warning on failure. + + The Type being compared. + An ActualValueDelegate returning the value to be tested + A Constraint expression to be applied + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and issuing a warning on failure. + + The Type being compared. + An ActualValueDelegate returning the value to be tested + A Constraint expression to be applied + A function to build the message included with the Exception + + + + Asserts that a condition is true. If the condition is false a warning is issued. + + The evaluated condition + The message to display if the condition is false + Arguments to be used in formatting the message + + + + Asserts that a condition is true. If the condition is false a warning is issued. + + The evaluated condition + + + + Asserts that a condition is true. If the condition is false a warning is issued. + + The evaluated condition + A function to build the message included with the Exception + + + + Asserts that a condition is true. If the condition is false the method throws + an . + + A lambda that returns a Boolean + The message to display if the condition is false + Arguments to be used in formatting the message + + + + Asserts that a condition is true. If the condition is false the method throws + an . + + A lambda that returns a Boolean + + + + Asserts that a condition is true. If the condition is false the method throws + an . + + A lambda that returns a Boolean + A function to build the message included with the Exception + + + + Asserts that the code represented by a delegate throws an exception + that satisfies the constraint provided. + + A TestDelegate to be executed + A Constraint expression to be applied + + + + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and issuing a warning on failure. + + The Type being compared. + The actual value to test + A Constraint expression to be applied + + + + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and issuing a warning on failure. + + The Type being compared. + The actual value to test + A Constraint expression to be applied + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and issuing a warning on failure. + + The Type being compared. + The actual value to test + A Constraint expression to be applied + A function to build the message included with the Exception + + + + Apply a constraint to an actual value, succeeding if the constraint + fails and issuing a warning on success. + + The Type being compared. + An ActualValueDelegate returning the value to be tested + A Constraint expression to be applied + + + + Apply a constraint to an actual value, succeeding if the constraint + fails and issuing a warning on success. + + The Type being compared. + An ActualValueDelegate returning the value to be tested + A Constraint expression to be applied + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Apply a constraint to an actual value, succeeding if the constraint + fails and issuing a warning on failure. + + The Type being compared. + An ActualValueDelegate returning the value to be tested + A Constraint expression to be applied + A function to build the message included with the Exception + + + + Asserts that a condition is true. If the condition is false a warning is issued. + + The evaluated condition + The message to display if the condition is false + Arguments to be used in formatting the message + + + + Asserts that a condition is true. If the condition is false a warning is issued. + + The evaluated condition + + + + Asserts that a condition is true. If the condition is false a warning is issued. + + The evaluated condition + A function to build the message included with the Exception + + + + Asserts that a condition is false. If the condition is true a warning is issued. + + A lambda that returns a Boolean + The message to display if the condition is true + Arguments to be used in formatting the message + + + + Asserts that a condition is false. If the condition is true a warning is issued. + + A lambda that returns a Boolean + + + + Asserts that a condition is false. If the condition is true a warning is issued. + + A lambda that returns a Boolean + A function to build the message included with the Exception + + + + Apply a constraint to an actual value, succeeding if the constraint + fails and issuing a warning if it succeeds. + + The Type being compared. + The actual value to test + A Constraint expression to be applied + + + + Apply a constraint to an actual value, succeeding if the constraint + fails and issuing a warning if it succeeds. + + The Type being compared. + The actual value to test + A Constraint expression to be applied + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and issuing a warning on failure. + + The Type being compared. + The actual value to test + A Constraint expression to be applied + A function to build the message included with the Exception + + + + FrameworkPackageSettings is a static class containing constant values that + are used as keys in setting up a TestPackage. These values are used in + the framework, and set in the runner. Setting values may be a string, int or bool. + + + + + Flag (bool) indicating whether tests are being debugged. + + + + + Flag (bool) indicating whether to pause execution of tests to allow + the user to attach a debugger. + + + + + The InternalTraceLevel for this run. Values are: "Default", + "Off", "Error", "Warning", "Info", "Debug", "Verbose". + Default is "Off". "Debug" and "Verbose" are synonyms. + + + + + Full path of the directory to be used for work and result files. + This path is provided to tests by the framework TestContext. + + + + + Integer value in milliseconds for the default timeout value + for test cases. If not specified, there is no timeout except + as specified by attributes on the tests themselves. + + + + + A TextWriter to which the internal trace will be sent. + + + + + A list of tests to be loaded. + + + + + The number of test threads to run for the assembly. If set to + 1, a single queue is used. If set to 0, tests are executed + directly, without queuing. + + + + + The random seed to be used for this assembly. If specified + as the value reported from a prior run, the framework should + generate identical random values for tests as were used for + that run, provided that no change has been made to the test + assembly. Default is a random value itself. + + + + + If true, execution stops after the first error or failure. + + + + + If true, use of the event queue is suppressed and test events are synchronous. + + + + + The default naming pattern used in generating test names + + + + + Parameters to be passed on to the tests, serialized to a single string which needs parsing. Obsoleted by ; kept for backward compatibility. + + + + + Parameters to be passed on to the tests, already parsed into an IDictionary<string, string>. Replaces . + + + + + If true, the tests will run on the same thread as the NUnit runner itself + + + + + Provides a platform-independent methods for getting attributes + for use by AttributeConstraint and AttributeExistsConstraint. + + + + + Gets the custom attributes from the given object. + + The actual. + Type of the attribute. + if set to true [inherit]. + A list of the given attribute on the given object. + + + + A MarshalByRefObject that lives forever + + + + + Obtains a lifetime service object to control the lifetime policy for this instance. + + + + diff --git a/tests/Trinity.Tests.Virtuoso/bin/Debug/nunit_random_seed.tmp b/tests/Trinity.Tests.Virtuoso/bin/Debug/nunit_random_seed.tmp new file mode 100644 index 0000000..b3d92e7 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Debug/nunit_random_seed.tmp @@ -0,0 +1 @@ +336958291 \ No newline at end of file diff --git a/tests/Trinity.Tests.Virtuoso/bin/Debug/ontologies-test.config b/tests/Trinity.Tests.Virtuoso/bin/Debug/ontologies-test.config new file mode 100644 index 0000000..6e04670 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Debug/ontologies-test.config @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/Trinity.Tests.Virtuoso/bin/Debug/ontologies.config b/tests/Trinity.Tests.Virtuoso/bin/Debug/ontologies.config new file mode 100644 index 0000000..faa8294 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Debug/ontologies.config @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/Trinity.Tests.Virtuoso/bin/Debug/without_store.config b/tests/Trinity.Tests.Virtuoso/bin/Debug/without_store.config new file mode 100644 index 0000000..76533dd --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Debug/without_store.config @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/Trinity.Tests.Virtuoso/bin/Release/INIFileParser.xml b/tests/Trinity.Tests.Virtuoso/bin/Release/INIFileParser.xml new file mode 100644 index 0000000..dbab5dd --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Release/INIFileParser.xml @@ -0,0 +1,980 @@ + + + + INIFileParser + + + + + Asserts that a strings has no blank spaces. + + The string to be checked. + + + + Represents an INI data parser for files. + + + + Implements reading ini data from a file. + + + Uses codification for the file. + + + Path to the file + + + + Implements reading ini data from a file. + + + Path to the file + + + File's encoding. + + + + Saves INI data to a file. + + + Creats an ASCII encoded file by default. + + + Path to the file. + + + IniData to be saved as an INI file. + + + + Writes INI data to a text file. + + + Path to the file. + + + IniData to be saved as an INI file. + + + Specifies the encoding used to create the file. + + + + Represents all data from an INI file + + + + Represents all sections from an INI file + + + + Initializes an empty IniData instance. + + + + Initializes a new IniData instance using a previous + . + + + object containing the + data with the sections of the file + + + + Configuration used to write an ini file with the proper + delimiter characters and data. + + + If the instance was created by a parser, + this instance is a copy of the used + by the parser (i.e. different objects instances) + If this instance is created programatically without using a parser, this + property returns an instance of + + + + Global sections. Contains key/value pairs which are not + enclosed in any section (i.e. they are defined at the beginning + of the file, before any section. + + + + Gets the instance + with the specified section name. + + + + Gets or sets all the + for this IniData instance. + + + + Creates a new object that is a copy of the current instance. + + + A new object that is a copy of this instance. + + + + See property for more information. + + + + Deletes all comments in all sections and key values + + + + Merges the other iniData into this one by overwriting existing values. + Comments get appended. + + + IniData instance to merge into this. + If it is null this operation does nothing. + + + + Merge the sections into this by overwriting this sections. + + + + Merges the given global values into this globals by overwriting existing values. + + + + Information associated to a key from an INI file. + Includes both the value and the comments associated to the key. + + + + Initializes a new instance of the class. + + + + Initializes a new instance of the class + from a previous instance of . + + + Data is deeply copied + + + The instance of the class + used to create the new instance. + + + + Gets or sets the comment list associated to this key. + + + + Gets or sets the value associated to this key. + + + + Gets or sets the name of the key. + + + + Creates a new object that is a copy of the current instance. + + + A new object that is a copy of this instance. + + + + Represents a collection of Keydata. + + + + Initializes a new instance of the class. + + + + Initializes a new instance of the class with a given + search comparer + + + Search comparer used to find the key by name in the collection + + + + Initializes a new instance of the class + from a previous instance of . + + + Data from the original KeyDataCollection instance is deeply copied + + + The instance of the class + used to create the new instance. + + + + Gets or sets the value of a concrete key. + + + If we try to assign the value of a key which doesn't exists, + a new key is added with the name and the value is assigned to it. + + + Name of the key + + + The string with key's value or null if the key was not found. + + + + Return the number of keys in the collection + + + + + Adds a new key to the collection + + + KeyData instance. + + + true if the key was added false if a key with the same name already exist + in the collection + + + + Adds a new key with the specified name and value to the collection + + + Name of the new key to be added. + + + Value associated to the key. + + + true if the key was added false if a key with the same name already exist + in the collection. + + + + Clears all comments of this section + + + + Gets if a specifyed key name exists in the collection. + + Key name to search + true if a key with the specified name exists in the collectoin + false otherwise + + + Retrieves the data for a specified key given its name + + Name of the key to retrieve. + + A instance holding + the key information or null if the key wasn't found. + + + + Deletes all keys in this collection. + + + + Deletes a previously existing key, including its associated data. + + The key to be removed. + + true if a key with the specified name was removed + false otherwise. + + + + Sets the key data associated to a specified key. + + The new for the key. + + + Allows iteration througt the collection. + + A strong-typed IEnumerator + + + Implementation needed + + A weak-typed IEnumerator. + + + Creates a new object that is a copy of the current instance. + + + A new object that is a copy of this instance. + + + + Collection of KeyData for a given section + + + + Responsible for parsing an string from an ini file, and creating + an structure. + + + + Ctor + + + The parser uses a by default + + + + Ctor + + + Parser's instance. + + + + Configuration that defines the behaviour and constraints + that the parser must follow. + + + + True is the parsing operation encounter any problem + + + + Returns the list of errors found while parsing the ini file. + + + If the configuration option ThrowExceptionOnError is false it can contain one element + for each problem found while parsing; otherwise it will only contain the very same + exception that was raised. + + + + Parses a string containing valid ini data + + + String with data + + + An instance with the data contained in + the correctly parsed an structured. + + + Thrown if the data could not be parsed + + + + Checks if a given string contains a comment. + + + String with a line to be checked. + + + true if any substring from s is a comment, false otherwise. + + + + Checks if a given string represents a section delimiter. + + + The string to be checked. + + + true if the string represents a section, false otherwise. + + + + Checks if a given string represents a key / value pair. + + + The string to be checked. + + + true if the string represents a key / value pair, false otherwise. + + + + Removes a comment from a string if exist, and returns the string without + the comment substring. + + + The string we want to remove the comments from. + + + The string s without comments. + + + + Processes one line and parses the data found in that line + (section or key/value pair who may or may not have comments) + + The string with the line to process + + + Proccess a string which contains an ini section. + + + The string to be processed + + + + Processes a string containing an ini key/value pair. + + + The string to be processed + + + + Extracts the key portion of a string containing a key/value pair.. + + + The string to be processed, which contains a key/value pair + + + The name of the extracted key. + + + + Extracts the value portion of a string containing a key/value pair.. + + + The string to be processed, which contains a key/value pair + + + The name of the extracted value. + + + + Abstract Method that decides what to do in case we are trying to add a duplicated key to a section + + + + Adds a key to a concrete instance, checking + if duplicate keys are allowed in the configuration + + + Key name + + + Key's value + + + collection where the key should be inserted + + + Name of the section where the is contained. + Used only for logging purposes. + + + + Temp list of comments + + + + Tmp var with the name of the seccion which is being process + + + + Information associated to a section in a INI File + Includes both the value and the comments associated to the key. + + + + Initializes a new instance of the class. + + + + Initializes a new instance of the class + from a previous instance of . + + + Data is deeply copied + + + The instance of the class + used to create the new instance. + + + Search comparer. + + + + Deletes all comments in this section and key/value pairs + + + + Deletes all the key-value pairs in this section. + + + + Merges otherSection into this, adding new keys if they don't exists + or overwriting values if the key already exists. + Comments get appended. + + + Comments are also merged but they are always added, not overwritten. + + + + + Gets or sets the name of the section. + + + The name of the section + + + + Gets or sets the comment list associated to this section. + + + A list of strings. + + + + Gets or sets the comment list associated to this section. + + + A list of strings. + + + + Gets or sets the comment list associated to this section. + + + A list of strings. + + + + Gets or sets the keys associated to this section. + + + A collection of KeyData objects. + + + + Creates a new object that is a copy of the current instance. + + + A new object that is a copy of this instance. + + + + Represents a collection of SectionData. + + + + Initializes a new instance of the class. + + + + Initializes a new instance of the class. + + + StringComparer used when accessing section names + + + + Initializes a new instance of the class + from a previous instance of . + + + Data is deeply copied + + + The instance of the class + used to create the new instance. + + + Returns the number of SectionData elements in the collection + + + + Gets the key data associated to a specified section name. + + An instance of as class + holding the key data from the current parsed INI data, or a null + value if the section doesn't exist. + + + Creates a new section with empty data. + + + If a section with the same name exists, this operation has no effect. + + Name of the section to be created + true if the a new section with the specified name was added, + false otherwise + If the section name is not valid. + + + Adds a new SectionData instance to the collection + + Data. + + + Removes all entries from this collection + + + + Gets if a section with a specified name exists in the collection. + + Name of the section to search + + true if a section with the specified name exists in the + collection false otherwise + + + + Returns the section data from a specify section given its name. + + Name of the section. + + An instance of a class + holding the section data for the currently INI data + + + + Sets the section data for given a section name. + + + The new instance. + + + + + true if the section with the specified name was removed, + false otherwise + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + Creates a new object that is a copy of the current instance. + + + A new object that is a copy of this instance. + + + + Data associated to this section + + + + Represents an INI data parser for streams. + + + + This instance will handle ini data parsing and writing + + + + Ctor + + + + Ctor + + + + + Reads data in INI format from a stream. + + Reader stream. + + And instance with the readed ini data parsed. + + + Thrown if is null. + + + + Writes the ini data to a stream. + + A write stream where the ini data will be stored + An instance. + + Thrown if is null. + + + + Writes the ini data to a stream. + + A write stream where the ini data will be stored + An instance. + Formaterr instance that controls how the ini data is transformed to a string + + Thrown if is null. + + + + Represents an INI data parser for strings. + + + This class is deprecated and kept for backwards compatibility. + It's just a wrapper around class. + Please, replace your code. + + + + This instance will handle ini data parsing and writing + + + + Ctor + + + + Ctor + + + + + Parses a string containing data formatted as an INI file. + + The string containing the data. + + A new instance with the data parsed from the string. + + + + Creates a string from the INI data. + + An instance. + + A formatted string with the contents of the + instance object. + + + + Represents an error ococcurred while parsing data + + + + Configuration used to write an ini file with the proper + delimiter characters and data. + + + If the instance was created by a parser, + this instance is a copy of the used + by the parser (i.e. different objects instances) + If this instance is created programatically without using a parser, this + property returns an instance of + + + + Formats a IniData structure to an string + + + + Produces an string given + + The data to string. + Ini data. + + + Configuration used by this formatter when converting IniData + to an string + + + + Represents all data from an INI file exactly as the + class, but searching for sections and keys names is done with + a case insensitive search. + + + + Initializes an empty IniData instance. + + + + Initializes a new IniData instance using a previous + . + + + object containing the + data with the sections of the file + + + + Copies an instance of the class + + Original + + + Defines data for a Parser configuration object. + + With a configuration object you can redefine how the parser + will detect special items in the ini file by defining new regex + (e.g. you can redefine the comment regex so it just treat text as + a comment iff the comment caracter is the first in the line) + or changing the set of characters used to define elements in + the ini file (e.g. change the 'comment' caracter from ';' to '#') + You can also define how the parser should treat errors, or how liberal + or conservative should it be when parsing files with "strange" formats. + + + Default values used if an instance of + is created without specifying a configuration. + + + By default the various delimiters for the data are setted: + ';' for one-line comments + '[' ']' for delimiting a section + '=' for linking key / value pairs + + An example of well formed data with the default values: + + ;section comment
+ [section] ; section comment
+
+ ; key comment
+ key = value ;key comment
+
+ ;key2 comment
+ key2 = value
+
+
+
+ + + Copy ctor. + + + Original instance to be copied. + + + + Sets the char that defines the start of a section name. + + + Defaults to character '[' + + + + Sets the char that defines the end of a section name. + + + Defaults to character ']' + + + + Retrieving section / keys by name is done with a case-insensitive + search. + + + Defaults to false (case sensitive search) + + + + Sets the char that defines the start of a comment. + A comment spans from the comment character to the end of the line. + + + Defaults to character ';' + + + + Sets the string that defines the start of a comment. + A comment spans from the mirst matching comment string + to the end of the line. + + + Defaults to string ";" + + + + Sets the char that defines a value assigned to a key + + + Defaults to character '=' + + + + Sets the string around KeyValuesAssignmentChar + + + Defaults to string ' ' + + + + Allows having keys in the file that don't belong to any section. + i.e. allows defining keys before defining a section. + If set to false and keys without a section are defined, + the will stop with an error. + + + Defaults to true. + + + + If set to false and the finds duplicate keys in a + section the parser will stop with an error. + If set to true, duplicated keys are allowed in the file. The value + of the duplicate key will be the last value asigned to the key in the file. + + + Defaults to false. + + + + Only used if is also true + If set to true when the parser finds a duplicate key, it overrites + the previous value, so the key will always contain the value of the + last key readed in the file + If set to false the first readed value is preserved, so the key will + always contain the value of the first key readed in the file + + + Defaults to false. + + + + Gets or sets a value indicating whether duplicate keys are concatenate + together by . + + + Defaults to false. + + + + If true the instance will thrown an exception + if an error is found. + If false the parser will just stop execution and return a null value. + + + Defaults to true. + + + + If set to false and the finds a duplicate section + the parser will stop with an error. + If set to true, duplicated sections are allowed in the file, but only a + element will be created in the + collection. + + + Defaults to false. + + + + Creates a new object that is a copy of the current instance. + + + A new object that is a copy of this instance. + + 2 + +
+
diff --git a/tests/Trinity.Tests.Virtuoso/bin/Release/Models/rdf-schema.rdf b/tests/Trinity.Tests.Virtuoso/bin/Release/Models/rdf-schema.rdf new file mode 100644 index 0000000..bf17bab --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Release/Models/rdf-schema.rdf @@ -0,0 +1,130 @@ + + + + + + + Resource + The class resource, everything. + + + + + Class + The class of classes. + + + + + + subClassOf + The subject is a subclass of a class. + + + + + + + subPropertyOf + The subject is a subproperty of a property. + + + + + + + comment + A description of the subject resource. + + + + + + + label + A human-readable name for the subject. + + + + + + + domain + A domain of the subject property. + + + + + + + range + A range of the subject property. + + + + + + + seeAlso + Further information about the subject resource. + + + + + + + + isDefinedBy + The defininition of the subject resource. + + + + + + + Literal + The class of literal values, eg. textual strings and integers. + + + + + + Container + + The class of RDF containers. + + + + + ContainerMembershipProperty + The class of container membership properties, rdf:_1, rdf:_2, ..., + all of which are sub-properties of 'member'. + + + + + + member + A member of the subject resource. + + + + + + + Datatype + The class of RDF datatypes. + + + + + + + + diff --git a/tests/Trinity.Tests.Virtuoso/bin/Release/Models/rdf-syntax.rdf b/tests/Trinity.Tests.Virtuoso/bin/Release/Models/rdf-syntax.rdf new file mode 100644 index 0000000..a6815ec --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Release/Models/rdf-syntax.rdf @@ -0,0 +1,156 @@ + + + + The RDF Concepts Vocabulary (RDF) + This is the RDF Schema for the RDF vocabulary terms in the RDF Namespace, defined in RDF 1.1 Concepts. + + + + + + + HTML + The datatype of RDF literals storing fragments of HTML content + + + + + + + langString + The datatype of language-tagged string values + + + + + + + PlainLiteral + The class of plain (i.e. untyped) literal values, as used in RIF and OWL 2 + + + + + + type + The subject is an instance of a class. + + + + + + + Property + The class of RDF properties. + + + + + + Statement + + The class of RDF statements. + + + + + subject + The subject of the subject RDF statement. + + + + + + + predicate + The predicate of the subject RDF statement. + + + + + + + object + The object of the subject RDF statement. + + + + + + + Bag + The class of unordered containers. + + + + + + Seq + The class of ordered containers. + + + + + + Alt + The class of containers of alternatives. + + + + + + value + Idiomatic property used for structured values. + + + + + + + + + List + The class of RDF Lists. + + + + + + nil + The empty list, with no items in it. If the rest of a list is nil then the list has no more items in it. + + + + + first + The first item in the subject RDF list. + + + + + + + rest + The rest of the subject RDF list after the first item. + + + + + + + + XMLLiteral + The datatype of XML literal values. + + + + + + + + diff --git a/tests/Trinity.Tests.Virtuoso/bin/Release/Models/test-ntriples.nt b/tests/Trinity.Tests.Virtuoso/bin/Release/Models/test-ntriples.nt new file mode 100644 index 0000000..91b4988 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Release/Models/test-ntriples.nt @@ -0,0 +1,79 @@ +# +# Copyright World Wide Web Consortium, (Massachusetts Institute of +# Technology, Institut National de Recherche en Informatique et en +# Automatique, Keio University). +# +# All Rights Reserved. +# +# Please see the full Copyright clause at +# +# +# Test file with a variety of legal N-Triples +# +# Dave Beckett - http://purl.org/net/dajobe/ +# +# $Id: test.nt,v 1.7 2003/10/06 15:52:19 dbeckett2 Exp $ +# +##################################################################### + +# comment lines + # comment line after whitespace +# empty blank line, then one with spaces and tabs + + + . +_:anon . + _:anon . +# spaces and tabs throughout: + . + +# line ending with CR NL (ASCII 13, ASCII 10) + . + +# 2 statement lines separated by single CR (ASCII 10) + . + . + + +# All literal escapes + "simple literal" . + "backslash:\\" . + "dquote:\"" . + "newline:\n" . + "return\r" . + "tab:\t" . + +# Space is optional before final . + . + "x". + _:anon. + +# \u and \U escapes +# latin small letter e with acute symbol \u00E9 - 3 UTF-8 bytes #xC3 #A9 + "\u00E9" . +# Euro symbol \u20ac - 3 UTF-8 bytes #xE2 #x82 #xAC + "\u20AC" . +# resource18 test removed +# resource19 test removed +# resource20 test removed + +# XML Literals as Datatyped Literals + ""^^ . + " "^^ . + "x"^^ . + "\""^^ . + ""^^ . + "a "^^ . + "a c"^^ . + "a\n\nc"^^ . + "chat"^^ . +# resource28 test removed 2003-08-03 +# resource29 test removed 2003-08-03 + +# Plain literals with languages + "chat"@fr . + "chat"@en . + +# Typed Literals + "abc"^^ . +# resource33 test removed 2003-08-03 diff --git a/tests/Trinity.Tests.Virtuoso/bin/Release/Models/test-ppo.rdf b/tests/Trinity.Tests.Virtuoso/bin/Release/Models/test-ppo.rdf new file mode 100644 index 0000000..a4dcaf0 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Release/Models/test-ppo.rdf @@ -0,0 +1,102 @@ + + + + + + + + + + + Documents + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ddMMYYYY + MMddYYYY + + + + + + hhmmss + + + + + {Wahr,Falsch} + {True,False} + + + \ No newline at end of file diff --git a/tests/Trinity.Tests.Virtuoso/bin/Release/Models/test-tmo.trig b/tests/Trinity.Tests.Virtuoso/bin/Release/Models/test-tmo.trig new file mode 100644 index 0000000..c368bb9 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Release/Models/test-tmo.trig @@ -0,0 +1,1145 @@ +# +# Copyright (c) 2007 NEPOMUK Consortium +# All rights reserved, licensed under either CC-BY or BSD. +# +# You are free: +# * to Share - to copy, distribute and transmit the work +# * to Remix - to adapt the work +# Under the following conditions: +# * Attribution - You must attribute the work in the manner specified by the author +# or licensor (but not in any way that suggests that they endorse you or your use +# of the work). +# +# Redistribution and use in source and binary forms, with or without modification, +# are permitted provided that the following conditions are met: +# * Redistributions of source code must retain the above copyright notice, this +# list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this +# list of conditions and the following disclaimer in the documentation and/or +# other materials provided with the distribution. +# * Neither the names of the authors nor the names of contributors may +# be used to endorse or promote products derived from this ontology without +# specific prior written permission. +# +# THIS ONTOLOGY IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +# THIS ONTOLOGY, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +@prefix dc: . +@prefix exif: . +@prefix geo: . +@prefix protege: . +@prefix nao: . +@prefix nfo: . +@prefix nie: . +@prefix ncal: . +@prefix nco: . +@prefix dcterms: . +@prefix rdfs: . +@prefix pimo: . +@prefix nmo: . +@prefix nrl: . +@prefix tmo: . +@prefix xsd: . +@prefix rdf: . +@prefix nid3: . +@prefix nexif: . + +tmo: {tmo:TMO_Instance_PersonInvolvementRole_Creator + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Creator" . + + tmo:abilityCarrierRole + a rdf:Property ; + rdfs:domain tmo:AbilityCarrierInvolvement ; + rdfs:label "abilityCarrierRole" ; + rdfs:range tmo:AbilityCarrierRole ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:PersonInvolvement + a rdfs:Class ; + rdfs:comment "PersonInvolvement realizes n-ary associations to Persons which are realtedd to an task. The involvement is further characterized by an PersonTaskRole." ; + rdfs:label "PersonInvolvement" ; + rdfs:subClassOf rdfs:Resource , pimo:Association . + + tmo:TMO_Instance_TaskState_Running + a tmo:TaskState ; + rdfs:label "TMO_Instance_TaskState_Running" . + + tmo:SimilarityDependence + a rdfs:Class ; + rdfs:label "SimilarityDependence" ; + rdfs:subClassOf tmo:UndirectedDependency . + + tmo:PredecessorDependency + a rdfs:Class ; + rdfs:comment "In a PredecessorDependency the dependencyMemberA is the task which is to be executed before dependencyMemberB." ; + rdfs:label "PredecessorDependency" ; + rdfs:subClassOf tmo:PredecessorSuccessorDependency . + + tmo:TMO_Instance_TaskContainer_outbox + a tmo:TaskContainer ; + rdfs:label "TMO_Instance_TaskContainer_outbox" . + + tmo:dueDate + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "dueDate" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf pimo:taskDueTime , tmo:dateTime ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_Urgency_04 + a tmo:Urgency ; + rdfs:label "TMO_Instance_Urgency_04" . + + tmo:Priority + a rdfs:Class ; + rdfs:label "Priority" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:TaskContainer + a rdfs:Class ; + rdfs:label "TaskContainer" ; + rdfs:subClassOf pimo:Collection . + + tmo:Task + a rdfs:Class ; + rdfs:comment "The tmo:task is the central entitiey of the tmo. Task can range from vague things to be possibly done in e distant future to concrete things to be done in a precise forseeable manner. It is not unrealisitc to assume that knowledge worker have hundred or more tasks a day." ; + rdfs:label "Task" ; + rdfs:subClassOf pimo:Task . + + tmo:PersonInvolvementRole + a rdfs:Class ; + rdfs:comment """They further specify the type a person was related to an task. +Examples instances of AttachmentRoles are e.g.""" ; + rdfs:label "PersonInvolvementRole" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:actualCompletion + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "actualCompletion" ; + rdfs:range rdfs:Literal ; + rdfs:subPropertyOf tmo:progress ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_PersonInvolvementRole_Co-worker + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Co-worker" . + + tmo:urgency + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "urgency" ; + rdfs:range tmo:Urgency ; + rdfs:subPropertyOf tmo:timemanagement ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_TaskContainer_archive + a tmo:TaskContainer ; + rdfs:label "TMO_Instance_TaskContainer_archive" . + + tmo:dependency + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "dependency" ; + rdfs:range tmo:TaskDependency . + + tmo:TMO_Instance_Importance_10 + a tmo:Importance ; + rdfs:label "TMO_Instance_Importance_10" . + + tmo:targetStartTime + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "targetStartTime" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:targetTime , tmo:startTime ; + nrl:maxCardinality "1" . + + tmo:dependencyDescription + a rdf:Property ; + rdfs:comment "Endusers can clarify why they created a depedency." ; + rdfs:domain tmo:TaskDependency ; + rdfs:label "dependencyDescription" ; + rdfs:subPropertyOf nao:description ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_Importance_09 + a tmo:Importance ; + rdfs:label "TMO_Instance_Importance_09" . + + tmo:transmissionState + a rdf:Property ; + rdfs:domain tmo:TaskTransmission ; + rdfs:label "transmissionState" ; + rdfs:range tmo:TransmissionState ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:AbilityCarrierRole + a rdfs:Class ; + rdfs:comment "Examples instances of AbilityCarrirRoles are e.g. \"requested\", \"required\" and \"used\" which further specify the type a person was involved in." ; + rdfs:label "AbilityCarrierRole" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:TMO_Instance_TaskState_Finalized + a tmo:TaskState ; + rdfs:label "TMO_Instance_TaskState_Finalized" . + + tmo:abilityCarrier + a rdf:Property ; + rdfs:domain tmo:AbilityCarrierInvolvement ; + rdfs:label "abilityCarrier" ; + rdfs:range tmo:AbilityCarrier ; + rdfs:subPropertyOf pimo:associationMember ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:TMO_Instance_TransmissionState_Rejected_Transmitted + a tmo:TransmissionState ; + rdfs:label "TMO_Instance_TransmissionState_Rejected_Transmitted" . + + tmo:TMO_Instance_Delegability_High + a tmo:Delegability ; + rdfs:label "TMO_Instance_Delegability_High" . + + tmo:TMO_Instance_Urgency_10 + a tmo:Urgency ; + rdfs:label "TMO_Instance_Urgency_10" . + + tmo:taskId + a rdf:Property ; + rdfs:comment """The Task Identifier allows a unique identification of a task object within the range of all Nepomuk objects. +The Task Identifier is automatically generated during the creation of a task. The generation of identifiers (IDs) is a Nepomuk architecture issue (Wp2000/WP6000).""" ; + rdfs:domain tmo:Task ; + rdfs:label "taskId" ; + rdfs:range rdfs:Literal ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:TMO_Instance_Importance_01 + a tmo:Importance ; + rdfs:label "TMO_Instance_Importance_01" . + + tmo:TMO_Instance_TransmissionType_Transfer + a tmo:TransmissionType ; + rdfs:label "TMO_Instance_TransmissionType_Transfer" . + + tmo:priority + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "priority" ; + rdfs:range tmo:Priority ; + rdfs:subPropertyOf tmo:timemanagement ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_Urgency_03 + a tmo:Urgency ; + rdfs:label "TMO_Instance_Urgency_03" . + + tmo:involvedPersons + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "involvedPersons" ; + rdfs:range tmo:PersonInvolvement ; + nrl:inverseProperty tmo:involvedPersonTask . + + tmo:involvedPerson + a rdf:Property ; + rdfs:domain tmo:PersonInvolvement ; + rdfs:label "involvedPerson" ; + rdfs:range pimo:Person ; + rdfs:subPropertyOf pimo:associationMember ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:TaskTransmission + a rdfs:Class ; + rdfs:comment """On the SSD, tasks are not restricted to one person and may cross from +the PTM of one person to the PTM of another. With transmission, we +refer to the process of sending a task – from one person (sender) to one +or more other persons (receiver(s)) (see Section 5.2.1.3 Task +Transmission). Task delegation and task transfer are two special kinds of +task transmission which are described at the end of this section. In +addition, the collaborative task is realized by task transmission. +For the process of sending a task, some information is required. This +information is also modelled in the task ontology. This information is still +useful after the process of sending a task was completed. Task Delegation is a process where the sender of the task restricts the +access rights of the receiver. This includes the right to distribute further +this task and additionally the obligation to give feedback to the sender. +The person that receives a task by delegation usually has not the full +control about the task. The attributes described in the following section +have the purpose to enable such \"access rights\". The receiver will also +probably have obligations regarding what to report to whom at which +time. +In contrast, the simplest case is that all rights are granted to the receiver +and there is no feedback desired by the sender. What to do with the task +may be apparent by the organization context, or it may be left to the +receiver. This is like sending an email – but with the advantage that the +information is transferred in the \"task space\" of the participating persons.""" ; + rdfs:label "TaskTransmission" ; + rdfs:subClassOf rdfs:Resource . + + tmo:containsTask + a rdf:Property ; + rdfs:domain tmo:TaskContainer ; + rdfs:label "containsTask" ; + rdfs:range tmo:Task ; + rdfs:subPropertyOf pimo:hasPart . + + tmo:TMO_Instance_PersonInvolvementRole_Suggested + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Suggested" . + + tmo:TMO_Instance_TaskState_Archived + a tmo:TaskState ; + rdfs:label "TMO_Instance_TaskState_Archived" . + + tmo:targetTime + a rdf:Property ; + rdfs:label "targetTime" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:dateTime ; + nrl:maxCardinality "1" . + + tmo:indexPosition + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "indexPosition" ; + rdfs:range rdfs:Literal ; + nrl:maxCardinality "1" . + + tmo:dependencyType + a rdf:Property ; + rdfs:label "dependencyType" ; + rdfs:range rdfs:Resource ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:targetEndTime + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "targetEndTime" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:targetTime , tmo:endTime ; + nrl:maxCardinality "1" . + + tmo:PredecessorSuccessorDependency + a rdfs:Class ; + rdfs:comment "The PredecessorSuccessorDependency enables a directed relation between task. By means of the concrete sublcasses one can further distinguish from which point of view this relation is created." ; + rdfs:label "PredecessorSuccessorDependency" ; + rdfs:subClassOf tmo:TaskDependency ; + protege:role "abstract" . + + tmo:TMO_Instance_Importance_08 + a tmo:Importance ; + rdfs:label "TMO_Instance_Importance_08" . + + tmo:attachmentReference + a rdf:Property ; + rdfs:domain tmo:Attachment ; + rdfs:label "attachmentReference" ; + rdfs:range rdfs:Resource ; + rdfs:subPropertyOf pimo:associationMember ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:TMO_Instance_Delegability_Never + a tmo:Delegability ; + rdfs:label "TMO_Instance_Delegability_Never" . + + tmo:superTask + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "superTask" ; + rdfs:range tmo:Task ; + rdfs:subPropertyOf pimo:partOf , tmo:taskReference ; + nrl:inverseProperty tmo:subTask ; + nrl:maxCardinality "1" . + + tmo:taskDescription + a rdf:Property ; + rdfs:comment """The task description helps users to understand the goal and the proceeding of a task. It can also describe the context of a task. The task description is composed at minimum of a summary of what is done to reach the goal. The task description is the main source for identifying related information, e.g., suitable patterns. +A Task Description can be either an informal, described textual content (?TextualDescription) or it can be a more formally structured representation (àFormalDescription). +Technology considerations: Informal descriptions allow for text similarity processing, a formal description allows for applying case based similarity measures.""" ; + rdfs:domain tmo:Task ; + rdfs:label "taskDescription" ; + rdfs:subPropertyOf nao:description ; + nrl:maxCardinality "1" . + + tmo:SuperSubTaskDependency + a rdfs:Class ; + rdfs:comment "By means of the SuperSubTaskDependency one can further describe the subtask-supertask relation .e.g by an descriptin. This enables an n-ary relation between subtask and supertask." ; + rdfs:label "SuperSubTaskDependency" ; + rdfs:subClassOf tmo:TaskDependency . + + tmo:contextTask + a rdf:Property ; + rdfs:label "contextTask" ; + rdfs:range tmo:Task ; + nrl:inverseProperty tmo:contextThread ; + nrl:maxCardinality "1" . + + tmo:SuccessorDependency + a rdfs:Class ; + rdfs:comment "In a SuccessorrDependency the dependencyMemberA is the task which is to be executed after dependencyMemberB." ; + rdfs:label "SuccessorDependency" ; + rdfs:subClassOf tmo:PredecessorSuccessorDependency . + + tmo:stateTypeRole + a rdf:Property ; + rdfs:label "stateTypeRole" ; + rdfs:range rdfs:Resource ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_TransmissionState_NotTransmitted + a tmo:TransmissionState ; + rdfs:label "TMO_Instance_TransmissionState_NotTransmitted" . + + tmo:TMO_Instance_Urgency_06 + a tmo:Urgency ; + rdfs:label "TMO_Instance_Urgency_06" . + + tmo:abilityCarrierInvolvement + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "abilityCarrierInvolvement" ; + rdfs:range tmo:AbilityCarrierInvolvement ; + nrl:inverseProperty tmo:abilityCarrierTask . + + tmo:TMO_Instance_AbilityCarrierRole_Required + a tmo:AbilityCarrierRole ; + rdfs:label "TMO_Instance_AbilityCarrierRole_Required" . + + tmo:actualStartTime + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "actualStartTime" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:actualTime , tmo:startTime ; + nrl:maxCardinality "1" . + + tmo:transmissionType + a rdf:Property ; + rdfs:domain tmo:TaskTransmission ; + rdfs:label "transmissionType" ; + rdfs:range tmo:TransmissionType ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:taskTransmission + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "taskTransmission" ; + rdfs:range tmo:TaskTransmission ; + nrl:inverseProperty tmo:transmissionTask . + + tmo:TMO_Instance_PersonInvolvementRole_Executor + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Executor" . + + tmo:targetCompletion + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "targetCompletion" ; + rdfs:range rdfs:Literal ; + rdfs:subPropertyOf tmo:progress ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_Delegability_Medium + a tmo:Delegability ; + rdfs:label "TMO_Instance_Delegability_Medium" . + + tmo:AgentAbilityCarrier + a rdfs:Class ; + rdfs:label "AgentAbilityCarrier" ; + rdfs:subClassOf tmo:AbilityCarrier ; + protege:role "abstract" . + + tmo:transmissionTask + a rdf:Property ; + rdfs:domain tmo:TaskTransmission ; + rdfs:label "transmissionTask" ; + rdfs:range tmo:Task ; + rdfs:subPropertyOf tmo:taskReference ; + nrl:inverseProperty tmo:taskTransmission ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:Attachment + a rdfs:Class ; + rdfs:comment "By means of attachments, references to other resources can be established. Resources are information objects. Every Thing, which can be referenced, on the SSD is an information object. In contrast to the usual SSD references/associations, here additionally information can be specified. Further metadata about the role an attachment plays can be stated by means of instances of AttachmentRole. It can be expressed what the Role of attachment is e.g., regarding \"desired/requested\" or \"required\" or \"potentially useful / somehow related\" or \"used/produced/achieved\". The reference property models the actual link to the attached piece of information." ; + rdfs:label "Attachment" ; + rdfs:subClassOf rdfs:Resource , pimo:Association . + + tmo:TMO_Instance_TaskPrivacy_Private + a tmo:TaskPrivacyState ; + rdfs:label "TMO_Instance_TaskPrivacy_Private" . + + tmo:TMO_Instance_Importance_07 + a tmo:Importance ; + rdfs:label "TMO_Instance_Importance_07" . + + tmo:AssociationDependency + a rdfs:Class ; + rdfs:label "AssociationDependency" ; + rdfs:subClassOf tmo:UndirectedDependency . + + tmo:nextReviewIntervall + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "nextReviewIntervall" ; + rdfs:range xsd:integer ; + nrl:maxCardinality "1" . + + tmo:transmissionFrom + a rdf:Property ; + rdfs:domain tmo:TaskTransmission ; + rdfs:label "transmissionFrom" ; + rdfs:range pimo:Person ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:taskState + a rdf:Property ; + rdfs:comment "The task state describes the current state of the task as described in Section 5.2.7." ; + rdfs:domain tmo:Task ; + rdfs:label "taskState" ; + rdfs:range tmo:TaskState ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:delegability + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "delegability" ; + rdfs:range tmo:Delegability ; + rdfs:subPropertyOf tmo:timemanagement ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_PersonInvolvementRole_Related + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Related" . + + tmo:TMO_Instance_TaskContainer_inbox + a tmo:TaskContainer ; + rdfs:label "TMO_Instance_TaskContainer_inbox" . + + tmo:TMO_Instance_AttachmentRole_Required + a tmo:AttachmentRole ; + rdfs:label "TMO_Instance_AttachmentRole_Required" . + + tmo:taskPrivacyState + a rdf:Property ; + rdfs:comment """For the separation between professional and private purpose of a task, this attribute provides with the values \"professional/private\" a high level separation of privacy in terms of setting distribution rights to other users for the task. +This separation may arise as a general Nepomuk issue and may therefore be handled in conjunction with a privacy preserving SSD architecture.""" ; + rdfs:domain tmo:Task ; + rdfs:label "taskPrivacyState" ; + rdfs:range tmo:TaskPrivacyState ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" . + + tmo:taskName + a rdf:Property ; + rdfs:comment "The Task Name helps the user to identify a task in a list. It should be expressive enough to give a meaningful recognition. Details should be written in the description attribute instead. A name attribute is not allowed to contain line breaks." ; + rdfs:domain tmo:Task ; + rdfs:label "taskName" ; + rdfs:range rdfs:Literal ; + rdfs:subPropertyOf nao:prefLabel ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_AbilityCarrierRole_Requested + a tmo:AbilityCarrierRole ; + rdfs:label "TMO_Instance_AbilityCarrierRole_Requested" . + + tmo:TMO_Instance_PersonInvolvementRole_Controller + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Controller" . + + tmo:TMO_Instance_PersonInvolvementRole_Delegate + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Delegate" . + + tmo:transmissionStateChangesFrom + a rdf:Property ; + rdfs:domain tmo:TransmissionState ; + rdfs:label "transmissionStateChangesFrom" ; + rdfs:range tmo:TransmissionState ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" . + + tmo:TransmissionState + a rdfs:Class ; + rdfs:comment "States a task can go through during transmission of an task." ; + rdfs:label "TransmissionState" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:transmissionStateChangesTo + a rdf:Property ; + rdfs:domain tmo:TransmissionState ; + rdfs:label "transmissionStateChangesTo" ; + rdfs:range tmo:TransmissionState ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_PersonInvolvementRole_ExternalObserver + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_ExternalObserver" . + + tmo:TMO_Instance_Urgency_05 + a tmo:Urgency ; + rdfs:label "TMO_Instance_Urgency_05" . + + tmo:TaskDependency + a rdfs:Class ; + rdfs:comment """Between the tasks, further dependencies may exist. These dependencies allow for a graph network structure. For ease of use, dependencies should not be too frequent, otherwise the primarily character of a hierarchy would be diminished and a consequent graph representation would become considerable. However, such a graph representation has other drawbacks, the user is likely to loose oversight, tree structures are more helpful in structuring the work. + +A dependency relation is characterized by the type of the relation and by an additional description. There are different possibilities for dependency relations between tasks.""" ; + rdfs:label "TaskDependency" ; + rdfs:subClassOf rdfs:Resource , pimo:Association ; + protege:role "abstract" . + + tmo:TMO_Instance_TaskState_Completed + a tmo:TaskState ; + rdfs:label "TMO_Instance_TaskState_Completed" . + + tmo:TMO_Instance_Importance_06 + a tmo:Importance ; + rdfs:label "TMO_Instance_Importance_06" . + + tmo:attachmentRole + a rdf:Property ; + rdfs:domain tmo:Attachment ; + rdfs:label "attachmentRole" ; + rdfs:range tmo:AttachmentRole ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_TaskPrivacy_Professional + a tmo:TaskPrivacyState ; + rdfs:label "TMO_Instance_TaskPrivacy_Professional" . + + tmo:TMO_Instance_TaskState_Terminated + a tmo:TaskState ; + rdfs:label "TMO_Instance_TaskState_Terminated" . + + tmo:TMO_Instance_PersonInvolvementRole_Owner + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Owner" . + + tmo:TMO_Instance_AttachmentRole_Desired_Requested + a tmo:AttachmentRole ; + rdfs:label "TMO_Instance_AttachmentRole_Desired_Requested" . + + tmo:involvedPersonTask + a rdf:Property ; + rdfs:domain tmo:PersonInvolvement ; + rdfs:label "involvedPersonTask" ; + rdfs:range tmo:Task ; + rdfs:subPropertyOf pimo:associationMember ; + nrl:inverseProperty tmo:involvedPersons ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_TransmissionState_Accepted_NotTransmitted + a tmo:TransmissionState ; + rdfs:label "TMO_Instance_TransmissionState_Accepted_NotTransmitted" . + + tmo:TMO_Instance_PersonInvolvementRole_Analyst + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Analyst" . + + tmo:logEntry + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "logEntry" ; + rdfs:range rdfs:Resource . + + tmo:transmissionTo + a rdf:Property ; + rdfs:domain tmo:TaskTransmission ; + rdfs:label "transmissionTo" ; + rdfs:range pimo:Person ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:Importance + a rdfs:Class ; + rdfs:label "Importance" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:TMO_Instance_TransmissionType_Join + a tmo:TransmissionType ; + rdfs:label "TMO_Instance_TransmissionType_Join" . + + tmo:Delegability + a rdfs:Class ; + rdfs:label "Delegability" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:lastReviewDate + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "lastReviewDate" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:dateTime ; + nrl:maxCardinality "1" . + + tmo:Role + a rdfs:Class ; + rdfs:comment "examples: Architect, Developer, ..." ; + rdfs:label "Role" ; + rdfs:subClassOf tmo:AbilityCarrier . + + tmo:timemanagement + a rdf:Property ; + rdfs:label "timemanagement" ; + rdfs:range rdfs:Literal ; + nrl:maxCardinality "1" . + + tmo:taskGoal + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "taskGoal" ; + rdfs:range rdfs:Resource . + + tmo:dependencyMemberA + a rdf:Property ; + rdfs:comment "The semantic of this relation is defined in the sublclass of undirected Dependency on which this property is stated. (The subject of the statment where this property is expressed)" ; + rdfs:domain tmo:TaskDependency ; + rdfs:label "dependencyMemberA" ; + rdfs:range tmo:Task ; + rdfs:subPropertyOf tmo:taskReference , pimo:associationMember ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:startTime + a rdf:Property ; + rdfs:label "startTime" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:dateTime ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_Urgency_08 + a tmo:Urgency ; + rdfs:label "TMO_Instance_Urgency_08" . + + tmo:taskStateChangesFrom + a rdf:Property ; + rdfs:domain tmo:TaskState ; + rdfs:label "taskStateChangesFrom" ; + rdfs:range tmo:TaskState ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" . + + tmo:receiveDateTime + a rdf:Property ; + rdfs:domain tmo:TaskTransmission ; + rdfs:label "receiveDateTime" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:dateTime ; + nrl:maxCardinality "1" . + + tmo:createdBy + a rdf:Property ; + rdfs:domain tmo:Attachment ; + rdfs:label "createdBy" ; + rdfs:range pimo:Person ; + nrl:maxCardinality "1" . + + tmo:progress + a rdf:Property ; + rdfs:label "progress" ; + rdfs:range rdfs:Literal ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_AbilityCarrierRole_Used + a tmo:AbilityCarrierRole ; + rdfs:label "TMO_Instance_AbilityCarrierRole_Used" . + + tmo:TMO_Instance_Importance_05 + a tmo:Importance ; + rdfs:label "TMO_Instance_Importance_05" . + + tmo:TMO_Instance_TaskContainer_activetasks + a tmo:TaskContainer ; + rdfs:label "TMO_Instance_TaskContainer_activetasks" . + + tmo:sendDateTime + a rdf:Property ; + rdfs:domain tmo:TaskTransmission ; + rdfs:label "sendDateTime" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:dateTime ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_PersonInvolvementRole_Collaborator + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Collaborator" . + + tmo:TMO_Instance_TaskState_Suspended + a tmo:TaskState ; + rdfs:label "TMO_Instance_TaskState_Suspended" . + + tmo:AbilityCarrierInvolvement + a rdfs:Class ; + rdfs:comment "The class AbilityCarrier_Involvement ties together an AbilityCarrier with an AbilityCarrier_Role. This is a role based modelling approach. An n-ary relation is realized." ; + rdfs:label "AbilityCarrierInvolvement" ; + rdfs:subClassOf rdfs:Resource , pimo:Association . + + tmo:endTime + a rdf:Property ; + rdfs:label "endTime" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:dateTime ; + nrl:maxCardinality "1" . + + tmo:dependencyMemberB + a rdf:Property ; + rdfs:comment "The semantic of this relation is defined in the sublclass of undirected Dependency on which this property is stated. (The subject of the statment where this property is expressed)" ; + rdfs:domain tmo:TaskDependency ; + rdfs:label "dependencyMemberB" ; + rdfs:range tmo:Task ; + rdfs:subPropertyOf tmo:taskReference , pimo:associationMember ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:TMO_Instance_Priority_High + a tmo:Priority ; + rdfs:label "TMO_Instance_Priority_High" . + + tmo:TMO_Instance_PersonInvolvementRole_Observer + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Observer" . + + tmo:TMO_Instance_Delegability_Unrestricted + a tmo:Delegability ; + rdfs:label "TMO_Instance_Delegability_Unrestricted" . + + tmo:TMO_Instance_Priority_Medium + a tmo:Priority ; + rdfs:label "TMO_Instance_Priority_Medium" . + + tmo:TMO_Instance_Delegability_Low + a tmo:Delegability ; + rdfs:label "TMO_Instance_Delegability_Low" . + + tmo:Interdependence + a rdfs:Class ; + rdfs:label "Interdependence" ; + rdfs:subClassOf tmo:UndirectedDependency . + + tmo:involvedPersonRole + a rdf:Property ; + rdfs:domain tmo:PersonInvolvement ; + rdfs:label "involvedPersonRole" ; + rdfs:range tmo:PersonInvolvementRole ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:AttachmentRole + a rdfs:Class ; + rdfs:comment "AttachmentRoles further specify the type of how an attachment relates to a task. Example instances of AttachmentRoles are e.g. \"desired_request\", \"required\" and \"used\"." ; + rdfs:label "AttachmentRole" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:TMO_Instance_Urgency_07 + a tmo:Urgency ; + rdfs:label "TMO_Instance_Urgency_07" . + + tmo:TMO_Instance_PersonInvolvementRole_Reviewer + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Reviewer" . + + tmo:TransmissionType + a rdfs:Class ; + rdfs:comment "By means of the TransmissionType one can distinguish several different types which might imply a different business logic. e.g. delegation can mean that the results of the task fulfillment care to be reported back to the sender of the task." ; + rdfs:label "TransmissionType" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:actualEndTime + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "actualEndTime" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:endTime , tmo:actualTime ; + nrl:maxCardinality "1" . + + tmo:subTask + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "subTask" ; + rdfs:range tmo:Task ; + rdfs:subPropertyOf pimo:hasPart ; + nrl:inverseProperty tmo:superTask . + + tmo:TMO_Instance_TransmissionType_Delegation + a tmo:TransmissionType ; + rdfs:label "TMO_Instance_TransmissionType_Delegation" . + + tmo:TMO_Instance_Importance_04 + a tmo:Importance ; + rdfs:label "TMO_Instance_Importance_04" . + + tmo:TaskState + a rdfs:Class ; + rdfs:comment """The task state property allows tracking a task during its lifecycle. Initially the state is just \"created\". +The TaskState class was modeled so that for each state can be set which the typical prior and posterior states are. This has the advantage that e.g. a UI can retrieve the allowed states at runtime from the ontology; rather can having this potentially changing knowledge hard coded. But the prior and posterior states are only defaults; the human user is always free to change the state.""" ; + rdfs:label "TaskState" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:taskSource + a rdf:Property ; + rdfs:comment "here can be stated from which sources a task was derived. e.g from another task or from an task pattern" ; + rdfs:domain tmo:Task ; + rdfs:label "taskSource" ; + rdfs:range rdfs:Resource ; + rdfs:subPropertyOf tmo:taskReference ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_Urgency_02 + a tmo:Urgency ; + rdfs:label "TMO_Instance_Urgency_02" . + + tmo:TMO_Instance_TransmissionState_Accepted_Transmitted + a tmo:TransmissionState ; + rdfs:label "TMO_Instance_TransmissionState_Accepted_Transmitted" . + + tmo:TMO_Instance_TaskState_New + a tmo:TaskState ; + rdfs:label "TMO_Instance_TaskState_New" . + + tmo:Urgency + a rdfs:Class ; + rdfs:label "Urgency" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:StateTypeRole + a rdfs:Class ; + rdfs:comment "StateTypeRole is an abstract class which subsumes various other classes which represent \"states\" or roles e.g. in role based modelling conpetualisations." ; + rdfs:label "StateTypeRole" ; + rdfs:subClassOf rdfs:Resource . + + tmo:TMO_Instance_TaskContainer_trashtasks + a tmo:TaskContainer ; + rdfs:label "TMO_Instance_TaskContainer_trashtasks" . + + tmo:contextThread + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "contextThread" ; + rdfs:range ; + nrl:inverseProperty tmo:contextTask ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_AttachmentRole_Used + a tmo:AttachmentRole ; + rdfs:label "TMO_Instance_AttachmentRole_Used" . + + tmo:abilityCarrierTask + a rdf:Property ; + rdfs:domain tmo:AbilityCarrierInvolvement ; + rdfs:label "abilityCarrierTask" ; + rdfs:range tmo:Task ; + rdfs:subPropertyOf pimo:associationMember ; + nrl:inverseProperty tmo:abilityCarrierInvolvement ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_TransmissionState_Rejected_NotTransmitted + a tmo:TransmissionState ; + rdfs:label "TMO_Instance_TransmissionState_Rejected_NotTransmitted" . + + tmo:TMO_Instance_Priority_Low + a tmo:Priority ; + rdfs:label "TMO_Instance_Priority_Low" . + + tmo:TMO_Instance_TransmissionState_Transmitted + a tmo:TransmissionState ; + rdfs:label "TMO_Instance_TransmissionState_Transmitted" . + + tmo:TMO_Instance_Importance_03 + a tmo:Importance ; + rdfs:label "TMO_Instance_Importance_03" . + + tmo:TMO_Instance_AttachmentRole_Related + a tmo:AttachmentRole ; + rdfs:label "TMO_Instance_AttachmentRole_Related" . + + tmo:taskReference + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "taskReference" ; + rdfs:range tmo:Task ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_PersonInvolvementRole_Involved + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Involved" . + + tmo:AbilityCarrier + a rdfs:Class ; + rdfs:comment """AbilityCarrier is an abstract class which circumferences all entities which can take action or which are somehow involved in tasks. +This is in other task conceptualizations rather named \"actor\". But here it is named AbilityCarrier because it is not neccessarily \"active\". + +The execution of a task relies on certain abilities. The abstract concept of +Abilitiy_Carriers circumference all those more concrete concepts +of which one can think of while working on tasks. Using this abstract +class enables to substitute such Ability Carrier's in the process of +generating patterns from task instances and vice versa in the process of +instantiating task instances from patterns without violating the schema. +With this attribute, a series of ability carrying entities (Person, Role, +Skill, OrganizationalUnit, InformalDescribedAbility) +and the role of involvement (required, request, used) is enabled. The role +hereby allows specifying how the ability carrying entity is or was +involved.""" ; + rdfs:label "AbilityCarrier" ; + rdfs:subClassOf rdfs:Resource ; + protege:role "abstract" . + + tmo:importance + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "importance" ; + rdfs:range tmo:Importance ; + rdfs:subPropertyOf tmo:timemanagement ; + nrl:maxCardinality "1" . + + tmo:subTaskOrdering + a rdf:Property ; + rdfs:comment "Ordering of the subtasks listed in the tmo:subTasks property of this Task. This is only for ordering/sorting in GUIs, the semantic relation is defined in subTasks, and if this and subTasks differ, subTasks is the correct list." ; + rdfs:domain tmo:Task ; + rdfs:label "subTaskOrdering" ; + rdfs:range rdf:List ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_Urgency_01 + a tmo:Urgency ; + rdfs:label "TMO_Instance_Urgency_01" . + + tmo:dependencyOrderNumber + a rdf:Property ; + rdfs:domain tmo:TaskDependency ; + rdfs:label "dependencyOrderNumber" ; + rdfs:range xsd:int ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:actualTime + a rdf:Property ; + rdfs:label "actualTime" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:dateTime ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_PersonInvolvementRole_Initiator + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Initiator" . + + tmo:dateTime + a rdf:Property ; + rdfs:comment "dateTime subsumes various properties with Range XMLSchema:dateTime. If possible they are further grouped by \"abstract\" properties." ; + rdfs:label "dateTime" ; + rdfs:range xsd:dateTime ; + nrl:maxCardinality "1" . + + tmo:UndirectedDependency + a rdfs:Class ; + rdfs:comment "A symmetric relations between task." ; + rdfs:label "UndirectedDependency" ; + rdfs:subClassOf tmo:TaskDependency . + + tmo:attachment + a rdf:Property ; + rdfs:comment "connects a Task with an Attachment object. Attachments are associations of Things." ; + rdfs:domain tmo:Task ; + rdfs:label "attachment" ; + rdfs:range tmo:Attachment ; + nrl:inverseProperty tmo:attachmentTask . + + tmo:attachmentTask + a rdf:Property ; + rdfs:comment "Inverse of attachment, connects an Attachment Association to the associated Task. Is required for every instance of Attachment." ; + rdfs:domain tmo:Attachment ; + rdfs:label "attachmentTask" ; + rdfs:range tmo:Task ; + rdfs:subPropertyOf pimo:associationMember ; + nrl:inverseProperty tmo:attachment ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_PersonInvolvementRole_Receiver + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Receiver" . + + tmo:TMO_Instance_TaskState_Deleted + a tmo:TaskState ; + rdfs:label "TMO_Instance_TaskState_Deleted" . + + tmo:taskStateChangesTo + a rdf:Property ; + rdfs:domain tmo:TaskState ; + rdfs:label "taskStateChangesTo" ; + rdfs:range tmo:TaskState ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" . + + tmo:TaskPrivacyState + a rdfs:Class ; + rdfs:comment """Privacy Status serves for the separation between a professional and a private purpose of a task. This attribute provides with the values \"professional/private\" a high-level separation of privacy in terms of setting distribution and access +rights to other users for the task. +This separation may arise as a general Nepomuk issue and may therefore be handled in conjunction with a privacy preserving SSD architecture.""" ; + rdfs:label "TaskPrivacyState" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:TMO_Instance_Urgency_09 + a tmo:Urgency ; + rdfs:label "TMO_Instance_Urgency_09" . + + tmo:TMO_Instance_Importance_02 + a tmo:Importance ; + rdfs:label "TMO_Instance_Importance_02" . + + tmo:TMO_Instance_PersonInvolvementRole_InternalObserver + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_InternalObserver" . + + tmo:Skill + a rdfs:Class ; + rdfs:comment "examples are e.g. technologies like Java, XML, ..." ; + rdfs:label "Skill" ; + rdfs:subClassOf tmo:AbilityCarrier . +} + + {tmo: a nrl:Ontology ; + nao:creator ; + nao:hasDefaultNamespace + "http://www.semanticdesktop.org/ontologies/2008/05/20/tmo#" ; + nao:hasDefaultNamespaceAbbreviation + "tmo" ; + nao:lastModified "2009-08-14T10:04:25.546Z" ; + nao:status "Unstable" ; + nao:updatable "0 " ; + nao:version "0.9.0" ; + nao:prefLabel "Task Management Ontology" ; + nao:description "The TMO Ontology can be used to describe personal tasks of individuals, also known as to-do lists. It is based on RDF and NRL, the Nepomuk Representational Language and other Semantic Web ontologies." . + + + a nrl:GraphMetadata ; + nrl:coreGraphMetadataFor + tmo: . +} + diff --git a/tests/Trinity.Tests.Virtuoso/bin/Release/Models/test-vocab.rdf b/tests/Trinity.Tests.Virtuoso/bin/Release/Models/test-vocab.rdf new file mode 100644 index 0000000..b295ae6 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Release/Models/test-vocab.rdf @@ -0,0 +1,39 @@ + + + + + + + Animal + An animal + + + + + Horse + A Horse + + + + + + consumes + Something an animal consumes. + + + + + + consumes + Something an animal consumes. + + + + + diff --git a/tests/Trinity.Tests.Virtuoso/bin/Release/Newtonsoft.Json.xml b/tests/Trinity.Tests.Virtuoso/bin/Release/Newtonsoft.Json.xml new file mode 100644 index 0000000..2ef7a77 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Release/Newtonsoft.Json.xml @@ -0,0 +1,10912 @@ + + + + Newtonsoft.Json + + + + + Represents a BSON Oid (object id). + + + + + Gets or sets the value of the Oid. + + The value of the Oid. + + + + Initializes a new instance of the class. + + The Oid value. + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized BSON data. + + + + + Gets or sets a value indicating whether binary data reading should be compatible with incorrect Json.NET 3.5 written binary. + + + true if binary data reading will be compatible with incorrect Json.NET 3.5 written binary; otherwise, false. + + + + + Gets or sets a value indicating whether the root object will be read as a JSON array. + + + true if the root object will be read as a JSON array; otherwise, false. + + + + + Gets or sets the used when reading values from BSON. + + The used when reading values from BSON. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + if set to true the root object will be read as a JSON array. + The used when reading values from BSON. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + if set to true the root object will be read as a JSON array. + The used when reading values from BSON. + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating BSON data. + + + + + Gets or sets the used when writing values to BSON. + When set to no conversion will occur. + + The used when writing values to BSON. + + + + Initializes a new instance of the class. + + The to write to. + + + + Initializes a new instance of the class. + + The to write to. + + + + Flushes whatever is in the buffer to the underlying and also flushes the underlying stream. + + + + + Writes the end. + + The token. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + + + + Writes the beginning of a JSON array. + + + + + Writes the beginning of a JSON object. + + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Closes this writer. + If is set to true, the underlying is also closed. + If is set to true, the JSON is auto-completed. + + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value that represents a BSON object id. + + The Object ID value to write. + + + + Writes a BSON regex. + + The regex pattern. + The regex options. + + + + Specifies how constructors are used when initializing objects during deserialization by the . + + + + + First attempt to use the public default constructor, then fall back to a single parameterized constructor, then to the non-public default constructor. + + + + + Json.NET will use a non-public default constructor before falling back to a parameterized constructor. + + + + + Converts a binary value to and from a base 64 string value. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from JSON and BSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Creates a custom object. + + The object type to convert. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Creates an object which will then be populated by the serializer. + + Type of the object. + The created object. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Gets a value indicating whether this can write JSON. + + + true if this can write JSON; otherwise, false. + + + + + Converts a to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified value type. + + Type of the value. + + true if this instance can convert the specified value type; otherwise, false. + + + + + Converts a to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified value type. + + Type of the value. + + true if this instance can convert the specified value type; otherwise, false. + + + + + Provides a base class for converting a to and from JSON. + + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a F# discriminated union type to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts an Entity Framework to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts an to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Gets a value indicating whether this can write JSON. + + + true if this can write JSON; otherwise, false. + + + + + Converts a to and from the ISO 8601 date format (e.g. "2008-04-12T12:53Z"). + + + + + Gets or sets the date time styles used when converting a date to and from JSON. + + The date time styles used when converting a date to and from JSON. + + + + Gets or sets the date time format used when converting a date to and from JSON. + + The date time format used when converting a date to and from JSON. + + + + Gets or sets the culture used when converting a date to and from JSON. + + The culture used when converting a date to and from JSON. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Converts a to and from a JavaScript Date constructor (e.g. new Date(52231943)). + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing property value of the JSON that is being converted. + The calling serializer. + The object value. + + + + Converts a to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from JSON and BSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts an to and from its name string value. + + + + + Gets or sets a value indicating whether the written enum text should be camel case. + The default value is false. + + true if the written enum text will be camel case; otherwise, false. + + + + Gets or sets a value indicating whether integer values are allowed when deserializing. + The default value is true. + + true if integers are allowed when deserializing; otherwise, false. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + true if the written enum text will be camel case; otherwise, false. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from Unix epoch time + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing property value of the JSON that is being converted. + The calling serializer. + The object value. + + + + Converts a to and from a string (e.g. "1.2.3.4"). + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing property value of the JSON that is being converted. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts XML to and from JSON. + + + + + Gets or sets the name of the root element to insert when deserializing to XML if the JSON structure has produced multiple root elements. + + The name of the deserialized root element. + + + + Gets or sets a flag to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + true if the array attribute is written to the XML; otherwise, false. + + + + Gets or sets a value indicating whether to write the root JSON object. + + true if the JSON root object is omitted; otherwise, false. + + + + Writes the JSON representation of the object. + + The to write to. + The calling serializer. + The value. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Checks if the is a namespace attribute. + + Attribute name to test. + The attribute name prefix if it has one, otherwise an empty string. + true if attribute name is for a namespace attribute, otherwise false. + + + + Determines whether this instance can convert the specified value type. + + Type of the value. + + true if this instance can convert the specified value type; otherwise, false. + + + + + Specifies how dates are formatted when writing JSON text. + + + + + Dates are written in the ISO 8601 format, e.g. "2012-03-21T05:40Z". + + + + + Dates are written in the Microsoft JSON format, e.g. "\/Date(1198908717056)\/". + + + + + Specifies how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON text. + + + + + Date formatted strings are not parsed to a date type and are read as strings. + + + + + Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . + + + + + Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . + + + + + Specifies how to treat the time value when converting between string and . + + + + + Treat as local time. If the object represents a Coordinated Universal Time (UTC), it is converted to the local time. + + + + + Treat as a UTC. If the object represents a local time, it is converted to a UTC. + + + + + Treat as a local time if a is being converted to a string. + If a string is being converted to , convert to a local time if a time zone is specified. + + + + + Time zone information should be preserved when converting. + + + + + Specifies default value handling options for the . + + + + + + + + + Include members where the member value is the same as the member's default value when serializing objects. + Included members are written to JSON. Has no effect when deserializing. + + + + + Ignore members where the member value is the same as the member's default value when serializing objects + so that it is not written to JSON. + This option will ignore all default values (e.g. null for objects and nullable types; 0 for integers, + decimals and floating point numbers; and false for booleans). The default value ignored can be changed by + placing the on the property. + + + + + Members with a default value but no JSON will be set to their default value when deserializing. + + + + + Ignore members where the member value is the same as the member's default value when serializing objects + and set members to their default value when deserializing. + + + + + Specifies float format handling options when writing special floating point numbers, e.g. , + and with . + + + + + Write special floating point values as strings in JSON, e.g. "NaN", "Infinity", "-Infinity". + + + + + Write special floating point values as symbols in JSON, e.g. NaN, Infinity, -Infinity. + Note that this will produce non-valid JSON. + + + + + Write special floating point values as the property's default value in JSON, e.g. 0.0 for a property, null for a of property. + + + + + Specifies how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Floating point numbers are parsed to . + + + + + Floating point numbers are parsed to . + + + + + Specifies formatting options for the . + + + + + No special formatting is applied. This is the default. + + + + + Causes child objects to be indented according to the and settings. + + + + + Provides an interface for using pooled arrays. + + The array type content. + + + + Rent an array from the pool. This array must be returned when it is no longer needed. + + The minimum required length of the array. The returned array may be longer. + The rented array from the pool. This array must be returned when it is no longer needed. + + + + Return an array to the pool. + + The array that is being returned. + + + + Provides an interface to enable a class to return line and position information. + + + + + Gets a value indicating whether the class can return line information. + + + true if and can be provided; otherwise, false. + + + + + Gets the current line number. + + The current line number or 0 if no line information is available (for example, when returns false). + + + + Gets the current line position. + + The current line position or 0 if no line information is available (for example, when returns false). + + + + Instructs the how to serialize the collection. + + + + + Gets or sets a value indicating whether null items are allowed in the collection. + + true if null items are allowed in the collection; otherwise, false. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a flag indicating whether the array can contain null items. + + A flag indicating whether the array can contain null items. + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Instructs the to use the specified constructor when deserializing that object. + + + + + Instructs the how to serialize the object. + + + + + Gets or sets the id. + + The id. + + + + Gets or sets the title. + + The title. + + + + Gets or sets the description. + + The description. + + + + Gets or sets the collection's items converter. + + The collection's items converter. + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonContainer(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonContainer(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets a value that indicates whether to preserve object references. + + + true to keep object reference; otherwise, false. The default is false. + + + + + Gets or sets a value that indicates whether to preserve collection's items references. + + + true to keep collection's items object references; otherwise, false. The default is false. + + + + + Gets or sets the reference loop handling used when serializing the collection's items. + + The reference loop handling. + + + + Gets or sets the type name handling used when serializing the collection's items. + + The type name handling. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Provides methods for converting between .NET types and JSON types. + + + + + + + + Gets or sets a function that creates default . + Default settings are automatically used by serialization methods on , + and and on . + To serialize without using any default settings create a with + . + + + + + Represents JavaScript's boolean value true as a string. This field is read-only. + + + + + Represents JavaScript's boolean value false as a string. This field is read-only. + + + + + Represents JavaScript's null as a string. This field is read-only. + + + + + Represents JavaScript's undefined as a string. This field is read-only. + + + + + Represents JavaScript's positive infinity as a string. This field is read-only. + + + + + Represents JavaScript's negative infinity as a string. This field is read-only. + + + + + Represents JavaScript's NaN as a string. This field is read-only. + + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation using the specified. + + The value to convert. + The format the date will be converted to. + The time zone handling when the date is converted to a string. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation using the specified. + + The value to convert. + The format the date will be converted to. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + The string delimiter character. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + The string delimiter character. + The string escape handling. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Serializes the specified object to a JSON string. + + The object to serialize. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using formatting. + + The object to serialize. + Indicates how the output should be formatted. + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using a collection of . + + The object to serialize. + A collection of converters used while serializing. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using formatting and a collection of . + + The object to serialize. + Indicates how the output should be formatted. + A collection of converters used while serializing. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using . + + The object to serialize. + The used to serialize the object. + If this is null, default serialization settings will be used. + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using a type, formatting and . + + The object to serialize. + The used to serialize the object. + If this is null, default serialization settings will be used. + + The type of the value being serialized. + This parameter is used when is to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using formatting and . + + The object to serialize. + Indicates how the output should be formatted. + The used to serialize the object. + If this is null, default serialization settings will be used. + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using a type, formatting and . + + The object to serialize. + Indicates how the output should be formatted. + The used to serialize the object. + If this is null, default serialization settings will be used. + + The type of the value being serialized. + This parameter is used when is to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + A JSON string representation of the object. + + + + + Deserializes the JSON to a .NET object. + + The JSON to deserialize. + The deserialized object from the JSON string. + + + + Deserializes the JSON to a .NET object using . + + The JSON to deserialize. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type. + + The JSON to deserialize. + The of object being deserialized. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type. + + The type of the object to deserialize to. + The JSON to deserialize. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the given anonymous type. + + + The anonymous type to deserialize to. This can't be specified + traditionally and must be inferred from the anonymous type passed + as a parameter. + + The JSON to deserialize. + The anonymous type object. + The deserialized anonymous type from the JSON string. + + + + Deserializes the JSON to the given anonymous type using . + + + The anonymous type to deserialize to. This can't be specified + traditionally and must be inferred from the anonymous type passed + as a parameter. + + The JSON to deserialize. + The anonymous type object. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized anonymous type from the JSON string. + + + + Deserializes the JSON to the specified .NET type using a collection of . + + The type of the object to deserialize to. + The JSON to deserialize. + Converters to use while deserializing. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type using . + + The type of the object to deserialize to. + The object to deserialize. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type using a collection of . + + The JSON to deserialize. + The type of the object to deserialize. + Converters to use while deserializing. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type using . + + The JSON to deserialize. + The type of the object to deserialize to. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized object from the JSON string. + + + + Populates the object with values from the JSON string. + + The JSON to populate values from. + The target object to populate values onto. + + + + Populates the object with values from the JSON string using . + + The JSON to populate values from. + The target object to populate values onto. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + + + + Serializes the to a JSON string. + + The node to serialize. + A JSON string of the . + + + + Serializes the to a JSON string using formatting. + + The node to serialize. + Indicates how the output should be formatted. + A JSON string of the . + + + + Serializes the to a JSON string using formatting and omits the root object if is true. + + The node to serialize. + Indicates how the output should be formatted. + Omits writing the root object. + A JSON string of the . + + + + Deserializes the from a JSON string. + + The JSON string. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by . + + The JSON string. + The name of the root element to append when deserializing. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by + and writes a Json.NET array attribute for collections. + + The JSON string. + The name of the root element to append when deserializing. + + A flag to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + The deserialized . + + + + Serializes the to a JSON string. + + The node to convert to JSON. + A JSON string of the . + + + + Serializes the to a JSON string using formatting. + + The node to convert to JSON. + Indicates how the output should be formatted. + A JSON string of the . + + + + Serializes the to a JSON string using formatting and omits the root object if is true. + + The node to serialize. + Indicates how the output should be formatted. + Omits writing the root object. + A JSON string of the . + + + + Deserializes the from a JSON string. + + The JSON string. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by . + + The JSON string. + The name of the root element to append when deserializing. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by + and writes a Json.NET array attribute for collections. + + The JSON string. + The name of the root element to append when deserializing. + + A flag to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + The deserialized . + + + + Converts an object to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Gets a value indicating whether this can read JSON. + + true if this can read JSON; otherwise, false. + + + + Gets a value indicating whether this can write JSON. + + true if this can write JSON; otherwise, false. + + + + Converts an object to and from JSON. + + The object type to convert. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. If there is no existing value then null will be used. + The existing value has a value. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Instructs the to use the specified when serializing the member or class. + + + + + Gets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + + + + + Initializes a new instance of the class. + + Type of the . + + + + Initializes a new instance of the class. + + Type of the . + Parameter list to use when constructing the . Can be null. + + + + Represents a collection of . + + + + + Instructs the how to serialize the collection. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + The exception thrown when an error occurs during JSON serialization or deserialization. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Instructs the to deserialize properties with no matching class member into the specified collection + and write values during serialization. + + + + + Gets or sets a value that indicates whether to write extension data when serializing the object. + + + true to write extension data when serializing the object; otherwise, false. The default is true. + + + + + Gets or sets a value that indicates whether to read extension data when deserializing the object. + + + true to read extension data when deserializing the object; otherwise, false. The default is true. + + + + + Initializes a new instance of the class. + + + + + Instructs the not to serialize the public field or public read/write property value. + + + + + Instructs the how to serialize the object. + + + + + Gets or sets the member serialization. + + The member serialization. + + + + Gets or sets how the object's properties with null values are handled during serialization and deserialization. + + How the object's properties with null values are handled during serialization and deserialization. + + + + Gets or sets a value that indicates whether the object's properties are required. + + + A value indicating whether the object's properties are required. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified member serialization. + + The member serialization. + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Instructs the to always serialize the member with the specified name. + + + + + Gets or sets the used when serializing the property's collection items. + + The collection's items . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonProperty(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonProperty(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the null value handling used when serializing this property. + + The null value handling. + + + + Gets or sets the default value handling used when serializing this property. + + The default value handling. + + + + Gets or sets the reference loop handling used when serializing this property. + + The reference loop handling. + + + + Gets or sets the object creation handling used when deserializing this property. + + The object creation handling. + + + + Gets or sets the type name handling used when serializing this property. + + The type name handling. + + + + Gets or sets whether this property's value is serialized as a reference. + + Whether this property's value is serialized as a reference. + + + + Gets or sets the order of serialization of a member. + + The numeric order of serialization. + + + + Gets or sets a value indicating whether this property is required. + + + A value indicating whether this property is required. + + + + + Gets or sets the name of the property. + + The name of the property. + + + + Gets or sets the reference loop handling used when serializing the property's collection items. + + The collection's items reference loop handling. + + + + Gets or sets the type name handling used when serializing the property's collection items. + + The collection's items type name handling. + + + + Gets or sets whether this property's collection items are serialized as a reference. + + Whether this property's collection items are serialized as a reference. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified name. + + Name of the property. + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. + + + + + Asynchronously reads the next JSON token from the source. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns true if the next token was read successfully; false if there are no more tokens to read. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously skips the children of the current token. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a []. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the []. This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Specifies the state of the reader. + + + + + A read method has not been called. + + + + + The end of the file has been reached successfully. + + + + + Reader is at a property. + + + + + Reader is at the start of an object. + + + + + Reader is in an object. + + + + + Reader is at the start of an array. + + + + + Reader is in an array. + + + + + The method has been called. + + + + + Reader has just read a value. + + + + + Reader is at the start of a constructor. + + + + + Reader is in a constructor. + + + + + An error occurred that prevents the read operation from continuing. + + + + + The end of the file has been reached successfully. + + + + + Gets the current reader state. + + The current reader state. + + + + Gets or sets a value indicating whether the source should be closed when this reader is closed. + + + true to close the source when this reader is closed; otherwise false. The default is true. + + + + + Gets or sets a value indicating whether multiple pieces of JSON content can + be read from a continuous stream without erroring. + + + true to support reading multiple pieces of JSON content; otherwise false. + The default is false. + + + + + Gets the quotation mark character used to enclose the value of a string. + + + + + Gets or sets how time zones are handled when reading JSON. + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Gets or sets how custom date formatted strings are parsed when reading JSON. + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + + + + + Gets the type of the current JSON token. + + + + + Gets the text value of the current JSON token. + + + + + Gets the .NET type for the current JSON token. + + + + + Gets the depth of the current token in the JSON document. + + The depth of the current token in the JSON document. + + + + Gets the path of the current JSON token. + + + + + Gets or sets the culture used when reading JSON. Defaults to . + + + + + Initializes a new instance of the class. + + + + + Reads the next JSON token from the source. + + true if the next token was read successfully; false if there are no more tokens to read. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a []. + + A [] or null if the next JSON token is null. This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Skips the children of the current token. + + + + + Sets the current token. + + The new token. + + + + Sets the current token and value. + + The new token. + The value. + + + + Sets the current token and value. + + The new token. + The value. + A flag indicating whether the position index inside an array should be updated. + + + + Sets the state based on current token type. + + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Changes the reader's state to . + If is set to true, the source is also closed. + + + + + The exception thrown when an error occurs while reading JSON text. + + + + + Gets the line number indicating where the error occurred. + + The line number indicating where the error occurred. + + + + Gets the line position indicating where the error occurred. + + The line position indicating where the error occurred. + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Initializes a new instance of the class + with a specified error message, JSON path, line number, line position, and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The path to the JSON where the error occurred. + The line number indicating where the error occurred. + The line position indicating where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Instructs the to always serialize the member, and to require that the member has a value. + + + + + The exception thrown when an error occurs during JSON serialization or deserialization. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Serializes and deserializes objects into and from the JSON format. + The enables you to control how objects are encoded into JSON. + + + + + Occurs when the errors during serialization and deserialization. + + + + + Gets or sets the used by the serializer when resolving references. + + + + + Gets or sets the used by the serializer when resolving type names. + + + + + Gets or sets the used by the serializer when resolving type names. + + + + + Gets or sets the used by the serializer when writing trace messages. + + The trace writer. + + + + Gets or sets the equality comparer used by the serializer when comparing references. + + The equality comparer. + + + + Gets or sets how type name writing and reading is handled by the serializer. + The default value is . + + + should be used with caution when your application deserializes JSON from an external source. + Incoming types should be validated with a custom + when deserializing with a value other than . + + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how object references are preserved by the serializer. + The default value is . + + + + + Gets or sets how reference loops (e.g. a class referencing itself) is handled. + The default value is . + + + + + Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. + The default value is . + + + + + Gets or sets how null values are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how default values are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how objects are created during deserialization. + The default value is . + + The object creation handling. + + + + Gets or sets how constructors are used during deserialization. + The default value is . + + The constructor handling. + + + + Gets or sets how metadata properties are used during deserialization. + The default value is . + + The metadata properties handling. + + + + Gets a collection that will be used during serialization. + + Collection that will be used during serialization. + + + + Gets or sets the contract resolver used by the serializer when + serializing .NET objects to JSON and vice versa. + + + + + Gets or sets the used by the serializer when invoking serialization callback methods. + + The context. + + + + Indicates how JSON text output is formatted. + The default value is . + + + + + Gets or sets how dates are written to JSON text. + The default value is . + + + + + Gets or sets how time zones are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + The default value is . + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + The default value is . + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written as JSON text. + The default value is . + + + + + Gets or sets how strings are escaped when writing JSON text. + The default value is . + + + + + Gets or sets how and values are formatted when writing JSON text, + and the expected date format when reading JSON text. + The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK". + + + + + Gets or sets the culture used when reading JSON. + The default value is . + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + A null value means there is no maximum. + The default value is null. + + + + + Gets a value indicating whether there will be a check for additional JSON content after deserializing an object. + The default value is false. + + + true if there will be a check for additional JSON content after deserializing an object; otherwise, false. + + + + + Initializes a new instance of the class. + + + + + Creates a new instance. + The will not use default settings + from . + + + A new instance. + The will not use default settings + from . + + + + + Creates a new instance using the specified . + The will not use default settings + from . + + The settings to be applied to the . + + A new instance using the specified . + The will not use default settings + from . + + + + + Creates a new instance. + The will use default settings + from . + + + A new instance. + The will use default settings + from . + + + + + Creates a new instance using the specified . + The will use default settings + from as well as the specified . + + The settings to be applied to the . + + A new instance using the specified . + The will use default settings + from as well as the specified . + + + + + Populates the JSON values onto the target object. + + The that contains the JSON structure to reader values from. + The target object to populate values onto. + + + + Populates the JSON values onto the target object. + + The that contains the JSON structure to reader values from. + The target object to populate values onto. + + + + Deserializes the JSON structure contained by the specified . + + The that contains the JSON structure to deserialize. + The being deserialized. + + + + Deserializes the JSON structure contained by the specified + into an instance of the specified type. + + The containing the object. + The of object being deserialized. + The instance of being deserialized. + + + + Deserializes the JSON structure contained by the specified + into an instance of the specified type. + + The containing the object. + The type of the object to deserialize. + The instance of being deserialized. + + + + Deserializes the JSON structure contained by the specified + into an instance of the specified type. + + The containing the object. + The of object being deserialized. + The instance of being deserialized. + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + The type of the value being serialized. + This parameter is used when is to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + The type of the value being serialized. + This parameter is used when is Auto to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + + + Specifies the settings on a object. + + + + + Gets or sets how reference loops (e.g. a class referencing itself) are handled. + The default value is . + + Reference loop handling. + + + + Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. + The default value is . + + Missing member handling. + + + + Gets or sets how objects are created during deserialization. + The default value is . + + The object creation handling. + + + + Gets or sets how null values are handled during serialization and deserialization. + The default value is . + + Null value handling. + + + + Gets or sets how default values are handled during serialization and deserialization. + The default value is . + + The default value handling. + + + + Gets or sets a collection that will be used during serialization. + + The converters. + + + + Gets or sets how object references are preserved by the serializer. + The default value is . + + The preserve references handling. + + + + Gets or sets how type name writing and reading is handled by the serializer. + The default value is . + + + should be used with caution when your application deserializes JSON from an external source. + Incoming types should be validated with a custom + when deserializing with a value other than . + + The type name handling. + + + + Gets or sets how metadata properties are used during deserialization. + The default value is . + + The metadata properties handling. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how constructors are used during deserialization. + The default value is . + + The constructor handling. + + + + Gets or sets the contract resolver used by the serializer when + serializing .NET objects to JSON and vice versa. + + The contract resolver. + + + + Gets or sets the equality comparer used by the serializer when comparing references. + + The equality comparer. + + + + Gets or sets the used by the serializer when resolving references. + + The reference resolver. + + + + Gets or sets a function that creates the used by the serializer when resolving references. + + A function that creates the used by the serializer when resolving references. + + + + Gets or sets the used by the serializer when writing trace messages. + + The trace writer. + + + + Gets or sets the used by the serializer when resolving type names. + + The binder. + + + + Gets or sets the used by the serializer when resolving type names. + + The binder. + + + + Gets or sets the error handler called during serialization and deserialization. + + The error handler called during serialization and deserialization. + + + + Gets or sets the used by the serializer when invoking serialization callback methods. + + The context. + + + + Gets or sets how and values are formatted when writing JSON text, + and the expected date format when reading JSON text. + The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK". + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + A null value means there is no maximum. + The default value is null. + + + + + Indicates how JSON text output is formatted. + The default value is . + + + + + Gets or sets how dates are written to JSON text. + The default value is . + + + + + Gets or sets how time zones are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + The default value is . + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written as JSON. + The default value is . + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + The default value is . + + + + + Gets or sets how strings are escaped when writing JSON text. + The default value is . + + + + + Gets or sets the culture used when reading JSON. + The default value is . + + + + + Gets a value indicating whether there will be a check for additional content after deserializing an object. + The default value is false. + + + true if there will be a check for additional content after deserializing an object; otherwise, false. + + + + + Initializes a new instance of the class. + + + + + Represents a reader that provides fast, non-cached, forward-only access to JSON text data. + + + + + Asynchronously reads the next JSON token from the source. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns true if the next token was read successfully; false if there are no more tokens to read. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a []. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the []. This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Initializes a new instance of the class with the specified . + + The containing the JSON data to read. + + + + Gets or sets the reader's character buffer pool. + + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a []. + + A [] or null if the next JSON token is null. This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Gets a value indicating whether the class can return line information. + + + true if and can be provided; otherwise, false. + + + + + Gets the current line number. + + + The current line number or 0 if no line information is available (for example, returns false). + + + + + Gets the current line position. + + + The current line position or 0 if no line information is available (for example, returns false). + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Asynchronously flushes whatever is in the buffer to the destination and also flushes the destination. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the JSON value delimiter. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the specified end token. + + The end token to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously closes this writer. + If is set to true, the destination is also closed. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of the current JSON object or array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes indent characters. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes an indent space. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes raw JSON without changing the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a null value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the beginning of a JSON array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the beginning of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the start of a constructor with the given name. + + The name of the constructor. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes an undefined value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the given white space. + + The string of white space characters. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a [] value. + + The [] value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of an array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of a constructor. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Gets or sets the writer's character array pool. + + + + + Gets or sets how many s to write for each level in the hierarchy when is set to . + + + + + Gets or sets which character to use to quote attribute values. + + + + + Gets or sets which character to use for indenting when is set to . + + + + + Gets or sets a value indicating whether object names will be surrounded with quotes. + + + + + Initializes a new instance of the class using the specified . + + The to write to. + + + + Flushes whatever is in the buffer to the underlying and also flushes the underlying . + + + + + Closes this writer. + If is set to true, the underlying is also closed. + If is set to true, the JSON is auto-completed. + + + + + Writes the beginning of a JSON object. + + + + + Writes the beginning of a JSON array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the specified end token. + + The end token to write. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + + + + Writes indent characters. + + + + + Writes the JSON value delimiter. + + + + + Writes an indent space. + + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a value. + + The value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the given white space. + + The string of white space characters. + + + + Specifies the type of JSON token. + + + + + This is returned by the if a read method has not been called. + + + + + An object start token. + + + + + An array start token. + + + + + A constructor start token. + + + + + An object property name. + + + + + A comment. + + + + + Raw JSON. + + + + + An integer. + + + + + A float. + + + + + A string. + + + + + A boolean. + + + + + A null token. + + + + + An undefined token. + + + + + An object end token. + + + + + An array end token. + + + + + A constructor end token. + + + + + A Date. + + + + + Byte data. + + + + + + Represents a reader that provides validation. + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Sets an event handler for receiving schema validation errors. + + + + + Gets the text value of the current JSON token. + + + + + + Gets the depth of the current token in the JSON document. + + The depth of the current token in the JSON document. + + + + Gets the path of the current JSON token. + + + + + Gets the quotation mark character used to enclose the value of a string. + + + + + + Gets the type of the current JSON token. + + + + + + Gets the .NET type for the current JSON token. + + + + + + Initializes a new instance of the class that + validates the content returned from the given . + + The to read from while validating. + + + + Gets or sets the schema. + + The schema. + + + + Gets the used to construct this . + + The specified in the constructor. + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a []. + + + A [] or null if the next JSON token is null. + + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Asynchronously closes this writer. + If is set to true, the destination is also closed. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously flushes whatever is in the buffer to the destination and also flushes the destination. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the specified end token. + + The end token to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes indent characters. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the JSON value delimiter. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes an indent space. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes raw JSON without changing the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the end of the current JSON object or array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the end of an array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the end of a constructor. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the end of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a null value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the beginning of a JSON array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the start of a constructor with the given name. + + The name of the constructor. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the beginning of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the current token. + + The to read the token from. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the current token. + + The to read the token from. + A flag indicating whether the current token's children should be written. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the token and its value. + + The to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the token and its value. + + The to write. + + The value to write. + A value is only required for tokens that have an associated value, e.g. the property name for . + null can be passed to the method for tokens that don't have a value, e.g. . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a [] value. + + The [] value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes an undefined value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the given white space. + + The string of white space characters. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously ets the state of the . + + The being written. + The value being written. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Gets or sets a value indicating whether the destination should be closed when this writer is closed. + + + true to close the destination when this writer is closed; otherwise false. The default is true. + + + + + Gets or sets a value indicating whether the JSON should be auto-completed when this writer is closed. + + + true to auto-complete the JSON when this writer is closed; otherwise false. The default is true. + + + + + Gets the top. + + The top. + + + + Gets the state of the writer. + + + + + Gets the path of the writer. + + + + + Gets or sets a value indicating how JSON text output should be formatted. + + + + + Gets or sets how dates are written to JSON text. + + + + + Gets or sets how time zones are handled when writing JSON text. + + + + + Gets or sets how strings are escaped when writing JSON text. + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written to JSON text. + + + + + Gets or sets how and values are formatted when writing JSON text. + + + + + Gets or sets the culture used when writing JSON. Defaults to . + + + + + Initializes a new instance of the class. + + + + + Flushes whatever is in the buffer to the destination and also flushes the destination. + + + + + Closes this writer. + If is set to true, the destination is also closed. + If is set to true, the JSON is auto-completed. + + + + + Writes the beginning of a JSON object. + + + + + Writes the end of a JSON object. + + + + + Writes the beginning of a JSON array. + + + + + Writes the end of an array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the end constructor. + + + + + Writes the property name of a name/value pair of a JSON object. + + The name of the property. + + + + Writes the property name of a name/value pair of a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + + + + Writes the end of the current JSON object or array. + + + + + Writes the current token and its children. + + The to read the token from. + + + + Writes the current token. + + The to read the token from. + A flag indicating whether the current token's children should be written. + + + + Writes the token and its value. + + The to write. + + The value to write. + A value is only required for tokens that have an associated value, e.g. the property name for . + null can be passed to the method for tokens that don't have a value, e.g. . + + + + + Writes the token. + + The to write. + + + + Writes the specified end token. + + The end token to write. + + + + Writes indent characters. + + + + + Writes the JSON value delimiter. + + + + + Writes an indent space. + + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON without changing the writer's state. + + The raw JSON to write. + + + + Writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the given white space. + + The string of white space characters. + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Sets the state of the . + + The being written. + The value being written. + + + + The exception thrown when an error occurs while writing JSON text. + + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Initializes a new instance of the class + with a specified error message, JSON path and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The path to the JSON where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Specifies how JSON comments are handled when loading JSON. + + + + + Ignore comments. + + + + + Load comments as a with type . + + + + + Contains the LINQ to JSON extension methods. + + + + + Returns a collection of tokens that contains the ancestors of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains the ancestors of every token in the source collection. + + + + Returns a collection of tokens that contains every token in the source collection, and the ancestors of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains every token in the source collection, the ancestors of every token in the source collection. + + + + Returns a collection of tokens that contains the descendants of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains the descendants of every token in the source collection. + + + + Returns a collection of tokens that contains every token in the source collection, and the descendants of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains every token in the source collection, and the descendants of every token in the source collection. + + + + Returns a collection of child properties of every object in the source collection. + + An of that contains the source collection. + An of that contains the properties of every object in the source collection. + + + + Returns a collection of child values of every object in the source collection with the given key. + + An of that contains the source collection. + The token key. + An of that contains the values of every token in the source collection with the given key. + + + + Returns a collection of child values of every object in the source collection. + + An of that contains the source collection. + An of that contains the values of every token in the source collection. + + + + Returns a collection of converted child values of every object in the source collection with the given key. + + The type to convert the values to. + An of that contains the source collection. + The token key. + An that contains the converted values of every token in the source collection with the given key. + + + + Returns a collection of converted child values of every object in the source collection. + + The type to convert the values to. + An of that contains the source collection. + An that contains the converted values of every token in the source collection. + + + + Converts the value. + + The type to convert the value to. + A cast as a of . + A converted value. + + + + Converts the value. + + The source collection type. + The type to convert the value to. + A cast as a of . + A converted value. + + + + Returns a collection of child tokens of every array in the source collection. + + The source collection type. + An of that contains the source collection. + An of that contains the values of every token in the source collection. + + + + Returns a collection of converted child tokens of every array in the source collection. + + An of that contains the source collection. + The type to convert the values to. + The source collection type. + An that contains the converted values of every token in the source collection. + + + + Returns the input typed as . + + An of that contains the source collection. + The input typed as . + + + + Returns the input typed as . + + The source collection type. + An of that contains the source collection. + The input typed as . + + + + Represents a collection of objects. + + The type of token. + + + + Gets the of with the specified key. + + + + + + Represents a JSON array. + + + + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous load. The property contains the JSON that was read from the specified . + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous load. The property contains the JSON that was read from the specified . + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets the node type for this . + + The type. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified content. + + The contents of the array. + + + + Initializes a new instance of the class with the specified content. + + The contents of the array. + + + + Loads an from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads an from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + + + + + + Load a from a string that contains JSON. + + A that contains JSON. + The used to load the JSON. + If this is null, default load settings will be used. + A populated from the string that contains JSON. + + + + + + + Creates a from an object. + + The object that will be used to create . + A with the values of the specified object. + + + + Creates a from an object. + + The object that will be used to create . + The that will be used to read the object. + A with the values of the specified object. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets or sets the at the specified index. + + + + + + Determines the index of a specific item in the . + + The object to locate in the . + + The index of if found in the list; otherwise, -1. + + + + + Inserts an item to the at the specified index. + + The zero-based index at which should be inserted. + The object to insert into the . + + is not a valid index in the . + + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + is not a valid index in the . + + + + + Returns an enumerator that iterates through the collection. + + + A of that can be used to iterate through the collection. + + + + + Adds an item to the . + + The object to add to the . + + + + Removes all items from the . + + + + + Determines whether the contains a specific value. + + The object to locate in the . + + true if is found in the ; otherwise, false. + + + + + Copies the elements of the to an array, starting at a particular array index. + + The array. + Index of the array. + + + + Gets a value indicating whether the is read-only. + + true if the is read-only; otherwise, false. + + + + Removes the first occurrence of a specific object from the . + + The object to remove from the . + + true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . + + + + + Represents a JSON constructor. + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets or sets the name of this constructor. + + The constructor name. + + + + Gets the node type for this . + + The type. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified name and content. + + The constructor name. + The contents of the constructor. + + + + Initializes a new instance of the class with the specified name and content. + + The constructor name. + The contents of the constructor. + + + + Initializes a new instance of the class with the specified name. + + The constructor name. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Gets the with the specified key. + + The with the specified key. + + + + Loads a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Represents a token that can contain other tokens. + + + + + Occurs when the list changes or an item in the list changes. + + + + + Occurs before an item is added to the collection. + + + + + Occurs when the items list of the collection has changed, or the collection is reset. + + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Gets a value indicating whether this token has child tokens. + + + true if this token has child values; otherwise, false. + + + + + Get the first child token of this token. + + + A containing the first child token of the . + + + + + Get the last child token of this token. + + + A containing the last child token of the . + + + + + Returns a collection of the child tokens of this token, in document order. + + + An of containing the child tokens of this , in document order. + + + + + Returns a collection of the child values of this token, in document order. + + The type to convert the values to. + + A containing the child values of this , in document order. + + + + + Returns a collection of the descendant tokens for this token in document order. + + An of containing the descendant tokens of the . + + + + Returns a collection of the tokens that contain this token, and all descendant tokens of this token, in document order. + + An of containing this token, and all the descendant tokens of the . + + + + Adds the specified content as children of this . + + The content to be added. + + + + Adds the specified content as the first children of this . + + The content to be added. + + + + Creates a that can be used to add tokens to the . + + A that is ready to have content written to it. + + + + Replaces the child nodes of this token with the specified content. + + The content. + + + + Removes the child nodes from this token. + + + + + Merge the specified content into this . + + The content to be merged. + + + + Merge the specified content into this using . + + The content to be merged. + The used to merge the content. + + + + Gets the count of child JSON tokens. + + The count of child JSON tokens. + + + + Represents a collection of objects. + + The type of token. + + + + An empty collection of objects. + + + + + Initializes a new instance of the struct. + + The enumerable. + + + + Returns an enumerator that can be used to iterate through the collection. + + + A that can be used to iterate through the collection. + + + + + Gets the of with the specified key. + + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Represents a JSON object. + + + + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Occurs when a property value changes. + + + + + Occurs when a property value is changing. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified content. + + The contents of the object. + + + + Initializes a new instance of the class with the specified content. + + The contents of the object. + + + + Gets the node type for this . + + The type. + + + + Gets an of of this object's properties. + + An of of this object's properties. + + + + Gets a the specified name. + + The property name. + A with the specified name or null. + + + + Gets a of of this object's property values. + + A of of this object's property values. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets or sets the with the specified property name. + + + + + + Loads a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + is not valid JSON. + + + + + Loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + is not valid JSON. + + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + is not valid JSON. + + + + + + + + Load a from a string that contains JSON. + + A that contains JSON. + The used to load the JSON. + If this is null, default load settings will be used. + A populated from the string that contains JSON. + + is not valid JSON. + + + + + + + + Creates a from an object. + + The object that will be used to create . + A with the values of the specified object. + + + + Creates a from an object. + + The object that will be used to create . + The that will be used to read the object. + A with the values of the specified object. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Gets the with the specified property name. + + Name of the property. + The with the specified property name. + + + + Gets the with the specified property name. + The exact property name will be searched for first and if no matching property is found then + the will be used to match a property. + + Name of the property. + One of the enumeration values that specifies how the strings will be compared. + The with the specified property name. + + + + Tries to get the with the specified property name. + The exact property name will be searched for first and if no matching property is found then + the will be used to match a property. + + Name of the property. + The value. + One of the enumeration values that specifies how the strings will be compared. + true if a value was successfully retrieved; otherwise, false. + + + + Adds the specified property name. + + Name of the property. + The value. + + + + Determines whether the JSON object has the specified property name. + + Name of the property. + true if the JSON object has the specified property name; otherwise, false. + + + + Removes the property with the specified name. + + Name of the property. + true if item was successfully removed; otherwise, false. + + + + Tries to get the with the specified property name. + + Name of the property. + The value. + true if a value was successfully retrieved; otherwise, false. + + + + Returns an enumerator that can be used to iterate through the collection. + + + A that can be used to iterate through the collection. + + + + + Raises the event with the provided arguments. + + Name of the property. + + + + Raises the event with the provided arguments. + + Name of the property. + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Represents a JSON property. + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous creation. The + property returns a that contains the JSON that was read from the specified . + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous creation. The + property returns a that contains the JSON that was read from the specified . + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets the property name. + + The property name. + + + + Gets or sets the property value. + + The property value. + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Gets the node type for this . + + The type. + + + + Initializes a new instance of the class. + + The property name. + The property content. + + + + Initializes a new instance of the class. + + The property name. + The property content. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Loads a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Represents a view of a . + + + + + Initializes a new instance of the class. + + The name. + + + + When overridden in a derived class, returns whether resetting an object changes its value. + + + true if resetting the component changes its value; otherwise, false. + + The component to test for reset capability. + + + + When overridden in a derived class, gets the current value of the property on a component. + + + The value of a property for a given component. + + The component with the property for which to retrieve the value. + + + + When overridden in a derived class, resets the value for this property of the component to the default value. + + The component with the property value that is to be reset to the default value. + + + + When overridden in a derived class, sets the value of the component to a different value. + + The component with the property value that is to be set. + The new value. + + + + When overridden in a derived class, determines a value indicating whether the value of this property needs to be persisted. + + + true if the property should be persisted; otherwise, false. + + The component with the property to be examined for persistence. + + + + When overridden in a derived class, gets the type of the component this property is bound to. + + + A that represents the type of component this property is bound to. + When the or + + methods are invoked, the object specified might be an instance of this type. + + + + + When overridden in a derived class, gets a value indicating whether this property is read-only. + + + true if the property is read-only; otherwise, false. + + + + + When overridden in a derived class, gets the type of the property. + + + A that represents the type of the property. + + + + + Gets the hash code for the name of the member. + + + + The hash code for the name of the member. + + + + + Represents a raw JSON string. + + + + + Asynchronously creates an instance of with the content of the reader's current token. + + The reader. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous creation. The + property returns an instance of with the content of the reader's current token. + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class. + + The raw json. + + + + Creates an instance of with the content of the reader's current token. + + The reader. + An instance of with the content of the reader's current token. + + + + Specifies the settings used when loading JSON. + + + + + Initializes a new instance of the class. + + + + + Gets or sets how JSON comments are handled when loading JSON. + + The JSON comment handling. + + + + Gets or sets how JSON line info is handled when loading JSON. + + The JSON line info handling. + + + + Specifies the settings used when merging JSON. + + + + + Gets or sets the method used when merging JSON arrays. + + The method used when merging JSON arrays. + + + + Gets or sets how null value properties are merged. + + How null value properties are merged. + + + + Represents an abstract JSON token. + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Writes this token to a asynchronously. + + A into which this method will write. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously creates a from a . + + An positioned at the token to read into this . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a that contains + the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Asynchronously creates a from a . + + An positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a that contains + the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Asynchronously creates a from a . + + A positioned at the token to read into this . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Asynchronously creates a from a . + + A positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Gets a comparer that can compare two tokens for value equality. + + A that can compare two nodes for value equality. + + + + Gets or sets the parent. + + The parent. + + + + Gets the root of this . + + The root of this . + + + + Gets the node type for this . + + The type. + + + + Gets a value indicating whether this token has child tokens. + + + true if this token has child values; otherwise, false. + + + + + Compares the values of two tokens, including the values of all descendant tokens. + + The first to compare. + The second to compare. + true if the tokens are equal; otherwise false. + + + + Gets the next sibling token of this node. + + The that contains the next sibling token. + + + + Gets the previous sibling token of this node. + + The that contains the previous sibling token. + + + + Gets the path of the JSON token. + + + + + Adds the specified content immediately after this token. + + A content object that contains simple content or a collection of content objects to be added after this token. + + + + Adds the specified content immediately before this token. + + A content object that contains simple content or a collection of content objects to be added before this token. + + + + Returns a collection of the ancestor tokens of this token. + + A collection of the ancestor tokens of this token. + + + + Returns a collection of tokens that contain this token, and the ancestors of this token. + + A collection of tokens that contain this token, and the ancestors of this token. + + + + Returns a collection of the sibling tokens after this token, in document order. + + A collection of the sibling tokens after this tokens, in document order. + + + + Returns a collection of the sibling tokens before this token, in document order. + + A collection of the sibling tokens before this token, in document order. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets the with the specified key converted to the specified type. + + The type to convert the token to. + The token key. + The converted token value. + + + + Get the first child token of this token. + + A containing the first child token of the . + + + + Get the last child token of this token. + + A containing the last child token of the . + + + + Returns a collection of the child tokens of this token, in document order. + + An of containing the child tokens of this , in document order. + + + + Returns a collection of the child tokens of this token, in document order, filtered by the specified type. + + The type to filter the child tokens on. + A containing the child tokens of this , in document order. + + + + Returns a collection of the child values of this token, in document order. + + The type to convert the values to. + A containing the child values of this , in document order. + + + + Removes this token from its parent. + + + + + Replaces this token with the specified token. + + The value. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Returns the indented JSON for this token. + + + The indented JSON for this token. + + + + + Returns the JSON for this token using the given formatting and converters. + + Indicates how the output should be formatted. + A collection of s which will be used when writing the token. + The JSON for this token using the given formatting and converters. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to []. + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from [] to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Creates a for this token. + + A that can be used to read this token and its descendants. + + + + Creates a from an object. + + The object that will be used to create . + A with the value of the specified object. + + + + Creates a from an object using the specified . + + The object that will be used to create . + The that will be used when reading the object. + A with the value of the specified object. + + + + Creates an instance of the specified .NET type from the . + + The object type that the token will be deserialized to. + The new object created from the JSON value. + + + + Creates an instance of the specified .NET type from the . + + The object type that the token will be deserialized to. + The new object created from the JSON value. + + + + Creates an instance of the specified .NET type from the using the specified . + + The object type that the token will be deserialized to. + The that will be used when creating the object. + The new object created from the JSON value. + + + + Creates an instance of the specified .NET type from the using the specified . + + The object type that the token will be deserialized to. + The that will be used when creating the object. + The new object created from the JSON value. + + + + Creates a from a . + + A positioned at the token to read into this . + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Creates a from a . + + An positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + + + Load a from a string that contains JSON. + + A that contains JSON. + The used to load the JSON. + If this is null, default load settings will be used. + A populated from the string that contains JSON. + + + + Creates a from a . + + A positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Creates a from a . + + A positioned at the token to read into this . + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Selects a using a JPath expression. Selects the token that matches the object path. + + + A that contains a JPath expression. + + A , or null. + + + + Selects a using a JPath expression. Selects the token that matches the object path. + + + A that contains a JPath expression. + + A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. + A . + + + + Selects a collection of elements using a JPath expression. + + + A that contains a JPath expression. + + An of that contains the selected elements. + + + + Selects a collection of elements using a JPath expression. + + + A that contains a JPath expression. + + A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. + An of that contains the selected elements. + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Creates a new instance of the . All child tokens are recursively cloned. + + A new instance of the . + + + + Adds an object to the annotation list of this . + + The annotation to add. + + + + Get the first annotation object of the specified type from this . + + The type of the annotation to retrieve. + The first annotation object that matches the specified type, or null if no annotation is of the specified type. + + + + Gets the first annotation object of the specified type from this . + + The of the annotation to retrieve. + The first annotation object that matches the specified type, or null if no annotation is of the specified type. + + + + Gets a collection of annotations of the specified type for this . + + The type of the annotations to retrieve. + An that contains the annotations for this . + + + + Gets a collection of annotations of the specified type for this . + + The of the annotations to retrieve. + An of that contains the annotations that match the specified type for this . + + + + Removes the annotations of the specified type from this . + + The type of annotations to remove. + + + + Removes the annotations of the specified type from this . + + The of annotations to remove. + + + + Compares tokens to determine whether they are equal. + + + + + Determines whether the specified objects are equal. + + The first object of type to compare. + The second object of type to compare. + + true if the specified objects are equal; otherwise, false. + + + + + Returns a hash code for the specified object. + + The for which a hash code is to be returned. + A hash code for the specified object. + The type of is a reference type and is null. + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. + + + + + Gets the at the reader's current position. + + + + + Initializes a new instance of the class. + + The token to read from. + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Gets the path of the current JSON token. + + + + + Specifies the type of token. + + + + + No token type has been set. + + + + + A JSON object. + + + + + A JSON array. + + + + + A JSON constructor. + + + + + A JSON object property. + + + + + A comment. + + + + + An integer value. + + + + + A float value. + + + + + A string value. + + + + + A boolean value. + + + + + A null value. + + + + + An undefined value. + + + + + A date value. + + + + + A raw JSON value. + + + + + A collection of bytes value. + + + + + A Guid value. + + + + + A Uri value. + + + + + A TimeSpan value. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Gets the at the writer's current position. + + + + + Gets the token being written. + + The token being written. + + + + Initializes a new instance of the class writing to the given . + + The container being written to. + + + + Initializes a new instance of the class. + + + + + Flushes whatever is in the buffer to the underlying . + + + + + Closes this writer. + If is set to true, the JSON is auto-completed. + + + Setting to true has no additional effect, since the underlying is a type that cannot be closed. + + + + + Writes the beginning of a JSON object. + + + + + Writes the beginning of a JSON array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the end. + + The token. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Writes a value. + An error will be raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Represents a value in JSON (string, integer, date, etc). + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Gets a value indicating whether this token has child tokens. + + + true if this token has child values; otherwise, false. + + + + + Creates a comment with the given value. + + The value. + A comment with the given value. + + + + Creates a string with the given value. + + The value. + A string with the given value. + + + + Creates a null value. + + A null value. + + + + Creates a undefined value. + + A undefined value. + + + + Gets the node type for this . + + The type. + + + + Gets or sets the underlying token value. + + The underlying token value. + + + + Writes this token to a . + + A into which this method will write. + A collection of s which will be used when writing the token. + + + + Indicates whether the current object is equal to another object of the same type. + + + true if the current object is equal to the parameter; otherwise, false. + + An object to compare with this object. + + + + Determines whether the specified is equal to the current . + + The to compare with the current . + + true if the specified is equal to the current ; otherwise, false. + + + + + Serves as a hash function for a particular type. + + + A hash code for the current . + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format. + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format provider. + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format. + The format provider. + + A that represents this instance. + + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object. + + An object to compare with this instance. + + A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has these meanings: + Value + Meaning + Less than zero + This instance is less than . + Zero + This instance is equal to . + Greater than zero + This instance is greater than . + + + is not of the same type as this instance. + + + + + Specifies how line information is handled when loading JSON. + + + + + Ignore line information. + + + + + Load line information. + + + + + Specifies how JSON arrays are merged together. + + + + Concatenate arrays. + + + Union arrays, skipping items that already exist. + + + Replace all array items. + + + Merge array items together, matched by index. + + + + Specifies how null value properties are merged. + + + + + The content's null value properties will be ignored during merging. + + + + + The content's null value properties will be merged. + + + + + Specifies the member serialization options for the . + + + + + All public members are serialized by default. Members can be excluded using or . + This is the default member serialization mode. + + + + + Only members marked with or are serialized. + This member serialization mode can also be set by marking the class with . + + + + + All public and private fields are serialized. Members can be excluded using or . + This member serialization mode can also be set by marking the class with + and setting IgnoreSerializableAttribute on to false. + + + + + Specifies metadata property handling options for the . + + + + + Read metadata properties located at the start of a JSON object. + + + + + Read metadata properties located anywhere in a JSON object. Note that this setting will impact performance. + + + + + Do not try to read metadata properties. + + + + + Specifies missing member handling options for the . + + + + + Ignore a missing member and do not attempt to deserialize it. + + + + + Throw a when a missing member is encountered during deserialization. + + + + + Specifies null value handling options for the . + + + + + + + + + Include null values when serializing and deserializing objects. + + + + + Ignore null values when serializing and deserializing objects. + + + + + Specifies how object creation is handled by the . + + + + + Reuse existing objects, create new objects when needed. + + + + + Only reuse existing objects. + + + + + Always create new objects. + + + + + Specifies reference handling options for the . + Note that references cannot be preserved when a value is set via a non-default constructor such as types that implement . + + + + + + + + Do not preserve references when serializing types. + + + + + Preserve references when serializing into a JSON object structure. + + + + + Preserve references when serializing into a JSON array structure. + + + + + Preserve references when serializing. + + + + + Specifies reference loop handling options for the . + + + + + Throw a when a loop is encountered. + + + + + Ignore loop references and do not serialize. + + + + + Serialize loop references. + + + + + Indicating whether a property is required. + + + + + The property is not required. The default state. + + + + + The property must be defined in JSON but can be a null value. + + + + + The property must be defined in JSON and cannot be a null value. + + + + + The property is not required but it cannot be a null value. + + + + + + Contains the JSON schema extension methods. + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + + Determines whether the is valid. + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + + true if the specified is valid; otherwise, false. + + + + + + Determines whether the is valid. + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + When this method returns, contains any error messages generated while validating. + + true if the specified is valid; otherwise, false. + + + + + + Validates the specified . + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + + + + + Validates the specified . + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + The validation event handler. + + + + + An in-memory representation of a JSON Schema. + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets or sets the id. + + + + + Gets or sets the title. + + + + + Gets or sets whether the object is required. + + + + + Gets or sets whether the object is read-only. + + + + + Gets or sets whether the object is visible to users. + + + + + Gets or sets whether the object is transient. + + + + + Gets or sets the description of the object. + + + + + Gets or sets the types of values allowed by the object. + + The type. + + + + Gets or sets the pattern. + + The pattern. + + + + Gets or sets the minimum length. + + The minimum length. + + + + Gets or sets the maximum length. + + The maximum length. + + + + Gets or sets a number that the value should be divisible by. + + A number that the value should be divisible by. + + + + Gets or sets the minimum. + + The minimum. + + + + Gets or sets the maximum. + + The maximum. + + + + Gets or sets a flag indicating whether the value can not equal the number defined by the minimum attribute (). + + A flag indicating whether the value can not equal the number defined by the minimum attribute (). + + + + Gets or sets a flag indicating whether the value can not equal the number defined by the maximum attribute (). + + A flag indicating whether the value can not equal the number defined by the maximum attribute (). + + + + Gets or sets the minimum number of items. + + The minimum number of items. + + + + Gets or sets the maximum number of items. + + The maximum number of items. + + + + Gets or sets the of items. + + The of items. + + + + Gets or sets a value indicating whether items in an array are validated using the instance at their array position from . + + + true if items are validated using their array position; otherwise, false. + + + + + Gets or sets the of additional items. + + The of additional items. + + + + Gets or sets a value indicating whether additional items are allowed. + + + true if additional items are allowed; otherwise, false. + + + + + Gets or sets whether the array items must be unique. + + + + + Gets or sets the of properties. + + The of properties. + + + + Gets or sets the of additional properties. + + The of additional properties. + + + + Gets or sets the pattern properties. + + The pattern properties. + + + + Gets or sets a value indicating whether additional properties are allowed. + + + true if additional properties are allowed; otherwise, false. + + + + + Gets or sets the required property if this property is present. + + The required property if this property is present. + + + + Gets or sets the a collection of valid enum values allowed. + + A collection of valid enum values allowed. + + + + Gets or sets disallowed types. + + The disallowed types. + + + + Gets or sets the default value. + + The default value. + + + + Gets or sets the collection of that this schema extends. + + The collection of that this schema extends. + + + + Gets or sets the format. + + The format. + + + + Initializes a new instance of the class. + + + + + Reads a from the specified . + + The containing the JSON Schema to read. + The object representing the JSON Schema. + + + + Reads a from the specified . + + The containing the JSON Schema to read. + The to use when resolving schema references. + The object representing the JSON Schema. + + + + Load a from a string that contains JSON Schema. + + A that contains JSON Schema. + A populated from the string that contains JSON Schema. + + + + Load a from a string that contains JSON Schema using the specified . + + A that contains JSON Schema. + The resolver. + A populated from the string that contains JSON Schema. + + + + Writes this schema to a . + + A into which this method will write. + + + + Writes this schema to a using the specified . + + A into which this method will write. + The resolver used. + + + + Returns a that represents the current . + + + A that represents the current . + + + + + + Returns detailed information about the schema exception. + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets the line number indicating where the error occurred. + + The line number indicating where the error occurred. + + + + Gets the line position indicating where the error occurred. + + The line position indicating where the error occurred. + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + + Generates a from a specified . + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets or sets how undefined schemas are handled by the serializer. + + + + + Gets or sets the contract resolver. + + The contract resolver. + + + + Generate a from the specified type. + + The type to generate a from. + A generated from the specified type. + + + + Generate a from the specified type. + + The type to generate a from. + The used to resolve schema references. + A generated from the specified type. + + + + Generate a from the specified type. + + The type to generate a from. + Specify whether the generated root will be nullable. + A generated from the specified type. + + + + Generate a from the specified type. + + The type to generate a from. + The used to resolve schema references. + Specify whether the generated root will be nullable. + A generated from the specified type. + + + + + Resolves from an id. + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets or sets the loaded schemas. + + The loaded schemas. + + + + Initializes a new instance of the class. + + + + + Gets a for the specified reference. + + The id. + A for the specified reference. + + + + + The value types allowed by the . + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + No type specified. + + + + + String type. + + + + + Float type. + + + + + Integer type. + + + + + Boolean type. + + + + + Object type. + + + + + Array type. + + + + + Null type. + + + + + Any type. + + + + + + Specifies undefined schema Id handling options for the . + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Do not infer a schema Id. + + + + + Use the .NET type name as the schema Id. + + + + + Use the assembly qualified .NET type name as the schema Id. + + + + + + Returns detailed information related to the . + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets the associated with the validation error. + + The JsonSchemaException associated with the validation error. + + + + Gets the path of the JSON location where the validation error occurred. + + The path of the JSON location where the validation error occurred. + + + + Gets the text description corresponding to the validation error. + + The text description. + + + + + Represents the callback method that will handle JSON schema validation events and the . + + + JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. + + + + + + A camel case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Resolves member mappings for a type, camel casing property names. + + + + + Initializes a new instance of the class. + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Used by to resolve a for a given . + + + + + Gets a value indicating whether members are being get and set using dynamic code generation. + This value is determined by the runtime permissions available. + + + true if using dynamic code generation; otherwise, false. + + + + + Gets or sets the default members search flags. + + The default members search flags. + + + + Gets or sets a value indicating whether compiler generated members should be serialized. + + + true if serialized compiler generated members; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore the interface when serializing and deserializing types. + + + true if the interface will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore the attribute when serializing and deserializing types. + + + true if the attribute will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore IsSpecified members when serializing and deserializing types. + + + true if the IsSpecified members will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore ShouldSerialize members when serializing and deserializing types. + + + true if the ShouldSerialize members will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets the naming strategy used to resolve how property names and dictionary keys are serialized. + + The naming strategy used to resolve how property names and dictionary keys are serialized. + + + + Initializes a new instance of the class. + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Gets the serializable members for the type. + + The type to get serializable members for. + The serializable members for the type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates the constructor parameters. + + The constructor to create properties for. + The type's member properties. + Properties for the given . + + + + Creates a for the given . + + The matching member property. + The constructor parameter. + A created for the given . + + + + Resolves the default for the contract. + + Type of the object. + The contract's default . + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Determines which contract type is created for the given type. + + Type of the object. + A for the given type. + + + + Creates properties for the given . + + The type to create properties for. + /// The member serialization mode for the type. + Properties for the given . + + + + Creates the used by the serializer to get and set values from a member. + + The member. + The used by the serializer to get and set values from a member. + + + + Creates a for the given . + + The member's parent . + The member to create a for. + A created for the given . + + + + Resolves the name of the property. + + Name of the property. + Resolved name of the property. + + + + Resolves the name of the extension data. By default no changes are made to extension data names. + + Name of the extension data. + Resolved name of the extension data. + + + + Resolves the key of the dictionary. By default is used to resolve dictionary keys. + + Key of the dictionary. + Resolved key of the dictionary. + + + + Gets the resolved name of the property. + + Name of the property. + Name of the property. + + + + The default naming strategy. Property names and dictionary keys are unchanged. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + The default serialization binder used when resolving and loading classes from type names. + + + + + Initializes a new instance of the class. + + + + + When overridden in a derived class, controls the binding of a serialized object to a type. + + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + The type of the object the formatter creates a new instance of. + + + + + When overridden in a derived class, controls the binding of a serialized object to a type. + + The type of the object the formatter creates a new instance of. + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + + + Represents a trace writer that writes to the application's instances. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of will exclude messages and include , + and messages. + + + The that will be used to filter the trace messages passed to the writer. + + + + + Writes the specified trace level, message and optional exception. + + The at which to write this trace. + The trace message. + The trace exception. This parameter is optional. + + + + Get and set values for a using dynamic methods. + + + + + Initializes a new instance of the class. + + The member info. + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + Provides information surrounding an error. + + + + + Gets the error. + + The error. + + + + Gets the original object that caused the error. + + The original object that caused the error. + + + + Gets the member that caused the error. + + The member that caused the error. + + + + Gets the path of the JSON location where the error occurred. + + The path of the JSON location where the error occurred. + + + + Gets or sets a value indicating whether this is handled. + + true if handled; otherwise, false. + + + + Provides data for the Error event. + + + + + Gets the current object the error event is being raised against. + + The current object the error event is being raised against. + + + + Gets the error context. + + The error context. + + + + Initializes a new instance of the class. + + The current object. + The error context. + + + + Get and set values for a using dynamic methods. + + + + + Initializes a new instance of the class. + + The member info. + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + Provides methods to get attributes. + + + + + Returns a collection of all of the attributes, or an empty collection if there are no attributes. + + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. + + The type of the attributes. + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Used by to resolve a for a given . + + + + + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Used to resolve references when serializing and deserializing JSON by the . + + + + + Resolves a reference to its object. + + The serialization context. + The reference to resolve. + The object that was resolved from the reference. + + + + Gets the reference for the specified object. + + The serialization context. + The object to get a reference for. + The reference to the object. + + + + Determines whether the specified object is referenced. + + The serialization context. + The object to test for a reference. + + true if the specified object is referenced; otherwise, false. + + + + + Adds a reference to the specified object. + + The serialization context. + The reference. + The object to reference. + + + + Allows users to control class loading and mandate what class to load. + + + + + When implemented, controls the binding of a serialized object to a type. + + Specifies the name of the serialized object. + Specifies the name of the serialized object + The type of the object the formatter creates a new instance of. + + + + When implemented, controls the binding of a serialized object to a type. + + The type of the object the formatter creates a new instance of. + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + + + Represents a trace writer. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of will exclude messages and include , + and messages. + + The that will be used to filter the trace messages passed to the writer. + + + + Writes the specified trace level, message and optional exception. + + The at which to write this trace. + The trace message. + The trace exception. This parameter is optional. + + + + Provides methods to get and set values. + + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + Contract details for a used by the . + + + + + Gets the of the collection items. + + The of the collection items. + + + + Gets a value indicating whether the collection type is a multidimensional array. + + true if the collection type is a multidimensional array; otherwise, false. + + + + Gets or sets the function used to create the object. When set this function will override . + + The function used to create the object. + + + + Gets a value indicating whether the creator has a parameter with the collection values. + + true if the creator has a parameter with the collection values; otherwise, false. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets or sets the default collection items . + + The converter. + + + + Gets or sets a value indicating whether the collection items preserve object references. + + true if collection items preserve object references; otherwise, false. + + + + Gets or sets the collection item reference loop handling. + + The reference loop handling. + + + + Gets or sets the collection item type name handling. + + The type name handling. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Handles serialization callback events. + + The object that raised the callback event. + The streaming context. + + + + Handles serialization error callback events. + + The object that raised the callback event. + The streaming context. + The error context. + + + + Sets extension data for an object during deserialization. + + The object to set extension data on. + The extension data key. + The extension data value. + + + + Gets extension data for an object during serialization. + + The object to set extension data on. + + + + Contract details for a used by the . + + + + + Gets the underlying type for the contract. + + The underlying type for the contract. + + + + Gets or sets the type created during deserialization. + + The type created during deserialization. + + + + Gets or sets whether this type contract is serialized as a reference. + + Whether this type contract is serialized as a reference. + + + + Gets or sets the default for this contract. + + The converter. + + + + Gets or sets all methods called immediately after deserialization of the object. + + The methods called immediately after deserialization of the object. + + + + Gets or sets all methods called during deserialization of the object. + + The methods called during deserialization of the object. + + + + Gets or sets all methods called after serialization of the object graph. + + The methods called after serialization of the object graph. + + + + Gets or sets all methods called before serialization of the object. + + The methods called before serialization of the object. + + + + Gets or sets all method called when an error is thrown during the serialization of the object. + + The methods called when an error is thrown during the serialization of the object. + + + + Gets or sets the default creator method used to create the object. + + The default creator method used to create the object. + + + + Gets or sets a value indicating whether the default creator is non-public. + + true if the default object creator is non-public; otherwise, false. + + + + Contract details for a used by the . + + + + + Gets or sets the dictionary key resolver. + + The dictionary key resolver. + + + + Gets the of the dictionary keys. + + The of the dictionary keys. + + + + Gets the of the dictionary values. + + The of the dictionary values. + + + + Gets or sets the function used to create the object. When set this function will override . + + The function used to create the object. + + + + Gets a value indicating whether the creator has a parameter with the dictionary values. + + true if the creator has a parameter with the dictionary values; otherwise, false. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets the object's properties. + + The object's properties. + + + + Gets or sets the property name resolver. + + The property name resolver. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets or sets the object constructor. + + The object constructor. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets or sets the object member serialization. + + The member object serialization. + + + + Gets or sets a value that indicates whether the object's properties are required. + + + A value indicating whether the object's properties are required. + + + + + Gets or sets how the object's properties with null values are handled during serialization and deserialization. + + How the object's properties with null values are handled during serialization and deserialization. + + + + Gets the object's properties. + + The object's properties. + + + + Gets a collection of instances that define the parameters used with . + + + + + Gets or sets the function used to create the object. When set this function will override . + This function is called with a collection of arguments which are defined by the collection. + + The function used to create the object. + + + + Gets or sets the extension data setter. + + + + + Gets or sets the extension data getter. + + + + + Gets or sets the extension data value type. + + + + + Gets or sets the extension data name resolver. + + The extension data name resolver. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Maps a JSON property to a .NET member or constructor parameter. + + + + + Gets or sets the name of the property. + + The name of the property. + + + + Gets or sets the type that declared this property. + + The type that declared this property. + + + + Gets or sets the order of serialization of a member. + + The numeric order of serialization. + + + + Gets or sets the name of the underlying member or parameter. + + The name of the underlying member or parameter. + + + + Gets the that will get and set the during serialization. + + The that will get and set the during serialization. + + + + Gets or sets the for this property. + + The for this property. + + + + Gets or sets the type of the property. + + The type of the property. + + + + Gets or sets the for the property. + If set this converter takes precedence over the contract converter for the property type. + + The converter. + + + + Gets or sets the member converter. + + The member converter. + + + + Gets or sets a value indicating whether this is ignored. + + true if ignored; otherwise, false. + + + + Gets or sets a value indicating whether this is readable. + + true if readable; otherwise, false. + + + + Gets or sets a value indicating whether this is writable. + + true if writable; otherwise, false. + + + + Gets or sets a value indicating whether this has a member attribute. + + true if has a member attribute; otherwise, false. + + + + Gets the default value. + + The default value. + + + + Gets or sets a value indicating whether this is required. + + A value indicating whether this is required. + + + + Gets or sets a value indicating whether this property preserves object references. + + + true if this instance is reference; otherwise, false. + + + + + Gets or sets the property null value handling. + + The null value handling. + + + + Gets or sets the property default value handling. + + The default value handling. + + + + Gets or sets the property reference loop handling. + + The reference loop handling. + + + + Gets or sets the property object creation handling. + + The object creation handling. + + + + Gets or sets or sets the type name handling. + + The type name handling. + + + + Gets or sets a predicate used to determine whether the property should be serialized. + + A predicate used to determine whether the property should be serialized. + + + + Gets or sets a predicate used to determine whether the property should be deserialized. + + A predicate used to determine whether the property should be deserialized. + + + + Gets or sets a predicate used to determine whether the property should be serialized. + + A predicate used to determine whether the property should be serialized. + + + + Gets or sets an action used to set whether the property has been deserialized. + + An action used to set whether the property has been deserialized. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Gets or sets the converter used when serializing the property's collection items. + + The collection's items converter. + + + + Gets or sets whether this property's collection items are serialized as a reference. + + Whether this property's collection items are serialized as a reference. + + + + Gets or sets the type name handling used when serializing the property's collection items. + + The collection's items type name handling. + + + + Gets or sets the reference loop handling used when serializing the property's collection items. + + The collection's items reference loop handling. + + + + A collection of objects. + + + + + Initializes a new instance of the class. + + The type. + + + + When implemented in a derived class, extracts the key from the specified element. + + The element from which to extract the key. + The key for the specified element. + + + + Adds a object. + + The property to add to the collection. + + + + Gets the closest matching object. + First attempts to get an exact case match of and then + a case insensitive match. + + Name of the property. + A matching property if found. + + + + Gets a property by property name. + + The name of the property to get. + Type property name string comparison. + A matching property if found. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Lookup and create an instance of the type described by the argument. + + The type to create. + Optional arguments to pass to an initializing constructor of the JsonConverter. + If null, the default constructor is used. + + + + Represents a trace writer that writes to memory. When the trace message limit is + reached then old trace messages will be removed as new messages are added. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of will exclude messages and include , + and messages. + + + The that will be used to filter the trace messages passed to the writer. + + + + + Initializes a new instance of the class. + + + + + Writes the specified trace level, message and optional exception. + + The at which to write this trace. + The trace message. + The trace exception. This parameter is optional. + + + + Returns an enumeration of the most recent trace messages. + + An enumeration of the most recent trace messages. + + + + Returns a of the most recent trace messages. + + + A of the most recent trace messages. + + + + + A base class for resolving how property names and dictionary keys are serialized. + + + + + A flag indicating whether dictionary keys should be processed. + Defaults to false. + + + + + A flag indicating whether extension data names should be processed. + Defaults to false. + + + + + A flag indicating whether explicitly specified property names, + e.g. a property name customized with a , should be processed. + Defaults to false. + + + + + Gets the serialized name for a given property name. + + The initial property name. + A flag indicating whether the property has had a name explicitly specified. + The serialized property name. + + + + Gets the serialized name for a given extension data name. + + The initial extension data name. + The serialized extension data name. + + + + Gets the serialized key for a given dictionary key. + + The initial dictionary key. + The serialized dictionary key. + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Represents a method that constructs an object. + + The object type to create. + + + + When applied to a method, specifies that the method is called when an error occurs serializing an object. + + + + + Provides methods to get attributes from a , , or . + + + + + Initializes a new instance of the class. + + The instance to get attributes for. This parameter should be a , , or . + + + + Returns a collection of all of the attributes, or an empty collection if there are no attributes. + + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. + + The type of the attributes. + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Get and set values for a using reflection. + + + + + Initializes a new instance of the class. + + The member info. + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + A snake case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Specifies how strings are escaped when writing JSON text. + + + + + Only control characters (e.g. newline) are escaped. + + + + + All non-ASCII and control characters (e.g. newline) are escaped. + + + + + HTML (<, >, &, ', ") and control characters (e.g. newline) are escaped. + + + + + Indicates the method that will be used during deserialization for locating and loading assemblies. + + + + + In simple mode, the assembly used during deserialization need not match exactly the assembly used during serialization. Specifically, the version numbers need not match as the LoadWithPartialName method of the class is used to load the assembly. + + + + + In full mode, the assembly used during deserialization must match exactly the assembly used during serialization. The Load method of the class is used to load the assembly. + + + + + Specifies type name handling options for the . + + + should be used with caution when your application deserializes JSON from an external source. + Incoming types should be validated with a custom + when deserializing with a value other than . + + + + + Do not include the .NET type name when serializing types. + + + + + Include the .NET type name when serializing into a JSON object structure. + + + + + Include the .NET type name when serializing into a JSON array structure. + + + + + Always include the .NET type name when serializing. + + + + + Include the .NET type name when the type of the object being serialized is not the same as its declared type. + Note that this doesn't include the root serialized object by default. To include the root object's type name in JSON + you must specify a root type object with + or . + + + + + Determines whether the collection is null or empty. + + The collection. + + true if the collection is null or empty; otherwise, false. + + + + + Adds the elements of the specified collection to the specified generic . + + The list to add to. + The collection of elements to add. + + + + Converts the value to the specified type. If the value is unable to be converted, the + value is checked whether it assignable to the specified type. + + The value to convert. + The culture to use when converting. + The type to convert or cast the value to. + + The converted type. If conversion was unsuccessful, the initial value + is returned if assignable to the target type. + + + + + Helper method for generating a MetaObject which calls a + specific method on Dynamic that returns a result + + + + + Helper method for generating a MetaObject which calls a + specific method on Dynamic, but uses one of the arguments for + the result. + + + + + Helper method for generating a MetaObject which calls a + specific method on Dynamic, but uses one of the arguments for + the result. + + + + + Returns a Restrictions object which includes our current restrictions merged + with a restriction limiting our type + + + + + Helper class for serializing immutable collections. + Note that this is used by all builds, even those that don't support immutable collections, in case the DLL is GACed + https://github.com/JamesNK/Newtonsoft.Json/issues/652 + + + + + Gets the type of the typed collection's items. + + The type. + The type of the typed collection's items. + + + + Gets the member's underlying type. + + The member. + The underlying type of the member. + + + + Determines whether the member is an indexed property. + + The member. + + true if the member is an indexed property; otherwise, false. + + + + + Determines whether the property is an indexed property. + + The property. + + true if the property is an indexed property; otherwise, false. + + + + + Gets the member's value on the object. + + The member. + The target object. + The member's value on the object. + + + + Sets the member's value on the target object. + + The member. + The target. + The value. + + + + Determines whether the specified MemberInfo can be read. + + The MemberInfo to determine whether can be read. + /// if set to true then allow the member to be gotten non-publicly. + + true if the specified MemberInfo can be read; otherwise, false. + + + + + Determines whether the specified MemberInfo can be set. + + The MemberInfo to determine whether can be set. + if set to true then allow the member to be set non-publicly. + if set to true then allow the member to be set if read-only. + + true if the specified MemberInfo can be set; otherwise, false. + + + + + Builds a string. Unlike this class lets you reuse its internal buffer. + + + + + Determines whether the string is all white space. Empty string will return false. + + The string to test whether it is all white space. + + true if the string is all white space; otherwise, false. + + + + + Specifies the state of the . + + + + + An exception has been thrown, which has left the in an invalid state. + You may call the method to put the in the Closed state. + Any other method calls result in an being thrown. + + + + + The method has been called. + + + + + An object is being written. + + + + + An array is being written. + + + + + A constructor is being written. + + + + + A property is being written. + + + + + A write method has not been called. + + + + diff --git a/tests/Trinity.Tests.Virtuoso/bin/Release/Ontologies/dces.ttl b/tests/Trinity.Tests.Virtuoso/bin/Release/Ontologies/dces.ttl new file mode 100644 index 0000000..4510e02 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Release/Ontologies/dces.ttl @@ -0,0 +1,177 @@ +@prefix rdf: . +@prefix owl: . +@prefix skos: . +@prefix dcam: . +@prefix dcterms: . +@prefix rdfs: . + + + dcterms:modified "2013-01-03"^^ ; + dcterms:publisher ; + dcterms:title "Dublin Core Metadata Element Set, Version 1.1"@en . + + + dcterms:description "Examples of a Contributor include a person, an organization, or a service. Typically, the name of a Contributor should be used to indicate the entity."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "An entity responsible for making contributions to the resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Contributor"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Spatial topic and spatial applicability may be a named place or a location specified by its geographic coordinates. Temporal topic may be a named period, date, or date range. A jurisdiction may be a named administrative entity or a geographic place to which the resource applies. Recommended best practice is to use a controlled vocabulary such as the Thesaurus of Geographic Names [TGN]. Where appropriate, named places or time periods can be used in preference to numeric identifiers such as sets of coordinates or date ranges."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "The spatial or temporal topic of the resource, the spatial applicability of the resource, or the jurisdiction under which the resource is relevant."@en ; + rdfs:isDefinedBy ; + rdfs:label "Coverage"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Examples of a Creator include a person, an organization, or a service. Typically, the name of a Creator should be used to indicate the entity."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "An entity primarily responsible for making the resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Creator"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Date may be used to express temporal information at any level of granularity. Recommended best practice is to use an encoding scheme, such as the W3CDTF profile of ISO 8601 [W3CDTF]."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "A point or period of time associated with an event in the lifecycle of the resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Date"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Description may include but is not limited to: an abstract, a table of contents, a graphical representation, or a free-text account of the resource."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "An account of the resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Description"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Examples of dimensions include size and duration. Recommended best practice is to use a controlled vocabulary such as the list of Internet Media Types [MIME]."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "The file format, physical medium, or dimensions of the resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Format"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Recommended best practice is to identify the resource by means of a string conforming to a formal identification system. "@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "An unambiguous reference to the resource within a given context."@en ; + rdfs:isDefinedBy ; + rdfs:label "Identifier"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Recommended best practice is to use a controlled vocabulary such as RFC 4646 [RFC4646]."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "A language of the resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Language"@en ; + rdfs:seeAlso ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Examples of a Publisher include a person, an organization, or a service. Typically, the name of a Publisher should be used to indicate the entity."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "An entity responsible for making the resource available."@en ; + rdfs:isDefinedBy ; + rdfs:label "Publisher"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Recommended best practice is to identify the related resource by means of a string conforming to a formal identification system. "@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "A related resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Relation"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Typically, rights information includes a statement about various property rights associated with the resource, including intellectual property rights."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "Information about rights held in and over the resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Rights"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "The described resource may be derived from the related resource in whole or in part. Recommended best practice is to identify the related resource by means of a string conforming to a formal identification system."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "A related resource from which the described resource is derived."@en ; + rdfs:isDefinedBy ; + rdfs:label "Source"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Typically, the subject will be represented using keywords, key phrases, or classification codes. Recommended best practice is to use a controlled vocabulary."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2012-06-14"^^ ; + a rdf:Property ; + rdfs:comment "The topic of the resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Subject"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "A name given to the resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Title"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Recommended best practice is to use a controlled vocabulary such as the DCMI Type Vocabulary [DCMITYPE]. To describe the file format, physical medium, or dimensions of the resource, use the Format element."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "The nature or genre of the resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Type"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + diff --git a/tests/Trinity.Tests.Virtuoso/bin/Release/Ontologies/fo af.rdf b/tests/Trinity.Tests.Virtuoso/bin/Release/Ontologies/fo af.rdf new file mode 100644 index 0000000..68d0700 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Release/Ontologies/fo af.rdf @@ -0,0 +1,609 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Label Property + A foaf:LabelProperty is any RDF property with texual values that serve as labels. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/Trinity.Tests.Virtuoso/bin/Release/Ontologies/foaf.rdf b/tests/Trinity.Tests.Virtuoso/bin/Release/Ontologies/foaf.rdf new file mode 100644 index 0000000..68d0700 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Release/Ontologies/foaf.rdf @@ -0,0 +1,609 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Label Property + A foaf:LabelProperty is any RDF property with texual values that serve as labels. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/Trinity.Tests.Virtuoso/bin/Release/Ontologies/nco.trig b/tests/Trinity.Tests.Virtuoso/bin/Release/Ontologies/nco.trig new file mode 100644 index 0000000..c7b560c --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Release/Ontologies/nco.trig @@ -0,0 +1,811 @@ +# +# Copyright (c) 2007 NEPOMUK Consortium +# Copyright (c) 2009-2011 Sebastian Trueg +# +# All rights reserved, licensed under either CC-BY or BSD. +# +# You are free: +# * to Share - to copy, distribute and transmit the work +# * to Remix - to adapt the work +# Under the following conditions: +# * Attribution - You must attribute the work in the manner specified by the author +# or licensor (but not in any way that suggests that they endorse you or your use +# of the work). +# +# Redistribution and use in source and binary forms, with or without modification, +# are permitted provided that the following conditions are met: +# * Redistributions of source code must retain the above copyright notice, this +# list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this +# list of conditions and the following disclaimer in the documentation and/or +# other materials provided with the distribution. +# * Neither the names of the authors nor the names of contributors may +# be used to endorse or promote products derived from this ontology without +# specific prior written permission. +# +# THIS ONTOLOGY IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +# THIS ONTOLOGY, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +@prefix exif: . +@prefix nid3: . +@prefix nrl: . +@prefix nfo: . +@prefix xsd: . +@prefix tmo: . +@prefix protege: . +@prefix nmo: . +@prefix rdfs: . +@prefix nexif: . +@prefix ncal: . +@prefix pimo: . +@prefix dcterms: . +@prefix nao: . +@prefix geo: . +@prefix dc: . +@prefix nie: . +@prefix nco: . +@prefix rdf: . + +nco: {nco:region + a rdf:Property ; + rdfs:comment "Region. Inspired by the fifth part of the value of the 'ADR' property as defined in RFC 2426, sec. 3.2.1" ; + rdfs:domain nco:PostalAddress ; + rdfs:label "region" ; + rdfs:range xsd:string ; + nrl:maxCardinality 1 . + + nco:key + a rdf:Property ; + rdfs:comment "An encryption key attached to a contact. Inspired by the KEY property defined in RFC 2426 sec. 3.7.2" ; + rdfs:domain nco:Contact ; + rdfs:label "key" ; + rdfs:range nie:DataObject ; + rdfs:subPropertyOf nie:hasPart . + + nco:nameHonorificSuffix + a rdf:Property ; + rdfs:comment "A suffix for the name of the Object represented by the given object. See documentation for the 'nameFamily' for details." ; + rdfs:domain nco:PersonContact ; + rdfs:label "nameHonorificSuffix" ; + rdfs:range xsd:string . + + nco:url + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "A uniform resource locator associated with the given role of a Contact. Inspired by the 'URL' property defined in RFC 2426 Sec. 3.6.8." ; + rdfs:domain nco:Role ; + rdfs:label "url" ; + rdfs:range rdfs:Resource . + + nco:VoicePhoneNumber + a rdfs:Class ; + rdfs:comment "A telephone number with voice communication capabilities. Class inspired by the TYPE=voice parameter of the TEL property defined in RFC 2426 sec. 3.3.1" ; + rdfs:label "VoicePhoneNumber" ; + rdfs:subClassOf nco:PhoneNumber . + + nco:nameFamily + a rdf:Property ; + rdfs:comment "The family name of an Object represented by this Contact. These applies to people that have more than one given name. The 'first' one is considered 'the' given name (see nameGiven) property. All additional ones are considered 'additional' names. The name inherited from parents is the 'family name'. e.g. For Dr. John Phil Paul Stevenson Jr. M.D. A.C.P. we have contact with: honorificPrefix: 'Dr.', nameGiven: 'John', nameAdditional: 'Phil', nameAdditional: 'Paul', nameFamily: 'Stevenson', honorificSuffix: 'Jr.', honorificSuffix: 'M.D.', honorificSuffix: 'A.C.P.'. These properties form an equivalent of the compound 'N' property as defined in RFC 2426 Sec. 3.1.2" ; + rdfs:domain nco:PersonContact ; + rdfs:label "nameFamily" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" . + + nco:VideoTelephoneNumber + a rdfs:Class ; + rdfs:comment "A Video telephone number. A class inspired by the TYPE=video parameter of the TEL property defined in RFC 2426 sec. 3.3.1" ; + rdfs:label "VideoTelephoneNumber" ; + rdfs:subClassOf nco:VoicePhoneNumber . + + nco:contactUID + a rdf:Property ; + rdfs:comment "A value that represents a globally unique identifier corresponding to the individual or resource associated with the Contact. An equivalent of the 'UID' property defined in RFC 2426 Sec. 3.6.7" ; + rdfs:domain nco:Contact ; + rdfs:label "contactUID" ; + rdfs:range xsd:string ; + rdfs:subPropertyOf nie:identifier ; + nrl:maxCardinality "1" . + + nco:publisher + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "An entity responsible for making the InformationElement available." ; + rdfs:domain nie:InformationElement ; + rdfs:label "publisher" ; + rdfs:range nco:Contact ; + rdfs:subPropertyOf dc:publisher . + + nco:country + a rdf:Property ; + rdfs:comment "A part of an address specyfing the country. Inspired by the seventh part of the value of the 'ADR' property as defined in RFC 2426, sec. 3.2.1" ; + rdfs:domain nco:PostalAddress ; + rdfs:label "country" ; + rdfs:range xsd:string ; + nrl:maxCardinality 1 . + + nco:nameHonorificPrefix + a rdf:Property ; + rdfs:comment "A prefix for the name of the object represented by this Contact. See documentation for the 'nameFamily' property for details." ; + rdfs:domain nco:PersonContact ; + rdfs:label "nameHonorificPrefix" ; + rdfs:range xsd:string . + + nco:extendedAddress + a rdf:Property ; + rdfs:comment "An extended part of an address. This field might be used to express parts of an address that aren't include in the name of the Contact but also aren't part of the actual location. Usually the streed address and following fields are enough for a postal letter to arrive. Examples may include ('University of California Campus building 45', 'Sears Tower 34th floor' etc.) Inspired by the second part of the value of the 'ADR' property as defined in RFC 2426, sec. 3.2.1" ; + rdfs:domain nco:PostalAddress ; + rdfs:label "extendedAddress" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" . + + nco:IMAccount + a rdfs:Class ; + rdfs:comment "An account in an Instant Messaging system." ; + rdfs:label "IMAccount" ; + rdfs:subClassOf nco:ContactMedium . + + nco:hasIMAccount + a rdf:Property ; + rdfs:comment "Indicates that an Instant Messaging account owned by an entity represented by this contact." ; + rdfs:domain nco:Role ; + rdfs:label "hasIMAccount" ; + rdfs:range nco:IMAccount ; + rdfs:subPropertyOf nco:hasContactMedium . + + nco:IsdnNumber + a rdfs:Class ; + rdfs:comment "An ISDN phone number. Inspired by the (TYPE=isdn) parameter of the TEL property as defined in RFC 2426 sec 3.3.1." ; + rdfs:label "IsdnNumber" ; + rdfs:subClassOf nco:VoicePhoneNumber . + + nco:creator + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "Creator of an information element, an entity primarily responsible for the creation of the content of the data object." ; + rdfs:domain nie:InformationElement ; + rdfs:label "creator" ; + rdfs:range nco:Contact ; + rdfs:subPropertyOf dc:creator , nco:contributor , nao:creator . + + nco:hasLocation + a rdf:Property ; + rdfs:comment "Geographical location of the contact. Inspired by the 'GEO' property specified in RFC 2426 Sec. 3.4.2" ; + rdfs:domain nco:Contact ; + rdfs:label "hasLocation" ; + rdfs:range geo:Point ; + nrl:maxCardinality "1" . + + nco:birthday + a rdf:Property ; + rdfs:comment "Links a contact with the calendar event of his birthday. (NCAL version)"; + rdfs:label "birthday" ; + rdfs:domain nco:Contact ; + rdfs:range ncal:BirthdayEvent ; + nrl:maxCardinality "1" . + + nco:phoneNumber + a rdf:Property ; + rdfs:domain nco:PhoneNumber ; + rdfs:label "phoneNumber" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" . + + nco:nickname + a rdf:Property ; + rdfs:comment "A nickname of the Object represented by this Contact. This is an equivalent of the 'NICKNAME' property as defined in RFC 2426 Sec. 3.1.3." ; + rdfs:domain nco:Contact ; + rdfs:label "nickname" ; + rdfs:range xsd:string . + + nco:imStatus + a rdf:Property, nrl:NonDefiningProperty ; + rdfs:comment "Current status of the given IM account. When this property is set, the nco:imStatusType should also always be set. Applications should attempt to parse this property to determine the presence, only falling back to the nco:imStatusType property in the case that this property's value is unrecognised. Values for this property may include 'available', 'offline', 'busy' etc. The exact choice of them is unspecified, although it is recommended to follow the guidance of the Telepathy project when choosing a string identifier http://telepathy.freedesktop.org/spec/Connection_Interface_Simple_Presence.html#description" ; + rdfs:domain nco:IMAccount ; + rdfs:label "imStatus" ; + rdfs:range xsd:string ; + nrl:maxCardinality 1 . + + nco:imStatusType + a rdf:Property ; + rdfs:comment "Current status type of the given IM account. When this property is set, the nco:imStatus property should also always be set. Applications should attempt to parse the nco:imStatus property to determine the presence, only falling back to this property in the case that the nco:imStatus property's value is unrecognised." ; + rdfs:domain nco:IMAccount ; + rdfs:label "instant messaging status type" ; + rdfs:range nco:IMStatusType ; + nrl:maxCardinality 1 . + + nco:IMStatusType a rdfs:Class ; + rdfs:label "instant messaging status type" ; + rdfs:comment "The status type of an IMAccount. Based on the Connection_Presence_Type enumeration of the Telepathy project: http://telepathy.freedesktop.org/spec/Connection_Interface_Simple_Presence.html#Enum:Connection_Presence_Type" ; + rdfs:subClassOf rdfs:Resource . + + nco:IMStatusTypeOffline + a nco:IMStatusType ; + rdfs:label "offline" . + + nco:IMStatusTypeAvailable + a nco:IMStatusType ; + rdfs:label "available" . + + nco:IMStatusTypeAway + a nco:IMStatusType ; + rdfs:label "away" . + + nco:IMStatusTypeExtendedAway + a nco:IMStatusType ; + rdfs:label "extended away". + + nco:IMStatusTypeHidden + a nco:IMStatusType ; + rdfs:label "hidden" . + + nco:IMStatusTypeBusy + a nco:IMStatusType ; + rdfs:label "busy" . + + nco:IMStatusTypeUnknown + a nco:IMStatusType ; + rdfs:label "unknown" . + + nco:containsContact + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment """A property used to group contacts into contact groups. This + property was NOT defined in the VCARD standard. See documentation for the + 'ContactList' class for details""" ; + rdfs:domain nco:ContactList ; + rdfs:label "containsContact" ; + rdfs:range nco:ContactListDataObject ; + rdfs:subPropertyOf nie:hasPart . + + nco:department + a rdf:Property ; + rdfs:comment "Department. The organizational unit within the organization." ; + rdfs:domain nco:Affiliation ; + rdfs:label "department" ; + rdfs:range xsd:string . + + nco:imID + a rdf:Property ; + rdfs:comment "Identifier of the IM account. Examples of such identifier might include ICQ UINs, Jabber IDs, Skype names etc." ; + rdfs:domain nco:IMAccount ; + rdfs:label "imID" ; + rdfs:range xsd:string ; + rdfs:subPropertyOf nao:identifier . + + nco:addressLocation + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "The geographical location of a postal address." ; + rdfs:domain nco:PostalAddress ; + rdfs:label "addressLocation" ; + rdfs:range geo:Point ; + nrl:maxCardinality "1" . + + nco:note + a rdf:Property ; + rdfs:comment "A note about the object represented by this Contact. An equivalent for the 'NOTE' property defined in RFC 2426 Sec. 3.6.2" ; + rdfs:domain nco:Contact ; + rdfs:label "note" ; + rdfs:range xsd:string ; + rdfs:subPropertyOf nie:description . + + nco:representative + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "An object that represent an object represented by this Contact. Usually this property is used to link a Contact to an organization, to a contact to the representative of this organization the user directly interacts with. An equivalent for the 'AGENT' property defined in RFC 2426 Sec. 3.5.4" ; + rdfs:domain nco:Contact ; + rdfs:label "representative" ; + rdfs:range nco:Contact . + + nco:nameAdditional + a rdf:Property ; + rdfs:comment "Additional given name of an object represented by this contact. See documentation for 'nameFamily' property for details." ; + rdfs:domain nco:PersonContact ; + rdfs:label "nameAdditional" ; + rdfs:range xsd:string . + + nco:nameGiven + a rdf:Property ; + rdfs:comment "The given name for the object represented by this Contact. See documentation for 'nameFamily' property for details." ; + rdfs:domain nco:PersonContact ; + rdfs:label "nameGiven" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" . + + nco:PcsNumber + a rdfs:Class ; + rdfs:comment "Personal Communication Services Number. A class inspired by the TYPE=pcs parameter of the TEL property defined in RFC 2426 sec. 3.3.1" ; + rdfs:label "PcsNumber" ; + rdfs:subClassOf nco:VoicePhoneNumber . + + nco:ContactList + a rdfs:Class ; + rdfs:comment "A contact list, this class represents an addressbook or a contact list of an IM application. Contacts inside a contact list can belong to contact groups." ; + rdfs:label "ContactList" ; + rdfs:subClassOf nie:InformationElement . + + nco:fullname + a rdf:Property ; + rdfs:comment "To specify the formatted text corresponding to the name of the object the Contact represents. An equivalent of the FN property as defined in RFC 2426 Sec. 3.1.1." ; + rdfs:domain nco:Contact ; + rdfs:label "fullname" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" ; + rdfs:subPropertyOf nie:title . + + nco:ContactGroup + a rdfs:Class ; + rdfs:comment "A group of Contacts. Could be used to express a group in an addressbook or on a contact list of an IM application. One contact can belong to many groups." ; + rdfs:label "ContactGroup" ; + rdfs:subClassOf nie:InformationElement . + + nco:BbsNumber + a rdfs:Class ; + rdfs:comment "A Bulletin Board System (BBS) phone number. Inspired by the (TYPE=bbsl) parameter of the TEL property as defined in RFC 2426 sec 3.3.1." ; + rdfs:label "BbsNumber" ; + rdfs:subClassOf nco:ModemNumber . + + nco:Affiliation + a rdfs:Class ; + rdfs:comment "Aggregates three properties defined in RFC2426. Originally all three were attached directly to a person. One person could have only one title and one role within one organization. This class is intended to lift this limitation." ; + rdfs:label "Affiliation" ; + rdfs:subClassOf nco:Role . + + nco:streetAddress + a rdf:Property ; + rdfs:comment "The streed address. Inspired by the third part of the value of the 'ADR' property as defined in RFC 2426, sec. 3.2.1" ; + rdfs:domain nco:PostalAddress ; + rdfs:label "streetAddress" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" . + + nco:OrganizationContact + a rdfs:Class ; + rdfs:comment "A Contact that denotes on Organization." ; + rdfs:label "OrganizationContact" ; + rdfs:subClassOf nco:Contact . + + nco:PhoneNumber + a rdfs:Class ; + rdfs:comment "A telephone number." ; + rdfs:label "PhoneNumber" ; + rdfs:subClassOf nco:ContactMedium . + + nco:Contact + a rdfs:Class ; + rdfs:comment "A Contact. A piece of data that can provide means to identify or communicate with an entity." ; + rdfs:label "Contact" ; + rdfs:subClassOf nco:Role , nie:InformationElement , nao:Party . + + nco:ModemNumber + a rdfs:Class ; + rdfs:comment "A modem phone number. Inspired by the (TYPE=modem) parameter of the TEL property as defined in RFC 2426 sec 3.3.1." ; + rdfs:label "ModemNumber" ; + rdfs:subClassOf nco:PhoneNumber . + + nco:Role + a rdfs:Class ; + rdfs:comment "A role played by a contact. Contacts that denote people, can have many roles (e.g. see the hasAffiliation property and Affiliation class). Contacts that denote Organizations or other Agents usually have one role. Each role can introduce additional contact media." ; + rdfs:label "Role" ; + rdfs:subClassOf rdfs:Resource . + + nco:PagerNumber + a rdfs:Class ; + rdfs:comment "A pager phone number. Inspired by the (TYPE=pager) parameter of the TEL property as defined in RFC 2426 sec 3.3.1." ; + rdfs:label "PagerNumber" ; + rdfs:subClassOf nco:MessagingNumber . + + nco:hasPhoneNumber + a rdf:Property ; + rdfs:comment "A number for telephony communication with the object represented by this Contact. An equivalent of the 'TEL' property defined in RFC 2426 Sec. 3.3.1" ; + rdfs:domain nco:Role ; + rdfs:label "hasPhoneNumber" ; + rdfs:range nco:PhoneNumber ; + rdfs:subPropertyOf nco:hasContactMedium . + + nco:photo + a rdf:Property ; + rdfs:comment "Photograph attached to a Contact. The DataObject referred to by this property is usually interpreted as an nfo:Image. Inspired by the PHOTO property defined in RFC 2426 sec. 3.1.4" ; + rdfs:domain nco:Contact ; + rdfs:label "photo" ; + rdfs:range nie:DataObject ; + rdfs:subPropertyOf nie:hasPart . + + nco:contributor + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "An entity responsible for making contributions to the content of the InformationElement." ; + rdfs:domain nie:InformationElement ; + rdfs:label "contributor" ; + rdfs:range nco:Contact ; + rdfs:subPropertyOf dc:contributor , nao:contributor . + + nco:logo + a rdf:Property ; + rdfs:comment "Logo of a company. Inspired by the LOGO property defined in RFC 2426 sec. 3.5.3" ; + rdfs:domain nco:OrganizationContact ; + rdfs:label "logo" ; + rdfs:range nie:DataObject ; + rdfs:subPropertyOf nie:hasPart . + + nco:websiteUrl + a rdf:Property ; + rdfs:comment "A url of a website." ; + rdfs:domain nco:Role ; + rdfs:label "websiteUrl" ; + rdfs:range rdfs:Resource ; + rdfs:subPropertyOf nco:url . + + nco:ContactMedium + a rdfs:Class ; + rdfs:comment "A superclass for all contact media - ways to contact an entity represented by a Contact instance. Some of the subclasses of this class (the various kinds of telephone numbers and postal addresses) have been inspired by the values of the TYPE parameter of ADR and TEL properties defined in RFC 2426 sec. 3.2.1. and 3.3.1 respectively. Each value is represented by an appropriate subclass with two major exceptions TYPE=home and TYPE=work. They are to be expressed by the roles these contact media are attached to i.e. contact media with TYPE=home parameter are to be attached to the default role (nco:Contact or nco:PersonContact), whereas media with TYPE=work parameter should be attached to nco:Affiliation or nco:OrganizationContact." ; + rdfs:label "ContactMedium" ; + rdfs:subClassOf rdfs:Resource . + + nco:Gender + a rdfs:Class ; + rdfs:comment "Gender. Instances of this class may include male and female." ; + rdfs:label "Gender" ; + rdfs:subClassOf rdfs:Resource . + + nco:male + a nco:Gender ; + rdfs:comment "A Male" ; + rdfs:label "male" . + + nco:birthDate + a rdf:Property ; + rdfs:comment "Birth date of the object represented by this Contact. An equivalent of the 'BDAY' property as defined in RFC 2426 Sec. 3.1.5." ; + rdfs:domain nco:Contact ; + rdfs:label "birthDate" ; + rdfs:range xsd:date ; + rdfs:subPropertyOf dc:date ; + nrl:maxCardinality 1 . + + nco:hasEmailAddress + a rdf:Property ; + rdfs:comment "An address for electronic mail communication with the object specified by this contact. An equivalent of the 'EMAIL' property as defined in RFC 2426 Sec. 3.3.1." ; + rdfs:domain nco:Role ; + rdfs:label "hasEmailAddress" ; + rdfs:range nco:EmailAddress ; + rdfs:subPropertyOf nco:hasContactMedium . + + nco:postalcode + a rdf:Property ; + rdfs:comment "Postal Code. Inspired by the sixth part of the value of the 'ADR' property as defined in RFC 2426, sec. 3.2.1" ; + rdfs:domain nco:PostalAddress ; + rdfs:label "postalcode" ; + rdfs:range xsd:string ; + nrl:maxCardinality 1 . + + nco:MessagingNumber + a rdfs:Class ; + rdfs:comment "A number that can accept textual messages." ; + rdfs:label "MessagingNumber" ; + rdfs:subClassOf nco:PhoneNumber . + + nco:org + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "Name of an organization or a unit within an organization the object represented by a Contact is associated with. An equivalent of the 'ORG' property defined in RFC 2426 Sec. 3.5.5" ; + rdfs:domain nco:Affiliation ; + rdfs:label "org" ; + rdfs:range nco:OrganizationContact ; + nrl:maxCardinality "1" . + + nco:PersonContact + a rdfs:Class ; + rdfs:comment "A Contact that denotes a Person. A person can have multiple Affiliations." ; + rdfs:label "PersonContact" ; + rdfs:subClassOf nco:Contact . + + nco:ParcelDeliveryAddress + a rdfs:Class ; + rdfs:comment "Parcel Delivery Addresse. Class inspired by TYPE=parcel parameter of the ADR property defined in RFC 2426 sec. 3.2.1" ; + rdfs:label "ParcelDeliveryAddress" ; + rdfs:subClassOf nco:PostalAddress . + + nco:title + a rdf:Property ; + rdfs:comment "The official title the object represented by this contact in an organization. E.g. 'CEO', 'Director, Research and Development', 'Junior Software Developer/Analyst' etc. An equivalent of the 'TITLE' property defined in RFC 2426 Sec. 3.5.1" ; + rdfs:domain nco:Affiliation ; + rdfs:label "title" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" . + + nco:AudioIMAccount + a rdfs:Class ; + nao:deprecated true ; + rdfs:comment "Deprecated in favour of nco:imCapabilityAudio." ; + rdfs:label "AudioIMAccount" ; + rdfs:subClassOf nco:IMAccount . + + nco:voiceMail + a rdf:Property ; + rdfs:comment "Indicates if the given number accepts voice mail. (e.g. there is an answering machine). Inspired by TYPE=msg parameter of the TEL property defined in RFC 2426 sec. 3.3.1" ; + rdfs:domain nco:VoicePhoneNumber ; + rdfs:label "voiceMail" ; + rdfs:range xsd:boolean ; + nrl:maxCardinality "1" . + + nco:PostalAddress + a rdfs:Class ; + rdfs:comment "A postal address. A class aggregating the various parts of a value for the 'ADR' property as defined in RFC 2426 Sec. 3.2.1." ; + rdfs:label "PostalAddress" ; + rdfs:subClassOf nco:ContactMedium . + + nco:belongsToGroup + a rdf:Property ; + rdfs:comment "Links a Contact with a ContactGroup it belongs to." ; + rdfs:domain nco:Contact ; + rdfs:label "belongsToGroup" ; + rdfs:range nco:ContactGroup . + + nco:hasContactMedium + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "A superProperty for all properties linking a Contact to an instance of a contact medium." ; + rdfs:domain nco:Role ; + rdfs:label "hasContactMedium" ; + rdfs:range nco:ContactMedium . + + nco:contactGroupName + a rdf:Property ; + rdfs:comment """The name of the contact group. This property was NOT defined + in the VCARD standard. See documentation of the 'ContactGroup' class for + details""" ; + rdfs:domain nco:ContactGroup ; + rdfs:label "contactGroupName" ; + rdfs:range xsd:string ; + rdfs:subPropertyOf dc:title ; + nrl:maxCardinality 1 . + + nco:FaxNumber + a rdfs:Class ; + rdfs:comment "A fax number. Inspired by the (TYPE=fax) parameter of the TEL property as defined in RFC 2426 sec 3.3.1." ; + rdfs:label "FaxNumber" ; + rdfs:subClassOf nco:PhoneNumber . + + nco:contactMediumComment + a rdf:Property ; + rdfs:comment "A comment about the contact medium. (Deprecated in favor of nie:comment or nao:description - based on the context)" ; + rdfs:domain nco:ContactMedium ; + rdfs:label "contactMediumComment" ; + rdfs:range xsd:string ; + nao:deprecated true. + + nco:foafUrl + a rdf:Property ; + rdfs:comment "The URL of the FOAF file." ; + rdfs:domain nco:Role ; + rdfs:label "foafUrl" ; + rdfs:range rdfs:Resource ; + rdfs:subPropertyOf nco:url . + + nco:CarPhoneNumber + a rdfs:Class ; + rdfs:comment "A car phone number. Inspired by the (TYPE=car) parameter of the TEL property as defined in RFC 2426 sec 3.3.1." ; + rdfs:label "CarPhoneNumber" ; + rdfs:subClassOf nco:VoicePhoneNumber . + + nco:ContactListDataObject + a rdfs:Class ; + rdfs:comment "An entity occuring on a contact list (usually interpreted as an nco:Contact)" ; + rdfs:label "ContactListDataObject" ; + rdfs:subClassOf nie:DataObject . + + nco:emailAddress + a rdf:Property ; + rdfs:domain nco:EmailAddress ; + rdfs:label "emailAddress" ; + rdfs:range xsd:string ; + nrl:maxCardinality 1 . + + nco:InternationalDeliveryAddress + a rdfs:Class ; + rdfs:comment "International Delivery Addresse. Class inspired by TYPE=intl parameter of the ADR property defined in RFC 2426 sec. 3.2.1" ; + rdfs:label "InternationalDeliveryAddress" ; + rdfs:subClassOf nco:PostalAddress . + + nco:locality + a rdf:Property ; + rdfs:comment "Locality or City. Inspired by the fourth part of the value of the 'ADR' property as defined in RFC 2426, sec. 3.2.1" ; + rdfs:domain nco:PostalAddress ; + rdfs:label "locality" ; + rdfs:range xsd:string ; + nrl:maxCardinality 1 . + + nco:VideoIMAccount + a rdfs:Class ; + nao:deprecated true ; + rdfs:comment "Deprecated in favour of nco:imCapabilityVideo." ; + rdfs:label "VideoIMAccount" ; + rdfs:subClassOf nco:AudioIMAccount . + + nco:sound + a rdf:Property ; + rdfs:comment "Sound clip attached to a Contact. The DataObject referred to by this property is usually interpreted as an nfo:Audio. Inspired by the SOUND property defined in RFC 2425 sec. 3.6.6." ; + rdfs:domain nco:Contact ; + rdfs:label "sound" ; + rdfs:range nie:DataObject ; + rdfs:subPropertyOf nie:hasPart . + + nco:EmailAddress + a rdfs:Class ; + rdfs:comment "An email address. The recommended best practice is to use mailto: uris for instances of this class." ; + rdfs:label "EmailAddress" ; + rdfs:subClassOf nco:ContactMedium . + + nco:imNickname + a rdf:Property ; + rdfs:comment "A nickname attached to a particular IM Account." ; + rdfs:domain nco:IMAccount ; + rdfs:label "imNickname" ; + rdfs:range xsd:string . + + nco:hobby + a rdf:Property ; + rdfs:comment "A hobby associated with a PersonContact. This property can be used to express hobbies and interests." ; + rdfs:domain nco:PersonContact ; + rdfs:label "hobby" ; + rdfs:range xsd:string . + + nco:blogUrl + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "A Blog url." ; + rdfs:domain nco:Role ; + rdfs:label "blogUrl" ; + rdfs:range rdfs:Resource ; + rdfs:subPropertyOf nco:url . + + nco:CellPhoneNumber + a rdfs:Class ; + rdfs:comment "A cellular phone number. Inspired by the (TYPE=cell) parameter of the TEL property as defined in RFC 2426 sec 3.3.1. Usually a cellular phone can accept voice calls as well as textual messages (SMS), therefore this class has two superclasses." ; + rdfs:label "CellPhoneNumber" ; + rdfs:subClassOf nco:MessagingNumber , nco:VoicePhoneNumber . + + nco:role + a rdf:Property ; + rdfs:comment "Role an object represented by this contact represents in the organization. This might include 'Programmer', 'Manager', 'Sales Representative'. Be careful to avoid confusion with the title property. An equivalent of the 'ROLE' property as defined in RFC 2426. Sec. 3.5.2. Note the difference between nco:Role class and nco:role property." ; + rdfs:domain nco:Affiliation ; + rdfs:label "role" ; + rdfs:range xsd:string . + + nco:DomesticDeliveryAddress + a rdfs:Class ; + rdfs:comment "Domestic Delivery Addresse. Class inspired by TYPE=dom parameter of the ADR property defined in RFC 2426 sec. 3.2.1" ; + rdfs:label "DomesticDeliveryAddress" ; + rdfs:subClassOf nco:PostalAddress . + + nco:female + a nco:Gender ; + rdfs:comment "A Female" ; + rdfs:label "female" . + + nco:hasPostalAddress + a rdf:Property ; + rdfs:comment "The default Address for a Contact. An equivalent of the 'ADR' property as defined in RFC 2426 Sec. 3.2.1." ; + rdfs:domain nco:Role ; + rdfs:label "hasPostalAddress" ; + rdfs:range nco:PostalAddress ; + rdfs:subPropertyOf nco:hasContactMedium . + + nco:imAccountType + a rdf:Property ; + rdfs:comment "Type of the IM account. This may be the name of the service that provides the IM functionality. Examples might include Jabber, ICQ, MSN etc" ; + rdfs:domain nco:IMAccount ; + rdfs:label "imAccountType" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" . + + nco:pobox + a rdf:Property ; + rdfs:comment "Post office box. This is the first part of the value of the 'ADR' property as defined in RFC 2426, sec. 3.2.1" ; + rdfs:domain nco:PostalAddress ; + rdfs:label "pobox" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1". + + nco:hasAffiliation + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "Links a PersonContact with an Affiliation." ; + rdfs:domain nco:PersonContact ; + rdfs:label "hasAffiliation" ; + rdfs:range nco:Affiliation . + + nco:gender + a rdf:Property ; + rdfs:comment "Gender of the given contact." ; + rdfs:domain nco:PersonContact ; + rdfs:label "gender" ; + rdfs:range nco:Gender ; + nrl:maxCardinality 1 . + + nco:imStatusMessage + a rdf:Property, nrl:NonDefiningProperty ; + rdfs:comment "A feature common in most IM systems. A message left by the user for all his/her contacts to see." ; + rdfs:domain nco:IMAccount ; + rdfs:label "imStatusMessage" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" . + + nco:start + a rdf:Property ; + rdfs:comment "Start datetime for the role, such as: the datetime of joining a project or organization, datetime of starting employment, datetime of marriage" ; + rdfs:label "start" ; + rdfs:domain nco:Role ; + rdfs:range xsd:dateTime ; + nrl:maxCardinality 1 . + + nco:end + a rdf:Property; + rdfs:comment "End datetime for the role, such as: the datetime of leaving a project or organization, datetime of ending employment, datetime of divorce. If absent or set to a date in the future, the role is currently active." ; + rdfs:label "end" ; + rdfs:domain nco:Role ; + rdfs:range xsd:dateTime ; + nrl:maxCardinality 1 . + + nco:IMCapability a rdfs:Class ; + rdfs:label "imCapability" ; + rdfs:comment "Capabilities of a cetain IMAccount." ; + rdfs:subClassOf rdfs:Resource . + + nco:imCapabilityText a nco:IMCapability . + nco:imCapabilityAudio a nco:IMCapability . + nco:imCapabilityVideo a nco:IMCapability . + + nco:hasIMCapability + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "Indicates that an IMAccount has a certain capability." ; + rdfs:domain nco:IMAccount ; + rdfs:label "hasIMCapability" ; + rdfs:range nco:IMCapability . + + nco:isAccessedBy + a rdf:Property ; + rdfs:comment "Indicates the local IMAccount by which this IMAccount is accessed. This does not imply membership of a contact list." ; + rdfs:label "isKnownBy" ; + rdfs:domain nco:IMAccount ; + rdfs:range nco:IMAccount . + + nco:publishesPresenceTo + a rdf:Property ; + rdfs:comment "Indicates that this IMAccount publishes its presence information to the other IMAccount." ; + rdfs:label "publishesPresenceTo" ; + rdfs:domain nco:IMAccount ; + rdfs:range nco:IMAccount . + + nco:requestedPresenceSubscriptionTo + a rdf:Property ; + rdfs:comment "Indicates that this IMAccount has requested a subscription to the presence information of the other IMAccount." ; + rdfs:label "requestedPresenceSubscriptionTo" ; + rdfs:domain nco:IMAccount ; + rdfs:range nco:IMAccount . + + nco:isBlocked + a rdf:Property ; + rdfs:comment "Indicates that this IMAccount has been blocked." ; + rdfs:domain nco:IMAccount ; + rdfs:label "isBlocked" ; + rdfs:range xsd:boolean ; + nrl:maxCardinality "1" . +} + + {nco: a nrl:Ontology ; + nao:creator ; + nao:hasDefaultNamespace + "http://www.semanticdesktop.org/ontologies/2007/03/22/nco#" ; + nao:hasDefaultNamespaceAbbreviation + "nco" ; + nao:lastModified "2011-12-13T12:44:58Z" ; + nao:status "Unstable" ; + nao:updatable "0 " ; + nao:version "0.10.0" ; + nao:prefLabel "Nepomuk Contact Ontology" ; + nao:description "The Nepomuk Contact Ontology describes contact information, common in many places on the desktop. It evolved from the VCARD specification (RFC 2426) and has been inspired by the Vcard Ontology by Renato Ianella. The scope of NCO is much broader though." . + + + a nrl:GraphMetadata ; + nrl:coreGraphMetadataFor + nco: . +} diff --git a/tests/Trinity.Tests.Virtuoso/bin/Release/Ontologies/owl.n3 b/tests/Trinity.Tests.Virtuoso/bin/Release/Ontologies/owl.n3 new file mode 100644 index 0000000..87467e7 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Release/Ontologies/owl.n3 @@ -0,0 +1,552 @@ +@prefix dc: . +@prefix grddl: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix xml: . +@prefix xsd: . + + a owl:Ontology ; + dc:title "The OWL 2 Schema vocabulary (OWL 2)" ; + rdfs:comment """ + This ontology partially describes the built-in classes and + properties that together form the basis of the RDF/XML syntax of OWL 2. + The content of this ontology is based on Tables 6.1 and 6.2 + in Section 6.4 of the OWL 2 RDF-Based Semantics specification, + available at http://www.w3.org/TR/owl2-rdf-based-semantics/. + Please note that those tables do not include the different annotations + (labels, comments and rdfs:isDefinedBy links) used in this file. + Also note that the descriptions provided in this ontology do not + provide a complete and correct formal description of either the syntax + or the semantics of the introduced terms (please see the OWL 2 + recommendations for the complete and normative specifications). + Furthermore, the information provided by this ontology may be + misleading if not used with care. This ontology SHOULD NOT be imported + into OWL ontologies. Importing this file into an OWL 2 DL ontology + will cause it to become an OWL 2 Full ontology and may have other, + unexpected, consequences. + """ ; + rdfs:isDefinedBy + , + , + ; + rdfs:seeAlso , + ; + owl:imports ; + owl:versionIRI ; + owl:versionInfo "$Date: 2009/11/15 10:54:12 $" ; + grddl:namespaceTransformation . + + +owl:AllDifferent a rdfs:Class ; + rdfs:label "AllDifferent" ; + rdfs:comment "The class of collections of pairwise different individuals." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Resource . + +owl:AllDisjointClasses a rdfs:Class ; + rdfs:label "AllDisjointClasses" ; + rdfs:comment "The class of collections of pairwise disjoint classes." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Resource . + +owl:AllDisjointProperties a rdfs:Class ; + rdfs:label "AllDisjointProperties" ; + rdfs:comment "The class of collections of pairwise disjoint properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Resource . + +owl:Annotation a rdfs:Class ; + rdfs:label "Annotation" ; + rdfs:comment "The class of annotated annotations for which the RDF serialization consists of an annotated subject, predicate and object." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Resource . + +owl:AnnotationProperty a rdfs:Class ; + rdfs:label "AnnotationProperty" ; + rdfs:comment "The class of annotation properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdf:Property . + +owl:AsymmetricProperty a rdfs:Class ; + rdfs:label "AsymmetricProperty" ; + rdfs:comment "The class of asymmetric properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:ObjectProperty . + +owl:Axiom a rdfs:Class ; + rdfs:label "Axiom" ; + rdfs:comment "The class of annotated axioms for which the RDF serialization consists of an annotated subject, predicate and object." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Resource . + +owl:Class a rdfs:Class ; + rdfs:label "Class" ; + rdfs:comment "The class of OWL classes." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Class . + +owl:DataRange a rdfs:Class ; + rdfs:label "DataRange" ; + rdfs:comment "The class of OWL data ranges, which are special kinds of datatypes. Note: The use of the IRI owl:DataRange has been deprecated as of OWL 2. The IRI rdfs:Datatype SHOULD be used instead." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Datatype . + +owl:DatatypeProperty a rdfs:Class ; + rdfs:label "DatatypeProperty" ; + rdfs:comment "The class of data properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdf:Property . + +owl:DeprecatedClass a rdfs:Class ; + rdfs:label "DeprecatedClass" ; + rdfs:comment "The class of deprecated classes." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Class . + +owl:DeprecatedProperty a rdfs:Class ; + rdfs:label "DeprecatedProperty" ; + rdfs:comment "The class of deprecated properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdf:Property . + +owl:FunctionalProperty a rdfs:Class ; + rdfs:label "FunctionalProperty" ; + rdfs:comment "The class of functional properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdf:Property . + +owl:InverseFunctionalProperty a rdfs:Class ; + rdfs:label "InverseFunctionalProperty" ; + rdfs:comment "The class of inverse-functional properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:ObjectProperty . + +owl:IrreflexiveProperty a rdfs:Class ; + rdfs:label "IrreflexiveProperty" ; + rdfs:comment "The class of irreflexive properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:ObjectProperty . + +owl:NamedIndividual a rdfs:Class ; + rdfs:label "NamedIndividual" ; + rdfs:comment "The class of named individuals." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:Thing . + +owl:NegativePropertyAssertion a rdfs:Class ; + rdfs:label "NegativePropertyAssertion" ; + rdfs:comment "The class of negative property assertions." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Resource . + +owl:Nothing a owl:Class ; + rdfs:label "Nothing" ; + rdfs:comment "This is the empty class." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:Thing . + +owl:ObjectProperty a rdfs:Class ; + rdfs:label "ObjectProperty" ; + rdfs:comment "The class of object properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdf:Property . + +owl:Ontology a rdfs:Class ; + rdfs:label "Ontology" ; + rdfs:comment "The class of ontologies." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Resource . + +owl:OntologyProperty a rdfs:Class ; + rdfs:label "OntologyProperty" ; + rdfs:comment "The class of ontology properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdf:Property . + +owl:ReflexiveProperty a rdfs:Class ; + rdfs:label "ReflexiveProperty" ; + rdfs:comment "The class of reflexive properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:ObjectProperty . + +owl:Restriction a rdfs:Class ; + rdfs:label "Restriction" ; + rdfs:comment "The class of property restrictions." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:Class . + +owl:SymmetricProperty a rdfs:Class ; + rdfs:label "SymmetricProperty" ; + rdfs:comment "The class of symmetric properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:ObjectProperty . + +owl:TransitiveProperty a rdfs:Class ; + rdfs:label "TransitiveProperty" ; + rdfs:comment "The class of transitive properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:ObjectProperty . + +owl:Thing a owl:Class ; + rdfs:label "Thing" ; + rdfs:comment "The class of OWL individuals." ; + rdfs:isDefinedBy . + +owl:allValuesFrom a rdf:Property ; + rdfs:label "allValuesFrom" ; + rdfs:comment "The property that determines the class that a universal property restriction refers to." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Class . + +owl:annotatedProperty a rdf:Property ; + rdfs:label "annotatedProperty" ; + rdfs:comment "The property that determines the predicate of an annotated axiom or annotated annotation." ; + rdfs:domain rdfs:Resource ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Resource . + +owl:annotatedSource a rdf:Property ; + rdfs:label "annotatedSource" ; + rdfs:comment "The property that determines the subject of an annotated axiom or annotated annotation." ; + rdfs:domain rdfs:Resource ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Resource . + +owl:annotatedTarget a rdf:Property ; + rdfs:label "annotatedTarget" ; + rdfs:comment "The property that determines the object of an annotated axiom or annotated annotation." ; + rdfs:domain rdfs:Resource ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Resource . + +owl:assertionProperty a rdf:Property ; + rdfs:label "assertionProperty" ; + rdfs:comment "The property that determines the predicate of a negative property assertion." ; + rdfs:domain owl:NegativePropertyAssertion ; + rdfs:isDefinedBy ; + rdfs:range rdf:Property . + +owl:backwardCompatibleWith a owl:AnnotationProperty, owl:OntologyProperty ; + rdfs:label "backwardCompatibleWith" ; + rdfs:comment "The annotation property that indicates that a given ontology is backward compatible with another ontology." ; + rdfs:domain owl:Ontology ; + rdfs:isDefinedBy ; + rdfs:range owl:Ontology . + +owl:bottomDataProperty a owl:DatatypeProperty ; + rdfs:label "bottomDataProperty" ; + rdfs:comment "The data property that does not relate any individual to any data value." ; + rdfs:domain owl:Thing ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Literal . + +owl:bottomObjectProperty a owl:ObjectProperty ; + rdfs:label "bottomObjectProperty" ; + rdfs:comment "The object property that does not relate any two individuals." ; + rdfs:domain owl:Thing ; + rdfs:isDefinedBy ; + rdfs:range owl:Thing . + +owl:cardinality a rdf:Property ; + rdfs:label "cardinality" ; + rdfs:comment "The property that determines the cardinality of an exact cardinality restriction." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range xsd:nonNegativeInteger . + +owl:complementOf a rdf:Property ; + rdfs:label "complementOf" ; + rdfs:comment "The property that determines that a given class is the complement of another class." ; + rdfs:domain owl:Class ; + rdfs:isDefinedBy ; + rdfs:range owl:Class . + +owl:datatypeComplementOf a rdf:Property ; + rdfs:label "datatypeComplementOf" ; + rdfs:comment "The property that determines that a given data range is the complement of another data range with respect to the data domain." ; + rdfs:domain rdfs:Datatype ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Datatype . + +owl:deprecated a owl:AnnotationProperty ; + rdfs:label "deprecated" ; + rdfs:comment "The annotation property that indicates that a given entity has been deprecated." ; + rdfs:domain rdfs:Resource ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Resource . + +owl:differentFrom a rdf:Property ; + rdfs:label "differentFrom" ; + rdfs:comment "The property that determines that two given individuals are different." ; + rdfs:domain owl:Thing ; + rdfs:isDefinedBy ; + rdfs:range owl:Thing . + +owl:disjointUnionOf a rdf:Property ; + rdfs:label "disjointUnionOf" ; + rdfs:comment "The property that determines that a given class is equivalent to the disjoint union of a collection of other classes." ; + rdfs:domain owl:Class ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:disjointWith a rdf:Property ; + rdfs:label "disjointWith" ; + rdfs:comment "The property that determines that two given classes are disjoint." ; + rdfs:domain owl:Class ; + rdfs:isDefinedBy ; + rdfs:range owl:Class . + +owl:distinctMembers a rdf:Property ; + rdfs:label "distinctMembers" ; + rdfs:comment "The property that determines the collection of pairwise different individuals in a owl:AllDifferent axiom." ; + rdfs:domain owl:AllDifferent ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:equivalentClass a rdf:Property ; + rdfs:label "equivalentClass" ; + rdfs:comment "The property that determines that two given classes are equivalent, and that is used to specify datatype definitions." ; + rdfs:domain rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Class . + +owl:equivalentProperty a rdf:Property ; + rdfs:label "equivalentProperty" ; + rdfs:comment "The property that determines that two given properties are equivalent." ; + rdfs:domain rdf:Property ; + rdfs:isDefinedBy ; + rdfs:range rdf:Property . + +owl:hasKey a rdf:Property ; + rdfs:label "hasKey" ; + rdfs:comment "The property that determines the collection of properties that jointly build a key." ; + rdfs:domain owl:Class ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:hasSelf a rdf:Property ; + rdfs:label "hasSelf" ; + rdfs:comment "The property that determines the property that a self restriction refers to." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Resource . + +owl:hasValue a rdf:Property ; + rdfs:label "hasValue" ; + rdfs:comment "The property that determines the individual that a has-value restriction refers to." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Resource . + +owl:imports a owl:OntologyProperty ; + rdfs:label "imports" ; + rdfs:comment "The property that is used for importing other ontologies into a given ontology." ; + rdfs:domain owl:Ontology ; + rdfs:isDefinedBy ; + rdfs:range owl:Ontology . + +owl:incompatibleWith a owl:AnnotationProperty, owl:OntologyProperty ; + rdfs:label "incompatibleWith" ; + rdfs:comment "The annotation property that indicates that a given ontology is incompatible with another ontology." ; + rdfs:domain owl:Ontology ; + rdfs:isDefinedBy ; + rdfs:range owl:Ontology . + +owl:intersectionOf a rdf:Property ; + rdfs:label "intersectionOf" ; + rdfs:comment "The property that determines the collection of classes or data ranges that build an intersection." ; + rdfs:domain rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:inverseOf a rdf:Property ; + rdfs:label "inverseOf" ; + rdfs:comment "The property that determines that two given properties are inverse." ; + rdfs:domain owl:ObjectProperty ; + rdfs:isDefinedBy ; + rdfs:range owl:ObjectProperty . + +owl:maxCardinality a rdf:Property ; + rdfs:label "maxCardinality" ; + rdfs:comment "The property that determines the cardinality of a maximum cardinality restriction." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range xsd:nonNegativeInteger . + +owl:maxQualifiedCardinality a rdf:Property ; + rdfs:label "maxQualifiedCardinality" ; + rdfs:comment "The property that determines the cardinality of a maximum qualified cardinality restriction." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range xsd:nonNegativeInteger . + +owl:members a rdf:Property ; + rdfs:label "members" ; + rdfs:comment "The property that determines the collection of members in either a owl:AllDifferent, owl:AllDisjointClasses or owl:AllDisjointProperties axiom." ; + rdfs:domain rdfs:Resource ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:minCardinality a rdf:Property ; + rdfs:label "minCardinality" ; + rdfs:comment "The property that determines the cardinality of a minimum cardinality restriction." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range xsd:nonNegativeInteger . + +owl:minQualifiedCardinality a rdf:Property ; + rdfs:label "minQualifiedCardinality" ; + rdfs:comment "The property that determines the cardinality of a minimum qualified cardinality restriction." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range xsd:nonNegativeInteger . + +owl:onClass a rdf:Property ; + rdfs:label "onClass" ; + rdfs:comment "The property that determines the class that a qualified object cardinality restriction refers to." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range owl:Class . + +owl:onDataRange a rdf:Property ; + rdfs:label "onDataRange" ; + rdfs:comment "The property that determines the data range that a qualified data cardinality restriction refers to." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Datatype . + +owl:onDatatype a rdf:Property ; + rdfs:label "onDatatype" ; + rdfs:comment "The property that determines the datatype that a datatype restriction refers to." ; + rdfs:domain rdfs:Datatype ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Datatype . + +owl:oneOf a rdf:Property ; + rdfs:label "oneOf" ; + rdfs:comment "The property that determines the collection of individuals or data values that build an enumeration." ; + rdfs:domain rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:onProperties a rdf:Property ; + rdfs:label "onProperties" ; + rdfs:comment "The property that determines the n-tuple of properties that a property restriction on an n-ary data range refers to." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:onProperty a rdf:Property ; + rdfs:label "onProperty" ; + rdfs:comment "The property that determines the property that a property restriction refers to." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range rdf:Property . + +owl:priorVersion a owl:AnnotationProperty, owl:OntologyProperty ; + rdfs:label "priorVersion" ; + rdfs:comment "The annotation property that indicates the predecessor ontology of a given ontology." ; + rdfs:domain owl:Ontology ; + rdfs:isDefinedBy ; + rdfs:range owl:Ontology . + +owl:propertyChainAxiom a rdf:Property ; + rdfs:label "propertyChainAxiom" ; + rdfs:comment "The property that determines the n-tuple of properties that build a sub property chain of a given property." ; + rdfs:domain owl:ObjectProperty ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:propertyDisjointWith a rdf:Property ; + rdfs:label "propertyDisjointWith" ; + rdfs:comment "The property that determines that two given properties are disjoint." ; + rdfs:domain rdf:Property ; + rdfs:isDefinedBy ; + rdfs:range rdf:Property . + +owl:qualifiedCardinality a rdf:Property ; + rdfs:label "qualifiedCardinality" ; + rdfs:comment "The property that determines the cardinality of an exact qualified cardinality restriction." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range xsd:nonNegativeInteger . + +owl:sameAs a rdf:Property ; + rdfs:label "sameAs" ; + rdfs:comment "The property that determines that two given individuals are equal." ; + rdfs:domain owl:Thing ; + rdfs:isDefinedBy ; + rdfs:range owl:Thing . + +owl:someValuesFrom a rdf:Property ; + rdfs:label "someValuesFrom" ; + rdfs:comment "The property that determines the class that an existential property restriction refers to." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Class . + +owl:sourceIndividual a rdf:Property ; + rdfs:label "sourceIndividual" ; + rdfs:comment "The property that determines the subject of a negative property assertion." ; + rdfs:domain owl:NegativePropertyAssertion ; + rdfs:isDefinedBy ; + rdfs:range owl:Thing . + +owl:targetIndividual a rdf:Property ; + rdfs:label "targetIndividual" ; + rdfs:comment "The property that determines the object of a negative object property assertion." ; + rdfs:domain owl:NegativePropertyAssertion ; + rdfs:isDefinedBy ; + rdfs:range owl:Thing . + +owl:targetValue a rdf:Property ; + rdfs:label "targetValue" ; + rdfs:comment "The property that determines the value of a negative data property assertion." ; + rdfs:domain owl:NegativePropertyAssertion ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Literal . + +owl:topDataProperty a owl:DatatypeProperty ; + rdfs:label "topDataProperty" ; + rdfs:comment "The data property that relates every individual to every data value." ; + rdfs:domain owl:Thing ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Literal . + +owl:topObjectProperty a owl:ObjectProperty ; + rdfs:label "topObjectProperty" ; + rdfs:comment "The object property that relates every two individuals." ; + rdfs:domain owl:Thing ; + rdfs:isDefinedBy ; + rdfs:range owl:Thing . + +owl:unionOf a rdf:Property ; + rdfs:label "unionOf" ; + rdfs:comment "The property that determines the collection of classes or data ranges that build a union." ; + rdfs:domain rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:versionInfo a owl:AnnotationProperty ; + rdfs:label "versionInfo" ; + rdfs:comment "The annotation property that provides version information for an ontology or another OWL construct." ; + rdfs:domain rdfs:Resource ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Resource . + +owl:versionIRI a owl:OntologyProperty ; + rdfs:label "versionIRI" ; + rdfs:comment "The property that identifies the version IRI of an ontology." ; + rdfs:domain owl:Ontology ; + rdfs:isDefinedBy ; + rdfs:range owl:Ontology . + +owl:withRestrictions a rdf:Property ; + rdfs:label "withRestrictions" ; + rdfs:comment "The property that determines the collection of facet-value pairs that define a datatype restriction." ; + rdfs:domain rdfs:Datatype ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + \ No newline at end of file diff --git a/tests/Trinity.Tests.Virtuoso/bin/Release/Ontologies/rdf.rdf b/tests/Trinity.Tests.Virtuoso/bin/Release/Ontologies/rdf.rdf new file mode 100644 index 0000000..a6815ec --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Release/Ontologies/rdf.rdf @@ -0,0 +1,156 @@ + + + + The RDF Concepts Vocabulary (RDF) + This is the RDF Schema for the RDF vocabulary terms in the RDF Namespace, defined in RDF 1.1 Concepts. + + + + + + + HTML + The datatype of RDF literals storing fragments of HTML content + + + + + + + langString + The datatype of language-tagged string values + + + + + + + PlainLiteral + The class of plain (i.e. untyped) literal values, as used in RIF and OWL 2 + + + + + + type + The subject is an instance of a class. + + + + + + + Property + The class of RDF properties. + + + + + + Statement + + The class of RDF statements. + + + + + subject + The subject of the subject RDF statement. + + + + + + + predicate + The predicate of the subject RDF statement. + + + + + + + object + The object of the subject RDF statement. + + + + + + + Bag + The class of unordered containers. + + + + + + Seq + The class of ordered containers. + + + + + + Alt + The class of containers of alternatives. + + + + + + value + Idiomatic property used for structured values. + + + + + + + + + List + The class of RDF Lists. + + + + + + nil + The empty list, with no items in it. If the rest of a list is nil then the list has no more items in it. + + + + + first + The first item in the subject RDF list. + + + + + + + rest + The rest of the subject RDF list after the first item. + + + + + + + + XMLLiteral + The datatype of XML literal values. + + + + + + + + diff --git a/tests/Trinity.Tests.Virtuoso/bin/Release/Ontologies/rdfs.n3 b/tests/Trinity.Tests.Virtuoso/bin/Release/Ontologies/rdfs.n3 new file mode 100644 index 0000000..a5b8eac --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Release/Ontologies/rdfs.n3 @@ -0,0 +1,109 @@ +@prefix rdf: . +@prefix rdfs: . +@prefix owl: . +@prefix dc: . + + a owl:Ontology ; + dc:title "The RDF Schema vocabulary (RDFS)" . + +rdfs:Resource a rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:label "Resource" ; + rdfs:comment "The class resource, everything." . + +rdfs:Class a rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:label "Class" ; + rdfs:comment "The class of classes." ; + rdfs:subClassOf rdfs:Resource . + +rdfs:subClassOf a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:label "subClassOf" ; + rdfs:comment "The subject is a subclass of a class." ; + rdfs:range rdfs:Class ; + rdfs:domain rdfs:Class . + +rdfs:subPropertyOf a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:label "subPropertyOf" ; + rdfs:comment "The subject is a subproperty of a property." ; + rdfs:range rdf:Property ; + rdfs:domain rdf:Property . + +rdfs:comment a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:label "comment" ; + rdfs:comment "A description of the subject resource." ; + rdfs:domain rdfs:Resource ; + rdfs:range rdfs:Literal . + +rdfs:label a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:label "label" ; + rdfs:comment "A human-readable name for the subject." ; + rdfs:domain rdfs:Resource ; + rdfs:range rdfs:Literal . + +rdfs:domain a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:label "domain" ; + rdfs:comment "A domain of the subject property." ; + rdfs:range rdfs:Class ; + rdfs:domain rdf:Property . + +rdfs:range a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:label "range" ; + rdfs:comment "A range of the subject property." ; + rdfs:range rdfs:Class ; + rdfs:domain rdf:Property . + +rdfs:seeAlso a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:label "seeAlso" ; + rdfs:comment "Further information about the subject resource." ; + rdfs:range rdfs:Resource ; + rdfs:domain rdfs:Resource . + +rdfs:isDefinedBy a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:subPropertyOf rdfs:seeAlso ; + rdfs:label "isDefinedBy" ; + rdfs:comment "The defininition of the subject resource." ; + rdfs:range rdfs:Resource ; + rdfs:domain rdfs:Resource . + +rdfs:Literal a rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:label "Literal" ; + rdfs:comment "The class of literal values, eg. textual strings and integers." ; + rdfs:subClassOf rdfs:Resource . + +rdfs:Container a rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:label "Container" ; + rdfs:subClassOf rdfs:Resource ; + rdfs:comment "The class of RDF containers." . + +rdfs:ContainerMembershipProperty a rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:label "ContainerMembershipProperty" ; + rdfs:comment """The class of container membership properties, rdf:_1, rdf:_2, ..., + all of which are sub-properties of 'member'.""" ; + rdfs:subClassOf rdf:Property . + +rdfs:member a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:label "member" ; + rdfs:comment "A member of the subject resource." ; + rdfs:domain rdfs:Resource ; + rdfs:range rdfs:Resource . + +rdfs:Datatype a rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:label "Datatype" ; + rdfs:comment "The class of RDF datatypes." ; + rdfs:subClassOf rdfs:Class . + + rdfs:seeAlso . diff --git a/tests/Trinity.Tests.Virtuoso/bin/Release/Ontologies/space test ontology.ttl b/tests/Trinity.Tests.Virtuoso/bin/Release/Ontologies/space test ontology.ttl new file mode 100644 index 0000000..e9f6944 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Release/Ontologies/space test ontology.ttl @@ -0,0 +1,13 @@ +@prefix rdf: . +@prefix owl: . +@prefix rdfs: . +@prefix myo: . + +myo: +rdfs:label "my ontology". + +myo:Class a rdfs:Class ; +rdfs:label "MyClass" . + +myo:Property a rdf:Property ; +rdfs:label "MyProperty" . \ No newline at end of file diff --git a/tests/Trinity.Tests.Virtuoso/bin/Release/Semiodesk.Trinity.Tests.exe.config b/tests/Trinity.Tests.Virtuoso/bin/Release/Semiodesk.Trinity.Tests.exe.config new file mode 100644 index 0000000..92d10a9 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Release/Semiodesk.Trinity.Tests.exe.config @@ -0,0 +1,62 @@ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/Trinity.Tests.Virtuoso/bin/Release/Semiodesk.Trinity.xml b/tests/Trinity.Tests.Virtuoso/bin/Release/Semiodesk.Trinity.xml new file mode 100644 index 0000000..d4242d2 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Release/Semiodesk.Trinity.xml @@ -0,0 +1,5915 @@ + + + + Semiodesk.Trinity + + + + + Marks the property as NotifyingProperty. + + + + + Decorate a class with this attribute to mark it as mapping for an RDF class of the given type. + + + + + The Uri of the type. + + + + + Constructor + + The uri of the RDF class for this mapping. + + + + Decorate a property with this attribute to mark it as mapped RDF property with the given type. + + + + + Uri of the the RDF property + + + + + Flag determining if property is language invariant. Only valid for string or string collections. + + + + + Constructor + + There uri of the rdf property for this mapping. + The mapping ignores the language setting and is always non-localized. Only valid if type or generic type is string or string collection. + + + + The class of resources that are RDF classes. + + + + + Constructor + + + + + Constrctor + + + + + Constrctor + + + + + Derived VirtualizatingCollection, performing loading asychronously. + + The type of items in the collection + + + + Gets the synchronization context used for UI-related operations. This is obtained as + the current SynchronizationContext when the AsyncVirtualizingCollection is created. + + The synchronization context. + + + + Gets or sets a value indicating whether the collection is loading. + + + true if this collection is loading; otherwise, false. + + + + + Initializes a new instance of the class. + + The items provider. + + + + Initializes a new instance of the class. + + The items provider. + Size of the page. + + + + Initializes a new instance of the class. + + The items provider. + Size of the page. + The page timeout. + + + + Asynchronously loads the count of items. + + + + + Performed on background thread. + + None required. + + + + Performed on UI-thread after LoadCountWork. + + Number of items returned. + + + + Asynchronously loads the page. + + The index. + + + + Performed on background thread. + + Index of the page to load. + + + + Performed on UI-thread after LoadPageWork. + + object[] { int pageIndex, IList(T) page } + + + + The event that gets notified if the collection gets changed. + + + + + The event that gets notified if a property has changed. + + + + + An generic asynchrous virtualizing collection for sparql queries. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + A generic items provider collection. + + + + + + Number of element in the provider. + + + + + + Enumerator of the items. + + + + + + + + A generic virtualizing collection. + + + + + + The page size contains the number of elements per page. + + + + + The time after which a page can be removed. + + + + + The page size contains the number of elements per page. + + + + + Timeout in ms. If the page has not been touched it can be removed with CleanUpPages. + + + + + Number of elements in the list. + + + + + Gets an object that can be used to synchronize access to the . + + + + An object that can be used to synchronize access to the . + + + + + Gets a value indicating whether access to the is synchronized (thread safe). + + + Always false. + + + + + Gets a value indicating whether the is read-only. + + + Always true. + + + + + Gets a value indicating whether the has a fixed size. + + + Always false. + + + + + Access an element at a certain index. + + + + + + + Initializes a new instance of the class. + + Items provider + Size of the page. + The page timeout. + + + + Initializes a new instance of the class. + + The items provider. + Size of the page. + + + + Initializes a new instance of the class. + + + + + Returns the enumerator of the collection + + + + + + The list is read-only, not supported. + + + + + + The list is read-only, not supported. + + + + + + The list is read-only, not supported. + + + + + Returns the index of a certain element. + + + + + + + The list is read-only, not supported. + + + + + + + The list is read-only, not supported. + + + + + + + The list is read-only, not supported. + + + + + + The list is read-only, not supported. + + + + + + The list is read-only, not supported. + + + + + + + The list is read-only, not supported. + + + + + + + The list is read-only, not supported. + + + + + + + Removes pages that have not been touched recently. The timeout can be configured with the PageTimeout. + + + + + Load page with the given index. + + + + + + Sets the given page to the given index. + + + + + + + Load the page with the given index. + + + + + + Loads the count of the collection. + + + + + Gets the page from the item provider. + + + + + + + Gets the element count from the item provider. + + + + + + The item provider for sparql queries. + + + + + + Constructor for the SparqlQueryItemsProvider. + + The model on which the query should be executed. + The query that should be executed. + Modifier if inferncing should be enabled. Default is true + + + + Number of elements in the result. + + + + + + Enumerator of the items. Should be narrowed with offset and limit. + + Offset of the element where to start. + Number of elements. + + + + + A virtualizing collection for sparql query results + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The model to query. + The query. + Size of the page. + Using inferencing + + + + Initializes a new instance of the class. + + + + + The FileSource represents the path of the ontology on the disk. + + + + + This is the string containing the path. + + + + + The ontology configuration section. + + + + + The uri of the ontology as string. + + + + + Wrapper for the uri of the ontology as Uri. + + + + + The prefix of the ontology. + + + + + The timestamp when the ontology was first introduced in the project. + + + + + Version of the ontology. + + + + + The location of the ontology file in the web. + + + + + The location of the ontology file on the disk. + + + + + Serialization of th ontology. + + + + + + Hashcode of the ontology. + + + + + + Wrapper for the local path of the ontology. + + + + + Location of the ontology in the web. + + + + + The url of the ontology in the web. + + + + + The section containing all ontologies. + + + + + The list of all ontologies + + + + + The namespace the ontologies should be generated to. + + + + + The general store configuration section. + + + + + The store type this configuration belongs to. + + + + + The content of the store configuration. Will be handled by the store implementation. + + + + + The store section of the configuration. + + + + + The list of the store configurations. + + + + + The general configuration section. + + + + + The ontology section. + + + + + The store section. + + + + + Wrapper for the namespace for this project. + + + + + Wrapper for an easier ontology access. + + + + + + Wrapper for the store configurations. + + + + + + Loads Trinity RDF settings from a XML configuration file. + + + + + Exposes settings for Trinity RDF projects. + + + + + Get the default namespace for generated C# classes. + + + + + Get the ontology settings for the current project. + + An enumeration of ontology settings. + + + + Get the triple store settings for the current project. + + An enumeration of triple store settings. + + + + Exposes ontology settings for a Trinity RDF project. + + + + + Get the namespace URI of the ontology. + + + + + Get the default prefix of the ontology. + + + + + Get the location of the ontology source file. + + + + + Exposes triple store settings for Trinity RDF projects. + + + + + Get the triple store type identifier. + + + + + Get store specific XML configuration data. + + + + + A file source of a element + + + + + The location of this file source + + + + + A graph element in the configuration. + + + + + The Uri of the graph element + + + + + A collection containing all graphs in the configuration + + + + + Create a new graph element + + + + + + Gets the key of the given graph element. Uri is used. + + + + + + + The type of the collection + + + + + The name of the element + + + + + The index operator + + + + + + + Get the element by the key + + + + + + + Test if key exists + + + + + + + Get enumerator of collection + + + + + + A ontology element + + + + + Prefix of this ontology. + + + + + URI of this ontology. + + + + + String representation of the URI. + + + + + The key of the element. + + + + + The location of the ontology file. + + + + + The uri of the metadata graph, only needed for TriG serialisations. + + + + + The string representation of the metadata graph URI. + + + + + String representation of this element. + + + + + + Overwritten hashcode. + + + + + + Get the location of the ontology file source. + + + + + A collection of ontology settings. + + + + + Create a new ontology configuration element. + + A new configuration element. + + + + Get the key associated with a configuration element. + + + URI of the configuration element. + + + + Get the configuration element collection type. + + + + + XML element tag name. + + + + + Gets the configuration element at the specified index location. + + The index location of the System.Configuration.ConfigurationElement to return. + The System.Configuration.ConfigurationElement at the specified index. + + + + Gets the configuration element with the specified identifier. + + The identifier of the System.Configuration.ConfigurationElement to return. + The System.Configuration.ConfigurationElement at the specified index. + + + + Indicates if an element with the given key exists in this collection. + + The identifier to be checked. + true if an element with the given key exists, false otherwise. + + + + Get an enumerator for iterating over the items in this collection. + + An enumerator. + + + + A ruleset element + + + + + Gets or sets the URI of the rule set. + + + + + Gat a collection of graphs associated with this rule set. + + + + + Collection of rule sets. + + + + + Create a new rule set element. + + + + + + Gets the key (the uri) of a RuleSet element. + + + + + + + The collection type. + + + + + Contains the name of the element. + + + + + The index operator. + + + + + + + Index operator with key name. + + The key of the ruleset. + + + + + Can be used to test if the key exists. + + + + + + + Enumerator for the collection. + + + + + + Constains Virtuoso specific settings. + + + + + A collection of inference rule sets. + + + + + Get the triple store type identifier. + + + + + Get store specific XML configuration data. + + + + + Constains the settings for the Semiodesk.Trinity framework. + + + + + Namespace of the generated ontology file. + + + + + Collection of ontology settings. + + + + + Virtuoso specific triple store settings. + + + + + Get the ontology settings for the current project. + + An enumeration of ontology settings. + + + + Get the triple store settings for the current project. + + An enumeration of triple store settings. + + + + This exception will be thrown if the store rejects the query as invalid. + + + + + Contains the offending query + + + + + Create a new exception without information. + + + + + Create a new exception with an error string. + + Details about the issue. + + + + Create a new exception with an error string and an inner exception. + + Details about the issue. + The exception that propmted the query failure. + The offending query + + + + This exception will be thrown when trying to access query result methods + for unsupported SPARQL query forms (i.e. trying to get bindings from an ASK query). + + + + + Contains the offending query. + + + + + Create a new exception with an error string. + + SPARQL query type. + + + + Represents error when one or more resources you tried to access was locked. + + + + + Create a new instance of the ResourceLockedException class. + + Inner exception. + + + + Represents error when a resource could not be retrieved. + + + The exception is derived from ArgumentException to ensure backwards compatibility. + + + + + Create a new instance of the ResourceNotFoundException class. + + URI of the resource. + + + + Represents errors when a suitable triple store adapter could not be found. + + + + + Create a new instance of the StoreProviderMissingException class. + + Error message. + + + + Create a new instance of the StoreProviderMissingException class. + + Error message. + Inner exception. + + + + Extension to FileSystemInfo concerting UriRef handling + + + + + Create a UriRef from a FileSystemInfo + + + + + + + Collection of string extension related to Uris + + + + + Create a UriRef from this string. + + + + + + + Create a UriRef from this string with a given kind + + + + + + Extension of Uri class concering UriRef handling. + + + + + Create a UriRef from this Uri. + + + + + + + The datatype of the the mapped property + + + + + If the datatype is a collection, this contains the generic type. + + + + + True if the property is mapped to a collection. + + + + + The property that should be mapped. + + + + + The name of the mapped property. + + + + + True if the value has not been set. + + + + + Language of the value + + + + + The mapping ignores the language setting and is always non-localized. Only valid if type or generic type is string or string collection. + + + + + Method to test if a type is compatible. In case of collection, the containing type is tested for compatibility. + + The type to test. + True if the type is compatible + + + + Gets the value or values mapped to this property. + + + + + + This method is meant to be called from the non-mapped interface. It replaces the current value if + it is mapped to one value, adds it if the property is mapped to a list. + + + + + + Deletes the containing value and sets the state to unset. In case of a collection, it tries to remove the value from it. + + + + + + Clones the mapping of another resource. + + + + + + Clears the mapping and resets it. + + + + + This interface encapsulates the access to the methods of a RDF resource. + + + + + Uniform Resource Identifier (URI). + + + + + Model from which the resource was instantiated. + + + + + Indicates that this resource is not writable, thus Commit() is illegal. + + + + + Set the language of this resource. This will change te mapped strings to this language. + + + + + Indicates if the resources has been disposed. + + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A instance of IResource. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A string literal. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A string literal. + The culture of the string literal. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A string literal. + The language of the string literal. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A 16-bit integer value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A 32-bit integer value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A 64-bit integer value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A 16-bit unsigned integer value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A 32-bit unsigned integer value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A 64-bit unsigned integer value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A single precision float value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A double precision float value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A decimal value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A boolean value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A datetime value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + Arbitrary data in form of a byte array. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + An Uri. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + An IResource instance. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A instance of IResource. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A string literal. + The culture of the string + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A string literal. + The language of the string. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A 16-bit integer value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A 32-bit integer value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A 64-bit integer value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A 16-bit unsigned integer value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A 32-bit unsigned integer value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A 64-bit unsigned integer value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A single precision float value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A double precision float value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A decimal value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A blooean value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A date value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + Arbitrary data in form of a byte array. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + An Uri. + + + + Indicates if the resource has at least one property of the given type. + + + True on success, False otherwise. + + + + Indicates if the resource has a property with the given value. + + + + True on success, False otherwise. + + + + Indicates if the resource has a property with the given translated string value. + + + + + True on success, False otherwise. + + + + Indicates if the resource has a property with the given translated string value. + + + + + True on success, False otherwise. + + + + Enumerates all properties associated with this resource. + + + + + + Enumerates all properties associated with this resource in form + of a tuple mapping properties to their corresponding values. + + Only return values which should be serialized. + + + + + Enumerates all property values associated with this resource. + + + + + + + Gets the value of a uniquely asserted property. + + A RDF property. + + + + + Gets the value of a uniquely asserted property. + + A RDF property. + Specifies a default value that should be returned if no value exists. + + + + + This static class is responsible for discovering mapped classes. + Every assembly that defines mapping classes needs to register them with this service. + + + + + A class containing information about a RDF class mapped to c#. + + + + + The .NET type of the class. + + + + + RDF classes that are mapped to this class. + + + + + Inferenced RDF classes mapped to this class. Currently not used. + + + + + The number of classes that are not sub class of any other class. + + + + + Constructor to create a new MappingClass + + The c# type + The mapped rdf classes. + The rdf base classes. + + + + The list of all registered assemblies. + + + + + The list of all registered mapped classes. + + + + + Adds a collection of mapped classes to the registration. + + + + + + Adds a mapped class to the registration. + + + + + + Add the super classes of a given .NET type to a given list. + + A .NET type. + List where the base types will be added to. + + + + Loads all mapped classes from the assembly calling this method. + + + + + Register ALL THE THINGS!! + from all assemblies currently loaded. + + + + + Load all mapped classes from the given assembly. + + + + + + Returns all types which match the given restrictions. + + List of RDF classes + A c# type in a inheritence tree. Give Resource if you don't know what to do. + Should inferencing be factored in. + + + + The the RDF class of a C# type. + + + + + + + An interface for classes which provide functionality to manage a set of resources. + + + + + Uri of this model. + + + + + True if the model is empty. + + + + + All unampped properties will be ignored for update and thus deleted. + This reduces the amount of data thats get sent to the database but also might remove important data. + Setting this to true essentialy disables the triple API. + + + + + Adds an existing resource to the model and its backing RDF store. The resulting resource supports the use of the Commit() method. + + The resource to be added to the model. + Transaction associated with the action. + The resource which is now connected to the current model. + + + + Adds an existing resource to the model and its backing RDF store. The resulting resource supports the use of the Commit() method. + + The resource to be added to the model. + Transaction associated with this action. + The resource which is now connected to the current model. + + + + Creates a new resource in the model and its backing RDF store. + + The format string from which a globally unique identifier URI should be generated from. + Transaction associated with this action. + An instance of the given object type wrapping the newly created resource. + The newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Creates a new resource in the model and its backing RDF store. + + A Uniform Resource Identifier. + Transaction associated with this action. + The newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Creates a new resource in the model and its backing RDF store. Provides a resource object of the given type. + + Type of the resource object. Must be derived from Resource. + The format string from which a globally unique identifier URI should be generated from. + Transaction associated with this action. + An instance of the given object type wrapping the newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Creates a new resource in the model and its backing RDF store. Provides a resource object of the given type. + + Type of the resource object. Must be derived from Resource. + A Uniform Resource Identifier. + Transaction associated with this action. + An instance of the given object type wrapping the newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Creates a new resource in the model and its backing RDF store. Provides a resource object of the given type. + + The concrete type of the resource. This must be a subclass of resource. + The format of the resulting uri. + Transaction associated with this action. + An instance of the given object type wrapping the newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Creates a new resource in the model and its backing RDF store. Provides a resource object of the given type. + This method can be used to create a resource of a type which was asserted at runtime. + + A Uniform Resource Identifier. + Type of the resource object. Must be derived from Resource. + Transaction associated with this action. + An instance of the given object type wrapping the newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Removes the given resource from the model and its backing RDF store. Note that there is no verification + that the given resource and its stored represenation have identical properties. + + A Uniform Resource Identifier. + The transaction associated with this action. + + + + Removes the given resource from the model and its backing RDF store. Note that there is no verification + that the given resource and its stored represenation have identical properties. + + Resource that is to be removed from the model. + Transaction associated with this action. + + + + Indicates wheter a given resource is part of the model. + + A Uniform Resource Identifier. + Transaction associated with this action. + True if the resource is part of the model, False if not. + + + + Indicates wheter a given resource is part of the model. + + Resource that should be looked up in the model. + Transaction associated with this action. + True if the resource is part of the model, False if not. + + + + Execute a SPARQL query against the model. + + A SparqlQuery object. + Modifier to enable inferencing. Default is false. + Transaction associated with this action. + A SPARQL query result object. + + + + Execute a SparqlUpdate against the model. + + A sparql update object. + Transaction associated with this action. + + + + Retrieves a resource from the model. + + A Uniform Resource Identifier. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. Provides a resource object of the given type. + + A Uniform Resource Identifier. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. + + The instance of IResource to be retrieved. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. Provides a resource object of the given type. + + A Uniform Resource Identifier. + The type the resource should have. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. + + The instance of IResource to be retrieved. + Transaction associated with this action. + A resource with all asserted properties. + + + + Executes a SPARQL query and provides an enumeration of matching resources. + + A SparqlQuery object. + Modifier to enable inferencing. Default is false. + Transaction associated with the action. + An enumeration of resources that match the given query. + + + + Executes a SPARQL query and provides an enumeration of matching resources. + + A SparqlQuery object. + Modifier to enable inferencing. Default is false. + Transaction associated with the action. + An enumeration of resources that match the given query. + + + + Returns a enumeration of all resources that match the given type. + + Modifier to enable inferencing. Default is false. + Transaction associated with the action. + An enumeration of resources that match the given query. + + + + Returns a queryable object that can be used to build LINQ statements. + + + + + + + Executes a SPARQL query and provides an enumeration of matching resources. + + A SparqlQuery object. + Modifier to enable inferencing. Default is false. + Transaction associated with the action. + An enumeration of resources that match the given query. + + + + Imports the contents of a model located by the given URL. The method supports + importing files and other models stored in the local RDF store. + + A uniform resource locator. + The serialization format. + True to update the model, false to replace the data. + True if the contents of the model were imported, False if not. + + + + Imports the contents of a graph serialized in the stream to this model. + + The stream containing the serialization + Format of the serialization + True to update the model, false to replace the data. + True if the contents of the model were imported, False if not. + + + + Serializes the contents of the model and provides a memory stream. + + The file stream to write to. + The serialization format. + A serialization of the models contents. + + + + Updates a resource with it's current state in the model. + + + + + + + Removes all elements from the model. + + + + + Starts a transaction which can be used to group more queries together to be executed as one. + + Isolation level used to lock the database. + A handle to the transaction. + + + + Compares two models by their uris + + + + + Equals + + + + + + + + HashCode + + + + + + + The model group can be used to query over multiple models at once. + + + + + The default model of this group + + + + + A set of resources which represent a logical model for a given application domain. + + + + + The Uniform Resource Identifier which provides a name for the model. + + + + + Indicates if the model contains statements. + + + + + All unampped properties will be ignored for update and thus deleted. + This reduces the amount of data thats get sent to the database but also might remove important data. + Setting this to true essentialy disables the triple API. + + + + + This constructor is intended to be used only be the ModelManager. + + The underlying triple store implementation to be used. + Uniform Resource Identifier of the model. + + + + Removes all elements from the model. + + + + + Adds an existing resource to the model and its backing RDF store. The resulting resource supports the use of the Commit() method. + + The resource to be added to the model. + Transaction associated with the action. + The resource which is now connected to the current model. + + + + Adds an existing resource to the model and its backing RDF store. The resulting resource supports the use of the Commit() method. + + The resource to be added to the model. + Transaction associated with the action. + The resource which is now connected to the current model. + + + + Creates a new resource in the model and its backing RDF store. Provides a resource object of the given type. + + The format of the resulting uri. + Transaction associated with this action. + An instance of the given object type wrapping the newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Creates a new resource in the model and its backing RDF store. + + A Uniform Resource Identifier. + Transaction associated with this action. + The newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Creates a new resource in the model and its backing RDF store. Provides a resource object of the given type. + + Type of the resource object. Must be derived from Resource. + The format of the resulting uri. + Transaction associated with this action. + An instance of the given object type wrapping the newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Creates a new resource in the model and its backing RDF store. Provides a resource object of the given type. + + Type of the resource object. Must be derived from Resource. + A Uniform Resource Identifier. + Transaction associated with this action. + An instance of the given object type wrapping the newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Creates a new resource in the model and its backing RDF store. Provides a resource object of the given type. + + Type of the resource object. Must be derived from Resource. + The format of the resulting uri. + Transaction associated with this action. + An instance of the given object type wrapping the newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Creates a new resource in the model and its backing RDF store. Provides a resource object of the given type. + This method can be used to create a resource of a type which was asserted at runtime. + + A Uniform Resource Identifier. + Type of the resource object. Must be derived from Resource. + Transaction associated with this action. + An instance of the given object type wrapping the newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Removes the given resource from the model and its backing RDF store. Note that there is no verification + that the given resource and its stored representation have identical properties. + + A Uniform Resource Identifier. + Transaction associated with this action. + + + + Removes the given resource from the model and its backing RDF store. Note that there is no verification + that the given resource and its stored representation have identical properties. + + A resource object. + Transaction associated with this action. + + + + Updates the properties of a resource in the backing RDF store. + + Resource that is to be updated in the backing store. + Transaction associated with this action. + + + + Indicates wheter a given resource is part of the model. + + A Uniform Resource Identifier. + Transaction associated with this action. + True if the resource is part of the model, False if not. + + + + Indicates wheter a given resource is part of the model. + + A resource object. + Transaction associated with this action. + True if the resource is part of the model, False if not. + + + + Execute a SPARQL Query. + + A SparqlQuery object. + Indicate that this query should work with enabled inferencing. + Transaction associated with this action. + A SparqlQueryResults object in any case. + + + + Execute a SPARQL Update. + + A SparqlUpdate object. + Transaction associated with this action. + + + + Retrieves a resource from the model. + + A Uniform Resource Identifier. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. + + The instance of IResource to be retrieved. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. Provides a resource object of the given type. + + A Uniform Resource Identifier. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. Provides a resource object of the given type. + + The resource that should be retrieved. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. Provides a resource object of the given type. + This method can be used for runtime asserted types. + + A Uniform Resource Identifier. + Type of the resource object. Must be derived from Resource. + Transaction associated with this action. + An instance of the given resource object type, Null otherwise. + + + + Executes a SPARQL query and provides an enumeration of matching resources. + + The SparqlQuery object that should be executed. + Indicate that this query should work with enabled inferencing. + transaction associated with this action. + An enumeration of resources that match the given query. + + + + Executes a SPARQL query and provides an enumeration of matching resources. + Provides a resource object of the given type. + + The SparqlQuery object that should be executed. + Indicate that this query should work with enabled inferencing. + transaction associated with this action. + An enumeration of resources that match the given query. + + + + Returns a enumeration of all resources that match the given type. + + Indicate that this query should work with enabled inferencing. + transaction associated with this action. + An enumeration of resources that match the given query. + + + + TODO + + + + + + + Executes a SPARQL-select query and provides a list of binding sets. This method + implements transparent type marshalling and delivers the bound variables in C# + native data types. + + A SPARQL-select query which results in a set of bound variables. + Indicate that this query should work with enabled inferencing. + Transaction associated with this action. + An enumeration of bound variables that match the given query. + + + + Exports the contents of the model and provides a memory stream. + + File stream to write to. + The serialization format. + A serialization of the models contents. + + + + Imports the contents of a model located by the given URL. The method supports + importing files and other models stored in the local RDF store. The location + of the model is determined by the URI scheme. + + A uniform resource locator. + Serialization format + Pass false if you want to overwrite existing data. True if you want to keep the data and add the new entries. + True if the contents of the model were imported, False if not. + + + + Reads model contents from a stream. The method supports importing files and other models stored in the local RDF store. + + A stream. + Serialization format + Pass false if you want to overwrite existing data. True if you want to keep the data and add the new entries. + True if the contents of the model were imported, False if not. + + + + Starts a transaction which can be used to group more queries together to be executed as one. + + Isolation level used to lock the database. + A handle to the transaction. + + + + Implementation of the IModelGroup interface. + + + + + All unampped properties will be ignored for update and thus deleted. + This reduces the amount of data thats get sent to the database but also might remove important data. + Setting this to true essentialy disables the triple API. + + + + + The default model of this group. + + + + + Uri of the model group is null. + + + + + Tests if all contained models are empty. + + + + + Create a new model group from a store and a collection of models + + A store + A collection of models belonging to that store. + + + + Create a new model group from a store and a collection of models + + A store + A set of models belonging to that store. + + + + Not supported. ModelGroups are read-only. + + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + Not supported. ModelGroups are read-only. + + + + + Not supported. ModelGroups are read-only. + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + + + Indicates wheter a given resource is part of the model. + + A Uniform Resource Identifier. + Transaction associated with this action. + True if the resource is part of the model, False if not. + + + + Indicates wheter a given resource is part of the model. + + Resource that should be looked up in the model. + Transaction associated with this action. + True if the resource is part of the model, False if not. + + + + Execute a SPARQL query against the model. + + A SparqlQuery object. + Modifier to enable inferencing. Default is false. + Transaction associated with this action. + A SPARQL query result object. + + + + Retrieves a resource from the model. + + A Uniform Resource Identifier. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. Provides a resource object of the given type. + + The instance of IResource to be retrieved. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. + + A Uniform Resource Identifier. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. Provides a resource object of the given type. + + The instance of IResource that is to be retrieved. + Transaction associated with this action. + The type of the resource. + A resource with all asserted properties. + + + + Retrieves a resource from the model. + + The uri of the resource that is to be retrieved. + The type the resource should have. + Transaction associated with this action. + A resource with all asserted properties. + + + + Executes a SPARQL query and provides an enumeration of matching resources. + + A SparqlQuery object. + Modifier to enable inferencing. Default is false. + Transaction associated with the action. + An enumeration of resources that match the given query. + + + + Executes a SPARQL query and provides an enumeration of matching resources. + + A SparqlQuery object. + Modifier to enable inferencing. Default is false. + Transaction associated with the action. + An enumeration of resources that match the given query. + + + + Returns a enumeration of all resources that match the given type. + + Modifier to enable inferencing. Default is false. + Transaction associated with the action. + An enumeration of resources that match the given query. + + + + TODO + + + + + + + Executes a SPARQL query and provides an enumeration of matching resources. + + A SparqlQuery object. + Modifier to enable inferencing. Default is false. + Transaction associated with the action. + An enumeration of resources that match the given query. + + + + Serializes the contents of the model and provides a memory stream. + + The file stream to write to. + The serialization format. + A serialization of the models contents. + + + + Imports the contents of a graph serialized in the stream to this model. + + The stream containing the serialization + Format of the serialization + True to update the model, false to replace the data. + True if the contents of the model were imported, False if not. + + + + Add another model to the model group. + + The model to add + true if the element is added to the model group false if the element is already present + + + + Removes all elements in the specified collection from the model group. + + The collection of models to remove. + + + + Modifies the model group to contain only elements that are present in the current group and the specified collection. + + The collection to compare. + + + + Determines whether the model group is a subset of the given collection. + + The collection to compare. + true if the model group is a subset; otherwise, false. + + + + Determines whether the model group is a superset of the given collection. + + The collection to compare + true if the model group is a superset; otherwise, false. + + + + Determines whether the model group is a subset of the given collection. + + The collection to compare. + true if the model group is a subset; otherwise, false. + + + + Determines whether the model group is a superset of the given collection. + + The collection to compare. + >true if the model group is a superset; otherwise, false. + + + + Determines wether the model group and the given collection share common models. + + The collection to compare. + true if the model group shares common models; otherwise, false. + + + + Determines wether the model group and the given collection contain the same elements. + + The collection to compare. + true if the collections is equal; otherwise, false. + + + + Modifies the mode group to contain only elements either present in that object or the given collection, but not both. + + The collection to compare. + + + + Modifies the mode group to contain both elements present in that object and the given collection. + + The collection to compare. + + + + Determines if the model group contains the given model. + + The model to locate. + true if the model exists in the group; otherwise, false. + + + + Copies the given models in the group starting at the specified index. + + The models to copy. + The array index + + + + Returns the number of models in the group. + + + + + Returns if the group is read only. + + + + + Removes a model from the group. + + + + + + + Enumerator of the models + + + + + + Enumerator of the models + + + + + + Abstract class which marks subclasses as ontologies. Needed for automatic discovery. + + + + + This static class contains a mapping of all properties and classes to its uris for discovery of the proper object and its attributes. + For future reference: look into PreApplicationStartMethodAttribute Class or ModuleInitializer + + + + + All registered RDF ontology prefixes in the current application. + + + + + All registered RDF properties in the current application. + + + + + All registered RDF classes in the current application. + + + + + Register a namespace with a prefix. + + A namespace prefix. + A uniform resource identifier. + + + + Register an assembly to search for RDF ontologies. + + + + + + Register the calling assembly to search for RDF ontologies. + + + + + Register the concepts from a given set of ontologies. + + An enumeration of ontologies. + + + + Returns a a property with the given Uri. Creates a new one if it doesn't exist. + + + + + + + Returns a a property with the given string. Creates a new one if it doesn't exist. + + + + + + + Objects of this class represent RDF properties. + + + + + Constructor taking a Uri parameter + + Uri of the property + + + + Constructor taking a UriRef parameter + + Uri of the property + + + + Determines wheter the URIs of the compared objects are equal. + + The object to be compared. + true if the URIs of the compared objects are equal, false otherwise. + + + + Returns the hash code of the objects URI. + + A hash code string. + + + + This class does the heavy lifting of the property mapping mechanism. It stores the value and acts as intermediary for the resource. + + + + + + The value of the mapped property. + + + + + The datatype of the the mapped property. + + + + + The datatype of the the mapped property. + + + + + If the datatype is a collection, this contains the generic type. + + + + + If the datatype is a collection, this contains the generic type. + + + + + True if the property is mapped to a collection. + + + + + True if the property is mapped to a collection. + + + + + True if the value has not been set. + + + + + True if the value has not been set. + + + + + Language of the value. + + + + + Gets the mapped RDF property. + + + + + Gets the URI of the mapped RDF property. + + + + + Gets the name of the mapped .NET property. + + + + + Only valid if type or generic type is string. The mapping ignores the language setting and is always non-localized. + + + + + Creates a new property mapping. + + Name of the property in the class + The RDF property that should be mapped + This parameter is only valid if the type is string. Tells the mapping that the values should be treated as non-localized literals. + + + + Creates a new property mapping. + + Name of the property in the class + The RDF property that should be mapped + The default value used to initialize this property + This parameter is only valid if the type is string. Tells the mapping that the values should be treated as non-localized literals. + + + + Creates a new property mapping. + + Name of the property in the class + The URI of the RDF property that should be mapped + This parameter is only valid if the type is string. Tells the mapping that the values should be treated as non-localized literals. + + + + Creates a new property mapping. + + Name of the property in the class + The URI of the RDF property that should be mapped + The default value used to initialize this property + This parameter is only valid if the type is string. Tells the mapping that the values should be treated as non-localized literals. + + + + Sets the property value. + + A value. + + + + Returns the property value. + + The value, if any. + + + + Sets a single literal value or adds a value to a property mapped to a value collection. + + + This method is meant to be called from the non-mapped interface. It replaces the current value if + it is mapped to one value, adds it if the property is mapped to a list. + + The value. + + + + Deletes the containing value and sets the state to unset. In case of a collection, it tries to remove the value from it. + + + + + + Gets the value or values mapped to this property. + + + + + + Gets a list of strings as list of tuples containing the values and the language tags. + + + + + + Method to test if a type is compatible. In case of collection, the containing type is tested for compatibility. + + The type to test. + True if the type is compatible + + + + Indicates if the mapped value is a numeric type. + + A .NET type object. + true if the type is numeric, false otherwise. + + + + Indicates if the precision of a numeric target type is greater or equal to a given source type. + + The source type. + The target type. + true if the types are precision compatible, false otherwise. + + + + Clones the mapping of another resource. + + + + + + Clears the mapping and resets it. + + + + + A dictionary of named value bindings which represents a single query solution. + + + + + Exposes a SPARQL query. + + + + + The model on which the query will be run. + + + + + The type of the query. + + + + + Indicates if inference should be enabled. It depends on the underlying store if and how this is used. + + + + + Bind parameters to specified values. + + + + + + + Returns all prefixes that were specified by the query. + + + + + + Enumerates the graphs which are declared in FROM and FROM NAMED directives at the root level. + + An enumeration of URI strings. + + + + Get an array of all variable names that are defined in the root scope of the query. + + An array of avaiable names without the preceding '$' or '?' characters, if any. + + + + Get the root graph pattern. + + A non empty string, on success. + + + + Gets the outermost ORDER BY clause. + + A non empty string if a ORDER BY clause is defined. + + + + Indicates if the query selects variables that are used as subject, predicate and object in a triple pattern. + + true if the query selects triples, false otherwise. + + + + Returns the string representation of the query. + + The SPARQL query string. + + + + Exposes the results of a SPARQL query. + + + + + Number of items in the result set. + + + + + + Enumerate the resource objects in the result. + + + + + + + + Enumerate the resource objects of a given type in the result. + + + + + + + + + Returns the bool value from ASK query forms. + + True on success, False otherwise. + + + + Returns marshalled Resource objects returned from DESCRIBE, CONSTRUCT + or interpretable SELECT query forms. + + An enumeration of Resource objects. + + + + Returns marshalled instances of the given Resource type which were + returned from DESCRIBE, CONSTRUCT or interpretable SELECT query forms. + + The Resource type object. + An enumeration of instances of the given type. + + + + Returns a set of bound values (bindings) returned from SELECT query forms. + + An enumeration of bound solution variables (BindingSet). + + + + Extensions for the ConstantExpression type. + + + + + Convert the expression into a ConstantTerm. + + A constant expression. + A ConstantTerm object. + + + + Convert the expression into a IriExpression. + + A constant expression. + A IriExpression object. + + + + Convert the expression into a LiteralExpression. + + A constant expression. + A LiteralExpression object. + + + + Convert the expression into a numeric expression. + + A constant expression. + A NumericExpression object. + + + + Convert the expression into a node. + + A constant expression. + A Node object. + + + + Indicates if the expression can be evaluated to false. + + A constant expression. + true if the value is either null or false, false otherwise. + + + + Indicate if an expression contains antoher or is equal to it. + + An expression. + Expression to be evaluated. + true if e is equal to the given expression or one of its query sources, false otherwise. + + + + Extensions for the MemberInfo type. + + + + + Gets the first custom attribute of a specified type which is attached to a class member. + + Custom attribute type. + A class member. + A custom attribute object on success, null otherwise. + + + + Get the .NET type of the given class member. + + A class member. + The class member type. + + + + Indicates if the given member is of type Uri or a sub type. + + A class member. + true if the member can be represented by a URI, false otherwise. + + + + Indicates if the given member is a built-in call. + + A class member. + true if the class member is a built-in call, false otherwise. + + + + Extensions for the MethodCall type. + + + + + Indicates if the method call has an argument with a specified value at a specified location. + + A method call expression. + Location of the argument. + Value of the argument. + true if the method call has an argument with the given value, false otherwise. + + + + Indicates if the method call has an argument at a speficied loaction with one of the specified values. + + A method call expression. + Location of the argument. + Values of the argument. + true if the method call has an argument with one of the given values, false otherwise. + + + + Get the value of an argument at the specified location. + + Value type. + A method call expression. + Argument location. + + + + + Get the value of an argument at the specified location. + + Value type. + A method call expression. + Argument location. + Value to be returned if no argument is specified at the given location. + + + + + Extension for the NodeFactory type. + + + + + Create a boolean literal value. + + A node factory. + Value of the literal node. + A new literal node object. + + + + Generates SELECT queries which return binding sets. + + + This class is intended to be used as a root query generator. For generating SELECT queries + for sub-queries, refer to SubSelectQueryGenerator. + + + + + Builds the triples required to access a given member and accociates its value with a variable. + + The member to be accessed. + The object variable associated with the member value. + + + + Builds the triples required to access a given member and accociates its value with a variable. + + The member to be accessed. + The object variable associated with the member value. + + + + Generates a SPARQL query from a LINQ query model by visiting all clauses and invoking + expression implementation using a ExpressionTreeVisitor. + + The result type. + + + + Allows to access query generators and sub query generators in a tree-like fashion. + + + + + Visits all expressions in a query model and handles the query generation. + + + + + Get a variable from an expression that can be used as a subject in triple patterns and represents resources. + + + + + + + A simple SPARQL parser. + + + This class is primarily intended to support a limited range of query + preprocessing tasks such as setting the values of query parameters (@-variables) + as quickly as possible. It does not aim to support the full SPARQL standard syntax. + + + + + We use the list of tokens to generate the query string with bound parameters on demand. + + + + + Type of the last read token. + + + + + URIs of the graphs queried or manipulated by the query. + + + + + Namespace prefixes defined in the query. + + + + + Namespace prefixes referenced in the query. + + + + + Names of the bindable query parameters starting with '@'. + + + + + Bound literal values of the query parameters. + + + + + Token types of the query parameters. + + + + + Creates a new instance of the SparqlPreprocessor class. + + A text reader. + SPARQL syntax level. + + + + Starts analyzing the SPARQL query. + + Trz to add prefix definitions for the namespaces used but not declared in the query. + + + + Gets the next parseable Token from the Input or raises an Error. + + + + + + Add FROM definition to the query. + + URI of the graph. + + + + Add a FROM NAMED definition to the query. + + URI of the graph. + + + + Gets the PREFIX definitions in the query. + + + + + + Set the value for a query parameter which is preceeded by '@'. + + The parameter name including the '@'. + The paramter value. + + + + Return the query with all bound variables. + + Level of the sub graph to be returned (0 := entire query). + + + + + Returns the entire query string. + + + + + + Graph pattern scope of variables defined in a SPARQL query. + + + + + A variable accessible in all levels of the query. + + + + + A locally accessible variable. + + + + + A simple SPAQL Query class. This class aims to ease formulating SPARQL + query strings by automatically setting PREFIX declarations from a given + namespace manager. + + + + + + Cached version of the query string. + + + + + Indicates if a query parameter value has been changed and the cached query string needs to be regenerated. + + + + + The SPARQL query processor used to determine the prefixes and statement variables in the query. + + + + + Names of the globally defined variables without the preceding '?'. + + + + + The default model of the Query, if there is excactly one. + + + + + Get or set the model used for this query. + + + + + The query form as defined in http://www.w3.org/TR/rdf-sparql-query/#QueryForms + + + + + Indicates if the query result should be expanded using run-time inferencing. + + + + + Creates a new SPARQL query. If enabled, the PREFIXES used in any of the query's graph patterns will + be declared in the query header if they are found in the application config. Additionally, the query + may be compacted in order to reduce processing overhead when being used repeatedly in loops. + + The SPARQL query string. + Set to true if the namespace prefixes used in the query should be declared. + + + + Indicates if the query provides a description of one or more resources. + + + + + Set the value for a query parameter which is preceeded by '@'. + + The parameter name including the '@'. + The paramter value. + + + + Enumerates the graphs which are declared in FROM and FROM NAMED directives at the root level. + + An enumeration of URI strings. + + + + Returns all prefixes that were specified by the query. + + + + + + Gets the names of all variables which are defined in the root graph pattern. + + + + + + Gets the entire query as a string. + + + + + + Indicates if the query contains an ORDER BY clause in any of its graph patterns. + + true if the query contains an ORDER BY clause, false otherwise. + + + + Adds a LIMIT <int> clause to the query in order to restrict it to put an upper bound on the number of solutions returned. + + The number of return values. + + + + Adds an Offset <int> clause to the query which causes the solutions generated to start after the specified number of solutions. + + The number of entries to skip. + + + + Returns the query string with generated prefixes and subsituted parameters. + + A valid SPARQL string. + + + + The SPARQL query forms as specified in http://www.w3.org/TR/rdf-sparql-query/#QueryForms + + + + + The SPARQL query type could not be determined. + + + + + The ASK query form. + + + + + The CONSTRUCT query form. + + + + + The DESCRIBE query form. + + + + + The SELECT query form. + + + + + A preprocsesor for SPARQL queries. + + + + + The SPARQL query form, i.e. ASK, DESCRIBE, SELECT, CONSTRUCT. + + + + + Indicates if the query returns triples. + + + + + Variables visible in the query root scope. + + + + + Variables only visible in local scope. + + + + + Indicates if the query has an ORDER BY solution modifier. + + + + + Create a new instance of the SparqlQueryPreprocessor class. + + A text reader. + SPARQL syntax level. + + + + Gets the next token in the query and advance the reader position. + + A SPARQL token. + + + + Adds a LIMIT clause to the query in order to restrict it to put an upper bound on the number of solutions returned. + + The number of return values. + + + + Adds an OFFSET clause to the query which causes the solutions generated to start after the specified number of solutions. + + The number of return values. + + + + Get the entire SPARQL query string. + + A SPARQL query string. + + + + Get the ORDER BY clause. + + A string. + + + + Provides functionality to perform serialization of native .NET types into SPARQL strings. + + + + + Serializes a string and excapes special characters. + + A string literal. + + + + + Serializes a string with a translation + + A string literal. + A language tag. + + + + + Serializes a typed literal. + + A value. + A type URI. + + + + + Serializes a value depdening on its type. + + An object. + + + + + Serializes a DateTime object. + + A date time object. + + + + + Serializes a URI. + + A uniform resource identifier. + + + + + Serializes a resource. + + A resource. + Ignores all unmapped properties for serialization. + + + + + Generate the dataset clause for a given model. + + A model. + + + + + Generate a dataset clause for a model group. + + A model group. + + + + + Generate a dataset clause for an enumeration of models. + + An enumeration of models. + + + + + Serialize a count query for the given SPARQL query. + + The model to be queried. + The query which results should be counted. + + + + + Generate a query which returns the URIs of all resources selected in a given query. + + The model to be queried. + The SPARQL query which provides resources. + Offset solution modifier. + Limit solution modifier. + + + + + Add an offset or limit solution modifier to a given SPARQL query. + + The model to be queried. + The SPARQL query to be executed. + Offset solution modifier. + Limit solution modifier. + + + + + A simple SPARQL Update class. This class aims to ease formulating SPARQL + query strings by automatically setting PREFIX declarations from a given + namespace manager. + + + + + Get or set the model used for this query. + + + + + Get or set the resource being updated. + + + + + The SPARQL processor used to determine the prefixes and statement variables in the query. + + + + + The plain SPARQL update string. + + + + + Create a new SPARQL Update with an optional namespace manager instance which + can be used to declare PREFIX declarations for the namespace abbreviations + used in the update string. + + The u update string. + + + + Set the value for a query parameter which is preceeded by '@'. + + The parameter name including the '@'. + The paramter value. + + + + Returns the query string with generated prefixes and subsituted parameters. + + A valid SPARQL string. + + + + Enumerates all supported RDF serialization formats. + + + + + RDF/XML http://www.w3.org/TR/REC-rdf-syntax/ + + + + + N3 http://www.w3.org/TeamSubmission/n3/ + + + + + NTriples http://www.w3.org/2001/sw/RDFCore/ntriples/ + + + + + NTriples https://www.w3.org/TR/2014/REC-n-quads-20140225/ + + + + + TriG http://www.w3.org/TR/trig/ + + + + + Turtle http://www.w3.org/TR/turtle/ + + + + + JSON + + + + + JSON-LD https://www.w3.org/TR/json-ld/ + + + + + This class repesents a RDF resource. + + + + + The cache for the associated resources, needed to support lazy loading for mapping. + + + + + This dictionary contains the properties and the associated values. + + + + + Contains a list of all properties which implement the INotifyPropertyChanged interface. + + + + + All mappings as discovered by InitialisePropertyMapping. + + + + + Handle to the model. + + + + + Public accessor to the model. + + + + + The uri which represents the resource. + + + + + New resource which have never been committed need to be treated differently. + + + + + Indicates if the resources has been disposed. + + + + + True if the properties of the resources has been committed to the model. + + + + + Indicates this resource is read-only. + + + + + This method provides a mechanism to change writability in subclasses. + + + + + + Set the language of this resource. This will change te mapped strings to this language. + + + + + Private since a Resource cannot be created without a URI. + + + + + Create a new resource with a given Uri. + + + + + + Create a new resource with a given Uri. + + + + + + Create a new resource with a given string. Throws an exception if string is Uri compatible. + + The string converted to a Uri. Throws an exception if not possible. + + + + Create a new instance of the class and copy the properties from another class instance. + + + + + + Destructor + + + + + Sets the model the resource is stored in. + + A model. + + + + Loads and initialises all mapped properties. + + + This method could be re-reimplemented and sped up by the CIL generator. + + + + + Overwrite this method to return the RDF classes of your resource type. + + + + + + Returns the uri with brackets. + + + + + + Determines wheter the URIs of the compared objects are equal. + + The object to be compared. + true if the URIs of the compared objects are equal, false otherwise. + + + + Returns the hash code of the objects URI. + + A hash code string. + + + + Internal method to add the values. This is not public because the value is of type object and thus not typesafe for rdf. + + + + + + + + Add a property with a resource as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a string as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a string and language as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a string and language as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a Int16 as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a Int32 as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a Int64 as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a UInt16 as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a UInt32 as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a UInt64 as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a float as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a double as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a decimal as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a bool as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a DateTime as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a byte array as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with an Uri as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Internal method to remove the values. This is not public because the value is of type object and thus not typesafe for rdf. + + + + + + + Removes a property with a IResource value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a string value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a string value associated with the given language. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a string value associated with the given language. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a Int16 value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a Int32 value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a Int64 value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a UInt16 value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a UInt32 value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a UInt64 value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a float value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a double value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a decimal value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a bool value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a DateTime value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a byte array value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with an Uri value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Internal method to remove all properties. + + + + + Returns true if the resource has any object connected with the specified property. + + The property to be checked. + true if the property is associated, false if not + + + + Returns true if the specified value is connected to this resource with the given property. + + The property to be checked + The value that should be tested + true if the value is associated with the property, false if not + + + + Returns true if the specified string value with the given language is connected to this resource with the given property. + + The property + The string value. + The language the string is in. + + + + + Returns true if the specified string value with the given language is connected to this resource with the given property. + + The property + The string value. + The language the string is in. + + + + + This method lists all combinations of properties and values. + + Only return values which should be serialized. + + + + + Lists all values associated with one property. + This inclues the mapped values as well. + + + + + + + List all available properties. + This includes mapped properties if they have valid values. + + + + + + Return the value for a given property. + + A RDF property. + The value on success, null if the object has no such property. + + + + Return the value for a given property with a predefined default value. + + A RDF property. + Specifies a default value that should be returned if no value exists. + The value on success, the default value if the object has no such property. + + + + Persist changes in the model. + + + + + Reload the resource from the model. + + + + + This method returns if property is mapped. + + Rdf property to be tested. + Type of the mapping. + + + + + This method returns the mapped property of the given rdf property and type. It returns null if this mapping is not available. + + Rdf property to be tested. + Type of the mapping. + + + + + Returns the value from the mapped property. + + + + + + + + Set the mapped value. This also raises the PropertyChanged event. + + + + + + + + Load all cached resources from the mapped property. The values of the mapped property are resolved when this method returns. + + + + + + Register a property name to raise the INotifyProperty signal on rollback. + + Name of a property. + + + + Raises the PropertyChanged event of the object. + + Name of a property. + + + + Update the property mappings with the values in the selected language. + + + + + Dispose this resource. + Does nothing meaningful currently. + + + + + Needed for the implementation of the INotifyPropertyChanged interface. + + + + + Warns the developer if this object does not have + a public property with the specified name. This + method does not exist in a Release build. + + + + + Returns whether an exception is thrown, or if a Debug.Fail() is used + when an invalid property name is passed to the VerifyPropertyName method. + The default value is false, but subclasses used by unit tests might + override this property's getter to return true. + + + + + This method loads the cached Resources for the given MappingProperty from the Storage and returns them. + They are instantiated as the defined type. The cache for this mapping property is emptied. + + Mapping property which should be loaded from cache. + List of formerly cached resources. + + + + Tests if the mapping has cached values. + + + + + + + Tests if the mapping has a certain cached values. + + + + + + + + + + + + + + + Converts resources to and from JSON format. + + + + + Create a new instance of the JsonResourceConverter class. + + A triple store. + + + + Indicates if the given object can be converted. + + An object. + true if the object is of type Resource, false otherwise. + + + + Convert a JSON string into an object. + + A JSON reader. + Returned object type. + The existing value of object being read. + The calling serializer. + + + + + Indicates if the converter can write JSON. + + + + + Write the JSON representation of an object. + + The JSON writer to be used. + The object value. + The JSON serializer to be used. + + + + Settings for the serializing resources to and from JSON format. + + + + + Create a new instance of the JsonResourceSerializerSettings class. + + A triple store. + + + + A store adapter for dotNetRDF. + + + + + Creates a new dotNetRDFStore. + + A list of ontology file paths relative to this assembly. The store will be populated with these ontologies. + + + + Removes model from the store. + + Uri of the model which is to be removed. + + + + Query if the model exists in the store. + OBSOLETE: This method does not list empty models. At the moment you should just call GetModel() and test for IsEmpty() + + Uri of the model which is to be queried. + + + + + Executes a query on the store which does not expect a result. + + The update query + An associated transaction + + + + Executes a SparqlQuery on the store. + + + + + + + + This method queries the dotNetRdf store directly. + + + + + + + Gets a handle to a model in the store. + + Uri of the model. + + + + + Indicates if the store is ready to be queried. + + + + + Lists all models in the store. + + All handles to existing models. + + + + Try parse RDF from a given text reader into the store. + + The text reader to read from. + The graph to store the read triples. + RDF format to be read. + + + + Loads a serialized graph from the given stream into the current store. See allowed formats. + + Stream containing a serialized graph + Uri of the graph in this store + Allowed formats + Pass false if you want to overwrite the existing data. True if you want to add the new data to the existing. + + + + + Loads a serialized graph from the given location into the current store. See allowed formats. + + Uri of the graph in this store + Location + Allowed formats + Pass false if you want to overwrite the existing data. True if you want to add the new data to the existing. + + + + + Writes a serialized graph to the given stream. See allowed formats. + + Stream to which the content should be written. + Uri fo the graph in this store + Allowed formats + + + + + + + + + + + + Creates a model group which allows for queries to be made on multiple models at once. + + + + + + + Creates a model group which allows for queries to be made on multiple models at once. + + + + + + + Closes the store. It is not usable after this call. + + + + + A store provider for dotNetRDF triple store adapters. + + + + + Create a new instance of the dotNetRDFStoreProvider class. + + + + + Create a new triple store with the given settings. + + Triple store setting variables. + + + + + A generic triple provider interface + + + + + Indicates if another triple is available + + + + + Iterates to the next triple + + + + + Subject + + + + + Predicate + + + + + Object + + + + + Number of total triples + + + + + Resets the provider + + + + + Storage that can can connect to Sparql Endpoints + + + + + + + Indicates if the store is ready to be queried. + + + + + Set this property to log the SPARQL queries which are executed on this store. + For example, to log to the console, set this property to System.Console.Write(System.String). + + + + + A store adapter for SPARQL protocol endpoints. + + + + + Create a new instance of the SparqlEndpointStoreProvider. + + + + + Create a new triple store with a specified configuration. + + Triple store specific configuration variables. + + + + + Handles query results for Stardog triple stores. + + + + + An RDF handler for Stardog triple stores. + + + + + Handles events when reading an RDF file has started and no triples have been read. + + The source of the event. + + + + Handle events when reading an RDF file has ended and all triples have been read. + + The source of the event. + Indicates if errors have occured while reading the file. + + + + Handle events when during reading of an RDF file a triple has been read. + + The source of the event. + The triple. + + + + RDF result handler for Stardog triple stores. + + + + + Result value of ASK queries. + + + + + Binding result of SELECT queries. + + + + + Create a new instance of the class StardogResultHandler. + + + + + Must be overridden by derived handlers to appropriately handle boolean results. + + Boolean result value. + + + + Must be overridden by derived handlers to appropriately handler SPARQL Results. + + SPARQL bindings. + + + + + Must be overridden by derived handlers to appropriately handle variable declarations. + + Variable name. + + + + + Indicates the result value of ASK queries. + + true or false + + + + A store adapter for Stardog databases. + + + + + Indicates if the store is connected and awaiting queries. + + + + + Create a new instance of the StardogStore class. + + URL of the host to connect to. + Username to be used when connecting. + Password to be used when connecting. + Knowledge base / database identifier. + + + + Adds a new model with the given uri to the storage. + + Uri of the model + Handle to the model + + + + Query if the model exists in the store. + OBSOLETE: This method does not list empty models. At the moment you should just call GetModel() and test for IsEmpty + + Uri of the model which is to be queried. + + + + + Executes a query on the store which does not expect a result. + + SPARQL Update to be executed. + An optional transaction. + + + + Executes a SparqlQuery on the store. + + SPARQL query string to be executed. + An optional transaction. + + + + + Executes a SparqlQuery on the store. + + SPARQL query to be executed. + An optional transaction. + + + + + Gets a handle to a model in the store. + + Model URI. + + + + + Lists all models in the store. + + All handles to existing models. + + + + Loads a serialized graph from the given stream into the current store. See allowed formats. + + Stream containing a serialized graph + Uri of the graph in this store + Allowed formats + Pass false if you want to overwrite the existing data. True if you want to add the new data to the existing. + + + + + Loads a serialized graph from the given location into the current store. See allowed formats. + + Uri of the graph in this store + Location + Allowed formats + Pass false if you want to overwrite the existing data. True if you want to add the new data to the existing. + + + + + Writes a serialized graph to the given stream. See allowed formats. + + Stream to which the content should be written. + Uri fo the graph in this store + Allowed formats + + + + + Removes model from the store. + + Uri of the model which is to be removed. + + + + Starts a transaction. The resulting transaction handle can be used to chain operations together. + + Isolation level of the operations executed in the transaction. + + + + + Invoked when a transaction is completed. + + Object which invoked the event. + Event arguments. + + + + Creates a model group which allows for queries to be made on multiple models at once. + + The list of uris of the models that should be grouped together. + + + + + Creates a model group which allows for queries to be made on multiple models at once. + + The list of model handles that should be grouped together. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Wrapper to support Stardog transactions. At present, nested transaction is NOT supported as the transaction instance is a wrapper around the StardogConnector. + + + + + + + + Instance is active and has not been committed or rolled back. + Once the transaction has been committed or rolled back, it should be disposed of. + + + + + + + + + + + + + + + + + + + + Number of pending "Additions" in the current transaction. + + + + + Number of pending "Removals" in the current transaction. + + + + + Has any pending changes. + + + + + SPARQL converter. Takes a typical Stardog "update" query and decomposes it so that it can be used with the StardogConnector's UpdateGraph method. + Does require a valid Store instance to extract the Removals from the current connection. + + + + + An RDF triple. + + + + + Get or set the subject of the triple. + + + + + Get or set the predicate of the triple. + + + + + Get or set the object of the triple. + + + + + Gets a SPARQL compliant string representation of the triple. + + A string. + + + + An RDF node. + + + + + Get or set the literal node. + + + + + Get or set the literal data type URI. + + + + + Indicates if the node is a literal. + + + + + Get a SPARQL compliant string representation of the node. + + + + + + The last SPARQL query supplied to + + + + + The URI of the Graph Additions and Deletes will be applied to. + + + + + The URI of the entity being updated/saved. + + + + + Triple instances which will be removed + + + + + Triple instances converted from UpdateTriples + + + + + Parsed TripleSet instances which constitute the Additions + + + + + Create an instance of the class StardogUpdateSparqlConvertor. + + + + + Create an instance of the class StardogUpdateSparqlConvertor. + + Startdog store instance. + + + + Given a typical SPARQL update query, it will be parsed and decomposed into the appropriate artifacts suitable to call the StardogConnector UpdateGraph method. + + SPARQL query string. + + + + Returns string based triples, separated by a ' ; ' string. If only two are found, the s value is returned as null since it is assumed that predicate and object are present. + + + + + Peaks ahead to see if there is another node present; indicated by the next non-whitespace of a < or ' character. + + + + + Extensions for the System.String type. + + + + + Extracts the instance'th string between start and end. + If start or end is null/empty then instance is assumed to always be 1 regardless of the value. + + Input string + Start delimiter + End delimiter + Instance of start/end to use. + + + + Extracts the instance'th string between start and end. + If start or end is null/empty then instance is assumed to always be 1 regardless of the value. + + Input string + Start delimiter + End delimiter + Pointer into input where parsing ended. This will be at the point AFTER end was found. + Instance of start/end to use. + + + + Returns the string between the first set of single quotes. Supports escaped single quotes but only \\' + + Input string + Pointer into input where parsing ended. This will be at the point AFTER end was found. + + + + + This class allows the usage of the Stardog store. + An IStore handle can be created by calling + StoreFactory.CreateStore("provider=stardog;host=http://localhost:5820;uid=admin;pw=admin;sid=MyStore"); + + + + + Create a new instance of the class StardogStoreProvider. + + + + + The GetStore method which will be called with the parsed configuration string. + + Store specific configuation parameters. + An instance of IStore. + + + + The IStorage interface describes the methods an RDF Storage has to implement. + + + + + Indicates if the store is ready to be queried. + + + + + Set this property to log the SPARQL queries which are executed on this store. + For example, to log to the console, set this property to System.Console.Write(System.String). + + + + + Adds a new model with the given uri to the storage. + + Uri of the model + Handle to the model + + + + Removes model from the store. + + Uri of the model which is to be removed. + + + + Removes model from the store. + + Handle to the model which is to be removed. + + + + Query if the model exists in the store. + OBSOLETE: This method does not list empty models. At the moment you should just call GetModel() and test for IsEmpty + + Uri of the model which is to be queried. + + + + + Query if the model exists in the store. + OBSOLETE: This method does not list empty models. At the moment you should just call GetModel() and test for IsEmpty + + Handle to the model which is to be queried. + + + + + Gets a handle to a model in the store. + + Uri of the model. + + + + + Lists all models in the store. + + All handles to existing models. + + + + Executes a SparqlQuery on the store. + + + + + + + + Executes a query on the store which does not expect a result. + + + + + + + Starts a transaction. The resulting transaction handle can be used to chain operations together. + + The isolation level of the transaction. + + + + + Creates a model group which allows for queries to be made on multiple models at once. + + The list of uris of the models that should be grouped together. + + + + + Creates a model group which allows for queries to be made on multiple models at once. + + The list of uris of the models that should be grouped together. + + + + + Loads a serialized graph from the given location into the current store. See allowed formats. + + Uri of the graph in this store + Location + Allowed formats + Pass false if you want to overwrite the existing data. True if you want to add the new data to the existing. + + + + + Loads a serialized graph from the given stream into the current store. See allowed formats. + + Stream containing a serialized graph + Uri of the graph in this store + Allowed formats + Pass false if you want to overwrite the existing data. True if you want to add the new data to the existing. + + + + + Writes a serialized graph to the given stream. See allowed formats. + + Stream to which the content should be written. + Uri fo the graph in this store + Allowed formats + + + + + Initializes the store from the configuration. It uses either the provided file or attempts to load from "ontologies.config" located next to the executing assembly. + For legacy reasons it also looks in the app.config file. + If the ontology files are in a different path, this can be supplied as a base path.. + + Path the configuration should be read from. + Path where the ontologies should be searched for. + + + + Initializes the store from the configuration. It uses either the provided file or attempts to load from "ontologies.config" located next to the executing assembly. + For legacy reasons it also looks in the app.config file. + If the ontology files are in a different path, this can be supplied as a base path.. + + Load a specific configuration file. + If given, this function tries to load the ontologies from this folder. + + + + Exposes methods for executing triple store specific methods. + + + + + Load storage specific configurations. + + Triple store instance. + + + + This class encapsulates the functionality of an abstract triple store. Cannot be used directly. + Use StoreFactory to get a concret implementation. + + + + + Indicates if the store is connected and awaiting queries. + + + + + Set this property to log the SPARQL queries which are executed on this store. + For example, to log to the console, set this property to System.Console.Write(System.String). + + + + + Removes model from the store. + + Uri of the model which is to be removed. + + + + Removes model from the store. + + Handle of the model which is to be removed. + + + + Query if the model exists in the store. + OBSOLETE: This method does not list empty models. At the moment you should just call GetModel() and test for IsEmpty + + Uri of the model which is to be queried. + + + + + Query if the model exists in the store. + OBSOLETE: This method does not list empty models. At the moment you should just call GetModel() and test for IsEmpty + + Handle to the model which is to be queried. + + + + + Lists all models in the store. + + All handles to existing models. + + + + Executes a SparqlQuery on the store. + + SPARQL query to be executed. + An optional transaction. + + + + + Executes a query on the store which does not expect a result. + + SPARQL Update to be executed. + An optional transaction. + + + + Starts a transaction. The resulting transaction handle can be used to chain operations together. + + Isolation level of the operations executed in the transaction. + + + + + Loads a serialized graph from the given location into the current store. See allowed formats. + + Uri of the graph in this store + Location + Allowed formats + Pass false if you want to overwrite the existing data. True if you want to add the new data to the existing. + + + + + Loads a serialized graph from the given stream into the current store. See allowed formats. + + Stream containing a serialized graph + Uri of the graph in this store + Allowed formats + Pass false if you want to overwrite the existing data. True if you want to add the new data to the existing. + + + + + Writes a serialized graph to the given stream. See allowed formats. + + Stream to which the content should be written. + Uri fo the graph in this store + Allowed formats + + + + + Initializes the store from the configuration. It uses either the provided file or attempts to load from "ontologies.config" located next to the executing assembly. + For legacy reasons it also looks in the app.config file. + If the ontology files are in a different path, this can be supplied as a base path.. + + Load a specific configuration file. + If given, this function tries to load the ontologies from this folder. + + + + Initializes the store from the configuration. It uses either the provided file or attempts to load from "ontologies.config" located next to the executing assembly. + For legacy reasons it also looks in the app.config file. + If the ontology files are in a different path, this can be supplied as a base path.. + + Path the configuration should be read from. + Path where the ontologies should be searched for. + + + + This method loads the configuration data from the given file. + This can read the old App.config and new ontologies.config files. + + Path to either ontologies.config or App.config file. + + + + + Loads Ontologies defined in the currently loaded config file into the store. + + Handle of the configuration. + Searchpath for the ontologies. + + + + Disposes this store and it's underlying connection. This object cannot be reused after disposing. + + + + + Adds a new model with the given uri to the storage. + + Uri of the model + Handle to the model + + + + Gets a handle to a model in the store. + + Model URI. + + + + + Creates a model group which allows for queries to be made on multiple models at once. + + The list of uris of the models that should be grouped together. + + + + + Creates a model group which allows for queries to be made on multiple models at once. + + The list of model handles that should be grouped together. + + + + + This is the factory for object implementing the IStore interface. + If you want to use your own store, you can load the assembly containing the provider with the LoadProvider method. + + + + + Tests if the given connection string is valid. + + + + + + + Creates a store from the given connection string. + + + + + + + Tries to read a connection string with the given name from the configuration. If no name was given, the first compatible connection string is used. + + + + + + + Creates a temporary in-memory store using the dotNetRDF provider. + + + + + + Create a store suitable for querying SPARQL protocol endpoints. + + URL of the SPARQL endpoint. + + + + + Tries to load a store provider from the given assembly. + + + + + + + Tries to load a store provider from the given assembly file. + + A assembly file info object. + + + + + Tries to load a store provider from the given assembly. + + An assembly. + + + + + This is the abstract store provider class. Implement it if you want to write your own store provider. + + + + + The name of the store. + + + + + All valid configuration options + + + + + The constructor of the store provider + + + + + The GetStore method which will be called with the parsed configuration string. + + Store specific configuation parameters. + An instance of IStore. + + + + This class can be used to load or update ontologies in stores. It provides convinence methods to load directly from the ontologies.config file. + + + + + Create a new instance of the StoreUpdater class. + + The store you want to update. + A directory used as base path. + + + + This method loads the given ontologies into the provided store. + A model will be created for each ontology. If it already exists, it wil be replaced. + + A collection of ontologies to be loaded. + + + + Gets an absolute path from a location relative to the triple store instance. + + A relative path. + + + + + This method can be used to load storage specific configuration. + + + + + + Handle for transaction events. + + Object which raised the event. + Event arguments. + + + + Exposes a repository which supports transactions. + + + + + The isolation level of the transaction. + + + + + Commit the transaction. + + + + + Rolls the transaction back. + + + + + Will be raised if transaction finishes. + + + + + Interface for a transactional object + + + + + Persist any changes to the object. + + + + + Discard any changes to the object. + + + + + This class encapsulates arguments for transaction event. + + + + + Indicates that the transaction finished with a commit. + + + + + Indicates that the transaction finished with a rollback. + + + + + Create a new transaction event object. + + Pass true to indicate that a commit happened. Pass false to indicate that a rollback happend. + + + + This class extends the framework Uri class to also include fragments for + equality testing. + + + + + Creates an UriRef from an Uri + + + + + + Create an UriRef from a string. + + + + + + Creates an UriRef from a string with a given UriKind. + + + + + + + Creates an UriRef from a base uri and a relative uri as string. + + + + + + + Tests the equality of two UriRefs. + + + + + + + Override of GetHashCode which factors the fragment in. + + + + + + Generates a globally unique resource identifier in the Semiodesk namespace: <urn:uuid:{GUID}/> + + A Uniform Resource Identifier. + + + + A Uniform Resource Name (URN). + + + + + Create a new instance of a URN from an identifier. + + Identifier associated with a URN namespace. + + + + Provides functionality for the serialization and deserialization of .NET + objects to XML Schema encoded strings. + + + + + XSD URI vocabulary. + + + + + Maps .NET types to XSD type URIs. + + + + + Maps XSD type URIs to .NET types. + + + + + Maps .NET types to object serialization delegates. + + + + + Maps XSD type URIs to object deserialization delegates. + + + + + Provides the XML Schema type URI for a given .NET type. + + A .NET type object. + A XML Schema type URI. + + + + Indicates if there is a registered XML Schema type URI for the given .NET type. + + A .NET type object. + true if there is a XML schema type, false otherwise. + + + + Provides the XML Schema type URI for a given .NET type. + + A xsd type uri. + A XML Schema type URI. + + + + The object serialization delegate + + + + + + + Serializes an object to an XML Schema encoded string. + + + + + + + Serializes an object forcd to a given type to an XML Schema encoded string. + + + + + + + + Serialize an IResource + + + + + + + Serialize an Uri + + + + + + + Serialize a string + + + + + + + Serialize an array of strings + + + + + + + Serialize a tuple consisting of a string and its associated culture + + + + + + + Serialize a DateTime + + + + + + + Serialize a byte array + + + + + + + Serialize a bool + + + + + + + Serialize an Int16 + + + + + + + Serialize an Int32 + + + + + + + Serialize an Int64 + + + + + + + Serialize an Uint16 + + + + + + + Serialize an Uint32 + + + + + + + Serialize an Uint64 + + + + + + + Serialize a decimal + + + + + + + Serialize a double + + + + + + + Serialize a float + + + + + + + Deserialization delegate, format for deserialization functions. + + + + + + + Deserialize string, nothing to do. + + The string + The string + + + + Deserialize string with given type uri. + + The value as string. + The xsd type. + The value in its correct type. + + + + Deserialize an int16 from a string. + + The serialized int16 + An int16 + + + + Deserialize an int32 from a string. + + The serialized int32 + a int32 value + + + + Deserialize an int64 from a string. + + The serialized int64 + A int64 value + + + + Deserialize an uint6 from a string. + + The serialized int64 + A uint16 value + + + + Deserialize an int32 from a string. + + The serialized int32 + A int32 value + + + + Deserialize an uint64 from a string. + + The serialized uint64 + A uint64 value + + + + Deserialize a bool from a string. + + The serialized bool + A bool value + + + + Deserialize a decimal from a string. + + The serialized decimal + A decimal value + + + + Deserialize a double from a string. + + The serialized double + A double value + + + + Deserialize a single from a string. + + The serialized single + A single value + + + + Deserialize a DateTime from a string. + + The serialized DateTime + A DateTime value + + + + Deserialize a Resource from a string. + + The serialized Resource + A Resource value + + + + Deserialize a uri from a string. + + The serialized uri + A uri value + + + + Deserialize a ByteArray from a string. + + The serialized ByteArray + A ByteArray value + + + + Deserialize a XmlNode from a string. + + The serialized XmlNode + A XmlNode value + + + + Deserialize a LiteralNode from a string. + + The serialized LiteralNode + A LiteralNode value + + + diff --git a/tests/Trinity.Tests.Virtuoso/bin/Release/Targets/Semiodesk.Trinity.targets b/tests/Trinity.Tests.Virtuoso/bin/Release/Targets/Semiodesk.Trinity.targets new file mode 100644 index 0000000..9b0ba79 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Release/Targets/Semiodesk.Trinity.targets @@ -0,0 +1,31 @@ + + + + + + Full + + + + + + + + + + + + $(CoreCompileDependsOn);GenerateOntologyTarget + + + + + + + + + + + + + \ No newline at end of file diff --git a/Trinity.Tests/TinyVirtuoso/database/virtuoso.ini b/tests/Trinity.Tests.Virtuoso/bin/Release/TinyVirtuoso/database/virtuoso.ini similarity index 100% rename from Trinity.Tests/TinyVirtuoso/database/virtuoso.ini rename to tests/Trinity.Tests.Virtuoso/bin/Release/TinyVirtuoso/database/virtuoso.ini diff --git a/tests/Trinity.Tests.Virtuoso/bin/Release/Trinity.Tests.Virtuoso.dll.config b/tests/Trinity.Tests.Virtuoso/bin/Release/Trinity.Tests.Virtuoso.dll.config new file mode 100644 index 0000000..a6a2b7f --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Release/Trinity.Tests.Virtuoso.dll.config @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/tests/Trinity.Tests.Virtuoso/bin/Release/custom.config b/tests/Trinity.Tests.Virtuoso/bin/Release/custom.config new file mode 100644 index 0000000..3261e54 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Release/custom.config @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Trinity.Virtuoso/Dependencies/Net40/dotNetRDF.Data.Virtuoso.xml b/tests/Trinity.Tests.Virtuoso/bin/Release/dotNetRDF.Data.Virtuoso.xml similarity index 98% rename from Trinity.Virtuoso/Dependencies/Net40/dotNetRDF.Data.Virtuoso.xml rename to tests/Trinity.Tests.Virtuoso/bin/Release/dotNetRDF.Data.Virtuoso.xml index 755da6d..fc1491a 100644 --- a/Trinity.Virtuoso/Dependencies/Net40/dotNetRDF.Data.Virtuoso.xml +++ b/tests/Trinity.Tests.Virtuoso/bin/Release/dotNetRDF.Data.Virtuoso.xml @@ -1,456 +1,456 @@ - - - - dotNetRDF.Data.Virtuoso - - - - - Represents common extensions that are useful across all Plugin libraries - - - - - Gets either the String form of the Object of the Empty String - - Object - Result of calling ToString() on non-null objects and the empty string for null objects - - - - Ensures that a specific Object Factory type is registered in a Configuration Graph - - Configuration Serialization Context - Factory Type - - - - Formatter for use in writing data to Virtuoso - - - Uses Virtuoso function calls for communicating BNodes back to Virtuoso - - - - - Formats a Blank Node by using the sql:rdf_make_iid_of_qname() function - - Blank Node - Triple Segment - - - - - A Manager for accessing the Native Virtuoso Quad Store - - - - This class implements IStorageProvider allowing it to be used with any of the general classes that support this interface as well as the Virtuoso specific classes. - - - Although this class takes a Database Name to ensure compatability with any Virtuoso installation (i.e. this allows for the Native Quad Store to be in a non-standard database) generally you should always specify DB as the Database Name parameter - - - Virtuoso automatically assigns IDs to Blank Nodes input into it, these IDs are not based on the actual Blank Node ID so inputting a Blank Node with the same ID multiple times will result in multiple Nodes being created in Virtuoso. This means that data containing Blank Nodes which is stored to Virtuoso and then retrieved will have different Blank Node IDs to those input. In addition there is no guarentee that when you save a Graph containing Blank Nodes into Virtuoso that retrieving it will give the same Blank Node IDs even if the Graph being saved was originally retrieved from Virtuoso. Finally please see the remarks on the UpdateGraph() method which deal with how insertion and deletion of triples containing blank nodes into existing graphs operates. - - - You can use a null Uri or an empty String as a Uri to indicate that operations should affect the Default Graph. Where the argument is only a Graph a null BaseUri property indicates that the Graph affects the Default Graph - - - - - - Default Port for Virtuoso Servers - - - - - Default Database for Virtuoso Server Quad Store - - - - - Indicates whether the Database Connection is currently being kept open - - - - - Creates a Manager for a Virtuoso Native Quad Store - - Server - Port - Database Name - Username - Password - Connection Timeout in Seconds - - Timeouts less than equal to zero are ignored and treated as using the default timeout which is dictated by the underlying Virtuoso ADO.Net provider - - - - - Creates a Manager for a Virtuoso Native Quad Store - - Server - Port - Database Name - Username - Password - - - - Creates a Manager for a Virtuoso Native Quad Store - - Database Name - Username - Password - Connection Timeout in Seconds - - Assumes the Server is on the localhost and the port is the default installation port of 1111 - - - - - Creates a Manager for a Virtuoso Native Quad Store - - Database Name - Username - Password - - Assumes the Server is on the localhost and the port is the default installation port of 1111 - - - - - Creates a Manager for a Virtuoso Native Quad Store - - Connection String - - Allows the end user to specify a customised connection string - - - - - Loads a Graph from the Quad Store - - Graph to load into - URI of the Graph to Load - - - - Loads a Graph from the Quad Store - - RDF Handler - URI of the Graph to Load - - - - Loads a Graph from the Quad Store - - Graph to load into - URI of the Graph to Load - - - - Loads a Graph from the Quad Store - - RDF Handler - URI of the Graph to Load - - - - Gets a Table of Triples that are in the given Graph - - Graph Uri - - - Assumes that the caller has opened the Database connection - - - - - Decodes an Object into an appropriate Node - - Node Factory to use to create Node - Object to convert - - - - - Saves a Graph into the Quad Store (Warning: Completely replaces any existing Graph with the same URI) - - Graph to save - - Completely replaces any previously saved Graph with the same Graph URI - - - - - Gets the IO Behaviour of the store - - - - - Updates a Graph in the Quad Store - - Graph Uri of the Graph to update - Triples to be added - Triples to be removed - - - In the case of inserts where blank nodes are present the data will be inserted but new blank nodes will be created. You cannot insert data that refers to existing blank nodes via this method, consider using a INSERT WHERE style SPARQL Update instead. - - - Note that Blank Nodes cannot always be deleted successfully, if you have retrieved the triples you are now trying to delete from Virtuoso and they contain blank nodes then this will likely work as expected. Otherwise deletetions of Blank Nodes cannot be guaranteed. - - - If the Graph being modified is relatively small it may be safer to load the graph into memory, makes the modifications there and then persist the graph back to the store (which overwrites the previous version of the graph). - - - - - - Updates a Graph in the Quad Store - - Graph Uri of the Graph to update - Triples to be added - Triples to be removed - - - - Indicates that Updates are supported by the Virtuoso Native Quad Store - - - - - Returns that the Manager is ready - - - - - Returns that the Manager is not read-only - - - - - Executes a SPARQL Query on the native Quad Store - - SPARQL Query to execute - - - - This method will first attempt to parse the query into a SparqlQuery object. If this succeeds then the Query Type can be used to determine how to handle the response. - - - If the parsing fails then the query will be executed anyway using Virtuoso's SPASQL (SPARQL + SQL) syntax. Parsing can fail because Virtuoso supports various SPARQL extensions which the library does not support. These include things like aggregate functions but also SPARUL updates (the non-standard precusor to SPARQL 1.1 Update). - - - If you use an aggregate query which has an Integer, Decimal or Double type result then you will receive a SparqlResultSet containing a single SparqlResult which has contains a binding for a variable named Result which contains a LiteralNode typed to the appropriate datatype. - - - Thrown if an error occurs in making the query - - - - Executes a SPARQL Query on the native Quad Store processing the results with an appropriate handler from those provided - - RDF Handler - Results Handler - SPARQL Query to execute - - - This method will first attempt to parse the query into a SparqlQuery object. If this succeeds then the Query Type can be used to determine how to handle the response. - - - If the parsing fails then the query will be executed anyway using Virtuoso's SPASQL (SPARQL + SQL) syntax. Parsing can fail because Virtuoso supports various SPARQL non-standardised extensions which the library does not support. These include things like aggregate functions but also SPARUL updates (the non-standard precusor to SPARQL 1.1 Update). - - - If you use an aggregate query which has an Integer, Decimal or Double type result then you will receive a SparqlResultSet containing a single SparqlResult which has contains a binding for a variable named Result which contains a LiteralNode typed to the appropriate datatype. - - - Thrown if an error occurs in making the query - - - - Executes a SPARQL Update on the native Quad Store - - SPARQL Update to execute - - - This method will first attempt to parse the update into a SparqlUpdateCommandSet object. If this succeeds then each command in the command set will be issued to Virtuoso. - - - If the parsing fails then the update will be executed anyway using Virtuoso's SPASQL (SPARQL + SQL) syntax. Parsing can fail because Virtuoso supports various SPARQL extensions which the library does not support and primarily supports SPARUL updates (the precusor to SPARQL 1.1 Update). - - - Thrown if an error occurs in making the update - - - - Deletes a Graph from the Virtuoso store - - URI of the Graph to delete - - - - Deletes a Graph from the store - - URI of the Graph to delete - - - - Returns that deleting Graphs is supported - - - - - Lists the Graphs in the store - - - - - - Returns that listing graphs is supported - - - - - Opens a Connection to the Database - - Indicates that the Connection should be kept open and a Transaction started - - - - Opens a Connection to the Database - - Indicates that the Connection should be kept open and a Transaction started - Isolation Level to use - - - - Closes the Connection to the Database - - Indicates that the connection should be closed even if keepOpen was specified when the Connection was opened - - - - Closes the Connection to the Database - - Indicates that the connection should be closed even if keepOpen was specified when the Connection was opened - Indicates that the Transaction should be rolled back because something has gone wrong - - - - Executes a Non-Query SQL Command against the database - - SQL Command - - - - Executes a Query SQL Command against the database and returns a DataTable - - SQL Command - DataTable of results - - - - Executes a Query SQL Command against the database and returns the scalar result (first column of first row of the result) - - SQL Command - First Column of First Row of the Results - - - - Gets whether there is an active connection to the Virtuoso database - - - - - Gets whether there is any active transaction on the Virtuoso database - - - - - Disposes of the Manager - - - - - Gets a String which gives details of the Connection - - - - - - Serializes the connection's configuration - - Configuration Serialization Context - - - - An Object Factory that can create objects of the classes provided by the dotNetRDF.Data.Virtuoso library - - - - - Attempts to load an Object of the given type identified by the given Node and returned as the Type that this loader generates - - Configuration Graph - Object Node - Target Type - Created Object - True if the loader succeeded in creating an Object - - - - Returns whether this Factory is capable of creating objects of the given type - - Target Type - - - - - Class for reading RDF Graphs from a Virtuoso Native Quad Store into arbitrary Graphs - - - - - Creates a new instance of the Virtuoso Reader which connects to a Virtuoso Native Quad Store using the given Manager - - Manager for the connection to Virtuoso - - - - Creates a new instance of the Virtuoso Reader which connects to a Virtuoso Native Quad Store using the given Manager - - Database Name - Database User - Database Password - Assumes that Virtuoso is installed on the local host using the default port 1111 - - - - Creates a new instance of the Virtuoso Reader which connects to a Virtuoso Native Quad Store using the given Manager - - Database Server - Database Port - Database Name - Database User - Database Password - - - - Loads a Graph from the Native Quad Store - - Graph to load into - Uri of the Graph to load - - - - Loads a Graph from the Native Quad Store - - Graph to load into - Uri of the Graph to load - - - + + + + dotNetRDF.Data.Virtuoso + + + + + Represents common extensions that are useful across all Plugin libraries + + + + + Gets either the String form of the Object of the Empty String + + Object + Result of calling ToString() on non-null objects and the empty string for null objects + + + + Ensures that a specific Object Factory type is registered in a Configuration Graph + + Configuration Serialization Context + Factory Type + + + + Formatter for use in writing data to Virtuoso + + + Uses Virtuoso function calls for communicating BNodes back to Virtuoso + + + + + Formats a Blank Node by using the sql:rdf_make_iid_of_qname() function + + Blank Node + Triple Segment + + + + + A Manager for accessing the Native Virtuoso Quad Store + + + + This class implements IStorageProvider allowing it to be used with any of the general classes that support this interface as well as the Virtuoso specific classes. + + + Although this class takes a Database Name to ensure compatability with any Virtuoso installation (i.e. this allows for the Native Quad Store to be in a non-standard database) generally you should always specify DB as the Database Name parameter + + + Virtuoso automatically assigns IDs to Blank Nodes input into it, these IDs are not based on the actual Blank Node ID so inputting a Blank Node with the same ID multiple times will result in multiple Nodes being created in Virtuoso. This means that data containing Blank Nodes which is stored to Virtuoso and then retrieved will have different Blank Node IDs to those input. In addition there is no guarentee that when you save a Graph containing Blank Nodes into Virtuoso that retrieving it will give the same Blank Node IDs even if the Graph being saved was originally retrieved from Virtuoso. Finally please see the remarks on the UpdateGraph() method which deal with how insertion and deletion of triples containing blank nodes into existing graphs operates. + + + You can use a null Uri or an empty String as a Uri to indicate that operations should affect the Default Graph. Where the argument is only a Graph a null BaseUri property indicates that the Graph affects the Default Graph + + + + + + Default Port for Virtuoso Servers + + + + + Default Database for Virtuoso Server Quad Store + + + + + Indicates whether the Database Connection is currently being kept open + + + + + Creates a Manager for a Virtuoso Native Quad Store + + Server + Port + Database Name + Username + Password + Connection Timeout in Seconds + + Timeouts less than equal to zero are ignored and treated as using the default timeout which is dictated by the underlying Virtuoso ADO.Net provider + + + + + Creates a Manager for a Virtuoso Native Quad Store + + Server + Port + Database Name + Username + Password + + + + Creates a Manager for a Virtuoso Native Quad Store + + Database Name + Username + Password + Connection Timeout in Seconds + + Assumes the Server is on the localhost and the port is the default installation port of 1111 + + + + + Creates a Manager for a Virtuoso Native Quad Store + + Database Name + Username + Password + + Assumes the Server is on the localhost and the port is the default installation port of 1111 + + + + + Creates a Manager for a Virtuoso Native Quad Store + + Connection String + + Allows the end user to specify a customised connection string + + + + + Loads a Graph from the Quad Store + + Graph to load into + URI of the Graph to Load + + + + Loads a Graph from the Quad Store + + RDF Handler + URI of the Graph to Load + + + + Loads a Graph from the Quad Store + + Graph to load into + URI of the Graph to Load + + + + Loads a Graph from the Quad Store + + RDF Handler + URI of the Graph to Load + + + + Gets a Table of Triples that are in the given Graph + + Graph Uri + + + Assumes that the caller has opened the Database connection + + + + + Decodes an Object into an appropriate Node + + Node Factory to use to create Node + Object to convert + + + + + Saves a Graph into the Quad Store (Warning: Completely replaces any existing Graph with the same URI) + + Graph to save + + Completely replaces any previously saved Graph with the same Graph URI + + + + + Gets the IO Behaviour of the store + + + + + Updates a Graph in the Quad Store + + Graph Uri of the Graph to update + Triples to be added + Triples to be removed + + + In the case of inserts where blank nodes are present the data will be inserted but new blank nodes will be created. You cannot insert data that refers to existing blank nodes via this method, consider using a INSERT WHERE style SPARQL Update instead. + + + Note that Blank Nodes cannot always be deleted successfully, if you have retrieved the triples you are now trying to delete from Virtuoso and they contain blank nodes then this will likely work as expected. Otherwise deletetions of Blank Nodes cannot be guaranteed. + + + If the Graph being modified is relatively small it may be safer to load the graph into memory, makes the modifications there and then persist the graph back to the store (which overwrites the previous version of the graph). + + + + + + Updates a Graph in the Quad Store + + Graph Uri of the Graph to update + Triples to be added + Triples to be removed + + + + Indicates that Updates are supported by the Virtuoso Native Quad Store + + + + + Returns that the Manager is ready + + + + + Returns that the Manager is not read-only + + + + + Executes a SPARQL Query on the native Quad Store + + SPARQL Query to execute + + + + This method will first attempt to parse the query into a SparqlQuery object. If this succeeds then the Query Type can be used to determine how to handle the response. + + + If the parsing fails then the query will be executed anyway using Virtuoso's SPASQL (SPARQL + SQL) syntax. Parsing can fail because Virtuoso supports various SPARQL extensions which the library does not support. These include things like aggregate functions but also SPARUL updates (the non-standard precusor to SPARQL 1.1 Update). + + + If you use an aggregate query which has an Integer, Decimal or Double type result then you will receive a SparqlResultSet containing a single SparqlResult which has contains a binding for a variable named Result which contains a LiteralNode typed to the appropriate datatype. + + + Thrown if an error occurs in making the query + + + + Executes a SPARQL Query on the native Quad Store processing the results with an appropriate handler from those provided + + RDF Handler + Results Handler + SPARQL Query to execute + + + This method will first attempt to parse the query into a SparqlQuery object. If this succeeds then the Query Type can be used to determine how to handle the response. + + + If the parsing fails then the query will be executed anyway using Virtuoso's SPASQL (SPARQL + SQL) syntax. Parsing can fail because Virtuoso supports various SPARQL non-standardised extensions which the library does not support. These include things like aggregate functions but also SPARUL updates (the non-standard precusor to SPARQL 1.1 Update). + + + If you use an aggregate query which has an Integer, Decimal or Double type result then you will receive a SparqlResultSet containing a single SparqlResult which has contains a binding for a variable named Result which contains a LiteralNode typed to the appropriate datatype. + + + Thrown if an error occurs in making the query + + + + Executes a SPARQL Update on the native Quad Store + + SPARQL Update to execute + + + This method will first attempt to parse the update into a SparqlUpdateCommandSet object. If this succeeds then each command in the command set will be issued to Virtuoso. + + + If the parsing fails then the update will be executed anyway using Virtuoso's SPASQL (SPARQL + SQL) syntax. Parsing can fail because Virtuoso supports various SPARQL extensions which the library does not support and primarily supports SPARUL updates (the precusor to SPARQL 1.1 Update). + + + Thrown if an error occurs in making the update + + + + Deletes a Graph from the Virtuoso store + + URI of the Graph to delete + + + + Deletes a Graph from the store + + URI of the Graph to delete + + + + Returns that deleting Graphs is supported + + + + + Lists the Graphs in the store + + + + + + Returns that listing graphs is supported + + + + + Opens a Connection to the Database + + Indicates that the Connection should be kept open and a Transaction started + + + + Opens a Connection to the Database + + Indicates that the Connection should be kept open and a Transaction started + Isolation Level to use + + + + Closes the Connection to the Database + + Indicates that the connection should be closed even if keepOpen was specified when the Connection was opened + + + + Closes the Connection to the Database + + Indicates that the connection should be closed even if keepOpen was specified when the Connection was opened + Indicates that the Transaction should be rolled back because something has gone wrong + + + + Executes a Non-Query SQL Command against the database + + SQL Command + + + + Executes a Query SQL Command against the database and returns a DataTable + + SQL Command + DataTable of results + + + + Executes a Query SQL Command against the database and returns the scalar result (first column of first row of the result) + + SQL Command + First Column of First Row of the Results + + + + Gets whether there is an active connection to the Virtuoso database + + + + + Gets whether there is any active transaction on the Virtuoso database + + + + + Disposes of the Manager + + + + + Gets a String which gives details of the Connection + + + + + + Serializes the connection's configuration + + Configuration Serialization Context + + + + An Object Factory that can create objects of the classes provided by the dotNetRDF.Data.Virtuoso library + + + + + Attempts to load an Object of the given type identified by the given Node and returned as the Type that this loader generates + + Configuration Graph + Object Node + Target Type + Created Object + True if the loader succeeded in creating an Object + + + + Returns whether this Factory is capable of creating objects of the given type + + Target Type + + + + + Class for reading RDF Graphs from a Virtuoso Native Quad Store into arbitrary Graphs + + + + + Creates a new instance of the Virtuoso Reader which connects to a Virtuoso Native Quad Store using the given Manager + + Manager for the connection to Virtuoso + + + + Creates a new instance of the Virtuoso Reader which connects to a Virtuoso Native Quad Store using the given Manager + + Database Name + Database User + Database Password + Assumes that Virtuoso is installed on the local host using the default port 1111 + + + + Creates a new instance of the Virtuoso Reader which connects to a Virtuoso Native Quad Store using the given Manager + + Database Server + Database Port + Database Name + Database User + Database Password + + + + Loads a Graph from the Native Quad Store + + Graph to load into + Uri of the Graph to load + + + + Loads a Graph from the Native Quad Store + + Graph to load into + Uri of the Graph to load + + + diff --git a/tests/Trinity.Tests.Virtuoso/bin/Release/net472/Models/rdf-schema.rdf b/tests/Trinity.Tests.Virtuoso/bin/Release/net472/Models/rdf-schema.rdf new file mode 100644 index 0000000..bf17bab --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Release/net472/Models/rdf-schema.rdf @@ -0,0 +1,130 @@ + + + + + + + Resource + The class resource, everything. + + + + + Class + The class of classes. + + + + + + subClassOf + The subject is a subclass of a class. + + + + + + + subPropertyOf + The subject is a subproperty of a property. + + + + + + + comment + A description of the subject resource. + + + + + + + label + A human-readable name for the subject. + + + + + + + domain + A domain of the subject property. + + + + + + + range + A range of the subject property. + + + + + + + seeAlso + Further information about the subject resource. + + + + + + + + isDefinedBy + The defininition of the subject resource. + + + + + + + Literal + The class of literal values, eg. textual strings and integers. + + + + + + Container + + The class of RDF containers. + + + + + ContainerMembershipProperty + The class of container membership properties, rdf:_1, rdf:_2, ..., + all of which are sub-properties of 'member'. + + + + + + member + A member of the subject resource. + + + + + + + Datatype + The class of RDF datatypes. + + + + + + + + diff --git a/tests/Trinity.Tests.Virtuoso/bin/Release/net472/Models/rdf-syntax.rdf b/tests/Trinity.Tests.Virtuoso/bin/Release/net472/Models/rdf-syntax.rdf new file mode 100644 index 0000000..a6815ec --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Release/net472/Models/rdf-syntax.rdf @@ -0,0 +1,156 @@ + + + + The RDF Concepts Vocabulary (RDF) + This is the RDF Schema for the RDF vocabulary terms in the RDF Namespace, defined in RDF 1.1 Concepts. + + + + + + + HTML + The datatype of RDF literals storing fragments of HTML content + + + + + + + langString + The datatype of language-tagged string values + + + + + + + PlainLiteral + The class of plain (i.e. untyped) literal values, as used in RIF and OWL 2 + + + + + + type + The subject is an instance of a class. + + + + + + + Property + The class of RDF properties. + + + + + + Statement + + The class of RDF statements. + + + + + subject + The subject of the subject RDF statement. + + + + + + + predicate + The predicate of the subject RDF statement. + + + + + + + object + The object of the subject RDF statement. + + + + + + + Bag + The class of unordered containers. + + + + + + Seq + The class of ordered containers. + + + + + + Alt + The class of containers of alternatives. + + + + + + value + Idiomatic property used for structured values. + + + + + + + + + List + The class of RDF Lists. + + + + + + nil + The empty list, with no items in it. If the rest of a list is nil then the list has no more items in it. + + + + + first + The first item in the subject RDF list. + + + + + + + rest + The rest of the subject RDF list after the first item. + + + + + + + + XMLLiteral + The datatype of XML literal values. + + + + + + + + diff --git a/tests/Trinity.Tests.Virtuoso/bin/Release/net472/Models/test-ntriples.nt b/tests/Trinity.Tests.Virtuoso/bin/Release/net472/Models/test-ntriples.nt new file mode 100644 index 0000000..91b4988 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Release/net472/Models/test-ntriples.nt @@ -0,0 +1,79 @@ +# +# Copyright World Wide Web Consortium, (Massachusetts Institute of +# Technology, Institut National de Recherche en Informatique et en +# Automatique, Keio University). +# +# All Rights Reserved. +# +# Please see the full Copyright clause at +# +# +# Test file with a variety of legal N-Triples +# +# Dave Beckett - http://purl.org/net/dajobe/ +# +# $Id: test.nt,v 1.7 2003/10/06 15:52:19 dbeckett2 Exp $ +# +##################################################################### + +# comment lines + # comment line after whitespace +# empty blank line, then one with spaces and tabs + + + . +_:anon . + _:anon . +# spaces and tabs throughout: + . + +# line ending with CR NL (ASCII 13, ASCII 10) + . + +# 2 statement lines separated by single CR (ASCII 10) + . + . + + +# All literal escapes + "simple literal" . + "backslash:\\" . + "dquote:\"" . + "newline:\n" . + "return\r" . + "tab:\t" . + +# Space is optional before final . + . + "x". + _:anon. + +# \u and \U escapes +# latin small letter e with acute symbol \u00E9 - 3 UTF-8 bytes #xC3 #A9 + "\u00E9" . +# Euro symbol \u20ac - 3 UTF-8 bytes #xE2 #x82 #xAC + "\u20AC" . +# resource18 test removed +# resource19 test removed +# resource20 test removed + +# XML Literals as Datatyped Literals + ""^^ . + " "^^ . + "x"^^ . + "\""^^ . + ""^^ . + "a "^^ . + "a c"^^ . + "a\n\nc"^^ . + "chat"^^ . +# resource28 test removed 2003-08-03 +# resource29 test removed 2003-08-03 + +# Plain literals with languages + "chat"@fr . + "chat"@en . + +# Typed Literals + "abc"^^ . +# resource33 test removed 2003-08-03 diff --git a/tests/Trinity.Tests.Virtuoso/bin/Release/net472/Models/test-ppo.rdf b/tests/Trinity.Tests.Virtuoso/bin/Release/net472/Models/test-ppo.rdf new file mode 100644 index 0000000..a4dcaf0 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Release/net472/Models/test-ppo.rdf @@ -0,0 +1,102 @@ + + + + + + + + + + + Documents + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ddMMYYYY + MMddYYYY + + + + + + hhmmss + + + + + {Wahr,Falsch} + {True,False} + + + \ No newline at end of file diff --git a/tests/Trinity.Tests.Virtuoso/bin/Release/net472/Models/test-tmo.trig b/tests/Trinity.Tests.Virtuoso/bin/Release/net472/Models/test-tmo.trig new file mode 100644 index 0000000..c368bb9 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Release/net472/Models/test-tmo.trig @@ -0,0 +1,1145 @@ +# +# Copyright (c) 2007 NEPOMUK Consortium +# All rights reserved, licensed under either CC-BY or BSD. +# +# You are free: +# * to Share - to copy, distribute and transmit the work +# * to Remix - to adapt the work +# Under the following conditions: +# * Attribution - You must attribute the work in the manner specified by the author +# or licensor (but not in any way that suggests that they endorse you or your use +# of the work). +# +# Redistribution and use in source and binary forms, with or without modification, +# are permitted provided that the following conditions are met: +# * Redistributions of source code must retain the above copyright notice, this +# list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this +# list of conditions and the following disclaimer in the documentation and/or +# other materials provided with the distribution. +# * Neither the names of the authors nor the names of contributors may +# be used to endorse or promote products derived from this ontology without +# specific prior written permission. +# +# THIS ONTOLOGY IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +# THIS ONTOLOGY, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +@prefix dc: . +@prefix exif: . +@prefix geo: . +@prefix protege: . +@prefix nao: . +@prefix nfo: . +@prefix nie: . +@prefix ncal: . +@prefix nco: . +@prefix dcterms: . +@prefix rdfs: . +@prefix pimo: . +@prefix nmo: . +@prefix nrl: . +@prefix tmo: . +@prefix xsd: . +@prefix rdf: . +@prefix nid3: . +@prefix nexif: . + +tmo: {tmo:TMO_Instance_PersonInvolvementRole_Creator + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Creator" . + + tmo:abilityCarrierRole + a rdf:Property ; + rdfs:domain tmo:AbilityCarrierInvolvement ; + rdfs:label "abilityCarrierRole" ; + rdfs:range tmo:AbilityCarrierRole ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:PersonInvolvement + a rdfs:Class ; + rdfs:comment "PersonInvolvement realizes n-ary associations to Persons which are realtedd to an task. The involvement is further characterized by an PersonTaskRole." ; + rdfs:label "PersonInvolvement" ; + rdfs:subClassOf rdfs:Resource , pimo:Association . + + tmo:TMO_Instance_TaskState_Running + a tmo:TaskState ; + rdfs:label "TMO_Instance_TaskState_Running" . + + tmo:SimilarityDependence + a rdfs:Class ; + rdfs:label "SimilarityDependence" ; + rdfs:subClassOf tmo:UndirectedDependency . + + tmo:PredecessorDependency + a rdfs:Class ; + rdfs:comment "In a PredecessorDependency the dependencyMemberA is the task which is to be executed before dependencyMemberB." ; + rdfs:label "PredecessorDependency" ; + rdfs:subClassOf tmo:PredecessorSuccessorDependency . + + tmo:TMO_Instance_TaskContainer_outbox + a tmo:TaskContainer ; + rdfs:label "TMO_Instance_TaskContainer_outbox" . + + tmo:dueDate + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "dueDate" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf pimo:taskDueTime , tmo:dateTime ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_Urgency_04 + a tmo:Urgency ; + rdfs:label "TMO_Instance_Urgency_04" . + + tmo:Priority + a rdfs:Class ; + rdfs:label "Priority" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:TaskContainer + a rdfs:Class ; + rdfs:label "TaskContainer" ; + rdfs:subClassOf pimo:Collection . + + tmo:Task + a rdfs:Class ; + rdfs:comment "The tmo:task is the central entitiey of the tmo. Task can range from vague things to be possibly done in e distant future to concrete things to be done in a precise forseeable manner. It is not unrealisitc to assume that knowledge worker have hundred or more tasks a day." ; + rdfs:label "Task" ; + rdfs:subClassOf pimo:Task . + + tmo:PersonInvolvementRole + a rdfs:Class ; + rdfs:comment """They further specify the type a person was related to an task. +Examples instances of AttachmentRoles are e.g.""" ; + rdfs:label "PersonInvolvementRole" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:actualCompletion + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "actualCompletion" ; + rdfs:range rdfs:Literal ; + rdfs:subPropertyOf tmo:progress ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_PersonInvolvementRole_Co-worker + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Co-worker" . + + tmo:urgency + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "urgency" ; + rdfs:range tmo:Urgency ; + rdfs:subPropertyOf tmo:timemanagement ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_TaskContainer_archive + a tmo:TaskContainer ; + rdfs:label "TMO_Instance_TaskContainer_archive" . + + tmo:dependency + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "dependency" ; + rdfs:range tmo:TaskDependency . + + tmo:TMO_Instance_Importance_10 + a tmo:Importance ; + rdfs:label "TMO_Instance_Importance_10" . + + tmo:targetStartTime + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "targetStartTime" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:targetTime , tmo:startTime ; + nrl:maxCardinality "1" . + + tmo:dependencyDescription + a rdf:Property ; + rdfs:comment "Endusers can clarify why they created a depedency." ; + rdfs:domain tmo:TaskDependency ; + rdfs:label "dependencyDescription" ; + rdfs:subPropertyOf nao:description ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_Importance_09 + a tmo:Importance ; + rdfs:label "TMO_Instance_Importance_09" . + + tmo:transmissionState + a rdf:Property ; + rdfs:domain tmo:TaskTransmission ; + rdfs:label "transmissionState" ; + rdfs:range tmo:TransmissionState ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:AbilityCarrierRole + a rdfs:Class ; + rdfs:comment "Examples instances of AbilityCarrirRoles are e.g. \"requested\", \"required\" and \"used\" which further specify the type a person was involved in." ; + rdfs:label "AbilityCarrierRole" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:TMO_Instance_TaskState_Finalized + a tmo:TaskState ; + rdfs:label "TMO_Instance_TaskState_Finalized" . + + tmo:abilityCarrier + a rdf:Property ; + rdfs:domain tmo:AbilityCarrierInvolvement ; + rdfs:label "abilityCarrier" ; + rdfs:range tmo:AbilityCarrier ; + rdfs:subPropertyOf pimo:associationMember ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:TMO_Instance_TransmissionState_Rejected_Transmitted + a tmo:TransmissionState ; + rdfs:label "TMO_Instance_TransmissionState_Rejected_Transmitted" . + + tmo:TMO_Instance_Delegability_High + a tmo:Delegability ; + rdfs:label "TMO_Instance_Delegability_High" . + + tmo:TMO_Instance_Urgency_10 + a tmo:Urgency ; + rdfs:label "TMO_Instance_Urgency_10" . + + tmo:taskId + a rdf:Property ; + rdfs:comment """The Task Identifier allows a unique identification of a task object within the range of all Nepomuk objects. +The Task Identifier is automatically generated during the creation of a task. The generation of identifiers (IDs) is a Nepomuk architecture issue (Wp2000/WP6000).""" ; + rdfs:domain tmo:Task ; + rdfs:label "taskId" ; + rdfs:range rdfs:Literal ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:TMO_Instance_Importance_01 + a tmo:Importance ; + rdfs:label "TMO_Instance_Importance_01" . + + tmo:TMO_Instance_TransmissionType_Transfer + a tmo:TransmissionType ; + rdfs:label "TMO_Instance_TransmissionType_Transfer" . + + tmo:priority + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "priority" ; + rdfs:range tmo:Priority ; + rdfs:subPropertyOf tmo:timemanagement ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_Urgency_03 + a tmo:Urgency ; + rdfs:label "TMO_Instance_Urgency_03" . + + tmo:involvedPersons + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "involvedPersons" ; + rdfs:range tmo:PersonInvolvement ; + nrl:inverseProperty tmo:involvedPersonTask . + + tmo:involvedPerson + a rdf:Property ; + rdfs:domain tmo:PersonInvolvement ; + rdfs:label "involvedPerson" ; + rdfs:range pimo:Person ; + rdfs:subPropertyOf pimo:associationMember ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:TaskTransmission + a rdfs:Class ; + rdfs:comment """On the SSD, tasks are not restricted to one person and may cross from +the PTM of one person to the PTM of another. With transmission, we +refer to the process of sending a task – from one person (sender) to one +or more other persons (receiver(s)) (see Section 5.2.1.3 Task +Transmission). Task delegation and task transfer are two special kinds of +task transmission which are described at the end of this section. In +addition, the collaborative task is realized by task transmission. +For the process of sending a task, some information is required. This +information is also modelled in the task ontology. This information is still +useful after the process of sending a task was completed. Task Delegation is a process where the sender of the task restricts the +access rights of the receiver. This includes the right to distribute further +this task and additionally the obligation to give feedback to the sender. +The person that receives a task by delegation usually has not the full +control about the task. The attributes described in the following section +have the purpose to enable such \"access rights\". The receiver will also +probably have obligations regarding what to report to whom at which +time. +In contrast, the simplest case is that all rights are granted to the receiver +and there is no feedback desired by the sender. What to do with the task +may be apparent by the organization context, or it may be left to the +receiver. This is like sending an email – but with the advantage that the +information is transferred in the \"task space\" of the participating persons.""" ; + rdfs:label "TaskTransmission" ; + rdfs:subClassOf rdfs:Resource . + + tmo:containsTask + a rdf:Property ; + rdfs:domain tmo:TaskContainer ; + rdfs:label "containsTask" ; + rdfs:range tmo:Task ; + rdfs:subPropertyOf pimo:hasPart . + + tmo:TMO_Instance_PersonInvolvementRole_Suggested + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Suggested" . + + tmo:TMO_Instance_TaskState_Archived + a tmo:TaskState ; + rdfs:label "TMO_Instance_TaskState_Archived" . + + tmo:targetTime + a rdf:Property ; + rdfs:label "targetTime" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:dateTime ; + nrl:maxCardinality "1" . + + tmo:indexPosition + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "indexPosition" ; + rdfs:range rdfs:Literal ; + nrl:maxCardinality "1" . + + tmo:dependencyType + a rdf:Property ; + rdfs:label "dependencyType" ; + rdfs:range rdfs:Resource ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:targetEndTime + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "targetEndTime" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:targetTime , tmo:endTime ; + nrl:maxCardinality "1" . + + tmo:PredecessorSuccessorDependency + a rdfs:Class ; + rdfs:comment "The PredecessorSuccessorDependency enables a directed relation between task. By means of the concrete sublcasses one can further distinguish from which point of view this relation is created." ; + rdfs:label "PredecessorSuccessorDependency" ; + rdfs:subClassOf tmo:TaskDependency ; + protege:role "abstract" . + + tmo:TMO_Instance_Importance_08 + a tmo:Importance ; + rdfs:label "TMO_Instance_Importance_08" . + + tmo:attachmentReference + a rdf:Property ; + rdfs:domain tmo:Attachment ; + rdfs:label "attachmentReference" ; + rdfs:range rdfs:Resource ; + rdfs:subPropertyOf pimo:associationMember ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:TMO_Instance_Delegability_Never + a tmo:Delegability ; + rdfs:label "TMO_Instance_Delegability_Never" . + + tmo:superTask + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "superTask" ; + rdfs:range tmo:Task ; + rdfs:subPropertyOf pimo:partOf , tmo:taskReference ; + nrl:inverseProperty tmo:subTask ; + nrl:maxCardinality "1" . + + tmo:taskDescription + a rdf:Property ; + rdfs:comment """The task description helps users to understand the goal and the proceeding of a task. It can also describe the context of a task. The task description is composed at minimum of a summary of what is done to reach the goal. The task description is the main source for identifying related information, e.g., suitable patterns. +A Task Description can be either an informal, described textual content (?TextualDescription) or it can be a more formally structured representation (àFormalDescription). +Technology considerations: Informal descriptions allow for text similarity processing, a formal description allows for applying case based similarity measures.""" ; + rdfs:domain tmo:Task ; + rdfs:label "taskDescription" ; + rdfs:subPropertyOf nao:description ; + nrl:maxCardinality "1" . + + tmo:SuperSubTaskDependency + a rdfs:Class ; + rdfs:comment "By means of the SuperSubTaskDependency one can further describe the subtask-supertask relation .e.g by an descriptin. This enables an n-ary relation between subtask and supertask." ; + rdfs:label "SuperSubTaskDependency" ; + rdfs:subClassOf tmo:TaskDependency . + + tmo:contextTask + a rdf:Property ; + rdfs:label "contextTask" ; + rdfs:range tmo:Task ; + nrl:inverseProperty tmo:contextThread ; + nrl:maxCardinality "1" . + + tmo:SuccessorDependency + a rdfs:Class ; + rdfs:comment "In a SuccessorrDependency the dependencyMemberA is the task which is to be executed after dependencyMemberB." ; + rdfs:label "SuccessorDependency" ; + rdfs:subClassOf tmo:PredecessorSuccessorDependency . + + tmo:stateTypeRole + a rdf:Property ; + rdfs:label "stateTypeRole" ; + rdfs:range rdfs:Resource ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_TransmissionState_NotTransmitted + a tmo:TransmissionState ; + rdfs:label "TMO_Instance_TransmissionState_NotTransmitted" . + + tmo:TMO_Instance_Urgency_06 + a tmo:Urgency ; + rdfs:label "TMO_Instance_Urgency_06" . + + tmo:abilityCarrierInvolvement + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "abilityCarrierInvolvement" ; + rdfs:range tmo:AbilityCarrierInvolvement ; + nrl:inverseProperty tmo:abilityCarrierTask . + + tmo:TMO_Instance_AbilityCarrierRole_Required + a tmo:AbilityCarrierRole ; + rdfs:label "TMO_Instance_AbilityCarrierRole_Required" . + + tmo:actualStartTime + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "actualStartTime" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:actualTime , tmo:startTime ; + nrl:maxCardinality "1" . + + tmo:transmissionType + a rdf:Property ; + rdfs:domain tmo:TaskTransmission ; + rdfs:label "transmissionType" ; + rdfs:range tmo:TransmissionType ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:taskTransmission + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "taskTransmission" ; + rdfs:range tmo:TaskTransmission ; + nrl:inverseProperty tmo:transmissionTask . + + tmo:TMO_Instance_PersonInvolvementRole_Executor + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Executor" . + + tmo:targetCompletion + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "targetCompletion" ; + rdfs:range rdfs:Literal ; + rdfs:subPropertyOf tmo:progress ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_Delegability_Medium + a tmo:Delegability ; + rdfs:label "TMO_Instance_Delegability_Medium" . + + tmo:AgentAbilityCarrier + a rdfs:Class ; + rdfs:label "AgentAbilityCarrier" ; + rdfs:subClassOf tmo:AbilityCarrier ; + protege:role "abstract" . + + tmo:transmissionTask + a rdf:Property ; + rdfs:domain tmo:TaskTransmission ; + rdfs:label "transmissionTask" ; + rdfs:range tmo:Task ; + rdfs:subPropertyOf tmo:taskReference ; + nrl:inverseProperty tmo:taskTransmission ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:Attachment + a rdfs:Class ; + rdfs:comment "By means of attachments, references to other resources can be established. Resources are information objects. Every Thing, which can be referenced, on the SSD is an information object. In contrast to the usual SSD references/associations, here additionally information can be specified. Further metadata about the role an attachment plays can be stated by means of instances of AttachmentRole. It can be expressed what the Role of attachment is e.g., regarding \"desired/requested\" or \"required\" or \"potentially useful / somehow related\" or \"used/produced/achieved\". The reference property models the actual link to the attached piece of information." ; + rdfs:label "Attachment" ; + rdfs:subClassOf rdfs:Resource , pimo:Association . + + tmo:TMO_Instance_TaskPrivacy_Private + a tmo:TaskPrivacyState ; + rdfs:label "TMO_Instance_TaskPrivacy_Private" . + + tmo:TMO_Instance_Importance_07 + a tmo:Importance ; + rdfs:label "TMO_Instance_Importance_07" . + + tmo:AssociationDependency + a rdfs:Class ; + rdfs:label "AssociationDependency" ; + rdfs:subClassOf tmo:UndirectedDependency . + + tmo:nextReviewIntervall + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "nextReviewIntervall" ; + rdfs:range xsd:integer ; + nrl:maxCardinality "1" . + + tmo:transmissionFrom + a rdf:Property ; + rdfs:domain tmo:TaskTransmission ; + rdfs:label "transmissionFrom" ; + rdfs:range pimo:Person ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:taskState + a rdf:Property ; + rdfs:comment "The task state describes the current state of the task as described in Section 5.2.7." ; + rdfs:domain tmo:Task ; + rdfs:label "taskState" ; + rdfs:range tmo:TaskState ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:delegability + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "delegability" ; + rdfs:range tmo:Delegability ; + rdfs:subPropertyOf tmo:timemanagement ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_PersonInvolvementRole_Related + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Related" . + + tmo:TMO_Instance_TaskContainer_inbox + a tmo:TaskContainer ; + rdfs:label "TMO_Instance_TaskContainer_inbox" . + + tmo:TMO_Instance_AttachmentRole_Required + a tmo:AttachmentRole ; + rdfs:label "TMO_Instance_AttachmentRole_Required" . + + tmo:taskPrivacyState + a rdf:Property ; + rdfs:comment """For the separation between professional and private purpose of a task, this attribute provides with the values \"professional/private\" a high level separation of privacy in terms of setting distribution rights to other users for the task. +This separation may arise as a general Nepomuk issue and may therefore be handled in conjunction with a privacy preserving SSD architecture.""" ; + rdfs:domain tmo:Task ; + rdfs:label "taskPrivacyState" ; + rdfs:range tmo:TaskPrivacyState ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" . + + tmo:taskName + a rdf:Property ; + rdfs:comment "The Task Name helps the user to identify a task in a list. It should be expressive enough to give a meaningful recognition. Details should be written in the description attribute instead. A name attribute is not allowed to contain line breaks." ; + rdfs:domain tmo:Task ; + rdfs:label "taskName" ; + rdfs:range rdfs:Literal ; + rdfs:subPropertyOf nao:prefLabel ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_AbilityCarrierRole_Requested + a tmo:AbilityCarrierRole ; + rdfs:label "TMO_Instance_AbilityCarrierRole_Requested" . + + tmo:TMO_Instance_PersonInvolvementRole_Controller + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Controller" . + + tmo:TMO_Instance_PersonInvolvementRole_Delegate + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Delegate" . + + tmo:transmissionStateChangesFrom + a rdf:Property ; + rdfs:domain tmo:TransmissionState ; + rdfs:label "transmissionStateChangesFrom" ; + rdfs:range tmo:TransmissionState ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" . + + tmo:TransmissionState + a rdfs:Class ; + rdfs:comment "States a task can go through during transmission of an task." ; + rdfs:label "TransmissionState" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:transmissionStateChangesTo + a rdf:Property ; + rdfs:domain tmo:TransmissionState ; + rdfs:label "transmissionStateChangesTo" ; + rdfs:range tmo:TransmissionState ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_PersonInvolvementRole_ExternalObserver + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_ExternalObserver" . + + tmo:TMO_Instance_Urgency_05 + a tmo:Urgency ; + rdfs:label "TMO_Instance_Urgency_05" . + + tmo:TaskDependency + a rdfs:Class ; + rdfs:comment """Between the tasks, further dependencies may exist. These dependencies allow for a graph network structure. For ease of use, dependencies should not be too frequent, otherwise the primarily character of a hierarchy would be diminished and a consequent graph representation would become considerable. However, such a graph representation has other drawbacks, the user is likely to loose oversight, tree structures are more helpful in structuring the work. + +A dependency relation is characterized by the type of the relation and by an additional description. There are different possibilities for dependency relations between tasks.""" ; + rdfs:label "TaskDependency" ; + rdfs:subClassOf rdfs:Resource , pimo:Association ; + protege:role "abstract" . + + tmo:TMO_Instance_TaskState_Completed + a tmo:TaskState ; + rdfs:label "TMO_Instance_TaskState_Completed" . + + tmo:TMO_Instance_Importance_06 + a tmo:Importance ; + rdfs:label "TMO_Instance_Importance_06" . + + tmo:attachmentRole + a rdf:Property ; + rdfs:domain tmo:Attachment ; + rdfs:label "attachmentRole" ; + rdfs:range tmo:AttachmentRole ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_TaskPrivacy_Professional + a tmo:TaskPrivacyState ; + rdfs:label "TMO_Instance_TaskPrivacy_Professional" . + + tmo:TMO_Instance_TaskState_Terminated + a tmo:TaskState ; + rdfs:label "TMO_Instance_TaskState_Terminated" . + + tmo:TMO_Instance_PersonInvolvementRole_Owner + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Owner" . + + tmo:TMO_Instance_AttachmentRole_Desired_Requested + a tmo:AttachmentRole ; + rdfs:label "TMO_Instance_AttachmentRole_Desired_Requested" . + + tmo:involvedPersonTask + a rdf:Property ; + rdfs:domain tmo:PersonInvolvement ; + rdfs:label "involvedPersonTask" ; + rdfs:range tmo:Task ; + rdfs:subPropertyOf pimo:associationMember ; + nrl:inverseProperty tmo:involvedPersons ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_TransmissionState_Accepted_NotTransmitted + a tmo:TransmissionState ; + rdfs:label "TMO_Instance_TransmissionState_Accepted_NotTransmitted" . + + tmo:TMO_Instance_PersonInvolvementRole_Analyst + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Analyst" . + + tmo:logEntry + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "logEntry" ; + rdfs:range rdfs:Resource . + + tmo:transmissionTo + a rdf:Property ; + rdfs:domain tmo:TaskTransmission ; + rdfs:label "transmissionTo" ; + rdfs:range pimo:Person ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:Importance + a rdfs:Class ; + rdfs:label "Importance" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:TMO_Instance_TransmissionType_Join + a tmo:TransmissionType ; + rdfs:label "TMO_Instance_TransmissionType_Join" . + + tmo:Delegability + a rdfs:Class ; + rdfs:label "Delegability" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:lastReviewDate + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "lastReviewDate" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:dateTime ; + nrl:maxCardinality "1" . + + tmo:Role + a rdfs:Class ; + rdfs:comment "examples: Architect, Developer, ..." ; + rdfs:label "Role" ; + rdfs:subClassOf tmo:AbilityCarrier . + + tmo:timemanagement + a rdf:Property ; + rdfs:label "timemanagement" ; + rdfs:range rdfs:Literal ; + nrl:maxCardinality "1" . + + tmo:taskGoal + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "taskGoal" ; + rdfs:range rdfs:Resource . + + tmo:dependencyMemberA + a rdf:Property ; + rdfs:comment "The semantic of this relation is defined in the sublclass of undirected Dependency on which this property is stated. (The subject of the statment where this property is expressed)" ; + rdfs:domain tmo:TaskDependency ; + rdfs:label "dependencyMemberA" ; + rdfs:range tmo:Task ; + rdfs:subPropertyOf tmo:taskReference , pimo:associationMember ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:startTime + a rdf:Property ; + rdfs:label "startTime" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:dateTime ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_Urgency_08 + a tmo:Urgency ; + rdfs:label "TMO_Instance_Urgency_08" . + + tmo:taskStateChangesFrom + a rdf:Property ; + rdfs:domain tmo:TaskState ; + rdfs:label "taskStateChangesFrom" ; + rdfs:range tmo:TaskState ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" . + + tmo:receiveDateTime + a rdf:Property ; + rdfs:domain tmo:TaskTransmission ; + rdfs:label "receiveDateTime" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:dateTime ; + nrl:maxCardinality "1" . + + tmo:createdBy + a rdf:Property ; + rdfs:domain tmo:Attachment ; + rdfs:label "createdBy" ; + rdfs:range pimo:Person ; + nrl:maxCardinality "1" . + + tmo:progress + a rdf:Property ; + rdfs:label "progress" ; + rdfs:range rdfs:Literal ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_AbilityCarrierRole_Used + a tmo:AbilityCarrierRole ; + rdfs:label "TMO_Instance_AbilityCarrierRole_Used" . + + tmo:TMO_Instance_Importance_05 + a tmo:Importance ; + rdfs:label "TMO_Instance_Importance_05" . + + tmo:TMO_Instance_TaskContainer_activetasks + a tmo:TaskContainer ; + rdfs:label "TMO_Instance_TaskContainer_activetasks" . + + tmo:sendDateTime + a rdf:Property ; + rdfs:domain tmo:TaskTransmission ; + rdfs:label "sendDateTime" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:dateTime ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_PersonInvolvementRole_Collaborator + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Collaborator" . + + tmo:TMO_Instance_TaskState_Suspended + a tmo:TaskState ; + rdfs:label "TMO_Instance_TaskState_Suspended" . + + tmo:AbilityCarrierInvolvement + a rdfs:Class ; + rdfs:comment "The class AbilityCarrier_Involvement ties together an AbilityCarrier with an AbilityCarrier_Role. This is a role based modelling approach. An n-ary relation is realized." ; + rdfs:label "AbilityCarrierInvolvement" ; + rdfs:subClassOf rdfs:Resource , pimo:Association . + + tmo:endTime + a rdf:Property ; + rdfs:label "endTime" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:dateTime ; + nrl:maxCardinality "1" . + + tmo:dependencyMemberB + a rdf:Property ; + rdfs:comment "The semantic of this relation is defined in the sublclass of undirected Dependency on which this property is stated. (The subject of the statment where this property is expressed)" ; + rdfs:domain tmo:TaskDependency ; + rdfs:label "dependencyMemberB" ; + rdfs:range tmo:Task ; + rdfs:subPropertyOf tmo:taskReference , pimo:associationMember ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:TMO_Instance_Priority_High + a tmo:Priority ; + rdfs:label "TMO_Instance_Priority_High" . + + tmo:TMO_Instance_PersonInvolvementRole_Observer + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Observer" . + + tmo:TMO_Instance_Delegability_Unrestricted + a tmo:Delegability ; + rdfs:label "TMO_Instance_Delegability_Unrestricted" . + + tmo:TMO_Instance_Priority_Medium + a tmo:Priority ; + rdfs:label "TMO_Instance_Priority_Medium" . + + tmo:TMO_Instance_Delegability_Low + a tmo:Delegability ; + rdfs:label "TMO_Instance_Delegability_Low" . + + tmo:Interdependence + a rdfs:Class ; + rdfs:label "Interdependence" ; + rdfs:subClassOf tmo:UndirectedDependency . + + tmo:involvedPersonRole + a rdf:Property ; + rdfs:domain tmo:PersonInvolvement ; + rdfs:label "involvedPersonRole" ; + rdfs:range tmo:PersonInvolvementRole ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:AttachmentRole + a rdfs:Class ; + rdfs:comment "AttachmentRoles further specify the type of how an attachment relates to a task. Example instances of AttachmentRoles are e.g. \"desired_request\", \"required\" and \"used\"." ; + rdfs:label "AttachmentRole" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:TMO_Instance_Urgency_07 + a tmo:Urgency ; + rdfs:label "TMO_Instance_Urgency_07" . + + tmo:TMO_Instance_PersonInvolvementRole_Reviewer + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Reviewer" . + + tmo:TransmissionType + a rdfs:Class ; + rdfs:comment "By means of the TransmissionType one can distinguish several different types which might imply a different business logic. e.g. delegation can mean that the results of the task fulfillment care to be reported back to the sender of the task." ; + rdfs:label "TransmissionType" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:actualEndTime + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "actualEndTime" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:endTime , tmo:actualTime ; + nrl:maxCardinality "1" . + + tmo:subTask + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "subTask" ; + rdfs:range tmo:Task ; + rdfs:subPropertyOf pimo:hasPart ; + nrl:inverseProperty tmo:superTask . + + tmo:TMO_Instance_TransmissionType_Delegation + a tmo:TransmissionType ; + rdfs:label "TMO_Instance_TransmissionType_Delegation" . + + tmo:TMO_Instance_Importance_04 + a tmo:Importance ; + rdfs:label "TMO_Instance_Importance_04" . + + tmo:TaskState + a rdfs:Class ; + rdfs:comment """The task state property allows tracking a task during its lifecycle. Initially the state is just \"created\". +The TaskState class was modeled so that for each state can be set which the typical prior and posterior states are. This has the advantage that e.g. a UI can retrieve the allowed states at runtime from the ontology; rather can having this potentially changing knowledge hard coded. But the prior and posterior states are only defaults; the human user is always free to change the state.""" ; + rdfs:label "TaskState" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:taskSource + a rdf:Property ; + rdfs:comment "here can be stated from which sources a task was derived. e.g from another task or from an task pattern" ; + rdfs:domain tmo:Task ; + rdfs:label "taskSource" ; + rdfs:range rdfs:Resource ; + rdfs:subPropertyOf tmo:taskReference ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_Urgency_02 + a tmo:Urgency ; + rdfs:label "TMO_Instance_Urgency_02" . + + tmo:TMO_Instance_TransmissionState_Accepted_Transmitted + a tmo:TransmissionState ; + rdfs:label "TMO_Instance_TransmissionState_Accepted_Transmitted" . + + tmo:TMO_Instance_TaskState_New + a tmo:TaskState ; + rdfs:label "TMO_Instance_TaskState_New" . + + tmo:Urgency + a rdfs:Class ; + rdfs:label "Urgency" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:StateTypeRole + a rdfs:Class ; + rdfs:comment "StateTypeRole is an abstract class which subsumes various other classes which represent \"states\" or roles e.g. in role based modelling conpetualisations." ; + rdfs:label "StateTypeRole" ; + rdfs:subClassOf rdfs:Resource . + + tmo:TMO_Instance_TaskContainer_trashtasks + a tmo:TaskContainer ; + rdfs:label "TMO_Instance_TaskContainer_trashtasks" . + + tmo:contextThread + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "contextThread" ; + rdfs:range ; + nrl:inverseProperty tmo:contextTask ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_AttachmentRole_Used + a tmo:AttachmentRole ; + rdfs:label "TMO_Instance_AttachmentRole_Used" . + + tmo:abilityCarrierTask + a rdf:Property ; + rdfs:domain tmo:AbilityCarrierInvolvement ; + rdfs:label "abilityCarrierTask" ; + rdfs:range tmo:Task ; + rdfs:subPropertyOf pimo:associationMember ; + nrl:inverseProperty tmo:abilityCarrierInvolvement ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_TransmissionState_Rejected_NotTransmitted + a tmo:TransmissionState ; + rdfs:label "TMO_Instance_TransmissionState_Rejected_NotTransmitted" . + + tmo:TMO_Instance_Priority_Low + a tmo:Priority ; + rdfs:label "TMO_Instance_Priority_Low" . + + tmo:TMO_Instance_TransmissionState_Transmitted + a tmo:TransmissionState ; + rdfs:label "TMO_Instance_TransmissionState_Transmitted" . + + tmo:TMO_Instance_Importance_03 + a tmo:Importance ; + rdfs:label "TMO_Instance_Importance_03" . + + tmo:TMO_Instance_AttachmentRole_Related + a tmo:AttachmentRole ; + rdfs:label "TMO_Instance_AttachmentRole_Related" . + + tmo:taskReference + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "taskReference" ; + rdfs:range tmo:Task ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_PersonInvolvementRole_Involved + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Involved" . + + tmo:AbilityCarrier + a rdfs:Class ; + rdfs:comment """AbilityCarrier is an abstract class which circumferences all entities which can take action or which are somehow involved in tasks. +This is in other task conceptualizations rather named \"actor\". But here it is named AbilityCarrier because it is not neccessarily \"active\". + +The execution of a task relies on certain abilities. The abstract concept of +Abilitiy_Carriers circumference all those more concrete concepts +of which one can think of while working on tasks. Using this abstract +class enables to substitute such Ability Carrier's in the process of +generating patterns from task instances and vice versa in the process of +instantiating task instances from patterns without violating the schema. +With this attribute, a series of ability carrying entities (Person, Role, +Skill, OrganizationalUnit, InformalDescribedAbility) +and the role of involvement (required, request, used) is enabled. The role +hereby allows specifying how the ability carrying entity is or was +involved.""" ; + rdfs:label "AbilityCarrier" ; + rdfs:subClassOf rdfs:Resource ; + protege:role "abstract" . + + tmo:importance + a rdf:Property ; + rdfs:domain tmo:Task ; + rdfs:label "importance" ; + rdfs:range tmo:Importance ; + rdfs:subPropertyOf tmo:timemanagement ; + nrl:maxCardinality "1" . + + tmo:subTaskOrdering + a rdf:Property ; + rdfs:comment "Ordering of the subtasks listed in the tmo:subTasks property of this Task. This is only for ordering/sorting in GUIs, the semantic relation is defined in subTasks, and if this and subTasks differ, subTasks is the correct list." ; + rdfs:domain tmo:Task ; + rdfs:label "subTaskOrdering" ; + rdfs:range rdf:List ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_Urgency_01 + a tmo:Urgency ; + rdfs:label "TMO_Instance_Urgency_01" . + + tmo:dependencyOrderNumber + a rdf:Property ; + rdfs:domain tmo:TaskDependency ; + rdfs:label "dependencyOrderNumber" ; + rdfs:range xsd:int ; + nrl:maxCardinality "1" ; + nrl:minCardinality "1" . + + tmo:actualTime + a rdf:Property ; + rdfs:label "actualTime" ; + rdfs:range xsd:dateTime ; + rdfs:subPropertyOf tmo:dateTime ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_PersonInvolvementRole_Initiator + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Initiator" . + + tmo:dateTime + a rdf:Property ; + rdfs:comment "dateTime subsumes various properties with Range XMLSchema:dateTime. If possible they are further grouped by \"abstract\" properties." ; + rdfs:label "dateTime" ; + rdfs:range xsd:dateTime ; + nrl:maxCardinality "1" . + + tmo:UndirectedDependency + a rdfs:Class ; + rdfs:comment "A symmetric relations between task." ; + rdfs:label "UndirectedDependency" ; + rdfs:subClassOf tmo:TaskDependency . + + tmo:attachment + a rdf:Property ; + rdfs:comment "connects a Task with an Attachment object. Attachments are associations of Things." ; + rdfs:domain tmo:Task ; + rdfs:label "attachment" ; + rdfs:range tmo:Attachment ; + nrl:inverseProperty tmo:attachmentTask . + + tmo:attachmentTask + a rdf:Property ; + rdfs:comment "Inverse of attachment, connects an Attachment Association to the associated Task. Is required for every instance of Attachment." ; + rdfs:domain tmo:Attachment ; + rdfs:label "attachmentTask" ; + rdfs:range tmo:Task ; + rdfs:subPropertyOf pimo:associationMember ; + nrl:inverseProperty tmo:attachment ; + nrl:maxCardinality "1" . + + tmo:TMO_Instance_PersonInvolvementRole_Receiver + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_Receiver" . + + tmo:TMO_Instance_TaskState_Deleted + a tmo:TaskState ; + rdfs:label "TMO_Instance_TaskState_Deleted" . + + tmo:taskStateChangesTo + a rdf:Property ; + rdfs:domain tmo:TaskState ; + rdfs:label "taskStateChangesTo" ; + rdfs:range tmo:TaskState ; + rdfs:subPropertyOf tmo:stateTypeRole ; + nrl:maxCardinality "1" . + + tmo:TaskPrivacyState + a rdfs:Class ; + rdfs:comment """Privacy Status serves for the separation between a professional and a private purpose of a task. This attribute provides with the values \"professional/private\" a high-level separation of privacy in terms of setting distribution and access +rights to other users for the task. +This separation may arise as a general Nepomuk issue and may therefore be handled in conjunction with a privacy preserving SSD architecture.""" ; + rdfs:label "TaskPrivacyState" ; + rdfs:subClassOf tmo:StateTypeRole . + + tmo:TMO_Instance_Urgency_09 + a tmo:Urgency ; + rdfs:label "TMO_Instance_Urgency_09" . + + tmo:TMO_Instance_Importance_02 + a tmo:Importance ; + rdfs:label "TMO_Instance_Importance_02" . + + tmo:TMO_Instance_PersonInvolvementRole_InternalObserver + a tmo:PersonInvolvementRole ; + rdfs:label "TMO_Instance_PersonInvolvementRole_InternalObserver" . + + tmo:Skill + a rdfs:Class ; + rdfs:comment "examples are e.g. technologies like Java, XML, ..." ; + rdfs:label "Skill" ; + rdfs:subClassOf tmo:AbilityCarrier . +} + + {tmo: a nrl:Ontology ; + nao:creator ; + nao:hasDefaultNamespace + "http://www.semanticdesktop.org/ontologies/2008/05/20/tmo#" ; + nao:hasDefaultNamespaceAbbreviation + "tmo" ; + nao:lastModified "2009-08-14T10:04:25.546Z" ; + nao:status "Unstable" ; + nao:updatable "0 " ; + nao:version "0.9.0" ; + nao:prefLabel "Task Management Ontology" ; + nao:description "The TMO Ontology can be used to describe personal tasks of individuals, also known as to-do lists. It is based on RDF and NRL, the Nepomuk Representational Language and other Semantic Web ontologies." . + + + a nrl:GraphMetadata ; + nrl:coreGraphMetadataFor + tmo: . +} + diff --git a/tests/Trinity.Tests.Virtuoso/bin/Release/net472/Models/test-vocab.rdf b/tests/Trinity.Tests.Virtuoso/bin/Release/net472/Models/test-vocab.rdf new file mode 100644 index 0000000..b295ae6 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Release/net472/Models/test-vocab.rdf @@ -0,0 +1,39 @@ + + + + + + + Animal + An animal + + + + + Horse + A Horse + + + + + + consumes + Something an animal consumes. + + + + + + consumes + Something an animal consumes. + + + + + diff --git a/tests/Trinity.Tests.Virtuoso/bin/Release/net472/Ontologies/dces.ttl b/tests/Trinity.Tests.Virtuoso/bin/Release/net472/Ontologies/dces.ttl new file mode 100644 index 0000000..4510e02 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Release/net472/Ontologies/dces.ttl @@ -0,0 +1,177 @@ +@prefix rdf: . +@prefix owl: . +@prefix skos: . +@prefix dcam: . +@prefix dcterms: . +@prefix rdfs: . + + + dcterms:modified "2013-01-03"^^ ; + dcterms:publisher ; + dcterms:title "Dublin Core Metadata Element Set, Version 1.1"@en . + + + dcterms:description "Examples of a Contributor include a person, an organization, or a service. Typically, the name of a Contributor should be used to indicate the entity."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "An entity responsible for making contributions to the resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Contributor"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Spatial topic and spatial applicability may be a named place or a location specified by its geographic coordinates. Temporal topic may be a named period, date, or date range. A jurisdiction may be a named administrative entity or a geographic place to which the resource applies. Recommended best practice is to use a controlled vocabulary such as the Thesaurus of Geographic Names [TGN]. Where appropriate, named places or time periods can be used in preference to numeric identifiers such as sets of coordinates or date ranges."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "The spatial or temporal topic of the resource, the spatial applicability of the resource, or the jurisdiction under which the resource is relevant."@en ; + rdfs:isDefinedBy ; + rdfs:label "Coverage"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Examples of a Creator include a person, an organization, or a service. Typically, the name of a Creator should be used to indicate the entity."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "An entity primarily responsible for making the resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Creator"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Date may be used to express temporal information at any level of granularity. Recommended best practice is to use an encoding scheme, such as the W3CDTF profile of ISO 8601 [W3CDTF]."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "A point or period of time associated with an event in the lifecycle of the resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Date"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Description may include but is not limited to: an abstract, a table of contents, a graphical representation, or a free-text account of the resource."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "An account of the resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Description"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Examples of dimensions include size and duration. Recommended best practice is to use a controlled vocabulary such as the list of Internet Media Types [MIME]."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "The file format, physical medium, or dimensions of the resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Format"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Recommended best practice is to identify the resource by means of a string conforming to a formal identification system. "@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "An unambiguous reference to the resource within a given context."@en ; + rdfs:isDefinedBy ; + rdfs:label "Identifier"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Recommended best practice is to use a controlled vocabulary such as RFC 4646 [RFC4646]."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "A language of the resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Language"@en ; + rdfs:seeAlso ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Examples of a Publisher include a person, an organization, or a service. Typically, the name of a Publisher should be used to indicate the entity."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "An entity responsible for making the resource available."@en ; + rdfs:isDefinedBy ; + rdfs:label "Publisher"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Recommended best practice is to identify the related resource by means of a string conforming to a formal identification system. "@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "A related resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Relation"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Typically, rights information includes a statement about various property rights associated with the resource, including intellectual property rights."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "Information about rights held in and over the resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Rights"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "The described resource may be derived from the related resource in whole or in part. Recommended best practice is to identify the related resource by means of a string conforming to a formal identification system."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "A related resource from which the described resource is derived."@en ; + rdfs:isDefinedBy ; + rdfs:label "Source"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Typically, the subject will be represented using keywords, key phrases, or classification codes. Recommended best practice is to use a controlled vocabulary."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2012-06-14"^^ ; + a rdf:Property ; + rdfs:comment "The topic of the resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Subject"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "A name given to the resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Title"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + + + dcterms:description "Recommended best practice is to use a controlled vocabulary such as the DCMI Type Vocabulary [DCMITYPE]. To describe the file format, physical medium, or dimensions of the resource, use the Format element."@en ; + dcterms:hasVersion ; + dcterms:issued "1999-07-02"^^ ; + dcterms:modified "2008-01-14"^^ ; + a rdf:Property ; + rdfs:comment "The nature or genre of the resource."@en ; + rdfs:isDefinedBy ; + rdfs:label "Type"@en ; + skos:note "A second property with the same name as this property has been declared in the dcterms: namespace (http://purl.org/dc/terms/). See the Introduction to the document \"DCMI Metadata Terms\" (http://dublincore.org/documents/dcmi-terms/) for an explanation."@en . + diff --git a/tests/Trinity.Tests.Virtuoso/bin/Release/net472/Ontologies/fo af.rdf b/tests/Trinity.Tests.Virtuoso/bin/Release/net472/Ontologies/fo af.rdf new file mode 100644 index 0000000..68d0700 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Release/net472/Ontologies/fo af.rdf @@ -0,0 +1,609 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Label Property + A foaf:LabelProperty is any RDF property with texual values that serve as labels. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/Trinity.Tests.Virtuoso/bin/Release/net472/Ontologies/foaf.rdf b/tests/Trinity.Tests.Virtuoso/bin/Release/net472/Ontologies/foaf.rdf new file mode 100644 index 0000000..68d0700 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Release/net472/Ontologies/foaf.rdf @@ -0,0 +1,609 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Label Property + A foaf:LabelProperty is any RDF property with texual values that serve as labels. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/Trinity.Tests.Virtuoso/bin/Release/net472/Ontologies/nco.trig b/tests/Trinity.Tests.Virtuoso/bin/Release/net472/Ontologies/nco.trig new file mode 100644 index 0000000..c7b560c --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Release/net472/Ontologies/nco.trig @@ -0,0 +1,811 @@ +# +# Copyright (c) 2007 NEPOMUK Consortium +# Copyright (c) 2009-2011 Sebastian Trueg +# +# All rights reserved, licensed under either CC-BY or BSD. +# +# You are free: +# * to Share - to copy, distribute and transmit the work +# * to Remix - to adapt the work +# Under the following conditions: +# * Attribution - You must attribute the work in the manner specified by the author +# or licensor (but not in any way that suggests that they endorse you or your use +# of the work). +# +# Redistribution and use in source and binary forms, with or without modification, +# are permitted provided that the following conditions are met: +# * Redistributions of source code must retain the above copyright notice, this +# list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this +# list of conditions and the following disclaimer in the documentation and/or +# other materials provided with the distribution. +# * Neither the names of the authors nor the names of contributors may +# be used to endorse or promote products derived from this ontology without +# specific prior written permission. +# +# THIS ONTOLOGY IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +# THIS ONTOLOGY, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +@prefix exif: . +@prefix nid3: . +@prefix nrl: . +@prefix nfo: . +@prefix xsd: . +@prefix tmo: . +@prefix protege: . +@prefix nmo: . +@prefix rdfs: . +@prefix nexif: . +@prefix ncal: . +@prefix pimo: . +@prefix dcterms: . +@prefix nao: . +@prefix geo: . +@prefix dc: . +@prefix nie: . +@prefix nco: . +@prefix rdf: . + +nco: {nco:region + a rdf:Property ; + rdfs:comment "Region. Inspired by the fifth part of the value of the 'ADR' property as defined in RFC 2426, sec. 3.2.1" ; + rdfs:domain nco:PostalAddress ; + rdfs:label "region" ; + rdfs:range xsd:string ; + nrl:maxCardinality 1 . + + nco:key + a rdf:Property ; + rdfs:comment "An encryption key attached to a contact. Inspired by the KEY property defined in RFC 2426 sec. 3.7.2" ; + rdfs:domain nco:Contact ; + rdfs:label "key" ; + rdfs:range nie:DataObject ; + rdfs:subPropertyOf nie:hasPart . + + nco:nameHonorificSuffix + a rdf:Property ; + rdfs:comment "A suffix for the name of the Object represented by the given object. See documentation for the 'nameFamily' for details." ; + rdfs:domain nco:PersonContact ; + rdfs:label "nameHonorificSuffix" ; + rdfs:range xsd:string . + + nco:url + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "A uniform resource locator associated with the given role of a Contact. Inspired by the 'URL' property defined in RFC 2426 Sec. 3.6.8." ; + rdfs:domain nco:Role ; + rdfs:label "url" ; + rdfs:range rdfs:Resource . + + nco:VoicePhoneNumber + a rdfs:Class ; + rdfs:comment "A telephone number with voice communication capabilities. Class inspired by the TYPE=voice parameter of the TEL property defined in RFC 2426 sec. 3.3.1" ; + rdfs:label "VoicePhoneNumber" ; + rdfs:subClassOf nco:PhoneNumber . + + nco:nameFamily + a rdf:Property ; + rdfs:comment "The family name of an Object represented by this Contact. These applies to people that have more than one given name. The 'first' one is considered 'the' given name (see nameGiven) property. All additional ones are considered 'additional' names. The name inherited from parents is the 'family name'. e.g. For Dr. John Phil Paul Stevenson Jr. M.D. A.C.P. we have contact with: honorificPrefix: 'Dr.', nameGiven: 'John', nameAdditional: 'Phil', nameAdditional: 'Paul', nameFamily: 'Stevenson', honorificSuffix: 'Jr.', honorificSuffix: 'M.D.', honorificSuffix: 'A.C.P.'. These properties form an equivalent of the compound 'N' property as defined in RFC 2426 Sec. 3.1.2" ; + rdfs:domain nco:PersonContact ; + rdfs:label "nameFamily" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" . + + nco:VideoTelephoneNumber + a rdfs:Class ; + rdfs:comment "A Video telephone number. A class inspired by the TYPE=video parameter of the TEL property defined in RFC 2426 sec. 3.3.1" ; + rdfs:label "VideoTelephoneNumber" ; + rdfs:subClassOf nco:VoicePhoneNumber . + + nco:contactUID + a rdf:Property ; + rdfs:comment "A value that represents a globally unique identifier corresponding to the individual or resource associated with the Contact. An equivalent of the 'UID' property defined in RFC 2426 Sec. 3.6.7" ; + rdfs:domain nco:Contact ; + rdfs:label "contactUID" ; + rdfs:range xsd:string ; + rdfs:subPropertyOf nie:identifier ; + nrl:maxCardinality "1" . + + nco:publisher + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "An entity responsible for making the InformationElement available." ; + rdfs:domain nie:InformationElement ; + rdfs:label "publisher" ; + rdfs:range nco:Contact ; + rdfs:subPropertyOf dc:publisher . + + nco:country + a rdf:Property ; + rdfs:comment "A part of an address specyfing the country. Inspired by the seventh part of the value of the 'ADR' property as defined in RFC 2426, sec. 3.2.1" ; + rdfs:domain nco:PostalAddress ; + rdfs:label "country" ; + rdfs:range xsd:string ; + nrl:maxCardinality 1 . + + nco:nameHonorificPrefix + a rdf:Property ; + rdfs:comment "A prefix for the name of the object represented by this Contact. See documentation for the 'nameFamily' property for details." ; + rdfs:domain nco:PersonContact ; + rdfs:label "nameHonorificPrefix" ; + rdfs:range xsd:string . + + nco:extendedAddress + a rdf:Property ; + rdfs:comment "An extended part of an address. This field might be used to express parts of an address that aren't include in the name of the Contact but also aren't part of the actual location. Usually the streed address and following fields are enough for a postal letter to arrive. Examples may include ('University of California Campus building 45', 'Sears Tower 34th floor' etc.) Inspired by the second part of the value of the 'ADR' property as defined in RFC 2426, sec. 3.2.1" ; + rdfs:domain nco:PostalAddress ; + rdfs:label "extendedAddress" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" . + + nco:IMAccount + a rdfs:Class ; + rdfs:comment "An account in an Instant Messaging system." ; + rdfs:label "IMAccount" ; + rdfs:subClassOf nco:ContactMedium . + + nco:hasIMAccount + a rdf:Property ; + rdfs:comment "Indicates that an Instant Messaging account owned by an entity represented by this contact." ; + rdfs:domain nco:Role ; + rdfs:label "hasIMAccount" ; + rdfs:range nco:IMAccount ; + rdfs:subPropertyOf nco:hasContactMedium . + + nco:IsdnNumber + a rdfs:Class ; + rdfs:comment "An ISDN phone number. Inspired by the (TYPE=isdn) parameter of the TEL property as defined in RFC 2426 sec 3.3.1." ; + rdfs:label "IsdnNumber" ; + rdfs:subClassOf nco:VoicePhoneNumber . + + nco:creator + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "Creator of an information element, an entity primarily responsible for the creation of the content of the data object." ; + rdfs:domain nie:InformationElement ; + rdfs:label "creator" ; + rdfs:range nco:Contact ; + rdfs:subPropertyOf dc:creator , nco:contributor , nao:creator . + + nco:hasLocation + a rdf:Property ; + rdfs:comment "Geographical location of the contact. Inspired by the 'GEO' property specified in RFC 2426 Sec. 3.4.2" ; + rdfs:domain nco:Contact ; + rdfs:label "hasLocation" ; + rdfs:range geo:Point ; + nrl:maxCardinality "1" . + + nco:birthday + a rdf:Property ; + rdfs:comment "Links a contact with the calendar event of his birthday. (NCAL version)"; + rdfs:label "birthday" ; + rdfs:domain nco:Contact ; + rdfs:range ncal:BirthdayEvent ; + nrl:maxCardinality "1" . + + nco:phoneNumber + a rdf:Property ; + rdfs:domain nco:PhoneNumber ; + rdfs:label "phoneNumber" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" . + + nco:nickname + a rdf:Property ; + rdfs:comment "A nickname of the Object represented by this Contact. This is an equivalent of the 'NICKNAME' property as defined in RFC 2426 Sec. 3.1.3." ; + rdfs:domain nco:Contact ; + rdfs:label "nickname" ; + rdfs:range xsd:string . + + nco:imStatus + a rdf:Property, nrl:NonDefiningProperty ; + rdfs:comment "Current status of the given IM account. When this property is set, the nco:imStatusType should also always be set. Applications should attempt to parse this property to determine the presence, only falling back to the nco:imStatusType property in the case that this property's value is unrecognised. Values for this property may include 'available', 'offline', 'busy' etc. The exact choice of them is unspecified, although it is recommended to follow the guidance of the Telepathy project when choosing a string identifier http://telepathy.freedesktop.org/spec/Connection_Interface_Simple_Presence.html#description" ; + rdfs:domain nco:IMAccount ; + rdfs:label "imStatus" ; + rdfs:range xsd:string ; + nrl:maxCardinality 1 . + + nco:imStatusType + a rdf:Property ; + rdfs:comment "Current status type of the given IM account. When this property is set, the nco:imStatus property should also always be set. Applications should attempt to parse the nco:imStatus property to determine the presence, only falling back to this property in the case that the nco:imStatus property's value is unrecognised." ; + rdfs:domain nco:IMAccount ; + rdfs:label "instant messaging status type" ; + rdfs:range nco:IMStatusType ; + nrl:maxCardinality 1 . + + nco:IMStatusType a rdfs:Class ; + rdfs:label "instant messaging status type" ; + rdfs:comment "The status type of an IMAccount. Based on the Connection_Presence_Type enumeration of the Telepathy project: http://telepathy.freedesktop.org/spec/Connection_Interface_Simple_Presence.html#Enum:Connection_Presence_Type" ; + rdfs:subClassOf rdfs:Resource . + + nco:IMStatusTypeOffline + a nco:IMStatusType ; + rdfs:label "offline" . + + nco:IMStatusTypeAvailable + a nco:IMStatusType ; + rdfs:label "available" . + + nco:IMStatusTypeAway + a nco:IMStatusType ; + rdfs:label "away" . + + nco:IMStatusTypeExtendedAway + a nco:IMStatusType ; + rdfs:label "extended away". + + nco:IMStatusTypeHidden + a nco:IMStatusType ; + rdfs:label "hidden" . + + nco:IMStatusTypeBusy + a nco:IMStatusType ; + rdfs:label "busy" . + + nco:IMStatusTypeUnknown + a nco:IMStatusType ; + rdfs:label "unknown" . + + nco:containsContact + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment """A property used to group contacts into contact groups. This + property was NOT defined in the VCARD standard. See documentation for the + 'ContactList' class for details""" ; + rdfs:domain nco:ContactList ; + rdfs:label "containsContact" ; + rdfs:range nco:ContactListDataObject ; + rdfs:subPropertyOf nie:hasPart . + + nco:department + a rdf:Property ; + rdfs:comment "Department. The organizational unit within the organization." ; + rdfs:domain nco:Affiliation ; + rdfs:label "department" ; + rdfs:range xsd:string . + + nco:imID + a rdf:Property ; + rdfs:comment "Identifier of the IM account. Examples of such identifier might include ICQ UINs, Jabber IDs, Skype names etc." ; + rdfs:domain nco:IMAccount ; + rdfs:label "imID" ; + rdfs:range xsd:string ; + rdfs:subPropertyOf nao:identifier . + + nco:addressLocation + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "The geographical location of a postal address." ; + rdfs:domain nco:PostalAddress ; + rdfs:label "addressLocation" ; + rdfs:range geo:Point ; + nrl:maxCardinality "1" . + + nco:note + a rdf:Property ; + rdfs:comment "A note about the object represented by this Contact. An equivalent for the 'NOTE' property defined in RFC 2426 Sec. 3.6.2" ; + rdfs:domain nco:Contact ; + rdfs:label "note" ; + rdfs:range xsd:string ; + rdfs:subPropertyOf nie:description . + + nco:representative + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "An object that represent an object represented by this Contact. Usually this property is used to link a Contact to an organization, to a contact to the representative of this organization the user directly interacts with. An equivalent for the 'AGENT' property defined in RFC 2426 Sec. 3.5.4" ; + rdfs:domain nco:Contact ; + rdfs:label "representative" ; + rdfs:range nco:Contact . + + nco:nameAdditional + a rdf:Property ; + rdfs:comment "Additional given name of an object represented by this contact. See documentation for 'nameFamily' property for details." ; + rdfs:domain nco:PersonContact ; + rdfs:label "nameAdditional" ; + rdfs:range xsd:string . + + nco:nameGiven + a rdf:Property ; + rdfs:comment "The given name for the object represented by this Contact. See documentation for 'nameFamily' property for details." ; + rdfs:domain nco:PersonContact ; + rdfs:label "nameGiven" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" . + + nco:PcsNumber + a rdfs:Class ; + rdfs:comment "Personal Communication Services Number. A class inspired by the TYPE=pcs parameter of the TEL property defined in RFC 2426 sec. 3.3.1" ; + rdfs:label "PcsNumber" ; + rdfs:subClassOf nco:VoicePhoneNumber . + + nco:ContactList + a rdfs:Class ; + rdfs:comment "A contact list, this class represents an addressbook or a contact list of an IM application. Contacts inside a contact list can belong to contact groups." ; + rdfs:label "ContactList" ; + rdfs:subClassOf nie:InformationElement . + + nco:fullname + a rdf:Property ; + rdfs:comment "To specify the formatted text corresponding to the name of the object the Contact represents. An equivalent of the FN property as defined in RFC 2426 Sec. 3.1.1." ; + rdfs:domain nco:Contact ; + rdfs:label "fullname" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" ; + rdfs:subPropertyOf nie:title . + + nco:ContactGroup + a rdfs:Class ; + rdfs:comment "A group of Contacts. Could be used to express a group in an addressbook or on a contact list of an IM application. One contact can belong to many groups." ; + rdfs:label "ContactGroup" ; + rdfs:subClassOf nie:InformationElement . + + nco:BbsNumber + a rdfs:Class ; + rdfs:comment "A Bulletin Board System (BBS) phone number. Inspired by the (TYPE=bbsl) parameter of the TEL property as defined in RFC 2426 sec 3.3.1." ; + rdfs:label "BbsNumber" ; + rdfs:subClassOf nco:ModemNumber . + + nco:Affiliation + a rdfs:Class ; + rdfs:comment "Aggregates three properties defined in RFC2426. Originally all three were attached directly to a person. One person could have only one title and one role within one organization. This class is intended to lift this limitation." ; + rdfs:label "Affiliation" ; + rdfs:subClassOf nco:Role . + + nco:streetAddress + a rdf:Property ; + rdfs:comment "The streed address. Inspired by the third part of the value of the 'ADR' property as defined in RFC 2426, sec. 3.2.1" ; + rdfs:domain nco:PostalAddress ; + rdfs:label "streetAddress" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" . + + nco:OrganizationContact + a rdfs:Class ; + rdfs:comment "A Contact that denotes on Organization." ; + rdfs:label "OrganizationContact" ; + rdfs:subClassOf nco:Contact . + + nco:PhoneNumber + a rdfs:Class ; + rdfs:comment "A telephone number." ; + rdfs:label "PhoneNumber" ; + rdfs:subClassOf nco:ContactMedium . + + nco:Contact + a rdfs:Class ; + rdfs:comment "A Contact. A piece of data that can provide means to identify or communicate with an entity." ; + rdfs:label "Contact" ; + rdfs:subClassOf nco:Role , nie:InformationElement , nao:Party . + + nco:ModemNumber + a rdfs:Class ; + rdfs:comment "A modem phone number. Inspired by the (TYPE=modem) parameter of the TEL property as defined in RFC 2426 sec 3.3.1." ; + rdfs:label "ModemNumber" ; + rdfs:subClassOf nco:PhoneNumber . + + nco:Role + a rdfs:Class ; + rdfs:comment "A role played by a contact. Contacts that denote people, can have many roles (e.g. see the hasAffiliation property and Affiliation class). Contacts that denote Organizations or other Agents usually have one role. Each role can introduce additional contact media." ; + rdfs:label "Role" ; + rdfs:subClassOf rdfs:Resource . + + nco:PagerNumber + a rdfs:Class ; + rdfs:comment "A pager phone number. Inspired by the (TYPE=pager) parameter of the TEL property as defined in RFC 2426 sec 3.3.1." ; + rdfs:label "PagerNumber" ; + rdfs:subClassOf nco:MessagingNumber . + + nco:hasPhoneNumber + a rdf:Property ; + rdfs:comment "A number for telephony communication with the object represented by this Contact. An equivalent of the 'TEL' property defined in RFC 2426 Sec. 3.3.1" ; + rdfs:domain nco:Role ; + rdfs:label "hasPhoneNumber" ; + rdfs:range nco:PhoneNumber ; + rdfs:subPropertyOf nco:hasContactMedium . + + nco:photo + a rdf:Property ; + rdfs:comment "Photograph attached to a Contact. The DataObject referred to by this property is usually interpreted as an nfo:Image. Inspired by the PHOTO property defined in RFC 2426 sec. 3.1.4" ; + rdfs:domain nco:Contact ; + rdfs:label "photo" ; + rdfs:range nie:DataObject ; + rdfs:subPropertyOf nie:hasPart . + + nco:contributor + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "An entity responsible for making contributions to the content of the InformationElement." ; + rdfs:domain nie:InformationElement ; + rdfs:label "contributor" ; + rdfs:range nco:Contact ; + rdfs:subPropertyOf dc:contributor , nao:contributor . + + nco:logo + a rdf:Property ; + rdfs:comment "Logo of a company. Inspired by the LOGO property defined in RFC 2426 sec. 3.5.3" ; + rdfs:domain nco:OrganizationContact ; + rdfs:label "logo" ; + rdfs:range nie:DataObject ; + rdfs:subPropertyOf nie:hasPart . + + nco:websiteUrl + a rdf:Property ; + rdfs:comment "A url of a website." ; + rdfs:domain nco:Role ; + rdfs:label "websiteUrl" ; + rdfs:range rdfs:Resource ; + rdfs:subPropertyOf nco:url . + + nco:ContactMedium + a rdfs:Class ; + rdfs:comment "A superclass for all contact media - ways to contact an entity represented by a Contact instance. Some of the subclasses of this class (the various kinds of telephone numbers and postal addresses) have been inspired by the values of the TYPE parameter of ADR and TEL properties defined in RFC 2426 sec. 3.2.1. and 3.3.1 respectively. Each value is represented by an appropriate subclass with two major exceptions TYPE=home and TYPE=work. They are to be expressed by the roles these contact media are attached to i.e. contact media with TYPE=home parameter are to be attached to the default role (nco:Contact or nco:PersonContact), whereas media with TYPE=work parameter should be attached to nco:Affiliation or nco:OrganizationContact." ; + rdfs:label "ContactMedium" ; + rdfs:subClassOf rdfs:Resource . + + nco:Gender + a rdfs:Class ; + rdfs:comment "Gender. Instances of this class may include male and female." ; + rdfs:label "Gender" ; + rdfs:subClassOf rdfs:Resource . + + nco:male + a nco:Gender ; + rdfs:comment "A Male" ; + rdfs:label "male" . + + nco:birthDate + a rdf:Property ; + rdfs:comment "Birth date of the object represented by this Contact. An equivalent of the 'BDAY' property as defined in RFC 2426 Sec. 3.1.5." ; + rdfs:domain nco:Contact ; + rdfs:label "birthDate" ; + rdfs:range xsd:date ; + rdfs:subPropertyOf dc:date ; + nrl:maxCardinality 1 . + + nco:hasEmailAddress + a rdf:Property ; + rdfs:comment "An address for electronic mail communication with the object specified by this contact. An equivalent of the 'EMAIL' property as defined in RFC 2426 Sec. 3.3.1." ; + rdfs:domain nco:Role ; + rdfs:label "hasEmailAddress" ; + rdfs:range nco:EmailAddress ; + rdfs:subPropertyOf nco:hasContactMedium . + + nco:postalcode + a rdf:Property ; + rdfs:comment "Postal Code. Inspired by the sixth part of the value of the 'ADR' property as defined in RFC 2426, sec. 3.2.1" ; + rdfs:domain nco:PostalAddress ; + rdfs:label "postalcode" ; + rdfs:range xsd:string ; + nrl:maxCardinality 1 . + + nco:MessagingNumber + a rdfs:Class ; + rdfs:comment "A number that can accept textual messages." ; + rdfs:label "MessagingNumber" ; + rdfs:subClassOf nco:PhoneNumber . + + nco:org + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "Name of an organization or a unit within an organization the object represented by a Contact is associated with. An equivalent of the 'ORG' property defined in RFC 2426 Sec. 3.5.5" ; + rdfs:domain nco:Affiliation ; + rdfs:label "org" ; + rdfs:range nco:OrganizationContact ; + nrl:maxCardinality "1" . + + nco:PersonContact + a rdfs:Class ; + rdfs:comment "A Contact that denotes a Person. A person can have multiple Affiliations." ; + rdfs:label "PersonContact" ; + rdfs:subClassOf nco:Contact . + + nco:ParcelDeliveryAddress + a rdfs:Class ; + rdfs:comment "Parcel Delivery Addresse. Class inspired by TYPE=parcel parameter of the ADR property defined in RFC 2426 sec. 3.2.1" ; + rdfs:label "ParcelDeliveryAddress" ; + rdfs:subClassOf nco:PostalAddress . + + nco:title + a rdf:Property ; + rdfs:comment "The official title the object represented by this contact in an organization. E.g. 'CEO', 'Director, Research and Development', 'Junior Software Developer/Analyst' etc. An equivalent of the 'TITLE' property defined in RFC 2426 Sec. 3.5.1" ; + rdfs:domain nco:Affiliation ; + rdfs:label "title" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" . + + nco:AudioIMAccount + a rdfs:Class ; + nao:deprecated true ; + rdfs:comment "Deprecated in favour of nco:imCapabilityAudio." ; + rdfs:label "AudioIMAccount" ; + rdfs:subClassOf nco:IMAccount . + + nco:voiceMail + a rdf:Property ; + rdfs:comment "Indicates if the given number accepts voice mail. (e.g. there is an answering machine). Inspired by TYPE=msg parameter of the TEL property defined in RFC 2426 sec. 3.3.1" ; + rdfs:domain nco:VoicePhoneNumber ; + rdfs:label "voiceMail" ; + rdfs:range xsd:boolean ; + nrl:maxCardinality "1" . + + nco:PostalAddress + a rdfs:Class ; + rdfs:comment "A postal address. A class aggregating the various parts of a value for the 'ADR' property as defined in RFC 2426 Sec. 3.2.1." ; + rdfs:label "PostalAddress" ; + rdfs:subClassOf nco:ContactMedium . + + nco:belongsToGroup + a rdf:Property ; + rdfs:comment "Links a Contact with a ContactGroup it belongs to." ; + rdfs:domain nco:Contact ; + rdfs:label "belongsToGroup" ; + rdfs:range nco:ContactGroup . + + nco:hasContactMedium + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "A superProperty for all properties linking a Contact to an instance of a contact medium." ; + rdfs:domain nco:Role ; + rdfs:label "hasContactMedium" ; + rdfs:range nco:ContactMedium . + + nco:contactGroupName + a rdf:Property ; + rdfs:comment """The name of the contact group. This property was NOT defined + in the VCARD standard. See documentation of the 'ContactGroup' class for + details""" ; + rdfs:domain nco:ContactGroup ; + rdfs:label "contactGroupName" ; + rdfs:range xsd:string ; + rdfs:subPropertyOf dc:title ; + nrl:maxCardinality 1 . + + nco:FaxNumber + a rdfs:Class ; + rdfs:comment "A fax number. Inspired by the (TYPE=fax) parameter of the TEL property as defined in RFC 2426 sec 3.3.1." ; + rdfs:label "FaxNumber" ; + rdfs:subClassOf nco:PhoneNumber . + + nco:contactMediumComment + a rdf:Property ; + rdfs:comment "A comment about the contact medium. (Deprecated in favor of nie:comment or nao:description - based on the context)" ; + rdfs:domain nco:ContactMedium ; + rdfs:label "contactMediumComment" ; + rdfs:range xsd:string ; + nao:deprecated true. + + nco:foafUrl + a rdf:Property ; + rdfs:comment "The URL of the FOAF file." ; + rdfs:domain nco:Role ; + rdfs:label "foafUrl" ; + rdfs:range rdfs:Resource ; + rdfs:subPropertyOf nco:url . + + nco:CarPhoneNumber + a rdfs:Class ; + rdfs:comment "A car phone number. Inspired by the (TYPE=car) parameter of the TEL property as defined in RFC 2426 sec 3.3.1." ; + rdfs:label "CarPhoneNumber" ; + rdfs:subClassOf nco:VoicePhoneNumber . + + nco:ContactListDataObject + a rdfs:Class ; + rdfs:comment "An entity occuring on a contact list (usually interpreted as an nco:Contact)" ; + rdfs:label "ContactListDataObject" ; + rdfs:subClassOf nie:DataObject . + + nco:emailAddress + a rdf:Property ; + rdfs:domain nco:EmailAddress ; + rdfs:label "emailAddress" ; + rdfs:range xsd:string ; + nrl:maxCardinality 1 . + + nco:InternationalDeliveryAddress + a rdfs:Class ; + rdfs:comment "International Delivery Addresse. Class inspired by TYPE=intl parameter of the ADR property defined in RFC 2426 sec. 3.2.1" ; + rdfs:label "InternationalDeliveryAddress" ; + rdfs:subClassOf nco:PostalAddress . + + nco:locality + a rdf:Property ; + rdfs:comment "Locality or City. Inspired by the fourth part of the value of the 'ADR' property as defined in RFC 2426, sec. 3.2.1" ; + rdfs:domain nco:PostalAddress ; + rdfs:label "locality" ; + rdfs:range xsd:string ; + nrl:maxCardinality 1 . + + nco:VideoIMAccount + a rdfs:Class ; + nao:deprecated true ; + rdfs:comment "Deprecated in favour of nco:imCapabilityVideo." ; + rdfs:label "VideoIMAccount" ; + rdfs:subClassOf nco:AudioIMAccount . + + nco:sound + a rdf:Property ; + rdfs:comment "Sound clip attached to a Contact. The DataObject referred to by this property is usually interpreted as an nfo:Audio. Inspired by the SOUND property defined in RFC 2425 sec. 3.6.6." ; + rdfs:domain nco:Contact ; + rdfs:label "sound" ; + rdfs:range nie:DataObject ; + rdfs:subPropertyOf nie:hasPart . + + nco:EmailAddress + a rdfs:Class ; + rdfs:comment "An email address. The recommended best practice is to use mailto: uris for instances of this class." ; + rdfs:label "EmailAddress" ; + rdfs:subClassOf nco:ContactMedium . + + nco:imNickname + a rdf:Property ; + rdfs:comment "A nickname attached to a particular IM Account." ; + rdfs:domain nco:IMAccount ; + rdfs:label "imNickname" ; + rdfs:range xsd:string . + + nco:hobby + a rdf:Property ; + rdfs:comment "A hobby associated with a PersonContact. This property can be used to express hobbies and interests." ; + rdfs:domain nco:PersonContact ; + rdfs:label "hobby" ; + rdfs:range xsd:string . + + nco:blogUrl + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "A Blog url." ; + rdfs:domain nco:Role ; + rdfs:label "blogUrl" ; + rdfs:range rdfs:Resource ; + rdfs:subPropertyOf nco:url . + + nco:CellPhoneNumber + a rdfs:Class ; + rdfs:comment "A cellular phone number. Inspired by the (TYPE=cell) parameter of the TEL property as defined in RFC 2426 sec 3.3.1. Usually a cellular phone can accept voice calls as well as textual messages (SMS), therefore this class has two superclasses." ; + rdfs:label "CellPhoneNumber" ; + rdfs:subClassOf nco:MessagingNumber , nco:VoicePhoneNumber . + + nco:role + a rdf:Property ; + rdfs:comment "Role an object represented by this contact represents in the organization. This might include 'Programmer', 'Manager', 'Sales Representative'. Be careful to avoid confusion with the title property. An equivalent of the 'ROLE' property as defined in RFC 2426. Sec. 3.5.2. Note the difference between nco:Role class and nco:role property." ; + rdfs:domain nco:Affiliation ; + rdfs:label "role" ; + rdfs:range xsd:string . + + nco:DomesticDeliveryAddress + a rdfs:Class ; + rdfs:comment "Domestic Delivery Addresse. Class inspired by TYPE=dom parameter of the ADR property defined in RFC 2426 sec. 3.2.1" ; + rdfs:label "DomesticDeliveryAddress" ; + rdfs:subClassOf nco:PostalAddress . + + nco:female + a nco:Gender ; + rdfs:comment "A Female" ; + rdfs:label "female" . + + nco:hasPostalAddress + a rdf:Property ; + rdfs:comment "The default Address for a Contact. An equivalent of the 'ADR' property as defined in RFC 2426 Sec. 3.2.1." ; + rdfs:domain nco:Role ; + rdfs:label "hasPostalAddress" ; + rdfs:range nco:PostalAddress ; + rdfs:subPropertyOf nco:hasContactMedium . + + nco:imAccountType + a rdf:Property ; + rdfs:comment "Type of the IM account. This may be the name of the service that provides the IM functionality. Examples might include Jabber, ICQ, MSN etc" ; + rdfs:domain nco:IMAccount ; + rdfs:label "imAccountType" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" . + + nco:pobox + a rdf:Property ; + rdfs:comment "Post office box. This is the first part of the value of the 'ADR' property as defined in RFC 2426, sec. 3.2.1" ; + rdfs:domain nco:PostalAddress ; + rdfs:label "pobox" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1". + + nco:hasAffiliation + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "Links a PersonContact with an Affiliation." ; + rdfs:domain nco:PersonContact ; + rdfs:label "hasAffiliation" ; + rdfs:range nco:Affiliation . + + nco:gender + a rdf:Property ; + rdfs:comment "Gender of the given contact." ; + rdfs:domain nco:PersonContact ; + rdfs:label "gender" ; + rdfs:range nco:Gender ; + nrl:maxCardinality 1 . + + nco:imStatusMessage + a rdf:Property, nrl:NonDefiningProperty ; + rdfs:comment "A feature common in most IM systems. A message left by the user for all his/her contacts to see." ; + rdfs:domain nco:IMAccount ; + rdfs:label "imStatusMessage" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" . + + nco:start + a rdf:Property ; + rdfs:comment "Start datetime for the role, such as: the datetime of joining a project or organization, datetime of starting employment, datetime of marriage" ; + rdfs:label "start" ; + rdfs:domain nco:Role ; + rdfs:range xsd:dateTime ; + nrl:maxCardinality 1 . + + nco:end + a rdf:Property; + rdfs:comment "End datetime for the role, such as: the datetime of leaving a project or organization, datetime of ending employment, datetime of divorce. If absent or set to a date in the future, the role is currently active." ; + rdfs:label "end" ; + rdfs:domain nco:Role ; + rdfs:range xsd:dateTime ; + nrl:maxCardinality 1 . + + nco:IMCapability a rdfs:Class ; + rdfs:label "imCapability" ; + rdfs:comment "Capabilities of a cetain IMAccount." ; + rdfs:subClassOf rdfs:Resource . + + nco:imCapabilityText a nco:IMCapability . + nco:imCapabilityAudio a nco:IMCapability . + nco:imCapabilityVideo a nco:IMCapability . + + nco:hasIMCapability + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "Indicates that an IMAccount has a certain capability." ; + rdfs:domain nco:IMAccount ; + rdfs:label "hasIMCapability" ; + rdfs:range nco:IMCapability . + + nco:isAccessedBy + a rdf:Property ; + rdfs:comment "Indicates the local IMAccount by which this IMAccount is accessed. This does not imply membership of a contact list." ; + rdfs:label "isKnownBy" ; + rdfs:domain nco:IMAccount ; + rdfs:range nco:IMAccount . + + nco:publishesPresenceTo + a rdf:Property ; + rdfs:comment "Indicates that this IMAccount publishes its presence information to the other IMAccount." ; + rdfs:label "publishesPresenceTo" ; + rdfs:domain nco:IMAccount ; + rdfs:range nco:IMAccount . + + nco:requestedPresenceSubscriptionTo + a rdf:Property ; + rdfs:comment "Indicates that this IMAccount has requested a subscription to the presence information of the other IMAccount." ; + rdfs:label "requestedPresenceSubscriptionTo" ; + rdfs:domain nco:IMAccount ; + rdfs:range nco:IMAccount . + + nco:isBlocked + a rdf:Property ; + rdfs:comment "Indicates that this IMAccount has been blocked." ; + rdfs:domain nco:IMAccount ; + rdfs:label "isBlocked" ; + rdfs:range xsd:boolean ; + nrl:maxCardinality "1" . +} + + {nco: a nrl:Ontology ; + nao:creator ; + nao:hasDefaultNamespace + "http://www.semanticdesktop.org/ontologies/2007/03/22/nco#" ; + nao:hasDefaultNamespaceAbbreviation + "nco" ; + nao:lastModified "2011-12-13T12:44:58Z" ; + nao:status "Unstable" ; + nao:updatable "0 " ; + nao:version "0.10.0" ; + nao:prefLabel "Nepomuk Contact Ontology" ; + nao:description "The Nepomuk Contact Ontology describes contact information, common in many places on the desktop. It evolved from the VCARD specification (RFC 2426) and has been inspired by the Vcard Ontology by Renato Ianella. The scope of NCO is much broader though." . + + + a nrl:GraphMetadata ; + nrl:coreGraphMetadataFor + nco: . +} diff --git a/tests/Trinity.Tests.Virtuoso/bin/Release/net472/Ontologies/owl.n3 b/tests/Trinity.Tests.Virtuoso/bin/Release/net472/Ontologies/owl.n3 new file mode 100644 index 0000000..87467e7 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Release/net472/Ontologies/owl.n3 @@ -0,0 +1,552 @@ +@prefix dc: . +@prefix grddl: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix xml: . +@prefix xsd: . + + a owl:Ontology ; + dc:title "The OWL 2 Schema vocabulary (OWL 2)" ; + rdfs:comment """ + This ontology partially describes the built-in classes and + properties that together form the basis of the RDF/XML syntax of OWL 2. + The content of this ontology is based on Tables 6.1 and 6.2 + in Section 6.4 of the OWL 2 RDF-Based Semantics specification, + available at http://www.w3.org/TR/owl2-rdf-based-semantics/. + Please note that those tables do not include the different annotations + (labels, comments and rdfs:isDefinedBy links) used in this file. + Also note that the descriptions provided in this ontology do not + provide a complete and correct formal description of either the syntax + or the semantics of the introduced terms (please see the OWL 2 + recommendations for the complete and normative specifications). + Furthermore, the information provided by this ontology may be + misleading if not used with care. This ontology SHOULD NOT be imported + into OWL ontologies. Importing this file into an OWL 2 DL ontology + will cause it to become an OWL 2 Full ontology and may have other, + unexpected, consequences. + """ ; + rdfs:isDefinedBy + , + , + ; + rdfs:seeAlso , + ; + owl:imports ; + owl:versionIRI ; + owl:versionInfo "$Date: 2009/11/15 10:54:12 $" ; + grddl:namespaceTransformation . + + +owl:AllDifferent a rdfs:Class ; + rdfs:label "AllDifferent" ; + rdfs:comment "The class of collections of pairwise different individuals." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Resource . + +owl:AllDisjointClasses a rdfs:Class ; + rdfs:label "AllDisjointClasses" ; + rdfs:comment "The class of collections of pairwise disjoint classes." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Resource . + +owl:AllDisjointProperties a rdfs:Class ; + rdfs:label "AllDisjointProperties" ; + rdfs:comment "The class of collections of pairwise disjoint properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Resource . + +owl:Annotation a rdfs:Class ; + rdfs:label "Annotation" ; + rdfs:comment "The class of annotated annotations for which the RDF serialization consists of an annotated subject, predicate and object." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Resource . + +owl:AnnotationProperty a rdfs:Class ; + rdfs:label "AnnotationProperty" ; + rdfs:comment "The class of annotation properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdf:Property . + +owl:AsymmetricProperty a rdfs:Class ; + rdfs:label "AsymmetricProperty" ; + rdfs:comment "The class of asymmetric properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:ObjectProperty . + +owl:Axiom a rdfs:Class ; + rdfs:label "Axiom" ; + rdfs:comment "The class of annotated axioms for which the RDF serialization consists of an annotated subject, predicate and object." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Resource . + +owl:Class a rdfs:Class ; + rdfs:label "Class" ; + rdfs:comment "The class of OWL classes." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Class . + +owl:DataRange a rdfs:Class ; + rdfs:label "DataRange" ; + rdfs:comment "The class of OWL data ranges, which are special kinds of datatypes. Note: The use of the IRI owl:DataRange has been deprecated as of OWL 2. The IRI rdfs:Datatype SHOULD be used instead." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Datatype . + +owl:DatatypeProperty a rdfs:Class ; + rdfs:label "DatatypeProperty" ; + rdfs:comment "The class of data properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdf:Property . + +owl:DeprecatedClass a rdfs:Class ; + rdfs:label "DeprecatedClass" ; + rdfs:comment "The class of deprecated classes." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Class . + +owl:DeprecatedProperty a rdfs:Class ; + rdfs:label "DeprecatedProperty" ; + rdfs:comment "The class of deprecated properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdf:Property . + +owl:FunctionalProperty a rdfs:Class ; + rdfs:label "FunctionalProperty" ; + rdfs:comment "The class of functional properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdf:Property . + +owl:InverseFunctionalProperty a rdfs:Class ; + rdfs:label "InverseFunctionalProperty" ; + rdfs:comment "The class of inverse-functional properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:ObjectProperty . + +owl:IrreflexiveProperty a rdfs:Class ; + rdfs:label "IrreflexiveProperty" ; + rdfs:comment "The class of irreflexive properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:ObjectProperty . + +owl:NamedIndividual a rdfs:Class ; + rdfs:label "NamedIndividual" ; + rdfs:comment "The class of named individuals." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:Thing . + +owl:NegativePropertyAssertion a rdfs:Class ; + rdfs:label "NegativePropertyAssertion" ; + rdfs:comment "The class of negative property assertions." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Resource . + +owl:Nothing a owl:Class ; + rdfs:label "Nothing" ; + rdfs:comment "This is the empty class." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:Thing . + +owl:ObjectProperty a rdfs:Class ; + rdfs:label "ObjectProperty" ; + rdfs:comment "The class of object properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdf:Property . + +owl:Ontology a rdfs:Class ; + rdfs:label "Ontology" ; + rdfs:comment "The class of ontologies." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Resource . + +owl:OntologyProperty a rdfs:Class ; + rdfs:label "OntologyProperty" ; + rdfs:comment "The class of ontology properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdf:Property . + +owl:ReflexiveProperty a rdfs:Class ; + rdfs:label "ReflexiveProperty" ; + rdfs:comment "The class of reflexive properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:ObjectProperty . + +owl:Restriction a rdfs:Class ; + rdfs:label "Restriction" ; + rdfs:comment "The class of property restrictions." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:Class . + +owl:SymmetricProperty a rdfs:Class ; + rdfs:label "SymmetricProperty" ; + rdfs:comment "The class of symmetric properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:ObjectProperty . + +owl:TransitiveProperty a rdfs:Class ; + rdfs:label "TransitiveProperty" ; + rdfs:comment "The class of transitive properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:ObjectProperty . + +owl:Thing a owl:Class ; + rdfs:label "Thing" ; + rdfs:comment "The class of OWL individuals." ; + rdfs:isDefinedBy . + +owl:allValuesFrom a rdf:Property ; + rdfs:label "allValuesFrom" ; + rdfs:comment "The property that determines the class that a universal property restriction refers to." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Class . + +owl:annotatedProperty a rdf:Property ; + rdfs:label "annotatedProperty" ; + rdfs:comment "The property that determines the predicate of an annotated axiom or annotated annotation." ; + rdfs:domain rdfs:Resource ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Resource . + +owl:annotatedSource a rdf:Property ; + rdfs:label "annotatedSource" ; + rdfs:comment "The property that determines the subject of an annotated axiom or annotated annotation." ; + rdfs:domain rdfs:Resource ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Resource . + +owl:annotatedTarget a rdf:Property ; + rdfs:label "annotatedTarget" ; + rdfs:comment "The property that determines the object of an annotated axiom or annotated annotation." ; + rdfs:domain rdfs:Resource ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Resource . + +owl:assertionProperty a rdf:Property ; + rdfs:label "assertionProperty" ; + rdfs:comment "The property that determines the predicate of a negative property assertion." ; + rdfs:domain owl:NegativePropertyAssertion ; + rdfs:isDefinedBy ; + rdfs:range rdf:Property . + +owl:backwardCompatibleWith a owl:AnnotationProperty, owl:OntologyProperty ; + rdfs:label "backwardCompatibleWith" ; + rdfs:comment "The annotation property that indicates that a given ontology is backward compatible with another ontology." ; + rdfs:domain owl:Ontology ; + rdfs:isDefinedBy ; + rdfs:range owl:Ontology . + +owl:bottomDataProperty a owl:DatatypeProperty ; + rdfs:label "bottomDataProperty" ; + rdfs:comment "The data property that does not relate any individual to any data value." ; + rdfs:domain owl:Thing ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Literal . + +owl:bottomObjectProperty a owl:ObjectProperty ; + rdfs:label "bottomObjectProperty" ; + rdfs:comment "The object property that does not relate any two individuals." ; + rdfs:domain owl:Thing ; + rdfs:isDefinedBy ; + rdfs:range owl:Thing . + +owl:cardinality a rdf:Property ; + rdfs:label "cardinality" ; + rdfs:comment "The property that determines the cardinality of an exact cardinality restriction." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range xsd:nonNegativeInteger . + +owl:complementOf a rdf:Property ; + rdfs:label "complementOf" ; + rdfs:comment "The property that determines that a given class is the complement of another class." ; + rdfs:domain owl:Class ; + rdfs:isDefinedBy ; + rdfs:range owl:Class . + +owl:datatypeComplementOf a rdf:Property ; + rdfs:label "datatypeComplementOf" ; + rdfs:comment "The property that determines that a given data range is the complement of another data range with respect to the data domain." ; + rdfs:domain rdfs:Datatype ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Datatype . + +owl:deprecated a owl:AnnotationProperty ; + rdfs:label "deprecated" ; + rdfs:comment "The annotation property that indicates that a given entity has been deprecated." ; + rdfs:domain rdfs:Resource ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Resource . + +owl:differentFrom a rdf:Property ; + rdfs:label "differentFrom" ; + rdfs:comment "The property that determines that two given individuals are different." ; + rdfs:domain owl:Thing ; + rdfs:isDefinedBy ; + rdfs:range owl:Thing . + +owl:disjointUnionOf a rdf:Property ; + rdfs:label "disjointUnionOf" ; + rdfs:comment "The property that determines that a given class is equivalent to the disjoint union of a collection of other classes." ; + rdfs:domain owl:Class ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:disjointWith a rdf:Property ; + rdfs:label "disjointWith" ; + rdfs:comment "The property that determines that two given classes are disjoint." ; + rdfs:domain owl:Class ; + rdfs:isDefinedBy ; + rdfs:range owl:Class . + +owl:distinctMembers a rdf:Property ; + rdfs:label "distinctMembers" ; + rdfs:comment "The property that determines the collection of pairwise different individuals in a owl:AllDifferent axiom." ; + rdfs:domain owl:AllDifferent ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:equivalentClass a rdf:Property ; + rdfs:label "equivalentClass" ; + rdfs:comment "The property that determines that two given classes are equivalent, and that is used to specify datatype definitions." ; + rdfs:domain rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Class . + +owl:equivalentProperty a rdf:Property ; + rdfs:label "equivalentProperty" ; + rdfs:comment "The property that determines that two given properties are equivalent." ; + rdfs:domain rdf:Property ; + rdfs:isDefinedBy ; + rdfs:range rdf:Property . + +owl:hasKey a rdf:Property ; + rdfs:label "hasKey" ; + rdfs:comment "The property that determines the collection of properties that jointly build a key." ; + rdfs:domain owl:Class ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:hasSelf a rdf:Property ; + rdfs:label "hasSelf" ; + rdfs:comment "The property that determines the property that a self restriction refers to." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Resource . + +owl:hasValue a rdf:Property ; + rdfs:label "hasValue" ; + rdfs:comment "The property that determines the individual that a has-value restriction refers to." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Resource . + +owl:imports a owl:OntologyProperty ; + rdfs:label "imports" ; + rdfs:comment "The property that is used for importing other ontologies into a given ontology." ; + rdfs:domain owl:Ontology ; + rdfs:isDefinedBy ; + rdfs:range owl:Ontology . + +owl:incompatibleWith a owl:AnnotationProperty, owl:OntologyProperty ; + rdfs:label "incompatibleWith" ; + rdfs:comment "The annotation property that indicates that a given ontology is incompatible with another ontology." ; + rdfs:domain owl:Ontology ; + rdfs:isDefinedBy ; + rdfs:range owl:Ontology . + +owl:intersectionOf a rdf:Property ; + rdfs:label "intersectionOf" ; + rdfs:comment "The property that determines the collection of classes or data ranges that build an intersection." ; + rdfs:domain rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:inverseOf a rdf:Property ; + rdfs:label "inverseOf" ; + rdfs:comment "The property that determines that two given properties are inverse." ; + rdfs:domain owl:ObjectProperty ; + rdfs:isDefinedBy ; + rdfs:range owl:ObjectProperty . + +owl:maxCardinality a rdf:Property ; + rdfs:label "maxCardinality" ; + rdfs:comment "The property that determines the cardinality of a maximum cardinality restriction." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range xsd:nonNegativeInteger . + +owl:maxQualifiedCardinality a rdf:Property ; + rdfs:label "maxQualifiedCardinality" ; + rdfs:comment "The property that determines the cardinality of a maximum qualified cardinality restriction." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range xsd:nonNegativeInteger . + +owl:members a rdf:Property ; + rdfs:label "members" ; + rdfs:comment "The property that determines the collection of members in either a owl:AllDifferent, owl:AllDisjointClasses or owl:AllDisjointProperties axiom." ; + rdfs:domain rdfs:Resource ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:minCardinality a rdf:Property ; + rdfs:label "minCardinality" ; + rdfs:comment "The property that determines the cardinality of a minimum cardinality restriction." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range xsd:nonNegativeInteger . + +owl:minQualifiedCardinality a rdf:Property ; + rdfs:label "minQualifiedCardinality" ; + rdfs:comment "The property that determines the cardinality of a minimum qualified cardinality restriction." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range xsd:nonNegativeInteger . + +owl:onClass a rdf:Property ; + rdfs:label "onClass" ; + rdfs:comment "The property that determines the class that a qualified object cardinality restriction refers to." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range owl:Class . + +owl:onDataRange a rdf:Property ; + rdfs:label "onDataRange" ; + rdfs:comment "The property that determines the data range that a qualified data cardinality restriction refers to." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Datatype . + +owl:onDatatype a rdf:Property ; + rdfs:label "onDatatype" ; + rdfs:comment "The property that determines the datatype that a datatype restriction refers to." ; + rdfs:domain rdfs:Datatype ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Datatype . + +owl:oneOf a rdf:Property ; + rdfs:label "oneOf" ; + rdfs:comment "The property that determines the collection of individuals or data values that build an enumeration." ; + rdfs:domain rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:onProperties a rdf:Property ; + rdfs:label "onProperties" ; + rdfs:comment "The property that determines the n-tuple of properties that a property restriction on an n-ary data range refers to." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:onProperty a rdf:Property ; + rdfs:label "onProperty" ; + rdfs:comment "The property that determines the property that a property restriction refers to." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range rdf:Property . + +owl:priorVersion a owl:AnnotationProperty, owl:OntologyProperty ; + rdfs:label "priorVersion" ; + rdfs:comment "The annotation property that indicates the predecessor ontology of a given ontology." ; + rdfs:domain owl:Ontology ; + rdfs:isDefinedBy ; + rdfs:range owl:Ontology . + +owl:propertyChainAxiom a rdf:Property ; + rdfs:label "propertyChainAxiom" ; + rdfs:comment "The property that determines the n-tuple of properties that build a sub property chain of a given property." ; + rdfs:domain owl:ObjectProperty ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:propertyDisjointWith a rdf:Property ; + rdfs:label "propertyDisjointWith" ; + rdfs:comment "The property that determines that two given properties are disjoint." ; + rdfs:domain rdf:Property ; + rdfs:isDefinedBy ; + rdfs:range rdf:Property . + +owl:qualifiedCardinality a rdf:Property ; + rdfs:label "qualifiedCardinality" ; + rdfs:comment "The property that determines the cardinality of an exact qualified cardinality restriction." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range xsd:nonNegativeInteger . + +owl:sameAs a rdf:Property ; + rdfs:label "sameAs" ; + rdfs:comment "The property that determines that two given individuals are equal." ; + rdfs:domain owl:Thing ; + rdfs:isDefinedBy ; + rdfs:range owl:Thing . + +owl:someValuesFrom a rdf:Property ; + rdfs:label "someValuesFrom" ; + rdfs:comment "The property that determines the class that an existential property restriction refers to." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Class . + +owl:sourceIndividual a rdf:Property ; + rdfs:label "sourceIndividual" ; + rdfs:comment "The property that determines the subject of a negative property assertion." ; + rdfs:domain owl:NegativePropertyAssertion ; + rdfs:isDefinedBy ; + rdfs:range owl:Thing . + +owl:targetIndividual a rdf:Property ; + rdfs:label "targetIndividual" ; + rdfs:comment "The property that determines the object of a negative object property assertion." ; + rdfs:domain owl:NegativePropertyAssertion ; + rdfs:isDefinedBy ; + rdfs:range owl:Thing . + +owl:targetValue a rdf:Property ; + rdfs:label "targetValue" ; + rdfs:comment "The property that determines the value of a negative data property assertion." ; + rdfs:domain owl:NegativePropertyAssertion ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Literal . + +owl:topDataProperty a owl:DatatypeProperty ; + rdfs:label "topDataProperty" ; + rdfs:comment "The data property that relates every individual to every data value." ; + rdfs:domain owl:Thing ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Literal . + +owl:topObjectProperty a owl:ObjectProperty ; + rdfs:label "topObjectProperty" ; + rdfs:comment "The object property that relates every two individuals." ; + rdfs:domain owl:Thing ; + rdfs:isDefinedBy ; + rdfs:range owl:Thing . + +owl:unionOf a rdf:Property ; + rdfs:label "unionOf" ; + rdfs:comment "The property that determines the collection of classes or data ranges that build a union." ; + rdfs:domain rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:versionInfo a owl:AnnotationProperty ; + rdfs:label "versionInfo" ; + rdfs:comment "The annotation property that provides version information for an ontology or another OWL construct." ; + rdfs:domain rdfs:Resource ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Resource . + +owl:versionIRI a owl:OntologyProperty ; + rdfs:label "versionIRI" ; + rdfs:comment "The property that identifies the version IRI of an ontology." ; + rdfs:domain owl:Ontology ; + rdfs:isDefinedBy ; + rdfs:range owl:Ontology . + +owl:withRestrictions a rdf:Property ; + rdfs:label "withRestrictions" ; + rdfs:comment "The property that determines the collection of facet-value pairs that define a datatype restriction." ; + rdfs:domain rdfs:Datatype ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + \ No newline at end of file diff --git a/tests/Trinity.Tests.Virtuoso/bin/Release/net472/Ontologies/rdf.rdf b/tests/Trinity.Tests.Virtuoso/bin/Release/net472/Ontologies/rdf.rdf new file mode 100644 index 0000000..a6815ec --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Release/net472/Ontologies/rdf.rdf @@ -0,0 +1,156 @@ + + + + The RDF Concepts Vocabulary (RDF) + This is the RDF Schema for the RDF vocabulary terms in the RDF Namespace, defined in RDF 1.1 Concepts. + + + + + + + HTML + The datatype of RDF literals storing fragments of HTML content + + + + + + + langString + The datatype of language-tagged string values + + + + + + + PlainLiteral + The class of plain (i.e. untyped) literal values, as used in RIF and OWL 2 + + + + + + type + The subject is an instance of a class. + + + + + + + Property + The class of RDF properties. + + + + + + Statement + + The class of RDF statements. + + + + + subject + The subject of the subject RDF statement. + + + + + + + predicate + The predicate of the subject RDF statement. + + + + + + + object + The object of the subject RDF statement. + + + + + + + Bag + The class of unordered containers. + + + + + + Seq + The class of ordered containers. + + + + + + Alt + The class of containers of alternatives. + + + + + + value + Idiomatic property used for structured values. + + + + + + + + + List + The class of RDF Lists. + + + + + + nil + The empty list, with no items in it. If the rest of a list is nil then the list has no more items in it. + + + + + first + The first item in the subject RDF list. + + + + + + + rest + The rest of the subject RDF list after the first item. + + + + + + + + XMLLiteral + The datatype of XML literal values. + + + + + + + + diff --git a/tests/Trinity.Tests.Virtuoso/bin/Release/net472/Ontologies/rdfs.n3 b/tests/Trinity.Tests.Virtuoso/bin/Release/net472/Ontologies/rdfs.n3 new file mode 100644 index 0000000..a5b8eac --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Release/net472/Ontologies/rdfs.n3 @@ -0,0 +1,109 @@ +@prefix rdf: . +@prefix rdfs: . +@prefix owl: . +@prefix dc: . + + a owl:Ontology ; + dc:title "The RDF Schema vocabulary (RDFS)" . + +rdfs:Resource a rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:label "Resource" ; + rdfs:comment "The class resource, everything." . + +rdfs:Class a rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:label "Class" ; + rdfs:comment "The class of classes." ; + rdfs:subClassOf rdfs:Resource . + +rdfs:subClassOf a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:label "subClassOf" ; + rdfs:comment "The subject is a subclass of a class." ; + rdfs:range rdfs:Class ; + rdfs:domain rdfs:Class . + +rdfs:subPropertyOf a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:label "subPropertyOf" ; + rdfs:comment "The subject is a subproperty of a property." ; + rdfs:range rdf:Property ; + rdfs:domain rdf:Property . + +rdfs:comment a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:label "comment" ; + rdfs:comment "A description of the subject resource." ; + rdfs:domain rdfs:Resource ; + rdfs:range rdfs:Literal . + +rdfs:label a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:label "label" ; + rdfs:comment "A human-readable name for the subject." ; + rdfs:domain rdfs:Resource ; + rdfs:range rdfs:Literal . + +rdfs:domain a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:label "domain" ; + rdfs:comment "A domain of the subject property." ; + rdfs:range rdfs:Class ; + rdfs:domain rdf:Property . + +rdfs:range a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:label "range" ; + rdfs:comment "A range of the subject property." ; + rdfs:range rdfs:Class ; + rdfs:domain rdf:Property . + +rdfs:seeAlso a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:label "seeAlso" ; + rdfs:comment "Further information about the subject resource." ; + rdfs:range rdfs:Resource ; + rdfs:domain rdfs:Resource . + +rdfs:isDefinedBy a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:subPropertyOf rdfs:seeAlso ; + rdfs:label "isDefinedBy" ; + rdfs:comment "The defininition of the subject resource." ; + rdfs:range rdfs:Resource ; + rdfs:domain rdfs:Resource . + +rdfs:Literal a rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:label "Literal" ; + rdfs:comment "The class of literal values, eg. textual strings and integers." ; + rdfs:subClassOf rdfs:Resource . + +rdfs:Container a rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:label "Container" ; + rdfs:subClassOf rdfs:Resource ; + rdfs:comment "The class of RDF containers." . + +rdfs:ContainerMembershipProperty a rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:label "ContainerMembershipProperty" ; + rdfs:comment """The class of container membership properties, rdf:_1, rdf:_2, ..., + all of which are sub-properties of 'member'.""" ; + rdfs:subClassOf rdf:Property . + +rdfs:member a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:label "member" ; + rdfs:comment "A member of the subject resource." ; + rdfs:domain rdfs:Resource ; + rdfs:range rdfs:Resource . + +rdfs:Datatype a rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:label "Datatype" ; + rdfs:comment "The class of RDF datatypes." ; + rdfs:subClassOf rdfs:Class . + + rdfs:seeAlso . diff --git a/tests/Trinity.Tests.Virtuoso/bin/Release/net472/Ontologies/space test ontology.ttl b/tests/Trinity.Tests.Virtuoso/bin/Release/net472/Ontologies/space test ontology.ttl new file mode 100644 index 0000000..e9f6944 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Release/net472/Ontologies/space test ontology.ttl @@ -0,0 +1,13 @@ +@prefix rdf: . +@prefix owl: . +@prefix rdfs: . +@prefix myo: . + +myo: +rdfs:label "my ontology". + +myo:Class a rdfs:Class ; +rdfs:label "MyClass" . + +myo:Property a rdf:Property ; +rdfs:label "MyProperty" . \ No newline at end of file diff --git a/tests/Trinity.Tests.Virtuoso/bin/Release/net472/Semiodesk.Trinity.Tests.Virtuoso.exe.config b/tests/Trinity.Tests.Virtuoso/bin/Release/net472/Semiodesk.Trinity.Tests.Virtuoso.exe.config new file mode 100644 index 0000000..3e2fdf6 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Release/net472/Semiodesk.Trinity.Tests.Virtuoso.exe.config @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/Trinity.Tests.Virtuoso/bin/Release/net472/Semiodesk.Trinity.Tests.exe.config b/tests/Trinity.Tests.Virtuoso/bin/Release/net472/Semiodesk.Trinity.Tests.exe.config new file mode 100644 index 0000000..92d10a9 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Release/net472/Semiodesk.Trinity.Tests.exe.config @@ -0,0 +1,62 @@ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/Trinity.Tests.Virtuoso/bin/Release/net472/Semiodesk.Trinity.xml b/tests/Trinity.Tests.Virtuoso/bin/Release/net472/Semiodesk.Trinity.xml new file mode 100644 index 0000000..d4242d2 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Release/net472/Semiodesk.Trinity.xml @@ -0,0 +1,5915 @@ + + + + Semiodesk.Trinity + + + + + Marks the property as NotifyingProperty. + + + + + Decorate a class with this attribute to mark it as mapping for an RDF class of the given type. + + + + + The Uri of the type. + + + + + Constructor + + The uri of the RDF class for this mapping. + + + + Decorate a property with this attribute to mark it as mapped RDF property with the given type. + + + + + Uri of the the RDF property + + + + + Flag determining if property is language invariant. Only valid for string or string collections. + + + + + Constructor + + There uri of the rdf property for this mapping. + The mapping ignores the language setting and is always non-localized. Only valid if type or generic type is string or string collection. + + + + The class of resources that are RDF classes. + + + + + Constructor + + + + + Constrctor + + + + + Constrctor + + + + + Derived VirtualizatingCollection, performing loading asychronously. + + The type of items in the collection + + + + Gets the synchronization context used for UI-related operations. This is obtained as + the current SynchronizationContext when the AsyncVirtualizingCollection is created. + + The synchronization context. + + + + Gets or sets a value indicating whether the collection is loading. + + + true if this collection is loading; otherwise, false. + + + + + Initializes a new instance of the class. + + The items provider. + + + + Initializes a new instance of the class. + + The items provider. + Size of the page. + + + + Initializes a new instance of the class. + + The items provider. + Size of the page. + The page timeout. + + + + Asynchronously loads the count of items. + + + + + Performed on background thread. + + None required. + + + + Performed on UI-thread after LoadCountWork. + + Number of items returned. + + + + Asynchronously loads the page. + + The index. + + + + Performed on background thread. + + Index of the page to load. + + + + Performed on UI-thread after LoadPageWork. + + object[] { int pageIndex, IList(T) page } + + + + The event that gets notified if the collection gets changed. + + + + + The event that gets notified if a property has changed. + + + + + An generic asynchrous virtualizing collection for sparql queries. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + A generic items provider collection. + + + + + + Number of element in the provider. + + + + + + Enumerator of the items. + + + + + + + + A generic virtualizing collection. + + + + + + The page size contains the number of elements per page. + + + + + The time after which a page can be removed. + + + + + The page size contains the number of elements per page. + + + + + Timeout in ms. If the page has not been touched it can be removed with CleanUpPages. + + + + + Number of elements in the list. + + + + + Gets an object that can be used to synchronize access to the . + + + + An object that can be used to synchronize access to the . + + + + + Gets a value indicating whether access to the is synchronized (thread safe). + + + Always false. + + + + + Gets a value indicating whether the is read-only. + + + Always true. + + + + + Gets a value indicating whether the has a fixed size. + + + Always false. + + + + + Access an element at a certain index. + + + + + + + Initializes a new instance of the class. + + Items provider + Size of the page. + The page timeout. + + + + Initializes a new instance of the class. + + The items provider. + Size of the page. + + + + Initializes a new instance of the class. + + + + + Returns the enumerator of the collection + + + + + + The list is read-only, not supported. + + + + + + The list is read-only, not supported. + + + + + + The list is read-only, not supported. + + + + + Returns the index of a certain element. + + + + + + + The list is read-only, not supported. + + + + + + + The list is read-only, not supported. + + + + + + + The list is read-only, not supported. + + + + + + The list is read-only, not supported. + + + + + + The list is read-only, not supported. + + + + + + + The list is read-only, not supported. + + + + + + + The list is read-only, not supported. + + + + + + + Removes pages that have not been touched recently. The timeout can be configured with the PageTimeout. + + + + + Load page with the given index. + + + + + + Sets the given page to the given index. + + + + + + + Load the page with the given index. + + + + + + Loads the count of the collection. + + + + + Gets the page from the item provider. + + + + + + + Gets the element count from the item provider. + + + + + + The item provider for sparql queries. + + + + + + Constructor for the SparqlQueryItemsProvider. + + The model on which the query should be executed. + The query that should be executed. + Modifier if inferncing should be enabled. Default is true + + + + Number of elements in the result. + + + + + + Enumerator of the items. Should be narrowed with offset and limit. + + Offset of the element where to start. + Number of elements. + + + + + A virtualizing collection for sparql query results + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The model to query. + The query. + Size of the page. + Using inferencing + + + + Initializes a new instance of the class. + + + + + The FileSource represents the path of the ontology on the disk. + + + + + This is the string containing the path. + + + + + The ontology configuration section. + + + + + The uri of the ontology as string. + + + + + Wrapper for the uri of the ontology as Uri. + + + + + The prefix of the ontology. + + + + + The timestamp when the ontology was first introduced in the project. + + + + + Version of the ontology. + + + + + The location of the ontology file in the web. + + + + + The location of the ontology file on the disk. + + + + + Serialization of th ontology. + + + + + + Hashcode of the ontology. + + + + + + Wrapper for the local path of the ontology. + + + + + Location of the ontology in the web. + + + + + The url of the ontology in the web. + + + + + The section containing all ontologies. + + + + + The list of all ontologies + + + + + The namespace the ontologies should be generated to. + + + + + The general store configuration section. + + + + + The store type this configuration belongs to. + + + + + The content of the store configuration. Will be handled by the store implementation. + + + + + The store section of the configuration. + + + + + The list of the store configurations. + + + + + The general configuration section. + + + + + The ontology section. + + + + + The store section. + + + + + Wrapper for the namespace for this project. + + + + + Wrapper for an easier ontology access. + + + + + + Wrapper for the store configurations. + + + + + + Loads Trinity RDF settings from a XML configuration file. + + + + + Exposes settings for Trinity RDF projects. + + + + + Get the default namespace for generated C# classes. + + + + + Get the ontology settings for the current project. + + An enumeration of ontology settings. + + + + Get the triple store settings for the current project. + + An enumeration of triple store settings. + + + + Exposes ontology settings for a Trinity RDF project. + + + + + Get the namespace URI of the ontology. + + + + + Get the default prefix of the ontology. + + + + + Get the location of the ontology source file. + + + + + Exposes triple store settings for Trinity RDF projects. + + + + + Get the triple store type identifier. + + + + + Get store specific XML configuration data. + + + + + A file source of a element + + + + + The location of this file source + + + + + A graph element in the configuration. + + + + + The Uri of the graph element + + + + + A collection containing all graphs in the configuration + + + + + Create a new graph element + + + + + + Gets the key of the given graph element. Uri is used. + + + + + + + The type of the collection + + + + + The name of the element + + + + + The index operator + + + + + + + Get the element by the key + + + + + + + Test if key exists + + + + + + + Get enumerator of collection + + + + + + A ontology element + + + + + Prefix of this ontology. + + + + + URI of this ontology. + + + + + String representation of the URI. + + + + + The key of the element. + + + + + The location of the ontology file. + + + + + The uri of the metadata graph, only needed for TriG serialisations. + + + + + The string representation of the metadata graph URI. + + + + + String representation of this element. + + + + + + Overwritten hashcode. + + + + + + Get the location of the ontology file source. + + + + + A collection of ontology settings. + + + + + Create a new ontology configuration element. + + A new configuration element. + + + + Get the key associated with a configuration element. + + + URI of the configuration element. + + + + Get the configuration element collection type. + + + + + XML element tag name. + + + + + Gets the configuration element at the specified index location. + + The index location of the System.Configuration.ConfigurationElement to return. + The System.Configuration.ConfigurationElement at the specified index. + + + + Gets the configuration element with the specified identifier. + + The identifier of the System.Configuration.ConfigurationElement to return. + The System.Configuration.ConfigurationElement at the specified index. + + + + Indicates if an element with the given key exists in this collection. + + The identifier to be checked. + true if an element with the given key exists, false otherwise. + + + + Get an enumerator for iterating over the items in this collection. + + An enumerator. + + + + A ruleset element + + + + + Gets or sets the URI of the rule set. + + + + + Gat a collection of graphs associated with this rule set. + + + + + Collection of rule sets. + + + + + Create a new rule set element. + + + + + + Gets the key (the uri) of a RuleSet element. + + + + + + + The collection type. + + + + + Contains the name of the element. + + + + + The index operator. + + + + + + + Index operator with key name. + + The key of the ruleset. + + + + + Can be used to test if the key exists. + + + + + + + Enumerator for the collection. + + + + + + Constains Virtuoso specific settings. + + + + + A collection of inference rule sets. + + + + + Get the triple store type identifier. + + + + + Get store specific XML configuration data. + + + + + Constains the settings for the Semiodesk.Trinity framework. + + + + + Namespace of the generated ontology file. + + + + + Collection of ontology settings. + + + + + Virtuoso specific triple store settings. + + + + + Get the ontology settings for the current project. + + An enumeration of ontology settings. + + + + Get the triple store settings for the current project. + + An enumeration of triple store settings. + + + + This exception will be thrown if the store rejects the query as invalid. + + + + + Contains the offending query + + + + + Create a new exception without information. + + + + + Create a new exception with an error string. + + Details about the issue. + + + + Create a new exception with an error string and an inner exception. + + Details about the issue. + The exception that propmted the query failure. + The offending query + + + + This exception will be thrown when trying to access query result methods + for unsupported SPARQL query forms (i.e. trying to get bindings from an ASK query). + + + + + Contains the offending query. + + + + + Create a new exception with an error string. + + SPARQL query type. + + + + Represents error when one or more resources you tried to access was locked. + + + + + Create a new instance of the ResourceLockedException class. + + Inner exception. + + + + Represents error when a resource could not be retrieved. + + + The exception is derived from ArgumentException to ensure backwards compatibility. + + + + + Create a new instance of the ResourceNotFoundException class. + + URI of the resource. + + + + Represents errors when a suitable triple store adapter could not be found. + + + + + Create a new instance of the StoreProviderMissingException class. + + Error message. + + + + Create a new instance of the StoreProviderMissingException class. + + Error message. + Inner exception. + + + + Extension to FileSystemInfo concerting UriRef handling + + + + + Create a UriRef from a FileSystemInfo + + + + + + + Collection of string extension related to Uris + + + + + Create a UriRef from this string. + + + + + + + Create a UriRef from this string with a given kind + + + + + + Extension of Uri class concering UriRef handling. + + + + + Create a UriRef from this Uri. + + + + + + + The datatype of the the mapped property + + + + + If the datatype is a collection, this contains the generic type. + + + + + True if the property is mapped to a collection. + + + + + The property that should be mapped. + + + + + The name of the mapped property. + + + + + True if the value has not been set. + + + + + Language of the value + + + + + The mapping ignores the language setting and is always non-localized. Only valid if type or generic type is string or string collection. + + + + + Method to test if a type is compatible. In case of collection, the containing type is tested for compatibility. + + The type to test. + True if the type is compatible + + + + Gets the value or values mapped to this property. + + + + + + This method is meant to be called from the non-mapped interface. It replaces the current value if + it is mapped to one value, adds it if the property is mapped to a list. + + + + + + Deletes the containing value and sets the state to unset. In case of a collection, it tries to remove the value from it. + + + + + + Clones the mapping of another resource. + + + + + + Clears the mapping and resets it. + + + + + This interface encapsulates the access to the methods of a RDF resource. + + + + + Uniform Resource Identifier (URI). + + + + + Model from which the resource was instantiated. + + + + + Indicates that this resource is not writable, thus Commit() is illegal. + + + + + Set the language of this resource. This will change te mapped strings to this language. + + + + + Indicates if the resources has been disposed. + + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A instance of IResource. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A string literal. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A string literal. + The culture of the string literal. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A string literal. + The language of the string literal. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A 16-bit integer value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A 32-bit integer value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A 64-bit integer value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A 16-bit unsigned integer value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A 32-bit unsigned integer value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A 64-bit unsigned integer value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A single precision float value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A double precision float value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A decimal value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A boolean value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + A datetime value. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + Arbitrary data in form of a byte array. + + + + Adds a new property with the given value to the resource. + + Property the value should be associated with. + An Uri. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + An IResource instance. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A instance of IResource. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A string literal. + The culture of the string + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A string literal. + The language of the string. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A 16-bit integer value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A 32-bit integer value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A 64-bit integer value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A 16-bit unsigned integer value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A 32-bit unsigned integer value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A 64-bit unsigned integer value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A single precision float value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A double precision float value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A decimal value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A blooean value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + A date value. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + Arbitrary data in form of a byte array. + + + + Removes an associated property from the resource. + + Property the given value is associated with. + An Uri. + + + + Indicates if the resource has at least one property of the given type. + + + True on success, False otherwise. + + + + Indicates if the resource has a property with the given value. + + + + True on success, False otherwise. + + + + Indicates if the resource has a property with the given translated string value. + + + + + True on success, False otherwise. + + + + Indicates if the resource has a property with the given translated string value. + + + + + True on success, False otherwise. + + + + Enumerates all properties associated with this resource. + + + + + + Enumerates all properties associated with this resource in form + of a tuple mapping properties to their corresponding values. + + Only return values which should be serialized. + + + + + Enumerates all property values associated with this resource. + + + + + + + Gets the value of a uniquely asserted property. + + A RDF property. + + + + + Gets the value of a uniquely asserted property. + + A RDF property. + Specifies a default value that should be returned if no value exists. + + + + + This static class is responsible for discovering mapped classes. + Every assembly that defines mapping classes needs to register them with this service. + + + + + A class containing information about a RDF class mapped to c#. + + + + + The .NET type of the class. + + + + + RDF classes that are mapped to this class. + + + + + Inferenced RDF classes mapped to this class. Currently not used. + + + + + The number of classes that are not sub class of any other class. + + + + + Constructor to create a new MappingClass + + The c# type + The mapped rdf classes. + The rdf base classes. + + + + The list of all registered assemblies. + + + + + The list of all registered mapped classes. + + + + + Adds a collection of mapped classes to the registration. + + + + + + Adds a mapped class to the registration. + + + + + + Add the super classes of a given .NET type to a given list. + + A .NET type. + List where the base types will be added to. + + + + Loads all mapped classes from the assembly calling this method. + + + + + Register ALL THE THINGS!! + from all assemblies currently loaded. + + + + + Load all mapped classes from the given assembly. + + + + + + Returns all types which match the given restrictions. + + List of RDF classes + A c# type in a inheritence tree. Give Resource if you don't know what to do. + Should inferencing be factored in. + + + + The the RDF class of a C# type. + + + + + + + An interface for classes which provide functionality to manage a set of resources. + + + + + Uri of this model. + + + + + True if the model is empty. + + + + + All unampped properties will be ignored for update and thus deleted. + This reduces the amount of data thats get sent to the database but also might remove important data. + Setting this to true essentialy disables the triple API. + + + + + Adds an existing resource to the model and its backing RDF store. The resulting resource supports the use of the Commit() method. + + The resource to be added to the model. + Transaction associated with the action. + The resource which is now connected to the current model. + + + + Adds an existing resource to the model and its backing RDF store. The resulting resource supports the use of the Commit() method. + + The resource to be added to the model. + Transaction associated with this action. + The resource which is now connected to the current model. + + + + Creates a new resource in the model and its backing RDF store. + + The format string from which a globally unique identifier URI should be generated from. + Transaction associated with this action. + An instance of the given object type wrapping the newly created resource. + The newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Creates a new resource in the model and its backing RDF store. + + A Uniform Resource Identifier. + Transaction associated with this action. + The newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Creates a new resource in the model and its backing RDF store. Provides a resource object of the given type. + + Type of the resource object. Must be derived from Resource. + The format string from which a globally unique identifier URI should be generated from. + Transaction associated with this action. + An instance of the given object type wrapping the newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Creates a new resource in the model and its backing RDF store. Provides a resource object of the given type. + + Type of the resource object. Must be derived from Resource. + A Uniform Resource Identifier. + Transaction associated with this action. + An instance of the given object type wrapping the newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Creates a new resource in the model and its backing RDF store. Provides a resource object of the given type. + + The concrete type of the resource. This must be a subclass of resource. + The format of the resulting uri. + Transaction associated with this action. + An instance of the given object type wrapping the newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Creates a new resource in the model and its backing RDF store. Provides a resource object of the given type. + This method can be used to create a resource of a type which was asserted at runtime. + + A Uniform Resource Identifier. + Type of the resource object. Must be derived from Resource. + Transaction associated with this action. + An instance of the given object type wrapping the newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Removes the given resource from the model and its backing RDF store. Note that there is no verification + that the given resource and its stored represenation have identical properties. + + A Uniform Resource Identifier. + The transaction associated with this action. + + + + Removes the given resource from the model and its backing RDF store. Note that there is no verification + that the given resource and its stored represenation have identical properties. + + Resource that is to be removed from the model. + Transaction associated with this action. + + + + Indicates wheter a given resource is part of the model. + + A Uniform Resource Identifier. + Transaction associated with this action. + True if the resource is part of the model, False if not. + + + + Indicates wheter a given resource is part of the model. + + Resource that should be looked up in the model. + Transaction associated with this action. + True if the resource is part of the model, False if not. + + + + Execute a SPARQL query against the model. + + A SparqlQuery object. + Modifier to enable inferencing. Default is false. + Transaction associated with this action. + A SPARQL query result object. + + + + Execute a SparqlUpdate against the model. + + A sparql update object. + Transaction associated with this action. + + + + Retrieves a resource from the model. + + A Uniform Resource Identifier. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. Provides a resource object of the given type. + + A Uniform Resource Identifier. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. + + The instance of IResource to be retrieved. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. Provides a resource object of the given type. + + A Uniform Resource Identifier. + The type the resource should have. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. + + The instance of IResource to be retrieved. + Transaction associated with this action. + A resource with all asserted properties. + + + + Executes a SPARQL query and provides an enumeration of matching resources. + + A SparqlQuery object. + Modifier to enable inferencing. Default is false. + Transaction associated with the action. + An enumeration of resources that match the given query. + + + + Executes a SPARQL query and provides an enumeration of matching resources. + + A SparqlQuery object. + Modifier to enable inferencing. Default is false. + Transaction associated with the action. + An enumeration of resources that match the given query. + + + + Returns a enumeration of all resources that match the given type. + + Modifier to enable inferencing. Default is false. + Transaction associated with the action. + An enumeration of resources that match the given query. + + + + Returns a queryable object that can be used to build LINQ statements. + + + + + + + Executes a SPARQL query and provides an enumeration of matching resources. + + A SparqlQuery object. + Modifier to enable inferencing. Default is false. + Transaction associated with the action. + An enumeration of resources that match the given query. + + + + Imports the contents of a model located by the given URL. The method supports + importing files and other models stored in the local RDF store. + + A uniform resource locator. + The serialization format. + True to update the model, false to replace the data. + True if the contents of the model were imported, False if not. + + + + Imports the contents of a graph serialized in the stream to this model. + + The stream containing the serialization + Format of the serialization + True to update the model, false to replace the data. + True if the contents of the model were imported, False if not. + + + + Serializes the contents of the model and provides a memory stream. + + The file stream to write to. + The serialization format. + A serialization of the models contents. + + + + Updates a resource with it's current state in the model. + + + + + + + Removes all elements from the model. + + + + + Starts a transaction which can be used to group more queries together to be executed as one. + + Isolation level used to lock the database. + A handle to the transaction. + + + + Compares two models by their uris + + + + + Equals + + + + + + + + HashCode + + + + + + + The model group can be used to query over multiple models at once. + + + + + The default model of this group + + + + + A set of resources which represent a logical model for a given application domain. + + + + + The Uniform Resource Identifier which provides a name for the model. + + + + + Indicates if the model contains statements. + + + + + All unampped properties will be ignored for update and thus deleted. + This reduces the amount of data thats get sent to the database but also might remove important data. + Setting this to true essentialy disables the triple API. + + + + + This constructor is intended to be used only be the ModelManager. + + The underlying triple store implementation to be used. + Uniform Resource Identifier of the model. + + + + Removes all elements from the model. + + + + + Adds an existing resource to the model and its backing RDF store. The resulting resource supports the use of the Commit() method. + + The resource to be added to the model. + Transaction associated with the action. + The resource which is now connected to the current model. + + + + Adds an existing resource to the model and its backing RDF store. The resulting resource supports the use of the Commit() method. + + The resource to be added to the model. + Transaction associated with the action. + The resource which is now connected to the current model. + + + + Creates a new resource in the model and its backing RDF store. Provides a resource object of the given type. + + The format of the resulting uri. + Transaction associated with this action. + An instance of the given object type wrapping the newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Creates a new resource in the model and its backing RDF store. + + A Uniform Resource Identifier. + Transaction associated with this action. + The newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Creates a new resource in the model and its backing RDF store. Provides a resource object of the given type. + + Type of the resource object. Must be derived from Resource. + The format of the resulting uri. + Transaction associated with this action. + An instance of the given object type wrapping the newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Creates a new resource in the model and its backing RDF store. Provides a resource object of the given type. + + Type of the resource object. Must be derived from Resource. + A Uniform Resource Identifier. + Transaction associated with this action. + An instance of the given object type wrapping the newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Creates a new resource in the model and its backing RDF store. Provides a resource object of the given type. + + Type of the resource object. Must be derived from Resource. + The format of the resulting uri. + Transaction associated with this action. + An instance of the given object type wrapping the newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Creates a new resource in the model and its backing RDF store. Provides a resource object of the given type. + This method can be used to create a resource of a type which was asserted at runtime. + + A Uniform Resource Identifier. + Type of the resource object. Must be derived from Resource. + Transaction associated with this action. + An instance of the given object type wrapping the newly created resource. + Throws ArgumentException if a resource with the given URI already exists in the model. + + + + Removes the given resource from the model and its backing RDF store. Note that there is no verification + that the given resource and its stored representation have identical properties. + + A Uniform Resource Identifier. + Transaction associated with this action. + + + + Removes the given resource from the model and its backing RDF store. Note that there is no verification + that the given resource and its stored representation have identical properties. + + A resource object. + Transaction associated with this action. + + + + Updates the properties of a resource in the backing RDF store. + + Resource that is to be updated in the backing store. + Transaction associated with this action. + + + + Indicates wheter a given resource is part of the model. + + A Uniform Resource Identifier. + Transaction associated with this action. + True if the resource is part of the model, False if not. + + + + Indicates wheter a given resource is part of the model. + + A resource object. + Transaction associated with this action. + True if the resource is part of the model, False if not. + + + + Execute a SPARQL Query. + + A SparqlQuery object. + Indicate that this query should work with enabled inferencing. + Transaction associated with this action. + A SparqlQueryResults object in any case. + + + + Execute a SPARQL Update. + + A SparqlUpdate object. + Transaction associated with this action. + + + + Retrieves a resource from the model. + + A Uniform Resource Identifier. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. + + The instance of IResource to be retrieved. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. Provides a resource object of the given type. + + A Uniform Resource Identifier. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. Provides a resource object of the given type. + + The resource that should be retrieved. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. Provides a resource object of the given type. + This method can be used for runtime asserted types. + + A Uniform Resource Identifier. + Type of the resource object. Must be derived from Resource. + Transaction associated with this action. + An instance of the given resource object type, Null otherwise. + + + + Executes a SPARQL query and provides an enumeration of matching resources. + + The SparqlQuery object that should be executed. + Indicate that this query should work with enabled inferencing. + transaction associated with this action. + An enumeration of resources that match the given query. + + + + Executes a SPARQL query and provides an enumeration of matching resources. + Provides a resource object of the given type. + + The SparqlQuery object that should be executed. + Indicate that this query should work with enabled inferencing. + transaction associated with this action. + An enumeration of resources that match the given query. + + + + Returns a enumeration of all resources that match the given type. + + Indicate that this query should work with enabled inferencing. + transaction associated with this action. + An enumeration of resources that match the given query. + + + + TODO + + + + + + + Executes a SPARQL-select query and provides a list of binding sets. This method + implements transparent type marshalling and delivers the bound variables in C# + native data types. + + A SPARQL-select query which results in a set of bound variables. + Indicate that this query should work with enabled inferencing. + Transaction associated with this action. + An enumeration of bound variables that match the given query. + + + + Exports the contents of the model and provides a memory stream. + + File stream to write to. + The serialization format. + A serialization of the models contents. + + + + Imports the contents of a model located by the given URL. The method supports + importing files and other models stored in the local RDF store. The location + of the model is determined by the URI scheme. + + A uniform resource locator. + Serialization format + Pass false if you want to overwrite existing data. True if you want to keep the data and add the new entries. + True if the contents of the model were imported, False if not. + + + + Reads model contents from a stream. The method supports importing files and other models stored in the local RDF store. + + A stream. + Serialization format + Pass false if you want to overwrite existing data. True if you want to keep the data and add the new entries. + True if the contents of the model were imported, False if not. + + + + Starts a transaction which can be used to group more queries together to be executed as one. + + Isolation level used to lock the database. + A handle to the transaction. + + + + Implementation of the IModelGroup interface. + + + + + All unampped properties will be ignored for update and thus deleted. + This reduces the amount of data thats get sent to the database but also might remove important data. + Setting this to true essentialy disables the triple API. + + + + + The default model of this group. + + + + + Uri of the model group is null. + + + + + Tests if all contained models are empty. + + + + + Create a new model group from a store and a collection of models + + A store + A collection of models belonging to that store. + + + + Create a new model group from a store and a collection of models + + A store + A set of models belonging to that store. + + + + Not supported. ModelGroups are read-only. + + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + Not supported. ModelGroups are read-only. + + + + + Not supported. ModelGroups are read-only. + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + Not supported. ModelGroups are read-only. + + + + + + + + + Indicates wheter a given resource is part of the model. + + A Uniform Resource Identifier. + Transaction associated with this action. + True if the resource is part of the model, False if not. + + + + Indicates wheter a given resource is part of the model. + + Resource that should be looked up in the model. + Transaction associated with this action. + True if the resource is part of the model, False if not. + + + + Execute a SPARQL query against the model. + + A SparqlQuery object. + Modifier to enable inferencing. Default is false. + Transaction associated with this action. + A SPARQL query result object. + + + + Retrieves a resource from the model. + + A Uniform Resource Identifier. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. Provides a resource object of the given type. + + The instance of IResource to be retrieved. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. + + A Uniform Resource Identifier. + Transaction associated with this action. + A resource with all asserted properties. + + + + Retrieves a resource from the model. Provides a resource object of the given type. + + The instance of IResource that is to be retrieved. + Transaction associated with this action. + The type of the resource. + A resource with all asserted properties. + + + + Retrieves a resource from the model. + + The uri of the resource that is to be retrieved. + The type the resource should have. + Transaction associated with this action. + A resource with all asserted properties. + + + + Executes a SPARQL query and provides an enumeration of matching resources. + + A SparqlQuery object. + Modifier to enable inferencing. Default is false. + Transaction associated with the action. + An enumeration of resources that match the given query. + + + + Executes a SPARQL query and provides an enumeration of matching resources. + + A SparqlQuery object. + Modifier to enable inferencing. Default is false. + Transaction associated with the action. + An enumeration of resources that match the given query. + + + + Returns a enumeration of all resources that match the given type. + + Modifier to enable inferencing. Default is false. + Transaction associated with the action. + An enumeration of resources that match the given query. + + + + TODO + + + + + + + Executes a SPARQL query and provides an enumeration of matching resources. + + A SparqlQuery object. + Modifier to enable inferencing. Default is false. + Transaction associated with the action. + An enumeration of resources that match the given query. + + + + Serializes the contents of the model and provides a memory stream. + + The file stream to write to. + The serialization format. + A serialization of the models contents. + + + + Imports the contents of a graph serialized in the stream to this model. + + The stream containing the serialization + Format of the serialization + True to update the model, false to replace the data. + True if the contents of the model were imported, False if not. + + + + Add another model to the model group. + + The model to add + true if the element is added to the model group false if the element is already present + + + + Removes all elements in the specified collection from the model group. + + The collection of models to remove. + + + + Modifies the model group to contain only elements that are present in the current group and the specified collection. + + The collection to compare. + + + + Determines whether the model group is a subset of the given collection. + + The collection to compare. + true if the model group is a subset; otherwise, false. + + + + Determines whether the model group is a superset of the given collection. + + The collection to compare + true if the model group is a superset; otherwise, false. + + + + Determines whether the model group is a subset of the given collection. + + The collection to compare. + true if the model group is a subset; otherwise, false. + + + + Determines whether the model group is a superset of the given collection. + + The collection to compare. + >true if the model group is a superset; otherwise, false. + + + + Determines wether the model group and the given collection share common models. + + The collection to compare. + true if the model group shares common models; otherwise, false. + + + + Determines wether the model group and the given collection contain the same elements. + + The collection to compare. + true if the collections is equal; otherwise, false. + + + + Modifies the mode group to contain only elements either present in that object or the given collection, but not both. + + The collection to compare. + + + + Modifies the mode group to contain both elements present in that object and the given collection. + + The collection to compare. + + + + Determines if the model group contains the given model. + + The model to locate. + true if the model exists in the group; otherwise, false. + + + + Copies the given models in the group starting at the specified index. + + The models to copy. + The array index + + + + Returns the number of models in the group. + + + + + Returns if the group is read only. + + + + + Removes a model from the group. + + + + + + + Enumerator of the models + + + + + + Enumerator of the models + + + + + + Abstract class which marks subclasses as ontologies. Needed for automatic discovery. + + + + + This static class contains a mapping of all properties and classes to its uris for discovery of the proper object and its attributes. + For future reference: look into PreApplicationStartMethodAttribute Class or ModuleInitializer + + + + + All registered RDF ontology prefixes in the current application. + + + + + All registered RDF properties in the current application. + + + + + All registered RDF classes in the current application. + + + + + Register a namespace with a prefix. + + A namespace prefix. + A uniform resource identifier. + + + + Register an assembly to search for RDF ontologies. + + + + + + Register the calling assembly to search for RDF ontologies. + + + + + Register the concepts from a given set of ontologies. + + An enumeration of ontologies. + + + + Returns a a property with the given Uri. Creates a new one if it doesn't exist. + + + + + + + Returns a a property with the given string. Creates a new one if it doesn't exist. + + + + + + + Objects of this class represent RDF properties. + + + + + Constructor taking a Uri parameter + + Uri of the property + + + + Constructor taking a UriRef parameter + + Uri of the property + + + + Determines wheter the URIs of the compared objects are equal. + + The object to be compared. + true if the URIs of the compared objects are equal, false otherwise. + + + + Returns the hash code of the objects URI. + + A hash code string. + + + + This class does the heavy lifting of the property mapping mechanism. It stores the value and acts as intermediary for the resource. + + + + + + The value of the mapped property. + + + + + The datatype of the the mapped property. + + + + + The datatype of the the mapped property. + + + + + If the datatype is a collection, this contains the generic type. + + + + + If the datatype is a collection, this contains the generic type. + + + + + True if the property is mapped to a collection. + + + + + True if the property is mapped to a collection. + + + + + True if the value has not been set. + + + + + True if the value has not been set. + + + + + Language of the value. + + + + + Gets the mapped RDF property. + + + + + Gets the URI of the mapped RDF property. + + + + + Gets the name of the mapped .NET property. + + + + + Only valid if type or generic type is string. The mapping ignores the language setting and is always non-localized. + + + + + Creates a new property mapping. + + Name of the property in the class + The RDF property that should be mapped + This parameter is only valid if the type is string. Tells the mapping that the values should be treated as non-localized literals. + + + + Creates a new property mapping. + + Name of the property in the class + The RDF property that should be mapped + The default value used to initialize this property + This parameter is only valid if the type is string. Tells the mapping that the values should be treated as non-localized literals. + + + + Creates a new property mapping. + + Name of the property in the class + The URI of the RDF property that should be mapped + This parameter is only valid if the type is string. Tells the mapping that the values should be treated as non-localized literals. + + + + Creates a new property mapping. + + Name of the property in the class + The URI of the RDF property that should be mapped + The default value used to initialize this property + This parameter is only valid if the type is string. Tells the mapping that the values should be treated as non-localized literals. + + + + Sets the property value. + + A value. + + + + Returns the property value. + + The value, if any. + + + + Sets a single literal value or adds a value to a property mapped to a value collection. + + + This method is meant to be called from the non-mapped interface. It replaces the current value if + it is mapped to one value, adds it if the property is mapped to a list. + + The value. + + + + Deletes the containing value and sets the state to unset. In case of a collection, it tries to remove the value from it. + + + + + + Gets the value or values mapped to this property. + + + + + + Gets a list of strings as list of tuples containing the values and the language tags. + + + + + + Method to test if a type is compatible. In case of collection, the containing type is tested for compatibility. + + The type to test. + True if the type is compatible + + + + Indicates if the mapped value is a numeric type. + + A .NET type object. + true if the type is numeric, false otherwise. + + + + Indicates if the precision of a numeric target type is greater or equal to a given source type. + + The source type. + The target type. + true if the types are precision compatible, false otherwise. + + + + Clones the mapping of another resource. + + + + + + Clears the mapping and resets it. + + + + + A dictionary of named value bindings which represents a single query solution. + + + + + Exposes a SPARQL query. + + + + + The model on which the query will be run. + + + + + The type of the query. + + + + + Indicates if inference should be enabled. It depends on the underlying store if and how this is used. + + + + + Bind parameters to specified values. + + + + + + + Returns all prefixes that were specified by the query. + + + + + + Enumerates the graphs which are declared in FROM and FROM NAMED directives at the root level. + + An enumeration of URI strings. + + + + Get an array of all variable names that are defined in the root scope of the query. + + An array of avaiable names without the preceding '$' or '?' characters, if any. + + + + Get the root graph pattern. + + A non empty string, on success. + + + + Gets the outermost ORDER BY clause. + + A non empty string if a ORDER BY clause is defined. + + + + Indicates if the query selects variables that are used as subject, predicate and object in a triple pattern. + + true if the query selects triples, false otherwise. + + + + Returns the string representation of the query. + + The SPARQL query string. + + + + Exposes the results of a SPARQL query. + + + + + Number of items in the result set. + + + + + + Enumerate the resource objects in the result. + + + + + + + + Enumerate the resource objects of a given type in the result. + + + + + + + + + Returns the bool value from ASK query forms. + + True on success, False otherwise. + + + + Returns marshalled Resource objects returned from DESCRIBE, CONSTRUCT + or interpretable SELECT query forms. + + An enumeration of Resource objects. + + + + Returns marshalled instances of the given Resource type which were + returned from DESCRIBE, CONSTRUCT or interpretable SELECT query forms. + + The Resource type object. + An enumeration of instances of the given type. + + + + Returns a set of bound values (bindings) returned from SELECT query forms. + + An enumeration of bound solution variables (BindingSet). + + + + Extensions for the ConstantExpression type. + + + + + Convert the expression into a ConstantTerm. + + A constant expression. + A ConstantTerm object. + + + + Convert the expression into a IriExpression. + + A constant expression. + A IriExpression object. + + + + Convert the expression into a LiteralExpression. + + A constant expression. + A LiteralExpression object. + + + + Convert the expression into a numeric expression. + + A constant expression. + A NumericExpression object. + + + + Convert the expression into a node. + + A constant expression. + A Node object. + + + + Indicates if the expression can be evaluated to false. + + A constant expression. + true if the value is either null or false, false otherwise. + + + + Indicate if an expression contains antoher or is equal to it. + + An expression. + Expression to be evaluated. + true if e is equal to the given expression or one of its query sources, false otherwise. + + + + Extensions for the MemberInfo type. + + + + + Gets the first custom attribute of a specified type which is attached to a class member. + + Custom attribute type. + A class member. + A custom attribute object on success, null otherwise. + + + + Get the .NET type of the given class member. + + A class member. + The class member type. + + + + Indicates if the given member is of type Uri or a sub type. + + A class member. + true if the member can be represented by a URI, false otherwise. + + + + Indicates if the given member is a built-in call. + + A class member. + true if the class member is a built-in call, false otherwise. + + + + Extensions for the MethodCall type. + + + + + Indicates if the method call has an argument with a specified value at a specified location. + + A method call expression. + Location of the argument. + Value of the argument. + true if the method call has an argument with the given value, false otherwise. + + + + Indicates if the method call has an argument at a speficied loaction with one of the specified values. + + A method call expression. + Location of the argument. + Values of the argument. + true if the method call has an argument with one of the given values, false otherwise. + + + + Get the value of an argument at the specified location. + + Value type. + A method call expression. + Argument location. + + + + + Get the value of an argument at the specified location. + + Value type. + A method call expression. + Argument location. + Value to be returned if no argument is specified at the given location. + + + + + Extension for the NodeFactory type. + + + + + Create a boolean literal value. + + A node factory. + Value of the literal node. + A new literal node object. + + + + Generates SELECT queries which return binding sets. + + + This class is intended to be used as a root query generator. For generating SELECT queries + for sub-queries, refer to SubSelectQueryGenerator. + + + + + Builds the triples required to access a given member and accociates its value with a variable. + + The member to be accessed. + The object variable associated with the member value. + + + + Builds the triples required to access a given member and accociates its value with a variable. + + The member to be accessed. + The object variable associated with the member value. + + + + Generates a SPARQL query from a LINQ query model by visiting all clauses and invoking + expression implementation using a ExpressionTreeVisitor. + + The result type. + + + + Allows to access query generators and sub query generators in a tree-like fashion. + + + + + Visits all expressions in a query model and handles the query generation. + + + + + Get a variable from an expression that can be used as a subject in triple patterns and represents resources. + + + + + + + A simple SPARQL parser. + + + This class is primarily intended to support a limited range of query + preprocessing tasks such as setting the values of query parameters (@-variables) + as quickly as possible. It does not aim to support the full SPARQL standard syntax. + + + + + We use the list of tokens to generate the query string with bound parameters on demand. + + + + + Type of the last read token. + + + + + URIs of the graphs queried or manipulated by the query. + + + + + Namespace prefixes defined in the query. + + + + + Namespace prefixes referenced in the query. + + + + + Names of the bindable query parameters starting with '@'. + + + + + Bound literal values of the query parameters. + + + + + Token types of the query parameters. + + + + + Creates a new instance of the SparqlPreprocessor class. + + A text reader. + SPARQL syntax level. + + + + Starts analyzing the SPARQL query. + + Trz to add prefix definitions for the namespaces used but not declared in the query. + + + + Gets the next parseable Token from the Input or raises an Error. + + + + + + Add FROM definition to the query. + + URI of the graph. + + + + Add a FROM NAMED definition to the query. + + URI of the graph. + + + + Gets the PREFIX definitions in the query. + + + + + + Set the value for a query parameter which is preceeded by '@'. + + The parameter name including the '@'. + The paramter value. + + + + Return the query with all bound variables. + + Level of the sub graph to be returned (0 := entire query). + + + + + Returns the entire query string. + + + + + + Graph pattern scope of variables defined in a SPARQL query. + + + + + A variable accessible in all levels of the query. + + + + + A locally accessible variable. + + + + + A simple SPAQL Query class. This class aims to ease formulating SPARQL + query strings by automatically setting PREFIX declarations from a given + namespace manager. + + + + + + Cached version of the query string. + + + + + Indicates if a query parameter value has been changed and the cached query string needs to be regenerated. + + + + + The SPARQL query processor used to determine the prefixes and statement variables in the query. + + + + + Names of the globally defined variables without the preceding '?'. + + + + + The default model of the Query, if there is excactly one. + + + + + Get or set the model used for this query. + + + + + The query form as defined in http://www.w3.org/TR/rdf-sparql-query/#QueryForms + + + + + Indicates if the query result should be expanded using run-time inferencing. + + + + + Creates a new SPARQL query. If enabled, the PREFIXES used in any of the query's graph patterns will + be declared in the query header if they are found in the application config. Additionally, the query + may be compacted in order to reduce processing overhead when being used repeatedly in loops. + + The SPARQL query string. + Set to true if the namespace prefixes used in the query should be declared. + + + + Indicates if the query provides a description of one or more resources. + + + + + Set the value for a query parameter which is preceeded by '@'. + + The parameter name including the '@'. + The paramter value. + + + + Enumerates the graphs which are declared in FROM and FROM NAMED directives at the root level. + + An enumeration of URI strings. + + + + Returns all prefixes that were specified by the query. + + + + + + Gets the names of all variables which are defined in the root graph pattern. + + + + + + Gets the entire query as a string. + + + + + + Indicates if the query contains an ORDER BY clause in any of its graph patterns. + + true if the query contains an ORDER BY clause, false otherwise. + + + + Adds a LIMIT <int> clause to the query in order to restrict it to put an upper bound on the number of solutions returned. + + The number of return values. + + + + Adds an Offset <int> clause to the query which causes the solutions generated to start after the specified number of solutions. + + The number of entries to skip. + + + + Returns the query string with generated prefixes and subsituted parameters. + + A valid SPARQL string. + + + + The SPARQL query forms as specified in http://www.w3.org/TR/rdf-sparql-query/#QueryForms + + + + + The SPARQL query type could not be determined. + + + + + The ASK query form. + + + + + The CONSTRUCT query form. + + + + + The DESCRIBE query form. + + + + + The SELECT query form. + + + + + A preprocsesor for SPARQL queries. + + + + + The SPARQL query form, i.e. ASK, DESCRIBE, SELECT, CONSTRUCT. + + + + + Indicates if the query returns triples. + + + + + Variables visible in the query root scope. + + + + + Variables only visible in local scope. + + + + + Indicates if the query has an ORDER BY solution modifier. + + + + + Create a new instance of the SparqlQueryPreprocessor class. + + A text reader. + SPARQL syntax level. + + + + Gets the next token in the query and advance the reader position. + + A SPARQL token. + + + + Adds a LIMIT clause to the query in order to restrict it to put an upper bound on the number of solutions returned. + + The number of return values. + + + + Adds an OFFSET clause to the query which causes the solutions generated to start after the specified number of solutions. + + The number of return values. + + + + Get the entire SPARQL query string. + + A SPARQL query string. + + + + Get the ORDER BY clause. + + A string. + + + + Provides functionality to perform serialization of native .NET types into SPARQL strings. + + + + + Serializes a string and excapes special characters. + + A string literal. + + + + + Serializes a string with a translation + + A string literal. + A language tag. + + + + + Serializes a typed literal. + + A value. + A type URI. + + + + + Serializes a value depdening on its type. + + An object. + + + + + Serializes a DateTime object. + + A date time object. + + + + + Serializes a URI. + + A uniform resource identifier. + + + + + Serializes a resource. + + A resource. + Ignores all unmapped properties for serialization. + + + + + Generate the dataset clause for a given model. + + A model. + + + + + Generate a dataset clause for a model group. + + A model group. + + + + + Generate a dataset clause for an enumeration of models. + + An enumeration of models. + + + + + Serialize a count query for the given SPARQL query. + + The model to be queried. + The query which results should be counted. + + + + + Generate a query which returns the URIs of all resources selected in a given query. + + The model to be queried. + The SPARQL query which provides resources. + Offset solution modifier. + Limit solution modifier. + + + + + Add an offset or limit solution modifier to a given SPARQL query. + + The model to be queried. + The SPARQL query to be executed. + Offset solution modifier. + Limit solution modifier. + + + + + A simple SPARQL Update class. This class aims to ease formulating SPARQL + query strings by automatically setting PREFIX declarations from a given + namespace manager. + + + + + Get or set the model used for this query. + + + + + Get or set the resource being updated. + + + + + The SPARQL processor used to determine the prefixes and statement variables in the query. + + + + + The plain SPARQL update string. + + + + + Create a new SPARQL Update with an optional namespace manager instance which + can be used to declare PREFIX declarations for the namespace abbreviations + used in the update string. + + The u update string. + + + + Set the value for a query parameter which is preceeded by '@'. + + The parameter name including the '@'. + The paramter value. + + + + Returns the query string with generated prefixes and subsituted parameters. + + A valid SPARQL string. + + + + Enumerates all supported RDF serialization formats. + + + + + RDF/XML http://www.w3.org/TR/REC-rdf-syntax/ + + + + + N3 http://www.w3.org/TeamSubmission/n3/ + + + + + NTriples http://www.w3.org/2001/sw/RDFCore/ntriples/ + + + + + NTriples https://www.w3.org/TR/2014/REC-n-quads-20140225/ + + + + + TriG http://www.w3.org/TR/trig/ + + + + + Turtle http://www.w3.org/TR/turtle/ + + + + + JSON + + + + + JSON-LD https://www.w3.org/TR/json-ld/ + + + + + This class repesents a RDF resource. + + + + + The cache for the associated resources, needed to support lazy loading for mapping. + + + + + This dictionary contains the properties and the associated values. + + + + + Contains a list of all properties which implement the INotifyPropertyChanged interface. + + + + + All mappings as discovered by InitialisePropertyMapping. + + + + + Handle to the model. + + + + + Public accessor to the model. + + + + + The uri which represents the resource. + + + + + New resource which have never been committed need to be treated differently. + + + + + Indicates if the resources has been disposed. + + + + + True if the properties of the resources has been committed to the model. + + + + + Indicates this resource is read-only. + + + + + This method provides a mechanism to change writability in subclasses. + + + + + + Set the language of this resource. This will change te mapped strings to this language. + + + + + Private since a Resource cannot be created without a URI. + + + + + Create a new resource with a given Uri. + + + + + + Create a new resource with a given Uri. + + + + + + Create a new resource with a given string. Throws an exception if string is Uri compatible. + + The string converted to a Uri. Throws an exception if not possible. + + + + Create a new instance of the class and copy the properties from another class instance. + + + + + + Destructor + + + + + Sets the model the resource is stored in. + + A model. + + + + Loads and initialises all mapped properties. + + + This method could be re-reimplemented and sped up by the CIL generator. + + + + + Overwrite this method to return the RDF classes of your resource type. + + + + + + Returns the uri with brackets. + + + + + + Determines wheter the URIs of the compared objects are equal. + + The object to be compared. + true if the URIs of the compared objects are equal, false otherwise. + + + + Returns the hash code of the objects URI. + + A hash code string. + + + + Internal method to add the values. This is not public because the value is of type object and thus not typesafe for rdf. + + + + + + + + Add a property with a resource as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a string as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a string and language as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a string and language as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a Int16 as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a Int32 as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a Int64 as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a UInt16 as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a UInt32 as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a UInt64 as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a float as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a double as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a decimal as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a bool as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a DateTime as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with a byte array as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Add a property with an Uri as value. + If this property is mapped with a compatible type, it will be filled with the given value. + + + + + Internal method to remove the values. This is not public because the value is of type object and thus not typesafe for rdf. + + + + + + + Removes a property with a IResource value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a string value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a string value associated with the given language. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a string value associated with the given language. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a Int16 value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a Int32 value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a Int64 value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a UInt16 value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a UInt32 value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a UInt64 value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a float value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a double value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a decimal value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a bool value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a DateTime value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with a byte array value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Removes a property with an Uri value. + If this property is mapped with a compatible type, the given value will be removed. + + + + + Internal method to remove all properties. + + + + + Returns true if the resource has any object connected with the specified property. + + The property to be checked. + true if the property is associated, false if not + + + + Returns true if the specified value is connected to this resource with the given property. + + The property to be checked + The value that should be tested + true if the value is associated with the property, false if not + + + + Returns true if the specified string value with the given language is connected to this resource with the given property. + + The property + The string value. + The language the string is in. + + + + + Returns true if the specified string value with the given language is connected to this resource with the given property. + + The property + The string value. + The language the string is in. + + + + + This method lists all combinations of properties and values. + + Only return values which should be serialized. + + + + + Lists all values associated with one property. + This inclues the mapped values as well. + + + + + + + List all available properties. + This includes mapped properties if they have valid values. + + + + + + Return the value for a given property. + + A RDF property. + The value on success, null if the object has no such property. + + + + Return the value for a given property with a predefined default value. + + A RDF property. + Specifies a default value that should be returned if no value exists. + The value on success, the default value if the object has no such property. + + + + Persist changes in the model. + + + + + Reload the resource from the model. + + + + + This method returns if property is mapped. + + Rdf property to be tested. + Type of the mapping. + + + + + This method returns the mapped property of the given rdf property and type. It returns null if this mapping is not available. + + Rdf property to be tested. + Type of the mapping. + + + + + Returns the value from the mapped property. + + + + + + + + Set the mapped value. This also raises the PropertyChanged event. + + + + + + + + Load all cached resources from the mapped property. The values of the mapped property are resolved when this method returns. + + + + + + Register a property name to raise the INotifyProperty signal on rollback. + + Name of a property. + + + + Raises the PropertyChanged event of the object. + + Name of a property. + + + + Update the property mappings with the values in the selected language. + + + + + Dispose this resource. + Does nothing meaningful currently. + + + + + Needed for the implementation of the INotifyPropertyChanged interface. + + + + + Warns the developer if this object does not have + a public property with the specified name. This + method does not exist in a Release build. + + + + + Returns whether an exception is thrown, or if a Debug.Fail() is used + when an invalid property name is passed to the VerifyPropertyName method. + The default value is false, but subclasses used by unit tests might + override this property's getter to return true. + + + + + This method loads the cached Resources for the given MappingProperty from the Storage and returns them. + They are instantiated as the defined type. The cache for this mapping property is emptied. + + Mapping property which should be loaded from cache. + List of formerly cached resources. + + + + Tests if the mapping has cached values. + + + + + + + Tests if the mapping has a certain cached values. + + + + + + + + + + + + + + + Converts resources to and from JSON format. + + + + + Create a new instance of the JsonResourceConverter class. + + A triple store. + + + + Indicates if the given object can be converted. + + An object. + true if the object is of type Resource, false otherwise. + + + + Convert a JSON string into an object. + + A JSON reader. + Returned object type. + The existing value of object being read. + The calling serializer. + + + + + Indicates if the converter can write JSON. + + + + + Write the JSON representation of an object. + + The JSON writer to be used. + The object value. + The JSON serializer to be used. + + + + Settings for the serializing resources to and from JSON format. + + + + + Create a new instance of the JsonResourceSerializerSettings class. + + A triple store. + + + + A store adapter for dotNetRDF. + + + + + Creates a new dotNetRDFStore. + + A list of ontology file paths relative to this assembly. The store will be populated with these ontologies. + + + + Removes model from the store. + + Uri of the model which is to be removed. + + + + Query if the model exists in the store. + OBSOLETE: This method does not list empty models. At the moment you should just call GetModel() and test for IsEmpty() + + Uri of the model which is to be queried. + + + + + Executes a query on the store which does not expect a result. + + The update query + An associated transaction + + + + Executes a SparqlQuery on the store. + + + + + + + + This method queries the dotNetRdf store directly. + + + + + + + Gets a handle to a model in the store. + + Uri of the model. + + + + + Indicates if the store is ready to be queried. + + + + + Lists all models in the store. + + All handles to existing models. + + + + Try parse RDF from a given text reader into the store. + + The text reader to read from. + The graph to store the read triples. + RDF format to be read. + + + + Loads a serialized graph from the given stream into the current store. See allowed formats. + + Stream containing a serialized graph + Uri of the graph in this store + Allowed formats + Pass false if you want to overwrite the existing data. True if you want to add the new data to the existing. + + + + + Loads a serialized graph from the given location into the current store. See allowed formats. + + Uri of the graph in this store + Location + Allowed formats + Pass false if you want to overwrite the existing data. True if you want to add the new data to the existing. + + + + + Writes a serialized graph to the given stream. See allowed formats. + + Stream to which the content should be written. + Uri fo the graph in this store + Allowed formats + + + + + + + + + + + + Creates a model group which allows for queries to be made on multiple models at once. + + + + + + + Creates a model group which allows for queries to be made on multiple models at once. + + + + + + + Closes the store. It is not usable after this call. + + + + + A store provider for dotNetRDF triple store adapters. + + + + + Create a new instance of the dotNetRDFStoreProvider class. + + + + + Create a new triple store with the given settings. + + Triple store setting variables. + + + + + A generic triple provider interface + + + + + Indicates if another triple is available + + + + + Iterates to the next triple + + + + + Subject + + + + + Predicate + + + + + Object + + + + + Number of total triples + + + + + Resets the provider + + + + + Storage that can can connect to Sparql Endpoints + + + + + + + Indicates if the store is ready to be queried. + + + + + Set this property to log the SPARQL queries which are executed on this store. + For example, to log to the console, set this property to System.Console.Write(System.String). + + + + + A store adapter for SPARQL protocol endpoints. + + + + + Create a new instance of the SparqlEndpointStoreProvider. + + + + + Create a new triple store with a specified configuration. + + Triple store specific configuration variables. + + + + + Handles query results for Stardog triple stores. + + + + + An RDF handler for Stardog triple stores. + + + + + Handles events when reading an RDF file has started and no triples have been read. + + The source of the event. + + + + Handle events when reading an RDF file has ended and all triples have been read. + + The source of the event. + Indicates if errors have occured while reading the file. + + + + Handle events when during reading of an RDF file a triple has been read. + + The source of the event. + The triple. + + + + RDF result handler for Stardog triple stores. + + + + + Result value of ASK queries. + + + + + Binding result of SELECT queries. + + + + + Create a new instance of the class StardogResultHandler. + + + + + Must be overridden by derived handlers to appropriately handle boolean results. + + Boolean result value. + + + + Must be overridden by derived handlers to appropriately handler SPARQL Results. + + SPARQL bindings. + + + + + Must be overridden by derived handlers to appropriately handle variable declarations. + + Variable name. + + + + + Indicates the result value of ASK queries. + + true or false + + + + A store adapter for Stardog databases. + + + + + Indicates if the store is connected and awaiting queries. + + + + + Create a new instance of the StardogStore class. + + URL of the host to connect to. + Username to be used when connecting. + Password to be used when connecting. + Knowledge base / database identifier. + + + + Adds a new model with the given uri to the storage. + + Uri of the model + Handle to the model + + + + Query if the model exists in the store. + OBSOLETE: This method does not list empty models. At the moment you should just call GetModel() and test for IsEmpty + + Uri of the model which is to be queried. + + + + + Executes a query on the store which does not expect a result. + + SPARQL Update to be executed. + An optional transaction. + + + + Executes a SparqlQuery on the store. + + SPARQL query string to be executed. + An optional transaction. + + + + + Executes a SparqlQuery on the store. + + SPARQL query to be executed. + An optional transaction. + + + + + Gets a handle to a model in the store. + + Model URI. + + + + + Lists all models in the store. + + All handles to existing models. + + + + Loads a serialized graph from the given stream into the current store. See allowed formats. + + Stream containing a serialized graph + Uri of the graph in this store + Allowed formats + Pass false if you want to overwrite the existing data. True if you want to add the new data to the existing. + + + + + Loads a serialized graph from the given location into the current store. See allowed formats. + + Uri of the graph in this store + Location + Allowed formats + Pass false if you want to overwrite the existing data. True if you want to add the new data to the existing. + + + + + Writes a serialized graph to the given stream. See allowed formats. + + Stream to which the content should be written. + Uri fo the graph in this store + Allowed formats + + + + + Removes model from the store. + + Uri of the model which is to be removed. + + + + Starts a transaction. The resulting transaction handle can be used to chain operations together. + + Isolation level of the operations executed in the transaction. + + + + + Invoked when a transaction is completed. + + Object which invoked the event. + Event arguments. + + + + Creates a model group which allows for queries to be made on multiple models at once. + + The list of uris of the models that should be grouped together. + + + + + Creates a model group which allows for queries to be made on multiple models at once. + + The list of model handles that should be grouped together. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Wrapper to support Stardog transactions. At present, nested transaction is NOT supported as the transaction instance is a wrapper around the StardogConnector. + + + + + + + + Instance is active and has not been committed or rolled back. + Once the transaction has been committed or rolled back, it should be disposed of. + + + + + + + + + + + + + + + + + + + + Number of pending "Additions" in the current transaction. + + + + + Number of pending "Removals" in the current transaction. + + + + + Has any pending changes. + + + + + SPARQL converter. Takes a typical Stardog "update" query and decomposes it so that it can be used with the StardogConnector's UpdateGraph method. + Does require a valid Store instance to extract the Removals from the current connection. + + + + + An RDF triple. + + + + + Get or set the subject of the triple. + + + + + Get or set the predicate of the triple. + + + + + Get or set the object of the triple. + + + + + Gets a SPARQL compliant string representation of the triple. + + A string. + + + + An RDF node. + + + + + Get or set the literal node. + + + + + Get or set the literal data type URI. + + + + + Indicates if the node is a literal. + + + + + Get a SPARQL compliant string representation of the node. + + + + + + The last SPARQL query supplied to + + + + + The URI of the Graph Additions and Deletes will be applied to. + + + + + The URI of the entity being updated/saved. + + + + + Triple instances which will be removed + + + + + Triple instances converted from UpdateTriples + + + + + Parsed TripleSet instances which constitute the Additions + + + + + Create an instance of the class StardogUpdateSparqlConvertor. + + + + + Create an instance of the class StardogUpdateSparqlConvertor. + + Startdog store instance. + + + + Given a typical SPARQL update query, it will be parsed and decomposed into the appropriate artifacts suitable to call the StardogConnector UpdateGraph method. + + SPARQL query string. + + + + Returns string based triples, separated by a ' ; ' string. If only two are found, the s value is returned as null since it is assumed that predicate and object are present. + + + + + Peaks ahead to see if there is another node present; indicated by the next non-whitespace of a < or ' character. + + + + + Extensions for the System.String type. + + + + + Extracts the instance'th string between start and end. + If start or end is null/empty then instance is assumed to always be 1 regardless of the value. + + Input string + Start delimiter + End delimiter + Instance of start/end to use. + + + + Extracts the instance'th string between start and end. + If start or end is null/empty then instance is assumed to always be 1 regardless of the value. + + Input string + Start delimiter + End delimiter + Pointer into input where parsing ended. This will be at the point AFTER end was found. + Instance of start/end to use. + + + + Returns the string between the first set of single quotes. Supports escaped single quotes but only \\' + + Input string + Pointer into input where parsing ended. This will be at the point AFTER end was found. + + + + + This class allows the usage of the Stardog store. + An IStore handle can be created by calling + StoreFactory.CreateStore("provider=stardog;host=http://localhost:5820;uid=admin;pw=admin;sid=MyStore"); + + + + + Create a new instance of the class StardogStoreProvider. + + + + + The GetStore method which will be called with the parsed configuration string. + + Store specific configuation parameters. + An instance of IStore. + + + + The IStorage interface describes the methods an RDF Storage has to implement. + + + + + Indicates if the store is ready to be queried. + + + + + Set this property to log the SPARQL queries which are executed on this store. + For example, to log to the console, set this property to System.Console.Write(System.String). + + + + + Adds a new model with the given uri to the storage. + + Uri of the model + Handle to the model + + + + Removes model from the store. + + Uri of the model which is to be removed. + + + + Removes model from the store. + + Handle to the model which is to be removed. + + + + Query if the model exists in the store. + OBSOLETE: This method does not list empty models. At the moment you should just call GetModel() and test for IsEmpty + + Uri of the model which is to be queried. + + + + + Query if the model exists in the store. + OBSOLETE: This method does not list empty models. At the moment you should just call GetModel() and test for IsEmpty + + Handle to the model which is to be queried. + + + + + Gets a handle to a model in the store. + + Uri of the model. + + + + + Lists all models in the store. + + All handles to existing models. + + + + Executes a SparqlQuery on the store. + + + + + + + + Executes a query on the store which does not expect a result. + + + + + + + Starts a transaction. The resulting transaction handle can be used to chain operations together. + + The isolation level of the transaction. + + + + + Creates a model group which allows for queries to be made on multiple models at once. + + The list of uris of the models that should be grouped together. + + + + + Creates a model group which allows for queries to be made on multiple models at once. + + The list of uris of the models that should be grouped together. + + + + + Loads a serialized graph from the given location into the current store. See allowed formats. + + Uri of the graph in this store + Location + Allowed formats + Pass false if you want to overwrite the existing data. True if you want to add the new data to the existing. + + + + + Loads a serialized graph from the given stream into the current store. See allowed formats. + + Stream containing a serialized graph + Uri of the graph in this store + Allowed formats + Pass false if you want to overwrite the existing data. True if you want to add the new data to the existing. + + + + + Writes a serialized graph to the given stream. See allowed formats. + + Stream to which the content should be written. + Uri fo the graph in this store + Allowed formats + + + + + Initializes the store from the configuration. It uses either the provided file or attempts to load from "ontologies.config" located next to the executing assembly. + For legacy reasons it also looks in the app.config file. + If the ontology files are in a different path, this can be supplied as a base path.. + + Path the configuration should be read from. + Path where the ontologies should be searched for. + + + + Initializes the store from the configuration. It uses either the provided file or attempts to load from "ontologies.config" located next to the executing assembly. + For legacy reasons it also looks in the app.config file. + If the ontology files are in a different path, this can be supplied as a base path.. + + Load a specific configuration file. + If given, this function tries to load the ontologies from this folder. + + + + Exposes methods for executing triple store specific methods. + + + + + Load storage specific configurations. + + Triple store instance. + + + + This class encapsulates the functionality of an abstract triple store. Cannot be used directly. + Use StoreFactory to get a concret implementation. + + + + + Indicates if the store is connected and awaiting queries. + + + + + Set this property to log the SPARQL queries which are executed on this store. + For example, to log to the console, set this property to System.Console.Write(System.String). + + + + + Removes model from the store. + + Uri of the model which is to be removed. + + + + Removes model from the store. + + Handle of the model which is to be removed. + + + + Query if the model exists in the store. + OBSOLETE: This method does not list empty models. At the moment you should just call GetModel() and test for IsEmpty + + Uri of the model which is to be queried. + + + + + Query if the model exists in the store. + OBSOLETE: This method does not list empty models. At the moment you should just call GetModel() and test for IsEmpty + + Handle to the model which is to be queried. + + + + + Lists all models in the store. + + All handles to existing models. + + + + Executes a SparqlQuery on the store. + + SPARQL query to be executed. + An optional transaction. + + + + + Executes a query on the store which does not expect a result. + + SPARQL Update to be executed. + An optional transaction. + + + + Starts a transaction. The resulting transaction handle can be used to chain operations together. + + Isolation level of the operations executed in the transaction. + + + + + Loads a serialized graph from the given location into the current store. See allowed formats. + + Uri of the graph in this store + Location + Allowed formats + Pass false if you want to overwrite the existing data. True if you want to add the new data to the existing. + + + + + Loads a serialized graph from the given stream into the current store. See allowed formats. + + Stream containing a serialized graph + Uri of the graph in this store + Allowed formats + Pass false if you want to overwrite the existing data. True if you want to add the new data to the existing. + + + + + Writes a serialized graph to the given stream. See allowed formats. + + Stream to which the content should be written. + Uri fo the graph in this store + Allowed formats + + + + + Initializes the store from the configuration. It uses either the provided file or attempts to load from "ontologies.config" located next to the executing assembly. + For legacy reasons it also looks in the app.config file. + If the ontology files are in a different path, this can be supplied as a base path.. + + Load a specific configuration file. + If given, this function tries to load the ontologies from this folder. + + + + Initializes the store from the configuration. It uses either the provided file or attempts to load from "ontologies.config" located next to the executing assembly. + For legacy reasons it also looks in the app.config file. + If the ontology files are in a different path, this can be supplied as a base path.. + + Path the configuration should be read from. + Path where the ontologies should be searched for. + + + + This method loads the configuration data from the given file. + This can read the old App.config and new ontologies.config files. + + Path to either ontologies.config or App.config file. + + + + + Loads Ontologies defined in the currently loaded config file into the store. + + Handle of the configuration. + Searchpath for the ontologies. + + + + Disposes this store and it's underlying connection. This object cannot be reused after disposing. + + + + + Adds a new model with the given uri to the storage. + + Uri of the model + Handle to the model + + + + Gets a handle to a model in the store. + + Model URI. + + + + + Creates a model group which allows for queries to be made on multiple models at once. + + The list of uris of the models that should be grouped together. + + + + + Creates a model group which allows for queries to be made on multiple models at once. + + The list of model handles that should be grouped together. + + + + + This is the factory for object implementing the IStore interface. + If you want to use your own store, you can load the assembly containing the provider with the LoadProvider method. + + + + + Tests if the given connection string is valid. + + + + + + + Creates a store from the given connection string. + + + + + + + Tries to read a connection string with the given name from the configuration. If no name was given, the first compatible connection string is used. + + + + + + + Creates a temporary in-memory store using the dotNetRDF provider. + + + + + + Create a store suitable for querying SPARQL protocol endpoints. + + URL of the SPARQL endpoint. + + + + + Tries to load a store provider from the given assembly. + + + + + + + Tries to load a store provider from the given assembly file. + + A assembly file info object. + + + + + Tries to load a store provider from the given assembly. + + An assembly. + + + + + This is the abstract store provider class. Implement it if you want to write your own store provider. + + + + + The name of the store. + + + + + All valid configuration options + + + + + The constructor of the store provider + + + + + The GetStore method which will be called with the parsed configuration string. + + Store specific configuation parameters. + An instance of IStore. + + + + This class can be used to load or update ontologies in stores. It provides convinence methods to load directly from the ontologies.config file. + + + + + Create a new instance of the StoreUpdater class. + + The store you want to update. + A directory used as base path. + + + + This method loads the given ontologies into the provided store. + A model will be created for each ontology. If it already exists, it wil be replaced. + + A collection of ontologies to be loaded. + + + + Gets an absolute path from a location relative to the triple store instance. + + A relative path. + + + + + This method can be used to load storage specific configuration. + + + + + + Handle for transaction events. + + Object which raised the event. + Event arguments. + + + + Exposes a repository which supports transactions. + + + + + The isolation level of the transaction. + + + + + Commit the transaction. + + + + + Rolls the transaction back. + + + + + Will be raised if transaction finishes. + + + + + Interface for a transactional object + + + + + Persist any changes to the object. + + + + + Discard any changes to the object. + + + + + This class encapsulates arguments for transaction event. + + + + + Indicates that the transaction finished with a commit. + + + + + Indicates that the transaction finished with a rollback. + + + + + Create a new transaction event object. + + Pass true to indicate that a commit happened. Pass false to indicate that a rollback happend. + + + + This class extends the framework Uri class to also include fragments for + equality testing. + + + + + Creates an UriRef from an Uri + + + + + + Create an UriRef from a string. + + + + + + Creates an UriRef from a string with a given UriKind. + + + + + + + Creates an UriRef from a base uri and a relative uri as string. + + + + + + + Tests the equality of two UriRefs. + + + + + + + Override of GetHashCode which factors the fragment in. + + + + + + Generates a globally unique resource identifier in the Semiodesk namespace: <urn:uuid:{GUID}/> + + A Uniform Resource Identifier. + + + + A Uniform Resource Name (URN). + + + + + Create a new instance of a URN from an identifier. + + Identifier associated with a URN namespace. + + + + Provides functionality for the serialization and deserialization of .NET + objects to XML Schema encoded strings. + + + + + XSD URI vocabulary. + + + + + Maps .NET types to XSD type URIs. + + + + + Maps XSD type URIs to .NET types. + + + + + Maps .NET types to object serialization delegates. + + + + + Maps XSD type URIs to object deserialization delegates. + + + + + Provides the XML Schema type URI for a given .NET type. + + A .NET type object. + A XML Schema type URI. + + + + Indicates if there is a registered XML Schema type URI for the given .NET type. + + A .NET type object. + true if there is a XML schema type, false otherwise. + + + + Provides the XML Schema type URI for a given .NET type. + + A xsd type uri. + A XML Schema type URI. + + + + The object serialization delegate + + + + + + + Serializes an object to an XML Schema encoded string. + + + + + + + Serializes an object forcd to a given type to an XML Schema encoded string. + + + + + + + + Serialize an IResource + + + + + + + Serialize an Uri + + + + + + + Serialize a string + + + + + + + Serialize an array of strings + + + + + + + Serialize a tuple consisting of a string and its associated culture + + + + + + + Serialize a DateTime + + + + + + + Serialize a byte array + + + + + + + Serialize a bool + + + + + + + Serialize an Int16 + + + + + + + Serialize an Int32 + + + + + + + Serialize an Int64 + + + + + + + Serialize an Uint16 + + + + + + + Serialize an Uint32 + + + + + + + Serialize an Uint64 + + + + + + + Serialize a decimal + + + + + + + Serialize a double + + + + + + + Serialize a float + + + + + + + Deserialization delegate, format for deserialization functions. + + + + + + + Deserialize string, nothing to do. + + The string + The string + + + + Deserialize string with given type uri. + + The value as string. + The xsd type. + The value in its correct type. + + + + Deserialize an int16 from a string. + + The serialized int16 + An int16 + + + + Deserialize an int32 from a string. + + The serialized int32 + a int32 value + + + + Deserialize an int64 from a string. + + The serialized int64 + A int64 value + + + + Deserialize an uint6 from a string. + + The serialized int64 + A uint16 value + + + + Deserialize an int32 from a string. + + The serialized int32 + A int32 value + + + + Deserialize an uint64 from a string. + + The serialized uint64 + A uint64 value + + + + Deserialize a bool from a string. + + The serialized bool + A bool value + + + + Deserialize a decimal from a string. + + The serialized decimal + A decimal value + + + + Deserialize a double from a string. + + The serialized double + A double value + + + + Deserialize a single from a string. + + The serialized single + A single value + + + + Deserialize a DateTime from a string. + + The serialized DateTime + A DateTime value + + + + Deserialize a Resource from a string. + + The serialized Resource + A Resource value + + + + Deserialize a uri from a string. + + The serialized uri + A uri value + + + + Deserialize a ByteArray from a string. + + The serialized ByteArray + A ByteArray value + + + + Deserialize a XmlNode from a string. + + The serialized XmlNode + A XmlNode value + + + + Deserialize a LiteralNode from a string. + + The serialized LiteralNode + A LiteralNode value + + + diff --git a/tests/Trinity.Tests.Virtuoso/bin/Release/net472/Targets/Semiodesk.Trinity.targets b/tests/Trinity.Tests.Virtuoso/bin/Release/net472/Targets/Semiodesk.Trinity.targets new file mode 100644 index 0000000..9b0ba79 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Release/net472/Targets/Semiodesk.Trinity.targets @@ -0,0 +1,31 @@ + + + + + + Full + + + + + + + + + + + + $(CoreCompileDependsOn);GenerateOntologyTarget + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/Trinity.Tests.Virtuoso/bin/Release/net472/custom.config b/tests/Trinity.Tests.Virtuoso/bin/Release/net472/custom.config new file mode 100644 index 0000000..3261e54 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Release/net472/custom.config @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/Trinity.Tests.Virtuoso/bin/Release/net472/nunit_random_seed.tmp b/tests/Trinity.Tests.Virtuoso/bin/Release/net472/nunit_random_seed.tmp new file mode 100644 index 0000000..9303f84 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Release/net472/nunit_random_seed.tmp @@ -0,0 +1 @@ +281328260 \ No newline at end of file diff --git a/tests/Trinity.Tests.Virtuoso/bin/Release/net472/ontologies-test.config b/tests/Trinity.Tests.Virtuoso/bin/Release/net472/ontologies-test.config new file mode 100644 index 0000000..6e04670 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Release/net472/ontologies-test.config @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/Trinity.Tests.Virtuoso/bin/Release/net472/ontologies.config b/tests/Trinity.Tests.Virtuoso/bin/Release/net472/ontologies.config new file mode 100644 index 0000000..370a980 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Release/net472/ontologies.config @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/Trinity.Tests.Virtuoso/bin/Release/net472/without_store.config b/tests/Trinity.Tests.Virtuoso/bin/Release/net472/without_store.config new file mode 100644 index 0000000..76533dd --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Release/net472/without_store.config @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/Trinity.Tests.Virtuoso/bin/Release/nunit.framework.xml b/tests/Trinity.Tests.Virtuoso/bin/Release/nunit.framework.xml new file mode 100644 index 0000000..e871828 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Release/nunit.framework.xml @@ -0,0 +1,20670 @@ + + + + nunit.framework + + + + + The different targets a test action attribute can be applied to + + + + + Default target, which is determined by where the action attribute is attached + + + + + Target a individual test case + + + + + Target a suite of test cases + + + + + DefaultTestAssemblyBuilder loads a single assembly and builds a TestSuite + containing test fixtures present in the assembly. + + + + + The default suite builder used by the test assembly builder. + + + + + Initializes a new instance of the class. + + + + + Build a suite of tests from a provided assembly + + The assembly from which tests are to be built + A dictionary of options to use in building the suite + + A TestSuite containing the tests found in the assembly + + + + + Build a suite of tests given the name or the location of an assembly + + The name or the location of the assembly. + A dictionary of options to use in building the suite + + A TestSuite containing the tests found in the assembly + + + + + FrameworkController provides a facade for use in loading, browsing + and running tests without requiring a reference to the NUnit + framework. All calls are encapsulated in constructors for + this class and its nested classes, which only require the + types of the Common Type System as arguments. + + The controller supports four actions: Load, Explore, Count and Run. + They are intended to be called by a driver, which should allow for + proper sequencing of calls. Load must be called before any of the + other actions. The driver may support other actions, such as + reload on run, by combining these calls. + + + + + Construct a FrameworkController using the default builder and runner. + + The AssemblyName or path to the test assembly + A prefix used for all test ids created under this controller. + A Dictionary of settings to use in loading and running the tests + + + + Construct a FrameworkController using the default builder and runner. + + The test assembly + A prefix used for all test ids created under this controller. + A Dictionary of settings to use in loading and running the tests + + + + Construct a FrameworkController, specifying the types to be used + for the runner and builder. This constructor is provided for + purposes of development. + + The full AssemblyName or the path to the test assembly + A prefix used for all test ids created under this controller. + A Dictionary of settings to use in loading and running the tests + The Type of the test runner + The Type of the test builder + + + + Construct a FrameworkController, specifying the types to be used + for the runner and builder. This constructor is provided for + purposes of development. + + The test assembly + A prefix used for all test ids created under this controller. + A Dictionary of settings to use in loading and running the tests + The Type of the test runner + The Type of the test builder + + + + Gets the ITestAssemblyBuilder used by this controller instance. + + The builder. + + + + Gets the ITestAssemblyRunner used by this controller instance. + + The runner. + + + + Gets the AssemblyName or the path for which this FrameworkController was created + + + + + Gets the Assembly for which this + + + + + Gets a dictionary of settings for the FrameworkController + + + + + Loads the tests in the assembly + + + + + + Returns info about the tests in an assembly + + A string containing the XML representation of the filter to use + The XML result of exploring the tests + + + + Runs the tests in an assembly + + A string containing the XML representation of the filter to use + The XML result of the test run + + + + Runs the tests in an assembly synchronously reporting back the test results through the callback + or through the return value + + The callback that receives the test results + A string containing the XML representation of the filter to use + The XML result of the test run + + + + Runs the tests in an assembly asynchronously reporting back the test results through the callback + + The callback that receives the test results + A string containing the XML representation of the filter to use + + + + Stops the test run + + True to force the stop, false for a cooperative stop + + + + Counts the number of test cases in the loaded TestSuite + + A string containing the XML representation of the filter to use + The number of tests + + + + Inserts environment element + + Target node + The new node + + + + Inserts settings element + + Target node + Settings dictionary + The new node + + + + FrameworkControllerAction is the base class for all actions + performed against a FrameworkController. + + + + + LoadTestsAction loads a test into the FrameworkController + + + + + LoadTestsAction loads the tests in an assembly. + + The controller. + The callback handler. + + + + ExploreTestsAction returns info about the tests in an assembly + + + + + Initializes a new instance of the class. + + The controller for which this action is being performed. + Filter used to control which tests are included (NYI) + The callback handler. + + + + CountTestsAction counts the number of test cases in the loaded TestSuite + held by the FrameworkController. + + + + + Construct a CountsTestAction and perform the count of test cases. + + A FrameworkController holding the TestSuite whose cases are to be counted + A string containing the XML representation of the filter to use + A callback handler used to report results + + + + RunTestsAction runs the loaded TestSuite held by the FrameworkController. + + + + + Construct a RunTestsAction and run all tests in the loaded TestSuite. + + A FrameworkController holding the TestSuite to run + A string containing the XML representation of the filter to use + A callback handler used to report results + + + + RunAsyncAction initiates an asynchronous test run, returning immediately + + + + + Construct a RunAsyncAction and run all tests in the loaded TestSuite. + + A FrameworkController holding the TestSuite to run + A string containing the XML representation of the filter to use + A callback handler used to report results + + + + StopRunAction stops an ongoing run. + + + + + Construct a StopRunAction and stop any ongoing run. If no + run is in process, no error is raised. + + The FrameworkController for which a run is to be stopped. + True the stop should be forced, false for a cooperative stop. + >A callback handler used to report results + A forced stop will cause threads and processes to be killed as needed. + + + + The ITestAssemblyBuilder interface is implemented by a class + that is able to build a suite of tests given an assembly or + an assembly filename. + + + + + Build a suite of tests from a provided assembly + + The assembly from which tests are to be built + A dictionary of options to use in building the suite + A TestSuite containing the tests found in the assembly + + + + Build a suite of tests given the filename of an assembly + + The filename of the assembly from which tests are to be built + A dictionary of options to use in building the suite + A TestSuite containing the tests found in the assembly + + + + The ITestAssemblyRunner interface is implemented by classes + that are able to execute a suite of tests loaded + from an assembly. + + + + + Gets the tree of loaded tests, or null if + no tests have been loaded. + + + + + Gets the tree of test results, if the test + run is completed, otherwise null. + + + + + Indicates whether a test has been loaded + + + + + Indicates whether a test is currently running + + + + + Indicates whether a test run is complete + + + + + Loads the tests found in an Assembly, returning an + indication of whether or not the load succeeded. + + File name of the assembly to load + Dictionary of options to use in loading the test + An ITest representing the loaded tests + + + + Loads the tests found in an Assembly, returning an + indication of whether or not the load succeeded. + + The assembly to load + Dictionary of options to use in loading the test + An ITest representing the loaded tests + + + + Count Test Cases using a filter + + The filter to apply + The number of test cases found + + + + Explore the test cases using a filter + + The filter to apply + Test Assembly with test cases that matches the filter + + + + Run selected tests and return a test result. The test is run synchronously, + and the listener interface is notified as it progresses. + + Interface to receive ITestListener notifications. + A test filter used to select tests to be run + + + + Run selected tests asynchronously, notifying the listener interface as it progresses. + + Interface to receive EventListener notifications. + A test filter used to select tests to be run + + + + Wait for the ongoing run to complete. + + Time to wait in milliseconds + True if the run completed, otherwise false + + + + Signal any test run that is in process to stop. Return without error if no test is running. + + If true, kill any test-running threads + + + + Implementation of ITestAssemblyRunner + + + + + Initializes a new instance of the class. + + The builder. + + + + Gets the default level of parallel execution (worker threads) + + + + + The tree of tests that was loaded by the builder + + + + + The test result, if a run has completed + + + + + Indicates whether a test is loaded + + + + + Indicates whether a test is running + + + + + Indicates whether a test run is complete + + + + + Our settings, specified when loading the assembly + + + + + The top level WorkItem created for the assembly as a whole + + + + + The TestExecutionContext for the top level WorkItem + + + + + Loads the tests found in an Assembly + + File name or path of the assembly to load + Dictionary of option settings for loading the assembly + A Test Assembly containing all loaded tests + + + + Loads the tests found in an Assembly + + The assembly to load + Dictionary of option settings for loading the assembly + A Test Assembly containing all loaded tests + + + + Count Test Cases using a filter + + The filter to apply + The number of test cases found + + + + Explore the test cases using a filter + + The filter to apply + Test Assembly with test cases that matches the filter + + + + Run selected tests and return a test result. The test is run synchronously, + and the listener interface is notified as it progresses. + + Interface to receive EventListener notifications. + A test filter used to select tests to be run + The test results from the run + + + + Run selected tests asynchronously, notifying the listener interface as it progresses. + + Interface to receive EventListener notifications. + A test filter used to select tests to be run + + RunAsync is a template method, calling various abstract and + virtual methods to be overridden by derived classes. + + + + + Wait for the ongoing run to complete. + + Time to wait in milliseconds + True if the run completed, otherwise false + + + + Signal any test run that is in process to stop. Return without error if no test is running. + + If true, kill any tests that are currently running + + + + Initiate the test run. + + + + + Create the initial TestExecutionContext used to run tests + + The ITestListener specified in the RunAsync call + + + + Handle the Completed event for the top level work item + + + + + Executes the action within an + which ensures the is cleaned up + suitably at the end of the test run. This method only has an effect running + the full .NET Framework. + + + + + The Assert class contains a collection of static methods that + implement the most common assertions used in NUnit. + + + The Assert class contains a collection of static methods that + implement the most common assertions used in NUnit. + + + + + Verifies that the first int is greater than the second + int. If it is not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the first int is greater than the second + int. If it is not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + + + + Verifies that the first value is greater than the second + value. If it is not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the first value is greater than the second + value. If it is not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + + + + Verifies that the first value is greater than the second + value. If it is not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the first value is greater than the second + value. If it is not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + + + + Verifies that the first value is greater than the second + value. If it is not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the first value is greater than the second + value. If it is not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + + + + Verifies that the first value is greater than the second + value. If it is not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the first value is greater than the second + value. If it is not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + + + + Verifies that the first value is greater than the second + value. If it is not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the first value is greater than the second + value. If it is not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + + + + Verifies that the first value is greater than the second + value. If it is not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the first value is greater than the second + value. If it is not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + + + + Verifies that the first value is greater than the second + value. If it is not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the first value is greater than the second + value. If it is not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + + + + Verifies that the first value is less than the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the first value is less than the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + + + + Verifies that the first value is less than the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the first value is less than the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + + + + Verifies that the first value is less than the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the first value is less than the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + + + + Verifies that the first value is less than the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the first value is less than the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + + + + Verifies that the first value is less than the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the first value is less than the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + + + + Verifies that the first value is less than the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the first value is less than the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + + + + Verifies that the first value is less than the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the first value is less than the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + + + + Verifies that the first value is less than the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the first value is less than the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + + + + Verifies that the first value is greater than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the first value is greater than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + + + + Verifies that the first value is greater than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the first value is greater than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + + + + Verifies that the first value is greater than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the first value is greater than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + + + + Verifies that the first value is greater than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the first value is greater than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + + + + Verifies that the first value is greater than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the first value is greater than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + + + + Verifies that the first value is greater than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the first value is greater than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + + + + Verifies that the first value is greater than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the first value is greater than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + + + + Verifies that the first value is greater than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the first value is greater than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + + + + Verifies that the first value is less than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the first value is less than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + + + + Verifies that the first value is less than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the first value is less than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + + + + Verifies that the first value is less than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the first value is less than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + + + + Verifies that the first value is less than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the first value is less than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + + + + Verifies that the first value is less than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the first value is less than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + + + + Verifies that the first value is less than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the first value is less than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + + + + Verifies that the first value is less than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the first value is less than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + + + + Verifies that the first value is less than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the first value is less than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + + + + Asserts that a condition is true. If the condition is false the method throws + an . + + The evaluated condition + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that a condition is true. If the condition is false the method throws + an . + + The evaluated condition + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that a condition is true. If the condition is false the method throws + an . + + The evaluated condition + + + + Asserts that a condition is true. If the condition is false the method throws + an . + + The evaluated condition + + + + Asserts that a condition is true. If the condition is false the method throws + an . + + The evaluated condition + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that a condition is true. If the condition is false the method throws + an . + + The evaluated condition + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that a condition is true. If the condition is false the method throws + an . + + The evaluated condition + + + + Asserts that a condition is true. If the condition is false the method throws + an . + + The evaluated condition + + + + Asserts that a condition is false. If the condition is true the method throws + an . + + The evaluated condition + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that a condition is false. If the condition is true the method throws + an . + + The evaluated condition + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that a condition is false. If the condition is true the method throws + an . + + The evaluated condition + + + + Asserts that a condition is false. If the condition is true the method throws + an . + + The evaluated condition + + + + Asserts that a condition is false. If the condition is true the method throws + an . + + The evaluated condition + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that a condition is false. If the condition is true the method throws + an . + + The evaluated condition + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that a condition is false. If the condition is true the method throws + an . + + The evaluated condition + + + + Asserts that a condition is false. If the condition is true the method throws + an . + + The evaluated condition + + + + Verifies that the object that is passed in is not equal to null + If the object is null then an + is thrown. + + The object that is to be tested + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the object that is passed in is not equal to null + If the object is null then an + is thrown. + + The object that is to be tested + + + + Verifies that the object that is passed in is not equal to null + If the object is null then an + is thrown. + + The object that is to be tested + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the object that is passed in is not equal to null + If the object is null then an + is thrown. + + The object that is to be tested + + + + Verifies that the object that is passed in is equal to null + If the object is not null then an + is thrown. + + The object that is to be tested + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the object that is passed in is equal to null + If the object is not null then an + is thrown. + + The object that is to be tested + + + + Verifies that the object that is passed in is equal to null + If the object is not null then an + is thrown. + + The object that is to be tested + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the object that is passed in is equal to null + If the object is not null then an + is thrown. + + The object that is to be tested + + + + Verifies that the double that is passed in is an NaN value. + If the object is not NaN then an + is thrown. + + The value that is to be tested + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the double that is passed in is an NaN value. + If the object is not NaN then an + is thrown. + + The value that is to be tested + + + + Verifies that the double that is passed in is an NaN value. + If the object is not NaN then an + is thrown. + + The value that is to be tested + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that the double that is passed in is an NaN value. + If the object is not NaN then an + is thrown. + + The value that is to be tested + + + + Assert that a string is empty - that is equal to string.Empty + + The string to be tested + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Assert that a string is empty - that is equal to string.Empty + + The string to be tested + + + + Assert that an array, list or other collection is empty + + An array, list or other collection implementing ICollection + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Assert that an array, list or other collection is empty + + An array, list or other collection implementing ICollection + + + + Assert that a string is not empty - that is not equal to string.Empty + + The string to be tested + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Assert that a string is not empty - that is not equal to string.Empty + + The string to be tested + + + + Assert that an array, list or other collection is not empty + + An array, list or other collection implementing ICollection + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Assert that an array, list or other collection is not empty + + An array, list or other collection implementing ICollection + + + + Asserts that an int is zero. + + The number to be examined + + + + Asserts that an int is zero. + + The number to be examined + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that an unsigned int is zero. + + The number to be examined + + + + Asserts that an unsigned int is zero. + + The number to be examined + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that a Long is zero. + + The number to be examined + + + + Asserts that a Long is zero. + + The number to be examined + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that an unsigned Long is zero. + + The number to be examined + + + + Asserts that an unsigned Long is zero. + + The number to be examined + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that a decimal is zero. + + The number to be examined + + + + Asserts that a decimal is zero. + + The number to be examined + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that a double is zero. + + The number to be examined + + + + Asserts that a double is zero. + + The number to be examined + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that a float is zero. + + The number to be examined + + + + Asserts that a float is zero. + + The number to be examined + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that an int is not zero. + + The number to be examined + + + + Asserts that an int is not zero. + + The number to be examined + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that an unsigned int is not zero. + + The number to be examined + + + + Asserts that an unsigned int is not zero. + + The number to be examined + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that a Long is not zero. + + The number to be examined + + + + Asserts that a Long is not zero. + + The number to be examined + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that an unsigned Long is not zero. + + The number to be examined + + + + Asserts that an unsigned Long is not zero. + + The number to be examined + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that a decimal is zero. + + The number to be examined + + + + Asserts that a decimal is zero. + + The number to be examined + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that a double is zero. + + The number to be examined + + + + Asserts that a double is zero. + + The number to be examined + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that a float is zero. + + The number to be examined + + + + Asserts that a float is zero. + + The number to be examined + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that an int is positive. + + The number to be examined + + + + Asserts that an int is positive. + + The number to be examined + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that an unsigned int is positive. + + The number to be examined + + + + Asserts that an unsigned int is positive. + + The number to be examined + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that a Long is positive. + + The number to be examined + + + + Asserts that a Long is positive. + + The number to be examined + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that an unsigned Long is positive. + + The number to be examined + + + + Asserts that an unsigned Long is positive. + + The number to be examined + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that a decimal is positive. + + The number to be examined + + + + Asserts that a decimal is positive. + + The number to be examined + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that a double is positive. + + The number to be examined + + + + Asserts that a double is positive. + + The number to be examined + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that a float is positive. + + The number to be examined + + + + Asserts that a float is positive. + + The number to be examined + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that an int is negative. + + The number to be examined + + + + Asserts that an int is negative. + + The number to be examined + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that an unsigned int is negative. + + The number to be examined + + + + Asserts that an unsigned int is negative. + + The number to be examined + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that a Long is negative. + + The number to be examined + + + + Asserts that a Long is negative. + + The number to be examined + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that an unsigned Long is negative. + + The number to be examined + + + + Asserts that an unsigned Long is negative. + + The number to be examined + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that a decimal is negative. + + The number to be examined + + + + Asserts that a decimal is negative. + + The number to be examined + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that a double is negative. + + The number to be examined + + + + Asserts that a double is negative. + + The number to be examined + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that a float is negative. + + The number to be examined + + + + Asserts that a float is negative. + + The number to be examined + The message to display in case of failure + Array of objects to be used in formatting the message + + + + DO NOT USE! Use Assert.AreEqual(...) instead. + The Equals method throws an InvalidOperationException. This is done + to make sure there is no mistake by calling this function. + + + + + + + DO NOT USE! + The ReferenceEquals method throws an InvalidOperationException. This is done + to make sure there is no mistake by calling this function. + + + + + + + Throws a with the message and arguments + that are passed in. This allows a test to be cut short, with a result + of success returned to NUnit. + + The message to initialize the with. + Arguments to be used in formatting the message + + + + Throws a with the message and arguments + that are passed in. This allows a test to be cut short, with a result + of success returned to NUnit. + + The message to initialize the with. + + + + Throws a with the message and arguments + that are passed in. This allows a test to be cut short, with a result + of success returned to NUnit. + + + + + Throws an with the message and arguments + that are passed in. This is used by the other Assert functions. + + The message to initialize the with. + Arguments to be used in formatting the message + + + + Throws an with the message that is + passed in. This is used by the other Assert functions. + + The message to initialize the with. + + + + Throws an . + This is used by the other Assert functions. + + + + + Issues a warning using the message and arguments provided. + + The message to display. + Arguments to be used in formatting the message + + + + Issues a warning using the message provided. + + The message to display. + + + + Throws an with the message and arguments + that are passed in. This causes the test to be reported as ignored. + + The message to initialize the with. + Arguments to be used in formatting the message + + + + Throws an with the message that is + passed in. This causes the test to be reported as ignored. + + The message to initialize the with. + + + + Throws an . + This causes the test to be reported as ignored. + + + + + Throws an with the message and arguments + that are passed in. This causes the test to be reported as inconclusive. + + The message to initialize the with. + Arguments to be used in formatting the message + + + + Throws an with the message that is + passed in. This causes the test to be reported as inconclusive. + + The message to initialize the with. + + + + Throws an . + This causes the test to be reported as Inconclusive. + + + + + Asserts that an object is contained in a collection. + + The expected object + The collection to be examined + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that an object is contained in a collection. + + The expected object + The collection to be examined + + + + Wraps code containing a series of assertions, which should all + be executed, even if they fail. Failed results are saved and + reported at the end of the code block. + + A TestDelegate to be executed in Multiple Assertion mode. + + + + Wraps code containing a series of assertions, which should all + be executed, even if they fail. Failed results are saved and + reported at the end of the code block. + + A TestDelegate to be executed in Multiple Assertion mode. + + + + Verifies that two doubles are equal considering a delta. If the + expected value is infinity then the delta value is ignored. If + they are not equal then an is + thrown. + + The expected value + The actual value + The maximum acceptable difference between the + the expected and the actual + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that two doubles are equal considering a delta. If the + expected value is infinity then the delta value is ignored. If + they are not equal then an is + thrown. + + The expected value + The actual value + The maximum acceptable difference between the + the expected and the actual + + + + Verifies that two doubles are equal considering a delta. If the + expected value is infinity then the delta value is ignored. If + they are not equal then an is + thrown. + + The expected value + The actual value + The maximum acceptable difference between the + the expected and the actual + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that two doubles are equal considering a delta. If the + expected value is infinity then the delta value is ignored. If + they are not equal then an is + thrown. + + The expected value + The actual value + The maximum acceptable difference between the + the expected and the actual + + + + Verifies that two objects are equal. Two objects are considered + equal if both are null, or if both have the same value. NUnit + has special semantics for some object types. + If they are not equal an is thrown. + + The value that is expected + The actual value + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that two objects are equal. Two objects are considered + equal if both are null, or if both have the same value. NUnit + has special semantics for some object types. + If they are not equal an is thrown. + + The value that is expected + The actual value + + + + Verifies that two objects are not equal. Two objects are considered + equal if both are null, or if both have the same value. NUnit + has special semantics for some object types. + If they are equal an is thrown. + + The value that is expected + The actual value + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that two objects are not equal. Two objects are considered + equal if both are null, or if both have the same value. NUnit + has special semantics for some object types. + If they are equal an is thrown. + + The value that is expected + The actual value + + + + Asserts that two objects refer to the same object. If they + are not the same an is thrown. + + The expected object + The actual object + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that two objects refer to the same object. If they + are not the same an is thrown. + + The expected object + The actual object + + + + Asserts that two objects do not refer to the same object. If they + are the same an is thrown. + + The expected object + The actual object + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that two objects do not refer to the same object. If they + are the same an is thrown. + + The expected object + The actual object + + + + Helper for Assert.AreEqual(double expected, double actual, ...) + allowing code generation to work consistently. + + The expected value + The actual value + The maximum acceptable difference between the + the expected and the actual + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Verifies that an async delegate throws a particular exception when called. + + A constraint to be satisfied by the exception + A TestSnippet delegate + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Verifies that an async delegate throws a particular exception when called. + + A constraint to be satisfied by the exception + A TestSnippet delegate + + + + Verifies that an async delegate throws a particular exception when called. + + The exception Type expected + A TestDelegate + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Verifies that an async delegate throws a particular exception when called. + + The exception Type expected + A TestDelegate + + + + Verifies that an async delegate throws a particular exception when called. + + Type of the expected exception + A TestDelegate + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Verifies that an async delegate throws a particular exception when called. + + Type of the expected exception + A TestDelegate + + + + Verifies that an async delegate throws an exception when called + and returns it. + + A TestDelegate + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Verifies that an async delegate throws an exception when called + and returns it. + + A TestDelegate + + + + Verifies that an async delegate throws an exception of a certain Type + or one derived from it when called and returns it. + + The expected Exception Type + A TestDelegate + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Verifies that an async delegate throws an exception of a certain Type + or one derived from it when called and returns it. + + The expected Exception Type + A TestDelegate + + + + Verifies that an async delegate throws an exception of a certain Type + or one derived from it when called and returns it. + + A TestDelegate + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Verifies that an async delegate throws an exception of a certain Type + or one derived from it when called and returns it. + + A TestDelegate + + + + Verifies that an async delegate does not throw an exception + + A TestDelegate + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Verifies that an async delegate does not throw an exception. + + A TestDelegate + + + + Verifies that a delegate throws a particular exception when called. + + A constraint to be satisfied by the exception + A TestSnippet delegate + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Verifies that a delegate throws a particular exception when called. + + A constraint to be satisfied by the exception + A TestSnippet delegate + + + + Verifies that a delegate throws a particular exception when called. + + The exception Type expected + A TestDelegate + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Verifies that a delegate throws a particular exception when called. + + The exception Type expected + A TestDelegate + + + + Verifies that a delegate throws a particular exception when called. + + Type of the expected exception + A TestDelegate + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Verifies that a delegate throws a particular exception when called. + + Type of the expected exception + A TestDelegate + + + + Verifies that a delegate throws an exception when called + and returns it. + + A TestDelegate + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Verifies that a delegate throws an exception when called + and returns it. + + A TestDelegate + + + + Verifies that a delegate throws an exception of a certain Type + or one derived from it when called and returns it. + + The expected Exception Type + A TestDelegate + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Verifies that a delegate throws an exception of a certain Type + or one derived from it when called and returns it. + + The expected Exception Type + A TestDelegate + + + + Verifies that a delegate throws an exception of a certain Type + or one derived from it when called and returns it. + + A TestDelegate + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Verifies that a delegate throws an exception of a certain Type + or one derived from it when called and returns it. + + A TestDelegate + + + + Verifies that a delegate does not throw an exception + + A TestDelegate + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Verifies that a delegate does not throw an exception. + + A TestDelegate + + + + Asserts that a condition is true. If the condition is false the method throws + an . + + The evaluated condition + The message to display if the condition is false + Arguments to be used in formatting the message + + + + Asserts that a condition is true. If the condition is false the method throws + an . + + The evaluated condition + + + + Asserts that a condition is true. If the condition is false the method throws + an . + + The evaluated condition + A function to build the message included with the Exception + + + + Asserts that a condition is true. If the condition is false the method throws + an . + + A lambda that returns a Boolean + The message to display if the condition is false + Arguments to be used in formatting the message + + + + Asserts that a condition is true. If the condition is false the method throws + an . + + A lambda that returns a Boolean + + + + Asserts that a condition is true. If the condition is false the method throws + an . + + A lambda that returns a Boolean + A function to build the message included with the Exception + + + + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and throwing an assertion exception on failure. + + The Type being compared. + An ActualValueDelegate returning the value to be tested + A Constraint expression to be applied + + + + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and throwing an assertion exception on failure. + + The Type being compared. + An ActualValueDelegate returning the value to be tested + A Constraint expression to be applied + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and throwing an assertion exception on failure. + + The Type being compared. + An ActualValueDelegate returning the value to be tested + A Constraint expression to be applied + A function to build the message included with the Exception + + + + Asserts that the code represented by a delegate throws an exception + that satisfies the constraint provided. + + A TestDelegate to be executed + A Constraint expression to be applied + + + + Asserts that the code represented by a delegate throws an exception + that satisfies the constraint provided. + + A TestDelegate to be executed + A Constraint expression to be applied + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Asserts that the code represented by a delegate throws an exception + that satisfies the constraint provided. + + A TestDelegate to be executed + A Constraint expression to be applied + A function to build the message included with the Exception + + + + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and throwing an assertion exception on failure. + + The Type being compared. + The actual value to test + A Constraint expression to be applied + + + + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and throwing an assertion exception on failure. + + The Type being compared. + The actual value to test + A Constraint expression to be applied + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and throwing an assertion exception on failure. + + The Type being compared. + The actual value to test + A Constraint expression to be applied + A function to build the message included with the Exception + + + + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and throwing an assertion exception on failure. + Used as a synonym for That in rare cases where a private setter + causes a Visual Basic compilation error. + + The actual value to test + A Constraint expression to be applied + + + + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and throwing an assertion exception on failure. + Used as a synonym for That in rare cases where a private setter + causes a Visual Basic compilation error. + + + This method is provided for use by VB developers needing to test + the value of properties with private setters. + + The actual value to test + A Constraint expression to be applied + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Asserts that an object may be assigned a value of a given Type. + + The expected Type. + The object under examination + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that an object may be assigned a value of a given Type. + + The expected Type. + The object under examination + + + + Asserts that an object may be assigned a value of a given Type. + + The expected Type. + The object under examination + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that an object may be assigned a value of a given Type. + + The expected Type. + The object under examination + + + + Asserts that an object may not be assigned a value of a given Type. + + The expected Type. + The object under examination + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that an object may not be assigned a value of a given Type. + + The expected Type. + The object under examination + + + + Asserts that an object may not be assigned a value of a given Type. + + The expected Type. + The object under examination + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that an object may not be assigned a value of a given Type. + + The expected Type. + The object under examination + + + + Asserts that an object is an instance of a given type. + + The expected Type + The object being examined + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that an object is an instance of a given type. + + The expected Type + The object being examined + + + + Asserts that an object is an instance of a given type. + + The expected Type + The object being examined + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that an object is an instance of a given type. + + The expected Type + The object being examined + + + + Asserts that an object is not an instance of a given type. + + The expected Type + The object being examined + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that an object is not an instance of a given type. + + The expected Type + The object being examined + + + + Asserts that an object is not an instance of a given type. + + The expected Type + The object being examined + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that an object is not an instance of a given type. + + The expected Type + The object being examined + + + + Delegate used by tests that execute code and + capture any thrown exception. + + + + + Delegate used by tests that execute async code and + capture any thrown exception. + + + + + AssertionHelper is an optional base class for user tests, + allowing the use of shorter names in making asserts. + + + + + Asserts that a condition is true. If the condition is false the method throws + an . Works Identically to + . + + The evaluated condition + The message to display if the condition is false + Arguments to be used in formatting the message + + + + Asserts that a condition is true. If the condition is false the method throws + an . Works Identically to . + + The evaluated condition + + + + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and throwing an assertion exception on failure. + + A Constraint expression to be applied + An ActualValueDelegate returning the value to be tested + + + + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and throwing an assertion exception on failure. + + An ActualValueDelegate returning the value to be tested + A Constraint expression to be applied + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Asserts that the code represented by a delegate throws an exception + that satisfies the constraint provided. + + A TestDelegate to be executed + A Constraint expression to be applied + + + + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and throwing an assertion exception on failure. + + A Constraint expression to be applied + The actual value to test + + + + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and throwing an assertion exception on failure. + + A Constraint expression to be applied + The actual value to test + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Returns a ListMapper based on a collection. + + The original collection + + + + + Returns a ConstraintExpression that negates any + following constraint. + + + + + Returns a ConstraintExpression that negates any + following constraint. + + + + + Returns a ConstraintExpression, which will apply + the following constraint to all members of a collection, + succeeding if all of them succeed. + + + + + Returns a ConstraintExpression, which will apply + the following constraint to all members of a collection, + succeeding if at least one of them succeeds. + + + + + Returns a ConstraintExpression, which will apply + the following constraint to all members of a collection, + succeeding if all of them fail. + + + + + Returns a ConstraintExpression, which will apply + the following constraint to all members of a collection, + succeeding only if a specified number of them succeed. + + + + + Returns a new PropertyConstraintExpression, which will either + test for the existence of the named property on the object + being tested or apply any following constraint to that property. + + + + + Returns a new ConstraintExpression, which will apply the following + constraint to the Length property of the object being tested. + + + + + Returns a new ConstraintExpression, which will apply the following + constraint to the Count property of the object being tested. + + + + + Returns a new ConstraintExpression, which will apply the following + constraint to the Message property of the object being tested. + + + + + Returns a new ConstraintExpression, which will apply the following + constraint to the InnerException property of the object being tested. + + + + + Returns a new AttributeConstraint checking for the + presence of a particular attribute on an object. + + + + + Returns a new AttributeConstraint checking for the + presence of a particular attribute on an object. + + + + + Returns a constraint that tests for null + + + + + Returns a constraint that tests for True + + + + + Returns a constraint that tests for False + + + + + Returns a constraint that tests for a positive value + + + + + Returns a constraint that tests for a negative value + + + + + Returns a constraint that tests for equality with zero + + + + + Returns a constraint that tests for NaN + + + + + Returns a constraint that tests for empty + + + + + Returns a constraint that tests whether a collection + contains all unique items. + + + + + Returns a constraint that tests whether an object graph is serializable in binary format. + + + + + Returns a constraint that tests whether an object graph is serializable in XML format. + + + + + Returns a constraint that tests two items for equality + + + + + Returns a constraint that tests that two references are the same object + + + + + Returns a constraint that tests whether the + actual value is greater than the supplied argument + + + + + Returns a constraint that tests whether the + actual value is greater than or equal to the supplied argument + + + + + Returns a constraint that tests whether the + actual value is greater than or equal to the supplied argument + + + + + Returns a constraint that tests whether the + actual value is less than the supplied argument + + + + + Returns a constraint that tests whether the + actual value is less than or equal to the supplied argument + + + + + Returns a constraint that tests whether the + actual value is less than or equal to the supplied argument + + + + + Returns a constraint that tests whether the actual + value is of the exact type supplied as an argument. + + + + + Returns a constraint that tests whether the actual + value is of the exact type supplied as an argument. + + + + + Returns a constraint that tests whether the actual value + is of the type supplied as an argument or a derived type. + + + + + Returns a constraint that tests whether the actual value + is of the type supplied as an argument or a derived type. + + + + + Returns a constraint that tests whether the actual value + is assignable from the type supplied as an argument. + + + + + Returns a constraint that tests whether the actual value + is assignable from the type supplied as an argument. + + + + + Returns a constraint that tests whether the actual value + is assignable from the type supplied as an argument. + + + + + Returns a constraint that tests whether the actual value + is assignable from the type supplied as an argument. + + + + + Returns a constraint that tests whether the actual value + is a collection containing the same elements as the + collection supplied as an argument. + + + + + Returns a constraint that tests whether the actual value + is a subset of the collection supplied as an argument. + + + + + Returns a constraint that tests whether the actual value + is a superset of the collection supplied as an argument. + + + + + Returns a constraint that tests whether a collection is ordered + + + + + Returns a new checking for the + presence of a particular object in the collection. + + + + + + Returns a new checking for the + presence of a particular object in the collection. + + + To search for a substring instead of a collection element, use the + overload. + + + + + + + Returns a new ContainsConstraint. This constraint + will, in turn, make use of the appropriate second-level + constraint, depending on the type of the actual argument. + + + To search for a collection element instead of a substring, use the + overload. + + + + + + Returns a constraint that succeeds if the actual + value contains the substring supplied as an argument. + + + + + Returns a constraint that succeeds if the actual + value contains the substring supplied as an argument. + + + + + Returns a constraint that fails if the actual + value contains the substring supplied as an argument. + + + + + Returns a constraint that succeeds if the actual + value starts with the substring supplied as an argument. + + + + + Returns a constraint that succeeds if the actual + value starts with the substring supplied as an argument. + + + + + Returns a constraint that succeeds if the actual + value starts with the substring supplied as an argument. + + + + + Returns a constraint that fails if the actual + value starts with the substring supplied as an argument. + + + + + Returns a constraint that succeeds if the actual + value ends with the substring supplied as an argument. + + + + + Returns a constraint that succeeds if the actual + value ends with the substring supplied as an argument. + + + + + Returns a constraint that succeeds if the actual + value ends with the substring supplied as an argument. + + + + + Returns a constraint that fails if the actual + value ends with the substring supplied as an argument. + + + + + Returns a constraint that succeeds if the actual + value matches the regular expression supplied as an argument. + + + + + Returns a constraint that succeeds if the actual + value matches the regular expression supplied as an argument. + + + + + Returns a constraint that succeeds if the actual + value matches the regular expression supplied as an argument. + + + + + Returns a constraint that fails if the actual + value matches the pattern supplied as an argument. + + + + + Returns a constraint that tests whether the path provided + is the same as an expected path after canonicalization. + + + + + Returns a constraint that tests whether the path provided + is a subpath of the expected path after canonicalization. + + + + + Returns a constraint that tests whether the path provided + is the same path or under an expected path after canonicalization. + + + + + Returns a constraint that tests whether the actual value falls + within a specified range. + + + + + Provides static methods to express the assumptions + that must be met for a test to give a meaningful + result. If an assumption is not met, the test + should produce an inconclusive result. + + + + + DO NOT USE! + The Equals method throws an InvalidOperationException. This is done + to make sure there is no mistake by calling this function. + + The left object. + The right object. + Not applicable + + + + DO NOT USE! + The ReferenceEquals method throws an InvalidOperationException. This is done + to make sure there is no mistake by calling this function. + + The left object. + The right object. + + + + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and throwing an InconclusiveException on failure. + + The Type being compared. + An ActualValueDelegate returning the value to be tested + A Constraint expression to be applied + + + + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and throwing an InconclusiveException on failure. + + The Type being compared. + An ActualValueDelegate returning the value to be tested + A Constraint expression to be applied + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and throwing an InconclusiveException on failure. + + The Type being compared. + An ActualValueDelegate returning the value to be tested + A Constraint expression to be applied + A function to build the message included with the Exception + + + + Asserts that a condition is true. If the condition is false the method throws + an . + + The evaluated condition + The message to display if the condition is false + Arguments to be used in formatting the message + + + + Asserts that a condition is true. If the condition is false the + method throws an . + + The evaluated condition + + + + Asserts that a condition is true. If the condition is false the method throws + an . + + The evaluated condition + A function to build the message included with the Exception + + + + Asserts that a condition is true. If the condition is false the method throws + an . + + A lambda that returns a Boolean + The message to display if the condition is false + Arguments to be used in formatting the message + + + + Asserts that a condition is true. If the condition is false the method throws + an . + + A lambda that returns a Boolean + + + + Asserts that a condition is true. If the condition is false the method throws + an . + + A lambda that returns a Boolean + A function to build the message included with the Exception + + + + Asserts that the code represented by a delegate throws an exception + that satisfies the constraint provided. + + A TestDelegate to be executed + A ThrowsConstraint used in the test + + + + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and throwing an InconclusiveException on failure. + + The Type being compared. + The actual value to test + A Constraint expression to be applied + + + + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and throwing an InconclusiveException on failure. + + The Type being compared. + The actual value to test + A Constraint expression to be applied + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and throwing an InconclusiveException on failure. + + The Type being compared. + The actual value to test + A Constraint expression to be applied + A function to build the message included with the Exception + + + + Marks a test as needing to be run in a particular threading apartment state. This will cause it + to run in a separate thread if necessary. + + + + + Construct an ApartmentAttribute + + The apartment state that this test must be run under. You must pass in a valid apartment state. + + + + Provides the author of a test or test fixture. + + + + + Initializes a new instance of the class. + + The name of the author. + + + + Initializes a new instance of the class. + + The name of the author. + The email address of the author. + + + + Applies a category to a test + + + + + The name of the category + + + + + Construct attribute for a given category based on + a name. The name may not contain the characters ',', + '+', '-' or '!'. However, this is not checked in the + constructor since it would cause an error to arise at + as the test was loaded without giving a clear indication + of where the problem is located. The error is handled + in NUnitFramework.cs by marking the test as not + runnable. + + The name of the category + + + + Protected constructor uses the Type name as the name + of the category. + + + + + The name of the category + + + + + Modifies a test by adding a category to it. + + The test to modify + + + + Marks a test to use a combinatorial join of any argument data provided. + Since this is the default, the attribute is optional. + + + + + Default constructor + + + + + Marks a test as using a particular CombiningStrategy to join any supplied parameter data. + Since this is the default, the attribute is optional. + + + + + Construct a CombiningStrategyAttribute incorporating an + ICombiningStrategy and an IParameterDataProvider. + + Combining strategy to be used in combining data + An IParameterDataProvider to supply data + + + + Construct a CombiningStrategyAttribute incorporating an object + that implements ICombiningStrategy and an IParameterDataProvider. + This constructor is provided for CLS compliance. + + Combining strategy to be used in combining data + An IParameterDataProvider to supply data + + + + Builds any number of tests from the specified method and context. + + The MethodInfo for which tests are to be constructed. + The suite to which the tests will be added. + + + + Modify the test by adding the name of the combining strategy + to the properties. + + The test to modify + + + + Marks an assembly, test fixture or test method as applying to a specific Culture. + + + + + Constructor with no cultures specified, for use + with named property syntax. + + + + + Constructor taking one or more cultures + + Comma-delimited list of cultures + + + + Causes a test to be skipped if this CultureAttribute is not satisfied. + + The test to modify + + + + Tests to determine if the current culture is supported + based on the properties of this attribute. + + True, if the current culture is supported + + + + Test to determine if the a particular culture or comma- + delimited set of cultures is in use. + + Name of the culture or comma-separated list of culture ids + True if the culture is in use on the system + + + + Test to determine if one of a collection of cultures + is being used currently. + + + + + + + Abstract base class for all data-providing attributes defined by NUnit. + Used to select all data sources for a method, class or parameter. + + + + + Default constructor + + + + + Marks a field for use as a datapoint when executing a theory within + the same fixture that requires an argument of the field's Type. + + + + + Marks a field, property or method as providing a set of datapoints for use + in executing any theories within the same fixture that require an argument of + the provided Type. The data source may provide an array of the required Type + or an . Synonymous with . + + + + + Marks a field, property or method as providing a set of datapoints for use + in executing any theories within the same fixture that require an argument + of the provided type. The data source may provide an array of the required + Type or an . Synonymous with . + + + + + Sets the tolerance used by default when checking the equality of floating point values + within the test assembly, fixture or method. + + + + + Construct specifying an amount + + + + + + Apply changes to the TestExecutionContext + + The TestExecutionContext + + + + Provides the descriptive text relating to the assembly, test fixture or test method. + + + + + Construct a description Attribute + + The text of the description + + + + Marks an assembly, test fixture or test method such that it will only run if explicitly + executed from the GUI, command line or included within a test filter. + The test will not be run simply because an enclosing suite is run. + + + + + Default constructor + + + + + Constructor with a reason + + The reason test is marked explicit + + + + Modifies a test by marking it as explicit. + + The test to modify + + + + Marks an assembly, test fixture or test method as being ignored. Ignored tests result in a warning message when the tests are run. + + + + + Constructs the attribute giving a reason for ignoring the test + + The reason for ignoring the test + + + + The date in the future to stop ignoring the test as a string in UTC time. + For example for a date and time, "2014-12-25 08:10:00Z" or for just a date, + "2014-12-25". If just a date is given, the Ignore will expire at midnight UTC. + + + Once the ignore until date has passed, the test will be marked + as runnable. Tests with an ignore until date will have an IgnoreUntilDate + property set which will appear in the test results. + + The string does not contain a valid string representation of a date and time. + + + + Modifies a test by marking it as Ignored. + + The test to modify + + + + Abstract base for attributes that are used to include tests in + the test run based on environmental settings. + + + + + Constructor with no included items specified, for use + with named property syntax. + + + + + Constructor taking one or more included items + + Comma-delimited list of included items + + + + Name of the item that is needed in order for + a test to run. Multiple items may be given, + separated by a comma. + + + + + Name of the item to be excluded. Multiple items + may be given, separated by a comma. + + + + + The reason for including or excluding the test + + + + + Sets the number of worker threads that may be allocated by the framework + for running tests. + + + + + Construct a LevelOfParallelismAttribute. + + The number of worker threads to be created by the framework. + + + + Specifies the maximum time (in milliseconds) for a test case to succeed. + + + + + Construct a MaxTimeAttribute, given a time in milliseconds. + + The maximum elapsed time in milliseconds + + + + Marks tests that should NOT be run in parallel. + + + + + Construct a NonParallelizableAttribute. + + + + + Used by third-party frameworks, or other software, that reference + the NUnit framework but do not contain any tests. Applying the + attribute indicates that the assembly is not a test assembly and + may prevent errors if certain runners attempt to load the assembly. + Note that recognition of the attribute depends on each individual runner. + + + + + Abstract base class for all custom attributes defined by NUnit. + + + + + Default constructor + + + + + Identifies a method that is called once to perform setup before any child tests are run. + + + + + Identifies a method to be called once after all the child tests have run. + The method is guaranteed to be called, even if an exception is thrown. + + + + + Defines the order that the test will run in + + + + + Defines the order that the test will run in + + + + + Defines the order that the test will run in + + + + + + Modifies a test as defined for the specific attribute. + + The test to modify + + + + Marks a test as using a pairwise join of any supplied argument data. Arguments will be + combined in such a way that all possible pairs of arguments are used. + + + + + Default constructor + + + + + Marks a test assembly, fixture or method that may be run in parallel. + + + + + Construct a ParallelizableAttribute using default ParallelScope.Self. + + + + + Construct a ParallelizableAttribute with a specified scope. + + The ParallelScope associated with this attribute. + + + + Defines the degree to which this test and its descendants may be run in parallel + + + + + Overridden to check for invalid combinations of settings + + + + + + Modify the context to be used for child tests + + The current TestExecutionContext + + + + Specifies the degree to which a test, and its descendants, + may be run in parallel. + + + + + No ParallelScope was specified on the test + + + + + The test may be run in parallel with others at the same level. + Valid on classes and methods but has no effect on assemblies. + + + + + Test may not be run in parallel with any others. Valid on + classes and methods but not assemblies. + + + + + Mask used to extract the flags that apply to the item on which a + ParallelizableAttribute has been placed, as opposed to descendants. + + + + + Descendants of the test may be run in parallel with one another. + Valid on assemblies and classes but not on non-parameterized methods. + + + + + Descendants of the test down to the level of TestFixtures may be + run in parallel with one another. Valid on assemblies and classes + but not on methods. + + + + + Mask used to extract all the flags that impact descendants of a + test and place them in the TestExecutionContext. + + + + + The test and its descendants may be run in parallel with others at + the same level. Valid on classes and parameterized methods. + For assemblies it is recommended to use + instead, as has no effect on assemblies. + + + + + Marks an assembly, test fixture or test method as applying to a specific platform. + + + + + Constructor with no platforms specified, for use + with named property syntax. + + + + + Constructor taking one or more platforms + + Comma-delimited list of platforms + + + + Causes a test to be skipped if this PlatformAttribute is not satisfied. + + The test to modify + + + + Attaches information to a test assembly, fixture or method as a name/value pair. + + + + + Construct a PropertyAttribute with a name and string value + + The name of the property + The property value + + + + Construct a PropertyAttribute with a name and int value + + The name of the property + The property value + + + + Construct a PropertyAttribute with a name and double value + + The name of the property + The property value + + + + Constructor for derived classes that set the + property dictionary directly. + + + + + Constructor for use by derived classes that use the + name of the type as the property name. Derived classes + must ensure that the Type of the property value is + a standard type supported by the BCL. Any custom + types will cause a serialization Exception when + in the client. + + + + + Gets the property dictionary for this attribute + + + + + Modifies a test by adding properties to it. + + The test to modify + + + + Supplies a set of random values to a single parameter of a parameterized test. + + + + + If true, no value will be repeated. + + + + + Construct a random set of values appropriate for the Type of the + parameter on which the attribute appears, specifying only the count. + + + + + + Construct a set of ints within a specified range + + + + + Construct a set of unsigned ints within a specified range + + + + + Construct a set of longs within a specified range + + + + + Construct a set of unsigned longs within a specified range + + + + + Construct a set of shorts within a specified range + + + + + Construct a set of unsigned shorts within a specified range + + + + + Construct a set of doubles within a specified range + + + + + Construct a set of floats within a specified range + + + + + Construct a set of bytes within a specified range + + + + + Construct a set of sbytes within a specified range + + + + + Retrieves a list of arguments which can be passed to the specified parameter. + + The parameter of a parameterized test. + + + + Supplies a range of values to an individual parameter of a parameterized test. + + + + + Construct a range of ints using default step of 1 + + + + + Construct a range of ints specifying the step size + + + + + Construct a range of unsigned ints using default step of 1 + + + + + Construct a range of unsigned ints specifying the step size + + + + + Construct a range of longs using a default step of 1 + + + + + Construct a range of longs + + + + + Construct a range of unsigned longs using default step of 1 + + + + + Construct a range of unsigned longs specifying the step size + + + + + Construct a range of doubles + + + + + Construct a range of floats + + + + + Retrieves a list of arguments which can be passed to the specified parameter. + + The parameter of a parameterized test. + + + Returns a string that represents the current object. + + + + Specifies that a test should be run multiple times. + + + + + Construct a RepeatAttribute + + The number of times to run the test + + + + Wrap a command and return the result. + + The command to be wrapped + The wrapped command + + + + The test command for the RepeatAttribute + + + + + Initializes a new instance of the class. + + The inner command. + The number of repetitions + + + + Runs the test, saving a TestResult in the supplied TestExecutionContext. + + The context in which the test should run. + A TestResult + + + + Marks a test that must run on a separate thread. + + + + + Construct a RequiresThreadAttribute + + + + + Construct a RequiresThreadAttribute, specifying the apartment + + + + + Specifies that a test method should be rerun on failure up to the specified + maximum number of times. + + + + + Construct a + + The maximum number of times the test should be run if it fails + + + + Wrap a command and return the result. + + The command to be wrapped + The wrapped command + + + + The test command for the + + + + + Initializes a new instance of the class. + + The inner command. + The maximum number of repetitions + + + + Runs the test, saving a TestResult in the supplied TestExecutionContext. + + The context in which the test should run. + A TestResult + + + + Marks a test to use a sequential join of any provided argument data. + Arguments will be combined into test cases, taking the next value of + each argument until all are used. + + + + + Default constructor + + + + + Sets the current Culture on an assembly, test fixture or test method for + the duration of a test. The culture remains set until the test or fixture + completes and is then reset to its original value. + + + + + + Construct given the name of a culture + + + + + + Sets the current UI Culture on an assembly, test fixture or test method + for the duration of a test. The UI culture remains set until the test or + fixture completes and is then reset to its original value. + + + + + + Construct given the name of a culture + + + + + + Identifies a method to be called immediately before each test is run. + + + + + Identifies a class as containing or + methods for all the test fixtures + under a given namespace. + + + + + Builds a from the specified type. + + The type info of the fixture to be used. + + + + Marks a test fixture as requiring all child tests to be run on the + same thread as the OneTimeSetUp and OneTimeTearDown. A flag in the + is set forcing all child tests + to be run sequentially on the current thread. + Any setting is ignored. + + + + + Apply changes to the TestExecutionContext + + The TestExecutionContext + + + + Identifies a method to be called immediately after each test is run. + The method is guaranteed to be called, even if an exception is thrown. + + + + + Abstract attribute providing actions to execute before and after tests. + + + + + Executed before each test is run + + The test that is going to be run. + + + + Executed after each test is run + + The test that has just been run. + + + + Provides the target for the action attribute + + + + + Marks a test assembly as needing a special assembly resolution hook that will + explicitly search the test assembly's directory for dependent assemblies. + This works around a conflict between mixed-mode assembly initialization and + tests running in their own AppDomain in some cases. + + + + + Marks the method as callable from the NUnit test runner. + + + + [TestFixture] + public class Fixture + { + [Test] + public void MethodToTest() + {} + + [Test(Description = "more detailed description")] + public void TestDescriptionMethod() + {} + } + + + + + + Descriptive text for this test + + + + + The author of this test + + + + + The type that this test is testing + + + + + Gets or sets the expected result. Not valid if the test + method has parameters. + + The result. + + + + Modifies a test by adding a description, if not already set. + + The test to modify + + + + Builds a single test from the specified method and context. + + The method for which a test is to be constructed. + The suite to which the test will be added. + + + + Marks a method as a parameterized test suite and provides arguments for each test case. + + + + + Construct a TestCaseAttribute with a list of arguments. + This constructor is not CLS-Compliant + + + + + + Construct a TestCaseAttribute with a single argument + + + + + + Construct a TestCaseAttribute with a two arguments + + + + + + + Construct a TestCaseAttribute with a three arguments + + + + + + + + Gets or sets the name of the test. + + The name of the test. + + + + Gets or sets the RunState of this test case. + + + + + Gets the list of arguments to a test case + + + + + Gets the properties of the test case + + + + + Gets or sets the expected result. + + The result. + + + + Returns true if the expected result has been set + + + + + Gets or sets the description. + + The description. + + + + The author of this test + + + + + The type that this test is testing + + + + + Gets or sets the reason for ignoring the test + + + + + Gets or sets a value indicating whether this is explicit. + + + true if explicit; otherwise, false. + + + + + Gets or sets the reason for not running the test. + + The reason. + + + + Gets or sets the ignore reason. When set to a non-null + non-empty value, the test is marked as ignored. + + The ignore reason. + + + + Comma-delimited list of platforms to run the test for + + + + + Comma-delimited list of platforms to not run the test for + + + + + Gets and sets the category for this test case. + May be a comma-separated list of categories. + + + + + Performs several special conversions allowed by NUnit in order to + permit arguments with types that cannot be used in the constructor + of an Attribute such as TestCaseAttribute or to simplify their use. + + The arguments to be converted + The ParameterInfo array for the method + + + + Builds a single test from the specified method and context. + + The MethodInfo for which tests are to be constructed. + The suite to which the tests will be added. + + + + Indicates the source to be used to provide test fixture instances for a test class. + + + + + Construct with the name of the method, property or field that will provide data + + The name of a static method, property or field that will provide data. + + + + Construct with a Type and name + + The Type that will provide data + The name of a static method, property or field that will provide data. + A set of parameters passed to the method, works only if the Source Name is a method. + If the source name is a field or property has no effect. + + + + Construct with a Type and name + + The Type that will provide data + The name of a static method, property or field that will provide data. + + + + Construct with a name + + The name of a static method, property or field that will provide data. + A set of parameters passed to the method, works only if the Source Name is a method. + If the source name is a field or property has no effect. + + + + Construct with a Type + + The type that will provide data + + + + A set of parameters passed to the method, works only if the Source Name is a method. + If the source name is a field or property has no effect. + + + + + The name of a the method, property or fiend to be used as a source + + + + + A Type to be used as a source + + + + + Gets or sets the category associated with every fixture created from + this attribute. May be a single category or a comma-separated list. + + + + + Builds any number of tests from the specified method and context. + + The IMethod for which tests are to be constructed. + The suite to which the tests will be added. + + + + Marks the class as a TestFixture. + + + + + Default constructor + + + + + Construct with a object[] representing a set of arguments. + The arguments may later be separated into type arguments and constructor arguments. + + + + + + Gets or sets the name of the test. + + The name of the test. + + + + Gets or sets the RunState of this test fixture. + + + + + The arguments originally provided to the attribute + + + + + Properties pertaining to this fixture + + + + + Get or set the type arguments. If not set + explicitly, any leading arguments that are + Types are taken as type arguments. + + + + + Descriptive text for this fixture + + + + + The author of this fixture + + + + + The type that this fixture is testing + + + + + Gets or sets the ignore reason. May set RunState as a side effect. + + The ignore reason. + + + + Gets or sets the reason for not running the fixture. + + The reason. + + + + Gets or sets the ignore reason. When set to a non-null + non-empty value, the test is marked as ignored. + + The ignore reason. + + + + Gets or sets a value indicating whether this is explicit. + + + true if explicit; otherwise, false. + + + + + Gets and sets the category for this fixture. + May be a comma-separated list of categories. + + + + + Builds a single test fixture from the specified type. + + + + + Builds a single test fixture from the specified type. + + The type info of the fixture to be used. + Filter used to select methods as tests. + + + + Identifies the source used to provide test fixture instances for a test class. + + + + + Error message string is public so the tests can use it + + + + + Construct with the name of the method, property or field that will provide data + + The name of a static method, property or field that will provide data. + + + + Construct with a Type and name + + The Type that will provide data + The name of a static method, property or field that will provide data. + + + + Construct with a Type + + The type that will provide data + + + + The name of a the method, property or fiend to be used as a source + + + + + A Type to be used as a source + + + + + Gets or sets the category associated with every fixture created from + this attribute. May be a single category or a comma-separated list. + + + + + Builds any number of test fixtures from the specified type. + + The TypeInfo for which fixtures are to be constructed. + + + + Builds any number of test fixtures from the specified type. + + The TypeInfo for which fixtures are to be constructed. + PreFilter used to select methods as tests. + + + + Returns a set of ITestFixtureData items for use as arguments + to a parameterized test fixture. + + The type for which data is needed. + + + + + Indicates the method or class the assembly, test fixture or test method is testing. + + + + + Initializes a new instance of the class. + + The type that is being tested. + + + + Initializes a new instance of the class. + + The type that is being tested. + + + + Adding this attribute to a method within a + class makes the method callable from the NUnit test runner. There is a property + called Description which is optional which you can provide a more detailed test + description. This class cannot be inherited. + + + + [TestFixture] + public class Fixture + { + [Test] + public void MethodToTest() + {} + + [Test(Description = "more detailed description")] + public void TestDescriptionMethod() + {} + } + + + + + + Construct the attribute, specifying a combining strategy and source of parameter data. + + + + + Applies a timeout in milliseconds to a test. + When applied to a method, the test is cancelled if the timeout is exceeded. + When applied to a class or assembly, the default timeout is set for all contained test methods. + + + + + Construct a TimeoutAttribute given a time in milliseconds + + The timeout value in milliseconds + + + + Provides literal arguments for an individual parameter of a test. + + + + + The collection of data to be returned. Must + be set by any derived attribute classes. + We use an object[] so that the individual + elements may have their type changed in GetData + if necessary + + + + + Constructs for use with an Enum parameter. Will pass every enum + value in to the test. + + + + + Construct with one argument + + + + + + Construct with two arguments + + + + + + + Construct with three arguments + + + + + + + + Construct with an array of arguments + + + + + + Retrieves a list of arguments which can be passed to the specified parameter. + + The parameter of a parameterized test. + + + + To generate data for Values attribute, in case no data is provided. + + + + + To Check if type is nullable enum. + + + + + Indicates the source used to provide data for one parameter of a test method. + + + + + Construct with the name of the factory - for use with languages + that don't support params arrays. + + The name of a static method, property or field that will provide data. + + + + Construct with a Type and name - for use with languages + that don't support params arrays. + + The Type that will provide data + The name of a static method, property or field that will provide data. + + + + The name of a the method, property or fiend to be used as a source + + + + + A Type to be used as a source + + + + + Retrieves a list of arguments which can be passed to the specified parameter. + + The parameter of a parameterized test. + + + + A set of Assert methods operating on one or more collections + + + + + DO NOT USE! Use CollectionAssert.AreEqual(...) instead. + The Equals method throws an InvalidOperationException. This is done + to make sure there is no mistake by calling this function. + + + + + + + DO NOT USE! + The ReferenceEquals method throws an InvalidOperationException. This is done + to make sure there is no mistake by calling this function. + + + + + + + Asserts that all items contained in collection are of the type specified by expectedType. + + IEnumerable containing objects to be considered + System.Type that all objects in collection must be instances of + + + + Asserts that all items contained in collection are of the type specified by expectedType. + + IEnumerable containing objects to be considered + System.Type that all objects in collection must be instances of + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Asserts that all items contained in collection are not equal to null. + + IEnumerable containing objects to be considered + + + + Asserts that all items contained in collection are not equal to null. + + IEnumerable of objects to be considered + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Ensures that every object contained in collection exists within the collection + once and only once. + + IEnumerable of objects to be considered + + + + Ensures that every object contained in collection exists within the collection + once and only once. + + IEnumerable of objects to be considered + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Asserts that expected and actual are exactly equal. The collections must have the same count, + and contain the exact same objects in the same order. + + The first IEnumerable of objects to be considered + The second IEnumerable of objects to be considered + + + + Asserts that expected and actual are exactly equal. The collections must have the same count, + and contain the exact same objects in the same order. + If comparer is not null then it will be used to compare the objects. + + The first IEnumerable of objects to be considered + The second IEnumerable of objects to be considered + The IComparer to use in comparing objects from each IEnumerable + + + + Asserts that expected and actual are exactly equal. The collections must have the same count, + and contain the exact same objects in the same order. + + The first IEnumerable of objects to be considered + The second IEnumerable of objects to be considered + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Asserts that expected and actual are exactly equal. The collections must have the same count, + and contain the exact same objects in the same order. + If comparer is not null then it will be used to compare the objects. + + The first IEnumerable of objects to be considered + The second IEnumerable of objects to be considered + The IComparer to use in comparing objects from each IEnumerable + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Asserts that expected and actual are equivalent, containing the same objects but the match may be in any order. + + The first IEnumerable of objects to be considered + The second IEnumerable of objects to be considered + + + + Asserts that expected and actual are equivalent, containing the same objects but the match may be in any order. + + The first IEnumerable of objects to be considered + The second IEnumerable of objects to be considered + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Asserts that expected and actual are not exactly equal. + + The first IEnumerable of objects to be considered + The second IEnumerable of objects to be considered + + + + Asserts that expected and actual are not exactly equal. + If comparer is not null then it will be used to compare the objects. + + The first IEnumerable of objects to be considered + The second IEnumerable of objects to be considered + The IComparer to use in comparing objects from each IEnumerable + + + + Asserts that expected and actual are not exactly equal. + + The first IEnumerable of objects to be considered + The second IEnumerable of objects to be considered + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Asserts that expected and actual are not exactly equal. + If comparer is not null then it will be used to compare the objects. + + The first IEnumerable of objects to be considered + The second IEnumerable of objects to be considered + The IComparer to use in comparing objects from each IEnumerable + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Asserts that expected and actual are not equivalent. + + The first IEnumerable of objects to be considered + The second IEnumerable of objects to be considered + + + + Asserts that expected and actual are not equivalent. + + The first IEnumerable of objects to be considered + The second IEnumerable of objects to be considered + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Asserts that collection contains actual as an item. + + IEnumerable of objects to be considered + Object to be found within collection + + + + Asserts that collection contains actual as an item. + + IEnumerable of objects to be considered + Object to be found within collection + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Asserts that collection does not contain actual as an item. + + IEnumerable of objects to be considered + Object that cannot exist within collection + + + + Asserts that collection does not contain actual as an item. + + IEnumerable of objects to be considered + Object that cannot exist within collection + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Asserts that the superset does not contain the subset + + The IEnumerable subset to be considered + The IEnumerable superset to be considered + + + + Asserts that the superset does not contain the subset + + The IEnumerable subset to be considered + The IEnumerable superset to be considered + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Asserts that the superset contains the subset. + + The IEnumerable subset to be considered + The IEnumerable superset to be considered + + + + Asserts that the superset contains the subset. + + The IEnumerable subset to be considered + The IEnumerable superset to be considered + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Asserts that the subset does not contain the superset + + The IEnumerable superset to be considered + The IEnumerable subset to be considered + + + + Asserts that the subset does not contain the superset + + The IEnumerable superset to be considered + The IEnumerable subset to be considered + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Asserts that the subset contains the superset. + + The IEnumerable superset to be considered + The IEnumerable subset to be considered + + + + Asserts that the subset contains the superset. + + The IEnumerable superset to be considered + The IEnumerable subset to be considered + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Assert that an array, list or other collection is empty + + An array, list or other collection implementing IEnumerable + The message to be displayed on failure + Arguments to be used in formatting the message + + + + Assert that an array,list or other collection is empty + + An array, list or other collection implementing IEnumerable + + + + Assert that an array, list or other collection is empty + + An array, list or other collection implementing IEnumerable + The message to be displayed on failure + Arguments to be used in formatting the message + + + + Assert that an array,list or other collection is empty + + An array, list or other collection implementing IEnumerable + + + + Assert that an array, list or other collection is ordered + + An array, list or other collection implementing IEnumerable + The message to be displayed on failure + Arguments to be used in formatting the message + + + + Assert that an array, list or other collection is ordered + + An array, list or other collection implementing IEnumerable + + + + Assert that an array, list or other collection is ordered + + An array, list or other collection implementing IEnumerable + A custom comparer to perform the comparisons + The message to be displayed on failure + Arguments to be used in formatting the message + + + + Assert that an array, list or other collection is ordered + + An array, list or other collection implementing IEnumerable + A custom comparer to perform the comparisons + + + + AllItemsConstraint applies another constraint to each + item in a collection, succeeding if they all succeed. + + + + + Construct an AllItemsConstraint on top of an existing constraint + + + + + + The display name of this Constraint for use by ToString(). + The default value is the name of the constraint with + trailing "Constraint" removed. Derived classes may set + this to another name in their constructors. + + + + + Apply the item constraint to each item in the collection, + failing if any item fails. + + + + + + + AndConstraint succeeds only if both members succeed. + + + + + Create an AndConstraint from two other constraints + + The first constraint + The second constraint + + + + Gets text describing a constraint + + + + + Apply both member constraints to an actual value, succeeding + succeeding only if both of them succeed. + + The actual value + True if the constraints both succeeded + + + + Write the actual value for a failing constraint test to a + MessageWriter. The default implementation simply writes + the raw value of actual, leaving it to the writer to + perform any formatting. + + The writer on which the actual value is displayed + + + + is used to determine whether the value is equal to any of the expected values. + + + + + Construct a + + Collection of expected values + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + Test whether item is present in expected collection + + Actual item type + Actual item + + + + Flag the constraint to ignore case and return self. + + + + + Flag the constraint to use the supplied IComparer object. + + The IComparer object to use. + + + + Flag the constraint to use the supplied IComparer object. + + The IComparer object to use. + + + + Flag the constraint to use the supplied Comparison object. + + The Comparison object to use. + + + + Flag the constraint to use the supplied IEqualityComparer object. + + The IEqualityComparer object to use. + + + + Flag the constraint to use the supplied IEqualityComparer object. + + The IComparer object to use. + + + + Flag the constraint to use the supplied boolean-returning delegate. + + The supplied boolean-returning delegate to use. + + + + AssignableFromConstraint is used to test that an object + can be assigned from a given Type. + + + + + Construct an AssignableFromConstraint for the type provided + + + + + + Apply the constraint to an actual value, returning true if it succeeds + + The actual argument + True if the constraint succeeds, otherwise false. + + + + AssignableToConstraint is used to test that an object + can be assigned to a given Type. + + + + + Construct an AssignableToConstraint for the type provided + + + + + + Apply the constraint to an actual value, returning true if it succeeds + + The actual argument + True if the constraint succeeds, otherwise false. + + + + AttributeConstraint tests that a specified attribute is present + on a Type or other provider and that the value of the attribute + satisfies some other constraint. + + + + + Constructs an AttributeConstraint for a specified attribute + Type and base constraint. + + + + + + + Determines whether the Type or other provider has the + expected attribute and if its value matches the + additional constraint specified. + + + + + Returns a string representation of the constraint. + + + + + AttributeExistsConstraint tests for the presence of a + specified attribute on a Type. + + + + + Constructs an AttributeExistsConstraint for a specific attribute Type + + + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + Tests whether the object provides the expected attribute. + + A Type, MethodInfo, or other ICustomAttributeProvider + True if the expected attribute is present, otherwise false + + + + BinaryConstraint is the abstract base of all constraints + that combine two other constraints in some fashion. + + + + + The first constraint being combined + + + + + The second constraint being combined + + + + + Construct a BinaryConstraint from two other constraints + + The first constraint + The second constraint + + + + BinarySerializableConstraint tests whether + an object is serializable in binary format. + + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + Test whether the constraint is satisfied by a given value + + The value to be tested + True for success, false for failure + + + + Returns the string representation + + + + + CollectionConstraint is the abstract base class for + constraints that operate on collections. + + + + + Construct an empty CollectionConstraint + + + + + Construct a CollectionConstraint + + + + + + Determines whether the specified enumerable is empty. + + The enumerable. + + true if the specified enumerable is empty; otherwise, false. + + + + + Test whether the constraint is satisfied by a given value + + The value to be tested + True for success, false for failure + + + + Protected method to be implemented by derived classes + + + + + + + CollectionContainsConstraint is used to test whether a collection + contains an expected object as a member. + + + + + Construct a CollectionContainsConstraint + + + + + + The display name of this Constraint for use by ToString(). + The default value is the name of the constraint with + trailing "Constraint" removed. Derived classes may set + this to another name in their constructors. + + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + Gets the expected object + + + + + Test whether the expected item is contained in the collection + + + + + + + Flag the constraint to use the supplied predicate function + + The comparison function to use. + Self. + + + + CollectionEquivalentConstraint is used to determine whether two + collections are equivalent. + + + + The result of the from the collections + under comparison. + + + Construct a CollectionEquivalentConstraint + Expected collection. + + + + The display name of this Constraint for use by ToString(). + The default value is the name of the constraint with + trailing "Constraint" removed. Derived classes may set + this to another name in their constructors. + + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + Test whether two collections are equivalent + + + + + + + Test whether the collection is equivalent to the expected. + + + Actual collection type. + + + Actual collection to compare. + + + A indicating whether or not + the two collections are equivalent. + + + + + Flag the constraint to use the supplied predicate function + + The comparison function to use. + Self. + + + Provides a for the . + + + Result of a of the collections to compare for equivalence. + + + Maximum amount of elements to write to the if there are + extra/missing elements from the collection. + + + Construct a using a . + Source . + Result of the collection comparison. + Actual collection to compare. + Whether or not the succeeded. + + + Write any additional lines (following Expected: and But was:) for a failing constraint. + The to write the failure message to. + + + + CollectionItemsEqualConstraint is the abstract base class for all + collection constraints that apply some notion of item equality + as a part of their operation. + + + + + The NUnitEqualityComparer in use for this constraint + + + + + Construct an empty CollectionConstraint + + + + + Construct a CollectionConstraint + + + + + + Get a flag indicating whether the user requested us to ignore case. + + + + + Get a flag indicating whether any external comparers are in use. + + + + + Flag the constraint to ignore case and return self. + + + + + Flag the constraint to use the supplied IComparer object. + + The IComparer object to use. + + + + Flag the constraint to use the supplied IComparer object. + + The IComparer object to use. + + + + Flag the constraint to use the supplied Comparison object. + + The Comparison object to use. + + + + Flag the constraint to use the supplied IEqualityComparer object. + + The IComparer object to use. + + + + Flag the constraint to use the supplied IEqualityComparer object. + + The IComparer object to use. + + + + Flag the constraint to use the supplied boolean-returning delegate. + + The supplied boolean-returning delegate to use. + + + + Compares two collection members for equality + + + + + Return a new CollectionTally for use in making tests + + The collection to be included in the tally + + + + CollectionOrderedConstraint is used to test whether a collection is ordered. + + + + + Construct a CollectionOrderedConstraint + + + + + The display name of this Constraint for use by ToString(). + The default value is the name of the constraint with + trailing "Constraint" removed. Derived classes may set + this to another name in their constructors. + + + + + If used performs a default ascending comparison + + + + + If used performs a reverse comparison + + + + + Modifies the constraint to use an and returns self. + + + + + Modifies the constraint to use an and returns self. + + + + + Modifies the constraint to use a and returns self. + + + + + Modifies the constraint to test ordering by the value of + a specified property and returns self. + + + + + Then signals a break between two ordering steps + + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + Test whether the constraint is satisfied by a given value + + The value to be tested + True for success, false for failure + + + + Test whether the collection is ordered + + + + + Returns the string representation of the constraint. + + + + + + An OrderingStep represents one stage of the sort + + + + + Constructor for success result. + + The Constraint to which this result applies. + The actual value to which the Constraint was applied. + + + + Constructor for failure result. + + The Constraint to which this result applies. + The actual value to which the Constraint was applied. + Index at which collection order breaks. + Value at which collection order breaks. + + + + CollectionSubsetConstraint is used to determine whether + one collection is a subset of another + + + + + Construct a CollectionSubsetConstraint + + The collection that the actual value is expected to be a subset of + + + + The display name of this Constraint for use by ToString(). + The default value is the name of the constraint with + trailing "Constraint" removed. Derived classes may set + this to another name in their constructors. + + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + Test whether the actual collection is a subset of + the expected collection provided. + + + + + + + Flag the constraint to use the supplied predicate function + + The comparison function to use. + Self. + + + + CollectionSupersetConstraint is used to determine whether + one collection is a superset of another + + + + + Construct a CollectionSupersetConstraint + + The collection that the actual value is expected to be a superset of + + + + The display name of this Constraint for use by ToString(). + The default value is the name of the constraint with + trailing "Constraint" removed. Derived classes may set + this to another name in their constructors. + + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + Test whether the actual collection is a superset of + the expected collection provided. + + + + + + + Flag the constraint to use the supplied predicate function + + The comparison function to use. + Self. + + + counts (tallies) the number of occurrences + of each object in one or more enumerations. + + + The result of a . + + + Items that were not in the expected collection. + + + Items that were not accounted for in the expected collection. + + + Initializes a new instance of the class with the given fields. + + + The result of the comparison between the two collections. + + + Construct a CollectionTally object from a comparer and a collection. + The comparer to use for equality. + The expected collection to compare against. + + + Try to remove an object from the tally. + The object to remove. + + + Try to remove a set of objects from the tally. + The objects to remove. + + + + Comparator for two s. + + + + + Comparator for two s. + + + + + Comparator for two s. + + + + + Comparator for two s. + + + + + Comparator for two s. + + + + + Comparator for two s. + + + + + Comparator for two s. + + + + + Comparator for two types related by . + + + + + Interface for comparing two s. + + + + + Method for comparing two objects with a tolerance. + + The first object to compare. + The second object to compare. + The tolerance to use when comparing the objects. + Flag indicating whether or not this is the top level comparison. + + null if the objects cannot be compared using the method. + Otherwise the result of the comparison is returned. + + + + + Comparator for two s. + + + + + Comparator for two s. + + + + + Comparator for two s. + + + + + Comparator for two s. + + + + + Comparator for two s or s. + + + + + Comparator for two Tuples. + + + + + Base class for comparators for tuples (both regular Tuples and ValueTuples). + + + + + Comparator for two ValueTuples. + + + + + ComparisonAdapter class centralizes all comparisons of + values in NUnit, adapting to the use of any provided + , + or . + + + + + Gets the default ComparisonAdapter, which wraps an + NUnitComparer object. + + + + + Returns a ComparisonAdapter that wraps an + + + + + Returns a ComparisonAdapter that wraps an + + + + + Returns a ComparisonAdapter that wraps a + + + + + Compares two objects + + + + + Construct a default ComparisonAdapter + + + + + Construct a ComparisonAdapter for an + + + + + Compares two objects + + + + + + + + ComparerAdapter extends and + allows use of an or + to actually perform the comparison. + + + + + Construct a ComparisonAdapter for an + + + + + Compare a Type T to an object + + + + + Construct a ComparisonAdapter for a + + + + + Compare a Type T to an object + + + + + Abstract base class for constraints that compare values to + determine if one is greater than, equal to or less than + the other. + + + + + The value against which a comparison is to be made + + + + + Tolerance used in making the comparison + + + + + ComparisonAdapter to be used in making the comparison + + + + + Initializes a new instance of the class. + + The value against which to make a comparison. + + + + Test whether the constraint is satisfied by a given value + + The value to be tested + A ConstraintResult + + + + Protected function overridden by derived class to actually perform the comparison + + + + + Modifies the constraint to use an and returns self + + The comparer used for comparison tests + A constraint modified to use the given comparer + + + + Modifies the constraint to use an and returns self + + The comparer used for comparison tests + A constraint modified to use the given comparer + + + + Modifies the constraint to use a and returns self + + The comparer used for comparison tests + A constraint modified to use the given comparer + + + + Set the tolerance for use in this comparison + + + + + Switches the .Within() modifier to interpret its tolerance as + a percentage that the actual values is allowed to deviate from + the expected value. + + Self + + + + Provides standard description of what the constraint tests + based on comparison text. + + Describes the comparison being tested, throws + if null + Is thrown when null passed to a method + + + + Delegate used to delay evaluation of the actual value + to be used in evaluating a constraint + + + + + The Constraint class is the base of all built-in constraints + within NUnit. It provides the operator overloads used to combine + constraints. + + + + + Construct a constraint with optional arguments + + Arguments to be saved + + + + The display name of this Constraint for use by ToString(). + The default value is the name of the constraint with + trailing "Constraint" removed. Derived classes may set + this to another name in their constructors. + + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + Arguments provided to this Constraint, for use in + formatting the description. + + + + + The ConstraintBuilder holding this constraint + + + + + Applies the constraint to an actual value, returning a ConstraintResult. + + The value to be tested + A ConstraintResult + + + + Applies the constraint to an ActualValueDelegate that returns + the value to be tested. The default implementation simply evaluates + the delegate but derived classes may override it to provide for + delayed processing. + + An ActualValueDelegate + A ConstraintResult + + + + Test whether the constraint is satisfied by a given reference. + The default implementation simply dereferences the value but + derived classes may override it to provide for delayed processing. + + A reference to the value to be tested + A ConstraintResult + + + + Retrieves the value to be tested from an ActualValueDelegate. + The default implementation simply evaluates the delegate but derived + classes may override it to provide for delayed processing. + + An ActualValueDelegate + Delegate evaluation result + + + + Default override of ToString returns the constraint DisplayName + followed by any arguments within angle brackets. + + + + + + Returns the string representation of this constraint + + + + + This operator creates a constraint that is satisfied only if both + argument constraints are satisfied. + + + + + This operator creates a constraint that is satisfied if either + of the argument constraints is satisfied. + + + + + This operator creates a constraint that is satisfied if the + argument constraint is not satisfied. + + + + + Returns a ConstraintExpression by appending And + to the current constraint. + + + + + Returns a ConstraintExpression by appending And + to the current constraint. + + + + + Returns a ConstraintExpression by appending Or + to the current constraint. + + + + + Returns a DelayedConstraint.WithRawDelayInterval with the specified delay time. + + The delay, which defaults to milliseconds. + + + + + Returns a DelayedConstraint with the specified delay time + and polling interval. + + The delay in milliseconds. + The interval at which to test the constraint. + + + + + Resolves any pending operators and returns the resolved constraint. + + + + + ConstraintBuilder maintains the stacks that are used in + processing a ConstraintExpression. An OperatorStack + is used to hold operators that are waiting for their + operands to be reorganized. a ConstraintStack holds + input constraints as well as the results of each + operator applied. + + + + + OperatorStack is a type-safe stack for holding ConstraintOperators + + + + + Initializes a new instance of the class. + + The ConstraintBuilder using this stack. + + + + Gets a value indicating whether this is empty. + + true if empty; otherwise, false. + + + + Gets the topmost operator without modifying the stack. + + + + + Pushes the specified operator onto the stack. + + The operator to put onto the stack. + + + + Pops the topmost operator from the stack. + + The topmost operator on the stack + + + + ConstraintStack is a type-safe stack for holding Constraints + + + + + Initializes a new instance of the class. + + The ConstraintBuilder using this stack. + + + + Gets a value indicating whether this is empty. + + true if empty; otherwise, false. + + + + Pushes the specified constraint. As a side effect, + the constraint's Builder field is set to the + ConstraintBuilder owning this stack. + + The constraint to put onto the stack + + + + Pops this topmost constraint from the stack. + As a side effect, the constraint's Builder + field is set to null. + + The topmost constraint on the stack + + + + Initializes a new instance of the class. + + + + + Appends the specified operator to the expression by first + reducing the operator stack and then pushing the new + operator on the stack. + + The operator to push. + + + + Appends the specified constraint to the expression by pushing + it on the constraint stack. + + The constraint to push. + + + + Sets the top operator right context. + + The right context. + + + + Reduces the operator stack until the topmost item + precedence is greater than or equal to the target precedence. + + The target precedence. + + + + Resolves this instance, returning a Constraint. If the Builder + is not currently in a resolvable state, an exception is thrown. + + The resolved constraint + + + + Gets a value indicating whether this instance is resolvable. + + + true if this instance is resolvable; otherwise, false. + + + + + ConstraintExpression represents a compound constraint in the + process of being constructed from a series of syntactic elements. + + Individual elements are appended to the expression as they are + reorganized. When a constraint is appended, it is returned as the + value of the operation so that modifiers may be applied. However, + any partially built expression is attached to the constraint for + later resolution. When an operator is appended, the partial + expression is returned. If it's a self-resolving operator, then + a ResolvableConstraintExpression is returned. + + + + + The ConstraintBuilder holding the elements recognized so far + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the + class passing in a ConstraintBuilder, which may be pre-populated. + + The builder. + + + + Returns a string representation of the expression as it + currently stands. This should only be used for testing, + since it has the side-effect of resolving the expression. + + + + + + Appends an operator to the expression and returns the + resulting expression itself. + + + + + Appends a self-resolving operator to the expression and + returns a new ResolvableConstraintExpression. + + + + + Appends a constraint to the expression and returns that + constraint, which is associated with the current state + of the expression being built. Note that the constraint + is not reduced at this time. For example, if there + is a NotOperator on the stack we don't reduce and + return a NotConstraint. The original constraint must + be returned because it may support modifiers that + are yet to be applied. + + + + + Returns a ConstraintExpression that negates any + following constraint. + + + + + Returns a ConstraintExpression that negates any + following constraint. + + + + + Returns a ConstraintExpression, which will apply + the following constraint to all members of a collection, + succeeding if all of them succeed. + + + + + Returns a ConstraintExpression, which will apply + the following constraint to all members of a collection, + succeeding if at least one of them succeeds. + + + + + Returns a ConstraintExpression, which will apply + the following constraint to all members of a collection, + succeeding if all of them fail. + + + + + Returns a ConstraintExpression, which will apply + the following constraint to all members of a collection, + succeeding only if a specified number of them succeed. + + + + + Returns a , which will + apply the following constraint to a collection of length one, succeeding + only if exactly one of them succeeds. + + + + + Returns a new PropertyConstraintExpression, which will either + test for the existence of the named property on the object + being tested or apply any following constraint to that property. + + + + + Returns a new ConstraintExpression, which will apply the following + constraint to the Length property of the object being tested. + + + + + Returns a new ConstraintExpression, which will apply the following + constraint to the Count property of the object being tested. + + + + + Returns a new ConstraintExpression, which will apply the following + constraint to the Message property of the object being tested. + + + + + Returns a new ConstraintExpression, which will apply the following + constraint to the InnerException property of the object being tested. + + + + + Returns a new AttributeConstraint checking for the + presence of a particular attribute on an object. + + + + + Returns a new AttributeConstraint checking for the + presence of a particular attribute on an object. + + + + + With is currently a NOP - reserved for future use. + + + + + Returns the constraint provided as an argument - used to allow custom + custom constraints to easily participate in the syntax. + + + + + Returns the constraint provided as an argument - used to allow custom + custom constraints to easily participate in the syntax. + + + + + Returns a constraint that tests for null + + + + + Returns a constraint that tests for True + + + + + Returns a constraint that tests for False + + + + + Returns a constraint that tests for a positive value + + + + + Returns a constraint that tests for a negative value + + + + + Returns a constraint that tests if item is equal to zero + + + + + Returns a constraint that tests for NaN + + + + + Returns a constraint that tests for empty + + + + + Returns a constraint that tests whether a collection + contains all unique items. + + + + + Returns a constraint that tests whether an object graph is serializable in binary format. + + + + + Returns a constraint that tests whether an object graph is serializable in XML format. + + + + + Returns a constraint that tests two items for equality + + + + + Returns a constraint that tests that two references are the same object + + + + + Returns a constraint that tests whether the + actual value is greater than the supplied argument + + + + + Returns a constraint that tests whether the + actual value is greater than or equal to the supplied argument + + + + + Returns a constraint that tests whether the + actual value is greater than or equal to the supplied argument + + + + + Returns a constraint that tests whether the + actual value is less than the supplied argument + + + + + Returns a constraint that tests whether the + actual value is less than or equal to the supplied argument + + + + + Returns a constraint that tests whether the + actual value is less than or equal to the supplied argument + + + + + Returns a constraint that tests whether the actual + value is of the exact type supplied as an argument. + + + + + Returns a constraint that tests whether the actual + value is of the exact type supplied as an argument. + + + + + Returns a constraint that tests whether the actual value + is of the type supplied as an argument or a derived type. + + + + + Returns a constraint that tests whether the actual value + is of the type supplied as an argument or a derived type. + + + + + Returns a constraint that tests whether the actual value + is assignable from the type supplied as an argument. + + + + + Returns a constraint that tests whether the actual value + is assignable from the type supplied as an argument. + + + + + Returns a constraint that tests whether the actual value + is assignable from the type supplied as an argument. + + + + + Returns a constraint that tests whether the actual value + is assignable from the type supplied as an argument. + + + + + Returns a constraint that tests whether the actual value + is a collection containing the same elements as the + collection supplied as an argument. + + + + + Returns a constraint that tests whether the actual value + is a subset of the collection supplied as an argument. + + + + + Returns a constraint that tests whether the actual value + is a superset of the collection supplied as an argument. + + + + + Returns a constraint that tests whether a collection is ordered + + + + + Returns a new checking for the + presence of a particular object in the collection. + + + + + + Returns a new checking for the + presence of a particular object in the collection. + + + To search for a substring instead of a collection element, use the + overload. + + + + + + + Returns a new ContainsConstraint. This constraint + will, in turn, make use of the appropriate second-level + constraint, depending on the type of the actual argument. + + + To search for a collection element instead of a substring, use the + overload. + + + + + + Returns a new checking for the + presence of a particular object in the collection. + + + + + Returns a new ContainsConstraint. This constraint + will, in turn, make use of the appropriate second-level + constraint, depending on the type of the actual argument. + This overload is only used if the item sought is a string, + since any other type implies that we are looking for a + collection member. + + + + + Returns a new DictionaryContainsKeyConstraint checking for the + presence of a particular key in the Dictionary key collection. + + The key to be matched in the Dictionary key collection + + + + Returns a new DictionaryContainsValueConstraint checking for the + presence of a particular value in the Dictionary value collection. + + The value to be matched in the Dictionary value collection + + + + Returns a constraint that succeeds if the actual + value contains the substring supplied as an argument. + + + + + Returns a constraint that succeeds if the actual + value contains the substring supplied as an argument. + + + + + Returns a constraint that succeeds if the actual + value starts with the substring supplied as an argument. + + + + + Returns a constraint that succeeds if the actual + value starts with the substring supplied as an argument. + + + + + Returns a constraint that succeeds if the actual + value starts with the substring supplied as an argument. + + + + + Returns a constraint that succeeds if the actual + value ends with the substring supplied as an argument. + + + + + Returns a constraint that succeeds if the actual + value ends with the substring supplied as an argument. + + + + + Returns a constraint that succeeds if the actual + value ends with the substring supplied as an argument. + + + + + Returns a constraint that succeeds if the actual + value matches the regular expression supplied as an argument. + + + + + Returns a constraint that succeeds if the actual + value matches the regular expression supplied as an argument. + + + + + Returns a constraint that succeeds if the actual + value matches the regular expression supplied as an argument. + + + + + Returns a constraint that tests whether the path provided + is the same as an expected path after canonicalization. + + + + + Returns a constraint that tests whether the path provided + is the a subpath of the expected path after canonicalization. + + + + + Returns a constraint that tests whether the path provided + is the same path or under an expected path after canonicalization. + + + + + Returns a constraint that tests whether the actual value falls + inclusively within a specified range. + + Inclusive beginning of the range. + Inclusive end of the range. + + + + Returns a constraint that succeeds if the value + is a file or directory and it exists. + + + + + Returns a constraint that tests if an item is equal to any of parameters + + Expected values + + + + ConstraintStatus represents the status of a ConstraintResult + returned by a Constraint being applied to an actual value. + + + + + The status has not yet been set + + + + + The constraint succeeded + + + + + The constraint failed + + + + + An error occurred in applying the constraint (reserved for future use) + + + + + Contains the result of matching a against an actual value. + + + + + Constructs a for a particular . + + The Constraint to which this result applies. + The actual value to which the Constraint was applied. + + + + Constructs a for a particular . + + The Constraint to which this result applies. + The actual value to which the Constraint was applied. + The status of the new ConstraintResult. + + + + Constructs a for a particular . + + The Constraint to which this result applies. + The actual value to which the Constraint was applied. + If true, applies a status of Success to the result, otherwise Failure. + + + + The actual value that was passed to the method. + + + + + Gets and sets the ResultStatus for this result. + + + + + True if actual value meets the Constraint criteria otherwise false. + + + + + Display friendly name of the constraint. + + + + + Description of the constraint may be affected by the state the constraint had + when was performed against the actual value. + + + + + Write the failure message to the MessageWriter provided + as an argument. The default implementation simply passes + the result and the actual value to the writer, which + then displays the constraint description and the value. + + Constraints that need to provide additional details, + such as where the error occurred, can override this. + + The MessageWriter on which to display the message + + + + Write some additional failure message. + + The MessageWriter on which to display the message + + + + Write the actual value for a failing constraint test to a + MessageWriter. The default implementation simply writes + the raw value of actual, leaving it to the writer to + perform any formatting. + + The writer on which the actual value is displayed + + + + ContainsConstraint tests a whether a string contains a substring + or a collection contains an object. It postpones the decision of + which test to use until the type of the actual argument is known. + This allows testing whether a string is contained in a collection + or as a substring of another string using the same syntax. + + + + + Initializes a new instance of the class. + + The expected value contained within the string/collection. + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + Flag the constraint to ignore case and return self. + + + + + Test whether the constraint is satisfied by a given value + + The value to be tested + True for success, false for failure + + + + Applies a delay to the match so that a match can be evaluated in the future. + + + + + Allows only changing the time dimension of delay interval and setting a polling interval of a DelayedConstraint + + + + + Creates a new DelayedConstraint.WithRawDelayInterval + + Parent DelayedConstraint on which delay interval dimension is required to be set + + + + Changes delay interval dimension to minutes + + + + + Changes delay interval dimension to seconds + + + + + Changes delay interval dimension to milliseconds + + + + + Set polling interval, in milliseconds + + A time interval, in milliseconds + + + + + Allows only setting the polling interval of a DelayedConstraint + + + + + Creates a new DelayedConstraint.WithDimensionedDelayInterval + + Parent DelayedConstraint on which polling interval is required to be set + + + + Set polling interval, in milliseconds + + A time interval, in milliseconds + + + + + Allows only changing the time dimension of the polling interval of a DelayedConstraint + + + + + Creates a new DelayedConstraint.WithRawPollingInterval + + Parent DelayedConstraint on which polling dimension is required to be set + + + + Changes polling interval dimension to minutes + + + + + Changes polling interval dimension to seconds + + + + + Changes polling interval dimension to milliseconds + + + + + Delay value store as an Interval object + + + + + Polling value stored as an Interval object + + + + + Creates a new DelayedConstraint + + The inner constraint to decorate + The time interval after which the match is performed + If the value of is less than 0 + + + + Creates a new DelayedConstraint + + The inner constraint to decorate + The time interval after which the match is performed, in milliseconds + The time interval used for polling, in milliseconds + If the value of is less than 0 + + + + Gets text describing a constraint + + + + + Test whether the constraint is satisfied by a given value + + The value to be tested + True for if the base constraint fails, false if it succeeds + + + + Test whether the constraint is satisfied by a delegate + + The delegate whose value is to be tested + A ConstraintResult + + + + Test whether the constraint is satisfied by a given reference. + Overridden to wait for the specified delay period before + calling the base constraint with the dereferenced value. + + A reference to the value to be tested + True for success, false for failure + + + + Returns the string representation of the constraint. + + + + + Adjusts a Timestamp by a given TimeSpan + + + + + + + + Returns the difference between two Timestamps as a TimeSpan + + + + + + + + DictionaryContainsKeyConstraint is used to test whether a dictionary + contains an expected object as a key. + + + + + Construct a DictionaryContainsKeyConstraint + + + + + + The display name of this Constraint for use by ToString(). + The default value is the name of the constraint with + trailing "Constraint" removed. Derived classes may set + this to another name in their constructors. + + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + Gets the expected object + + + + + Flag the constraint to ignore case and return self. + + + + + Test whether the constraint is satisfied by a given value + + The value to be tested + + + + Test whether the expected key is contained in the dictionary + + + + + Flag the constraint to use the supplied predicate function + + The comparison function to use. + + + + Flag the constraint to use the supplied Comparison object. + + The Comparison object to use. + + + + Flag the constraint to use the supplied IComparer object. + + The IComparer object to use. + + + + Flag the constraint to use the supplied IComparer object. + + The IComparer object to use. + + + + Flag the constraint to use the supplied IEqualityComparer object. + + The IComparer object to use. + + + + Flag the constraint to use the supplied IEqualityComparer object. + + The IComparer object to use. + + + + Flag the constraint to use the supplied boolean-returning delegate. + + The supplied boolean-returning delegate to use. + + + + DictionaryContainsValueConstraint is used to test whether a dictionary + contains an expected object as a value. + + + + + Construct a DictionaryContainsValueConstraint + + + + + + The display name of this Constraint for use by ToString(). + The default value is the name of the constraint with + trailing "Constraint" removed. Derived classes may set + this to another name in their constructors. + + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + Gets the expected object + + + + + Test whether the expected value is contained in the dictionary + + + + + Flag the constraint to use the supplied predicate function + + The comparison function to use. + Self. + + + + Provides a for the constraints + that are applied to each item in the collection + + + + + Constructs a for a particular + Only used for Failure + + The Constraint to which this result applies + The actual value to which the Constraint was applied + Actual item that does not match expected condition + Non matching item index + + + + Write constraint description, actual items, and non-matching item + + The MessageWriter on which to display the message + + + + EmptyCollectionConstraint tests whether a collection is empty. + + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + Check that the collection is empty + + + + + + + EmptyConstraint tests a whether a string or collection is empty, + postponing the decision about which test is applied until the + type of the actual argument is known. + + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + Test whether the constraint is satisfied by a given value + + The value to be tested + True for success, false for failure + + + + EmptyDirectoryConstraint is used to test that a directory is empty + + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + Test whether the constraint is satisfied by a given value + + The value to be tested + True for success, false for failure + + + + EmptyStringConstraint tests whether a string is empty. + + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + Test whether the constraint is satisfied by a given value + + The value to be tested + True for success, false for failure + + + + EndsWithConstraint can test whether a string ends + with an expected substring. + + + + + Initializes a new instance of the class. + + The expected string + + + + Test whether the constraint is matched by the actual value. + This is a template method, which calls the IsMatch method + of the derived class. + + + + + + + EqualConstraint is able to compare an actual value with the + expected value provided in its constructor. Two objects are + considered equal if both are null, or if both have the same + value. NUnit has special semantics for some object types. + + + + + NUnitEqualityComparer used to test equality. + + + + + Initializes a new instance of the class. + + The expected value. + + + + Gets the tolerance for this comparison. + + + The tolerance. + + + + + Gets a value indicating whether to compare case insensitive. + + + true if comparing case insensitive; otherwise, false. + + + + + Gets a value indicating whether or not to clip strings. + + + true if set to clip strings otherwise, false. + + + + + Gets the failure points. + + + The failure points. + + + + + Flag the constraint to ignore case and return self. + + + + + Flag the constraint to suppress string clipping + and return self. + + + + + Flag the constraint to compare arrays as collections + and return self. + + + + + Flag the constraint to use a tolerance when determining equality. + + Tolerance value to be used + Self. + + + + Flags the constraint to include + property in comparison of two values. + + + Using this modifier does not allow to use the + constraint modifier. + + + + + Switches the .Within() modifier to interpret its tolerance as + a distance in representable values (see remarks). + + Self. + + Ulp stands for "unit in the last place" and describes the minimum + amount a given value can change. For any integers, an ulp is 1 whole + digit. For floating point values, the accuracy of which is better + for smaller numbers and worse for larger numbers, an ulp depends + on the size of the number. Using ulps for comparison of floating + point results instead of fixed tolerances is safer because it will + automatically compensate for the added inaccuracy of larger numbers. + + + + + Switches the .Within() modifier to interpret its tolerance as + a percentage that the actual values is allowed to deviate from + the expected value. + + Self + + + + Causes the tolerance to be interpreted as a TimeSpan in days. + + Self + + + + Causes the tolerance to be interpreted as a TimeSpan in hours. + + Self + + + + Causes the tolerance to be interpreted as a TimeSpan in minutes. + + Self + + + + Causes the tolerance to be interpreted as a TimeSpan in seconds. + + Self + + + + Causes the tolerance to be interpreted as a TimeSpan in milliseconds. + + Self + + + + Causes the tolerance to be interpreted as a TimeSpan in clock ticks. + + Self + + + + Flag the constraint to use the supplied IComparer object. + + The IComparer object to use. + Self. + + + + Flag the constraint to use the supplied IComparer object. + + The IComparer object to use. + Self. + + + + Flag the constraint to use the supplied boolean-returning delegate. + + The boolean-returning delegate to use. + Self. + + + + Flag the constraint to use the supplied Comparison object. + + The IComparer object to use. + Self. + + + + Flag the constraint to use the supplied IEqualityComparer object. + + The IComparer object to use. + Self. + + + + Flag the constraint to use the supplied IEqualityComparer object. + + The IComparer object to use. + Self. + + + + Flag the constraint to use the supplied predicate function + + The comparison function to use. + Self. + + + + Test whether the constraint is satisfied by a given value + + The value to be tested + True for success, false for failure + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + The EqualConstraintResult class is tailored for formatting + and displaying the result of an EqualConstraint. + + + + + Construct an EqualConstraintResult + + + + + Write a failure message. Overridden to provide custom + failure messages for EqualConstraint. + + The MessageWriter to write to + + + + Display the failure information for two collections that did not match. + + The MessageWriter on which to display + The expected collection. + The actual collection + The depth of this failure in a set of nested collections + + + + Displays a single line showing the types and sizes of the expected + and actual collections or arrays. If both are identical, the value is + only shown once. + + The MessageWriter on which to display + The expected collection or array + The actual collection or array + The indentation level for the message line + + + + Displays a single line showing the point in the expected and actual + arrays at which the comparison failed. If the arrays have different + structures or dimensions, both values are shown. + + The MessageWriter on which to display + The expected array + The actual array + Index of the failure point in the underlying collections + The indentation level for the message line + + + + Display the failure information for two IEnumerables that did not match. + + The MessageWriter on which to display + The expected enumeration. + The actual enumeration + The depth of this failure in a set of nested collections + + + + EqualityAdapter class handles all equality comparisons + that use an , + or a . + + + + + Compares two objects, returning true if they are equal + + + + + Returns true if the two objects can be compared by this adapter. + The base adapter cannot handle IEnumerables except for strings. + + + + + Returns an that wraps an . + + + + + that wraps an . + + + + + Returns an that wraps an . + + + + + Returns an EqualityAdapter that uses a predicate function for items comparison. + + + + + + + + + Returns true if the two objects can be compared by this adapter. + The base adapter cannot handle IEnumerables except for strings. + + + + + Compares two objects, returning true if they are equal + + + + + Returns true if the two objects can be compared by this adapter. + Generic adapter requires objects of the specified type. + + + + + Returns an that wraps an . + + + + + Returns an that wraps an . + + + + + that wraps an . + + + + + Returns an that wraps a . + + + + + ExactCountConstraint applies another constraint to each + item in a collection, succeeding only if a specified + number of items succeed. + + + + + Construct a standalone ExactCountConstraint + + + + + + Construct an ExactCountConstraint on top of an existing constraint + + + + + + + Apply the item constraint to each item in the collection, + succeeding only if the expected number of items pass. + + The value to be tested + A ConstraintResult + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + Contain the result of matching a against an actual value. + + + + + The maximum count of list elements that are shown on the constraint result + + + + + The count of matched items of the + + + + + A list with maximum count (+1) of items of the + (The maximum count is set in ) + + + + + Constructs a for a . + + The Constraint to which this result applies. + The actual value to which the Constraint was applied. + If true, applies a status of Success to the result, otherwise Failure. + Count of matched items of the + A list with maximum count (+1) of items of the + + + + Write the actual value for a failing constraint test to a MessageWriter. + + The writer on which the actual value is displayed + + + + ExactTypeConstraint is used to test that an object + is of the exact type provided in the constructor + + + + + Construct an ExactTypeConstraint for a given Type + + The expected Type. + + + + The display name of this Constraint for use by ToString(). + The default value is the name of the constraint with + trailing "Constraint" removed. Derived classes may set + this to another name in their constructors. + + + + + Apply the constraint to an actual value, returning true if it succeeds + + The actual argument + True if the constraint succeeds, otherwise false. + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + Applies the constraint to an actual value, returning a ConstraintResult. + + The value to be tested + A ConstraintResult + + + + ExceptionTypeConstraint is a special version of ExactTypeConstraint + used to provided detailed info about the exception thrown in + an error message. + + + + + Constructs an ExceptionTypeConstraint + + + + + Applies the constraint to an actual value, returning a ConstraintResult. + + The value to be tested + A ConstraintResult + + + + FalseConstraint tests that the actual value is false + + + + + Initializes a new instance of the class. + + + + + Test whether the constraint is satisfied by a given value + + The value to be tested + True for success, false for failure + + + + FileExistsConstraint is used to determine if a file exists + + + + + Initializes a new instance of the class. + + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + FileOrDirectoryExistsConstraint is used to determine if a file or directory exists + + + + + If true, the constraint will only check if files exist, not directories + + + + + If true, the constraint will only check if directories exist, not files + + + + + Initializes a new instance of the class that + will check files and directories. + + + + + Initializes a new instance of the class that + will only check files if ignoreDirectories is true. + + if set to true [ignore directories]. + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + Applies the constraint to an actual value, returning a ConstraintResult. + + The value to be tested + A ConstraintResult + + + Helper routines for working with floating point numbers + + + The floating point comparison code is based on this excellent article: + https://randomascii.wordpress.com/2012/02/25/comparing-floating-point-numbers-2012-edition/ + + + "ULP" means Unit in the Last Place and in the context of this library refers to + the distance between two adjacent floating point numbers. IEEE floating point + numbers can only represent a finite subset of natural numbers, with greater + accuracy for smaller numbers and lower accuracy for very large numbers. + + + If a comparison is allowed "2 ulps" of deviation, that means the values are + allowed to deviate by up to 2 adjacent floating point values, which might be + as low as 0.0000001 for small numbers or as high as 10.0 for large numbers. + + + + + Union of a floating point variable and an integer + + + The union's value as a floating point variable + + + The union's value as an integer + + + The union's value as an unsigned integer + + + Union of a double precision floating point variable and a long + + + The union's value as a double precision floating point variable + + + The union's value as a long + + + The union's value as an unsigned long + + + Compares two floating point values for equality + First floating point value to be compared + Second floating point value t be compared + + Maximum number of representable floating point values that are allowed to + be between the left and the right floating point values + + True if both numbers are equal or close to being equal + + + Floating point values can only represent a finite subset of natural numbers. + For example, the values 2.00000000 and 2.00000024 can be stored in a float, + but nothing between them. + + + This comparison will count how many possible floating point values are between + the left and the right number. If the number of possible values between both + numbers is less than or equal to maxUlps, then the numbers are considered as + being equal. + + + Implementation partially follows the code outlined here: + http://www.anttirt.net/2007/08/19/proper-floating-point-comparisons/ + + + + + Compares two double precision floating point values for equality + First double precision floating point value to be compared + Second double precision floating point value t be compared + + Maximum number of representable double precision floating point values that are + allowed to be between the left and the right double precision floating point values + + True if both numbers are equal or close to being equal + + + Double precision floating point values can only represent a limited series of + natural numbers. For example, the values 2.0000000000000000 and 2.0000000000000004 + can be stored in a double, but nothing between them. + + + This comparison will count how many possible double precision floating point + values are between the left and the right number. If the number of possible + values between both numbers is less than or equal to maxUlps, then the numbers + are considered as being equal. + + + Implementation partially follows the code outlined here: + http://www.anttirt.net/2007/08/19/proper-floating-point-comparisons/ + + + + + + Tests whether a value is greater than the value supplied to its constructor + + + + + Initializes a new instance of the class. + + The expected value. + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + Perform the comparison + + + + + Tests whether a value is greater than or equal to the value supplied to its constructor + + + + + Initializes a new instance of the class. + + The expected value. + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + Perform the comparison + + + + + Interface for all constraints + + + + + The display name of this Constraint for use by ToString(). + + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + Arguments provided to this Constraint, for use in + formatting the description. + + + + + The ConstraintBuilder holding this constraint + + + + + Applies the constraint to an actual value, returning a ConstraintResult. + + The value to be tested + A ConstraintResult + + + + Applies the constraint to an ActualValueDelegate that returns + the value to be tested. The default implementation simply evaluates + the delegate but derived classes may override it to provide for + delayed processing. + + An ActualValueDelegate + A ConstraintResult + + + + Test whether the constraint is satisfied by a given reference. + The default implementation simply dereferences the value but + derived classes may override it to provide for delayed processing. + + A reference to the value to be tested + A ConstraintResult + + + + InstanceOfTypeConstraint is used to test that an object + is of the same type provided or derived from it. + + + + + Construct an InstanceOfTypeConstraint for the type provided + + The expected Type + + + + The display name of this Constraint for use by ToString(). + The default value is the name of the constraint with + trailing "Constraint" removed. Derived classes may set + this to another name in their constructors. + + + + + Apply the constraint to an actual value, returning true if it succeeds + + The actual argument + True if the constraint succeeds, otherwise false. + + + + Keeps track of an interval time which can be represented in + Minutes, Seconds or Milliseconds + + + + + Constructs a interval given an value in milliseconds + + + + + Gets Interval value represented as a TimeSpan object + + + + + Returns the interval with the current value as a number of minutes. + + + + + Returns the interval with the current value as a number of seconds. + + + + + Returns the interval with the current value as a number of milliseconds. + + + + + Is true for intervals created with a non-zero value + + + + + Returns a string that represents the current object. + + + A string that represents the current object. + + + + + IntervalUnit provides the semantics to the value stored in Interval class. + + + + + Unit representing an Interval in minutes + + + + + Unit representing an Interval in seconds + + + + + Unit representing an Interval in milliseconds + + + + + The IResolveConstraint interface is implemented by all + complete and resolvable constraints and expressions. + + + + + Return the top-level constraint for this expression + + + + + + An extension of ResolvableConstraintExpression that adds a no-op Items property for readability. + + + + + Create a new instance of ItemsConstraintExpression + + + + + Create a new instance of ResolvableConstraintExpression, + passing in a pre-populated ConstraintBuilder. + + + + + + No-op property for readability. + + + + + Tests whether a value is less than the value supplied to its constructor + + + + + Initializes a new instance of the class. + + The expected value. + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + Perform the comparison + + + + + Tests whether a value is less than or equal to the value supplied to its constructor + + + + + Initializes a new instance of the class. + + The expected value. + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + Perform the comparison + + + + + MessageWriter is the abstract base for classes that write + constraint descriptions and messages in some form. The + class has separate methods for writing various components + of a message, allowing implementations to tailor the + presentation as needed. + + + + + Construct a MessageWriter given a culture + + + + + Abstract method to get the max line length + + + + + Method to write single line message with optional args, usually + written to precede the general failure message. + + The message to be written + Any arguments used in formatting the message + + + + Method to write single line message with optional args, usually + written to precede the general failure message, at a given + indentation level. + + The indentation level of the message + The message to be written + Any arguments used in formatting the message + + + + Display Expected and Actual lines for a constraint. This + is called by MessageWriter's default implementation of + WriteMessageTo and provides the generic two-line display. + + The failing constraint result + + + + Display Expected and Actual lines for given values. This + method may be called by constraints that need more control over + the display of actual and expected values than is provided + by the default implementation. + + The expected value + The actual value causing the failure + + + + Display Expected and Actual lines for given values, including + a tolerance value on the Expected line. + + The expected value + The actual value causing the failure + The tolerance within which the test was made + + + + Display the expected and actual string values on separate lines. + If the mismatch parameter is >=0, an additional line is displayed + line containing a caret that points to the mismatch point. + + The expected string value + The actual string value + The point at which the strings don't match or -1 + If true, case is ignored in locating the point where the strings differ + If true, the strings should be clipped to fit the line + + + + Writes the text for an actual value. + + The actual value. + + + + Writes the text for a generalized value. + + The value. + + + + Writes the text for a collection value, + starting at a particular point, to a max length + + The collection containing elements to write. + The starting point of the elements to write + The maximum number of elements to write + + + + Custom value formatter function + + The value + + + + + Custom value formatter factory function + + The next formatter function + ValueFormatter + If the given formatter is unable to handle a certain format, it must call the next formatter in the chain + + + + Static methods used in creating messages + + + + + Static string used when strings are clipped + + + + + Formatting strings used for expected and actual values + + + + + Current head of chain of value formatters. Public for testing. + + + + + Add a formatter to the chain of responsibility. + + + + + + Formats text to represent a generalized value. + + The value + The formatted text + + + + Formats text for a collection value, + starting at a particular point, to a max length + + The collection containing elements to write. + The starting point of the elements to write + The maximum number of elements to write + + + + Returns the representation of a type as used in NUnitLite. + This is the same as Type.ToString() except for arrays, + which are displayed with their declared sizes. + + + + + + + Converts any control characters in a string + to their escaped representation. + + The string to be converted + The converted string + + + + Converts any null characters in a string + to their escaped representation. + + The string to be converted + The converted string + + + + Return the a string representation for a set of indices into an array + + Array of indices for which a string is needed + + + + Get an array of indices representing the point in a collection or + array corresponding to a single int index into the collection. + + The collection to which the indices apply + Index in the collection + Array of indices + + + + Clip a string to a given length, starting at a particular offset, returning the clipped + string with ellipses representing the removed parts + + The string to be clipped + The maximum permitted length of the result string + The point at which to start clipping + The clipped string + + + + Clip the expected and actual strings in a coordinated fashion, + so that they may be displayed together. + + + + + + + + + Shows the position two strings start to differ. Comparison + starts at the start index. + + The expected string + The actual string + The index in the strings at which comparison should start + Boolean indicating whether case should be ignored + -1 if no mismatch found, or the index where mismatch found + + + + NaNConstraint tests that the actual value is a double or float NaN + + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + Test that the actual value is an NaN + + + + + + + NoItemConstraint applies another constraint to each + item in a collection, failing if any of them succeeds. + + + + + Construct a SomeItemsConstraint on top of an existing constraint + + + + + + The display name of this Constraint for use by ToString(). + The default value is the name of the constraint with + trailing "Constraint" removed. Derived classes may set + this to another name in their constructors. + + + + + Apply the item constraint to each item in the collection, + failing if any item fails. + + + + + + + NotConstraint negates the effect of some other constraint + + + + + Initializes a new instance of the class. + + The base constraint to be negated. + + + + Test whether the constraint is satisfied by a given value + + The value to be tested + True for if the base constraint fails, false if it succeeds + + + + NullConstraint tests that the actual value is null + + + + + Initializes a new instance of the class. + + + + + Applies the constraint to an actual value, returning a ConstraintResult. + + The value to be tested + A ConstraintResult + + + + The Numerics class contains common operations on numeric values. + + + + + Checks the type of the object, returning true if + the object is a numeric type. + + The object to check + true if the object is a numeric type + + + + Checks the type of the object, returning true if + the object is a floating point numeric type. + + The object to check + true if the object is a floating point numeric type + + + + Checks the type of the object, returning true if + the object is a fixed point numeric type. + + The object to check + true if the object is a fixed point numeric type + + + + Test two numeric values for equality, performing the usual numeric + conversions and using a provided or default tolerance. If the tolerance + provided is Empty, this method may set it to a default tolerance. + + The expected value + The actual value + A reference to the tolerance in effect + True if the values are equal + + + + Compare two numeric values, performing the usual numeric conversions. + + The expected value + The actual value + The relationship of the values to each other + + + + NUnitComparer encapsulates NUnit's default behavior + in comparing two objects. + + + + + Returns the default NUnitComparer. + + + + + Compares two objects + + + + + + + + NUnitEqualityComparer encapsulates NUnit's handling of + equality tests between objects. + + + + + If true, all string comparisons will ignore case + + + + + If true, arrays will be treated as collections, allowing + those of different dimensions to be compared + + + + + Comparison objects used in comparisons for some constraints. + + + + + List of points at which a failure occurred. + + + + + List of comparers used to compare pairs of objects. + + + + + Initializes a new instance of the class. + + + + + Returns the default NUnitEqualityComparer + + + + + Gets and sets a flag indicating whether case should + be ignored in determining equality. + + + + + Gets and sets a flag indicating that arrays should be + compared as collections, without regard to their shape. + + + + + Gets the list of external comparers to be used to + test for equality. They are applied to members of + collections, in place of NUnit's own logic. + + + + + Gets the list of failure points for the last Match performed. + The list consists of objects to be interpreted by the caller. + This generally means that the caller may only make use of + objects it has placed on the list at a particular depth. + + + + + Flags the comparer to include + property in comparison of two values. + + + Using this modifier does not allow to use the + modifier. + + + + + Compares two objects for equality within a tolerance. + + + + + FailurePoint class represents one point of failure + in an equality test. + + + + + The location of the failure + + + + + The expected value + + + + + The actual value + + + + + Indicates whether the expected value is valid + + + + + Indicates whether the actual value is valid + + + + + Represents a constraint that succeeds if all the + members of a collection match a base constraint. + + + + + Returns a constraint that will apply the argument + to the members of a collection, succeeding if + they all succeed. + + + + + Operator that requires both its arguments to succeed + + + + + Construct an AndOperator + + + + + Apply the operator to produce an AndConstraint + + + + + Operator that tests for the presence of a particular attribute + on a type and optionally applies further tests to the attribute. + + + + + Construct an AttributeOperator for a particular Type + + The Type of attribute tested + + + + Reduce produces a constraint from the operator and + any arguments. It takes the arguments from the constraint + stack and pushes the resulting constraint on it. + + + + + Abstract base class for all binary operators + + + + + Reduce produces a constraint from the operator and + any arguments. It takes the arguments from the constraint + stack and pushes the resulting constraint on it. + + + + + + Gets the left precedence of the operator + + + + + Gets the right precedence of the operator + + + + + Abstract method that produces a constraint by applying + the operator to its left and right constraint arguments. + + + + + Abstract base for operators that indicate how to + apply a constraint to items in a collection. + + + + + Constructs a CollectionOperator + + + + + The ConstraintOperator class is used internally by a + ConstraintBuilder to represent an operator that + modifies or combines constraints. + + Constraint operators use left and right precedence + values to determine whether the top operator on the + stack should be reduced before pushing a new operator. + + + + + The precedence value used when the operator + is about to be pushed to the stack. + + + + + The precedence value used when the operator + is on the top of the stack. + + + + + The syntax element preceding this operator + + + + + The syntax element following this operator + + + + + The precedence value used when the operator + is about to be pushed to the stack. + + + + + The precedence value used when the operator + is on the top of the stack. + + + + + Reduce produces a constraint from the operator and + any arguments. It takes the arguments from the constraint + stack and pushes the resulting constraint on it. + + + + + + Represents a constraint that succeeds if the specified + count of members of a collection match a base constraint. + + + + + Construct an ExactCountOperator for a specified count + + The expected count + + + + Reduce produces a constraint from the operator and + any arguments. It takes the arguments from the constraint + stack and pushes the resulting constraint on it. + + + + + + Represents a constraint that succeeds if none of the + members of a collection match a base constraint. + + + + + Returns a constraint that will apply the argument + to the members of a collection, succeeding if + none of them succeed. + + + + + Negates the test of the constraint it wraps. + + + + + Constructs a new NotOperator + + + + + Returns a NotConstraint applied to its argument. + + + + + Operator that requires at least one of its arguments to succeed + + + + + Construct an OrOperator + + + + + Apply the operator to produce an OrConstraint + + + + + PrefixOperator takes a single constraint and modifies + its action in some way. + + + + + Reduce produces a constraint from the operator and + any arguments. It takes the arguments from the constraint + stack and pushes the resulting constraint on it. + + + + + + Returns the constraint created by applying this + prefix to another constraint. + + + + + + + Operator used to test for the presence of a named Property + on an object and optionally apply further tests to the + value of that property. + + + + + Gets the name of the property to which the operator applies + + + + + Constructs a PropOperator for a particular named property + + + + + Reduce produces a constraint from the operator and + any arguments. It takes the arguments from the constraint + stack and pushes the resulting constraint on it. + + + + + + Abstract base class for operators that are able to reduce to a + constraint whether or not another syntactic element follows. + + + + + Represents a constraint that succeeds if any of the + members of a collection match a base constraint. + + + + + Returns a constraint that will apply the argument + to the members of a collection, succeeding if + any of them succeed. + + + + + Operator that tests that an exception is thrown and + optionally applies further tests to the exception. + + + + + Construct a ThrowsOperator + + + + + Reduce produces a constraint from the operator and + any arguments. It takes the arguments from the constraint + stack and pushes the resulting constraint on it. + + + + + Represents a constraint that simply wraps the + constraint provided as an argument, without any + further functionality, but which modifies the + order of evaluation because of its precedence. + + + + + Constructor for the WithOperator + + + + + Returns a constraint that wraps its argument + + + + + OrConstraint succeeds if either member succeeds + + + + + Create an OrConstraint from two other constraints + + The first constraint + The second constraint + + + + Gets text describing a constraint + + + + + Apply the member constraints to an actual value, succeeding + succeeding as soon as one of them succeeds. + + The actual value + True if either constraint succeeded + + + + PathConstraint serves as the abstract base of constraints + that operate on paths and provides several helper methods. + + + + + Construct a PathConstraint for a give expected path + + The expected path + + + + Modifies the current instance to be case-sensitive + and returns it. + + + + + Returns the string representation of this constraint + + + + + Canonicalize the provided path + + + The path in standardized form + + + + Test whether one path in canonical form is a subpath of another path + + The first path - supposed to be the parent path + The second path - supposed to be the child path + + + + + Predicate constraint wraps a Predicate in a constraint, + returning success if the predicate is true. + + + + + Construct a PredicateConstraint from a predicate + + + + + Gets text describing a constraint + + + + + Determines whether the predicate succeeds when applied + to the actual value. + + + + + Abstract base class used for prefixes + + + + + The base constraint + + + + + Prefix used in forming the constraint description + + + + + Construct given a base constraint + + + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + Formats a prefix constraint's description. + + + + + PropertyConstraint extracts a named property and uses + its value as the actual value for a chained constraint. + + + + + Initializes a new instance of the class. + + The name. + The constraint to apply to the property. + + + + Test whether the constraint is satisfied by a given value + + The value to be tested + + + + Returns the string representation of the constraint. + + + + + Contains the result of matching a against an actual value. + + + + + Constructs a for a particular . + + The Constraint to which this result applies. + The base result with actual value to which the Constraint was applied. + + + + Write the additional failure message for a failing constraint to a + MessageWriter. + + The writer on which the actual value is displayed + + + + PropertyExistsConstraint tests that a named property + exists on the object provided through Match. + + Originally, PropertyConstraint provided this feature + in addition to making optional tests on the value + of the property. The two constraints are now separate. + + + + + Initializes a new instance of the class. + + The name of the property. + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + Test whether the property exists for a given object + + The object to be tested + True for success, false for failure + + + + Returns the string representation of the constraint. + + + + + + RangeConstraint tests whether two values are within a + specified range. + + + + + Initializes a new instance of the class. + + Inclusive beginning of the range. + Inclusive end of the range. + + + + Gets text describing a constraint + + + + + Test whether the constraint is satisfied by a given value + + The value to be tested + True for success, false for failure + + + + Modifies the constraint to use an and returns self. + + + + + Modifies the constraint to use an and returns self. + + + + + Modifies the constraint to use a and returns self. + + + + + RegexConstraint can test whether a string matches + the pattern provided. + + + + + Initializes a new instance of the class. + + The pattern. + + + + Test whether the constraint is satisfied by a given value + + The value to be tested + True for success, false for failure + + + + ResolvableConstraintExpression is used to represent a compound + constraint being constructed at a point where the last operator + may either terminate the expression or may have additional + qualifying constraints added to it. + + It is used, for example, for a Property element or for + an Exception element, either of which may be optionally + followed by constraints that apply to the property or + exception. + + + + + Create a new instance of ResolvableConstraintExpression + + + + + Create a new instance of ResolvableConstraintExpression, + passing in a pre-populated ConstraintBuilder. + + + + + Appends an And Operator to the expression + + + + + Appends an Or operator to the expression. + + + + + Resolve the current expression to a Constraint + + + + + ReusableConstraint wraps a constraint expression after + resolving it so that it can be reused consistently. + + + + + Construct a ReusableConstraint from a constraint expression + + The expression to be resolved and reused + + + + Converts a constraint to a ReusableConstraint + + The constraint to be converted + A ReusableConstraint + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Return the top-level constraint for this expression + + + + + + SameAsConstraint tests whether an object is identical to + the object passed to its constructor + + + + + Initializes a new instance of the class. + + The expected object. + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + Test whether the constraint is satisfied by a given value + + The value to be tested + True for success, false for failure + + + + Summary description for SamePathConstraint. + + + + + Initializes a new instance of the class. + + The expected path + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + Test whether the constraint is satisfied by a given value + + The value to be tested + True for success, false for failure + + + + SamePathOrUnderConstraint tests that one path is under another + + + + + Initializes a new instance of the class. + + The expected path + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + Test whether the constraint is satisfied by a given value + + The value to be tested + True for success, false for failure + + + + SomeItemsConstraint applies another constraint to each + item in a collection, succeeding if any of them succeeds. + + + + + Construct a SomeItemsConstraint on top of an existing constraint + + + + + + The display name of this Constraint for use by ToString(). + The default value is the name of the constraint with + trailing "Constraint" removed. Derived classes may set + this to another name in their constructors. + + + + + Apply the item constraint to each item in the collection, + succeeding if any item succeeds. + + + + + + + Flag the constraint to use the supplied object. + + The type of the elements in the collection. + The type of the member. + The comparison function to use. + Self. + + + + Flag the constraint to use the supplied object. + + The IComparer object to use. + Self. + + + + Flag the constraint to use the supplied object. + + The IComparer object to use. + Self. + + + + Flag the constraint to use the supplied object. + + The IComparer object to use. + Self. + + + + Flag the constraint to use the supplied object. + + The IComparer object to use. + Self. + + + + Flag the constraint to use the supplied object. + + The IComparer object to use. + Self. + + + + StartsWithConstraint can test whether a string starts + with an expected substring. + + + + + Initializes a new instance of the class. + + The expected string + + + + Test whether the constraint is matched by the actual value. + This is a template method, which calls the IsMatch method + of the derived class. + + + + + + + StringConstraint is the abstract base for constraints + that operate on strings. It supports the IgnoreCase + modifier for string operations. + + + + + The expected value + + + + + Indicates whether tests should be case-insensitive + + + + + Description of this constraint + + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + Constructs a StringConstraint without an expected value + + + + + Constructs a StringConstraint given an expected value + + The expected value + + + + Modify the constraint to ignore case in matching. + + + + + Test whether the constraint is satisfied by a given value + + The value to be tested + True for success, false for failure + + + + Test whether the constraint is satisfied by a given string + + The string to be tested + True for success, false for failure + + + + SubPathConstraint tests that the actual path is under the expected path + + + + + Initializes a new instance of the class. + + The expected path + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + Test whether the constraint is satisfied by a given value + + The value to be tested + True for success, false for failure + + + + SubstringConstraint can test whether a string contains + the expected substring. + + + + + Initializes a new instance of the class. + + The expected. + + + + Modify the constraint to ignore case in matching. + This will call Using(StringComparison.CurrentCultureIgnoreCase). + + Thrown when a comparison type different + than was already set. + + + + Test whether the constraint is satisfied by a given value + + The value to be tested + True for success, false for failure + + + + Modify the constraint to the specified comparison. + + Thrown when a comparison type different + than was already set. + + + + ThrowsConstraint is used to test the exception thrown by + a delegate by applying a constraint to it. + + + + + Initializes a new instance of the class, + using a constraint to be applied to the exception. + + A constraint to apply to the caught exception. + + + + Get the actual exception thrown - used by Assert.Throws. + + + + + Gets text describing a constraint + + + + + Executes the code of the delegate and captures any exception. + If a non-null base constraint was provided, it applies that + constraint to the exception. + + A delegate representing the code to be tested + True if an exception is thrown and the constraint succeeds, otherwise false + + + + Converts an ActualValueDelegate to a TestDelegate + before calling the primary overload. + + + + + + + Write the actual value for a failing constraint test to a + MessageWriter. This override only handles the special message + used when an exception is expected but none is thrown. + + The writer on which the actual value is displayed + + + + ThrowsExceptionConstraint tests that an exception has + been thrown, without any further tests. + + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + Executes the code and returns success if an exception is thrown. + + A delegate representing the code to be tested + True if an exception is thrown, otherwise false + + + + Applies the constraint to an ActualValueDelegate that returns + the value to be tested. The default implementation simply evaluates + the delegate but derived classes may override it to provide for + delayed processing. + + + + + ThrowsNothingConstraint tests that a delegate does not + throw an exception. + + + + + Gets text describing a constraint + + + + + Test whether the constraint is satisfied by a given value + + The value to be tested + True if no exception is thrown, otherwise false + + + + Applies the constraint to an ActualValueDelegate that returns + the value to be tested. The default implementation simply evaluates + the delegate but derived classes may override it to provide for + delayed processing. + + An ActualValueDelegate + A ConstraintResult + + + + The Tolerance class generalizes the notion of a tolerance + within which an equality test succeeds. Normally, it is + used with numeric types, but it can be used with any + type that supports taking a difference between two + objects and comparing that difference to a value. + + + + + Returns a default Tolerance object, equivalent to an exact match. + + + + + Returns an empty Tolerance object, equivalent to an exact match. + + + + + Constructs a linear tolerance of a specified amount + + + + + Constructs a tolerance given an amount and + + + + + Returns a new tolerance, using the current amount as a percentage. + + + + + Returns a new tolerance, using the current amount in Ulps + + + + + Returns a new tolerance with a as the amount, using + the current amount as a number of days. + + + + + Returns a new tolerance with a as the amount, using + the current amount as a number of hours. + + + + + Returns a new tolerance with a as the amount, using + the current amount as a number of minutes. + + + + + Returns a new tolerance with a as the amount, using + the current amount as a number of seconds. + + + + + Returns a new tolerance with a as the amount, using + the current amount as a number of milliseconds. + + + + + Returns a new tolerance with a as the amount, using + the current amount as a number of clock ticks. + + + + + Gets the for the current Tolerance + + + + + Gets the magnitude of the current Tolerance instance. + + + + + Returns true if the current tolerance has not been set or is using the . + + + + + Apply the tolerance to an expected value and return + a Tolerance.Range that represents the acceptable values. + + + + + Tests that the current Tolerance is linear with a + numeric value, throwing an exception if it is not. + + + + + Tolerance.Range represents the range of values that match + a specific tolerance, when applied to a specific value. + + + + + The lower bound of the range + + + + + The upper bound of the range + + + + + Constructs a range + + + + + Modes in which the tolerance value for a comparison can be interpreted. + + + + + The tolerance was created with a value, without specifying + how the value would be used. This is used to prevent setting + the mode more than once and is generally changed to Linear + upon execution of the test. + + + + + The tolerance is used as a numeric range within which + two compared values are considered to be equal. + + + + + Interprets the tolerance as the percentage by which + the two compared values my deviate from each other. + + + + + Compares two values based in their distance in + representable numbers. + + + + + TrueConstraint tests that the actual value is true + + + + + Initializes a new instance of the class. + + + + + Test whether the constraint is satisfied by a given value + + The value to be tested + True for success, false for failure + + + + TypeConstraint is the abstract base for constraints + that take a Type as their expected value. + + + + + The expected Type used by the constraint + + + + + The type of the actual argument to which the constraint was applied + + + + + Construct a TypeConstraint for a given Type + + The expected type for the constraint + Prefix used in forming the constraint description + + + + Applies the constraint to an actual value, returning a ConstraintResult. + + The value to be tested + A ConstraintResult + + + + Apply the constraint to an actual value, returning true if it succeeds + + The actual argument + True if the constraint succeeds, otherwise false. + + + + UniqueItemsConstraint tests whether all the items in a + collection are unique. + + + + + The Description of what this constraint tests, for + use in messages and in the ConstraintResult. + + + + + Check that all items are unique. + + + + + + + XmlSerializableConstraint tests whether + an object is serializable in XML format. + + + + + Gets text describing a constraint + + + + + Test whether the constraint is satisfied by a given value + + The value to be tested + True for success, false for failure + + + + Returns the string representation of this constraint + + + + + Helper class with properties and methods that supply + a number of constraints used in Asserts. + + + + + Returns a new checking for the + presence of a particular object in the collection. + + + + + Returns a new DictionaryContainsKeyConstraint checking for the + presence of a particular key in the dictionary. + + + + + Returns a new DictionaryContainsValueConstraint checking for the + presence of a particular value in the dictionary. + + + + + Returns a constraint that succeeds if the actual + value contains the substring supplied as an argument. + + + + + Asserts on Directories + + + + + DO NOT USE! Use DirectoryAssert.AreEqual(...) instead. + The Equals method throws an InvalidOperationException. This is done + to make sure there is no mistake by calling this function. + + + + + + + DO NOT USE! + The ReferenceEquals method throws an InvalidOperationException. This is done + to make sure there is no mistake by calling this function. + + + + + + + Verifies that two directories are equal. Two directories are considered + equal if both are null, or if both point to the same directory. + If they are not equal an is thrown. + + A directory containing the value that is expected + A directory containing the actual value + The message to display if the directories are not equal + Arguments to be used in formatting the message + + + + Verifies that two directories are equal. Two directories are considered + equal if both are null, or if both point to the same directory. + If they are not equal an is thrown. + + A directory containing the value that is expected + A directory containing the actual value + + + + Asserts that two directories are not equal. If they are equal + an is thrown. + + A directory containing the value that is expected + A directory containing the actual value + The message to display if directories are not equal + Arguments to be used in formatting the message + + + + Asserts that two directories are not equal. If they are equal + an is thrown. + + A directory containing the value that is expected + A directory containing the actual value + + + + Asserts that the directory exists. If it does not exist + an is thrown. + + A directory containing the actual value + The message to display if directories are not equal + Arguments to be used in formatting the message + + + + Asserts that the directory exists. If it does not exist + an is thrown. + + A directory containing the actual value + + + + Asserts that the directory exists. If it does not exist + an is thrown. + + The path to a directory containing the actual value + The message to display if directories are not equal + Arguments to be used in formatting the message + + + + Asserts that the directory exists. If it does not exist + an is thrown. + + The path to a directory containing the actual value + + + + Asserts that the directory does not exist. If it does exist + an is thrown. + + A directory containing the actual value + The message to display if directories are not equal + Arguments to be used in formatting the message + + + + Asserts that the directory does not exist. If it does exist + an is thrown. + + A directory containing the actual value + + + + Asserts that the directory does not exist. If it does exist + an is thrown. + + The path to a directory containing the actual value + The message to display if directories are not equal + Arguments to be used in formatting the message + + + + Asserts that the directory does not exist. If it does exist + an is thrown. + + The path to a directory containing the actual value + + + + Helper class with properties and methods that supply + a number of constraints used in Asserts. + + + + + Returns a ConstraintExpression that negates any + following constraint. + + + + + Returns a constraint that succeeds if the value + is a file or directory and it exists. + + + + + Returns a new checking for the + presence of a particular object in the collection. + + + + + Returns a new . This constraint + will, in turn, make use of the appropriate second-level + constraint, depending on the type of the actual argument. + This overload is only used if the item sought is a string, + since any other type implies that we are looking for a + collection member. + + + + + Returns a new DictionaryContainsKeyConstraint checking for the + presence of a particular key in the Dictionary key collection. + + The key to be matched in the Dictionary key collection + + + + Returns a new DictionaryContainsValueConstraint checking for the + presence of a particular value in the Dictionary value collection. + + The value to be matched in the Dictionary value collection + + + + Returns a constraint that succeeds if the actual + value starts with the substring supplied as an argument. + + + + + Returns a constraint that succeeds if the actual + value ends with the substring supplied as an argument. + + + + + Returns a constraint that succeeds if the actual + value matches the regular expression supplied as an argument. + + + + + Thrown when an assertion failed. + + + + The error message that explains + the reason for the exception + + + The error message that explains + the reason for the exception + The exception that caused the + current exception + + + + Serialization Constructor + + + + + Gets the ResultState provided by this exception + + + + + Thrown when an assertion failed. + + + + + + + The error message that explains + the reason for the exception + The exception that caused the + current exception + + + + Serialization Constructor + + + + + Gets the ResultState provided by this exception + + + + + Thrown when a test executes inconclusively. + + + + The error message that explains + the reason for the exception + + + The error message that explains + the reason for the exception + The exception that caused the + current exception + + + + Serialization Constructor + + + + + Gets the ResultState provided by this exception + + + + + Thrown when an assertion failed. + + + + + Default Constructor + + + + + Construct based on the TestResult so far. This is the constructor + used normally, when exiting the multiple assert block with failures. + Not used internally but provided to facilitate debugging. + + + The current result, up to this point. The result is not used + internally by NUnit but is provided to facilitate debugging. + + + + The error message that explains + the reason for the exception + The exception that caused the + current exception + + + + Serialization Constructor + + + + + Gets the provided by this exception. + + + + + Gets the of this test at the point the exception was thrown, + + + + + Abstract base for Exceptions that terminate a test and provide a ResultState. + + + + The error message that explains + the reason for the exception + + + The error message that explains + the reason for the exception + The exception that caused the + current exception + + + + Serialization Constructor + + + + + Gets the ResultState provided by this exception + + + + + Thrown when an assertion failed. + + + + + + + The error message that explains + the reason for the exception + The exception that caused the + current exception + + + + Serialization Constructor + + + + + Gets the ResultState provided by this exception + + + + + Contains extension methods that do not require a special using directive. + + + + + Asserts on Files + + + + + DO NOT USE! Use FileAssert.AreEqual(...) instead. + The Equals method throws an InvalidOperationException. This is done + to make sure there is no mistake by calling this function. + + + + + + + DO NOT USE! + The ReferenceEquals method throws an InvalidOperationException. This is done + to make sure there is no mistake by calling this function. + + + + + + + Verifies that two Streams are equal. Two Streams are considered + equal if both are null, or if both have the same value byte for byte. + If they are not equal an is thrown. + + The expected Stream + The actual Stream + The message to display if Streams are not equal + Arguments to be used in formatting the message + + + + Verifies that two Streams are equal. Two Streams are considered + equal if both are null, or if both have the same value byte for byte. + If they are not equal an is thrown. + + The expected Stream + The actual Stream + + + + Verifies that two files are equal. Two files are considered + equal if both are null, or if both have the same value byte for byte. + If they are not equal an is thrown. + + A file containing the value that is expected + A file containing the actual value + The message to display if Streams are not equal + Arguments to be used in formatting the message + + + + Verifies that two files are equal. Two files are considered + equal if both are null, or if both have the same value byte for byte. + If they are not equal an is thrown. + + A file containing the value that is expected + A file containing the actual value + + + + Verifies that two files are equal. Two files are considered + equal if both are null, or if both have the same value byte for byte. + If they are not equal an is thrown. + + The path to a file containing the value that is expected + The path to a file containing the actual value + The message to display if Streams are not equal + Arguments to be used in formatting the message + + + + Verifies that two files are equal. Two files are considered + equal if both are null, or if both have the same value byte for byte. + If they are not equal an is thrown. + + The path to a file containing the value that is expected + The path to a file containing the actual value + + + + Asserts that two Streams are not equal. If they are equal + an is thrown. + + The expected Stream + The actual Stream + The message to be displayed when the two Stream are the same. + Arguments to be used in formatting the message + + + + Asserts that two Streams are not equal. If they are equal + an is thrown. + + The expected Stream + The actual Stream + + + + Asserts that two files are not equal. If they are equal + an is thrown. + + A file containing the value that is expected + A file containing the actual value + The message to display if Streams are not equal + Arguments to be used in formatting the message + + + + Asserts that two files are not equal. If they are equal + an is thrown. + + A file containing the value that is expected + A file containing the actual value + + + + Asserts that two files are not equal. If they are equal + an is thrown. + + The path to a file containing the value that is expected + The path to a file containing the actual value + The message to display if Streams are not equal + Arguments to be used in formatting the message + + + + Asserts that two files are not equal. If they are equal + an is thrown. + + The path to a file containing the value that is expected + The path to a file containing the actual value + + + + Asserts that the file exists. If it does not exist + an is thrown. + + A file containing the actual value + The message to display if Streams are not equal + Arguments to be used in formatting the message + + + + Asserts that the file exists. If it does not exist + an is thrown. + + A file containing the actual value + + + + Asserts that the file exists. If it does not exist + an is thrown. + + The path to a file containing the actual value + The message to display if Streams are not equal + Arguments to be used in formatting the message + + + + Asserts that the file exists. If it does not exist + an is thrown. + + The path to a file containing the actual value + + + + Asserts that the file does not exist. If it does exist + an is thrown. + + A file containing the actual value + The message to display if Streams are not equal + Arguments to be used in formatting the message + + + + Asserts that the file does not exist. If it does exist + an is thrown. + + A file containing the actual value + + + + Asserts that the file does not exist. If it does exist + an is thrown. + + The path to a file containing the actual value + The message to display if Streams are not equal + Arguments to be used in formatting the message + + + + Asserts that the file does not exist. If it does exist + an is thrown. + + The path to a file containing the actual value + + + + Class used to guard against unexpected argument values + or operations by throwing an appropriate exception. + + + + + Throws an exception if an argument is null + + The value to be tested + The name of the argument + + + + Throws an exception if a string argument is null or empty + + The value to be tested + The name of the argument + + + + Throws an ArgumentOutOfRangeException if the specified condition is not met. + + The condition that must be met + The exception message to be used + The name of the argument + + + + Throws an ArgumentException if the specified condition is not met. + + The condition that must be met + The exception message to be used + The name of the argument + + + + Throws an InvalidOperationException if the specified condition is not met. + + The condition that must be met + The exception message to be used + + + + Throws an if the specified delegate is async void. + + + + + Throws an if the specified delegate is async void. + + + + + Helper class with properties and methods that supply + a number of constraints used in Asserts. + + + + + Returns a ConstraintExpression that negates any + following constraint. + + + + + Returns a ConstraintExpression, which will apply + the following constraint to all members of a collection, + succeeding if all of them succeed. + + + + + Returns a ConstraintExpression, which will apply + the following constraint to all members of a collection, + succeeding if at least one of them succeeds. + + + + + Returns a ConstraintExpression, which will apply + the following constraint to all members of a collection, + succeeding if all of them fail. + + + + + Returns a ConstraintExpression, which will apply + the following constraint to all members of a collection, + succeeding only if a specified number of them succeed. + + + + + Returns a which will apply + the following constraint to only one member of the collection, + and fail if none or more than one match occurs. + + + + + Returns a new PropertyConstraintExpression, which will either + test for the existence of the named property on the object + being tested or apply any following constraint to that property. + + + + + Returns a new ConstraintExpression, which will apply the following + constraint to the Length property of the object being tested. + + + + + Returns a new ConstraintExpression, which will apply the following + constraint to the Count property of the object being tested. + + + + + Returns a new ConstraintExpression, which will apply the following + constraint to the Message property of the object being tested. + + + + + Returns a new ConstraintExpression, which will apply the following + constraint to the InnerException property of the object being tested. + + + + + Returns a new AttributeConstraint checking for the + presence of a particular attribute on an object. + + + + + Returns a new AttributeConstraint checking for the + presence of a particular attribute on an object. + + + + + Returns a new checking for the + presence of a particular object in the collection. + + + + + The AssertionResult class represents the result of a single assertion. + + + + + Construct an AssertionResult + + + + The pass/fail status of the assertion + + + The message produced by the assertion, or null + + + The stack trace associated with the assertion, or null + + + + ToString Override + + + + + Override GetHashCode + + + + + Override Equals + + + + + + AssertionStatus enumeration represents the possible outcomes of an assertion. + The order of definition is significant, higher level values override lower + ones in determining the overall result of a test. + + + + + An assumption failed + + + + + The assertion succeeded + + + + + A warning message was issued + + + + + The assertion failed + + + + + An unexpected exception was thrown + + + + + The IApplyToContext interface is implemented by attributes + that want to make changes to the execution context before + a test is run. + + + + + Apply changes to the execution context + + The execution context + + + + The IApplyToTest interface is implemented by self-applying + attributes that modify the state of a test in some way. + + + + + Modifies a test as defined for the specific attribute. + + The test to modify + + + + CombiningStrategy is the abstract base for classes that + know how to combine values provided for individual test + parameters to create a set of test cases. + + + + + Gets the test cases generated by the CombiningStrategy. + + The test cases. + + + + ICommandWrapper is implemented by attributes and other + objects able to wrap a TestCommand with another command. + + + Attributes or other objects should implement one of the + derived interfaces, rather than this one, since they + indicate in which part of the command chain the wrapper + should be applied. + + + + + Wrap a command and return the result. + + The command to be wrapped + The wrapped command + + + + Objects implementing this interface are used to wrap + the TestMethodCommand itself. They apply after SetUp + has been run and before TearDown. + + + + + Objects implementing this interface are used to wrap + the entire test, including SetUp and TearDown. + + + + + Objects implementing this interface are used to wrap + tests that can repeat. The implementing command is run once, + invoking the chained commands any number of times. + + + + + Any ITest that implements this interface is at a level that the implementing + class should be disposed at the end of the test run + + + + + The IFixtureBuilder interface is exposed by a class that knows how to + build test fixtures from a specified type. In general, it is exposed + by an attribute, but it may be implemented in a helper class used by the + attribute in some cases. + + + + + Builds any number of test fixtures from the specified type. + + The type info of the fixture to be used. + + + + The IFixtureBuilder2 interface extends IFixtureBuilder by allowing + use of a PreFilter, which is used to select methods as test cases. + + + + + Builds any number of test fixtures from the specified type. + + The type info of the fixture to be used. + PreFilter to be used to select methods. + + + + IImplyFixture is an empty marker interface used by attributes like + TestAttribute that cause the class where they are used to be treated + as a TestFixture even without a TestFixtureAttribute. + + Marker interfaces are not usually considered a good practice, but + we use it here to avoid cluttering the attribute hierarchy with + classes that don't contain any extra implementation. + + + + + The IMethodInfo class is used to encapsulate information + about a method in a platform-independent manner. + + + + + Gets the Type from which this method was reflected. + + + + + Gets the MethodInfo for this method. + + + + + Gets the name of the method. + + + + + Gets a value indicating whether the method is abstract. + + + + + Gets a value indicating whether the method is public. + + + + + Gets a value indicating whether the method contains unassigned generic type parameters. + + + + + Gets a value indicating whether the method is a generic method. + + + + + Gets a value indicating whether the MethodInfo represents the definition of a generic method. + + + + + Gets the return Type of the method. + + + + + Gets the parameters of the method. + + + + + + Returns the Type arguments of a generic method or the Type parameters of a generic method definition. + + + + + Replaces the type parameters of the method with the array of types provided and returns a new IMethodInfo. + + The type arguments to be used + A new IMethodInfo with the type arguments replaced + + + + Invokes the method, converting any TargetInvocationException to an NUnitException. + + The object on which to invoke the method + The argument list for the method + The return value from the invoked method + + + + Provides data for a single test parameter. + + + + + Determines whether any data is available for a parameter. + + The parameter of a parameterized test. + + + + Retrieves a list of arguments which can be passed to the specified parameter. + + The parameter of a parameterized test. + + + + Provides data for a single test parameter. + + + + + Retrieves a list of arguments which can be passed to the specified parameter. + + The parameter of a parameterized test. + + + + The IParameterInfo interface is an abstraction of a .NET parameter. + + + + + Gets a value indicating whether the parameter is optional + + + + + Gets an IMethodInfo representing the method for which this is a parameter + + + + + Gets the underlying .NET ParameterInfo + + + + + Gets the Type of the parameter + + + + + Implemented by filters for use in deciding which + Types and Methods should be used to generate tests. + + + + + Use the filter on a Type, returning true if the type matches the filter + and should therefore be included in the discovery process. + + + + + Use the filter on a Type, returning true if the type matches the filter + and should therefore be included in the discovery process. + + + + + A PropertyBag represents a collection of name/value pairs + that allows duplicate entries with the same key. Methods + are provided for adding a new pair as well as for setting + a key to a single value. All keys are strings but values + may be of any type. Null values are not permitted, since + a null entry represents the absence of the key. + + The entries in a PropertyBag are of two kinds: those that + take a single value and those that take multiple values. + However, the PropertyBag has no knowledge of which entries + fall into each category and the distinction is entirely + up to the code using the PropertyBag. + + When working with multi-valued properties, client code + should use the Add method to add name/value pairs and + indexing to retrieve a list of all values for a given + key. For example: + + bag.Add("Tag", "one"); + bag.Add("Tag", "two"); + Assert.That(bag["Tag"], + Is.EqualTo(new string[] { "one", "two" })); + + When working with single-valued properties, client code + should use the Set method to set the value and Get to + retrieve the value. The GetSetting methods may also be + used to retrieve the value in a type-safe manner while + also providing default. For example: + + bag.Set("Priority", "low"); + bag.Set("Priority", "high"); // replaces value + Assert.That(bag.Get("Priority"), + Is.EqualTo("high")); + Assert.That(bag.GetSetting("Priority", "low"), + Is.EqualTo("high")); + + + + + Adds a key/value pair to the property bag + + The key + The value + + + + Sets the value for a key, removing any other + values that are already in the property set. + + + + + + + Gets a single value for a key, using the first + one if multiple values are present and returning + null if the value is not found. + + + + + Gets a flag indicating whether the specified key has + any entries in the property set. + + The key to be checked + True if their are values present, otherwise false + + + + Gets or sets the list of values for a particular key + + The key for which the values are to be retrieved or set + + + + Gets a collection containing all the keys in the property set + + + + + The IReflectionInfo interface is implemented by NUnit wrapper objects that perform reflection. + + + + + Returns an array of custom attributes of the specified type applied to this object + + + + + Returns a value indicating whether an attribute of the specified type is defined on this object. + + + + + The ISimpleTestBuilder interface is exposed by a class that knows how to + build a single tests from a specified method. In general, + it is exposed by an attribute, but it may be implemented in a helper class + used by the attribute in some cases. + + + + + Builds a single test from the specified method and context. + + The method to be used as a test + The TestSuite to which the method will be added + + + + The ISuiteBuilder interface is exposed by a class that knows how to + build a single test suite from a specified type. + + + + + Examine the type and determine if it is suitable for + this builder to use in building a TestSuite. + + Note that returning false will cause the type to be ignored + in loading the tests. If it is desired to load the suite + but label it as non-runnable, ignored, etc., then this + method must return true. + + The type of the fixture to be used + + + + Builds a single test suite from the specified type. + + The type of the fixture to be used + + + + Builds a single test suite from the specified type, subject + to a filter that decides which methods are included. + + The type of the fixture to be used + A PreFilter for selecting methods. + + + + Common interface supported by all representations + of a test. Only includes informational fields. + The Run method is specifically excluded to allow + for data-only representations of a test. + + + + + Gets the id of the test + + + + + Gets the name of the test + + + + + Gets the type of the test + + + + + Gets the fully qualified name of the test + + + + + Gets the name of the class containing this test. Returns + null if the test is not associated with a class. + + + + + Gets the name of the method implementing this test. + Returns null if the test is not implemented as a method. + + + + + Gets the Type of the test fixture, if applicable, or + null if no fixture type is associated with this test. + + + + + Gets the method which declares the test, or + if no method is associated with this test. + + + + + Gets the RunState of the test, indicating whether it can be run. + + + + + Count of the test cases ( 1 if this is a test case ) + + + + + Gets the properties of the test + + + + + Gets the parent test, if any. + + The parent test or null if none exists. + + + + Returns true if this is a test suite + + + + + Gets a bool indicating whether the current test + has any descendant tests. + + + + + Gets this test's child tests + + A list of child tests + + + + Gets a fixture object for running this test. + + + + + The arguments to use in creating the test or empty array if none are required. + + + + + The ITestBuilder interface is exposed by a class that knows how to + build tests from a specified method. In general, it is exposed + by an attribute which has additional information available to provide + the necessary test parameters to distinguish the test cases built. + + + + + Builds any number of tests from the specified method and context. + + The method to be used as a test + The TestSuite to which the method will be added + + + + The ITestCaseBuilder interface is exposed by a class that knows how to + build a test from a specified method, possibly containing child test cases. + + + + + Examine the method and determine if it is suitable for + this builder to use in building a TestCase to be + included in the suite being populated. + + Note that returning false will cause the method to be ignored + in loading the tests. If it is desired to load the method + but label it as non-runnable, ignored, etc., then this + method must return true. + + The test method to examine + The suite being populated + + + + Builds a single test from the specified method and context, + possibly containing child test cases. + + The method to be used as a test case + The test suite being populated, or null + + + + The ITestCaseData interface is implemented by a class + that is able to return complete test cases for use by + a parameterized test method. + + + + + Gets the expected result of the test case + + + + + Returns true if an expected result has been set + + + + + The ITestData interface is implemented by a class that + represents a single instance of a parameterized test. + + + + + Gets the name to be used for the test + + + + + Gets the RunState for this test case. + + + + + Gets the argument list to be provided to the test + + + + + Gets the property dictionary for the test case + + + + + Interface to be implemented by filters applied to tests. + The filter applies when running the test, after it has been + loaded, since this is the only time an ITest exists. + + + + + Determine if a particular test passes the filter criteria. Pass + may examine the parents and/or descendants of a test, depending + on the semantics of the particular filter + + The test to which the filter is applied + True if the test passes the filter, otherwise false + + + + Determine if a test matches the filter explicitly. That is, it must + be a direct match of the test itself or one of its children. + + The test to which the filter is applied + True if the test matches the filter explicitly, otherwise false + + + + The ITestCaseData interface is implemented by a class + that is able to return the data required to create an + instance of a parameterized test fixture. + + + + + Get the TypeArgs if separately set + + + + + The ITestListener interface is used internally to receive + notifications of significant events while a test is being + run. The events are propagated to clients by means of an + AsyncCallback. NUnit extensions may also monitor these events. + + + + + Called when a test has just started + + The test that is starting + + + + Called when a test has finished + + The result of the test + + + + Called when a test produces output for immediate display + + A TestOutput object containing the text to display + + + + Called when a test produces a message to be sent to listeners + + A object containing the text to send + + + + The ITestResult interface represents the result of a test. + + + + + Gets the ResultState of the test result, which + indicates the success or failure of the test. + + + + + Gets the name of the test result + + + + + Gets the full name of the test result + + + + + Gets the elapsed time for running the test in seconds + + + + + Gets or sets the time the test started running. + + + + + Gets or sets the time the test finished running. + + + + + Gets the message associated with a test + failure or with not running the test + + + + + Gets any stack trace associated with an + error or failure. + + + + Gets the number of asserts executed + when running the test and all its children. + + + + + Gets the number of test cases that failed + when running the test and all its children. + + + + + Gets the number of test cases that had warnings + when running the test and all its children. + + + + + Gets the number of test cases that passed + when running the test and all its children. + + + + + Gets the number of test cases that were skipped + when running the test and all its children. + + + + + Gets the number of test cases that were inconclusive + when running the test and all its children. + + + + + Indicates whether this result has any child results. + Accessing HasChildren should not force creation of the + Children collection in classes implementing this interface. + + + + + Gets the collection of child results. + + + + + Gets the Test to which this result applies. + + + + + Gets any text output written to this result. + + + + + Gets a list of AssertionResults associated with the test + + + + + Gets the collection of files attached to the test + + + + + The ITypeInfo interface is an abstraction of a .NET Type + + + + + Gets the underlying Type on which this ITypeInfo is based + + + + + Gets the base type of this type as an ITypeInfo + + + + + Returns true if the Type wrapped is equal to the argument + + + + + Gets the name of the Type + + + + + Gets the full name of the Type + + + + + Gets the assembly in which the type is declared + + + + + Gets the namespace of the Type + + + + + Gets a value indicating whether the type is abstract. + + + + + Gets a value indicating whether the Type is a generic Type + + + + + Gets a value indicating whether the Type has generic parameters that have not been replaced by specific Types. + + + + + Gets a value indicating whether the Type is a generic Type definition + + + + + Gets a value indicating whether the type is sealed. + + + + + Gets a value indicating whether this type is a static class. + + + + + Get the display name for this typeInfo. + + + + + Get the display name for an object of this type, constructed with specific arguments + + + + + Returns a Type representing a generic type definition from which this Type can be constructed. + + + + + Returns a new ITypeInfo representing an instance of this generic Type using the supplied Type arguments + + + + + Returns a value indicating whether this type has a method with a specified public attribute + + + + + Returns an array of IMethodInfos for methods of this Type + that match the specified flags. + + + + + Gets the public constructor taking the specified argument Types + + + + + Returns a value indicating whether this Type has a public constructor taking the specified argument Types. + + + + + Construct an object of this Type, using the specified arguments. + + + + + An object implementing IXmlNodeBuilder is able to build + an XML representation of itself and any children. + + + + + Returns a TNode representing the current object. + + If true, children are included where applicable + A TNode representing the result + + + + Returns a TNode representing the current object after + adding it as a child of the supplied parent node. + + The parent node. + If true, children are included, where applicable + + + + + The ResultState class represents the outcome of running a test. + It contains two pieces of information. The Status of the test + is an enum indicating whether the test passed, failed, was + skipped or was inconclusive. The Label provides a more + detailed breakdown for use by client runners. + + + + + Initializes a new instance of the class. + + The TestStatus. + + + + Initializes a new instance of the class. + + The TestStatus. + The label. + + + + Initializes a new instance of the class. + + The TestStatus. + The stage at which the result was produced + + + + Initializes a new instance of the class. + + The TestStatus. + The label. + The stage at which the result was produced + + + + The result is inconclusive + + + + + The test has been skipped. + + + + + The test has been ignored. + + + + + The test was skipped because it is explicit + + + + + The test succeeded + + + + + The test issued a warning + + + + + The test failed + + + + + The test encountered an unexpected exception + + + + + The test was cancelled by the user + + + + + The test was not runnable. + + + + + A suite failed because one or more child tests failed or had errors + + + + + A suite failed because one or more child tests had warnings + + + + + A suite is marked ignored because one or more child tests were ignored + + + + + A suite failed in its OneTimeSetUp + + + + + A suite had an unexpected exception in its OneTimeSetUp + + + + + A suite had an unexpected exception in its OneTimeDown + + + + + Gets the TestStatus for the test. + + The status. + + + + Gets the label under which this test result is + categorized, if any. + + + + + Gets the stage of test execution in which + the failure or other result took place. + + + + + Get a new ResultState, which is the same as the current + one but with the FailureSite set to the specified value. + + The FailureSite to use + A new ResultState + + + + Test whether this ResultState has the same Status and Label + as another one. In other words, the whether two are equal + ignoring the Site. + + + + + + + Determines whether the specified , is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Overload == operator for ResultStates + + + + + Overload != operator for ResultStates + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + The FailureSite enum indicates the stage of a test + in which an error or failure occurred. + + + + + Failure in the test itself + + + + + Failure in the SetUp method + + + + + Failure in the TearDown method + + + + + Failure of a parent test + + + + + Failure of a child test + + + + + The RunState enum indicates whether a test can be executed. + + + + + The test is not runnable. + + + + + The test is runnable. + + + + + The test can only be run explicitly + + + + + The test has been skipped. This value may + appear on a Test when certain attributes + are used to skip the test. + + + + + The test has been ignored. May appear on + a Test, when the IgnoreAttribute is used. + + + + + The TestAttachment class represents a file attached to a TestResult, + with an optional description. + + + + + Absolute file path to attachment file + + + + + User specifed description of attachment. May be null. + + + + + Creates a TestAttachment class to represent a file attached to a test result. + + Absolute file path to attachment file + User specifed description of attachment. May be null. + + + + The class holds a message sent by a test to all listeners + + + + + Construct with text, destination type and + the name of the test that produced the message. + + Destination of the message + Text to be sent + ID of the test that produced the message + + + + Converts object to string + + + + + The message to send to listeners + + + + + The Destination of the message. + + + + + The ID of the test that sent the message + + + + + Returns the XML representation of the object. + + + + + The TestOutput class holds a unit of output from + a test to a specific output stream + + + + + Construct with text, output destination type and + the name of the test that produced the output. + + Text to be output + Name of the stream or channel to which the text should be written + Id of the test that produced the output + FullName of test that produced the output + + + + Return string representation of the object for debugging + + + + + + Get the text + + + + + Get the output type + + + + + Get the name of the test that created the output + + + + + Get the id of the test that created the output + + + + + Convert the TestOutput object to an XML string + + + + + The TestStatus enum indicates the result of running a test + + + + + The test was inconclusive + + + + + The test has skipped + + + + + The test succeeded + + + + + There was a warning + + + + + The test failed + + + + + TNode represents a single node in the XML representation + of a Test or TestResult. It replaces System.Xml.XmlNode and + System.Xml.Linq.XElement, providing a minimal set of methods + for operating on the XML in a platform-independent manner. + + + + + Constructs a new instance of TNode + + The name of the node + + + + Constructs a new instance of TNode with a value + + The name of the node + The text content of the node + + + + Constructs a new instance of TNode with a value + + The name of the node + The text content of the node + Flag indicating whether to use CDATA when writing the text + + + + Gets the name of the node + + + + + Gets the value of the node + + + + + Gets a flag indicating whether the value should be output using CDATA. + + + + + Gets the dictionary of attributes + + + + + Gets a list of child nodes + + + + + Gets the first ChildNode + + + + + Gets the XML representation of this node. + + + + + Create a TNode from its XML text representation + + The XML text to be parsed + A TNode + + + + Adds a new element as a child of the current node and returns it. + + The element name. + The newly created child element + + + + Adds a new element with a value as a child of the current node and returns it. + + The element name + The text content of the new element + The newly created child element + + + + Adds a new element with a value as a child of the current node and returns it. + The value will be output using a CDATA section. + + The element name + The text content of the new element + The newly created child element + + + + Adds an attribute with a specified name and value to the XmlNode. + + The name of the attribute. + The value of the attribute. + + + + Finds a single descendant of this node matching an XPath + specification. The format of the specification is + limited to what is needed by NUnit and its tests. + + + + + + + Finds all descendants of this node matching an XPath + specification. The format of the specification is + limited to what is needed by NUnit and its tests. + + + + + Writes the XML representation of the node to an XmlWriter + + + + + + Class used to represent a list of XmlResults + + + + + Class used to represent the attributes of a node + + + + + Gets or sets the value associated with the specified key. + Overridden to return null if attribute is not found. + + The key. + Value of the attribute or null + + + + AssemblyHelper provides static methods for working + with assemblies. + + + + + Gets the path from which an assembly was loaded. + For builds where this is not possible, returns + the name of the assembly. + + The assembly. + The path. + + + + Gets the path to the directory from which an assembly was loaded. + + The assembly. + The path. + + + + Gets the AssemblyName of an assembly. + + The assembly + An AssemblyName + + + + Loads an assembly given a string, which may be the + path to the assembly or the AssemblyName + + + + + Gets the assembly path from code base. + + Public for testing purposes + The code base. + + + + + CombinatorialStrategy creates test cases by using all possible + combinations of the parameter data. + + + + + Gets the test cases generated by the CombiningStrategy. + + The test cases. + + + + Provides data from fields marked with the DatapointAttribute or the + DatapointsAttribute. + + + + + Determines whether any data is available for a parameter. + + The parameter of a parameterized test + + + + Retrieves data for use with the supplied parameter. + + The parameter of a parameterized test + + + + Built-in SuiteBuilder for all types of test classes. + + + + + Examine the type and determine if it is suitable for + this builder to use in building a TestSuite. + + Note that returning false will cause the type to be ignored + in loading the tests. If it is desired to load the suite + but label it as non-runnable, ignored, etc., then this + method must return true. + + The fixture type to check + + + + Builds a single test suite from the specified type. + + The fixture type to build + + + + Builds a single test suite from the specified type, subject + to a filter that decides which methods are included. + + The fixture type to build + A PreFilter for selecting methods. + + + + We look for attributes implementing IFixtureBuilder at one level + of inheritance at a time. Attributes on base classes are not used + unless there are no fixture builder attributes at all on the derived + class. This is by design. + + The type being examined for attributes + + + + Class to build ether a parameterized or a normal NUnitTestMethod. + There are four cases that the builder must deal with: + 1. The method needs no params and none are provided + 2. The method needs params and they are provided + 3. The method needs no params but they are provided in error + 4. The method needs params but they are not provided + This could have been done using two different builders, but it + turned out to be simpler to have just one. The BuildFrom method + takes a different branch depending on whether any parameters are + provided, but all four cases are dealt with in lower-level methods + + + + + Determines if the method can be used to build an NUnit test + test method of some kind. The method must normally be marked + with an identifying attribute for this to be true. + + Note that this method does not check that the signature + of the method for validity. If we did that here, any + test methods with invalid signatures would be passed + over in silence in the test run. Since we want such + methods to be reported, the check for validity is made + in BuildFrom rather than here. + + An IMethodInfo for the method being used as a test method + + + + Builds a single test from the specified method and context, + possibly containing child test cases. + + The method for which a test is to be built + + + + Determines if the method can be used to build an NUnit test + test method of some kind. The method must normally be marked + with an identifying attribute for this to be true. + + Note that this method does not check that the signature + of the method for validity. If we did that here, any + test methods with invalid signatures would be passed + over in silence in the test run. Since we want such + methods to be reported, the check for validity is made + in BuildFrom rather than here. + + An IMethodInfo for the method being used as a test method + The test suite being built, to which the new test would be added + + + + Builds a single test from the specified method and context, + possibly containing child test cases. + + The method for which a test is to be built + The test fixture being populated, or null + + + + Builds a ParameterizedMethodSuite containing individual test cases. + + The method for which a test is to be built. + The list of test cases to include. + + + + Build a simple, non-parameterized TestMethod for this method. + + The MethodInfo for which a test is to be built + The test suite for which the method is being built + + + + Class that can build a tree of automatic namespace + suites from a group of fixtures. + + + + + NamespaceDictionary of all test suites we have created to represent + namespaces. Used to locate namespace parent suites for fixtures. + + + + + Point in the tree where items in the global namespace are added + + + + + Initializes a new instance of the class. + + The root suite. + + + + Gets the root entry in the tree created by the NamespaceTreeBuilder. + + The root suite. + + + + Adds the specified fixtures to the tree. + + The fixtures to be added. + + + + Adds the specified fixture to the tree. + + The fixture to be added. + + + + NUnitTestCaseBuilder is a utility class used by attributes + that build test cases. + + + + + Constructs an + + + + + Builds a single NUnitTestMethod, either as a child of the fixture + or as one of a set of test cases under a ParameterizedTestMethodSuite. + + The MethodInfo from which to construct the TestMethod + The suite or fixture to which the new test will be added + The ParameterSet to be used, or null + + + + Checks to see if we have valid combinations of attributes. + + The TestMethod to be checked. If it + is found to be non-runnable, it will be modified. + True if the method signature is valid, false if not + + + + Helper method that checks the signature of a TestMethod and + any supplied parameters to determine if the test is valid. + + Currently, NUnitTestMethods are required to be public, + non-abstract methods, either static or instance, + returning void. They may take arguments but the values must + be provided or the TestMethod is not considered runnable. + + Methods not meeting these criteria will be marked as + non-runnable and the method will return false in that case. + + The TestMethod to be checked. If it + is found to be non-runnable, it will be modified. + Parameters to be used for this test, or null + True if the method signature is valid, false if not + + The return value is no longer used internally, but is retained + for testing purposes. + + + + + NUnitTestFixtureBuilder is able to build a fixture given + a class marked with a TestFixtureAttribute or an unmarked + class containing test methods. In the first case, it is + called by the attribute and in the second directly by + NUnitSuiteBuilder. + + + + + Build a TestFixture from type provided. A non-null TestSuite + must always be returned, since the method is generally called + because the user has marked the target class as a fixture. + If something prevents the fixture from being used, it should + be returned nonetheless, labelled as non-runnable. + + An ITypeInfo for the fixture to be used. + Filter used to select methods as tests. + A TestSuite object or one derived from TestSuite. + + + + Overload of BuildFrom called by tests that have arguments. + Builds a fixture using the provided type and information + in the ITestFixtureData object. + + The TypeInfo for which to construct a fixture. + Filter used to select methods as tests. + An object implementing ITestFixtureData or null. + + + + + Method to add test cases to the newly constructed fixture. + + + + + Method to create a test case from a MethodInfo and add + it to the fixture being built. It first checks to see if + any global TestCaseBuilder addin wants to build the + test case. If not, it uses the internal builder + collection maintained by this fixture builder. + + The default implementation has no test case builders. + Derived classes should add builders to the collection + in their constructor. + + The method for which a test is to be created + The test suite being built. + A newly constructed Test + + + + PairwiseStrategy creates test cases by combining the parameter + data so that all possible pairs of data items are used. + + + + The number of test cases that cover all possible pairs of test function + parameters values is significantly less than the number of test cases + that cover all possible combination of test function parameters values. + And because different studies show that most of software failures are + caused by combination of no more than two parameters, pairwise testing + can be an effective ways to test the system when it's impossible to test + all combinations of parameters. + + + The PairwiseStrategy code is based on "jenny" tool by Bob Jenkins: + https://burtleburtle.net/bob/math/jenny.html + + + + + + FleaRand is a pseudo-random number generator developed by Bob Jenkins: + https://burtleburtle.net/bob/rand/talksmall.html#flea + + + + + Initializes a new instance of the FleaRand class. + + The seed. + + + + FeatureInfo represents coverage of a single value of test function + parameter, represented as a pair of indices, Dimension and Feature. In + terms of unit testing, Dimension is the index of the test parameter and + Feature is the index of the supplied value in that parameter's list of + sources. + + + + + Initializes a new instance of FeatureInfo class. + + Index of a dimension. + Index of a feature. + + + + A FeatureTuple represents a combination of features, one per test + parameter, which should be covered by a test case. In the + PairwiseStrategy, we are only trying to cover pairs of features, so the + tuples actually may contain only single feature or pair of features, but + the algorithm itself works with triplets, quadruples and so on. + + + + + Initializes a new instance of FeatureTuple class for a single feature. + + Single feature. + + + + Initializes a new instance of FeatureTuple class for a pair of features. + + First feature. + Second feature. + + + + TestCase represents a single test case covering a list of features. + + + + + Initializes a new instance of TestCaseInfo class. + + A number of features in the test case. + + + + PairwiseTestCaseGenerator class implements an algorithm which generates + a set of test cases which covers all pairs of possible values of test + function. + + + + The algorithm starts with creating a set of all feature tuples which we + will try to cover (see method). This set + includes every single feature and all possible pairs of features. We + store feature tuples in the 3-D collection (where axes are "dimension", + "feature", and "all combinations which includes this feature"), and for + every two feature (e.g. "A" and "B") we generate both ("A", "B") and + ("B", "A") pairs. This data structure extremely reduces the amount of + time needed to calculate coverage for a single test case (this + calculation is the most time-consuming part of the algorithm). + + + Then the algorithm picks one tuple from the uncovered tuple, creates a + test case that covers this tuple, and then removes this tuple and all + other tuples covered by this test case from the collection of uncovered + tuples. + + + Picking a tuple to cover + + + There are no any special rules defined for picking tuples to cover. We + just pick them one by one, in the order they were generated. + + + Test generation + + + Test generation starts from creating a completely random test case which + covers, nevertheless, previously selected tuple. Then the algorithm + tries to maximize number of tuples which this test covers. + + + Test generation and maximization process repeats seven times for every + selected tuple and then the algorithm picks the best test case ("seven" + is a magic number which provides good results in acceptable time). + + Maximizing test coverage + + To maximize tests coverage, the algorithm walks through the list of mutable + dimensions (mutable dimension is a dimension that are not included in + the previously selected tuple). Then for every dimension, the algorithm + walks through the list of features and checks if this feature provides + better coverage than randomly selected feature, and if yes keeps this + feature. + + + This process repeats while it shows progress. If the last iteration + doesn't improve coverage, the process ends. + + + In addition, for better results, before start every iteration, the + algorithm "scrambles" dimensions - so for every iteration dimension + probes in a different order. + + + + + + Creates a set of test cases for specified dimensions. + + + An array which contains information about dimensions. Each element of + this array represents a number of features in the specific dimension. + + + A set of test cases. + + + + + Gets the test cases generated by this strategy instance. + + A set of test cases. + + + + The ParameterDataProvider class implements IParameterDataProvider + and hosts one or more individual providers. + + + + + Construct with a collection of individual providers + + + + + Determines whether any data is available for a parameter. + + The parameter of a parameterized test + + + + Retrieves data for use with the supplied parameter. + + The parameter of a parameterized test + + + + ParameterDataSourceProvider supplies individual argument values for + single parameters using attributes implementing IParameterDataSource. + + + + + Determines whether any data is available for a parameter. + + The parameter of a parameterized test + + + + Retrieves data for use with the supplied parameter. + + The parameter of a parameterized test + + + + SequentialStrategy creates test cases by using all of the + parameter data sources in parallel, substituting null + when any of them run out of data. + + + + + Gets the test cases generated by the CombiningStrategy. + + The test cases. + + + + TestActionAfterCommand handles the AfterTest method of a single + TestActionItem, provided the items BeforeTest has been run. + + + + + Initializes a new instance of the class. + + The inner command. + The TestActionItem to run before the inner command. + + + + AfterCommand is a DelegatingTestCommand that performs some + specific action after the inner command is run. + + + + + Construct an AfterCommand + + + + + Execute the command + + + + + Set this to perform action after the inner command. + + + + + ContextSettingsCommand applies specified changes to the + TestExecutionContext prior to running a test. No special + action is needed after the test runs, since the prior + context will be restored automatically. + + + + + TestActionCommand handles a single ITestAction applied + to a test. It runs the BeforeTest method, then runs the + test and finally runs the AfterTest method. + + + + + Initializes a new instance of the class. + + The inner command. + + + + Runs the test, saving a TestResult in the supplied TestExecutionContext. + + The context in which the test should run. + A TestResult + + + + Perform the before test action + + + + + Perform the after test action + + + + + TestActionBeforeCommand handles the BeforeTest method of a single + TestActionItem, relying on the item to remember it has been run. + + + + + Initializes a new instance of the class. + + The inner command. + The TestActionItem to run before the inner command. + + + + BeforeTestCommand is a DelegatingTestCommand that performs some + specific action before the inner command is run. + + + + + Construct a BeforeCommand + + + + + Execute the command + + + + + Action to perform before the inner command. + + + + + ConstructFixtureCommand constructs the user test object if necessary. + + + + + Constructs a OneTimeSetUpCommand for a suite + + The inner command to which the command applies + + + + DelegatingTestCommand wraps an inner TestCommand. + Derived classes may do what they like before or + after running the inner command. + + + + TODO: Documentation needed for field + + + + Initializes a new instance of the class. + + The inner command. + + + + OneTimeTearDownCommand performs any teardown actions + specified for a suite and calls Dispose on the user + test object, if any. + + + + + Construct a OneTimeTearDownCommand + + The command wrapped by this command + + + + EmptyTestCommand is a TestCommand that does nothing. It simply + returns the current result from the context when executed. We + use it to avoid testing for null when executing a chain of + DelegatingTestCommands. + + + + + Construct a NullCommand for a test + + + + + Execute the command + + + + + adjusts the result of a successful test + to a failure if the elapsed time has exceeded the specified maximum + time allowed. + + + + + Initializes a new instance of the class. + + The inner command. + The max time allowed in milliseconds + + + + OneTimeSetUpCommand runs any one-time setup methods for a suite, + constructing the user test object if necessary. + + + + + Constructs a OneTimeSetUpCommand for a suite + + The inner command to which the command applies + A SetUpTearDownList for use by the command + + + + OneTimeTearDownCommand performs any teardown actions + specified for a suite and calls Dispose on the user + test object, if any. + + + + + Construct a OneTimeTearDownCommand + + The command wrapped by this command + A SetUpTearDownList for use by the command + + + + SetUpTearDownCommand runs SetUp methods for a suite, + runs the test and then runs TearDown methods. + + + + + Initializes a new instance of the class. + + The inner command. + List of setup/teardown items + + + + SetUpTearDownItem holds the setup and teardown methods + for a single level of the inheritance hierarchy. + + + + + Construct a SetUpTearDownNode + + A list of setup methods for this level + A list teardown methods for this level + + + + Returns true if this level has any methods at all. + This flag is used to discard levels that do nothing. + + + + + Run SetUp on this level. + + The execution context to use for running. + + + + Run TearDown for this level. + + + + + + TODO: Documentation needed for class + + + + + Initializes a new instance of the class. + + The test being skipped. + + + + Overridden to simply set the CurrentResult to the + appropriate Skipped state. + + The execution context for the test + A TestResult + + + + TestActionCommand handles a single ITestAction applied + to a test. It runs the BeforeTest method, then runs the + test and finally runs the AfterTest method. + + + + + Initializes a new instance of the class. + + The inner command. + The TestAction with which to wrap the inner command. + + + + TestActionItem wraps a single execution of an ITestAction. + Its primary purpose is to track whether the BeforeTest + method has been called and suppress calling the + AfterTest method if it has not. This is necessary when + ITestActions are used before and after a CompositeWorkItem, + since the OneTimeSetUpCommand and OneTimeTearDownCommand + are separate command chains. By sharing a TestActionItem + between the setup and teardown chains, the two calls can + be coordinated. + + + + + Construct a TestActionItem + + The ITestAction to be included + + + + Get flag indicating if the BeforeTest entry was already called. + + + + + Run the BeforeTest method of the action and remember that it has been run. + + The test to which the action applies + + + + Run the AfterTest action, but only if the BeforeTest + action was actually run. + + The test to which the action applies + + + + TestCommand is the abstract base class for all test commands + in the framework. A TestCommand represents a single stage in + the execution of a test, e.g.: SetUp/TearDown, checking for + Timeout, verifying the returned result from a method, etc. + + TestCommands may decorate other test commands so that the + execution of a lower-level command is nested within that + of a higher level command. All nested commands are executed + synchronously, as a single unit. Scheduling test execution + on separate threads is handled at a higher level, using the + task dispatcher. + + + + + Construct a TestCommand for a test. + + The test to be executed + + + + Gets the test associated with this command. + + + + + Runs the test in a specified context, returning a TestResult. + + The TestExecutionContext to be used for running the test. + A TestResult + + + + TestMethodCommand is the lowest level concrete command + used to run actual test cases. + + + + + Initializes a new instance of the class. + + The test. + + + + Runs the test, saving a TestResult in the execution context, as + well as returning it. If the test has an expected result, it + is asserts on that value. Since failed tests and errors throw + an exception, this command must be wrapped in an outer command, + will handle that exception and records the failure. This role + is usually played by the SetUpTearDown command. + + The execution context + + + + TheoryResultCommand adjusts the result of a Theory so that + it fails if all the results were inconclusive. + + + + + Constructs a TheoryResultCommand + + The command to be wrapped by this one + + + + creates a timer in order to cancel + a test if it exceeds a specified time and adjusts + the test result if it did time out. + + + + + Initializes a new instance of the class. + + The inner command + Timeout value + + + + Provides methods to support consistent checking in constraints. + + + + + Requires that the provided object is actually of the type required. + + The object to verify. + Name of the parameter as passed into the checking method. + + If and can be null, returns null rather than throwing when is null. + If cannot be null, this parameter is ignored. + The type to require. + + + + CultureDetector is a helper class used by NUnit to determine + whether a test should be run based on the current culture. + + + + + Default constructor uses the current culture. + + + + + Construct a CultureDetector for a particular culture for testing. + + The culture to be used + + + + Test to determine if one of a collection of cultures + is being used currently. + + + + + + + Tests to determine if the current culture is supported + based on a culture attribute. + + The attribute to examine + + + + + Test to determine if the a particular culture or comma- + delimited set of cultures is in use. + + Name of the culture or comma-separated list of culture ids + True if the culture is in use on the system + + + + Return the last failure reason. Results are not + defined if called before IsSupported( Attribute ) + is called. + + + + + Useful when wrapping awaitables whose GetResult method does not block until complete. + Contains a default mechanism to implement + via and . + + + + + ExceptionHelper provides static methods for working with exceptions + + + + + Rethrows an exception, preserving its stack trace + + The exception to rethrow + + + + Builds up a message, using the Message field of the specified exception + as well as any InnerExceptions. Optionally excludes exception names, + creating a more readable message. + + The exception. + Flag indicating whether exception names should be excluded. + A combined message string. + + + + Builds up a message, using the Message field of the specified exception + as well as any InnerExceptions. + + The exception. + A combined stack trace. + + + + Gets the stack trace of the exception. If no stack trace + is provided, returns "No stack trace available". + + The exception. + A string representation of the stack trace. + + + + Executes a parameterless synchronous or async delegate and returns the exception it throws, if any. + + + + + A CompositeWorkItem represents a test suite and + encapsulates the execution of the suite as well + as all its child tests. + + + + + List of Child WorkItems + + + + + Indicates whether this work item should use a separate dispatcher. + + + + + Construct a CompositeWorkItem for executing a test suite + using a filter to select child tests. + + The TestSuite to be executed + A filter used to select child tests + + + + Method that actually performs the work. Overridden + in CompositeWorkItem to do one-time setup, run all child + items and then dispatch the one-time teardown work item. + + + + + + + + + + Cancel (abort or stop) a CompositeWorkItem and all of its children + + true if the CompositeWorkItem and all of its children should be aborted, false if it should allow all currently running tests to complete + + + + OneTimeTearDownWorkItem represents the cleanup + and one-time teardown phase of a CompositeWorkItem + + + + + Construct a OneTimeTearDownWOrkItem wrapping a CompositeWorkItem + + The CompositeWorkItem being wrapped + + + + The WorkItem name, overridden to indicate this is the teardown. + + + + + The ExecutionStrategy for use in running this work item + + + + + + + + + + PerformWork is not used in CompositeWorkItem + + + + + EventListenerTextWriter sends text output to the currently active + ITestEventListener in the form of a TestOutput object. If no event + listener is active in the context, or if there is no context, + the output is forwarded to the supplied default writer. + + + + + Construct an EventListenerTextWriter + + The name of the stream to use for events + The default writer to use if no listener is available + + + + Get the Encoding for this TextWriter + + + + + Write formatted string + + + + + Write formatted string + + + + + Write formatted string + + + + + Write an object + + + + + Write a string + + + + + Write a decimal + + + + + Write a double + + + + + Write formatted string + + + + + Write a ulong + + + + + Write a long + + + + + Write a uint + + + + + Write an int + + + + + Write a char + + + + + Write a boolean + + + + + Write chars + + + + + Write chars + + + + + Write a float + + + + + Write a string with newline + + + + + Write an object with newline + + + + + Write formatted string with newline + + + + + Write formatted string with newline + + + + + Write formatted string with newline + + + + + Write a decimal with newline + + + + + Write a formatted string with newline + + + + + Write a double with newline + + + + + Write a uint with newline + + + + + Write a ulong with newline + + + + + Write a long with newline + + + + + Write an int with newline + + + + + Write a bool with newline + + + + + Write chars with newline + + + + + Write chars with newline + + + + + Write a char with newline + + + + + Write a float with newline + + + + + Write newline + + + + + The EventPumpState enum represents the state of an + EventPump. + + + + + The pump is stopped + + + + + The pump is pumping events with no stop requested + + + + + The pump is pumping events but a stop has been requested + + + + + EventPump pulls events out of an EventQueue and sends + them to a listener. It is used to send events back to + the client without using the CallContext of the test + runner thread. + + + + + The downstream listener to which we send events + + + + + The queue that holds our events + + + + + Thread to do the pumping + + + + + The current state of the event pump + + + + + Constructor + + The EventListener to receive events + The event queue to pull events from + + + + Gets or sets the current state of the pump + + + + + Gets or sets the name of this EventPump + (used only internally and for testing). + + + + + Dispose stops the pump + Disposes the used WaitHandle, too. + + + + + Start the pump + + + + + Tell the pump to stop after emptying the queue. + + + + + Our thread proc for removing items from the event + queue and sending them on. Note that this would + need to do more locking if any other thread were + removing events from the queue. + + + + + NUnit.Core.Event is the abstract base for all stored events. + An Event is the stored representation of a call to the + ITestListener interface and is used to record such calls + or to queue them for forwarding on another thread or at + a later time. + + + + + The Send method is implemented by derived classes to send the event to the specified listener. + + The listener. + + + + TestStartedEvent holds information needed to call the TestStarted method. + + + + + Initializes a new instance of the class. + + The test. + + + + Calls TestStarted on the specified listener. + + The listener. + + + + TestFinishedEvent holds information needed to call the TestFinished method. + + + + + Initializes a new instance of the class. + + The result. + + + + Calls TestFinished on the specified listener. + + The listener. + + + + TestOutputEvent holds information needed to call the TestOutput method. + + + + + Initializes a new instance of the class. + + The output object. + + + + Calls TestOutput on the specified listener. + + The listener. + + + + TestMessageEvent holds information needed to call the SendMessage method. + + + + + Initializes a new instance of the class. + + The test message object. + + + + Calls on the specified listener. + + The listener. + + + + Holds object for sending to all listeners + + + + + Implements a queue of work items each of which + is queued as a WaitCallback. + + + + + Gets the count of items in the queue. + + + + + Enqueues the specified event + + The event to enqueue. + + + + Removes the first element from the queue and returns it (or null). + + + If true and the queue is empty, the calling thread is blocked until + either an element is enqueued, or is called. + + + + + If the queue not empty + the first element. + + + otherwise, if ==false + or has been called + null. + + + + + + + Stop processing of the queue + + + + + An IWorkItemDispatcher handles execution of work items. + + + + + The level of parallelism supported. Zero if not supported. + + + + + Start execution, performing any initialization. Sets + the top level work item and dispatches it. + + + + + Dispatch a single work item for execution. The first + work item dispatched is saved as the top-level + work item and used when stopping the run. + + The item to dispatch + + + + Cancel the ongoing run completely. + If no run is in process, the call has no effect. + + true if the IWorkItemDispatcher should abort all currently running WorkItems, false if it should allow all currently running WorkItems to complete + + + + MainThreadWorkItemDispatcher handles execution of WorkItems by + directly executing them on the main thread. This is different + from the SimpleWorkItemDispatcher where the work item is dispatched + onto its own thread. + + + + + The level of parallelism supported + + + + + Start execution, dispatching the top level + work into the main thread. + + + + + Dispatch a single work item for execution by + executing it directly. + The item to dispatch + + + + + This method is not supported for + this dispatcher. Using it will throw a + NotSupportedException. + + Not used + If used, it will always throw this. + + + + Enumeration representing the strategy to follow in executing a work item. + The value is only relevant when running under the parallel dispatcher. + + + + + Run directly on same thread + + + + + Enqueue for parallel execution + + + + + Enqueue for non-parallel execution + + + + + ParallelWorkItemDispatcher handles execution of work items by + queuing them for worker threads to process. + + + + + Event raised whenever a shift is starting. + + + + + Event raised whenever a shift has ended. + + + + + Construct a ParallelWorkItemDispatcher + + Number of workers to use + + + + Number of parallel worker threads + + + + + Enumerates all the shifts supported by the dispatcher + + + + + Enumerates all the Queues supported by the dispatcher + + + + + Start execution, setting the top level work, + enqueuing it and starting a shift to execute it. + + + + + Dispatch a single work item for execution. The first + work item dispatched is saved as the top-level + work item and used when stopping the run. + + The item to dispatch + + + + Cancel the ongoing run completely. + If no run is in process, the call has no effect. + + + + + Save the state of the queues and create a new isolated set + + + + + Try to remove isolated queues and restore old ones + + + + + QueuingEventListener uses an EventQueue to store any + events received on its EventListener interface. + + + + + The EventQueue created and filled by this listener + + + + + Construct a QueuingEventListener + + + + + A test has started + + The test that is starting + + + + A test case finished + + Result of the test case + + + + Called when a test produces output for immediate display + + A TestOutput object containing the text to display + + + + Called when a test produces a message to be sent to listeners + + A object containing the text to send + + + + A SimpleWorkItem represents a single test case and is + marked as completed immediately upon execution. This + class is also used for skipped or ignored test suites. + + + + + Construct a simple work item for a test. + + The test to be executed + The filter used to select this test + + + + Method that performs actually performs the work. + + + + + Creates a test command for use in running this test. + + A TestCommand + + + + SimpleWorkItemDispatcher handles execution of WorkItems by + directly executing them. It is provided so that a dispatcher + is always available in the context, thereby simplifying the + code needed to run child tests. + + + + + The level of parallelism supported + + + + + Start execution, creating the execution thread, + setting the top level work and dispatching it. + + + + + Dispatch a single work item for execution by + executing it directly. + The item to dispatch + + + + + Cancel (abort or stop) the ongoing run. + If no run is in process, the call has no effect. + + true if the run should be aborted, false if it should allow its currently running test to complete + + + + A TestWorker pulls work items from a queue + and executes them. + + + + + Event handler for TestWorker events + + The TestWorker sending the event + The WorkItem that caused the event + + + + Event signaled immediately before executing a WorkItem + + + + + Event signaled immediately after executing a WorkItem + + + + + Construct a new TestWorker. + + The queue from which to pull work items + The name of this worker + + + + The WorkItemQueue from which this worker pulls WorkItems + + + + + The name of this worker - also used for the thread + + + + + Indicates whether the worker thread is running + + + + + Our ThreadProc, which pulls and runs tests in a loop + + + + + Create thread and start processing work items. + + + + + Stop the thread, either immediately or after finishing the current WorkItem + + true if the thread should be aborted, false if it should allow the currently running test to complete + + + + The TextCapture class intercepts console output and writes it + to the current execution context, if one is present on the thread. + If no execution context is found, the output is written to a + default destination, normally the original destination of the + intercepted output. + + + + + Construct a TextCapture object + + The default destination for non-intercepted output + + + + Gets the Encoding in use by this TextWriter + + + + + Writes a single character + + The char to write + + + + Writes a string + + The string to write + + + + Writes a string followed by a line terminator + + The string to write + + + + A WorkItem may be an individual test case, a fixture or + a higher level grouping of tests. All WorkItems inherit + from the abstract WorkItem class, which uses the template + pattern to allow derived classes to perform work in + whatever way is needed. + + A WorkItem is created with a particular TestExecutionContext + and is responsible for re-establishing that context in the + current thread before it begins or resumes execution. + + + + + Construct a WorkItem for a particular test. + + The test that the WorkItem will run + Filter used to include or exclude child items + + + + Construct a work Item that wraps another work Item. + Wrapper items are used to represent independently + dispatched tasks, which form part of the execution + of a single test, such as OneTimeTearDown. + + The WorkItem being wrapped + + + + Initialize the TestExecutionContext. This must be done + before executing the WorkItem. + + + Originally, the context was provided in the constructor + but delaying initialization of the context until the item + is about to be dispatched allows changes in the parent + context during OneTimeSetUp to be reflected in the child. + + The TestExecutionContext to use + + + + Event triggered when the item is complete + + + + + Gets the current state of the WorkItem + + + + + The test being executed by the work item + + + + + The name of the work item - defaults to the Test name. + + + + + Filter used to include or exclude child tests + + + + + The execution context + + + + + The worker executing this item. + + + + + The ParallelExecutionStrategy to use for this work item + + + + + Indicates whether this work item should use a separate dispatcher. + + + + + The test result + + + + + Gets the ParallelScope associated with the test, if any, + otherwise returning ParallelScope.Default; + + + + + Execute the current work item, including any + child work items. + + + + + Wait until the execution of this item is complete + + + + + Marks the WorkItem as NotRunnable. + + Reason for test being NotRunnable. + + + + Cancel (abort or stop) a WorkItem + + true if the WorkItem should be aborted, false if it should run to completion + + + + Standard Dispose + + + + + Method that performs actually performs the work. It should + set the State to WorkItemState.Complete when done. + + + + + Method called by the derived class when all work is complete + + + + + Builds the set up tear down list. + + Unsorted array of setup MethodInfos. + Unsorted array of teardown MethodInfos. + A list of SetUpTearDownItems + + + + Changes the result of the test, logging the old and new states + + The new ResultState + The new message + + + + Recursively walks up the test hierarchy to see if the + has been set on any of the parent tests. + + + + + WorkItemBuilder class knows how to build a tree of work items from a tree of tests + + + + + Creates a work item. + + The test for which this WorkItem is being created. + The filter to be used in selecting any child Tests. + True if child work items should be created and added. + + + + + Compares two objects and returns a value indicating whether one is less than, equal to, or greater than the other. + + + A signed integer that indicates the relative values of and , as shown in the following table.Value Meaning Less than zero is less than .Zero equals .Greater than zero is greater than . + + The first object to compare.The second object to compare. + + + + WorkItemQueueState indicates the current state of a WorkItemQueue + + + + + The queue is paused + + + + + The queue is running + + + + + The queue is stopped + + + + + A WorkItemQueue holds work items that are ready to + be run, either initially or after some dependency + has been satisfied. + + + + + Initializes a new instance of the class. + + The name of the queue. + Flag indicating whether this is a parallel queue + ApartmentState to use for items on this queue + + + + Gets the name of the work item queue. + + + + + Gets a flag indicating whether this queue is used for parallel execution + + + + + Gets the target ApartmentState for work items on this queue + + + + + Gets the total number of items processed so far + + + + + Gets the current state of the queue + + + + + Get a bool indicating whether the queue is empty. + + + + + Enqueue a WorkItem to be processed + + The WorkItem to process + + + + Enqueue a WorkItem to be processed - internal for testing + + The WorkItem to process + The priority at which to process the item + + + + Dequeue a WorkItem for processing + + A WorkItem or null if the queue has stopped + + + + Start or restart processing of items from the queue + + + + + Signal the queue to stop + + + + + Pause the queue for restarting later + + + + + Save the current inner queue and create new ones for use by + a non-parallel fixture with parallel children. + + + + + Restore the inner queue that was previously saved + + + + + The current state of a work item + + + + + Ready to run or continue + + + + + Work Item is executing + + + + + Complete + + + + + Handler for ShiftChange events. + + The shift that is starting or ending. + + + + The dispatcher needs to do different things at different, + non-overlapped times. For example, non-parallel tests may + not be run at the same time as parallel tests. We model + this using the metaphor of a working shift. The WorkShift + class associates one or more WorkItemQueues with one or + more TestWorkers. + + Work in the queues is processed until all queues are empty + and all workers are idle. Both tests are needed because a + worker that is busy may end up adding more work to one of + the queues. At that point, the shift is over and another + shift may begin. This cycle continues until all the tests + have been run. + + + + + Construct a WorkShift + + + + + Event that fires when the shift has ended + + + + + The Name of this shift + + + + + Gets a flag indicating whether the shift is currently active + + + + + Gets a bool indicating whether this shift has any work to do + + + + + Gets a list of the queues associated with this shift. + + Internal for testing - immutable once initialized + + + + Gets the list of workers associated with this shift. + + Internal for testing - immutable once initialized + + + + Add a WorkItemQueue to the shift, starting it if the + shift is currently active. + + + + + Assign a worker to the shift. + + + + + + Start or restart processing for the shift + + + + + End the shift, pausing all queues and raising + the EndOfShift event. + + + + + Shut down the shift. + + + + + Cancel (abort or stop) the shift without completing all work + + true if the WorkShift should be aborted, false if it should allow its currently running tests to complete + + + + TextMessageWriter writes constraint descriptions and messages + in displayable form as a text stream. It tailors the display + of individual message components to form the standard message + format of NUnit assertion failure messages. + + + + + Prefix used for the expected value line of a message + + + + + Prefix used for the actual value line of a message + + + + + Length of a message prefix + + + + + Construct a TextMessageWriter + + + + + Construct a TextMessageWriter, specifying a user message + and optional formatting arguments. + + + + + + + Gets or sets the maximum line length for this writer + + + + + Method to write single line message with optional args, usually + written to precede the general failure message, at a given + indentation level. + + The indentation level of the message + The message to be written + Any arguments used in formatting the message + + + + Display Expected and Actual lines for a constraint. This + is called by MessageWriter's default implementation of + WriteMessageTo and provides the generic two-line display. + + The result of the constraint that failed + + + + Gets the unique type name between expected and actual. + + The expected value + The actual value causing the failure + Output of the unique type name for expected + Output of the unique type name for actual + + + + Display Expected and Actual lines for given values. This + method may be called by constraints that need more control over + the display of actual and expected values than is provided + by the default implementation. + + The expected value + The actual value causing the failure + + + + Display Expected and Actual lines for given values, including + a tolerance value on the expected line. + + The expected value + The actual value causing the failure + The tolerance within which the test was made + + + + Display the expected and actual string values on separate lines. + If the mismatch parameter is >=0, an additional line is displayed + line containing a caret that points to the mismatch point. + + The expected string value + The actual string value + The point at which the strings don't match or -1 + If true, case is ignored in string comparisons + If true, clip the strings to fit the max line length + + + + Writes the text for an actual value. + + The actual value. + + + + Writes the text for a generalized value. + + The value. + + + + Writes the text for a collection value, + starting at a particular point, to a max length + + The collection containing elements to write. + The starting point of the elements to write + The maximum number of elements to write + + + + Write the generic 'Expected' line for a constraint + + The constraint that failed + + + + Write the generic 'Expected' line for a given value + + The expected value + + + + Write the generic 'Expected' line for a given value + and tolerance. + + The expected value + The tolerance within which the test was made + + + + Write the generic 'Actual' line for a constraint + + The ConstraintResult for which the actual value is to be written + + + + Write the generic 'Actual' line for a given value + + The actual value causing a failure + + + + Combines multiple filters so that a test must pass all + of them in order to pass this filter. + + + + + Constructs an empty AndFilter + + + + + Constructs an AndFilter from an array of filters + + + + + + Checks whether the AndFilter is matched by a test + + The test to be matched + True if all the component filters pass, otherwise false + + + + Checks whether the AndFilter is matched by a test + + The test to be matched + True if all the component filters match, otherwise false + + + + Checks whether the AndFilter is explicit matched by a test. + + The test to be matched + True if all the component filters explicit match, otherwise false + + + + Gets the element name + + Element name + + + + CategoryFilter is able to select or exclude tests + based on their categories. + + + + + Construct a CategoryFilter using a single category name + + A category name + + + + Check whether the filter matches a test + + The test to be matched + + + + + Gets the element name + + Element name + + + + ClassName filter selects tests based on the class FullName + + + + + Construct a FullNameFilter for a single name + + The name the filter will recognize. + + + + Match a test against a single value. + + + + + Gets the element name + + Element name + + + + A base class for multi-part filters + + + + + Constructs an empty CompositeFilter + + + + + Constructs a CompositeFilter from an array of filters + + + + + + Adds a filter to the list of filters + + The filter to be added + + + + Return a list of the composing filters. + + + + + Checks whether the CompositeFilter is matched by a test. + + The test to be matched + + + + Checks whether the CompositeFilter is matched by a test. + + The test to be matched + + + + Checks whether the CompositeFilter is explicit matched by a test. + + The test to be matched + + + + Adds an XML node + + Parent node + True if recursive + The added XML node + + + + Gets the element name + + Element name + + + + FullName filter selects tests based on their FullName + + + + + Construct a FullNameFilter for a single name + + The name the filter will recognize. + + + + Match a test against a single value. + + + + + Gets the element name + + Element name + + + + IdFilter selects tests based on their id + + + + + Construct an IdFilter for a single value + + The id the filter will recognize. + + + + Match a test against a single value. + + + + + Gets the element name + + Element name + + + + FullName filter selects tests based on their FullName + + + + + Construct a MethodNameFilter for a single name + + The name the filter will recognize. + + + + Match a test against a single value. + + + + + Gets the element name + + Element name + + + + ClassName filter selects tests based on the class FullName + + + + + Construct a NamespaceFilter for a single namespace + + The namespace the filter will recognize. + + + + Match a test against a single value. + + + + + Gets the element name + + Element name + + + + NotFilter negates the operation of another filter + + + + + Construct a not filter on another filter + + The filter to be negated + + + + Gets the base filter + + + + + Determine if a particular test passes the filter criteria. + + Overriden in NotFilter so that + 1. Two nested NotFilters are simply ignored + 2. Otherwise, we only look at the test itself and parents, ignoring + any child test matches. + + The test to which the filter is applied + True if the test passes the filter, otherwise false + + + + Check whether the filter matches a test + + The test to be matched + True if it matches, otherwise false + + + + Determine if a test matches the filter explicitly. That is, it must + be a direct match of the test itself or one of its children. + + The test to which the filter is applied + True if the test matches the filter explicitly, otherwise false + + + + Adds an XML node + + Parent node + True if recursive + The added XML node + + + + Combines multiple filters so that a test must pass one + of them in order to pass this filter. + + + + + Constructs an empty OrFilter + + + + + Constructs an AndFilter from an array of filters + + + + + + Checks whether the OrFilter is matched by a test + + The test to be matched + True if any of the component filters pass, otherwise false + + + + Checks whether the OrFilter is matched by a test + + The test to be matched + True if any of the component filters match, otherwise false + + + + Checks whether the OrFilter is explicit matched by a test + + The test to be matched + True if any of the component filters explicit match, otherwise false + + + + Gets the element name + + Element name + + + + PropertyFilter is able to select or exclude tests + based on their properties. + + + + + Construct a PropertyFilter using a property name and expected value + + A property name + The expected value of the property + + + + Check whether the filter matches a test + + The test to be matched + + + + + Adds an XML node + + Parent node + True if recursive + The added XML node + + + + Gets the element name + + Element name + + + + TestName filter selects tests based on their Name + + + + + Construct a TestNameFilter for a single name + + The name the filter will recognize. + + + + Match a test against a single value. + + + + + Gets the element name + + Element name + + + + ValueMatchFilter selects tests based on some value, which + is expected to be contained in the test. + + + + + Returns the value matched by the filter - used for testing + + + + + Indicates whether the value is a regular expression + + + + + Construct a ValueMatchFilter for a single value. + + The value to be included. + + + + Match the input provided by the derived class + + The value to be matchedT + True for a match, false otherwise. + + + + Adds an XML node + + Parent node + True if recursive + The added XML node + + + + Gets the element name + + Element name + + + + GenericMethodHelper is able to deduce the Type arguments for + a generic method from the actual arguments provided. + + + + + A special value, which is used to indicate that BestCommonType() method + was unable to find a common type for the specified arguments. + + + + + Construct a GenericMethodHelper for a method + + MethodInfo for the method to examine + + + + Return the type arguments for the method, deducing them + from the arguments actually provided. + + The arguments to the method + If successful, an array of type arguments. + + + + InvalidTestFixtureException is thrown when an appropriate test + fixture constructor using the provided arguments cannot be found. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner. + + + + Serialization Constructor + + + + + InvalidPlatformException is thrown when the platform name supplied + to a test is not recognized. + + + + + Instantiates a new instance of the class. + + + + + Instantiates a new instance of the class + + The message. + + + + Instantiates a new instance of the class + + The message. + The inner. + + + + Serialization constructor for the class + + + + + InvalidTestFixtureException is thrown when an appropriate test + fixture constructor using the provided arguments cannot be found. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner. + + + + Serialization Constructor + + + + + Interface for logging within the engine + + + + + Logs the specified message at the error level. + + The message. + + + + Logs the specified message at the error level. + + The message. + The arguments. + + + + Logs the specified message at the warning level. + + The message. + + + + Logs the specified message at the warning level. + + The message. + The arguments. + + + + Logs the specified message at the info level. + + The message. + + + + Logs the specified message at the info level. + + The message. + The arguments. + + + + Logs the specified message at the debug level. + + The message. + + + + Logs the specified message at the debug level. + + The message. + The arguments. + + + + InternalTrace provides facilities for tracing the execution + of the NUnit framework. Tests and classes under test may make use + of Console writes, System.Diagnostics.Trace or various loggers and + NUnit itself traps and processes each of them. For that reason, a + separate internal trace is needed. + + Note: + InternalTrace uses a global lock to allow multiple threads to write + trace messages. This can easily make it a bottleneck so it must be + used sparingly. Keep the trace Level as low as possible and only + insert InternalTrace writes where they are needed. + TODO: add some buffering and a separate writer thread as an option. + TODO: figure out a way to turn on trace in specific classes only. + + + + + Gets a flag indicating whether the InternalTrace is initialized + + + + + Initialize the internal trace facility using the name of the log + to be written to and the trace level. + + The log name + The trace level + + + + Initialize the internal trace using a provided TextWriter and level + + A TextWriter + The InternalTraceLevel + + + + Get a named Logger + + + + + + Get a logger named for a particular Type. + + + + + InternalTraceLevel is an enumeration controlling the + level of detailed presented in the internal log. + + + + + Use the default settings as specified by the user. + + + + + Do not display any trace messages + + + + + Display Error messages only + + + + + Display Warning level and higher messages + + + + + Display informational and higher messages + + + + + Display debug messages and higher - i.e. all messages + + + + + Display debug messages and higher - i.e. all messages + + + + + A trace listener that writes to a separate file per domain + and process using it. + + + + + Construct an InternalTraceWriter that writes to a file. + + Path to the file to use + + + + Construct an InternalTraceWriter that writes to a + TextWriter provided by the caller. + + + + + + Returns the character encoding in which the output is written. + + The character encoding in which the output is written. + + + + Writes a character to the text string or stream. + + The character to write to the text stream. + + + + Writes a string to the text string or stream. + + The string to write. + + + + Writes a string followed by a line terminator to the text string or stream. + + The string to write. If is null, only the line terminator is written. + + + + Releases the unmanaged resources used by the and optionally releases the managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Clears all buffers for the current writer and causes any buffered data to be written to the underlying device. + + + + + Provides internal logging to the NUnit framework + + + + + Initializes a new instance of the class. + + The name. + The log level. + The writer where logs are sent. + + + + Logs the message at error level. + + The message. + + + + Logs the message at error level. + + The message. + The message arguments. + + + + Logs the message at warm level. + + The message. + + + + Logs the message at warning level. + + The message. + The message arguments. + + + + Logs the message at info level. + + The message. + + + + Logs the message at info level. + + The message. + The message arguments. + + + + Logs the message at debug level. + + The message. + + + + Logs the message at debug level. + + The message. + The message arguments. + + + + The MethodWrapper class wraps a MethodInfo so that it may + be used in a platform-independent manner. + + + + + Construct a MethodWrapper for a Type and a MethodInfo. + + + + + Construct a MethodInfo for a given Type and method name. + + + + + Gets the Type from which this method was reflected. + + + + + Gets the MethodInfo for this method. + + + + + Gets the name of the method. + + + + + Gets a value indicating whether the method is abstract. + + + + + Gets a value indicating whether the method is public. + + + + + Gets a value indicating whether the method contains unassigned generic type parameters. + + + + + Gets a value indicating whether the method is a generic method. + + + + + Gets a value indicating whether the MethodInfo represents the definition of a generic method. + + + + + Gets the return Type of the method. + + + + + Gets the parameters of the method. + + + + + + Returns the Type arguments of a generic method or the Type parameters of a generic method definition. + + + + + Replaces the type parameters of the method with the array of types provided and returns a new IMethodInfo. + + The type arguments to be used + A new IMethodInfo with the type arguments replaced + + + + Returns an array of custom attributes of the specified type applied to this method + + + + + Gets a value indicating whether one or more attributes of the specified type are defined on the method. + + + + + Invokes the method, converting any TargetInvocationException to an NUnitException. + + The object on which to invoke the method + The argument list for the method + The return value from the invoked method + + + + Override ToString() so that error messages in NUnit's own tests make sense + + + + + This class ensures the is correctly cleared + or restored around framework actions. This is important if running multiple assemblies within the same + process, to ensure no leakage from one assembly to the next. See https://github.com/nunit/nunit-console/issues/325 + + + + + Thrown when an assertion failed. Here to preserve the inner + exception and hence its stack trace. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The error message that explains + the reason for the exception + + + + Initializes a new instance of the class. + + The error message that explains + the reason for the exception + The exception that caused the + current exception + + + + Serialization Constructor + + + + + Enables the syntax. + + + + + Wraps an action so that it is executed when the returned object is disposed. + This disposal is thread-safe and the action will be executed at most once. + + + + + OSPlatform represents a particular operating system platform + + + + + Platform ID for Unix as defined by .NET + + + + + Platform ID for Unix as defined by Mono + + + + + Platform ID for XBox as defined by .NET and Mono + + + + + Platform ID for MacOSX as defined by .NET and Mono + + + + + Get the OSPlatform under which we are currently running + + + + + Gets the actual OS Version, not the incorrect value that might be + returned for Win 8.1 and Win 10 + + + If an application is not manifested as Windows 8.1 or Windows 10, + the version returned from Environment.OSVersion will not be 6.3 and 10.0 + respectively, but will be 6.2 and 6.3. The correct value can be found in + the registry. + + The original version + The correct OS version + + + + Product Type Enumeration used for Windows + + + + + Product type is unknown or unspecified + + + + + Product type is Workstation + + + + + Product type is Domain Controller + + + + + Product type is Server + + + + + Construct from a platform ID and version + + + + + Construct from a platform ID, version and product type + + + + + Get the platform ID of this instance + + + + + Implemented to use in place of Environment.OSVersion.ToString() + + A representation of the platform ID and version in an approximation of the format used by Environment.OSVersion.ToString() + + + + Get the Version of this instance + + + + + Get the Product Type of this instance + + + + + Return true if this is a windows platform + + + + + Return true if this is a Unix or Linux platform + + + + + Return true if the platform is Win32S + + + + + Return true if the platform is Win32Windows + + + + + Return true if the platform is Win32NT + + + + + Return true if the platform is Windows CE + + + + + Return true if the platform is Xbox + + + + + Return true if the platform is MacOSX + + + + + Return true if the platform is Windows 95 + + + + + Return true if the platform is Windows 98 + + + + + Return true if the platform is Windows ME + + + + + Return true if the platform is NT 3 + + + + + Return true if the platform is NT 4 + + + + + Return true if the platform is NT 5 + + + + + Return true if the platform is Windows 2000 + + + + + Return true if the platform is Windows XP + + + + + Return true if the platform is Windows 2003 Server + + + + + Return true if the platform is NT 6 + + + + + Return true if the platform is NT 6.0 + + + + + Return true if the platform is NT 6.1 + + + + + Return true if the platform is NT 6.2 + + + + + Return true if the platform is NT 6.3 + + + + + Return true if the platform is Vista + + + + + Return true if the platform is Windows 2008 Server (original or R2) + + + + + Return true if the platform is Windows 2008 Server (original) + + + + + Return true if the platform is Windows 2008 Server R2 + + + + + Return true if the platform is Windows 2012 Server (original or R2) + + + + + Return true if the platform is Windows 2012 Server (original) + + + + + Return true if the platform is Windows 2012 Server R2 + + + + + Return true if the platform is Windows 7 + + + + + Return true if the platform is Windows 8 + + + + + Return true if the platform is Windows 8.1 + + + + + Return true if the platform is Windows 10 + + + + + Return true if the platform is Windows Server. This is named Windows + Server 10 to distinguish it from previous versions of Windows Server. + + + + + + Examines an attribute argument and tries to simulate what that value would have been if the literal syntax + which might have defined the value in C# had instead been used as an argument to a given method parameter in a direct call. + + + For example, since you can’t apply attributes using arguments, we allow the C# syntax + 10 ( value) or 0.1 ( value) to be specified. + NUnit then converts it to match the method’s parameters, just as if you were actually + using the syntax TestMethod(10) or TestMethod(0.1). + + + For another example, you might have written the syntax 10 and picked up the attribute + constructor overload; however, the test method for which this value is intended only has a + signature. Again, NUnit simulates what would have happened if the inferred C# syntax was transplanted + and you were actually using the syntax TestMethod(10). + + + + + + Converts an array of objects to the , if it is supported. + + + + + Converts a single value to the , if it is supported. + + + + + Performs several special conversions allowed by NUnit in order to + permit arguments with types that cannot be used in the constructor + of an Attribute such as TestCaseAttribute or to simplify their use. + + The value to be converted + The target in which the should be converted + If conversion was successfully applied, the converted into + + true if was converted and should be used; + false is no conversion was applied and should be ignored + + + + + The ParameterWrapper class wraps a ParameterInfo so that it may + be used in a platform-independent manner. + + + + + Construct a ParameterWrapper for a given method and parameter + + + + + + + Gets a value indicating whether the parameter is optional + + + + + Gets an IMethodInfo representing the method for which this is a parameter. + + + + + Gets the underlying ParameterInfo + + + + + Gets the Type of the parameter + + + + + Returns an array of custom attributes of the specified type applied to this method + + + + + Gets a value indicating whether one or more attributes of the specified type are defined on the parameter. + + + + + PlatformHelper class is used by the PlatformAttribute class to + determine whether a platform is supported. + + + + + Comma-delimited list of all supported OS platform constants + + + + + Comma-delimited list of all supported Runtime platform constants + + + + + Default constructor uses the operating system and + common language runtime of the system. + + + + + Construct a PlatformHelper for a particular operating + system and common language runtime. Used in testing. + + RuntimeFramework to be used + OperatingSystem to be used + + + + Test to determine if one of a collection of platforms + is being used currently. + + + + + + + Tests to determine if the current platform is supported + based on a platform attribute. + + The attribute to examine + + + + + Tests to determine if the current platform is supported + based on a platform attribute. + + The attribute to examine + + + + + Test to determine if a particular platform or comma-delimited set of platforms is in use. + + Name of the platform or comma-separated list of platform ids + True if the platform is in use on the system + + + + Return the last failure reason. Results are not + defined if called before IsSupported( Attribute ) + is called. + + + + + Implements a simplified filter for use in deciding which + Types and Methods should be used to generate tests. It is consructed with a + list of strings, each of which may end up being interpreted in various ways. + + + + + Return a new PreFilter, without elements, which is considered + empty and always matches. + + + + + Return true if the filter is empty, in which case it + always succeeds. Technically, this is just a filter and + you can add elements but it's best to use Empty when + you need an empty filter and new when you plan to add. + + + + + Add a new filter element to the filter + + + + + + Use the filter on a Type, returning true if the type matches the filter + and should therefore be included in the discovery process. + + + + + Use the filter on a Type, returning true if the type matches the filter + and should therefore be included in the discovery process. + + + + + A PropertyBag represents a collection of name value pairs + that allows duplicate entries with the same key. Methods + are provided for adding a new pair as well as for setting + a key to a single value. All keys are strings but values + may be of any type. Null values are not permitted, since + a null entry represents the absence of the key. + + + + + Adds a key/value pair to the property set + + The key + The value + + + + Sets the value for a key, removing any other + values that are already in the property set. + + + + + + + Gets a single value for a key, using the first + one if multiple values are present and returning + null if the value is not found. + + + + + + + Gets a flag indicating whether the specified key has + any entries in the property set. + + The key to be checked + + True if their are values present, otherwise false + + + + + Gets a collection containing all the keys in the property set + + + + + + Gets or sets the list of values for a particular key + + + + + Returns an XmlNode representing the current PropertyBag. + + Not used + An XmlNode representing the PropertyBag + + + + Returns an XmlNode representing the PropertyBag after + adding it as a child of the supplied parent node. + + The parent node. + Not used + + + + + The PropertyNames class provides static constants for the + standard property ids that NUnit uses on tests. + + + + + The FriendlyName of the AppDomain in which the assembly is running + + + + + The selected strategy for joining parameter data into test cases + + + + + The process ID of the executing assembly + + + + + The stack trace from any data provider that threw + an exception. + + + + + The reason a test was not run + + + + + The author of the tests + + + + + The ApartmentState required for running the test + + + + + The categories applying to a test + + + + + The Description of a test + + + + + The number of threads to be used in running tests + + + + + The maximum time in ms, above which the test is considered to have failed + + + + + The ParallelScope associated with a test + + + + + The number of times the test should be repeated + + + + + Indicates that the test should be run on a separate thread + + + + + The culture to be set for a test + + + + + The UI culture to be set for a test + + + + + The type that is under test + + + + + The timeout value for the test + + + + + The test will be ignored until the given date + + + + + The optional Order the test will run in + + + + + Randomizer returns a set of random values in a repeatable + way, to allow re-running of tests if necessary. It extends + the .NET Random class, providing random values for a much + wider range of types. + + The class is used internally by the framework to generate + test case data and is also exposed for use by users through + the TestContext.Random property. + + + For consistency with the underlying Random Type, methods + returning a single value use the prefix "Next..." Those + without an argument return a non-negative value up to + the full positive range of the Type. Overloads are provided + for specifying a maximum or a range. Methods that return + arrays or strings use the prefix "Get..." to avoid + confusion with the single-value methods. + + + + + Initial seed used to create randomizers for this run + + + + + Get a Randomizer for a particular member, returning + one that has already been created if it exists. + This ensures that the same values are generated + each time the tests are reloaded. + + + + + Get a randomizer for a particular parameter, returning + one that has already been created if it exists. + This ensures that the same values are generated + each time the tests are reloaded. + + + + + Create a new Randomizer using the next seed + available to ensure that each randomizer gives + a unique sequence of values. + + + + + + Default constructor + + + + + Construct based on seed value + + + + + + Returns a random unsigned int. + + + + + Returns a random unsigned int less than the specified maximum. + + + + + Returns a random unsigned int within a specified range. + + + + + Returns a non-negative random short. + + + + + Returns a non-negative random short less than the specified maximum. + + + + + Returns a non-negative random short within a specified range. + + + + + Returns a random unsigned short. + + + + + Returns a random unsigned short less than the specified maximum. + + + + + Returns a random unsigned short within a specified range. + + + + + Returns a random long. + + + + + Returns a random long less than the specified maximum. + + + + + Returns a non-negative random long within a specified range. + + + + + Returns a random ulong. + + + + + Returns a random ulong less than the specified maximum. + + + + + Returns a non-negative random long within a specified range. + + + + + Returns a random Byte + + + + + Returns a random Byte less than the specified maximum. + + + + + Returns a random Byte within a specified range + + + + + Returns a random SByte + + + + + Returns a random sbyte less than the specified maximum. + + + + + Returns a random sbyte within a specified range + + + + + Returns a random bool + + + + + Returns a random bool based on the probability a true result + + + + + Returns a random double between 0.0 and the specified maximum. + + + + + Returns a random double within a specified range. + + + + + Returns a random float. + + + + + Returns a random float between 0.0 and the specified maximum. + + + + + Returns a random float within a specified range. + + + + + Returns a random enum value of the specified Type as an object. + + + + + Returns a random enum value of the specified Type. + + + + + Default characters for random functions. + + Default characters are the English alphabet (uppercase & lowercase), Arabic numerals, and underscore + + + + Generate a random string based on the characters from the input string. + + desired length of output string. + string representing the set of characters from which to construct the resulting string + A random string of arbitrary length + + + + Generate a random string based on the characters from the input string. + + desired length of output string. + A random string of arbitrary length + Uses DefaultStringChars as the input character set + + + + Generate a random string based on the characters from the input string. + + A random string of the default length + Uses DefaultStringChars as the input character set + + + + Returns a random decimal. + + + + + Returns a random decimal between positive zero and the specified maximum. + + + + + Returns a random decimal within a specified range, which is not + permitted to exceed decimal.MaxVal in the current implementation. + + + A limitation of this implementation is that the range from min + to max must not exceed decimal.MaxVal. + + + + + Generates a valid version 4 . + + + + + Helper methods for inspecting a type by reflection. + + Many of these methods take ICustomAttributeProvider as an + argument to avoid duplication, even though certain attributes can + only appear on specific types of members, like MethodInfo or Type. + + In the case where a type is being examined for the presence of + an attribute, interface or named member, the Reflect methods + operate with the full name of the member being sought. This + removes the necessity of the caller having a reference to the + assembly that defines the item being sought and allows the + NUnit core to inspect assemblies that reference an older + version of the NUnit framework. + + + + + Examine a fixture type and return an array of methods having a + particular attribute. The array is order with base methods first. + + The type to examine + The attribute Type to look for + Specifies whether to search the fixture type inheritance chain + The array of methods found + + + + Examine a fixture type and return true if it has a method with + a particular attribute. + + The type to examine + The attribute Type to look for + True if found, otherwise false + + + + Invoke the default constructor on a Type + + The Type to be constructed + An instance of the Type + + + + Invoke a constructor on a Type with arguments + + The Type to be constructed + Arguments to the constructor + An instance of the Type + + + + Returns an array of types from an array of objects. + Differs from by returning + for null elements rather than throwing . + + + + + Gets the constructors to which the specified argument types can be coerced. + + + + + Determines if the given types can be coerced to match the given parameters. + + + + + Determines whether the current type can be implicitly converted to the specified type. + + + + + Invoke a parameterless method returning void on an object. + + A MethodInfo for the method to be invoked + The object on which to invoke the method + + + + Invoke a method, converting any TargetInvocationException to an NUnitException. + + A MethodInfo for the method to be invoked + The object on which to invoke the method + The argument list for the method + The return value from the invoked method + + + + + Selects the ultimate shadowing property just like would, + rather than throwing + for properties that shadow properties of a different property type + which is what does. + + + If you request both public and nonpublic properties, every public property is preferred + over every nonpublic property. It would violate the principle of least surprise for a + derived class’s implementation detail to be chosen over the public API for a type. + + + See . + See . + See . + + + + Same as GetMethod(, | + , , , + ) except that it also chooses only non-generic methods. + Useful for avoiding the you can have with GetMethod. + + + + + Represents the result of running a single test case. + + + + + Construct a TestCaseResult based on a TestMethod + + A TestMethod to which the result applies. + + + + Gets the number of test cases that failed + when running the test and all its children. + + + + + Gets the number of test cases that had warnings + when running the test and all its children. + + + + + Gets the number of test cases that passed + when running the test and all its children. + + + + + Gets the number of test cases that were skipped + when running the test and all its children. + + + + + Gets the number of test cases that were inconclusive + when running the test and all its children. + + + + + Indicates whether this result has any child results. + + + + + Gets the collection of child results. + + + + + The TestResult class represents the result of a test. + + + + + Error message for when child tests have errors + + + + + Error message for when child tests have warnings + + + + + Error message for when child tests are ignored + + + + + The minimum duration for tests + + + + + Aggregate assertion count + + + + + ReaderWriterLock + + + + + Construct a test result given a Test + + The test to be used + + + + Gets the test with which this result is associated. + + + + + Gets the ResultState of the test result, which + indicates the success or failure of the test. + + + + + Gets the name of the test result + + + + + Gets the full name of the test result + + + + + Gets or sets the elapsed time for running the test in seconds + + + + + Gets or sets the time the test started running. + + + + + Gets or sets the time the test finished running. + + + + + Adds a test attachment to the test result + + The TestAttachment object to attach + + + + Gets the collection of files attached to the test + + + + + Gets the message associated with a test + failure or with not running the test + + + + + Gets any stack trace associated with an + error or failure. + + + + + Gets or sets the count of asserts executed + when running the test. + + + + + Gets the number of test cases that failed + when running the test and all its children. + + + + + Gets the number of test cases that had warnings + when running the test and all its children. + + + + + Gets the number of test cases that passed + when running the test and all its children. + + + + + Gets the number of test cases that were skipped + when running the test and all its children. + + + + + Gets the number of test cases that were inconclusive + when running the test and all its children. + + + + + Indicates whether this result has any child results. + + + + + Gets the collection of child results. + + + + + Gets a TextWriter, which will write output to be included in the result. + + + + + Gets any text output written to this result. + + + + + Gets a list of assertion results associated with the test. + + + + + Returns the XML representation of the result. + + If true, descendant results are included + An XmlNode representing the result + + + + Adds the XML representation of the result as a child of the + supplied parent node.. + + The parent node. + If true, descendant results are included + + + + + Gets a count of pending failures (from Multiple Assert) + + + + + Gets the worst assertion status (highest enum) in all the assertion results + + + + + Set the result of the test + + The ResultState to use in the result + + + + Set the result of the test + + The ResultState to use in the result + A message associated with the result state + + + + Set the result of the test + + The ResultState to use in the result + A message associated with the result state + Stack trace giving the location of the command + + + + Set the test result based on the type of exception thrown + + The exception that was thrown + + + + Set the test result based on the type of exception thrown + + The exception that was thrown + The FailureSite to use in the result + + + + RecordTearDownException appends the message and stack trace + from an exception arising during teardown of the test + to any previously recorded information, so that any + earlier failure information is not lost. Note that + calling Assert.Ignore, Assert.Inconclusive, etc. during + teardown is treated as an error. If the current result + represents a suite, it may show a teardown error even + though all contained tests passed. + + The Exception to be recorded + + + + Update overall test result, including legacy Message, based + on AssertionResults that have been saved to this point. + + + + + Record an assertion result + + + + + Record an assertion result + + + + + Record an assertion result + + + + + Creates a failure message incorporating failures + from a Multiple Assert block for use by runners + that don't know about AssertionResults. + + Message as a string + + + + Adds a reason element to a node and returns it. + + The target node. + The new reason element. + + + + Adds a failure element to a node and returns it. + + The target node. + The new failure element. + + + + Adds an attachments element to a node and returns it. + + The target node. + The new attachments element. + + + + Represents the result of running a test suite + + + + + Construct a TestSuiteResult base on a TestSuite + + The TestSuite to which the result applies + + + + Gets the number of test cases that failed + when running the test and all its children. + + + + + Gets the number of test cases that passed + when running the test and all its children. + + + + + Gets the number of test cases that passed + when running the test and all its children. + + + + + Gets the number of test cases that were skipped + when running the test and all its children. + + + + + Gets the number of test cases that were inconclusive + when running the test and all its children. + + + + + Indicates whether this result has any child results. + + + + + Gets the collection of child results. + + + + + Adds a child result to this result, setting this result's + ResultState to Failure if the child result failed. + + The result to be added + + + + Enumeration identifying a common language + runtime implementation. + + + + Any supported runtime framework + + + Microsoft .NET Framework + + + Microsoft Shared Source CLI + + + Mono + + + MonoTouch + + + Microsoft .NET Core + + + + RuntimeFramework represents a particular version + of a common language runtime implementation. + + + + + DefaultVersion is an empty Version, used to indicate that + NUnit should select the CLR version to use for the test. + + + + + Construct from a runtime type and version. If the version has + two parts, it is taken as a framework version. If it has three + or more, it is taken as a CLR version. In either case, the other + version is deduced based on the runtime type and provided version. + + The runtime type of the framework + The version of the framework + + + + Static method to return a RuntimeFramework object + for the framework that is currently in use. + + + + + The type of this runtime framework + + + + + The framework version for this runtime framework + + + + + The CLR version for this runtime framework + + + + + Return true if any CLR version may be used in + matching this RuntimeFramework object. + + + + + Returns the Display name for this framework + + + + + Parses a string representing a RuntimeFramework. + The string may be just a RuntimeType name or just + a Version or a hyphenated RuntimeType-Version or + a Version prefixed by 'versionString'. + + + + + + + Overridden to return the short name of the framework + + + + + + Returns true if the current framework matches the + one supplied as an argument. Two frameworks match + if their runtime types are the same or either one + is RuntimeType.Any and all specified version components + are equal. Negative (i.e. unspecified) version + components are ignored. + + The RuntimeFramework to be matched. + True on match, otherwise false + + + + Holds thread state which is captured and restored in order to sandbox user code. + + + + + Captures a snapshot of the tracked state of the current thread to be restored later. + + + + + Restores the tracked state of the current thread to the previously captured state. + + + + + Returns a copy with the specified culture. + + + + + Returns a copy with the specified UI culture. + + + + + Returns a copy with the specified principal. + + + + + May be called from any thread. + + + + + May be called from any thread. + + + + + May be called from any thread. + + + + + May be called from any thread, but may only be called once. + + + + + StackFilter class is used to remove internal NUnit + entries from a stack trace so that the resulting + trace provides better information about the test. + + + + + Single instance of our default filter + + + + + Construct a stack filter instance + + Regex pattern used to delete lines from the top of the stack + Regex pattern used to delete lines from the bottom of the stack + + + + Construct a stack filter instance + + Regex pattern used to delete lines from the top of the stack + + + + Construct a stack filter instance + + + + + Filters a raw stack trace and returns the result. + + The original stack trace + A filtered stack trace + + + + Provides methods to support legacy string comparison methods. + + + + + Compares two strings for equality, ignoring case if requested. + + The first string. + The second string.. + if set to true, the case of the letters in the strings is ignored. + Zero if the strings are equivalent, a negative number if strA is sorted first, a positive number if + strB is sorted first + + + + Compares two strings for equality, ignoring case if requested. + + The first string. + The second string.. + if set to true, the case of the letters in the strings is ignored. + True if the strings are equivalent, false if not. + + + + The TestCaseParameters class encapsulates method arguments and + other selected parameters needed for constructing + a parameterized test case. + + + + + The expected result to be returned + + + + + Default Constructor creates an empty parameter set + + + + + Construct a non-runnable ParameterSet, specifying + the provider exception that made it invalid. + + + + + Construct a parameter set with a list of arguments + + + + + + Construct a ParameterSet from an object implementing ITestCaseData + + + + + + The expected result of the test, which + must match the method return type. + + + + + Gets a value indicating whether an expected result was specified. + + + + + TestCaseTimeoutException is thrown when a test running directly + on a TestWorker thread is cancelled due to timeout. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner. + + + + Serialization Constructor + + + + + Helper class used to save and restore certain static or + singleton settings in the environment that affect tests + or which might be changed by the user tests. + + + + + Link to a prior saved context + + + + + Indicates that a stop has been requested + + + + + The event listener currently receiving notifications + + + + + The number of assertions for the current test + + + + + The current test result + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + An existing instance of TestExecutionContext. + + + + Gets and sets the current context. + + + + + Gets or sets the current test + + + + + The time the current test started execution + + + + + The time the current test started in Ticks + + + + + Gets or sets the current test result + + + + + Gets a TextWriter that will send output to the current test result. + + + + + The current test object - that is the user fixture + object on which tests are being executed. + + + + + Get or set indicator that run should stop on the first error + + + + + Gets an enum indicating whether a stop has been requested. + + + + + The current test event listener + + + + + The current WorkItemDispatcher. Made public for + use by nunitlite.tests + + + + + The ParallelScope to be used by tests running in this context. + For builds with out the parallel feature, it has no effect. + + + + + Default tolerance value used for floating point equality + when no other tolerance is specified. + + + + + The worker that spawned the context. + For builds without the parallel feature, it is null. + + + + + Gets the RandomGenerator specific to this Test + + + + + Gets the assert count. + + The assert count. + + + + The current nesting level of multiple assert blocks + + + + + Gets or sets the test case timeout value + + + + + Gets a list of ITestActions set by upstream tests + + + + + Saves or restores the CurrentCulture + + + + + Saves or restores the CurrentUICulture + + + + + Gets or sets the current for the Thread. + + + + + The current head of the ValueFormatter chain, copied from MsgUtils.ValueFormatter + + + + + If true, all tests must run on the same thread. No new thread may be spawned. + + + + + The number of times the current test has been scheduled for execution. + Currently only being executed in a test using the + + + + + Record any changes in the environment made by + the test code in the execution context so it + will be passed on to lower level tests. + + + + + Set up the execution environment to match a context. + Note that we may be running on the same thread where the + context was initially created or on a different thread. + + + + + Increments the assert count by one. + + + + + Increments the assert count by a specified amount. + + + + + Adds a new ValueFormatterFactory to the chain of formatters + + The new factory + + + + Sends a message from test to listeners. This message is not kind of test output and doesn't go to test result. + + A name recognized by the intended listeners. + A message to be sent + + + + Obtain lifetime service object + + + + + + An IsolatedContext is used when running code + that may effect the current result in ways that + should not impact the final result of the test. + A new TestExecutionContext is created with an + initially clear result, which is discarded on + exiting the context. + + + using (new TestExecutionContext.IsolatedContext()) + { + // Code that should not impact the result + } + + + + + Save the original current TestExecutionContext and + make a new isolated context current. + + + + + Restore the original TestExecutionContext. + + + + + An AdhocTestExecutionContext is created whenever a context is needed + but not available in CurrentContext. This happens when tests are run + on an ad-hoc basis or Asserts are used outside of tests. + + + + + Construct an AdhocTestExecutionContext, which is used + whenever the current TestExecutionContext is found to be null. + + + + + Enumeration indicating whether the tests are + running normally or being cancelled. + + + + + Running normally with no stop requested + + + + + A graceful stop has been requested + + + + + A forced stop has been requested + + + + + Interface to be implemented by filters applied to tests. + The filter applies when running the test, after it has been + loaded, since this is the only time an ITest exists. + + + + + Unique Empty filter. + + + + + Indicates whether this is the EmptyFilter + + + + + Indicates whether this is a top-level filter, + not contained in any other filter. + + + + + Determine if a particular test passes the filter criteria. The default + implementation checks the test itself, its parents and any descendants. + + Derived classes may override this method or any of the Match methods + to change the behavior of the filter. + + The test to which the filter is applied + True if the test passes the filter, otherwise false + + + + Determine if a test matches the filter explicitly. That is, it must + be a direct match of the test itself or one of its children. + + The test to which the filter is applied + True if the test matches the filter explicitly, otherwise false + + + + Determine whether the test itself matches the filter criteria, without + examining either parents or descendants. This is overridden by each + different type of filter to perform the necessary tests. + + The test to which the filter is applied + True if the filter matches the any parent of the test + + + + Determine whether any ancestor of the test matches the filter criteria + + The test to which the filter is applied + True if the filter matches the an ancestor of the test + + + + Determine whether any descendant of the test matches the filter criteria. + + The test to be matched + True if at least one descendant matches the filter criteria + + + + Create a TestFilter instance from an XML representation. + + + + + Create a TestFilter from its TNode representation + + + + + Nested class provides an empty filter - one that always + returns true when called. It never matches explicitly. + + + + + Adds an XML node + + True if recursive + The added XML node + + + + Adds an XML node + + Parent node + True if recursive + The added XML node + + + + The TestCaseParameters class encapsulates method arguments and + other selected parameters needed for constructing + a parameterized test case. + + + + + Default Constructor creates an empty parameter set + + + + + Construct a non-runnable ParameterSet, specifying + the provider exception that made it invalid. + + + + + Construct a parameter set with a list of arguments + + + + + + Construct a ParameterSet from an object implementing ITestCaseData + + + + + + Type arguments used to create a generic fixture instance + + + + + TestListener provides an implementation of ITestListener that + does nothing. It is used only through its NULL property. + + + + + Called when a test has just started + + The test that is starting + + + + Called when a test case has finished + + The result of the test + + + + Called when a test produces output for immediate display + + A TestOutput object containing the text to display + + + + Called when a test produces a message to be sent to listeners + + A object containing the message to send + + + + Construct a new TestListener - private so it may not be used. + + + + + Get a listener that does nothing + + + + + TestNameGenerator is able to create test names according to + a coded pattern. + + + + + Default pattern used to generate names + + + + + Construct a TestNameGenerator + + + + + Construct a TestNameGenerator + + The pattern used by this generator. + + + + Get the display name for a TestMethod and its arguments + + A TestMethod + The display name + + + + Get the display name for a TestMethod and its arguments + + A TestMethod + Arguments to be used + The display name + + + + TestParameters is the abstract base class for all classes + that know how to provide data for constructing a test. + + + + + Default Constructor creates an empty parameter set + + + + + Construct a parameter set with a list of arguments + + + + + + Construct a non-runnable ParameterSet, specifying + the provider exception that made it invalid. + + + + + Construct a ParameterSet from an object implementing ITestData + + + + + + The RunState for this set of parameters. + + + + + The arguments to be used in running the test, + which must match the method signature. + + + + + A name to be used for this test case in lieu + of the standard generated name containing + the argument list. + + + + + Gets the property dictionary for this test + + + + + Applies ParameterSet values to the test itself. + + A test. + + + + The original arguments provided by the user, + used for display purposes. + + + + + The list of display names to use as the parameters in the test name. + + + + + TestProgressReporter translates ITestListener events into + the async callbacks that are used to inform the client + software about the progress of a test run. + + + + + Initializes a new instance of the class. + + The callback handler to be used for reporting progress. + + + + Called when a test has just started + + The test that is starting + + + + Called when a test has finished. Sends a result summary to the callback. + to + + The result of the test + + + + Called when a test produces output for immediate display + + A TestOutput object containing the text to display + + + + Called when a test produces a message to be sent to listeners + + A object containing the text to send + + + + Returns the parent test item for the target test item if it exists + + + parent test item + + + + Makes a string safe for use as an attribute, replacing + characters that can't be used with their + corresponding XML representations. + + The string to be used + A new string with the values replaced + + + + ParameterizedFixtureSuite serves as a container for the set of test + fixtures created from a given Type using various parameters. + + + + + Initializes a new instance of the class. + + The ITypeInfo for the type that represents the suite. + + + + Creates a copy of the given suite with only the descendants that pass the specified filter. + + The to copy. + Determines which descendants are copied. + + + + Gets a string representing the type of test + + + + + Creates a filtered copy of the test suite. + + Determines which descendants are copied. + + + + ParameterizedMethodSuite holds a collection of individual + TestMethods with their arguments applied. + + + + + Initializes a new instance of the class. + + + + + Creates a copy of the given suite with only the descendants that pass the specified filter. + + The to copy. + Determines which descendants are copied. + + + + Gets a string representing the type of test + + + + + Creates a filtered copy of the test suite. + + Determines which descendants are copied. + + + + SetUpFixture extends TestSuite and supports + Setup and TearDown methods. + + + + + Initializes a new instance of the class. + + + + + Creates a copy of the given suite with only the descendants that pass the specified filter. + + The to copy. + Determines which descendants are copied. + + + + Creates a filtered copy of the test suite. + + Determines which descendants are copied. + + + + The Test abstract class represents a test within the framework. + + + + + Static value to seed ids. It's started at 1000 so any + uninitialized ids will stand out. + + + + + Used to cache the declaring type for this MethodInfo + + + + + Method property backing field + + + + + Constructs a test given its name + + The name of the test + + + + Constructs a test given the path through the + test hierarchy to its parent and a name. + + The parent tests full name + The name of the test + + + + Constructs a test for a specific type. + + + + + Constructs a test for a specific method. + + + + + Gets or sets the id of the test + + + + + + Gets or sets the name of the test + + + + + Gets or sets the fully qualified name of the test + + + + + + Gets the name of the class where this test was declared. + Returns null if the test is not associated with a class. + + + + + Gets the name of the method implementing this test. + Returns null if the test is not implemented as a method. + + + + + The arguments to use in creating the test or empty array if none required. + + + + + Gets the TypeInfo of the fixture used in running this test + or null if no fixture type is associated with it. + + + + + Gets a MethodInfo for the method implementing this test. + Returns null if the test is not implemented as a method. + + + + + Whether or not the test should be run + + + + + Gets the name used for the top-level element in the + XML representation of this test + + + + + Gets a string representing the type of test. Used as an attribute + value in the XML representation of a test and has no other + function in the framework. + + + + + Gets a count of test cases represented by + or contained under this test. + + + + + Gets the properties for this test + + + + + Returns true if this is a TestSuite + + + + + Gets a bool indicating whether the current test + has any descendant tests. + + + + + Gets the parent as a Test object. + Used by the core to set the parent. + + + + + Gets this test's child tests + + A list of child tests + + + + Gets or sets a fixture object for running this test. + + + + + Static prefix used for ids in this AppDomain. + Set by FrameworkController. + + + + + Gets or Sets the Int value representing the seed for the RandomGenerator + + + + + + The SetUp methods. + + + + + The teardown methods + + + + + Creates a TestResult for this test. + + A TestResult suitable for this type of test. + + + + Modify a newly constructed test by applying any of NUnit's common + attributes, based on a supplied , which is + usually the reflection element from which the test was constructed, + but may not be in some instances. The attributes retrieved are + saved for use in subsequent operations. + + + + + Mark the test as Invalid (not runnable) specifying a reason + + The reason the test is not runnable + + + + Get custom attributes applied to a test + + + + + Add standard attributes and members to a test node. + + + + + + + Returns the XML representation of the test + + If true, include child tests recursively + + + + + Returns an XmlNode representing the current result after + adding it as a child of the supplied parent node. + + The parent node. + If true, descendant results are included + + + + + Compares this test to another test for sorting purposes + + The other test + Value of -1, 0 or +1 depending on whether the current test is less than, equal to or greater than the other test + + + + TestAssembly is a TestSuite that represents the execution + of tests in a managed assembly. + + + + + Initializes a new instance of the class + specifying the Assembly and the suite name. + + The assembly this test represents. + + This becomes the full name of the suite and the filename part is used as the suite name. + + + + + Initializes a new instance of the class + specifying the suite name for an assembly that could not be loaded. + + + This becomes the full name of the suite and the filename part is used as the suite name. + + + + + Creates a copy of the given assembly with only the descendants that pass the specified filter. + + The to copy. + Determines which descendants are copied. + + + + Gets the Assembly represented by this instance. + + + + + Gets the name used for the top-level element in the + XML representation of this test + + + + + Get custom attributes specified on the assembly + + + + + Creates a filtered copy of the test suite. + + Determines which descendants are copied. + + + + TestFixture is a surrogate for a user test fixture class, + containing one or more tests. + + + + + Initializes a new instance of the class. + + Type of the fixture. + Arguments used to instantiate the test fixture, or null if none used + + + + Creates a copy of the given suite with only the descendants that pass the specified filter. + + The to copy. + Determines which descendants are copied. + + + + Creates a filtered copy of the test suite. + + Determines which descendants are copied. + + + + The TestMethod class represents a Test implemented as a method. + + + + + The ParameterSet used to create this test method + + + + + Initializes a new instance of the class. + + The method to be used as a test. + + + + Initializes a new instance of the class. + + The method to be used as a test. + The suite or fixture to which the new test will be added + + + + The arguments to use in executing the test method, or empty array if none are provided. + + + + + Overridden to return a TestCaseResult. + + A TestResult for this test. + + + + Gets a bool indicating whether the current test + has any descendant tests. + + + + + Returns a TNode representing the current result after + adding it as a child of the supplied parent node. + + The parent node. + If true, descendant results are included + + + + + Gets this test's child tests + + A list of child tests + + + + Gets the name used for the top-level element in the + XML representation of this test + + + + + Returns the name of the method + + + + + TestSuite represents a composite test, which contains other tests. + + + + + Our collection of child tests + + + + + Initializes a new instance of the class. + + The name of the suite. + + + + Initializes a new instance of the class. + + Name of the parent suite. + The name of the suite. + + + + Initializes a new instance of the class. + + Type of the fixture. + Arguments used to instantiate the test fixture, or null if none used. + + + + Initializes a new instance of the class. + + Type of the fixture. + + + + Creates a copy of the given suite with only the descendants that pass the specified filter. + + The to copy. + Determines which descendants are copied. + + + + Sorts tests under this suite. + + + + + Adds a test to the suite. + + The test. + + + + Creates a filtered copy of the test suite. + + Determines which descendants are copied. + + + + Gets this test's child tests + + The list of child tests + + + + Gets a count of test cases represented by + or contained under this test. + + + + + + The arguments to use in creating the fixture, or empty array if none are provided. + + + + + Set to true to suppress sorting this suite's contents + + + + + OneTimeSetUp methods for this suite + + + + + OneTimeTearDown methods for this suite + + + + + Overridden to return a TestSuiteResult. + + A TestResult for this test. + + + + Gets a bool indicating whether the current test + has any descendant tests. + + + + + Gets the name used for the top-level element in the + XML representation of this test + + + + + Returns an XmlNode representing the current result after + adding it as a child of the supplied parent node. + + The parent node. + If true, descendant results are included + + + + + Check that setup and teardown methods marked by certain attributes + meet NUnit's requirements and mark the tests not runnable otherwise. + + A list of methodinfos to check + + + + ThreadUtility provides a set of static methods convenient + for working with threads. + + + + + Pre-Task compatibility + + + + + Abort a thread, helping to dislodging it if it is blocked in native code + + The thread to abort + The native thread id (if known), otherwise 0. + If provided, allows the thread to be killed if it's in a message pump native blocking wait. + This must have previously been captured by calling from the running thread itself. + + + + Do our best to kill a thread + + The thread to kill + The native thread id (if known), otherwise 0. + If provided, allows the thread to be killed if it's in a message pump native blocking wait. + This must have previously been captured by calling from the running thread itself. + + + + Do our best to kill a thread, passing state info + + The thread to kill + Info for the ThreadAbortException handler + The native thread id (if known), otherwise 0. + If provided, allows the thread to be killed if it's in a message pump native blocking wait. + This must have previously been captured by calling from the running thread itself. + + + + Schedule a threadpool thread to check on the aborting thread in case it's in a message pump native blocking wait + + + + + Captures the current thread's native id. If provided to later, allows the thread to be killed if it's in a message pump native blocking wait. + + + + + Sends a message to the thread to dislodge it from native code and allow a return to managed code, where a ThreadAbortException can be generated. + The message is meaningless (WM_CLOSE without a window handle) but it will end any blocking message wait. + + + + + TypeHelper provides static methods that operate on Types. + + + + + Gets the display name for a Type as used by NUnit. + + The Type for which a display name is needed. + The display name for the Type + + + + Gets the display name for a Type as used by NUnit. + + The Type for which a display name is needed. + The arglist provided. + The display name for the Type + + + + Returns the best fit for a common type to be used in + matching actual arguments to a methods Type parameters. + + + + + Determines whether the specified type is numeric. + + The type to be examined. + + true if the specified type is numeric; otherwise, false. + + + + + Convert an argument list to the required parameter types. + Currently, only widening numeric conversions are performed. + + An array of args to be converted + A ParameterInfo[] whose types will be used as targets + + + + Determines whether this instance can deduce type args for a generic type from the supplied arguments. + + The type to be examined. + The arglist. + The type args to be used. + + true if this the provided args give sufficient information to determine the type args to be used; otherwise, false. + + + + + Return the interfaces implemented by a Type. + + The Type to be examined. + An array of Types for the interfaces. + + + + Return whether or not the given type is a ValueTuple. + + Type. + Whether or not the given type is a ValueTuple. + + + + Return whether or not the given type is a Tuple. + + Type. + Whether or not the given type is a Tuple. + + + + Determines whether the cast to the given type would succeed. + If is and + can be , the cast succeeds just like the C# language feature. + + The object to cast. + + + + Casts to a value of the given type if possible. + If is and + can be , the cast succeeds just like the C# language feature. + + The object to cast. + The value of the object, if the cast succeeded. + + + + Used for resolving the type difference between objects. + + + + + Gets the shortened type name difference between and . + + The expected object. + The actual object. + Output of the unique type name for the expected object. + Output of the unique type name for actual object. + + + + Gets the shortened type name difference between and . + + The expected object . + The actual object . + Output of the unique type name for the expected object. + Output of the unique type name for actual object. + + + + Obtain the shortened generic template parameters of the given and , + if they are generic. + + The expected . + The actual . + Shortened generic parameters of the expected . + Shortened generic parameters of the actual . + + + + Obtain a shortened name of the given . + + + + + Shorten the given names by only including the relevant differing namespaces/types, if they differ. + + The expected . + The actual . + The shortened expected name. + The shortened actual name. + + + + Returns whether or not the is generic. + + + + + Returns the fully qualified generic name of a given . + + + + + Reconstruct a generic type name using the provided generic type name, and a + of the template parameters. + + The name of the generic type, including the number of template parameters expected. + A of names of the template parameters of the provided generic type. + + + + Obtain the shortened generic names of the given expected and actual s. + + The expected . + The actual . + The shortened expected generic name. + The shortened actual generic name. + + + + The TypeWrapper class wraps a Type so it may be used in + a platform-independent manner. + + + + + Construct a TypeWrapper for a specified Type. + + + + + Gets the underlying Type on which this TypeWrapper is based. + + + + + Gets the base type of this type as an ITypeInfo + + + + + Gets the Name of the Type + + + + + Gets the FullName of the Type + + + + + Gets the assembly in which the type is declared + + + + + Gets the namespace of the Type + + + + + Gets a value indicating whether the type is abstract. + + + + + Gets a value indicating whether the Type is a generic Type + + + + + Returns true if the Type wrapped is T + + + + + Gets a value indicating whether the Type has generic parameters that have not been replaced by specific Types. + + + + + Gets a value indicating whether the Type is a generic Type definition + + + + + Gets a value indicating whether the type is sealed. + + + + + Gets a value indicating whether this type represents a static class. + + + + + Get the display name for this type + + + + + Get the display name for an object of this type, constructed with the specified args. + + + + + Returns a new ITypeInfo representing an instance of this generic Type using the supplied Type arguments + + + + + Returns a Type representing a generic type definition from which this Type can be constructed. + + + + + Returns an array of custom attributes of the specified type applied to this type + + + + + Returns a value indicating whether the type has an attribute of the specified type. + + + + + + + + Returns a flag indicating whether this type has a method with an attribute of the specified type. + + + + + + + Returns an array of IMethodInfos for methods of this Type + that match the specified flags. + + + + + Gets the public constructor taking the specified argument Types + + + + + Returns a value indicating whether this Type has a public constructor taking the specified argument Types. + + + + + Construct an object of this Type, using the specified arguments. + + + + + Override ToString() so that error messages in NUnit's own tests make sense + + + + + Encapsulates the ability to increment a value by an amount which may be of a different type. + + + + + Creates a from the specified value if the current instance is able to + use it to increment the on values which it operates. If the creation fails, + is thrown. + + + + + + Creates a from the specified value if the current instance is able to + use it to increment values on which it operates. A return value indicates + whether the creation succeeded. + + + + + Provides a convenient shorthand when is + and the default value of represents zero. + + + + + Initializes a new instance of the class. + + The amount by which to increment each time this step is applied. + + Must increment the given value and return the result. + If the result is outside the range representable by , + must throw . If the result does not change due to lack + of precision representable by , must throw . + + + + + Increments the given value and returns the result. + If the result is outside the range representable by , + throws . If the result does not change due to lack + of precision representable by , throws . + + + + + + + Encapsulates the ability to increment a value by an amount + which may be of a different type. + + + + + Increments the given value and returns the result. + If the result is outside the range representable by , + throws . If the result does not change due to lack + of precision representable by , throws . + + + + + + + Creates a from the specified value if the current instance is able to + use it to increment values of type . If the creation fails, + is thrown. + + + + + + Creates a from the specified value if the current instance is able to + use it to increment values of type . A return value indicates + whether the creation succeeded. + + + + + Helper class with properties and methods that supply + a number of constraints used in Asserts. + + + + + Returns a ConstraintExpression that negates any + following constraint. + + + + + Returns a ConstraintExpression, which will apply + the following constraint to all members of a collection, + succeeding if all of them succeed. + + + + + Returns a constraint that tests for null + + + + + Returns a constraint that tests for True + + + + + Returns a constraint that tests for False + + + + + Returns a constraint that tests for a positive value + + + + + Returns a constraint that tests for a negative value + + + + + Returns a constraint that tests for equality with zero + + + + + Returns a constraint that tests for NaN + + + + + Returns a constraint that tests for empty + + + + + Returns a constraint that tests whether a collection + contains all unique items. + + + + + Returns a constraint that tests whether an object graph is serializable in binary format. + + + + + Returns a constraint that tests whether an object graph is serializable in XML format. + + + + + Returns a constraint that tests two items for equality + + + + + Returns a constraint that tests that two references are the same object + + + + + Returns a constraint that tests whether the + actual value is greater than the supplied argument + + + + + Returns a constraint that tests whether the + actual value is greater than or equal to the supplied argument + + + + + Returns a constraint that tests whether the + actual value is greater than or equal to the supplied argument + + + + + Returns a constraint that tests whether the + actual value is less than the supplied argument + + + + + Returns a constraint that tests whether the + actual value is less than or equal to the supplied argument + + + + + Returns a constraint that tests whether the + actual value is less than or equal to the supplied argument + + + + + Returns a constraint that tests whether the actual + value is of the exact type supplied as an argument. + + + + + Returns a constraint that tests whether the actual + value is of the exact type supplied as an argument. + + + + + Returns a constraint that tests whether the actual value + is of the type supplied as an argument or a derived type. + + + + + Returns a constraint that tests whether the actual value + is of the type supplied as an argument or a derived type. + + + + + Returns a constraint that tests whether the actual value + is assignable from the type supplied as an argument. + + + + + Returns a constraint that tests whether the actual value + is assignable from the type supplied as an argument. + + + + + Returns a constraint that tests whether the actual value + is assignable to the type supplied as an argument. + + + + + Returns a constraint that tests whether the actual value + is assignable to the type supplied as an argument. + + + + + Returns a constraint that tests whether the actual value + is a collection containing the same elements as the + collection supplied as an argument. + + + + + Returns a constraint that tests whether the actual value + is a subset of the collection supplied as an argument. + + + + + Returns a constraint that tests whether the actual value + is a superset of the collection supplied as an argument. + + + + + Returns a constraint that tests whether a collection is ordered + + + + + Returns a constraint that tests whether the path provided + is the same as an expected path after canonicalization. + + + + + Returns a constraint that tests whether the path provided + is a subpath of the expected path after canonicalization. + + + + + Returns a constraint that tests whether the path provided + is the same path or under an expected path after canonicalization. + + + + + Returns a constraint that tests whether the actual value falls + inclusively within a specified range. + + Inclusive beginning of the range. + Inclusive end of the range. + + + + + Returns a constraint that tests if an item is equal to any of parameters + + Expected values + + + + When implemented by an attribute, this interface implemented to provide actions to execute before and after tests. + + + + + Executed before each test is run + + The test that is going to be run. + + + + Executed after each test is run + + The test that has just been run. + + + + Provides the target for the action attribute + + The target for the action attribute + + + + The Iz class is a synonym for Is intended for use in VB, + which regards Is as a keyword. + + + + + The List class is a helper class with properties and methods + that supply a number of constraints used with lists and collections. + + + + + List.Map returns a ListMapper, which can be used to map + the original collection to another collection. + + + + + + + ListMapper is used to transform a collection used as an actual argument + producing another collection to be used in the assertion. + + + + + Construct a ListMapper based on a collection + + The collection to be transformed + + + + Produces a collection containing all the values of a property + + The collection of property values + + + + + Basic Asserts on strings. + + + + + DO NOT USE! Use StringAssert.AreEqualIgnoringCase(...) or Assert.AreEqual(...) instead. + The Equals method throws an InvalidOperationException. This is done + to make sure there is no mistake by calling this function. + + + + + + + DO NOT USE! + The ReferenceEquals method throws an InvalidOperationException. This is done + to make sure there is no mistake by calling this function. + + + + + + + Asserts that a string is found within another string. + + The expected string + The string to be examined + The message to display in case of failure + Arguments used in formatting the message + + + + Asserts that a string is found within another string. + + The expected string + The string to be examined + + + + Asserts that a string is not found within another string. + + The expected string + The string to be examined + The message to display in case of failure + Arguments used in formatting the message + + + + Asserts that a string is found within another string. + + The expected string + The string to be examined + + + + Asserts that a string starts with another string. + + The expected string + The string to be examined + The message to display in case of failure + Arguments used in formatting the message + + + + Asserts that a string starts with another string. + + The expected string + The string to be examined + + + + Asserts that a string does not start with another string. + + The expected string + The string to be examined + The message to display in case of failure + Arguments used in formatting the message + + + + Asserts that a string does not start with another string. + + The expected string + The string to be examined + + + + Asserts that a string ends with another string. + + The expected string + The string to be examined + The message to display in case of failure + Arguments used in formatting the message + + + + Asserts that a string ends with another string. + + The expected string + The string to be examined + + + + Asserts that a string does not end with another string. + + The expected string + The string to be examined + The message to display in case of failure + Arguments used in formatting the message + + + + Asserts that a string does not end with another string. + + The expected string + The string to be examined + + + + Asserts that two strings are equal, without regard to case. + + The expected string + The actual string + The message to display in case of failure + Arguments used in formatting the message + + + + Asserts that two strings are equal, without regard to case. + + The expected string + The actual string + + + + Asserts that two strings are not equal, without regard to case. + + The expected string + The actual string + The message to display in case of failure + Arguments used in formatting the message + + + + Asserts that two strings are not equal, without regard to case. + + The expected string + The actual string + + + + Asserts that a string matches an expected regular expression pattern. + + The regex pattern to be matched + The actual string + The message to display in case of failure + Arguments used in formatting the message + + + + Asserts that a string matches an expected regular expression pattern. + + The regex pattern to be matched + The actual string + + + + Asserts that a string does not match an expected regular expression pattern. + + The regex pattern to be used + The actual string + The message to display in case of failure + Arguments used in formatting the message + + + + Asserts that a string does not match an expected regular expression pattern. + + The regex pattern to be used + The actual string + + + + The TestCaseData class represents a set of arguments + and other parameter info to be used for a parameterized + test case. It is derived from TestCaseParameters and adds a + fluent syntax for use in initializing the test case. + + + + + Initializes a new instance of the class. + + The arguments. + + + + Initializes a new instance of the class. + + The argument. + + + + Initializes a new instance of the class. + + The first argument. + The second argument. + + + + Initializes a new instance of the class. + + The first argument. + The second argument. + The third argument. + + + + Sets the expected result for the test + + The expected result + A modified TestCaseData + + + + Sets the name of the test case + + The modified TestCaseData instance + + + + Sets the list of display names to use as the parameters in the test name. + + + + + Sets the description for the test case + being constructed. + + The description. + The modified TestCaseData instance. + + + + Applies a category to the test + + + + + + + Applies a named property to the test + + + + + + + + Applies a named property to the test + + + + + + + + Applies a named property to the test + + + + + + + + Marks the test case as explicit. + + + + + Marks the test case as explicit, specifying the reason. + + + + + Ignores this TestCase, specifying the reason. + + The reason. + + + + + Provide the context information of the current test. + This is an adapter for the internal ExecutionContext + class, hiding the internals from the user test. + + + + + Construct a TestContext for an ExecutionContext + + The ExecutionContext to adapt + + + + Get the current test context. This is created + as needed. The user may save the context for + use within a test, but it should not be used + outside the test for which it is created. + + + + + Gets a TextWriter that will send output to the current test result. + + + + + Gets a TextWriter that will send output directly to Console.Error + + + + + Gets a TextWriter for use in displaying immediate progress messages + + + + + TestParameters object holds parameters for the test run, if any are specified + + + + + Static DefaultWorkDirectory is now used as the source + of the public instance property WorkDirectory. This is + a bit odd but necessary to avoid breaking user tests. + + + + + Get a representation of the current test. + + + + + Gets a Representation of the TestResult for the current test. + + + + + Gets the unique name of the Worker that is executing this test. + + + + + Gets the directory containing the current test assembly. + + + + + Gets the directory to be used for outputting files created + by this test run. + + + + + Gets the random generator. + + + The random generator. + + + + + Gets the number of assertions executed + up to this point in the test. + + + + + Get the number of times the current Test has been repeated. This is currently only + set when using the . + TODO: add this to the RepeatAttribute as well + + + + Write the string representation of a boolean value to the current result + + + Write a char to the current result + + + Write a char array to the current result + + + Write the string representation of a double to the current result + + + Write the string representation of an Int32 value to the current result + + + Write the string representation of an Int64 value to the current result + + + Write the string representation of a decimal value to the current result + + + Write the string representation of an object to the current result + + + Write the string representation of a Single value to the current result + + + Write a string to the current result + + + Write the string representation of a UInt32 value to the current result + + + Write the string representation of a UInt64 value to the current result + + + Write a formatted string to the current result + + + Write a formatted string to the current result + + + Write a formatted string to the current result + + + Write a formatted string to the current result + + + Write a line terminator to the current result + + + Write the string representation of a boolean value to the current result followed by a line terminator + + + Write a char to the current result followed by a line terminator + + + Write a char array to the current result followed by a line terminator + + + Write the string representation of a double to the current result followed by a line terminator + + + Write the string representation of an Int32 value to the current result followed by a line terminator + + + Write the string representation of an Int64 value to the current result followed by a line terminator + + + Write the string representation of a decimal value to the current result followed by a line terminator + + + Write the string representation of an object to the current result followed by a line terminator + + + Write the string representation of a Single value to the current result followed by a line terminator + + + Write a string to the current result followed by a line terminator + + + Write the string representation of a UInt32 value to the current result followed by a line terminator + + + Write the string representation of a UInt64 value to the current result followed by a line terminator + + + Write a formatted string to the current result followed by a line terminator + + + Write a formatted string to the current result followed by a line terminator + + + Write a formatted string to the current result followed by a line terminator + + + Write a formatted string to the current result followed by a line terminator + + + + This method adds the a new ValueFormatterFactory to the + chain of responsibility used for formatting values in messages. + The scope of the change is the current TestContext. + + The factory delegate + + + + Attach a file to the current test result + + Relative or absolute file path to attachment + Optional description of attachment + + + + This method provides a simplified way to add a ValueFormatter + delegate to the chain of responsibility, creating the factory + delegate internally. It is useful when the Type of the object + is the only criterion for selection of the formatter, since + it can be used without getting involved with a compound function. + + The type supported by this formatter + The ValueFormatter delegate + + + + TestAdapter adapts a Test for consumption by + the user test code. + + + + + Construct a TestAdapter for a Test + + The Test to be adapted + + + + Gets the unique Id of a test + + + + + The name of the test, which may or may not be + the same as the method name. + + + + + The name of the method representing the test. + + + + + The FullName of the test + + + + + The ClassName of the test + + + + + A shallow copy of the properties of the test. + + + + + The arguments to use in creating the test or empty array if none are required. + + + + + ResultAdapter adapts a TestResult for consumption by + the user test code. + + + + + Construct a ResultAdapter for a TestResult + + The TestResult to be adapted + + + + Gets a ResultState representing the outcome of the test + up to this point in its execution. + + + + + Gets a list of the assertion results generated + up to this point in the test. + + + + + Gets the message associated with a test + failure or with not running the test + + + + + Gets any stack trace associated with an + error or failure. + + + + + Gets the number of test cases that failed + when running the test and all its children. + + + + + Gets the number of test cases that had warnings + when running the test and all its children. + + + + + Gets the number of test cases that passed + when running the test and all its children. + + + + + Gets the number of test cases that were skipped + when running the test and all its children. + + + + + Gets the number of test cases that were inconclusive + when running the test and all its children. + + + + + adapts an + for consumption by the user. + + + + + Construct a from a source + . + + + + + Get the first property with the given , if it can be found, otherwise + returns null. + + + + + Indicates whether is found in this + . + + + + + Returns a collection of properties + with the given . + + + + + Returns the count of elements with the given . + + + + + Returns a collection of the property keys. + + + + + The TestFixtureData class represents a set of arguments + and other parameter info to be used for a parameterized + fixture. It is derived from TestFixtureParameters and adds a + fluent syntax for use in initializing the fixture. + + + + + Initializes a new instance of the class. + + The arguments. + + + + Initializes a new instance of the class. + + The argument. + + + + Initializes a new instance of the class. + + The first argument. + The second argument. + + + + Initializes a new instance of the class. + + The first argument. + The second argument. + The third argument. + + + + Sets the name of the test fixture + + The modified TestFixtureData instance + + + + Sets the list of display names to use as the parameters in the test name. + + + + + Marks the test fixture as explicit. + + + + + Marks the test fixture as explicit, specifying the reason. + + + + + Ignores this TestFixture, specifying the reason. + + The reason. + + + + + TestParameters class holds any named parameters supplied to the test run + + + + + Gets the number of test parameters + + + + + Gets a collection of the test parameter names + + + + + Gets a flag indicating whether a parameter with the specified name exists. + + Name of the parameter + True if it exists, otherwise false + + + + Indexer provides access to the internal dictionary + + Name of the parameter + Value of the parameter or null if not present + + + + Get method is a simple alternative to the indexer + + Name of the parameter + Value of the parameter or null if not present + + + + Get the value of a parameter or a default string + + Name of the parameter + Default value of the parameter + Value of the parameter or default value if not present + + + + Get the value of a parameter or return a default + + The return Type + Name of the parameter + Default value of the parameter + Value of the parameter or default value if not present + + + + Adds a parameter to the list + + Name of the parameter + Value of the parameter + + + + Helper class with properties and methods that supply + constraints that operate on exceptions. + + + + + Creates a constraint specifying an expected exception + + + + + Creates a constraint specifying an exception with a given InnerException + + + + + Creates a constraint specifying an expected TargetInvocationException + + + + + Creates a constraint specifying an expected ArgumentException + + + + + Creates a constraint specifying an expected ArgumentNullException + + + + + Creates a constraint specifying an expected InvalidOperationException + + + + + Creates a constraint specifying that no exception is thrown + + + + + Creates a constraint specifying the exact type of exception expected + + + + + Creates a constraint specifying the exact type of exception expected + + + + + Creates a constraint specifying the type of exception expected + + + + + Creates a constraint specifying the type of exception expected + + + + + Provides static methods to express conditions + that must be met for the test to succeed. If + any test fails, a warning is issued. + + + + + DO NOT USE! + The Equals method throws an InvalidOperationException. This is done + to make sure there is no mistake by calling this function. + + The left object. + The right object. + Not applicable + + + + DO NOT USE! + The ReferenceEquals method throws an InvalidOperationException. This is done + to make sure there is no mistake by calling this function. + + The left object. + The right object. + + + + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and issuing a warning on failure. + + The Type being compared. + An ActualValueDelegate returning the value to be tested + A Constraint expression to be applied + + + + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and issuing a warning on failure. + + The Type being compared. + An ActualValueDelegate returning the value to be tested + A Constraint expression to be applied + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and issuing a warning on failure. + + The Type being compared. + An ActualValueDelegate returning the value to be tested + A Constraint expression to be applied + A function to build the message included with the Exception + + + + Asserts that a condition is true. If the condition is false a warning is issued. + + The evaluated condition + The message to display if the condition is false + Arguments to be used in formatting the message + + + + Asserts that a condition is true. If the condition is false a warning is issued. + + The evaluated condition + + + + Asserts that a condition is true. If the condition is false a warning is issued. + + The evaluated condition + A function to build the message included with the Exception + + + + Asserts that a condition is true. If the condition is false the method throws + an . + + A lambda that returns a Boolean + The message to display if the condition is false + Arguments to be used in formatting the message + + + + Asserts that a condition is true. If the condition is false the method throws + an . + + A lambda that returns a Boolean + + + + Asserts that a condition is true. If the condition is false the method throws + an . + + A lambda that returns a Boolean + A function to build the message included with the Exception + + + + Asserts that the code represented by a delegate throws an exception + that satisfies the constraint provided. + + A TestDelegate to be executed + A Constraint expression to be applied + + + + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and issuing a warning on failure. + + The Type being compared. + The actual value to test + A Constraint expression to be applied + + + + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and issuing a warning on failure. + + The Type being compared. + The actual value to test + A Constraint expression to be applied + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and issuing a warning on failure. + + The Type being compared. + The actual value to test + A Constraint expression to be applied + A function to build the message included with the Exception + + + + Apply a constraint to an actual value, succeeding if the constraint + fails and issuing a warning on success. + + The Type being compared. + An ActualValueDelegate returning the value to be tested + A Constraint expression to be applied + + + + Apply a constraint to an actual value, succeeding if the constraint + fails and issuing a warning on success. + + The Type being compared. + An ActualValueDelegate returning the value to be tested + A Constraint expression to be applied + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Apply a constraint to an actual value, succeeding if the constraint + fails and issuing a warning on failure. + + The Type being compared. + An ActualValueDelegate returning the value to be tested + A Constraint expression to be applied + A function to build the message included with the Exception + + + + Asserts that a condition is true. If the condition is false a warning is issued. + + The evaluated condition + The message to display if the condition is false + Arguments to be used in formatting the message + + + + Asserts that a condition is true. If the condition is false a warning is issued. + + The evaluated condition + + + + Asserts that a condition is true. If the condition is false a warning is issued. + + The evaluated condition + A function to build the message included with the Exception + + + + Asserts that a condition is false. If the condition is true a warning is issued. + + A lambda that returns a Boolean + The message to display if the condition is true + Arguments to be used in formatting the message + + + + Asserts that a condition is false. If the condition is true a warning is issued. + + A lambda that returns a Boolean + + + + Asserts that a condition is false. If the condition is true a warning is issued. + + A lambda that returns a Boolean + A function to build the message included with the Exception + + + + Apply a constraint to an actual value, succeeding if the constraint + fails and issuing a warning if it succeeds. + + The Type being compared. + The actual value to test + A Constraint expression to be applied + + + + Apply a constraint to an actual value, succeeding if the constraint + fails and issuing a warning if it succeeds. + + The Type being compared. + The actual value to test + A Constraint expression to be applied + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and issuing a warning on failure. + + The Type being compared. + The actual value to test + A Constraint expression to be applied + A function to build the message included with the Exception + + + + FrameworkPackageSettings is a static class containing constant values that + are used as keys in setting up a TestPackage. These values are used in + the framework, and set in the runner. Setting values may be a string, int or bool. + + + + + Flag (bool) indicating whether tests are being debugged. + + + + + Flag (bool) indicating whether to pause execution of tests to allow + the user to attach a debugger. + + + + + The InternalTraceLevel for this run. Values are: "Default", + "Off", "Error", "Warning", "Info", "Debug", "Verbose". + Default is "Off". "Debug" and "Verbose" are synonyms. + + + + + Full path of the directory to be used for work and result files. + This path is provided to tests by the framework TestContext. + + + + + Integer value in milliseconds for the default timeout value + for test cases. If not specified, there is no timeout except + as specified by attributes on the tests themselves. + + + + + A TextWriter to which the internal trace will be sent. + + + + + A list of tests to be loaded. + + + + + The number of test threads to run for the assembly. If set to + 1, a single queue is used. If set to 0, tests are executed + directly, without queuing. + + + + + The random seed to be used for this assembly. If specified + as the value reported from a prior run, the framework should + generate identical random values for tests as were used for + that run, provided that no change has been made to the test + assembly. Default is a random value itself. + + + + + If true, execution stops after the first error or failure. + + + + + If true, use of the event queue is suppressed and test events are synchronous. + + + + + The default naming pattern used in generating test names + + + + + Parameters to be passed on to the tests, serialized to a single string which needs parsing. Obsoleted by ; kept for backward compatibility. + + + + + Parameters to be passed on to the tests, already parsed into an IDictionary<string, string>. Replaces . + + + + + If true, the tests will run on the same thread as the NUnit runner itself + + + + + Provides a platform-independent methods for getting attributes + for use by AttributeConstraint and AttributeExistsConstraint. + + + + + Gets the custom attributes from the given object. + + The actual. + Type of the attribute. + if set to true [inherit]. + A list of the given attribute on the given object. + + + + A MarshalByRefObject that lives forever + + + + + Obtains a lifetime service object to control the lifetime policy for this instance. + + + + diff --git a/tests/Trinity.Tests.Virtuoso/bin/Release/nunit_random_seed.tmp b/tests/Trinity.Tests.Virtuoso/bin/Release/nunit_random_seed.tmp new file mode 100644 index 0000000..8cf934f --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Release/nunit_random_seed.tmp @@ -0,0 +1 @@ +761474245 \ No newline at end of file diff --git a/tests/Trinity.Tests.Virtuoso/bin/Release/ontologies-test.config b/tests/Trinity.Tests.Virtuoso/bin/Release/ontologies-test.config new file mode 100644 index 0000000..6e04670 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Release/ontologies-test.config @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/Trinity.Tests.Virtuoso/bin/Release/ontologies.config b/tests/Trinity.Tests.Virtuoso/bin/Release/ontologies.config new file mode 100644 index 0000000..faa8294 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Release/ontologies.config @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/Trinity.Tests.Virtuoso/bin/Release/without_store.config b/tests/Trinity.Tests.Virtuoso/bin/Release/without_store.config new file mode 100644 index 0000000..76533dd --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/bin/Release/without_store.config @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/Trinity.Tests.Virtuoso/ontologies.config b/tests/Trinity.Tests.Virtuoso/ontologies.config new file mode 100644 index 0000000..370a980 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/ontologies.config @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/Trinity.Tests.Virtuoso/ontologies/foaf.rdf b/tests/Trinity.Tests.Virtuoso/ontologies/foaf.rdf new file mode 100644 index 0000000..68d0700 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/ontologies/foaf.rdf @@ -0,0 +1,609 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Label Property + A foaf:LabelProperty is any RDF property with texual values that serve as labels. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/Trinity.Tests.Virtuoso/ontologies/nco.trig b/tests/Trinity.Tests.Virtuoso/ontologies/nco.trig new file mode 100644 index 0000000..c7b560c --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/ontologies/nco.trig @@ -0,0 +1,811 @@ +# +# Copyright (c) 2007 NEPOMUK Consortium +# Copyright (c) 2009-2011 Sebastian Trueg +# +# All rights reserved, licensed under either CC-BY or BSD. +# +# You are free: +# * to Share - to copy, distribute and transmit the work +# * to Remix - to adapt the work +# Under the following conditions: +# * Attribution - You must attribute the work in the manner specified by the author +# or licensor (but not in any way that suggests that they endorse you or your use +# of the work). +# +# Redistribution and use in source and binary forms, with or without modification, +# are permitted provided that the following conditions are met: +# * Redistributions of source code must retain the above copyright notice, this +# list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, this +# list of conditions and the following disclaimer in the documentation and/or +# other materials provided with the distribution. +# * Neither the names of the authors nor the names of contributors may +# be used to endorse or promote products derived from this ontology without +# specific prior written permission. +# +# THIS ONTOLOGY IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +# THIS ONTOLOGY, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +@prefix exif: . +@prefix nid3: . +@prefix nrl: . +@prefix nfo: . +@prefix xsd: . +@prefix tmo: . +@prefix protege: . +@prefix nmo: . +@prefix rdfs: . +@prefix nexif: . +@prefix ncal: . +@prefix pimo: . +@prefix dcterms: . +@prefix nao: . +@prefix geo: . +@prefix dc: . +@prefix nie: . +@prefix nco: . +@prefix rdf: . + +nco: {nco:region + a rdf:Property ; + rdfs:comment "Region. Inspired by the fifth part of the value of the 'ADR' property as defined in RFC 2426, sec. 3.2.1" ; + rdfs:domain nco:PostalAddress ; + rdfs:label "region" ; + rdfs:range xsd:string ; + nrl:maxCardinality 1 . + + nco:key + a rdf:Property ; + rdfs:comment "An encryption key attached to a contact. Inspired by the KEY property defined in RFC 2426 sec. 3.7.2" ; + rdfs:domain nco:Contact ; + rdfs:label "key" ; + rdfs:range nie:DataObject ; + rdfs:subPropertyOf nie:hasPart . + + nco:nameHonorificSuffix + a rdf:Property ; + rdfs:comment "A suffix for the name of the Object represented by the given object. See documentation for the 'nameFamily' for details." ; + rdfs:domain nco:PersonContact ; + rdfs:label "nameHonorificSuffix" ; + rdfs:range xsd:string . + + nco:url + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "A uniform resource locator associated with the given role of a Contact. Inspired by the 'URL' property defined in RFC 2426 Sec. 3.6.8." ; + rdfs:domain nco:Role ; + rdfs:label "url" ; + rdfs:range rdfs:Resource . + + nco:VoicePhoneNumber + a rdfs:Class ; + rdfs:comment "A telephone number with voice communication capabilities. Class inspired by the TYPE=voice parameter of the TEL property defined in RFC 2426 sec. 3.3.1" ; + rdfs:label "VoicePhoneNumber" ; + rdfs:subClassOf nco:PhoneNumber . + + nco:nameFamily + a rdf:Property ; + rdfs:comment "The family name of an Object represented by this Contact. These applies to people that have more than one given name. The 'first' one is considered 'the' given name (see nameGiven) property. All additional ones are considered 'additional' names. The name inherited from parents is the 'family name'. e.g. For Dr. John Phil Paul Stevenson Jr. M.D. A.C.P. we have contact with: honorificPrefix: 'Dr.', nameGiven: 'John', nameAdditional: 'Phil', nameAdditional: 'Paul', nameFamily: 'Stevenson', honorificSuffix: 'Jr.', honorificSuffix: 'M.D.', honorificSuffix: 'A.C.P.'. These properties form an equivalent of the compound 'N' property as defined in RFC 2426 Sec. 3.1.2" ; + rdfs:domain nco:PersonContact ; + rdfs:label "nameFamily" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" . + + nco:VideoTelephoneNumber + a rdfs:Class ; + rdfs:comment "A Video telephone number. A class inspired by the TYPE=video parameter of the TEL property defined in RFC 2426 sec. 3.3.1" ; + rdfs:label "VideoTelephoneNumber" ; + rdfs:subClassOf nco:VoicePhoneNumber . + + nco:contactUID + a rdf:Property ; + rdfs:comment "A value that represents a globally unique identifier corresponding to the individual or resource associated with the Contact. An equivalent of the 'UID' property defined in RFC 2426 Sec. 3.6.7" ; + rdfs:domain nco:Contact ; + rdfs:label "contactUID" ; + rdfs:range xsd:string ; + rdfs:subPropertyOf nie:identifier ; + nrl:maxCardinality "1" . + + nco:publisher + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "An entity responsible for making the InformationElement available." ; + rdfs:domain nie:InformationElement ; + rdfs:label "publisher" ; + rdfs:range nco:Contact ; + rdfs:subPropertyOf dc:publisher . + + nco:country + a rdf:Property ; + rdfs:comment "A part of an address specyfing the country. Inspired by the seventh part of the value of the 'ADR' property as defined in RFC 2426, sec. 3.2.1" ; + rdfs:domain nco:PostalAddress ; + rdfs:label "country" ; + rdfs:range xsd:string ; + nrl:maxCardinality 1 . + + nco:nameHonorificPrefix + a rdf:Property ; + rdfs:comment "A prefix for the name of the object represented by this Contact. See documentation for the 'nameFamily' property for details." ; + rdfs:domain nco:PersonContact ; + rdfs:label "nameHonorificPrefix" ; + rdfs:range xsd:string . + + nco:extendedAddress + a rdf:Property ; + rdfs:comment "An extended part of an address. This field might be used to express parts of an address that aren't include in the name of the Contact but also aren't part of the actual location. Usually the streed address and following fields are enough for a postal letter to arrive. Examples may include ('University of California Campus building 45', 'Sears Tower 34th floor' etc.) Inspired by the second part of the value of the 'ADR' property as defined in RFC 2426, sec. 3.2.1" ; + rdfs:domain nco:PostalAddress ; + rdfs:label "extendedAddress" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" . + + nco:IMAccount + a rdfs:Class ; + rdfs:comment "An account in an Instant Messaging system." ; + rdfs:label "IMAccount" ; + rdfs:subClassOf nco:ContactMedium . + + nco:hasIMAccount + a rdf:Property ; + rdfs:comment "Indicates that an Instant Messaging account owned by an entity represented by this contact." ; + rdfs:domain nco:Role ; + rdfs:label "hasIMAccount" ; + rdfs:range nco:IMAccount ; + rdfs:subPropertyOf nco:hasContactMedium . + + nco:IsdnNumber + a rdfs:Class ; + rdfs:comment "An ISDN phone number. Inspired by the (TYPE=isdn) parameter of the TEL property as defined in RFC 2426 sec 3.3.1." ; + rdfs:label "IsdnNumber" ; + rdfs:subClassOf nco:VoicePhoneNumber . + + nco:creator + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "Creator of an information element, an entity primarily responsible for the creation of the content of the data object." ; + rdfs:domain nie:InformationElement ; + rdfs:label "creator" ; + rdfs:range nco:Contact ; + rdfs:subPropertyOf dc:creator , nco:contributor , nao:creator . + + nco:hasLocation + a rdf:Property ; + rdfs:comment "Geographical location of the contact. Inspired by the 'GEO' property specified in RFC 2426 Sec. 3.4.2" ; + rdfs:domain nco:Contact ; + rdfs:label "hasLocation" ; + rdfs:range geo:Point ; + nrl:maxCardinality "1" . + + nco:birthday + a rdf:Property ; + rdfs:comment "Links a contact with the calendar event of his birthday. (NCAL version)"; + rdfs:label "birthday" ; + rdfs:domain nco:Contact ; + rdfs:range ncal:BirthdayEvent ; + nrl:maxCardinality "1" . + + nco:phoneNumber + a rdf:Property ; + rdfs:domain nco:PhoneNumber ; + rdfs:label "phoneNumber" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" . + + nco:nickname + a rdf:Property ; + rdfs:comment "A nickname of the Object represented by this Contact. This is an equivalent of the 'NICKNAME' property as defined in RFC 2426 Sec. 3.1.3." ; + rdfs:domain nco:Contact ; + rdfs:label "nickname" ; + rdfs:range xsd:string . + + nco:imStatus + a rdf:Property, nrl:NonDefiningProperty ; + rdfs:comment "Current status of the given IM account. When this property is set, the nco:imStatusType should also always be set. Applications should attempt to parse this property to determine the presence, only falling back to the nco:imStatusType property in the case that this property's value is unrecognised. Values for this property may include 'available', 'offline', 'busy' etc. The exact choice of them is unspecified, although it is recommended to follow the guidance of the Telepathy project when choosing a string identifier http://telepathy.freedesktop.org/spec/Connection_Interface_Simple_Presence.html#description" ; + rdfs:domain nco:IMAccount ; + rdfs:label "imStatus" ; + rdfs:range xsd:string ; + nrl:maxCardinality 1 . + + nco:imStatusType + a rdf:Property ; + rdfs:comment "Current status type of the given IM account. When this property is set, the nco:imStatus property should also always be set. Applications should attempt to parse the nco:imStatus property to determine the presence, only falling back to this property in the case that the nco:imStatus property's value is unrecognised." ; + rdfs:domain nco:IMAccount ; + rdfs:label "instant messaging status type" ; + rdfs:range nco:IMStatusType ; + nrl:maxCardinality 1 . + + nco:IMStatusType a rdfs:Class ; + rdfs:label "instant messaging status type" ; + rdfs:comment "The status type of an IMAccount. Based on the Connection_Presence_Type enumeration of the Telepathy project: http://telepathy.freedesktop.org/spec/Connection_Interface_Simple_Presence.html#Enum:Connection_Presence_Type" ; + rdfs:subClassOf rdfs:Resource . + + nco:IMStatusTypeOffline + a nco:IMStatusType ; + rdfs:label "offline" . + + nco:IMStatusTypeAvailable + a nco:IMStatusType ; + rdfs:label "available" . + + nco:IMStatusTypeAway + a nco:IMStatusType ; + rdfs:label "away" . + + nco:IMStatusTypeExtendedAway + a nco:IMStatusType ; + rdfs:label "extended away". + + nco:IMStatusTypeHidden + a nco:IMStatusType ; + rdfs:label "hidden" . + + nco:IMStatusTypeBusy + a nco:IMStatusType ; + rdfs:label "busy" . + + nco:IMStatusTypeUnknown + a nco:IMStatusType ; + rdfs:label "unknown" . + + nco:containsContact + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment """A property used to group contacts into contact groups. This + property was NOT defined in the VCARD standard. See documentation for the + 'ContactList' class for details""" ; + rdfs:domain nco:ContactList ; + rdfs:label "containsContact" ; + rdfs:range nco:ContactListDataObject ; + rdfs:subPropertyOf nie:hasPart . + + nco:department + a rdf:Property ; + rdfs:comment "Department. The organizational unit within the organization." ; + rdfs:domain nco:Affiliation ; + rdfs:label "department" ; + rdfs:range xsd:string . + + nco:imID + a rdf:Property ; + rdfs:comment "Identifier of the IM account. Examples of such identifier might include ICQ UINs, Jabber IDs, Skype names etc." ; + rdfs:domain nco:IMAccount ; + rdfs:label "imID" ; + rdfs:range xsd:string ; + rdfs:subPropertyOf nao:identifier . + + nco:addressLocation + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "The geographical location of a postal address." ; + rdfs:domain nco:PostalAddress ; + rdfs:label "addressLocation" ; + rdfs:range geo:Point ; + nrl:maxCardinality "1" . + + nco:note + a rdf:Property ; + rdfs:comment "A note about the object represented by this Contact. An equivalent for the 'NOTE' property defined in RFC 2426 Sec. 3.6.2" ; + rdfs:domain nco:Contact ; + rdfs:label "note" ; + rdfs:range xsd:string ; + rdfs:subPropertyOf nie:description . + + nco:representative + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "An object that represent an object represented by this Contact. Usually this property is used to link a Contact to an organization, to a contact to the representative of this organization the user directly interacts with. An equivalent for the 'AGENT' property defined in RFC 2426 Sec. 3.5.4" ; + rdfs:domain nco:Contact ; + rdfs:label "representative" ; + rdfs:range nco:Contact . + + nco:nameAdditional + a rdf:Property ; + rdfs:comment "Additional given name of an object represented by this contact. See documentation for 'nameFamily' property for details." ; + rdfs:domain nco:PersonContact ; + rdfs:label "nameAdditional" ; + rdfs:range xsd:string . + + nco:nameGiven + a rdf:Property ; + rdfs:comment "The given name for the object represented by this Contact. See documentation for 'nameFamily' property for details." ; + rdfs:domain nco:PersonContact ; + rdfs:label "nameGiven" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" . + + nco:PcsNumber + a rdfs:Class ; + rdfs:comment "Personal Communication Services Number. A class inspired by the TYPE=pcs parameter of the TEL property defined in RFC 2426 sec. 3.3.1" ; + rdfs:label "PcsNumber" ; + rdfs:subClassOf nco:VoicePhoneNumber . + + nco:ContactList + a rdfs:Class ; + rdfs:comment "A contact list, this class represents an addressbook or a contact list of an IM application. Contacts inside a contact list can belong to contact groups." ; + rdfs:label "ContactList" ; + rdfs:subClassOf nie:InformationElement . + + nco:fullname + a rdf:Property ; + rdfs:comment "To specify the formatted text corresponding to the name of the object the Contact represents. An equivalent of the FN property as defined in RFC 2426 Sec. 3.1.1." ; + rdfs:domain nco:Contact ; + rdfs:label "fullname" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" ; + rdfs:subPropertyOf nie:title . + + nco:ContactGroup + a rdfs:Class ; + rdfs:comment "A group of Contacts. Could be used to express a group in an addressbook or on a contact list of an IM application. One contact can belong to many groups." ; + rdfs:label "ContactGroup" ; + rdfs:subClassOf nie:InformationElement . + + nco:BbsNumber + a rdfs:Class ; + rdfs:comment "A Bulletin Board System (BBS) phone number. Inspired by the (TYPE=bbsl) parameter of the TEL property as defined in RFC 2426 sec 3.3.1." ; + rdfs:label "BbsNumber" ; + rdfs:subClassOf nco:ModemNumber . + + nco:Affiliation + a rdfs:Class ; + rdfs:comment "Aggregates three properties defined in RFC2426. Originally all three were attached directly to a person. One person could have only one title and one role within one organization. This class is intended to lift this limitation." ; + rdfs:label "Affiliation" ; + rdfs:subClassOf nco:Role . + + nco:streetAddress + a rdf:Property ; + rdfs:comment "The streed address. Inspired by the third part of the value of the 'ADR' property as defined in RFC 2426, sec. 3.2.1" ; + rdfs:domain nco:PostalAddress ; + rdfs:label "streetAddress" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" . + + nco:OrganizationContact + a rdfs:Class ; + rdfs:comment "A Contact that denotes on Organization." ; + rdfs:label "OrganizationContact" ; + rdfs:subClassOf nco:Contact . + + nco:PhoneNumber + a rdfs:Class ; + rdfs:comment "A telephone number." ; + rdfs:label "PhoneNumber" ; + rdfs:subClassOf nco:ContactMedium . + + nco:Contact + a rdfs:Class ; + rdfs:comment "A Contact. A piece of data that can provide means to identify or communicate with an entity." ; + rdfs:label "Contact" ; + rdfs:subClassOf nco:Role , nie:InformationElement , nao:Party . + + nco:ModemNumber + a rdfs:Class ; + rdfs:comment "A modem phone number. Inspired by the (TYPE=modem) parameter of the TEL property as defined in RFC 2426 sec 3.3.1." ; + rdfs:label "ModemNumber" ; + rdfs:subClassOf nco:PhoneNumber . + + nco:Role + a rdfs:Class ; + rdfs:comment "A role played by a contact. Contacts that denote people, can have many roles (e.g. see the hasAffiliation property and Affiliation class). Contacts that denote Organizations or other Agents usually have one role. Each role can introduce additional contact media." ; + rdfs:label "Role" ; + rdfs:subClassOf rdfs:Resource . + + nco:PagerNumber + a rdfs:Class ; + rdfs:comment "A pager phone number. Inspired by the (TYPE=pager) parameter of the TEL property as defined in RFC 2426 sec 3.3.1." ; + rdfs:label "PagerNumber" ; + rdfs:subClassOf nco:MessagingNumber . + + nco:hasPhoneNumber + a rdf:Property ; + rdfs:comment "A number for telephony communication with the object represented by this Contact. An equivalent of the 'TEL' property defined in RFC 2426 Sec. 3.3.1" ; + rdfs:domain nco:Role ; + rdfs:label "hasPhoneNumber" ; + rdfs:range nco:PhoneNumber ; + rdfs:subPropertyOf nco:hasContactMedium . + + nco:photo + a rdf:Property ; + rdfs:comment "Photograph attached to a Contact. The DataObject referred to by this property is usually interpreted as an nfo:Image. Inspired by the PHOTO property defined in RFC 2426 sec. 3.1.4" ; + rdfs:domain nco:Contact ; + rdfs:label "photo" ; + rdfs:range nie:DataObject ; + rdfs:subPropertyOf nie:hasPart . + + nco:contributor + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "An entity responsible for making contributions to the content of the InformationElement." ; + rdfs:domain nie:InformationElement ; + rdfs:label "contributor" ; + rdfs:range nco:Contact ; + rdfs:subPropertyOf dc:contributor , nao:contributor . + + nco:logo + a rdf:Property ; + rdfs:comment "Logo of a company. Inspired by the LOGO property defined in RFC 2426 sec. 3.5.3" ; + rdfs:domain nco:OrganizationContact ; + rdfs:label "logo" ; + rdfs:range nie:DataObject ; + rdfs:subPropertyOf nie:hasPart . + + nco:websiteUrl + a rdf:Property ; + rdfs:comment "A url of a website." ; + rdfs:domain nco:Role ; + rdfs:label "websiteUrl" ; + rdfs:range rdfs:Resource ; + rdfs:subPropertyOf nco:url . + + nco:ContactMedium + a rdfs:Class ; + rdfs:comment "A superclass for all contact media - ways to contact an entity represented by a Contact instance. Some of the subclasses of this class (the various kinds of telephone numbers and postal addresses) have been inspired by the values of the TYPE parameter of ADR and TEL properties defined in RFC 2426 sec. 3.2.1. and 3.3.1 respectively. Each value is represented by an appropriate subclass with two major exceptions TYPE=home and TYPE=work. They are to be expressed by the roles these contact media are attached to i.e. contact media with TYPE=home parameter are to be attached to the default role (nco:Contact or nco:PersonContact), whereas media with TYPE=work parameter should be attached to nco:Affiliation or nco:OrganizationContact." ; + rdfs:label "ContactMedium" ; + rdfs:subClassOf rdfs:Resource . + + nco:Gender + a rdfs:Class ; + rdfs:comment "Gender. Instances of this class may include male and female." ; + rdfs:label "Gender" ; + rdfs:subClassOf rdfs:Resource . + + nco:male + a nco:Gender ; + rdfs:comment "A Male" ; + rdfs:label "male" . + + nco:birthDate + a rdf:Property ; + rdfs:comment "Birth date of the object represented by this Contact. An equivalent of the 'BDAY' property as defined in RFC 2426 Sec. 3.1.5." ; + rdfs:domain nco:Contact ; + rdfs:label "birthDate" ; + rdfs:range xsd:date ; + rdfs:subPropertyOf dc:date ; + nrl:maxCardinality 1 . + + nco:hasEmailAddress + a rdf:Property ; + rdfs:comment "An address for electronic mail communication with the object specified by this contact. An equivalent of the 'EMAIL' property as defined in RFC 2426 Sec. 3.3.1." ; + rdfs:domain nco:Role ; + rdfs:label "hasEmailAddress" ; + rdfs:range nco:EmailAddress ; + rdfs:subPropertyOf nco:hasContactMedium . + + nco:postalcode + a rdf:Property ; + rdfs:comment "Postal Code. Inspired by the sixth part of the value of the 'ADR' property as defined in RFC 2426, sec. 3.2.1" ; + rdfs:domain nco:PostalAddress ; + rdfs:label "postalcode" ; + rdfs:range xsd:string ; + nrl:maxCardinality 1 . + + nco:MessagingNumber + a rdfs:Class ; + rdfs:comment "A number that can accept textual messages." ; + rdfs:label "MessagingNumber" ; + rdfs:subClassOf nco:PhoneNumber . + + nco:org + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "Name of an organization or a unit within an organization the object represented by a Contact is associated with. An equivalent of the 'ORG' property defined in RFC 2426 Sec. 3.5.5" ; + rdfs:domain nco:Affiliation ; + rdfs:label "org" ; + rdfs:range nco:OrganizationContact ; + nrl:maxCardinality "1" . + + nco:PersonContact + a rdfs:Class ; + rdfs:comment "A Contact that denotes a Person. A person can have multiple Affiliations." ; + rdfs:label "PersonContact" ; + rdfs:subClassOf nco:Contact . + + nco:ParcelDeliveryAddress + a rdfs:Class ; + rdfs:comment "Parcel Delivery Addresse. Class inspired by TYPE=parcel parameter of the ADR property defined in RFC 2426 sec. 3.2.1" ; + rdfs:label "ParcelDeliveryAddress" ; + rdfs:subClassOf nco:PostalAddress . + + nco:title + a rdf:Property ; + rdfs:comment "The official title the object represented by this contact in an organization. E.g. 'CEO', 'Director, Research and Development', 'Junior Software Developer/Analyst' etc. An equivalent of the 'TITLE' property defined in RFC 2426 Sec. 3.5.1" ; + rdfs:domain nco:Affiliation ; + rdfs:label "title" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" . + + nco:AudioIMAccount + a rdfs:Class ; + nao:deprecated true ; + rdfs:comment "Deprecated in favour of nco:imCapabilityAudio." ; + rdfs:label "AudioIMAccount" ; + rdfs:subClassOf nco:IMAccount . + + nco:voiceMail + a rdf:Property ; + rdfs:comment "Indicates if the given number accepts voice mail. (e.g. there is an answering machine). Inspired by TYPE=msg parameter of the TEL property defined in RFC 2426 sec. 3.3.1" ; + rdfs:domain nco:VoicePhoneNumber ; + rdfs:label "voiceMail" ; + rdfs:range xsd:boolean ; + nrl:maxCardinality "1" . + + nco:PostalAddress + a rdfs:Class ; + rdfs:comment "A postal address. A class aggregating the various parts of a value for the 'ADR' property as defined in RFC 2426 Sec. 3.2.1." ; + rdfs:label "PostalAddress" ; + rdfs:subClassOf nco:ContactMedium . + + nco:belongsToGroup + a rdf:Property ; + rdfs:comment "Links a Contact with a ContactGroup it belongs to." ; + rdfs:domain nco:Contact ; + rdfs:label "belongsToGroup" ; + rdfs:range nco:ContactGroup . + + nco:hasContactMedium + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "A superProperty for all properties linking a Contact to an instance of a contact medium." ; + rdfs:domain nco:Role ; + rdfs:label "hasContactMedium" ; + rdfs:range nco:ContactMedium . + + nco:contactGroupName + a rdf:Property ; + rdfs:comment """The name of the contact group. This property was NOT defined + in the VCARD standard. See documentation of the 'ContactGroup' class for + details""" ; + rdfs:domain nco:ContactGroup ; + rdfs:label "contactGroupName" ; + rdfs:range xsd:string ; + rdfs:subPropertyOf dc:title ; + nrl:maxCardinality 1 . + + nco:FaxNumber + a rdfs:Class ; + rdfs:comment "A fax number. Inspired by the (TYPE=fax) parameter of the TEL property as defined in RFC 2426 sec 3.3.1." ; + rdfs:label "FaxNumber" ; + rdfs:subClassOf nco:PhoneNumber . + + nco:contactMediumComment + a rdf:Property ; + rdfs:comment "A comment about the contact medium. (Deprecated in favor of nie:comment or nao:description - based on the context)" ; + rdfs:domain nco:ContactMedium ; + rdfs:label "contactMediumComment" ; + rdfs:range xsd:string ; + nao:deprecated true. + + nco:foafUrl + a rdf:Property ; + rdfs:comment "The URL of the FOAF file." ; + rdfs:domain nco:Role ; + rdfs:label "foafUrl" ; + rdfs:range rdfs:Resource ; + rdfs:subPropertyOf nco:url . + + nco:CarPhoneNumber + a rdfs:Class ; + rdfs:comment "A car phone number. Inspired by the (TYPE=car) parameter of the TEL property as defined in RFC 2426 sec 3.3.1." ; + rdfs:label "CarPhoneNumber" ; + rdfs:subClassOf nco:VoicePhoneNumber . + + nco:ContactListDataObject + a rdfs:Class ; + rdfs:comment "An entity occuring on a contact list (usually interpreted as an nco:Contact)" ; + rdfs:label "ContactListDataObject" ; + rdfs:subClassOf nie:DataObject . + + nco:emailAddress + a rdf:Property ; + rdfs:domain nco:EmailAddress ; + rdfs:label "emailAddress" ; + rdfs:range xsd:string ; + nrl:maxCardinality 1 . + + nco:InternationalDeliveryAddress + a rdfs:Class ; + rdfs:comment "International Delivery Addresse. Class inspired by TYPE=intl parameter of the ADR property defined in RFC 2426 sec. 3.2.1" ; + rdfs:label "InternationalDeliveryAddress" ; + rdfs:subClassOf nco:PostalAddress . + + nco:locality + a rdf:Property ; + rdfs:comment "Locality or City. Inspired by the fourth part of the value of the 'ADR' property as defined in RFC 2426, sec. 3.2.1" ; + rdfs:domain nco:PostalAddress ; + rdfs:label "locality" ; + rdfs:range xsd:string ; + nrl:maxCardinality 1 . + + nco:VideoIMAccount + a rdfs:Class ; + nao:deprecated true ; + rdfs:comment "Deprecated in favour of nco:imCapabilityVideo." ; + rdfs:label "VideoIMAccount" ; + rdfs:subClassOf nco:AudioIMAccount . + + nco:sound + a rdf:Property ; + rdfs:comment "Sound clip attached to a Contact. The DataObject referred to by this property is usually interpreted as an nfo:Audio. Inspired by the SOUND property defined in RFC 2425 sec. 3.6.6." ; + rdfs:domain nco:Contact ; + rdfs:label "sound" ; + rdfs:range nie:DataObject ; + rdfs:subPropertyOf nie:hasPart . + + nco:EmailAddress + a rdfs:Class ; + rdfs:comment "An email address. The recommended best practice is to use mailto: uris for instances of this class." ; + rdfs:label "EmailAddress" ; + rdfs:subClassOf nco:ContactMedium . + + nco:imNickname + a rdf:Property ; + rdfs:comment "A nickname attached to a particular IM Account." ; + rdfs:domain nco:IMAccount ; + rdfs:label "imNickname" ; + rdfs:range xsd:string . + + nco:hobby + a rdf:Property ; + rdfs:comment "A hobby associated with a PersonContact. This property can be used to express hobbies and interests." ; + rdfs:domain nco:PersonContact ; + rdfs:label "hobby" ; + rdfs:range xsd:string . + + nco:blogUrl + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "A Blog url." ; + rdfs:domain nco:Role ; + rdfs:label "blogUrl" ; + rdfs:range rdfs:Resource ; + rdfs:subPropertyOf nco:url . + + nco:CellPhoneNumber + a rdfs:Class ; + rdfs:comment "A cellular phone number. Inspired by the (TYPE=cell) parameter of the TEL property as defined in RFC 2426 sec 3.3.1. Usually a cellular phone can accept voice calls as well as textual messages (SMS), therefore this class has two superclasses." ; + rdfs:label "CellPhoneNumber" ; + rdfs:subClassOf nco:MessagingNumber , nco:VoicePhoneNumber . + + nco:role + a rdf:Property ; + rdfs:comment "Role an object represented by this contact represents in the organization. This might include 'Programmer', 'Manager', 'Sales Representative'. Be careful to avoid confusion with the title property. An equivalent of the 'ROLE' property as defined in RFC 2426. Sec. 3.5.2. Note the difference between nco:Role class and nco:role property." ; + rdfs:domain nco:Affiliation ; + rdfs:label "role" ; + rdfs:range xsd:string . + + nco:DomesticDeliveryAddress + a rdfs:Class ; + rdfs:comment "Domestic Delivery Addresse. Class inspired by TYPE=dom parameter of the ADR property defined in RFC 2426 sec. 3.2.1" ; + rdfs:label "DomesticDeliveryAddress" ; + rdfs:subClassOf nco:PostalAddress . + + nco:female + a nco:Gender ; + rdfs:comment "A Female" ; + rdfs:label "female" . + + nco:hasPostalAddress + a rdf:Property ; + rdfs:comment "The default Address for a Contact. An equivalent of the 'ADR' property as defined in RFC 2426 Sec. 3.2.1." ; + rdfs:domain nco:Role ; + rdfs:label "hasPostalAddress" ; + rdfs:range nco:PostalAddress ; + rdfs:subPropertyOf nco:hasContactMedium . + + nco:imAccountType + a rdf:Property ; + rdfs:comment "Type of the IM account. This may be the name of the service that provides the IM functionality. Examples might include Jabber, ICQ, MSN etc" ; + rdfs:domain nco:IMAccount ; + rdfs:label "imAccountType" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" . + + nco:pobox + a rdf:Property ; + rdfs:comment "Post office box. This is the first part of the value of the 'ADR' property as defined in RFC 2426, sec. 3.2.1" ; + rdfs:domain nco:PostalAddress ; + rdfs:label "pobox" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1". + + nco:hasAffiliation + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "Links a PersonContact with an Affiliation." ; + rdfs:domain nco:PersonContact ; + rdfs:label "hasAffiliation" ; + rdfs:range nco:Affiliation . + + nco:gender + a rdf:Property ; + rdfs:comment "Gender of the given contact." ; + rdfs:domain nco:PersonContact ; + rdfs:label "gender" ; + rdfs:range nco:Gender ; + nrl:maxCardinality 1 . + + nco:imStatusMessage + a rdf:Property, nrl:NonDefiningProperty ; + rdfs:comment "A feature common in most IM systems. A message left by the user for all his/her contacts to see." ; + rdfs:domain nco:IMAccount ; + rdfs:label "imStatusMessage" ; + rdfs:range xsd:string ; + nrl:maxCardinality "1" . + + nco:start + a rdf:Property ; + rdfs:comment "Start datetime for the role, such as: the datetime of joining a project or organization, datetime of starting employment, datetime of marriage" ; + rdfs:label "start" ; + rdfs:domain nco:Role ; + rdfs:range xsd:dateTime ; + nrl:maxCardinality 1 . + + nco:end + a rdf:Property; + rdfs:comment "End datetime for the role, such as: the datetime of leaving a project or organization, datetime of ending employment, datetime of divorce. If absent or set to a date in the future, the role is currently active." ; + rdfs:label "end" ; + rdfs:domain nco:Role ; + rdfs:range xsd:dateTime ; + nrl:maxCardinality 1 . + + nco:IMCapability a rdfs:Class ; + rdfs:label "imCapability" ; + rdfs:comment "Capabilities of a cetain IMAccount." ; + rdfs:subClassOf rdfs:Resource . + + nco:imCapabilityText a nco:IMCapability . + nco:imCapabilityAudio a nco:IMCapability . + nco:imCapabilityVideo a nco:IMCapability . + + nco:hasIMCapability + a rdf:Property, nrl:DefiningProperty ; + rdfs:comment "Indicates that an IMAccount has a certain capability." ; + rdfs:domain nco:IMAccount ; + rdfs:label "hasIMCapability" ; + rdfs:range nco:IMCapability . + + nco:isAccessedBy + a rdf:Property ; + rdfs:comment "Indicates the local IMAccount by which this IMAccount is accessed. This does not imply membership of a contact list." ; + rdfs:label "isKnownBy" ; + rdfs:domain nco:IMAccount ; + rdfs:range nco:IMAccount . + + nco:publishesPresenceTo + a rdf:Property ; + rdfs:comment "Indicates that this IMAccount publishes its presence information to the other IMAccount." ; + rdfs:label "publishesPresenceTo" ; + rdfs:domain nco:IMAccount ; + rdfs:range nco:IMAccount . + + nco:requestedPresenceSubscriptionTo + a rdf:Property ; + rdfs:comment "Indicates that this IMAccount has requested a subscription to the presence information of the other IMAccount." ; + rdfs:label "requestedPresenceSubscriptionTo" ; + rdfs:domain nco:IMAccount ; + rdfs:range nco:IMAccount . + + nco:isBlocked + a rdf:Property ; + rdfs:comment "Indicates that this IMAccount has been blocked." ; + rdfs:domain nco:IMAccount ; + rdfs:label "isBlocked" ; + rdfs:range xsd:boolean ; + nrl:maxCardinality "1" . +} + + {nco: a nrl:Ontology ; + nao:creator ; + nao:hasDefaultNamespace + "http://www.semanticdesktop.org/ontologies/2007/03/22/nco#" ; + nao:hasDefaultNamespaceAbbreviation + "nco" ; + nao:lastModified "2011-12-13T12:44:58Z" ; + nao:status "Unstable" ; + nao:updatable "0 " ; + nao:version "0.10.0" ; + nao:prefLabel "Nepomuk Contact Ontology" ; + nao:description "The Nepomuk Contact Ontology describes contact information, common in many places on the desktop. It evolved from the VCARD specification (RFC 2426) and has been inspired by the Vcard Ontology by Renato Ianella. The scope of NCO is much broader though." . + + + a nrl:GraphMetadata ; + nrl:coreGraphMetadataFor + nco: . +} diff --git a/tests/Trinity.Tests.Virtuoso/ontologies/owl.n3 b/tests/Trinity.Tests.Virtuoso/ontologies/owl.n3 new file mode 100644 index 0000000..87467e7 --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/ontologies/owl.n3 @@ -0,0 +1,552 @@ +@prefix dc: . +@prefix grddl: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix xml: . +@prefix xsd: . + + a owl:Ontology ; + dc:title "The OWL 2 Schema vocabulary (OWL 2)" ; + rdfs:comment """ + This ontology partially describes the built-in classes and + properties that together form the basis of the RDF/XML syntax of OWL 2. + The content of this ontology is based on Tables 6.1 and 6.2 + in Section 6.4 of the OWL 2 RDF-Based Semantics specification, + available at http://www.w3.org/TR/owl2-rdf-based-semantics/. + Please note that those tables do not include the different annotations + (labels, comments and rdfs:isDefinedBy links) used in this file. + Also note that the descriptions provided in this ontology do not + provide a complete and correct formal description of either the syntax + or the semantics of the introduced terms (please see the OWL 2 + recommendations for the complete and normative specifications). + Furthermore, the information provided by this ontology may be + misleading if not used with care. This ontology SHOULD NOT be imported + into OWL ontologies. Importing this file into an OWL 2 DL ontology + will cause it to become an OWL 2 Full ontology and may have other, + unexpected, consequences. + """ ; + rdfs:isDefinedBy + , + , + ; + rdfs:seeAlso , + ; + owl:imports ; + owl:versionIRI ; + owl:versionInfo "$Date: 2009/11/15 10:54:12 $" ; + grddl:namespaceTransformation . + + +owl:AllDifferent a rdfs:Class ; + rdfs:label "AllDifferent" ; + rdfs:comment "The class of collections of pairwise different individuals." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Resource . + +owl:AllDisjointClasses a rdfs:Class ; + rdfs:label "AllDisjointClasses" ; + rdfs:comment "The class of collections of pairwise disjoint classes." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Resource . + +owl:AllDisjointProperties a rdfs:Class ; + rdfs:label "AllDisjointProperties" ; + rdfs:comment "The class of collections of pairwise disjoint properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Resource . + +owl:Annotation a rdfs:Class ; + rdfs:label "Annotation" ; + rdfs:comment "The class of annotated annotations for which the RDF serialization consists of an annotated subject, predicate and object." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Resource . + +owl:AnnotationProperty a rdfs:Class ; + rdfs:label "AnnotationProperty" ; + rdfs:comment "The class of annotation properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdf:Property . + +owl:AsymmetricProperty a rdfs:Class ; + rdfs:label "AsymmetricProperty" ; + rdfs:comment "The class of asymmetric properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:ObjectProperty . + +owl:Axiom a rdfs:Class ; + rdfs:label "Axiom" ; + rdfs:comment "The class of annotated axioms for which the RDF serialization consists of an annotated subject, predicate and object." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Resource . + +owl:Class a rdfs:Class ; + rdfs:label "Class" ; + rdfs:comment "The class of OWL classes." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Class . + +owl:DataRange a rdfs:Class ; + rdfs:label "DataRange" ; + rdfs:comment "The class of OWL data ranges, which are special kinds of datatypes. Note: The use of the IRI owl:DataRange has been deprecated as of OWL 2. The IRI rdfs:Datatype SHOULD be used instead." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Datatype . + +owl:DatatypeProperty a rdfs:Class ; + rdfs:label "DatatypeProperty" ; + rdfs:comment "The class of data properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdf:Property . + +owl:DeprecatedClass a rdfs:Class ; + rdfs:label "DeprecatedClass" ; + rdfs:comment "The class of deprecated classes." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Class . + +owl:DeprecatedProperty a rdfs:Class ; + rdfs:label "DeprecatedProperty" ; + rdfs:comment "The class of deprecated properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdf:Property . + +owl:FunctionalProperty a rdfs:Class ; + rdfs:label "FunctionalProperty" ; + rdfs:comment "The class of functional properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdf:Property . + +owl:InverseFunctionalProperty a rdfs:Class ; + rdfs:label "InverseFunctionalProperty" ; + rdfs:comment "The class of inverse-functional properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:ObjectProperty . + +owl:IrreflexiveProperty a rdfs:Class ; + rdfs:label "IrreflexiveProperty" ; + rdfs:comment "The class of irreflexive properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:ObjectProperty . + +owl:NamedIndividual a rdfs:Class ; + rdfs:label "NamedIndividual" ; + rdfs:comment "The class of named individuals." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:Thing . + +owl:NegativePropertyAssertion a rdfs:Class ; + rdfs:label "NegativePropertyAssertion" ; + rdfs:comment "The class of negative property assertions." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Resource . + +owl:Nothing a owl:Class ; + rdfs:label "Nothing" ; + rdfs:comment "This is the empty class." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:Thing . + +owl:ObjectProperty a rdfs:Class ; + rdfs:label "ObjectProperty" ; + rdfs:comment "The class of object properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdf:Property . + +owl:Ontology a rdfs:Class ; + rdfs:label "Ontology" ; + rdfs:comment "The class of ontologies." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdfs:Resource . + +owl:OntologyProperty a rdfs:Class ; + rdfs:label "OntologyProperty" ; + rdfs:comment "The class of ontology properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf rdf:Property . + +owl:ReflexiveProperty a rdfs:Class ; + rdfs:label "ReflexiveProperty" ; + rdfs:comment "The class of reflexive properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:ObjectProperty . + +owl:Restriction a rdfs:Class ; + rdfs:label "Restriction" ; + rdfs:comment "The class of property restrictions." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:Class . + +owl:SymmetricProperty a rdfs:Class ; + rdfs:label "SymmetricProperty" ; + rdfs:comment "The class of symmetric properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:ObjectProperty . + +owl:TransitiveProperty a rdfs:Class ; + rdfs:label "TransitiveProperty" ; + rdfs:comment "The class of transitive properties." ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:ObjectProperty . + +owl:Thing a owl:Class ; + rdfs:label "Thing" ; + rdfs:comment "The class of OWL individuals." ; + rdfs:isDefinedBy . + +owl:allValuesFrom a rdf:Property ; + rdfs:label "allValuesFrom" ; + rdfs:comment "The property that determines the class that a universal property restriction refers to." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Class . + +owl:annotatedProperty a rdf:Property ; + rdfs:label "annotatedProperty" ; + rdfs:comment "The property that determines the predicate of an annotated axiom or annotated annotation." ; + rdfs:domain rdfs:Resource ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Resource . + +owl:annotatedSource a rdf:Property ; + rdfs:label "annotatedSource" ; + rdfs:comment "The property that determines the subject of an annotated axiom or annotated annotation." ; + rdfs:domain rdfs:Resource ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Resource . + +owl:annotatedTarget a rdf:Property ; + rdfs:label "annotatedTarget" ; + rdfs:comment "The property that determines the object of an annotated axiom or annotated annotation." ; + rdfs:domain rdfs:Resource ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Resource . + +owl:assertionProperty a rdf:Property ; + rdfs:label "assertionProperty" ; + rdfs:comment "The property that determines the predicate of a negative property assertion." ; + rdfs:domain owl:NegativePropertyAssertion ; + rdfs:isDefinedBy ; + rdfs:range rdf:Property . + +owl:backwardCompatibleWith a owl:AnnotationProperty, owl:OntologyProperty ; + rdfs:label "backwardCompatibleWith" ; + rdfs:comment "The annotation property that indicates that a given ontology is backward compatible with another ontology." ; + rdfs:domain owl:Ontology ; + rdfs:isDefinedBy ; + rdfs:range owl:Ontology . + +owl:bottomDataProperty a owl:DatatypeProperty ; + rdfs:label "bottomDataProperty" ; + rdfs:comment "The data property that does not relate any individual to any data value." ; + rdfs:domain owl:Thing ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Literal . + +owl:bottomObjectProperty a owl:ObjectProperty ; + rdfs:label "bottomObjectProperty" ; + rdfs:comment "The object property that does not relate any two individuals." ; + rdfs:domain owl:Thing ; + rdfs:isDefinedBy ; + rdfs:range owl:Thing . + +owl:cardinality a rdf:Property ; + rdfs:label "cardinality" ; + rdfs:comment "The property that determines the cardinality of an exact cardinality restriction." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range xsd:nonNegativeInteger . + +owl:complementOf a rdf:Property ; + rdfs:label "complementOf" ; + rdfs:comment "The property that determines that a given class is the complement of another class." ; + rdfs:domain owl:Class ; + rdfs:isDefinedBy ; + rdfs:range owl:Class . + +owl:datatypeComplementOf a rdf:Property ; + rdfs:label "datatypeComplementOf" ; + rdfs:comment "The property that determines that a given data range is the complement of another data range with respect to the data domain." ; + rdfs:domain rdfs:Datatype ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Datatype . + +owl:deprecated a owl:AnnotationProperty ; + rdfs:label "deprecated" ; + rdfs:comment "The annotation property that indicates that a given entity has been deprecated." ; + rdfs:domain rdfs:Resource ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Resource . + +owl:differentFrom a rdf:Property ; + rdfs:label "differentFrom" ; + rdfs:comment "The property that determines that two given individuals are different." ; + rdfs:domain owl:Thing ; + rdfs:isDefinedBy ; + rdfs:range owl:Thing . + +owl:disjointUnionOf a rdf:Property ; + rdfs:label "disjointUnionOf" ; + rdfs:comment "The property that determines that a given class is equivalent to the disjoint union of a collection of other classes." ; + rdfs:domain owl:Class ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:disjointWith a rdf:Property ; + rdfs:label "disjointWith" ; + rdfs:comment "The property that determines that two given classes are disjoint." ; + rdfs:domain owl:Class ; + rdfs:isDefinedBy ; + rdfs:range owl:Class . + +owl:distinctMembers a rdf:Property ; + rdfs:label "distinctMembers" ; + rdfs:comment "The property that determines the collection of pairwise different individuals in a owl:AllDifferent axiom." ; + rdfs:domain owl:AllDifferent ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:equivalentClass a rdf:Property ; + rdfs:label "equivalentClass" ; + rdfs:comment "The property that determines that two given classes are equivalent, and that is used to specify datatype definitions." ; + rdfs:domain rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Class . + +owl:equivalentProperty a rdf:Property ; + rdfs:label "equivalentProperty" ; + rdfs:comment "The property that determines that two given properties are equivalent." ; + rdfs:domain rdf:Property ; + rdfs:isDefinedBy ; + rdfs:range rdf:Property . + +owl:hasKey a rdf:Property ; + rdfs:label "hasKey" ; + rdfs:comment "The property that determines the collection of properties that jointly build a key." ; + rdfs:domain owl:Class ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:hasSelf a rdf:Property ; + rdfs:label "hasSelf" ; + rdfs:comment "The property that determines the property that a self restriction refers to." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Resource . + +owl:hasValue a rdf:Property ; + rdfs:label "hasValue" ; + rdfs:comment "The property that determines the individual that a has-value restriction refers to." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Resource . + +owl:imports a owl:OntologyProperty ; + rdfs:label "imports" ; + rdfs:comment "The property that is used for importing other ontologies into a given ontology." ; + rdfs:domain owl:Ontology ; + rdfs:isDefinedBy ; + rdfs:range owl:Ontology . + +owl:incompatibleWith a owl:AnnotationProperty, owl:OntologyProperty ; + rdfs:label "incompatibleWith" ; + rdfs:comment "The annotation property that indicates that a given ontology is incompatible with another ontology." ; + rdfs:domain owl:Ontology ; + rdfs:isDefinedBy ; + rdfs:range owl:Ontology . + +owl:intersectionOf a rdf:Property ; + rdfs:label "intersectionOf" ; + rdfs:comment "The property that determines the collection of classes or data ranges that build an intersection." ; + rdfs:domain rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:inverseOf a rdf:Property ; + rdfs:label "inverseOf" ; + rdfs:comment "The property that determines that two given properties are inverse." ; + rdfs:domain owl:ObjectProperty ; + rdfs:isDefinedBy ; + rdfs:range owl:ObjectProperty . + +owl:maxCardinality a rdf:Property ; + rdfs:label "maxCardinality" ; + rdfs:comment "The property that determines the cardinality of a maximum cardinality restriction." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range xsd:nonNegativeInteger . + +owl:maxQualifiedCardinality a rdf:Property ; + rdfs:label "maxQualifiedCardinality" ; + rdfs:comment "The property that determines the cardinality of a maximum qualified cardinality restriction." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range xsd:nonNegativeInteger . + +owl:members a rdf:Property ; + rdfs:label "members" ; + rdfs:comment "The property that determines the collection of members in either a owl:AllDifferent, owl:AllDisjointClasses or owl:AllDisjointProperties axiom." ; + rdfs:domain rdfs:Resource ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:minCardinality a rdf:Property ; + rdfs:label "minCardinality" ; + rdfs:comment "The property that determines the cardinality of a minimum cardinality restriction." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range xsd:nonNegativeInteger . + +owl:minQualifiedCardinality a rdf:Property ; + rdfs:label "minQualifiedCardinality" ; + rdfs:comment "The property that determines the cardinality of a minimum qualified cardinality restriction." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range xsd:nonNegativeInteger . + +owl:onClass a rdf:Property ; + rdfs:label "onClass" ; + rdfs:comment "The property that determines the class that a qualified object cardinality restriction refers to." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range owl:Class . + +owl:onDataRange a rdf:Property ; + rdfs:label "onDataRange" ; + rdfs:comment "The property that determines the data range that a qualified data cardinality restriction refers to." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Datatype . + +owl:onDatatype a rdf:Property ; + rdfs:label "onDatatype" ; + rdfs:comment "The property that determines the datatype that a datatype restriction refers to." ; + rdfs:domain rdfs:Datatype ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Datatype . + +owl:oneOf a rdf:Property ; + rdfs:label "oneOf" ; + rdfs:comment "The property that determines the collection of individuals or data values that build an enumeration." ; + rdfs:domain rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:onProperties a rdf:Property ; + rdfs:label "onProperties" ; + rdfs:comment "The property that determines the n-tuple of properties that a property restriction on an n-ary data range refers to." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:onProperty a rdf:Property ; + rdfs:label "onProperty" ; + rdfs:comment "The property that determines the property that a property restriction refers to." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range rdf:Property . + +owl:priorVersion a owl:AnnotationProperty, owl:OntologyProperty ; + rdfs:label "priorVersion" ; + rdfs:comment "The annotation property that indicates the predecessor ontology of a given ontology." ; + rdfs:domain owl:Ontology ; + rdfs:isDefinedBy ; + rdfs:range owl:Ontology . + +owl:propertyChainAxiom a rdf:Property ; + rdfs:label "propertyChainAxiom" ; + rdfs:comment "The property that determines the n-tuple of properties that build a sub property chain of a given property." ; + rdfs:domain owl:ObjectProperty ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:propertyDisjointWith a rdf:Property ; + rdfs:label "propertyDisjointWith" ; + rdfs:comment "The property that determines that two given properties are disjoint." ; + rdfs:domain rdf:Property ; + rdfs:isDefinedBy ; + rdfs:range rdf:Property . + +owl:qualifiedCardinality a rdf:Property ; + rdfs:label "qualifiedCardinality" ; + rdfs:comment "The property that determines the cardinality of an exact qualified cardinality restriction." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range xsd:nonNegativeInteger . + +owl:sameAs a rdf:Property ; + rdfs:label "sameAs" ; + rdfs:comment "The property that determines that two given individuals are equal." ; + rdfs:domain owl:Thing ; + rdfs:isDefinedBy ; + rdfs:range owl:Thing . + +owl:someValuesFrom a rdf:Property ; + rdfs:label "someValuesFrom" ; + rdfs:comment "The property that determines the class that an existential property restriction refers to." ; + rdfs:domain owl:Restriction ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Class . + +owl:sourceIndividual a rdf:Property ; + rdfs:label "sourceIndividual" ; + rdfs:comment "The property that determines the subject of a negative property assertion." ; + rdfs:domain owl:NegativePropertyAssertion ; + rdfs:isDefinedBy ; + rdfs:range owl:Thing . + +owl:targetIndividual a rdf:Property ; + rdfs:label "targetIndividual" ; + rdfs:comment "The property that determines the object of a negative object property assertion." ; + rdfs:domain owl:NegativePropertyAssertion ; + rdfs:isDefinedBy ; + rdfs:range owl:Thing . + +owl:targetValue a rdf:Property ; + rdfs:label "targetValue" ; + rdfs:comment "The property that determines the value of a negative data property assertion." ; + rdfs:domain owl:NegativePropertyAssertion ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Literal . + +owl:topDataProperty a owl:DatatypeProperty ; + rdfs:label "topDataProperty" ; + rdfs:comment "The data property that relates every individual to every data value." ; + rdfs:domain owl:Thing ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Literal . + +owl:topObjectProperty a owl:ObjectProperty ; + rdfs:label "topObjectProperty" ; + rdfs:comment "The object property that relates every two individuals." ; + rdfs:domain owl:Thing ; + rdfs:isDefinedBy ; + rdfs:range owl:Thing . + +owl:unionOf a rdf:Property ; + rdfs:label "unionOf" ; + rdfs:comment "The property that determines the collection of classes or data ranges that build a union." ; + rdfs:domain rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + +owl:versionInfo a owl:AnnotationProperty ; + rdfs:label "versionInfo" ; + rdfs:comment "The annotation property that provides version information for an ontology or another OWL construct." ; + rdfs:domain rdfs:Resource ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Resource . + +owl:versionIRI a owl:OntologyProperty ; + rdfs:label "versionIRI" ; + rdfs:comment "The property that identifies the version IRI of an ontology." ; + rdfs:domain owl:Ontology ; + rdfs:isDefinedBy ; + rdfs:range owl:Ontology . + +owl:withRestrictions a rdf:Property ; + rdfs:label "withRestrictions" ; + rdfs:comment "The property that determines the collection of facet-value pairs that define a datatype restriction." ; + rdfs:domain rdfs:Datatype ; + rdfs:isDefinedBy ; + rdfs:range rdf:List . + \ No newline at end of file diff --git a/tests/Trinity.Tests.Virtuoso/ontologies/rdf.rdf b/tests/Trinity.Tests.Virtuoso/ontologies/rdf.rdf new file mode 100644 index 0000000..a6815ec --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/ontologies/rdf.rdf @@ -0,0 +1,156 @@ + + + + The RDF Concepts Vocabulary (RDF) + This is the RDF Schema for the RDF vocabulary terms in the RDF Namespace, defined in RDF 1.1 Concepts. + + + + + + + HTML + The datatype of RDF literals storing fragments of HTML content + + + + + + + langString + The datatype of language-tagged string values + + + + + + + PlainLiteral + The class of plain (i.e. untyped) literal values, as used in RIF and OWL 2 + + + + + + type + The subject is an instance of a class. + + + + + + + Property + The class of RDF properties. + + + + + + Statement + + The class of RDF statements. + + + + + subject + The subject of the subject RDF statement. + + + + + + + predicate + The predicate of the subject RDF statement. + + + + + + + object + The object of the subject RDF statement. + + + + + + + Bag + The class of unordered containers. + + + + + + Seq + The class of ordered containers. + + + + + + Alt + The class of containers of alternatives. + + + + + + value + Idiomatic property used for structured values. + + + + + + + + + List + The class of RDF Lists. + + + + + + nil + The empty list, with no items in it. If the rest of a list is nil then the list has no more items in it. + + + + + first + The first item in the subject RDF list. + + + + + + + rest + The rest of the subject RDF list after the first item. + + + + + + + + XMLLiteral + The datatype of XML literal values. + + + + + + + + diff --git a/tests/Trinity.Tests.Virtuoso/ontologies/rdfs.n3 b/tests/Trinity.Tests.Virtuoso/ontologies/rdfs.n3 new file mode 100644 index 0000000..a5b8eac --- /dev/null +++ b/tests/Trinity.Tests.Virtuoso/ontologies/rdfs.n3 @@ -0,0 +1,109 @@ +@prefix rdf: . +@prefix rdfs: . +@prefix owl: . +@prefix dc: . + + a owl:Ontology ; + dc:title "The RDF Schema vocabulary (RDFS)" . + +rdfs:Resource a rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:label "Resource" ; + rdfs:comment "The class resource, everything." . + +rdfs:Class a rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:label "Class" ; + rdfs:comment "The class of classes." ; + rdfs:subClassOf rdfs:Resource . + +rdfs:subClassOf a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:label "subClassOf" ; + rdfs:comment "The subject is a subclass of a class." ; + rdfs:range rdfs:Class ; + rdfs:domain rdfs:Class . + +rdfs:subPropertyOf a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:label "subPropertyOf" ; + rdfs:comment "The subject is a subproperty of a property." ; + rdfs:range rdf:Property ; + rdfs:domain rdf:Property . + +rdfs:comment a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:label "comment" ; + rdfs:comment "A description of the subject resource." ; + rdfs:domain rdfs:Resource ; + rdfs:range rdfs:Literal . + +rdfs:label a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:label "label" ; + rdfs:comment "A human-readable name for the subject." ; + rdfs:domain rdfs:Resource ; + rdfs:range rdfs:Literal . + +rdfs:domain a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:label "domain" ; + rdfs:comment "A domain of the subject property." ; + rdfs:range rdfs:Class ; + rdfs:domain rdf:Property . + +rdfs:range a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:label "range" ; + rdfs:comment "A range of the subject property." ; + rdfs:range rdfs:Class ; + rdfs:domain rdf:Property . + +rdfs:seeAlso a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:label "seeAlso" ; + rdfs:comment "Further information about the subject resource." ; + rdfs:range rdfs:Resource ; + rdfs:domain rdfs:Resource . + +rdfs:isDefinedBy a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:subPropertyOf rdfs:seeAlso ; + rdfs:label "isDefinedBy" ; + rdfs:comment "The defininition of the subject resource." ; + rdfs:range rdfs:Resource ; + rdfs:domain rdfs:Resource . + +rdfs:Literal a rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:label "Literal" ; + rdfs:comment "The class of literal values, eg. textual strings and integers." ; + rdfs:subClassOf rdfs:Resource . + +rdfs:Container a rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:label "Container" ; + rdfs:subClassOf rdfs:Resource ; + rdfs:comment "The class of RDF containers." . + +rdfs:ContainerMembershipProperty a rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:label "ContainerMembershipProperty" ; + rdfs:comment """The class of container membership properties, rdf:_1, rdf:_2, ..., + all of which are sub-properties of 'member'.""" ; + rdfs:subClassOf rdf:Property . + +rdfs:member a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:label "member" ; + rdfs:comment "A member of the subject resource." ; + rdfs:domain rdfs:Resource ; + rdfs:range rdfs:Resource . + +rdfs:Datatype a rdfs:Class ; + rdfs:isDefinedBy ; + rdfs:label "Datatype" ; + rdfs:comment "The class of RDF datatypes." ; + rdfs:subClassOf rdfs:Class . + + rdfs:seeAlso .