Моя цель: создать приложение для Windows10-64bit, которое использует Unity и dotNetRDF вместе для управления тройным хранилищем Fuseki.
Unity 2017.3, 64 бита
Версия среды выполнения сценариев: экспериментальная (эквивалент .NET 4.6)
Серверная часть сценариев: Mono
Уровень совместимости с API: .NET 4.6dotNetRFD v2.0.1
Я сохранил все dll, связанные с net40.
«Игра» Unity состоит из одной кнопки, код которой указан ниже. Когда я запускаю игру и нажимаю кнопку, я получаю следующую ошибку:
System.InvalidOperationException: request started
at System.Net.HttpWebRequest.CheckRequestStarted ()
at System.Net.HttpWebRequest.set_Accept (System.String value)
Код класса NewBehaviourScript, связанный с кнопкой:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using OntSenseCSharpAPI;
using System;
using VDS.RDF.Query;
using VDS.RDF.Update;
public class NewBehaviourScript : MonoBehaviour {
private SparqlRemoteUpdateEndpoint endpoint;
// Use this for initialization
void Start() {
// Start access to Sparql End Point : just one time at main method is enough
endpoint = new SparqlRemoteUpdateEndpoint("http://localhost:3030/test/update");
}
// Update is called once per frame
void Update() {
}
public void oneTriple() {
String updateCmd =
"PREFIX ontsense: < http://example.org/sense#> " +
"PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> " +
"INSERT DATA" +
" {" +
" ontsense: dotNetRDF rdf:comment \"dotNetRDF is a great tool.\"@en . " +
"}";
print(updateCmd);
try
{ // Try to access a resource.
endpoint.Update(updateCmd);
}
catch (Exception e)
{
print(e); // // Call a custom error logging procedure.
throw; // Re-throw the error. It is likely to interrupt the application
}
}
}
Обратите внимание: если я создаю отдельный проект Visual Studio с пакетом dotNetRDF, взаимодействие с конечной точкой Sparql работает отлично.
На данный момент я принял решение для создания этого приложения. Итак, моя система работает с приложением, которое получает команды обновления Sparql, отправленные через сокет из Unity. Конечно, не идеальная форма, но до тех пор, пока не будет получено окончательное решение проблемы, она будет использоваться.