Hi,

Let me take the example of Princess Diana article item from freebase

EXAMPLE ITEM
------------------------
Princess Diana

TYPES (CATEGORIES)
----------
Person
Deceased Person
Person with Medical Condition
Celebrity
Nobility

ATTRIBUTES UNDER TYPES
-------------------------------------------
PERSON - date of birth, place of birth, nationality, gender, religion,
parents, children, spouse, height, famous quotes
DECEASED PERSON - date of death, place of death, cause of death, place of
burial
PERSON WITH MEDICAL CONDITION - Condition(s)
CELEBRITY - romantic relationships, friends, networth, rehab details

VALUES FOR ATTRIBUTES
-----------------------------------------
http://www.freebase.com/view/en/diana_princess_of_wales

The model representation could be like -

<CATEGORY NODE> ----- CONTAINS -----> 1-many <ATTRIBUTE NODE>
1-many <ITEM NODE> ----- IS_OF_TYPE -----> <CATEGORY NODE>
1-many <ITEM NODE> ----- IS_RELATED_TO -----> 1-many <ITEM NODE>
1-many <CATEGORY NODE> ----- EXTENDS -----> <CATEGORY NODE> ( ROOT NODE has
no PARENT category)
<ATTRIBUTE NODE> ----- IS_OF_TYPE -----> <PRIMITIVE DATATYPE> (OR) <ITEM
NODE>
<ITEM NODE> ----- HAS_VALUE -----> <ATTRIBUTE NODE> (an Item can contain an
attribute value only for those attributes that come under atleast one of its
categories)

For the above example
--------------------------------
Person EXTENDS Root-Category
Deceased Person EXTENDS Person
Celebirty EXTENDS Person
Nobility EXTENDS Person
Person CONTAINS ATTRIBUTES date of birth, place of birth, nationality,
gender, religion, parents, children, spouse, height, famous quotes
Deceased Person CONTAINS ATTRIBUTES date of death, place of death, cause of
death, place of burial
Item Diana HAS_VALUE (England) to ATTRIBUTE place of birth
Item Diana HAS_VALUE(Female) to ATTRIBUTE gender
Item Diana is RELATED_TO Item Prince Charles

To get all categories to which an item belongs... SELECT all OUTGOING RELs
named IS_OF_TYPE from given item
To get all attribute values of an item... SELECT all OUTGOING RELs named
HAS_VALUE from given item.

For freebase like queries, Find all celebrity women who were born in europe
between 1940 and 1980?

TRAVERSE & SELECT all NODES of INCOMING RELs named IS_OF_TYPE for CATEGORY
Celebrity
where the node HAS_VALUE(Female) for ATTRIBUTE Gender
and the node HAS_VALUE(Europe) for ATTRIBUTE Continent
HAS_VALUE(1940-1980) for ATTRIBUTE year-of-birth

I'm sorry that am not able to give a visual explanation of the model for
better clarity. The kind of data/metadata that is stored in freebase and the
kind of vision to organise world's knowledge, requires the *most flexible
and generic* data model that RDBMS can't provide. Neo4j would do well in
such scenarios and the traversal-selector feature will be immensely useful
in these scenarios.

- keerthy

2009/6/16 ஸ்ரீராம் கீர்த்தி <[email protected]>

> I am designing a data model based on Neo4j which would be able to hold
> data/metadata similar to that in freebase.com
> Actually I came to know about Neo4j, after reading a freebase blog about
> 'graphd' - the graph database that freebase uses. I searched for open
> implementations of graph databases and landed at neo4j.
>
> Nothing concrete has been done yet, but I will present use-cases(in this
> thread) on how a data-metadata model for freebase like content can be stored
> using Neo4j. The only place where I am stuck is in how versions of different
> attributes/relationships are maintained in freebase. They seem to follow an
> append-only pattern to their data store.
>
> - keerthy
>
>
> On Tue, Jun 16, 2009 at 6:27 PM, Emil Eifrem <[email protected]>wrote:
>
>> Hey, that's actually a VERY good initiative. Would be GREAT if we
>> could get start building a list of real-world Neo4j use cases! So
>> please:
>>
>>   a) Go to
>> http://stackoverflow.com/questions/1000162/have-abyone-used-graph-based-databases-http-neo4j-org
>> and add a one-or-two liner about your Neo4j use case. [Requires
>> registration, but supports OpenID.] Or,
>>
>>   b) Reply inline in this thread. (Works equally well and requires no
>> registration.)
>>
>> Cheers,
>>
>> -EE
>>
>> On Tue, Jun 16, 2009 at 14:46, Anders Nawroth<[email protected]>
>> wrote:
>> > Hi!
>> >
>> > The following question was posted at Stackoverflow a few hours ago:
>> >
>> http://stackoverflow.com/questions/1000162/have-abyone-used-graph-based-databases-http-neo4j-org
>> >
>> >> I have used Relational Db's a lot and decided to venture out on other
>> >> types available.
>> >> This particular product looks good and promising http://neo4j.org/
>> >> Have anyone used Graph based databases and can highlisght pro's and
>> >> con's from usability prespective .
>> >> Also have you used these in production enviornment and what was you
>> >> requirement that prompted you to use these ?
>> >
>> > I guess there should be some people here having this kind of experience,
>> > right?! :-)
>> >
>> > Would be sweet if someone could chime in and contribute to the thread
>> > over at Stackoverflow!
>> >
>> >
>> > /anders
>> >
>> > _______________________________________________
>> > Neo mailing list
>> > [email protected]
>> > https://lists.neo4j.org/mailman/listinfo/user
>> >
>>
>>
>>
>> --
>> Emil Eifrém, CEO [[email protected]]
>> Neo Technology, www.neotechnology.com
>> Cell: +46 733 462 271 | US: 206 403 8808
>> http://twitter.com/emileifrem
>> _______________________________________________
>> Neo mailing list
>> [email protected]
>> https://lists.neo4j.org/mailman/listinfo/user
>>
>
>
_______________________________________________
Neo mailing list
[email protected]
https://lists.neo4j.org/mailman/listinfo/user

Reply via email to