Как проанализировать онтологию RDF (файл черепахи) в классах модели c # - PullRequest
0 голосов
/ 18 марта 2019

У меня есть файл онтологии. Я хочу написать сервисы OData поверх моей графовой базы данных. Для этого мне нужно предоставить EdmModel, чтобы зарегистрировать мой маршрут OData. но это не может быть сделано, потому что схема находится в файле ttl, а также на сервере. Согласно этому блогу , мы можем создать модель, выбрав схему с сервера. Но у github кода много проблем. Кто-нибудь знает, как преобразовать его в классы модели c #?

Моя примерная схема в формате черепахи:

@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

@prefix : <http://www.example.com/schema/abc#> .

: a owl:Ontology .

# Class
:Organization a owl:Class ;
  rdfs:label "Organization"@en ;
  skos:definition ""@en .

# Properties
:Name a owl:DatatypeProperty ;
  rdfs:domain :Organization ;
  rdfs:range xsd:string .
:CreatedDate a owl:DatatypeProperty ;
  rdfs:domain :Organization ;
  rdfs:range xsd:dateTime .

# Relation
:hasRole a owl:ObjectProperty ;
  rdfs:domain :Organization ;
  rdfs:range :Role .  

1 Ответ

2 голосов
/ 18 марта 2019

Есть несколько переводчиков с SPARQL на OData. Я не пробовал их, но вот несколько ссылок. Если вы ищете «odata rdf» или «odata sparql», вы найдете больше ссылок на Stack Exchange.

  • https://github.com/BrightstarDB/odata-sparql/tree/master/ODataSparql.Server - пример, демонстрирующий немного DBpedia 3.9 как OData
    • Управляется моделью данных https://github.com/BrightstarDB/odata-sparql/tree/master/ODataSparql.Server
    • , который также показывает силу OData / EDMX (позволяет намного более конкретное описание сущностей и навигацию между ними) и слабость (намного более многословно, чем даже OWL)
    • https://www.w3.org/2013/04/odw/odw13_submission_4.pdf - это документ, описывающий подход: «служба OData управляется базовой моделью домена». «Мы не реализовали (создание модели предметной области из RDFS / OWL), но мы достаточно уверены, что некоторый уровень используемых метаданных службы OData может быть сгенерирован автоматически»
    • было представлено на Открытых данных в сети, апрель 2013 года: https://www.w3.org/2013/04/odw/papers
  • http://inova8.com/joomla/index.php/blog/odata-and-sparqlrdf-contradictory-or-complementary
  • Olingo2SPARQL: поставщик OData V2 SPARQL для платформы Apache Olingo.
    • https://github.com/peterjohnlawrence/inova8.olingo2sparql.
    • Odata4SPARQL: сервер OData V3 SPARQL, построенный на платформе Odata4j. https://github.com/peterjohnlawrence/inova8.odata4sparql
    • Очень хорошее объяснение сильных и слабых сторон каждого.
    • Кажется, что основывается на вышеупомянутом «SPARQL / OData Interop предложил прокси взаимодействия W3C между OData и SPARQL (Kal Ahmed, 2013)». Однако позиционный документ Кэла Ахмеда на ODW13 в настоящее время связан с W3C
    • описывает "Противоречия между OData и RDF / SPARQL" (т.е. несоответствия импеданса)
  • http://data.oceandrilling.org/labs/odata.html
    • описывает преобразование результатов SPARQL (CSV) в OData. Это кажется излишним, так как данные прямоугольные, можно просто использовать ODBC / JDBC
    • http://data.oceandrilling.org/source/usioOdata.java.html и еще два исходных файла
    • описывает реальный случай использования Таблицы для сложных данных
...