OWFgraph A graph database for the off-shore wind farm domain Erik - - PowerPoint PPT Presentation

owfgraph
SMART_READER_LITE
LIVE PREVIEW

OWFgraph A graph database for the off-shore wind farm domain Erik - - PowerPoint PPT Presentation

OWFgraph A graph database for the off-shore wind farm domain Erik Quaeghebeur Sebastian Sanchez Michiel Zaaijer Wind Energy Group Delft University of Technology The Netherlands EUROS Programme Wind Farm Design Optimization


slide-1
SLIDE 1

OWFgraph

A graph database for the off-shore wind farm domain Erik Quaeghebeur Sebastian Sanchez Michiel Zaaijer

Wind Energy Group Ů Delft University of Technology Ů The Netherlands

EUROS Programme Ű Wind Farm Design Optimization Ű Uncertainty Model of Wind Farms

WESC 2017

27 June 2017

slide-2
SLIDE 2
slide-3
SLIDE 3

V A R I A N T _ O F I N P U T _ T O INPUT_TO OUTPUT_OF I N P U T _ T O INPUT_TO I N P U T _ T O INPUT_TO I N P U T _ T O V A R I A N T _ O F OUTPUT_OF INPUT_TO PART_OF DESCRIBES A P P E A R S _ I N A P P E A R S _ I N APPEARS_IN P A R T _ O F DESCRIBES PART_OF DESCRIBES A P P E A R S _ I N DESCRIBES D E S C R I B E S D E S C R I B E S APPEARS_IN APPEARS_IN A P P E A R S _ I N Katić mixed wake model wake model wake expansion factor wind turbine position wind speed at hub height free stream wind direction free stream wind speed at hub height thrust curve set of wind turbines rotor diameter FarmFlow efgective TI at hub height ambient TI number of wind turbines OWF structure wake speed deĄcit wind proĄle power law free stream wind velocity wind free stream wind speed at

  • refere. . .

OWF layout wind turbine structure hub height reference height wind proĄle power law exponent

slide-4
SLIDE 4

Overview

Goal Why build a graph database for the offshore wind farm domain? Content What do we put into the database? How do we structure the content in the database? Does everything fit easily in this structure? Practical setup What software and hardware do we use? Querying How do we add and extract data? Conclusions What is different from what we expected? What are our plans for the future?

slide-5
SLIDE 5

Overview

Goal Why build a graph database for the offshore wind farm domain? Content What do we put into the database? How do we structure the content in the database? Does everything fit easily in this structure? Practical setup What software and hardware do we use? Querying How do we add and extract data? Conclusions What is different from what we expected? What are our plans for the future?

slide-6
SLIDE 6

Overview

Goal Why build a graph database for the offshore wind farm domain? Content What do we put into the database? How do we structure the content in the database? Does everything fit easily in this structure? Practical setup What software and hardware do we use? Querying How do we add and extract data? Conclusions What is different from what we expected? What are our plans for the future?

slide-7
SLIDE 7

Overview

Goal Why build a graph database for the offshore wind farm domain? Content What do we put into the database? How do we structure the content in the database? Does everything fit easily in this structure? Practical setup What software and hardware do we use? Querying How do we add and extract data? Conclusions What is different from what we expected? What are our plans for the future?

slide-8
SLIDE 8

Overview

Goal Why build a graph database for the offshore wind farm domain? Content What do we put into the database? How do we structure the content in the database? Does everything fit easily in this structure? Practical setup What software and hardware do we use? Querying How do we add and extract data? Conclusions What is different from what we expected? What are our plans for the future?

slide-9
SLIDE 9

Goal – EUROS programme context

Project 3 Wind Farm Design Optimization Work Package 3.2 Uncertainty Model of Wind Farms Challenge Develop a model for the accumulation of uncertainty from multiple sources in performance and cost of an entire OWF. Activities

  • make inventory of sources of uncertainty;
  • create causal map of uncertainty propagation;
  • assessment of uncertainty contributions to OWF CoE;
  • select uncertainty propagation approach.

⇒ Conclusion Create a structured description of the domain

slide-10
SLIDE 10

Goal – EUROS programme context

Project 3 Wind Farm Design Optimization Work Package 3.2 Uncertainty Model of Wind Farms Challenge Develop a model for the accumulation of uncertainty from multiple sources in performance and cost of an entire OWF. Activities

  • make inventory of sources of uncertainty;
  • create causal map of uncertainty propagation;
  • assessment of uncertainty contributions to OWF CoE;
  • select uncertainty propagation approach.

