Как создать тройки из MySql

Я использовал утилиту d2rq для создания файлов .ttl, а затем импортировал их в MarkLofgic, но не смог получить желаемых результатов.

Более того, мои данные выглядят так.

Как я могу создать тройки из данных MySql, которые будут использоваться для запросов в SPARQL в MarkLogic. Кто-то предложил мне рассматривать значения первичного ключа как тему, имена столбцов как предикаты и значения ячеек как объекты для преобразования в тройки, но как? Спасибо и с уважением Swapneel GOLAPKAR


person Swapneel Golapkar    schedule 09.07.2015    source источник


Ответы (1)


То, что вы там показываете, это триплеты в том формате, в котором MarkLogic хранит их в базе данных. Обязательно включите triple index из пользовательского интерфейса администратора для этой базы данных, чтобы иметь возможность использовать SPARQL для них.

После включения вы можете запускать такие команды, как count(cts:triples()) из QConsole, чтобы увидеть, сколько троек было загружено, а также запускать SPARQL оттуда.

Вы также можете подключиться к /v1/graphs/sparql конечной точке REST.

Относительно того, как данные должны выглядеть как триплеты, учитывая два примера записей, как показано ниже (для удобства выражены в виде XML):

<Drug_Dtl>
    <Drug_ID>D001</Drug_ID>
    <Drug_name>Glyburide 5 mg</Drug_name>
    <Brand_name>Diabeta</Brand_name>
    <Brand>Novo Nordisk</Brand>
    <strength>5 mg</strength>
    <NoOfPills>1</NoOfPills>
    <TotalDailyDose>5 mg</TotalDailyDose>
    <Cost>$51</Cost>
    <DailyPills>1</DailyPills>
</Drug_Dtl>

<Prescriber>
    <PrescriberId>PSC001</PrescriberId>
    <PrescriberName>Wa&#x200C;&#x200B;yne</PrescriberName>
    <Prescriber_Address>7 Elgar Center</Prescriber_Address>
    <City>Chicago</City>
    <State>Illinois</State>
</Prescriber>

Я бы ожидал тройки, похожие на (для удобства выраженные как черепаха):

<D001> <Drug_name> "Glyburide 5 mg".
<D001> <Brand_name> "Diabeta".
<D001> <Brand> "Novo Nordisk".
<D001> <strength> "5 mg".
<D001> <NoOfPills> "1".
<D001> <TotalDailyDose> "5 mg".
<D001> <Cost> "$51".
<D001> <DailyPills> "1".

<PSC001> <PrescriberName> "Wa&#x200C;&#x200B;yne".
<PSC001> <Prescriber_Address> "7 Elgar Center".
<PSC001> <City> "Chicago".
<PSC001> <State> "Illinois".

ХТХ!

person grtjn    schedule 09.07.2015
comment
Я включил тройной индекс в консоли администратора, а также могу видеть ссылки всех заполненных троек на /v1/graphs/things в REST API, но моя проблема в том, что я не могу иметь тройки в такой форме, как первичный ключ как Тема, столбцы как предикат и ячейки как объекты, как вы говорили ранее, и я полагаю, что именно поэтому теги заполняются «темой» вместо «фактического значения темы (первичный ключ)». Я использую утилиту сопоставления d2rq для создания файла ttl для загрузки с помощью mlcp. Подскажите пожалуйста что мне делать! Спасибо за вашу помощь :) С уважением Swapneel - person Swapneel Golapkar; 09.07.2015
comment
Я думаю, это зависит от того, как вы настроили d2rq. К сожалению, я недостаточно знаю о вашей исходной модели данных, чтобы оценить качество троек, но на первый взгляд она выглядит разумной. - person grtjn; 09.07.2015
comment
Хорошо, я поделюсь с вами приготовленными данными завтра, чтобы вам было легко меня понять, большое спасибо, могу я узнать ваше имя. - person Swapneel Golapkar; 09.07.2015
comment
Мне нужно поделиться с вами данными, как мне это сделать? мне отправить его вам по почте? здесь нет возможности прикрепить :( - person Swapneel Golapkar; 10.07.2015
comment
Нет необходимости делиться всеми данными или всеми таблицами. Достаточно, чтобы произвести впечатление. Если достаточно мало, вы можете просто вставить в вопрос. - person grtjn; 10.07.2015
comment
Ниже приведены данные (только одна строка преобразована в xml для двух таблиц). Таблица препаратов: Drug_Dtl›‹Drug_ID›D001‹/Drug_ID›‹Drug_name›Glyburide 5 mg‹/Drug_name›‹Brand_name›Diabeta‹/Brand_name›‹Brand ›Novo Nordisk‹/торговая марка›‹доза›5 мг‹/доза›‹NoOfPills›1‹/NoOfPills›‹TotalDailyDose›5 мг‹/TotalDailyDose›‹Cost›51 $/Cost›‹DailyPills›1‹/DailyPills› Таблица: ‹?xml version=1.0?›‹Prescriber›‹PrescriberId›PSC001‹/PrescriberId›‹PrescriberName›Wayne‹/PrescriberName›‹Prescriber_Address›7 Elgar Center‹/Prescriber_Address›‹City›Chicago‹/City›‹State› Иллинойс‹/Штат› - person Swapneel Golapkar; 13.07.2015
comment
Да, но как мне получить его в таком виде? Я использую базу данных mysql, есть ли какой-либо инструмент, который превращал бы данные из базы данных в триплеты для marklogic? кроме д2рк? - person Swapneel Golapkar; 14.07.2015
comment
Вывод d2rq выглядит довольно прилично для меня. Если вам не нравится префикс file://, добавьте предварительную обработку, чтобы заменить его чем-то другим. Или просто используйте префиксы sparql, чтобы сократить это. - person grtjn; 15.07.2015