Что такое хорошая библиотека RDF для.net?
5 ответов
ROWLEX на самом деле очень крутой (использует SemWeb внутренне). Это не просто приложение для браузера, а SDK, написанный на C#. Если вы используете ROWLEX, вы больше напрямую не взаимодействуете с триплетами RDF (хотя и можете), но выдает объектно-ориентированный внешний вид. Существует два основных сценария использования:
- Сначала бизнес-класс: у вас есть бизнес-классы.NET. Вы декларативно добавляете атрибуты к своим классам так же, как вы делаете это с атрибутами сериализации XML. После этого ROWLEX может извлечь онтологию, соответствующую вашим бизнес-классам, и / или может сериализовать ваши бизнес-объекты в RDF.
- Сначала онтология: у вас есть свои онтологии, и ROWLEX генерирует классы.NET для вас, которые вы можете использовать для создания / просмотра документов RDF. Самое замечательное, что эти автоматически сгенерированные классы намного лучше, чем типичные результаты генераторов кода. Они удобны в использовании и имитируют функцию множественного наследования в OWL, предоставляя неявные и явные операторы приведения для охвата всего графа наследования.
Типичное использование - первый подход Онтологии. Например, предположим, что ваша онтология описывает следующий сценарий множественного наследования:
Автомобиль - подкласс автомобиля
Автомобиль - подкласс компании Asset
Используя ROWLEX, вы получите классы.NET для автомобилей, транспортных средств и компаний. Следующий код 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
Бизнес-объект "автомобиль" представлен в RdfDocument в виде троек. Автоматически сгенерированные классы C#/VB ведут себя как представления. Вы можете иметь несколько представлений C# - каждый совершенно другого типа - для одного и того же бизнес-объекта. Когда вы взаимодействуете с этими представлениями, вы фактически изменяете RdfDocument.
BrightstarDB - это собственное тройное хранилище.NET NoSQL RDF с поддержкой SPARQL, структурой сущностей.NET с поддержкой LINQ и OData. Это бесплатно для разработчиков и проектов с открытым исходным кодом и имеет небольшую стоимость выполнения для коммерческого использования.
BrightstarDB предоставляет три уровня API.
- SPARQL-запрос и простой API транзакций.
- Универсальный объектный API, который группирует коллекции троек в объекты данных.
- Интеграция Visual Studio, которая принимает определения интерфейса и генерирует строго типизированную модель домена.NET, которая хранит свои данные в виде RDF в экземпляре BrightstarDB. Модель.NET имеет поддержку LINQ, а также может быть представлена как служба OData.
Вся документация BrightstarDB находится в Интернете, и программное обеспечение доступно для загрузки без регистрации на http://www.brightstardb.com/.
Попробуйте RDFSharp в Codeplex. Кажется молодым, но многообещающим.
Я исследовал это всего несколько месяцев назад. Один из наиболее интересных проектов, которые я смог найти: http://www.hookedonlinq.com/linqtordf.ashx