Главная страница
Медицина
Экономика
Финансы
Биология
Сельское хозяйство
Ветеринария
Юриспруденция
Право
Языки
Языкознание
Философия
Логика
Этика
Религия
Политология
Социология
История
Информатика
Физика
Математика
Вычислительная техника
Культура
Промышленность
Энергетика
Искусство
Химия
Связь
Электротехника
Автоматика
Геология
Экология
Начальные классы
Доп
Строительство
образование
Механика
Воспитательная работа
Русский язык и литература
Дошкольное образование
Классному руководителю
Другое
Иностранные языки
Физкультура
Казахский язык и лит
География
Технология
Школьному психологу
Логопедия
Директору, завучу
Языки народов РФ
ИЗО, МХК
Музыка
Астрономия
ОБЖ
Обществознание
Социальному педагогу

отчет. Цель работы создать пример построения графа сборки узла изделия и визуализировать его


Скачать 112.73 Kb.
НазваниеЦель работы создать пример построения графа сборки узла изделия и визуализировать его
Дата12.02.2018
Размер112.73 Kb.
Формат файлаdocx
Имя файлаотчет.docx.docx
ТипДокументы
#36341


Цель работы: создать пример построения графа сборки узла изделия и визуализировать его.

  1. Листинг

  • Запуск титана


nz@NZ-PC:

$ cd /hadoop/titan/titan-1.0.0-hadoop2/

nz@NZ-PC:/hadoop/titan/titan-1.0.0-hadoop2$ ./bin/titan.sh start

Forking Cassandra...

Running `nodetool statusthrift`... OK (returned exit status 0 and printed string "running").

Forking Elasticsearch...

Connecting to Elasticsearch (127.0.0.1:9300)...... OK (connected to 127.0.0.1:9300).

Forking Gremlin-Server...

Connecting to Gremlin-Server (127.0.0.1:8182)...... OK (connected to 127.0.0.1:8182).

Run gremlin.sh to connect.




  • Запуск консоли gremlin и добавление графа


nz@NZ-PC:/hadoop/titan/titan-1.0.0-hadoop2$ ./bin/gremlin.sh
\,,,/

(o o)

-----oOOo-(3)-oOOo-----

Invalid import definition: 'com.thinkaurelius.titan.hadoop.MapReduceIndexManagement'; reason: startup failed:

script15141186859662042298222.groovy: 1: unable to resolve class com.thinkaurelius.titan.hadoop.MapReduceIndexManagement

@ line 1, column 1.

import com.thinkaurelius.titan.hadoop.MapReduceIndexManagement

^
1 error
plugin activated: aurelius.titan

plugin activated: tinkerpop.server

plugin activated: tinkerpop.utilities

plugin activated: tinkerpop.tinkergraph

gremlin> g = TitanFactory.open('conf/titan-berkeleyje.properties') ## добавление графа

==>standardtitangraph[berkeleyje:/hadoop/titan/titan-1.0.0-hadoop2/conf/../db/berkeley]



gremlin> v_kompressor = g.addVertex('type', 'sborochnyi_uzel', 'name', 'kompressor_vysokogo_davleniya')

==>v[4288]

gremlin> v_pered_opor_kvd = g.addVertex('type', 'uzel', 'name', 'peredniya_opora_kvd')

==>v[4256]

gremlin> e_1 = v_kompressor.addEdge('i1', v_pered_opor_kvd, 'type', 'includes')

==>e[1lk-3b4-2dx-3a8][4288-i1->4256]

gremlin> v_rotor_kvd = g.addVertex('type', 'detail', 'name', 'rotor_kvd', 'code', 'TM694.11')

==>v[4208]

gremlin> v_korpus_promej = g.addVertex('type', 'detail', 'name', 'korpus_promejutochnui', 'note', 'sobrannyi_po_tehnologii_TC99-3', 'code', 'TM694.17')

==>v[4216]

gremlin> v_stator_kvd = g.addVertex('type', 'detail', 'name', 'stator_kvd', 'note', 'proshedshiy_proverky_soosnosti', 'code', 'E6383-0310')

==>v[4232]

gremlin> v_komplect1 = g.addVertex('type', 'detail', 'name', 'komplect_detaley', 'code', 'E6383-0310')

==>v[4128]

gremlin> v_o2 = g.addVertex('type', 'operation', 'name', 'naryjnii_osmotr')

==>v[4144]