⇒ Conclusion Create a structured description of the domain

slide-11
SLIDE 11

Goal – EUROS programme context

Project 3 Wind Farm Design Optimization Work Package 3.2 Uncertainty Model of Wind Farms Challenge Develop a model for the accumulation of uncertainty from multiple sources in performance and cost of an entire OWF. Activities

  • make inventory of sources of uncertainty;
  • create causal map of uncertainty propagation;
  • assessment of uncertainty contributions to OWF CoE;
  • select uncertainty propagation approach.

⇒ Conclusion Create a structured description of the domain

slide-12
SLIDE 12

Goal – EUROS programme context

Project 3 Wind Farm Design Optimization Work Package 3.2 Uncertainty Model of Wind Farms Challenge Develop a model for the accumulation of uncertainty from multiple sources in performance and cost of an entire OWF. Activities

  • make inventory of sources of uncertainty;
  • create causal map of uncertainty propagation;
  • assessment of uncertainty contributions to OWF CoE;
  • select uncertainty propagation approach.

⇒ Conclusion Create a structured description of the domain

slide-13
SLIDE 13

Goal – EUROS programme context

Project 3 Wind Farm Design Optimization Work Package 3.2 Uncertainty Model of Wind Farms Challenge Develop a model for the accumulation of uncertainty from multiple sources in performance and cost of an entire OWF. Activities

  • make inventory of sources of uncertainty;
  • create causal map of uncertainty propagation;
  • assessment of uncertainty contributions to OWF CoE;
  • select uncertainty propagation approach.

⇒ Conclusion Create a structured description of the domain

slide-14
SLIDE 14

Goal – other contexts

  • Evaluation of multidisciplinary design analysis and optimization workflows

(Sebastian’s project)

8 . Wake adde turbulence (6)

  • 3. Order layout (1)
  • 4. Wind turbine

thrust coefficient (6)

  • 5. Downstream

wake effects (5) 6 . Wake merging (3)

  • 7. Wind turbine power (6)
  • 1. Optimiser
  • 2. Inflow wind (4)
  • 9. Seabed depth (4)
  • 10. Support structure design (2)
  • 11. O&M (1)
  • 13. Cable efficiency (1)
  • 12. Infield cable topology (3)
  • 14. AEP
  • 15. Total costs
  • 16. LCOE

TI H i Cs A CO&M ηc {Ti} Cc X*i , Y*i CT CT ∆ Ui Ui Ui Ui Pi AEP CT

  • Obj. fun.

θ, Uθ, P (Uθ) X i, Y i X i, Y i X i, Y i X i, Y i Uθ, P (Uθ)

2 1 3 4 5 6 7 8 9 10 11 12 13 14 15 16

  • Teaching:
  • domain exploration;
  • analysis of how different disciplines are coupled.
  • . . .
slide-15
SLIDE 15

Goal – other contexts

  • Evaluation of multidisciplinary design analysis and optimization workflows

(Sebastian’s project)

8 . Wake adde turbulence (6)

  • 3. Order layout (1)
  • 4. Wind turbine

thrust coefficient (6)

  • 5. Downstream

wake effects (5) 6 . Wake merging (3)

  • 7. Wind turbine power (6)
  • 1. Optimiser
  • 2. Inflow wind (4)
  • 9. Seabed depth (4)
  • 10. Support structure design (2)
  • 11. O&M (1)
  • 13. Cable efficiency (1)
  • 12. Infield cable topology (3)
  • 14. AEP
  • 15. Total costs
  • 16. LCOE

TI H i Cs A CO&M ηc {Ti} Cc X*i , Y*i CT CT ∆ Ui Ui Ui Ui Pi AEP CT

  • Obj. fun.

θ, Uθ, P (Uθ) X i, Y i X i, Y i X i, Y i X i, Y i Uθ, P (Uθ)

2 1 3 4 5 6 7 8 9 10 11 12 13 14 15 16

  • Teaching:
  • domain exploration;
  • analysis of how different disciplines are coupled.
  • . . .
slide-16
SLIDE 16

Content

slide-17
SLIDE 17

Content as node labels

Object

support structure, active yaw system, rotor bearing,. . .

slide-18
SLIDE 18

Content as node labels

Object Phenomenon

storm, wake,. . .

slide-19
SLIDE 19

Content as node labels

Procedure

turbine maintenance, OWF installation,. . .

