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

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


Скачать 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» существует обширный ряд переходов.



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