Writing from the top of my head:

select *, inE(hasTerm)[Origin = 
True].inE(hasConcept)[Origin=True].vocab_name from term

You can add conditions/filters by using the [...] syntax on the selected 
edges. I am not sure if you need to use expand to write .inE(hasConcept) 
and then later .vocab_name though.

iZzeT

On Tuesday, April 14, 2015 at 2:08:43 PM UTC+3, cr0xfyre wrote:
>
> Hi Colin,
>
> Thank you for answer! I was already able to learn something new: I didn't 
> know about outE (can't find it in the manual) and kept using out_have for 
> the same purpose (which always felt wrong to me...).
>
> This gets me half way to the solution. I now have:
>
> select in as term, out.inE('hasConcept') from (select from (select 
> expand(inE('hasTerm')) from <term_rid>) where Origin = true)
>
> which returns the term and a list of the edges connecting that term's 
> origin concept to all its vocabularies. 
> Now how can I figure out which of those edges has Origin = true, so I can 
> know the origin vocabulary of the concept, while at the same time keep the 
> term's data. I've tried to expand the out.inE('hasConcept') but that makes 
> the 'term' field disappear...
>
> i.e. what I'm trying to achieve is a row with all the term's information 
> and an extra column at the end with it's origin vocabulary name.
>
> Is it possible?
>
>
> On Monday, 13 April 2015 23:19:27 UTC+1, Colin wrote:
>>
>> Hi,
>>
>> Try a query like this:
>>
>> select from (select expand(outE('have')) from <some RID or vertex name, 
>> etc.>) where Origin='SomeValue'
>>
>> Let me know if you need further clarification.
>>
>> Good luck!
>>
>> -Colin
>>
>> Orient Technologies
>>
>> The Company behind OrientDB
>>
>>
>> On Monday, April 13, 2015 at 4:37:38 PM UTC-5, cr0xfyre wrote:
>>>
>>> Hi all,
>>> I'm a new user of orient DB and graphs databases in general. I've 
>>> recently started using it to build a vocabulary manager and my experience 
>>> has been very positive so far.
>>>
>>> However, I've recently introduced a new complexity level to model of the 
>>> DB: edges with properties; and now I'm having some problems with the 
>>> queries to use them. It's probably really a newbie question, but I've 
>>> searched a lot and have been unable to come up with a satisfactory solution.
>>>
>>> Here is the relevant part of the DB model:
>>> vocabularies--have-->concepts
>>> concepts--have-->terms
>>>
>>> but because vocabularies can have many concepts, and concepts many 
>>> terms, I have included a property ORIGIN in the 'have' edges that tells me 
>>> what concept is the origin of a term and the same between concepts and 
>>> vocabularies. A term has always only one origin concept and a concept has 
>>> always only one origin vocabulary.
>>>
>>> My question is, what is the best query I can do to the DB that given a 
>>> term RID returns me its origin vocabulary?
>>>
>>> I've only came up with really complex queries that take a lot of time to 
>>> run, so I'd really like to know what the take of someone with more 
>>> experience would be on this.
>>>
>>> Thanks!
>>> cr0xfyre
>>>
>>

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"OrientDB" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to