Object Phenomenon

slide-20
SLIDE 20

Content & its structure as edges and their type

Attribute

state, structure, cost

Procedure Object Phenomenon

DESCRIBES D E S C R I B E S APPEARS_IN CAUSES

slide-21
SLIDE 21

Content & its structure as edges and their type

Attribute Procedure Object Phenomenon

AFFECTS wake wind

slide-22
SLIDE 22

Content & its structure as edges and their type

Attribute Procedure Object Phenomenon

INPUT_TO OUTPUT_OF RNA assembly rotor, nacelle RNA

slide-23
SLIDE 23

Content & its structure as edges and their type

Attribute Procedure Object Phenomenon

MODIFIES MEASURES INSTRUCTS crew RNA state air state

slide-24
SLIDE 24

Content & its structure as edges and their type

Attribute Procedure Object Phenomenon

Real world Virtual world

slide-25
SLIDE 25

Content & its structure as edges and their type

Attribute Procedure Object Phenomenon Variable

yaw angle, temperature, interest rate,. . . Real world Virtual world

DESCRIBES OUTPUT_OF

slide-26
SLIDE 26

Content & its structure as edges and their type

Attribute Procedure Object Phenomenon Variable Model

wake model, ECN Install, FAST,. . . Real world Virtual world

APPEARS_IN INPUT_TO OUTPUT_OF

slide-27
SLIDE 27

Content & its structure as edges and their type

Attribute Procedure Object Phenomenon Variable Model

Real world Virtual world

RELATES_TO ECN FarmFlow wake

slide-28
SLIDE 28

Content & its structure as edges and their type

Attribute Procedure Object Phenomenon Variable Model

Real world Virtual world

PART_OF PART_OF PART_OF PART_OF PART_OF PART_OF geometry structure turbine OWF

slide-29
SLIDE 29

Content & its structure as edges and their type

Attribute Procedure Object Phenomenon Variable Model

Real world Virtual world

VARIANT_OF VARIANT_OF VARIANT_OF VARIANT_OF VARIANT_OF VARIANT_OF Katić wake model VAWT turbine

slide-30
SLIDE 30

Content constrained by the foundational ontology

Attribute Procedure Object Phenomenon Variable Model

Real world Virtual world

DESCRIBES AFFECTS INPUT_TO MEASURES DESCRIBES APPEARS_IN RELATES_TO

slide-31
SLIDE 31

Content as node and edge properties

Attribute Procedure Object Phenomenon Variable Model

Real world Virtual world

author, name, . . . . . . , description, . . . . . . , reference, . . . . . . , domain, unit, value, . . . DESCRIBES . . . , note

slide-32
SLIDE 32

Representation challenges

  • When is variable an input to a model, an output, or both?
  • How to isolate sub-models of a larger model and deal with their variables?
  • A concept should only be represented once;

what about models that deal with multiple instances of a concept?

slide-33
SLIDE 33

Representation challenges

  • When is variable an input to a model, an output, or both?
  • How to isolate sub-models of a larger model and deal with their variables?
  • A concept should only be represented once;

what about models that deal with multiple instances of a concept?

slide-34
SLIDE 34

Representation challenges

  • When is variable an input to a model, an output, or both?
  • How to isolate sub-models of a larger model and deal with their variables?
  • A concept should only be represented once;

what about models that deal with multiple instances of a concept?

slide-35
SLIDE 35

Representation challenges

  • When is variable an input to a model, an output, or both?
  • How to isolate sub-models of a larger model and deal with their variables?
  • A concept should only be represented once;

what about models that deal with multiple instances of a concept?

DESCRIBES D E S C R I B E S P A R T _ O F APPEARS_IN VARIANT_OF APPEARS_IN DESCRIBES DESCRIBES APPEARS_IN A P P E A R S _ I N INPUT_TO APPEARS_IN DESCRIBES DESCRIBES cable endpoint pair cable endpoint cable endpoint state cable endpoint power Ćow electrical cable wind turbine power

  • utput

electrical cable structure electrical cable power loss set of

  • transmissi. . .

OWF power

  • utput

electrical cable state

slide-36
SLIDE 36

Our practical setup

slide-37
SLIDE 37

Our practical setup

export backup

slide-38
SLIDE 38

Our practical setup

proxy/webserver https://rw.owfgraph.lr.tudelft.nl export backup

slide-39
SLIDE 39

Our practical setup

Cluster