gremlin> v_o1 = g.addVertex('type', 'operation', 'name', 'demontorovat_zashitnyi_kozhyh')

==>v[8240]

gremlin> v_o2_1 = g.addVertex('type', 'suboperation', 'name', 'osmotret_det_i_uzl_na_chistoty_i_otsytstvie_defectov(risok,zaboin,zaysencev,korrozii)')

==>v[4272]

gremlin> v_o2_2 = g.addVertex('type', 'suboperation', 'name', 'tshatelno_osmotret_det_i_uzl_na__otsytstvie_postoronnih_predmetov_vo_vnytrennih_polostyah')

==>v[8352]

gremlin> v_o2_3 = g.addVertex('type', 'suboperation', 'name', 'proveryt_otsytstvie_masla_vo_vnytrenney_polosti_rotora_kvd')

==>v[8224]

gremlin> v_o2_4 = g.addVertex('type', 'suboperation', 'name', 'proveryt_nalichiye_i_kachestvo_boltov_i_gaek_krepleniya_diskov_rotora_kvd_chashechnymi_controvkami')

==>v[4336]

gremlin> v_o2_5 = g.addVertex('type', 'suboperation', 'name', 'proveryt_otsytstvie_rastreskivaniya_na_flancah_statora_kvd')

==>v[12320]
Добавление вершин и ребер (Vertex&Edge)


gremlin> e_o1_1 = v_o('i1', v_pered_opor_kvd, 'type', 'includes')

v_o2 v_o1 v_o2_1 v_o2_2 v_o2_3 v_o2_4 v_o2_5

gremlin> e_o2_1 = v_o2('i2',v_o2_1, 'type', 'includes')

No signature of method: com.thinkaurelius.titan.graphdb.vertices.StandardVertex.call() is applicable for argument types: (java.lang.String, com.thinkaurelius.titan.graphdb.vertices.StandardVertex, java.lang.String, java.lang.String) values: [i2, v[4272], type, includes]

Possible solutions: wait(), label(), any(), clone(), hasId(), id()

Display stack trace? [yN] n

gremlin> e_o2_1 = v_o2.addEdge('i2',v_o2_1, 'type', 'includes')

==>e[2rq-374-4r9-3ao][4144-i2->4272]

gremlin> e_o2_2 = v_o2.addEdge('i3',v_o2_2, 'type', 'includes')

==>e[35y-374-5jp-6g0][4144-i3->8352]

gremlin> e_o2_3 = v_o2.addEdge('i4',v_o2_3, 'type', 'includes')

==>e[3k6-374-6c5-6cg][4144-i4->8224]

gremlin> e_o2_4 = v_o2.addEdge('i5',v_o2_4, 'type', 'includes')

==>e[3ye-374-74l-3cg][4144-i5->4336]

gremlin> e_o2_5 = v_o2.addEdge('i6',v_o2_5, 'type', 'includes')

