Что такое хорошая библиотека RDF для .net?[закрыто]

StackOverflow https://stackoverflow.com/questions/240903

Вопрос

Я ищу библиотеку, которая может работать с данными RDF и OWL.

До сих пор я находил:

  • полу - сеть (насколько я знаю, поддержки owl нет)
  • роулекс (больше похоже на "браузерное" приложение)

Ваши рекомендации:

  • LinqToRdf (очень интересно, спасибо, Марк!)
Это было полезно?

Решение

РОУЛЕКС на самом деле очень круто (использует Полу - сеть внутренне).Это не просто браузерное приложение, а скорее SDK, написанный на C #.Если вы используете ROWLEX, вы больше не взаимодействуете напрямую с tripples RDF (хотя и можете), но придаете объектно-ориентированный внешний вид.Существует два основных сценария использования:

  1. Первый бизнес - класс: У вас есть свои бизнес-классы .NET.Вы декларативно добавляете атрибуты к своим классам аналогично тому, как вы делаете с атрибутами сериализации XML.После этого ROWLEX может извлечь онтологию, соответствующую вашим бизнес-классам, и / или сериализовать ваши бизнес-объекты в RDF.
  2. Сначала онтология: У вас есть своя онтология (ы) и РОУЛЕКС генерирует .СЕТЕВЫЕ классы для вас, которые вы можете использовать для создания / просмотра документов RDF.Самое замечательное, что эти автоматически сгенерированные классы намного лучше, чем типичные результаты codegenerators.Они удобны в использовании и имитируют функцию множественного наследования OWL, предоставляя неявные и явные операторы приведения для покрытия всего графика наследования.

Типичным использованием является подход, основанный на онтологии.Например, предположим, что ваша онтология описывает следующий сценарий множественного наследования:

Автомобиль - это подкласс Транспортного средства

Автомобиль является субклассом корпоративного актива

Используя ROWLEX, вы получите .СЕТЕВЫЕ классы для Car, Vehicle и CompanyAsset.Следующий код C # будет скомпилирован без каких-либо проблем:

    RdfDocument rdfDoc = new RdfDocument();
    Car car = new Car("myCarUri", rdfDoc);
    Vehicle vehicle = car; // implicit casting
    CompanyAsset companyAsset = car; // implicit casting 
    vehicle.WheelCount = 4;
    companyAsset.MonetaryValue = 15000;
    Console.WriteLine(rdfDoc.ToN3());

Это напечатало бы:

myCarUri typeOf Car 
myCarUri WheelCount 4 
myCarUri MonetaryValue 15000

Бизнес-объект "car" представлен внутри RdfDocument в виде троек.Автоматически сгенерированные классы C # / VB ведут себя как представления.У вас может быть несколько представлений C # - каждое совершенно разного типа - для одного и того же бизнес-объекта.Когда вы взаимодействуете с этими представлениями, вы фактически изменяете RdfDocument .

Другие советы

BrightstarDB - это собственное хранилище .NET NoSQL RDF с поддержкой SPARQL, .NET entity framework с поддержкой LINQ и OData.Это бесплатно для разработчиков и проектов с открытым исходным кодом и имеет небольшую стоимость выполнения для коммерческого использования.

BrightstarDB предоставляет три уровня API.

  1. Запрос SPARQL и простой API транзакций.
  2. Универсальный объектный API, который группирует коллекции троек в объекты данных
  3. Интеграция Visual Studio, которая принимает определения интерфейса и создает строго типизированную модель домена .NET, которая хранит свои данные в виде RDF в экземпляре BrightstarDB.Модель .NET поддерживает LINQ и также может быть представлена как служба OData.

Вся документация BrightstarDB находится в Сети, а программное обеспечение доступно для скачивания без регистрации по адресу http://www.brightstardb.com

Я создаю библиотеку с открытым исходным кодом Точка netrdf - Поддержка OWL в настоящее время несколько ограничена, хотя и может быть не идеальной для ваших целей

Я исследовал это совсем немного несколько месяцев назад.Один из наиболее интересных проектов, которые я смог найти, это:http://www.hookedonlinq.com/linqtordf.ashx

Попробуй RDFSharp ( РДФШАРП ) в Codeplex.Кажется молодым, но многообещающим.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top