read-only slave read-write master proxy/webserver https://owfgraph.lr.tudelft.nl proxy/webserver https://rw.owfgraph.lr.tudelft.nl export backup

slide-40
SLIDE 40

Our practical setup

VPS server access

Cluster

read-only slave read-write master proxy/webserver https://owfgraph.lr.tudelft.nl proxy/webserver https://rw.owfgraph.lr.tudelft.nl export backup

slide-41
SLIDE 41

Querying

  • Queries—questions asked or instructions given—are formulated using Cypher.
  • My interest: query the database for possible paths between variables of interest.
slide-42
SLIDE 42

Querying

  • Queries—questions asked or instructions given—are formulated using Cypher.
  • My interest: query the database for possible paths between variables of interest.
slide-43
SLIDE 43

Querying

  • Queries—questions asked or instructions given—are formulated using Cypher.
  • My interest: query the database for possible paths between variables of interest.

match p = shortestPath((w:Variable)-[*0..6]-(f:Variable)) where w.name="wind speed at hub height" and f.name="OWF power output" and all(n in nodes(p) where n:Model or n:Variable) return p

INPUT_TO APPEARS_IN O U T P U T _ O F A P P E A R S _ I N A P P E A R S _ I N I N P U T _ T O OWF available wind pow. . . wind speed at hub height set of wind turbines wake model OWF power

  • utput
slide-44
SLIDE 44

Querying

  • Queries—questions asked or instructions given—are formulated using Cypher.
  • My interest: query the database for possible paths between variables of interest.

match p = shortestPath((w:Variable)-[*0..6]-(f:Variable)) where w.name="free stream wind speed at hub height" and f.name="OWF power output" and all(n in nodes(p) where (n:Model or n:Variable) and not id(n) in [278, 260, 62, 2929]) return p

A P P E A R S _ I N OUTPUT_OF APPEARS_IN V A R I A N T _ O F I N P U T _ T O O U T P U T _ O F INPUT_TO APPEARS_IN APPEARS_IN wind turbine power

  • utput

wind speed at hub height free stream wind speed at hub height wake model cable endpoint power Ćow wind turbine power

  • utput
  • potent. . .

power curve conformity OWF power

  • utput
slide-45
SLIDE 45

Lessons Learned

  • Designing the foundational ontology takes quite a number of iterations

and requires experience from adding content.

  • Even with the foundational ontology more-or-less settled,

structuring content is sometimes difficult.

  • Adding well-curated content takes time.
  • System administration also requires a non-negligible effort.
slide-46
SLIDE 46

Lessons Learned

  • Designing the foundational ontology takes quite a number of iterations

and requires experience from adding content.

  • Even with the foundational ontology more-or-less settled,

structuring content is sometimes difficult.

  • Adding well-curated content takes time.
  • System administration also requires a non-negligible effort.
slide-47
SLIDE 47

Lessons Learned

  • Designing the foundational ontology takes quite a number of iterations

and requires experience from adding content.

  • Even with the foundational ontology more-or-less settled,

structuring content is sometimes difficult.

  • Adding well-curated content takes time.
  • System administration also requires a non-negligible effort.
slide-48
SLIDE 48

Lessons Learned

  • Designing the foundational ontology takes quite a number of iterations

and requires experience from adding content.

  • Even with the foundational ontology more-or-less settled,

structuring content is sometimes difficult.

  • Adding well-curated content takes time.
  • System administration also requires a non-negligible effort.
slide-49
SLIDE 49

Lessons Learned

  • Designing the foundational ontology takes quite a number of iterations

and requires experience from adding content.

  • Even with the foundational ontology more-or-less settled,

structuring content is sometimes difficult.

  • Adding well-curated content takes time.
  • System administration also requires a non-negligible effort.

But those are growing pains: the knowledge base idea is feasible and our implementation works!

slide-50
SLIDE 50

Current & Next Steps

  • (Personally) shift from content entry to use.
  • Opening up the database.
  • Now: Read-only version semi-publicly available.
  • Next: get others involved in using and adding content.

(Learning curve!)

  • Future: build a community to maintain and improve the database.
slide-51
SLIDE 51

Current & Next Steps

  • (Personally) shift from content entry to use.
  • Opening up the database.
  • Now: Read-only version semi-publicly available.
  • Next: get others involved in using and adding content.

(Learning curve!)

  • Future: build a community to maintain and improve the database.
slide-52
SLIDE 52

Questions? Feedback?

slide-53
SLIDE 53