==>e[4cm-

gremlin> v_o0 = g.addVertex('type', 'operation', 'name', 'polychit_na_uchastok_sborki')

==>v[12336]

gremlin> e_o0 = v_o0.addEdge('i01',v_pered_opor_kvd, 'type', 'includes')

==>e[5xi-9io-8ph-3a8][12336-i01->4256]

gremlin> e_o02 = v_o0.addEdge('i02',v_rotor_kvd, 'type', 'includes')

==>e[6bq-9io-9hx-38w][12336-i02->4208]

gremlin> e_o03 = v_o0.addEdge('i03',v_ko, 'type', 'includes')

v_kompressor v_korpus_promej v_komplect1

gremlin> e_o03 = v_o0.addEdge('i03',v_korpus_promej, 'type', 'includes')

==>e[6py-9io-aad-394][12336-i03->4216]

gremlin> e_o04 = v_o0.addEdge('i04',v_stator_kvd, 'type', 'includes')

==>e[746-9io-b2t-39k][12336-i04->4232]

gremlin> e_o05 = v_o0.addEdge('i05',v_komp, 'type', 'includes')

v_kompressor v_komplect1

gremlin> e_o05 = v_o0.addEdge('i05',v_komplect1, 'type', 'includes')

==>e[7ie-9io-bv9-36o][12336-i05->4128]

gremlin> e_step = v_o0.addEdge('step1',v_o1, 'type', 'step')

==>e[7wm-9io-cnp-6cw][12336-step1->8240]

gremlin> e_step2 = v_o1.addEdge('step2',v_o2, 'type', 'step')

==>e[8au-6cw-dg5-374][8240-step2->4144]

gremlin> v_kontr = g.addVertex('type', 'control', 'name', 'kontroler')

==>v[8368]

gremlin> e_step3 = v_o2.addEdge('step3',v_ko 'type', 'step')

v_kompressor v_korpus_promej v_komplect1 v_kontr

gremlin> e_step3 = v_o2.addEdge('step3',v_kontr, 'type', 'step')

==>e[8p2-374-e8l-6gg][4144-step3->8368]

gremlin> v_o3 = g.addVertex('type', 'operation', 'name', 'vrashaya_uzl_prover_na_slyh_otsytstvie_post_predmetov_vo_vnytr_polostyah_rotora_kvd_i_prom_korpysa')

==>v[8384]

gremlin> e_step4 = v_o3.addEdge('step4',v_kontr, 'type', 'step')

==>e[36g-6gw-f11-6gg][8384-step4->8368]




  • Добавление вершин осуществляется командой

v_kompressor = g.addVertex('type', 'sborochnyi_uzel', 'name','kompressor_vysokogo_davleniya')

где v_kompressor – имя вершины,

g.addVertex – g – имя нашего графа, .addVertex() - команда добавления вершины, в скобках указываются метки вершины.

  • Добавление ребер осуществляется командой

e_1 = v_kompressor.addEdge('i1', v_pered_opor_kvd, 'type', 'includes')

где e_1 – имя ребра,

v_kompressor – имя вершины, из которой идет ребро

.addEdge() – команда добавления ребра, в скобках которой сначала указывается имя ребра (если есть), имя вершины, в которую направляется ребро, метки в одинарных кавычках.

  • Добавлять вершины и ребра, а так же вносить изменения в их метки (свойства, properties) можно с помощью обхода графа траверсом. Так же можно и удалять добавленные ранее свойства, ребра, вершины.


gremlin> gt = g.traversal()

==>graphtraversalsource[standardtitangraph[berkeleyje:/hadoop/titan/titan-1.0.0-hadoop2/conf/../db/berkeley], standard]
Добавление траверса

Где

gt – имя траверса,

g – имя нашего графа,

.traversal() – команда добавления траверса (в скобках при необходимости указывается тип траверса)

Траверс помогает навигировать по графу, т.е. осуществлять поиск по метках, по названиям вершин, по общим ребрам, находить «потомков» вершины, проследить путь и ветвление. Помимо этого с его помощью можно добавлять/удалять/редактировать ребра, вершины, их метки.

  • Примеры операций с траверсом


gremlin> gt.V()

21:21:07 WARN com.thinkaurelius.titan.graphdb.transaction.StandardTitanTx - Query requires iterating over all vertices [()]. For better performance, use indexes

==>v[4232]

==>v[4256]

==>v[4128]

==>v[8352]

==>v[8224]

==>v[12320]

==>v[4144]

==>v[8240]

==>v[4272]

==>v[12336]

==>v[8368]

==>v[4288]

==>v[8384]

==>v[4208]

==>v[4336]

==>v[4216]


По команде gt.V() выводятся все созданные вершины, с их уникальным индексом. Индекс по умолчанию создается автоматически, но существует возможность добавлять их вручную.


gremlin> test = gt.addV().next()

==>v[16432]

gremlin> test.property('name', 'name_test')

==>vp[name->name_test]

gremlin> test.value

value( valueOrNull( values(

gremlin> test.values()

==>name_test

gremlin> v_o1.values()

==>operation

==>demontorovat_zashitnyi_kozhyh

gremlin> gt.V(test).drop()

gremlin> test.values()

Vertex with id 16432 was removed.


test = gt.addV().next() – создание вершины без меток с помощью траверса

test.property('name', 'name_test') – добавление меток в созданную вершину

test.values() - запрос на вывод всех меток вершины test

gremlin> gt.V(test).drop() – удаление вершины test

  • Визуальное представление созданного графа

Для создание крупных визуальных графов, хранящихся в Titan db существуют сторонние продукты, например, Linkurious, но ввиду простоты созданного графа, визуализация производилась с помощью программы yEdGraphEditor.


    • Описания операций указаны в листинге, транслитом в метке name.

    • Здесь представлена демонстрация возможностей и пример визуального графа. В реальной технологии между «Операция 3» и «Операция N» существует обширный ряд переходов.



написать администратору сайта