Live demo – Read-Only

  • Surf to https://owfgraph.lr.tudelft.nl;

login ‘IEA37’, password ‘. . . ’.

  • Interface: command line at the top, output canvas below,

info & control pane at the left.

  • Basic query:

match (n:Object) return (n) limit 3 Explore neighborhood interactively.

  • Table output:

match (n:Object) with n limit 5 return n.name, n.description, n.author

  • More involved queries:

match p = (:Object {name:"monopile"})-[*]->() return p

slide-54
SLIDE 54

Live demo – Read-Only

  • Surf to https://owfgraph.lr.tudelft.nl;

login ‘IEA37’, password ‘. . . ’.

  • Interface: command line at the top, output canvas below,

info & control pane at the left.

  • Basic query:

match (n:Object) return (n) limit 3 Explore neighborhood interactively.

  • Table output:

match (n:Object) with n limit 5 return n.name, n.description, n.author

  • More involved queries:

match p = (:Object {name:"monopile"})-[*]->() return p

slide-55
SLIDE 55

Live demo – Read-Only

  • Surf to https://owfgraph.lr.tudelft.nl;

login ‘IEA37’, password ‘. . . ’.

  • Interface: command line at the top, output canvas below,

info & control pane at the left.

  • Basic query:

match (n:Object) return (n) limit 3 Explore neighborhood interactively.

  • Table output:

match (n:Object) with n limit 5 return n.name, n.description, n.author

  • More involved queries:

match p = (:Object {name:"monopile"})-[*]->() return p

slide-56
SLIDE 56

Live demo – Read-Only

  • Surf to https://owfgraph.lr.tudelft.nl;

login ‘IEA37’, password ‘. . . ’.

  • Interface: command line at the top, output canvas below,

info & control pane at the left.

  • Basic query:

match (n:Object) return (n) limit 3 Explore neighborhood interactively.

  • Table output:

match (n:Object) with n limit 5 return n.name, n.description, n.author

  • More involved queries:

match p = (:Object {name:"monopile"})-[*]->() return p

slide-57
SLIDE 57

Live demo – Read-Write

  • Surf to https://rw.owfgraph.lr.tudelft.nl.

(Currently only Sebastian & I have access.)

  • Same interface, but now also write—and delete—queries are enabled.
  • Creation (merging):

match (a:Attribute {name:"wind"}) merge (a)<-[:PART_OF]-(b {name:"wind color"}) return a, b

  • Setting and removing labels and properties:

match (b {name:"wind color"}) set b:Attribute, b.author="killroy" remove b.name return b

  • Deleting nodes and edges:

match (b {author:"killroy"}) detach delete b

slide-58
SLIDE 58

Live demo – Read-Write

  • Surf to https://rw.owfgraph.lr.tudelft.nl.

(Currently only Sebastian & I have access.)

  • Same interface, but now also write—and delete—queries are enabled.
  • Creation (merging):

match (a:Attribute {name:"wind"}) merge (a)<-[:PART_OF]-(b {name:"wind color"}) return a, b

  • Setting and removing labels and properties:

match (b {name:"wind color"}) set b:Attribute, b.author="killroy" remove b.name return b

  • Deleting nodes and edges:

match (b {author:"killroy"}) detach delete b

slide-59
SLIDE 59

Live demo – Read-Write

  • Surf to https://rw.owfgraph.lr.tudelft.nl.

(Currently only Sebastian & I have access.)

  • Same interface, but now also write—and delete—queries are enabled.
  • Creation (merging):

match (a:Attribute {name:"wind"}) merge (a)<-[:PART_OF]-(b {name:"wind color"}) return a, b

  • Setting and removing labels and properties:

match (b {name:"wind color"}) set b:Attribute, b.author="killroy" remove b.name return b

  • Deleting nodes and edges:

match (b {author:"killroy"}) detach delete b

slide-60
SLIDE 60

Live demo – Read-Write

  • Surf to https://rw.owfgraph.lr.tudelft.nl.

(Currently only Sebastian & I have access.)

  • Same interface, but now also write—and delete—queries are enabled.
  • Creation (merging):

match (a:Attribute {name:"wind"}) merge (a)<-[:PART_OF]-(b {name:"wind color"}) return a, b

  • Setting and removing labels and properties:

match (b {name:"wind color"}) set b:Attribute, b.author="killroy" remove b.name return b

  • Deleting nodes and edges:

match (b {author:"killroy"}) detach delete b