Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
COMPUTER DEVICE AND METHOD FOR MANIPULATING DISPLAYED OBJECTS
Document Type and Number:
WIPO Patent Application WO/2022/162244
Kind Code:
A1
Abstract:
A computer system comprising a processor configured to access a genealogical database of data objects, wherein the data objects are organised in respective trees, the data objects of each tree having a defined relationship with other data objects in the tree, wherein each data object has a relationship link to one or more other data objects. The processor is configured to receive from a user represented by a user data object a selection of a subset of data objects of the tree, and to generate a subtree comprising the selected data object(s) and any data objects which have a relationship link between the user data object and the selected data object(s) wherein the defined relationships are maintained in the subtree, the subtree excluding non-selected data objects other than those which have a relationship link between the user data object and the selected data object(s).

Inventors:
DAVIES SIMON DAVID MORLEY (GB)
Application Number:
PCT/EP2022/052353
Publication Date:
August 04, 2022
Filing Date:
February 01, 2022
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
DAVIES SIMON DAVID MORLEY (GB)
International Classes:
G06F16/901; G06F16/9038; G06Q10/00
Foreign References:
US20200273542A12020-08-27
US20120054190A12012-03-01
US8769438B22014-07-01
Attorney, Agent or Firm:
DRIVER, Virginia Rozanne (GB)
Download PDF:
Claims:
Claims:

1. A computer system comprising a processor configured to access a genealogical database of data objects, wherein the data objects are organised in respective trees, the data objects of each tree having a defined relationship with other data objects in the tree, wherein each data object has a relationship link to one or more other data objects, the processor configured to receive from a user represented by a user data object a selection of a subset of data objects of the tree, and to generate a subtree comprising the selected data object(s) and any data objects which have a relationship link between the user data object and the selected data object(s) , wherein the defined relationships are maintained in the subtree , the subtree excluding non-selected data objects other than those which have a relationship link between the user data object and the selected data object(s).

2. The computer system of claim 1 comprising a user interface having a display for displaying visual representations of the data objects to a user, and user input means configured to receive the selection from the user of a subset of the data objects by the user engaging with one or more of the visual representations on the display.

3. The computer system of claim 2 wherein the processor is configured to render the tree on the display as visual representations of the data objects of the tree and to subsequently render the subtree as a subtree of visual representations of the selected data objects of the tree on the display of the user interface.

4. The computer system of claim 3 wherein the processor is configured to render the visual representations of data objects in the subtree on the display with the relative orientation which is the same as the relative orientation of the visual representations in the tree from which the subtree is generated.

5. The computer system of claim 2 or claim 3 or 4 when depending on claim 2 comprising a server computer at which the processor is provided and a user computer device in communication with the server via a communication network, the user computer device providing the user interface.

6. The computer system of any preceding claim wherein the processor is configured to create a subtree object comprising the selected data objects and to transmit the subtree object

34 to one or more user computer device for displaying visual representations of the data objects of the subtree at the one or more user computer devices.

7. The computer system of claim 6 wherein the processor is configured to receive a selection of a subset of data objects from a first user and to generate a subtree object comprising the selected data objects; to transmit the subtree object to a first user device for rendering on a first display of the first user device with a first particular data object in a primary location of the first display; to transmit the subtree object to a second user device; and to visually render a second particular data object of the subtree object in a primary location of a second display of the second user computer device wherein the first particular user data object is visually rendered to represent the first user in the primary location of the first user computer device, and the second particular data object is visually rendered in a corresponding primary location of the second display associated with the second user.

8. The computer system of any preceding claim wherein the processor is configured to generate for each data object in the genealogical database a tag which associates a content item with the data object.

9. The computer system of claims 6 and 8 wherein the processor is configured to associate the tag with a subtree object which represents multiple data objects such that each data object within the subtree inherits one or more common tag.

10. The computer system of claims 6 or 9 wherein the subtree object represents a family of related members, wherein each member of the family is represented by a data object, and where the subtree object represents selected family members.

11. The computer system of any preceding claim wherein the processor is configured to access a graph database defining a social network of members of a family tree or subtree of a family tree represented by respective data objects.

12. The computer system of claim 11 when dependent on any of claims 8 to 10 wherein the processor is configured to receive a content item from a user and to generate a tag

35 associating the content item with subtree objects comprising data objects associated with the tag.

13. A computer implemented of presenting to a user a tree of data objects extracted from a genealogical database, the user represented by a user data object , the method comprising: receiving a selection from the user of a subset of the data objects; generating a subtree comprising the selected data object(s) and any data objects which have a relationship link between the user data object and the selected data object(s) . wherein the defined relationships are maintained in the subtree , the subtree excluding nonselected data objects other than those which have a relationship link between the user data object and the selected data object(s); and rendering for display the data objects of the subtree in the form of a subtree on a display for the user.

14. The method of claim 13 comprising sharing the subtree with one or more additional user, the subtree being rendered on a display associated with each respective user with a respective user data object in a primary location on a respective user display.

15. The method of claim 13 or 14 comprising assigning one or more tag to each data object, wherein the subtree inherits tags of underlying data objects.

16. The method of any of claims 13 to 15 wherein each subtree represents a family of related members, each member represented by a respective data object.

17. Computer readable media in transitory or non-transitory form which stores computer readable instructions which when executed by one or more processor implements the method of claims 13 to 16.

18. A computer system comprising a processor which is configured to access a genealogical database of data objects, each data object representing a family member, the processor configured to: generate a subtree of data objects, the subtree representing a family comprising data objects representing family members having a familial relationship within the family; receive a content item from a user associated with one or more of the family members; generate a tag for the content item and associate the tag with the subtree representing the family of the one or more family members.

19. The computer system of claim 18 wherein the subtree data object represents a subset of a family comprising a subset of family members, wherein the user is configured to associate the tag only with the family members of the subset.

20. The computer system of claim 18 or 19 comprising receiving with the content item a tag category to define a category of tag to be generated.

21. The computer system of claim 18 comprising a server computer and at least one user computer device, the server computer providing the processor which is configured to access the genealogical database of data objects, the processor further configured to generate for display on the user computer device content items associated with one or more family.

22. The computer system of claim 21 comprising computer memory which stores the tags for the content items in association with the family with which they are associated, and a graph database defining a social network which links families and family members such that each family member of the social network has access to content items stored in association with that family.

23. The computer system of claim 22 wherein the processor is configured to generate for display an image which comprises a display area for displaying content items and for receiving user input of additional content items pertaining to the family.

24. A computer implemented method comprising : using a processor to access a genealogical database of data objects, each data object representing a family member; generating a subtree of data objects, the subtree representing a family comprising data objects representing family members having a familial relationship within the family; receiving a content item from a user associated with one or more of the family members; generating a tag for the content item and associate the tag with the subtree representing the family of the one or more family members.

25. Computer readable media in transitory or non-transitory form which stores computer readable instructions which when executed by one or more processor implements the method of claim 24.

38

Description:
Title:

COMPUTER DEVICE AND METHOD FOR MANIPULATING DISPLAYED OBJECTS

Field

The present disclosure relates to the manipulation of displayed objects on a computer device, particularly but not exclusively in the field of interactive discovery and generation of objects for display in a family tree format on a user interface of a computer device.

Background

There are a number of computer-based products available for genealogical research. These products provide a way for users to discover more about their ancestors and family members by accessing genealogical data through a user interface of a computer device. For example, they may enter a name of a person, and access any available data about that person which may be present in the genealogical data. Users may add data they find to their personal database within the product they have chosen to use and construct a family tree which also shows relations to that person. A common way to show the information is to display images of people in a family tree-based format, with lines between images representing family relations.

Amongst these products are web-based platforms such as Familysearch.org, Ancestry, MyHeritage and FindMyPast. Each of these enable a user to construct their own family tree based on their own research.

The Ancestry platform includes a ‘hint’ feature. That is, in a family tree presented to a user, certain members of the family tree may be presented with a ‘hint’. A ‘hint’ is indicated by a visual indicator adjacent to an image of the member (or representation when there is no actual image). When accessed, a ‘hint’ may offer further information. For example, it may offer possible documents associated with that member from its archive. It may offer other family trees created in Ancestry that share that member to support further research. If the present user decides that the member in another family tree is a match, the present user may add that record of the member to their own. A user may choose from either of two conflicting pieces of information about that member (for example date of birth). In addition, any immediate relatives of the member recorded in the other family tree are offered as records to be added to the present user’s family tree (either as a new person, or, if a record of that relative already exists, as a match). Although the present user may create an instance of a new person on their tree, automatically transferring all information about that person, the instances of that added member are separate, as are the trees containing the instances. The hint feature may also offer suggestions for parents of a member deduced from its archive. Each suggestion may be accessed by a user to facilitate his construction of his own family tree. If a hint given to the present user pertains to a person who may be a parent, the user may act on the hint by adding the parent to their own family tree.

There is a database common to many current genealogy research platforms from which “GEDCOM” files can be produced. The GEDCOM files include genealogical data on individuals, as well as metadata linking each individual to one or more other individuals. The present use of GEDCOM files is to enable a family tree researched and created by each individual user to be rendered on a user interface for that particular user. It further enables each member of a tree to be accessed to cause information pertaining to that member to be displayed.

Summary

The current format of genealogical research does not suit people with a casual interest in their family history because it is labour intensive to construct trees and research links etc. Furthermore , the inventor has recognised that there is a need to render a family tree on a display in such a way that it represents a navigable tool that a user can effectively engage with to access content items and information . Rendering the family tree on a display may need to be done at a user device with limited processing capability and display resources . The present inventor has noted and addressed these and other deficiencies in the currently available genealogy research services and platforms. The inventor has also addressed challenges of integrating a genealogical database with a social network graph to provide a richer user experience.

He has noted that present services do not offer a way to represent research in a user-friendly, intuitive format, or a truly engaging way to share the results with other users, e.g. friends or family.

The present disclosure describes a more user-friendly way to access and render family tree objects which may allow more dedicated users to share their research. As a result, those with a casual interest in their family history may be more inclined to subscribe to the site, interact with their family history or participate in the research.

The present inventor has recognised that there are two types of users who may be accessing genealogical data. One may be termed a ‘super user’. A super user has a keen interest in researching family matters, and is willing to spend time on that research. Another type is a normal user - or just ‘user’ herein - who may be casually interested in family but who may not wish to spend time carrying out extensive research. On present genealogy sites, research conducted into family trees is not easily shareable in a digestible format to normal users, i.e. non-researcher casually interested family and friends. That is, there are no features which create an easily navigable and readable version of the data stored in the family tree, complete with additional narrative from the user, which results in truly engaging output for the super user or user’s family and friends. The present disclosure provides a new way of using family tree data such that a user can share in a simple and more comprehensible way, and add narrative to their discoveries more easily. Certain features of the present disclosure provide an interactive and sociable webpage that is tailored to each family member accessing it. One aspect of the invention provides a method of producing “smart trees,” which show a relevant subset of a larger family tree. For example, a user may select an individual of interest and a smart tree may be produced wherein only the ancestors that link the user to the selected individual are shown. For example, users who visit a relative’s family page will only see the parts of that family to whom they themselves are related. For example, if a cousin of a user becomes a user as well, the cousin, who (probably) only shares one set of grandparents with the original user or super user, when accessing the website would be shown a family tree that does not contain the user’s other grandparents, but would include their grandparents not shared with the original user or super user. In this way the position of any new user in the family tree determines the website section structure to ensure that the central focus of the website is that user, and that all information found within is relevant to that user.

According to one aspect of the invention there is provided a computer system comprising a processor configured to access a genealogical database of data objects, wherein the data objects are organised in respective trees, the data objects of each tree having a defined relationship with other data objects in the tree, the processor configured to receive from a user a selection of a subset of data objects of the tree, and to generate a subtree from the selected data objects in which the defined relationships are maintained, the subtree excluding non-selected data objects.

Subtrees may be used as described in the following. One particular advantage is to ease engagement by a user with a user interface on which the subtree is displayed. For example, for devices where display space on the user interface may be constrained, it is advantageous to display only the relevant subset of members and their relationships without displaying the whole tree.

The computer system may comprise a memory holding computer readable instructions which are executed by the processor to cause the processor to carry out the above functionality.

The processor and memory may be provided by a server.

The computer system may comprise a display, and means for rendering data objects of the subtree on the display.

The system may further comprise means for rendering a data object tree from the genealogical database on the display, and input means enabling a user to input the selection of individual data objects of the tree to provide the selection of the subset of data objects.

The display and input means may form part of a computer device which communicates with a server via a communication network. The computer device is sometimes referred to herein as a user device.

The processor may further be configured to create a subtree object for sharing with other users.

The processor may be configured to tag the subtree object in such a way that each data object within the subtree inherits one or more common tag.

The processor may be configured to reorganise subtree objects to visually render a particular user data object in a primary location of a display associated with the particular user. For example, a first user may select a subset of data objects to cause a subtree to be generated, and a second user may access that subtree. When a second user accesses his own computer device to view the subtree, a data object associated with the second user would be represented in a primary location. Generally, a subtree shows and emphasises to the user viewing it how they are related to family tree members featured within the subtree. When the first user accesses the subtree, the data objects associated with the first user would be rendered in the primary location.

This allows user centric views to be readily provided.

The invention also provides a computer implemented method of presenting to a user a tree of data objects extracted from a genealogical database, receiving a selection of the user of a subset of the data objects; generating from the selected data objects a subtree in which defined relationships present in the tree are maintained in the subtree, the subtree excluding non-selected data objects, and rendering for display the selected data objects in the form of a subtree on a display for the user.

The method may further comprise sharing the subtree with another user. In that case, each user may view the subtree with his own associated data object (for example, his image) in a primary location on his own display.

The subtree may inherit tags of underlying data objects. A user may add tags to a subtree.

Aspects of the invention may further provide computer readable media in transitory and non- transitory form which stores computer readable instructions executed by one or more processor to implement any of the methods defined herein.

A further aspect of the invention provides a computer system comprising a processor which is configured to access a genealogical database of data objects, and to generate for each data object in the genealogical database a tag. A tag may be associated with an individual person data object or a family data object such as a subtree.

Tags may be automatically generated when a user uploads documents associated with a particular person or subtree into a certain section. For example, a subtree may represent a certain subset of a family. If a user uploads documents associated with that family, each document inherits a tag identifying that family subtree.

Documents may comprise images, posts, certificates, newspaper articles or any other document which may be of interest to the family or person associated with the document.

Each taggable item has a default list of certain tag categories as defined further herein.

Each user may identify a section of the website containing posts relevant to that user’ s ancestry. The user may add posts to this section because they are part of one or more families associated with the section by virtue of a social network in which all users are automatically able to access website sections to which they are associated. The social network is defined by a graph database of the living members of the original family tree objects database. When the user posts items in a section these are automatically associated with a relevant tag or tags generated by the processor.

Another aspect of the invention comprises a computer system comprising a processor configured to access a genealogical database of data objects, wherein the data objects are organised in respective trees, the data objects of each tree having a defined relationship with other data objects in the tree, wherein each data object has a relationship link to one or more other data object, the processor configured to receive from a user represented by a user data object a selection of a subset of data objects of the tree, and to generate a subtree comprising the selected data object(s) and any data objects which have a relationship link between the user data object and the selected data object(s) . wherein the defined relationships are maintained in the subtree , the subtree excluding non-selected data objects other than those which have a relationship link between the user data object and the selected data object(s).

The user interface may have a display for displaying visual representations of the data objects to a user, and user input means configured to receive the selection from the user of a subset of the data objects by the user engaging with one or more of the visual representations on the display.

The processor may be configured to render the tree on the display as visual representations of the data objects of the tree and to subsequently render the subtree as a subtree of visual representations of the selected and linking data objects of the tree on the display of the user interface. The linking data objects may be displayed in a manner which is visually distinguishable from the selected data objects.

The processor may be configured to render the visual representations of data objects in the subtree on the display with the relative orientation which is the same as the relative orientation of the visual representations in the tree from which the subtree is generated.

The computer system may comprise a server computer at which the processor is provided and a user computer device in communication with the server via a communication network, the user computer device providing the user interface.

The processor may be configured to create a subtree object comprising the selected data objects and to transmit the subtree object to one or more user computer device for displaying visual representations of the data objects of the subtree at the one or more user computer devices. The processor may be configured to receive a selection of a subset of data objects from a first user and to generate a subtree object comprising the selected data objects; to transmit the subtree object to a first user device for rendering on a first display of the first user device with a first particular data object in a primary location of the first display; to transmit the subtree object to a second user device; and to visually render a second particular data object of the subtree object in a primary location of a second display of the second user computer device wherein the first particular user data object is visually rendered to represent the first user in the primary location of the first user computer device, and the second particular data object is visually rendered in a corresponding primary location of the second display associated with the second user.

The processor may be configured to generate for each data object in the genealogical database a tag which associates a content item with the data object.

The processor may be configured to associate the tag with a subtree object which represents multiple data objects such that each data object within the subtree inherits one or more common tag.

The subtree object may represent a family of related members, wherein each member of the family is represented by a data object, and where the subtree object represents selected family members, and linking members.

The processor may be configured to access a graph database defining a social network of members of a family tree or subtree of a family tree represented by respective data objects.

The processor may be configured to receive a content item from a user and to generate a tag associating the content item with subtree objects comprising data objects associated with the tag.

Another aspect of the invention provides a computer implemented method of presenting to a user a tree of data objects extracted from a genealogical database, the user represented by a user data object , the method comprising: receiving a selection from the user of a subset of the data objects; generating a subtree comprising the selected data object(s) and any data objects which have a relationship link between the user data object and the selected data object(s) . wherein the defined relationships are maintained in the subtree , the subtree excluding nonselected data objects other than those which have a relationship link between the user data object and the selected data object(s); and rendering for display the data objects of the subtree n the form of a subtree on a display for the user.

The subtree may be shared with one or more additional user, the subtree being rendered on a display associated with each respective user with a respective user data object in a primary location on a respective user display.

The method may comprise assigning one or more tag to each data object, wherein the subtree inherits tags of underlying data objects.

Each subtree may represent a family of related members, each member represented by a respective data object.

Another aspect of the invention provides a computer system comprising a processor which is configured to access a genealogical database of data objects, each data object representing a family member, the processor configured to: generate a subtree of data objects, the subtree representing a family comprising data objects representing family members having a familial relationship within the family; receive a content item from a user associated with one or more of the family members; generate a tag for the content item and associate the tag with the subtree representing the family of the one or more family members.

The subtree data object may represent subset of a family comprising a subset of family members, wherein the user is configured to associate the tag only with the family members of the subset.

The processor may be configured to receive with the content item a tag category to define a category of tag to be generated.

The computer system may comprise a server computer and at least one user computer device, the server computer providing the processor which is configured to access the genealogical database of data objects, the processor further configured to generate for display on the user computer device content items associated with one or more family.

The computer system may comprise computer memory which stores the tags for the content items in association with the family with which they are associated, and a graph database defining a social network which links families and family members such that each family member of the social network has access to content items stored in association with that family.

The processor may be configured to generate for display an image which comprises a display area for displaying content items and for receiving user input of additional content items pertaining to the family.

Another aspect of the invention provides a computer implemented method comprising: using a processor to access a genealogical database of data objects, each data object representing a family member; generating a subtree of data objects, the subtree representing a family comprising data objects representing family members having a familial relationship within the family; receiving a content item from a user associated with one or more of the family members; generating a tag for the content item and associate the tag with the subtree representing the family of the one or more family members.

For a better understanding of the present invention and to show how the same may be carried into effect, reference will now be made by way of example to the accompanying drawings.

Brief description of the drawings

Figure 1 shows an exemplary homepage of a user’s genealogy webpage.

Figure 2 shows an exemplary family section for a particular family within a user’s genealogy webpage.

Figure 3 shows an exemplary post creation user interface, wherein a user has created a post entitled: ‘Davies Family Introduction.’

Figure 4 shows an exemplary post creation user interface wherein a user is adding elements of a post. y Figure 5 shows an exemplary family section for a particular family on a user’s genealogy webpage, the family section including a post created through the user interfaces of figures 3 and 4.

Figure 6 shows an exemplary family section for a particular family on a user’s genealogy website, wherein the system is suggesting that the user upload media files to the page.

Figure 7 is a highly schematic block diagram which represents the structure of the smart tree system.

Figure 8 is a highly schematic block diagram which shows how users can access the smart tree engine via a network.

Figure 9 shows an exemplary user interface in which a user is selecting a quantity of data objects to create a tree subset comprising the selected data objects.

Figure 10 shows an exemplary post creation page, the post including the tree subset created in the user interface of figure 9.

Figure 11 shows an exemplary post creation page, wherein the user has been presented with an option to add tags to the post.

Figure 12 is a flowchart which represents the process via which the smart tree system generates a tree subset that shows the familial link between a user and a selected individual in a family tree.

Figure 13 is a flow chart that represents a process by which structured data is processed to render and display a family tree.

Figure 14a shows a first embodiment of a family pyramid.

Figure 14b shows a second embodiment of a family pyramid.

Description of the Preferred Embodiments

Figure 1 shows an exemplary homepage 100 of a user interface 825 for a particular user of a genealogy tool, the genealogy tool capable of creating a personalised webpage through which a user may present genealogy research. The homepage may be generated on a display 829 of a computer device automatically upon uploading a GEDCOM file. A large icon 200 representing the user may appear on the homepage alongside large icons of selected families to whom the user may be related. The list of families may also be accessible, for example, by selecting or hovering over a “Families” tab 202. “Families” are described later. In short, a “family” is a subset of related data objects extracted from a larger family tree that may be offered on the display initially by the GEDCOM file.

The homepage 100 may guide the interaction of the user with the user interface 825 . For example, the homepage may include a “call to action,” or “prompt” for the user to enter a particular family section. For example, the homepage may prompt the user to enter the family section entitled “Davies” by selecting the corresponding icon 204 . Making this selection causes the subset of data objects in the Davies family tree to be rendered on the display.

Figure 2 shows an exemplary families page of the user interface 825 of the same genealogy tool as in figure 1, wherein the user has selected the “Davies” icon 204 in the ‘ Families ‘ tab 202 , thereby entering the Davies family section. The exemplary family section may include an automatically generated heading 204 for the corresponding family name. The heading may be editable by the user. The section may further include the family tree subset 206 of data objects, wherein the user may see themselves as part of the family tree of the selected family. In the case that a user may only be related to the selected family through a connection several generations back ( five are shown in Figure 2 ) , the user interface may display the direct line from that to the user. The family tree subset of data objects may be created via a smart tree engine which is capable of determining which data objects are relevant to the particular family tree subset that is being created.

Upon entering the exemplary family section of figure 2, the user may receive another “call to action,” or “prompt”. The prompt may indicate to the user that they can create a post, perhaps comprising general information about the selected family.

Figure 3 shows an exemplary user interface for the same genealogy tool as in figures 1 and 2, wherein the user has selected a prompt to create a post, thereby opening a generic post creation page. The title element 208 of the post may be automatically generated but may also be editable. The element creation page may also comprise an add element button, through which features may be added to the post that is being created.

Functionality may be added to guide the user more when they enter a particular section (e.g ‘the Davies Family’ section). A set of suggested stacked post templates may be provided, several automatically including subtree objects. For example the list of posts ready to populate could include: “Davies Family Introduction” which automatically includes distinct subtree objects. For example, one object could be the entire Davies line subtree object, another could be “Generation 6: . . . .” which includes subtree for that generation only (in that post it is set up to enter passages on each person - complete with that person’s tree data object, passages on where they lived, their children, their trade/profession. . . .). Another object could be “Generation 5:..” etc.

Figure 4 shows an exemplary user interface for the same genealogy tools as in figures 1 to 3, wherein the “add element” button 210 in the user interface of figure 3 has been selected, thereby opening an element creation page 212 through which the user may add one or more of: a custom tree element 212a, a text element 212b, a media element 212c such as map, an image, a video or other media file. The user may also be able to reposition images and text on the screen such that their family section is organised to their preference.

Whilst the user adds elements to the selected family section, the system may perform a regular “autosave” function such that minimal work is lost in the event of a computer crash or other interruption to the creation of the post. The element creation page may further include selectable options entitled: “save draft,” 213 “delete,”215 “tag” ( not shown in Fig 4 ) and “publish” 214 . Selection of the save draft option may cause the element creation page to close, but may implement an option for the user to return to their saved work and complete it at a later date. The delete option may, when selected, cause the work-in-progress to be removed from the selected family section. The publish option may, when selected, cause the created post to be inserted into the associated family section, and into the homepage feed of all relevant users, the post further recognising any formatting instructions issued in the element creation page.

Figure 5 shows an exemplary user interface of the same genealogy tool as in figures 1 to 4, wherein a publish option 214 for a post created in the element creation page of figure 4 has been selected. As a result, the tool displays an updated version 218 of the family section page, wherein the created post is shown in a family section feed area 220 . Any images that were inserted into the post in the element creation page may be added to a family section gallery by virtue of the family section tag being automatically added to such images, wherein all images which include metadata linking those images to the selected family may be shown, for example in a scrollable list or in an animated slideshow format. All images, regardless of their associated family or families, may also be added to a gallery comprised within the homepage. The homepage gallery may also display photos in, for example, a scrollable list or in an animated slideshow format. Figure 6 shows an exemplary family section user interface of the same genealogy tool as featured in figures 1 to 5, wherein the tool has issued a further prompt 222 to the user, this time guiding the user to upload media files to the associated family section. By suggesting that the user upload media files, the tool guides the interaction of the user with the user interface such that the site becomes more inviting.

By uploading media files to a particular family section, the files are automatically tagged to that particular family. That is, the processor implementing the genealogy tool detects the action by a user to upload an item into a particular section and generates a tag associated with that section. In some embodiments, each section may be associated with a particular storage location or storage identifier in computer memory, enabling the action to be detected in that section. Note that in the case that a second family section possesses the same name as a first, the tag assigned to the second family may be different to that of the first. Tags are generated based on family sections which are defined by metadata in the computer memory - the same humanly readable name on a page may be associated with different metadata if in fact it is a different family section. This is important in the context of genealogy data, where several individuals may have identical family names, but different familial relationships to any given user.

A tag may be used to link an image, media file or other element, such as a post, to a particular family. A tag may be an editable feature of the element, and the user may manually assign one or more tags to a particular element. A tag may be assigned to identify one or more of: the associated family(ies), relevant individual(s), location(s), date(s), event(s) or other characteristic capable of categorising the element with which the tag is associated. Each tagged item is stored in computer memory with its associated tag. Tags may further be created by a user as a suggestion. In such cases, a super user, who may be a keen genealogist and an administrator of a particular family webpage, may receive a notification that another user has suggested a tag. The super user, who may be in a better position to judge the accuracy of the suggestion than another user, may then opt to accept or decline the suggested tag provided by the other user. Suggested tags may be provided with respect to any of the above-named category identifiers.

A tag may also be assigned to identify an ‘unsolved’ aspect of the research project. For example, a particular webpage may include a section which comprises all posts which possess an ‘unsolved’ tag. The unsolved section may therefore represent a list of ongoing genealogical research projects. For example, a super user may tag a particular element as unsolved such that the other users who are related to the super user may add suggestion tags or comments which could aid the research. The unsolved section may thereby improve the social aspect of the tool.

Figure 11 shows a user interface wherein a post is being created. A title section 226 “Folly Farm memories“ is displayed . The exemplary post of figure 11 is almost complete, as it includes a title, family tree subset, text, media and other elements. However, the system suggests to the user that they should add tags 110 to the post before publishing. The processor is configured to render on the display a tag prompt 224 having a number of predefined tag categories, such as Family, People, Place, Date, Event, Unsolved. As mentioned herein, tags 110 enable a more interactive and tailored page for users. By suggesting that a user add tags 110 to their posts, the system therefore guides the user’s interaction with the user interface and helps the user to make the most of the available features of the webpage. Note that a suggestion to add tags 110 may be issued when uploading or updating any element of the webpage, including but not limited to: posts, gallery media, documents and maps. The post will in any case be tagged according to the location from which it was created; for example a post tagged in the “Davies Family” section is tagged “Davies” in the family field by default. Note that tags 110 may be automatically assigned and/or inherited from existing data. Tag inheritance may be achieved using links defined using object-oriented programming, as described in more detail later herein.

Media files, such as photos and videos, which are uploaded to the webpage may be viewable via selection of a selectable ‘gallery’ button. For example, upon selection or hovering over the gallery button, the user may be offered a list of family icons, customisable collections, or albums. Upon selection of a particular option in the list, the user may be presented with a page comprising a relevant family tree subset, the family tree comprising data objects. If for example the Davies family icon 204 were selected, then the family subtree 206 would show with all the relevant Davies tagged media beneath. The data objects of the subtree may be selectable features which, when selected, cause the webpage to display all media which has been assigned a tag 110 pertaining to the selected data object, i.e. in this example a Davies family member. A sorting toggle may also be displayed on the webpage as a selectable feature which, when selected, offers the user a quantity of options as to how the gallery media is ordered. For example: date order, reverse date order, specific place. The gallery page may further include a selectable “help with identification” feature, which may open an album of media, all of which have one or more unassigned tags such as: unknown person, unknown place, unknown event, or one or more suggestion tag, such as: suggestion name, suggestion place, suggestion even, suggestion date. Note that other pages within the webpage, such as “documents,” “families,” or the homepage may also include a similar feature whereby users can see a list of research areas to which they may be able to contribute.

A documents tab 230 may also be a selectable feature of the homepage which, when selected, may display a list of family icons or document collections. Upon selection of a particular option in the list, a user may be presented with a page comprising a family tree subset, the family tree comprising a quantity of data objects.

The data objects of the family tree may be selectable features which, when selected, cause the webpage to display all documents which have been assigned a tag pertaining to the selected data object. So within posts when a user selects a subtree object one option is to open images and documents relating to that object. A sorting toggle may also be displayed on the webpage as a selectable feature which, when selected, offers the user a quantity of options as to how the documents are ordered, for example: date order, reverse date order, specific place.

The tool may further guide the interaction of a user with the user interface by suggesting actions which may improve the webpage. The tool may, for example, guide the user to a feature whereby documents relating to a particular branch of the family of the user may be uploaded. Note that in such cases, the tool may be capable of receiving documents comprising multiple pages and splitting the document into single pages such that only relevant information is uploaded.

Further, the tool may allow an existing document to be assigned one or more tags 110, the tag being assigned to identify any of the previously described characteristics capable of categorising the document with which the tag is associated. When assigning a tag to a particular document, a list of suggested tags may be provided. The ordering of the list of suggested tags may be determined based on a set of recently assigned tags, or, if the user is viewing a particular family section, the ordering may be based on the most relevant tags to that family, such as the members thereof. Note that tags associated with two or more different families may be assigned to the same element or document.

Documents may also be assigned with suggestion tags by users other than a super user. Upon assignment of a suggestion tag by a casual user, the super user may receive a notification, such as by email and/or through an administrator version of the user interface, that indicates the suggestion made by the casual user. One or more ‘unsolved’ tags may also be assigned to a document, either by the super user or as a suggested unsolved tag assigned by a casual user.

A user may also be guided to other features of the user interface, for example a feature whereby the user can select a particular person on a family tree or family tree subset and view information pertaining to the selected person.

The system may be capable of recognising, for example based on a predefined set of rules, when a super user should be prompted to invite family members to their webpage. For example, once the super user has uploaded a particular number of media files and/or posts to their webpage, the tool may suggest that the super user invite family members, who may then interact with the webpage by providing suggestion tags, comments or reactions to posts, or providing potentially relevant documents or media files.

If a super user chooses to invite family members to join the webpage, the family members may receive an email or other electronic communication, which may comprise an invitation link to the webpage. Each invitee may then follow the invite link to create an account, the account allowing each invitee to identify themselves as the author of posts, creator of suggestion tags, or source of other contributions to the webpage.

After creating an account, an invitee may arrive on their view of the homepage, their personal homepage featuring icons that represent families to which the invitee is related and for which at least one post has been written. If a user is related to a family for which no posts have been written, a family icon may not be present on the homepage. In such cases, a family icon may automatically be generated for the family upon publication of a first post pertaining to that family.

The tool may further guide the interaction of an invitee with the webpage user interface by identifying the different sections of the webpage and/or suggesting that the invitee, for example, open a particular family section, add a memory, upload photos, or look at their own profile.

As previously described herein, a super user may be a keen genealogist who may be in a better position to judge the accuracy of the suggestion than another more casual user. The super user may also be the individual who has performed research on a genealogy site which has enabled the generation of the GEDCOM file used to create the custom webpage. However, the super user may invite members of their family to access and participate in the research as a casual user. As a result of their increased experience and superior genealogical research ability, the super user may have further administrative features at their disposal, which may not be available to a casual user. For example, a super user interface may include a dashboard comprising, for example, a list of suggestion tags, new comments, new posts, and other contributions from casual users that are pending approval. The super user may be able to approve or reject the pending suggestions such that the research remains at the desired standard and accuracy of the super user.

The tool may also include a notification system, whereby the super user of the webpage may receive indications that a contribution is pending approval. Similarly, casual users may be notified when their pending contribution is approved. Notifications may be sent via email or may be added to a list of notifications comprised within an ‘alarm’ feature on the webpage. Content of the webpage may also be sharable, such as through social media outlets.

When a new media file is uploaded, an interactive post may be created on the webpage. For example, the post may read: “guess who it is!” The post may be created to invite interaction of casual users with the webpage.

Figure 8 is a schematic block diagram of components of a computer system for manipulating data objects in the field of genealogy.

In Figure 8, a server 801 is connected to one more user device 803 via a communication network 813, such as the Internet. The server 801 may comprise one or more processor 805 which may have access to a memory 809 holding computer readable instructions for execution by the one or more processor 805. In this way, the one or more processor 805 may deliver certain functionality from the server 801 to the one or more user device 803 over the network 813 as described herein. The server 801 may comprise a GEDCOM database 807 storing genealogy data and a structured database 811 holding data defined using object-oriented programming, as is described later. The GEDCOM database 807 is a known standard for holding genealogical data, wherein objects are linked by metadata. Note that the GEDCOM database 807 and or the structured database 811 may form part of the server 801, as shown in Figure 8, or could be separate and accessed by the server 801.

The server 801 comprises a tree builder functionality in the form of a smart tree engine 815. The tree builder functionality may be implemented by the code stored in memory 809 executed by the one or more processor. Features of the tree builder functionality are described further herein. The server 801 also comprises, or has access to, social network information 817. The social network information 817 is maintained in a contacts store. The contacts store holds for each user of the platform a user identifier which uniquely identifies that user, or the computer device 803 associated with that user, in association with contacts of that user. Each contact is a user having their own unique user identifier. The term “contact” as used herein is used in its conventional sense to denote social contacts of a user. Such contacts may be friends or family, or other people known to the user. Each user may have any number of contacts in their social network information. The social network contacts are used as further described herein to enable genealogical research to be easily shared and augmented, even by casual users.

The server 801 my further include n engine 819 configured to serialise the data and supply it to the front end to enable trees constructed by the smart tree engine 815 to be rendered .

The server 801 communicates with the one or more user device 803 via the network 813 by transmitting and receiving electronic messages through the network 813. Each message has an address which allows it to be directed to its destination device 803. In particular, an electronic message may hold components of a selected subtree which has been accessed from a complete family tree based on a user instruction at a user device, as further described herein.

In addition, an electronic data message may comprise an alert which is sent to one or more user device 803 responsive to an action at another user device 803.

Each user device 803 is a computer device comprising one or more device processor 821, a device memory 823 storing computer readable instructions to be executed by the one or more device processor 821 and a user interface 825 for interacting with the user of the user device 803. The user interface 825 comprises a display 829 and a user input means 829. The user input means 829 may be any known user input means 829, for example comprising a mouse, keyboard or touchscreen. Each user device 803 may run a web browser 830 through which access to web services offered by the server 801 may be achieved. The web browser may include a rendering engine 832 for rendering on the display smart tress supplied by the server. The web browser and the rendering engine may be executed by the processor 821. Other computer implementations are possible - for example the code may be compiled and executed as an ‘app’ - an application embedded in or intended to run on a native operating system such as iOS or Android in smart phones or other such computer devices. Data objects 501 may be rendered on the display of a user device, as shown in Figure 5, and each data object 501 may be the subject of a user interaction. For example, a user may select a data object 501 which represents a person in a family tree and this causes the selection of that object and associated functionality to be transmitted to the server, which may respond with appropriate features for display at the user device.

Note that the tree builder functionality is illustrated at the server 801. It will be readily apparent that each user device 803 could itself have a local tree builder functionality and/or local social network storage. In certain embodiments therefore, it may be possible to operate features described herein by user devices 803 communicating between themselves over a network 813, and without an intervening server 801. Note, however, that access to a common genealogical database 807 is important for consistency of the access of data objects 501.

The features of the genealogy tool described herein enable genealogical discoveries made by more dedicated researchers to be socialised into a wider group of family and friends, who may have a keen but casual interest. The tool enables information ownership to be spread and offers individuals and families a way to build a simple record for future users who may be associated with that family. The genealogy tool recognises that there may be different categories of users. A first category may be the so-called super users who are engaged in discovery, puzzle solving and other research through genealogical data. Another category may be keen but casual families and friends who may act as their followers, becoming engaged with, reacting to and adding to the output. The computer system described herein allows these different categories of people to be connected on a social platform.

As described herein, the social media framework provides a family member login, with a homepage which adapts to the logged in family member as a focal point. The focal point is sometimes referred to herein as the primary location, and it is understood to be a particular location relative to a display on any particular computer device. As described, any user may post comments and items into a feed provided on the home page. The post may be filtered into different sections. The website may embrace Wikipedia change log model. A homepage feed may surface all additions relating to a particular family. The website may utilise instant messaging. The website may be capable of generating new material alerts to family and friends who are connected in a social network.

As mentioned above, the genealogy tool may provide a smart tree indexer which extracts a subset of data objects into a subtree of a larger family tree. Each tree subset might index relevant ancestors to the person who set up the tree. Alternatively, a person may select certain individuals from a larger tree and create a tree subset only of those individuals. Each member of the tree may be associated with the data object which may have an image to be rendered on a screen. For example, the image may be a headshot. Each headshot may link directly to their entry in a full tree from a genealogical database, such as Ancestry, FindMyPast, MyHeritage, Family Search etc.

Figure 9 shows a user interface 825 through which a user may select a subset of data objects 903 in a tree 901 to form a tree subset 101, the tree subset 101 comprising only the selected data objects 903 and the familial links between them. The user interface of figure 9 also includes an option to select all data objects 903 in the tree, or to deselect all data objects that are already selected. Once the user has selected those data objects to be included in the tree subset, the user may select a “preview” button, selection of which may allow the user to view the created tree subset as it would appear on the webpage. In Figure 9 , selected objects are shown darkened relative to the non selected objects . The family subtree created in this way is shown in Figure 10 . Note that it shows only the family members selected in the interface of Figure 10 , because this shows the full set of selected and linking members . Note that if certain members had not been selected by the user , but were needed to show the familial relationships, these may also be rendered on the display as part of the family subtree , but possibly shown in a visually distinguishable way - i.e. greyed out.

Large trees may often be difficult to navigate. To view the whole tree on a screen may require the data objects to be too small to be identified, but viewing on a scale that allows a user to identify each data object may require the tree to be “zoomed in,” such that the overall structure of the tree is not apparent. By generating a tree subset, a user may produce trees of a size which allows identification of relevant data objects as well as understanding of the tree structure and familial links between data objects.

Figure 10 shows a user interface through which a post may be created. The exemplary post of Figure 10 is entitled “Folly Farm Memories”. The user interface comprises the family tree subset 101 created in the example of Figure 9. In this case, the subset of data objects 903 comprised in the tree subset 101 may represent the subset of individuals who lived at “Folly Farm”. The user interface also shows an element creation page, wherein options to add additional content to the “Folly Farm Memories” post are provided.

The tool may be integrated with any suitable messaging platform to allow family and friends to comment on individual posts and items. The site may support E-commerce. For example, it may be possible to provide personalised products using the family tree subsets, or documents or other items that have been posted in connection with them.

Figure 7 shows an overview of a smart tree architecture. A smart tree system 150 comprises the components and functionality described herein , and enables family tress 101 to be constructed , which feed into a social website platform 170 via messages and ecommerce to provide an interactive family journal and time vault 180.

The smart tree system 150 may be capable of identifying a familial link between a user and one or more selected individual and generating a tree subset comprising only the user and the one or more selected individuals. The generated tree subset may also include a quantity of intermediate individuals, the intermediate individuals forming the direct familial link between the user and the one or more selected individuals on the tree subset. The smart tree system may be capable of generating a tree subset which comprises the minimum number of data objects required to establish the direct familial link between a user and one or more selected individuals. By way of example, consider the generation of a tree subset comprising the minimum number of data objects required to define the familial relation between a user and their paternal grandfather, the paternal grandfather being the selected individual. The tree subset may show the user, the father of the user, and the selected paternal grandfather, but would omit any siblings, children or other relations who are part of the higher order tree, but do not form part of the direct familial link between the user and the selected individual.

The smart tree system may be capable of determining the link between a user and a selected individual using GEDCOM files in conjunction with a graph database 160 and a mapping algorithm. A GEDCOM file may define a first family as, for example, ‘0@Fl@FAM’, where the ‘0’ identifies the element as a highest order element, the ‘Fl’ is a code assigned to the element, which acts as an element identifier, and ‘FAM’ defines the highest order element Fl as a family. The family element may then be followed by subsidiary elements such as: ‘ 1 HUSB @P1@’, ‘ 1 WIFE @P6@’ and ‘ 1 CHIL @P5@’, where ‘ 1’ defines the subsidiary nature of the element to the ‘0’ element, the codes ‘Pl ’, ‘P2’ and ‘P3 ’ are element identifiers unique to each element, and ‘HUSB’, ‘WIFE’ and ‘CHIL’ respectively define the associated element as a husband, wife and child within the Fl family. Overall, the file may describe a family Fl, which comprises a husband (Pl) and wife (P6) who have one child (P3). The above lines in a GEDCOM file may then be followed by a second family element, such as ‘0@F2@FAM, which may itself be followed by subsidiary elements such as, for example: ‘ 1 HUSB @P3@’, ‘ 1 WIFE @P4@’. Note that the husband element (P3) of the second family (F2) is the child of the husband and wife in the first family element (Fl). GEDCOM files are therefore capable of using unique element identifiers to define links between individuals in the file. Since GEDCOM files are used to generate family trees, they are therefore capable of defining links between data objects in a family tree.

The graph database 160 may use nodes to represent data objects, and edges to represent links between data objects. A mapping algorithm may be used in conjunction with a graph database such that the links and intermediate data objects between two or more selected data objects may be identified. The smart tree system 150 may be capable of using logic to visually compact and connect the data objects as required, thereby allowing tree subsets to be generated which show the direct link between a user and a particular individual, where both the user and particular individual are represented by data objects on a family tree, and where there is a link between the user and the selected individual.

Figure 12 is a flow chart which represents the process whereby the smart tree system, in response to user selection of a particular individual, searches for the node in the graph database ( SI) identifies the links between the node associated with the selected individual and the node associated with the user (S2) , identifies the intermediate nodes and the edges (S4) , maps the nodes with the relevant links (S5) and generates a relevant tree subset comprising data objects that represent at least the user and the selected individual.

The platform is capable of building over time a significant ‘smart tree’ database of people, places, dates, professions and more.

Machine Learning and Artificial Intelligence modules may be incorporated which will identify attributes of an ancestor and their family and then crawl the web and the smart tree database across the entire user base in order to enhance the user experience in a number of different ways.

One of the key features of the system described herein is the creation and allocation of “tags” to documents and a range of content and creation of related elements. The tags associate the content to the family tree segments and sub segments and include attributes such as identity, pictures, location, date etc. Content elements and metadata can in their own right form tagged features. AI/ML modules may be implemented to process a broad range of content to source and categorise data and information both directly tagged and linked with the segments and sub segments of the family tree or more broadly suggesting and connecting content from a wide range of historical timing, locations and activities (e.g. historic events by date or location and links with organisations of a variety of social, corporate, sporting and political spheres). Photographic content by nature (e.g. people characteristics, animal types (e.g. wild vs farm vs pets), activity types, architecture / buildings, landscape, etc etc) could add to context through ML selection and prompting.

Any such automatically suggested content could also be tagged and linked to enrich the family tree elements

One feature is to present a typical profile of the life of the ancestor/family in question. For example, ancestors in a family (e.g. the ‘Poole’ family) may be known to be welsh border farmers and landowners in one region for two centuries at least. Research may have revealed that some had various positions in society (e.g. overseer - responsible for persuading parishioners to contribute to the welfare of the poor of the parish). Users may be interested in associated historical context and facts - such as the UK evolution of looking after the poor, the poor laws in Victorian times and ultimately the welfare state. Users may be interested in comparing the lives and historical contexts of different members of the same family tree or subtree.

The ML/ Al modules of the smart tree platform may offer insights into what contemporary society was like based on comparable family profiles and information on the web. It can explore professions, language and dialect, women in society at the time, expectations for the children, child mortality rates, the state of medicine, contemporary events and their potential impact on a particular family such as this.

The system may be trained to pull in a series of local media from the period: newspaper headlines, auctions, popular literature - anything that builds a picture of the times and how it was for one’s particular ancestors.

The smart tree engine may be able to identify that a certain user had an Irish ancestor in a particular location at a particular date or period and deduce relevant context to provide content to include in the relevant section(s) of the appropriate smart tree which could be exposed to all relatives on the website with the same ancestry. Another function of the ML/ Al module may be to automatically create and suggest tags based on what the system is seeing across all users.

The inventors note that known methods of rendering family trees are not suitable for implementing the smart tree functionality described herein. That is, when a computer system is programmed to identify a shortest route through a family tree between two or more selected individuals and construct and render a corresponding family tree, rendering times scale quickly with distance of relation between the two or more individuals. The present method of defining, organising and accessing data items described herein provides a significant improvement in rendering time when compared to known techniques.

The class and decorator functionalities within the Python programming language are used to define templates for data entities that form part of a family tree. That is, classes for different types of entity may be provided, and a hierarchical structure for organising and linking data entities defined based on the class templates is provided in the Python script.

A highest-level organising entity within the database is a “tree”. A tree class provides a model, according to which tree entities may be defined. A tree entity may be created with one or more properties such as a “draft” state, which identifies the tree entity as incomplete. That is, a new draft tree entity may be a copy of an existing tree entity, the draft tree created and stored in memory while content and/or properties of the other existing tree are edited. It will be appreciated that the existing tree entity may be deleted if changes are saved, with the draft tree taking the place of the existing tree entity that was being edited.

In another example, a particular tree entity may have an associated root, the root being a particular individual around whom the tree is to be visually constructed. It will be appreciated that a tree class may have other configurable attributes that can be defined. It will also be appreciated that states or attributes of the tree class may be configurable based on sub-classes provided in the Python script. That is, attributes such as the draft state indicator and root identifier may be included as metadata and defined under a metadata subclass of the tree class.

Note that other classes may be provided in the Python script for defining other types of data entity. Examples thereof include individuals, content such as articles, and relevant events and locations. Other types of data entity are described in more detail later herein. Data entities may be linked to one another via “foreign keys”. Note that foreign key relationships specify how tables in a data structure relate to each other and indicate relationships between tables. Data entities defined under a particular class may be linked to a data entity of a higher order class, such as a tree.

The tree entity may therefore group together a quantity of data objects that each represent an individual who belongs to a particular family tree.

An “individual” class may be provided in the Python script as a model for defining and grouping attributes or other data pertaining to a particular individual. For example, an individual may be assigned a name, a gender, a date of birth and/or death, or a time range in which the individual was born/died, an indicator of whether or not the individual is currently alive, a maiden name, one or more associated photo or other media file, one or more husband, one or more wife, one or more tree with which the individual is associated etc. There are many other possible attributes and relevant data etc. which may have a designated field in the “individual” class. An “individual” entity may be created from the model provided by the class. Note that creation of an individual entity in the data structure may be done automatically based on an input GEDCOM file, or entered manually by a user of the host computer system.

Two distinct ways of representing a relation between two individual entities are now described. Firstly, each data entity corresponding to an individual may include a link to a biological father, and a biological mother. In this way, biological parenthood between individuals is established. Biological parenthood may be defined using a reflexive foreign key from one individual to another. Each individual has two such reflexive foreign keys, one for the mother relationship, one for the father. One or more foreign key for a particular individual may be blank to indicate an unknown biological mother or father.

Secondly, a “Union” may be defined. A union link between a first and a second individual may indicate that the first and second individuals are/were in a partnership of some kind. For consistency with the GEDCOM file standard from which data is imported, every pair of individuals that are biological parents are automatically connected by a union link, regardless of marital status. However, partnerships according to the data structure described here are not only defined by mutual parenthood of another individual. Union links may be established to define links by marriage, civil partnerships etc., regardless of whether the union resulted in offspring. Python script defining the data structure may provide a union class, the union class providing a model of fields which may be filled to define a union entity, which represents a real union between two real individuals. A union entity, created from the union class, may be associated with two foreign keys: one per individual in the union. The union class may further be configured to define a date of union or a time period in which the union occurred, a separation date or time period, and a union ID. Note that other relevant data may be stored in a union data entity. Note also that each foreign key stored in a union entity indicates one half of the union. As described previously, one or more of the foreign keys may be blank, indicating that one or more corresponding individual in the union is not known.

Other classes may be provided in the python script, such as a content class. The content class is a model for creation of content entities and provides a system for linking content entities to trees and/or other classes of entity. Subclasses within the content class may provide a model for defining a state of a content entity and a type of content. A state subclass may allow a “draft” state to be assigned to a content entity defined under the content class; similarly, a completed content entity may be assigned a “published” state. A content type subclass may allow entities defined under the content class to be assigned a type such as “article”, “photo album” or other suitable content type.

A content entity may be associated with one or more author by assigning one or more corresponding foreign key to one or more individual entity, each individual entity representing a person who composed or contributed to the content entity. A content entity may further include a title, a thumbnail, a publishing date and/or other suitable types of associated data.

A generic link class may be provided, which defines an abstract model for links between content and other entities. The generic link class can be linked to any type of entity or, more generally, any instance of any model.

Other classes may define models for representing particular types of entity associated with a family tree. Examples of associated entities may include: individuals, media, a location, an artefact, an event, a family etc. A class may be provided for each type of entity described above.

The media class may provide a model for storing video data, photographs, PDFs, Spreadsheets or other suitable document types. The media class may include sub-classes for defining a state, such as “uploading” or “ready”. Other aspects such as image size and quality, video frame rate and media file format may be determined by the model defined by the media class.

The location class may provide a model for broadly defining a place of relevance. To what the place is relevant may not be constrained by the location class. A location entity created under the location class may include one or more of a title or name, a description, an address, and any other suitable data.

The artefact class may provide a model for defining an entity that represents a “thing” of interest or relevance. An artefact entity may be defined to include one or more of a title, a description, a textbook or other resource reference, and any other suitable data.

The event class may provide a model for broadly defining an entity that represents “something that happened”. An artefact entity may be defined to include one or more of a title, a description, a date, and any other suitable data.

The family class may provide a model for defining an entity that represents a familial connection between one or more individual-class entity. A non-trivial instance of a family entity necessarily infers the existence of links between classes, because no individual-class entity can indicate a member individual without linking to a corresponding individual entity.

It will be appreciated from the above that the links between all of the above-mentioned classes may be necessary. It is useful for links between entities to be defined with a “target” entity. For example, one or more individual may attend an event, and the event may take place at a location. In this example, two links are necessary: one between the event and the individual, and another between the location and the event. The location entity may be a “target” entity of a link with respect to the event, and the event entity may be the “target” entity of a link with respect to the individuals. Note that on a fundamental scale, ForeignKeys may specify how the data entities at either end of a particular link are connected in the data structure.

A plurality of Link classes, each derived from the generic link class, are provided in the Python script. It will be appreciated that link classes being “derived from” the generic link may imply an inheritance from the generic class to the derivative class. For example, consider the generic coding below:

Class Link (x, y, z ) : 1 Statement i

Statement a n

Class DerivativeLink ( Link) :

Statement bi

Statement b m

In the above example, a generic link class is defined, then a derivative link class is defined with the generic link class name as its argument. Examples of derivative link classes in context of the present disclosure are now described.

A ContentAboutLink class may be provided as a model for defining a link between a content entity and a suitable target entity. An article or media album, represented by a content entity, may describe, represent or be about ‘something’, where the ‘something’ may be represented by an event entity. A ContentAboutLink entity may indicate, concretely within the database, that the content indeed describes or is otherwise ‘about’ the ‘something’ represented by the target entity. Suitable target entity classes of a ContentAboutLink may include Media, Location, Artefact, Event, Family and Individual class entities.

A MediaDepictsLink may be provided as a model for defining a link between a media entity and a suitable target entity. A media file having a corresponding media entity in the database may abstractly ‘depict’ something that is represented by a target entity, for example an individual. A MediaDepictsLink entity may indicate, concretely within the database, that the media file indeed depicts the ‘something’ represented by the target entity. Suitable target entity classes of a MediaDepictsLink may include Event, Location, Family, Individual and Artefact class entities.

A LocationOfLink may be provided as a model for defining a link between a location entity and a suitable target entity. A real location having a representative location entity in the database may be a place at which ‘something’ happened or was located. In an example where “an individual lived at a house”, the house is represented by a media entity and the individual is represented by an individual entity. A LocationOfLink entity may indicate, concretely within the database, that the real location was indeed a host location for a real ‘something’ represented by the target entity. Suitable target entity classes of a LocationOfLink may include Event, Family, Individual and Artefact class entities. An ArtefactDescribesLink may be provided as a model for defining a link between an artefact entity and a suitable target entity. A real artefact, having a representative artefact entity in the database, may describe or provide evidence of a real ‘something’, the ‘something’ being represented by a corresponding target entity; for example, an individual. An ArtefactDescribesLink entity may be defined to concretely represent, in the data structure, an association between a location entity and a target entity, indicating that the real location was indeed a host location for a real ‘something’ represented by the target entity. Suitable target entity classes of a LocationOfLink may include: Event, Family, Individual and Artefact class entities.

An EventAttendedByLink may be provided as a model for defining a link between an event entity and a suitable target entity. A real event, having a representative event entity in the database, may have been attended by a real attendee. Note that the real attendee may be represented by a corresponding target entity; for example, an individual entity or one or more family entity. An EventAttendedByLink entity may be defined to concretely represent, in the data structure, an association between an event entity and a target entity, indicating that the real event was indeed attended by a real attendee, the attendee represented by the target entity. Suitable target entity classes of a EventAttendedByLink may include: Family and Individual class entities.

Table 1 provides, for each class type described herein, a link type associated with the respective class, and a list of suitable target entity classes for that link type.

Table 1

Figure 13 shows a flow chart that details a technique for handling, rendering and displaying family tree data that is stored according to the above-described structures. The flowchart of Figure 13 begins at a step SI, wherein all individuals in the database organised under a particular tree entity are queried. The data may be serialised to a JavaScript Object Notation (JSON) format. Note that the JSON format is a standard format for representing structured data and is used for transmitting data in web applications.

The flow then processes to a step S3, wherein a reverse query of biological father and biological mother foreign keys is performed to determine the children of each individual under the tree. A list of individual IDs may be created that references the serialised individuals.

At a step S5, many-to-many relationships defined by union entities are queried to determined partners of each individual. As discussed previously, union entities may be defined to establish one or more union of one or more kind between individuals. A union entity may be defined regardless of whether the two individuals in the union had a child together. A second list of IDs that reference the serialised individuals in each union is constructed.

At a step S7, the serialised data is received by the front end. The front end may store the data in a memory component of a browser hosting the front end, such that subsets of the data may be selected, processed, rendered, and displayed.

At a step S9, data in the front end is queried by recursively exploring descendants of a given root individual. That is, given a particular root individual, any offspring of the root individual in any of one or more relationship are identified. The same query may be performed recursively on each identified offspring individual of the root individual, to identify any grandchildren of the root individual. The recursive operation may be performed until all descendants of the root individual, for which a record exists, are identified. The above technique provides a consistent layout of tree. Note that a tree only displaying biological parents is necessarily a binary tree, as only two individuals may be a parent of a single individual. However, the structure above may be an x-ary tree, where x is not constant between individuals and generations. This is because each individual who is descended from the root individual may have any number of children, and may have a different number of children to any other descendent individual. Nevertheless, a known algorithm called the ‘Reingold Tilford’ algorithm provides a solution for consistently arranging individuals on an x-ary tree.

At a step SI 1, a core family tree view is constructed. That is, individuals from older generations are identified, and a full tree is constructed. Starting with a given root individual, referred to herein as R, SI 1 includes identifying a first biological parent of R, either the biological mother or biological father. Using the first parent, the steps of S9 are repeated to identify offspring of the first parent. That is, the method of step S9 may be repeated with the first parent of R as the root individual. Such a step would identify the siblings, nephews, nieces, children etc. of R. The parents of each parent of R, i.e. R’s grandparents, are then identified, and S9 is performed for each of the identified grandparents of R. Note that this iteration of the recursive process of step S9 identifies uncles, aunts and cousins of R, and any further offspring thereof. The grandparents of R may be removed from this tree, so that there are no repeats when an entire tree is constructed. The output of this step may provide two trees, which can be laid out on respective maternal and paternal sides of the central tree. This process may be repeated for a limited set of ancestors on either side to show great grandparents of R, or even higher generations.

The flow shown in Figure 13 then progresses to a step S13. Step S13 includes construction of minimum spanning trees, which display arbitrary subsets of individuals. Given a set of two or more individuals to be shown on a tree, construction of a minimum spanning tree includes calculating a shortest route of familial links between individuals in the set. For example , a set of individuals to be shown in a tree may be selected by a user clicking on , or otherwise engaging with, images of the individuals in a larger tree displayed to a user . A known algorithm: Dijkstra’s algorithm, is used to find this shortest path through the serialised data representing individuals. Necessary intermediate individuals, through which the shortest route passes, are recorded because intermediate individuals are also to be displayed.

Upon calculating a shortest route through a set of individuals, a tree comprising each individual in the set, the necessary intermediate individuals, and the links therebetween is rendered and displayed on a user interface. This is represented by step S15 of Figure 13. Note that in certain embodiments , the intermediate individuals may be shown greyed out or otherwise visually distinguishable from individuals that have been selected by a user to form the subtree . It will be appreciated that the Object-Oriented Programming (OOP) structure described above enables a high level of navigability between pages of a user interface configured to represent data stored in a database. That is, by establishing such links across the database, features such as selectable user interface icons may be easily provided as a means to control and navigate between display of a first page of a user interface and a second page of the user interface, wherein the first and second pages of the user interface display content which is linked in the database.

With respect to the smart-tree and sub-tree functionalities described herein, The OOP structure described herein also enables inheritance of associated content, media, and links therebetween when creating a smart tree. That is, content and other associated entities that are linked to a first tree may automatically be associated with a second tree derived therefrom upon creation of the second tree.

Figures 14a and 14b show two different embodiments of a “family pyramid”. A family pyramid may be configured to display a family tree comprising a data object corresponding to the user, and a data object per family name to which the user has a familial link. Family names may be grouped by generational distance to the user.

Figure 14a shows a first family pyramid 151a. The family pyramid 151a includes a data object representing the user, and a plurality of family data objects 153a, each corresponding to a family name with which the user has a familial relation. The family names associated with the user in the example of Figure 14a are grouped by generational distance from the user. Note that the family pyramid does not display repeats of the same name at each generation unless a separate strand of a same family name appears at a higher generation. For example, a user with the surname “Davies” may have at least one grandfather with the surname “Davies” (Father’s Father, for example). However, note that the name Davies would not be shown on the family pyramid 151a a second time unless an entirely separate branch of the Davies family name were related to the user at a higher generation. Note also each family name represented on the family pyramid 151a of Figure 14a is located either on a left or right side of the pyramid, depending on whether the user’s familial connection to that family name is paternal or maternal.

Each of the family data objects 153a may be a selectable user interface feature configured to, when selected, cause display of a sub-tree on a display of a user device. A sub tree displayed upon selection of a particular family data object 153a may comprise the user, the generationally closest individual with the selected family name, a quantity of necessary intermediate individuals required to show a minimum spanning tree to the closest individual with the selected family name, and all other individuals associated with a main tree, whose surname corresponds to that of the selected family data object 153a. Note that individuals whose surnames correspond to the selected family data object 153a may only be displayed if they are from a same or higher generation than the generationally closest individual with that name. This is because a user may not be interested in seeing a large complex tree comprising distant cousins. Instead, the user may only be interested in seeing their relation to a particular family name through past generations.

Figure 14b shows a second embodiment 151b of a family pyramid. In the second family pyramid 151b, a user data object 155 representing the user is associated to a media file depicting that user. The second family pyramid further comprises a plurality of family data objects 153b, each corresponding to a family name with which the user has a familial relation. As in Figure 14a, each family data object 153b on the second family pyramid 151b of Figure 14b may be a selectable user interface feature configured to, when selected, cause display of a sub-tree on a display of a user device.

In the examples of both Figure 14a and 14b, sub trees displayed upon selection of a particular family data object 153 may inherit media, content, links, tags and other data items that were assigned to individuals in a main tree; e.g., a tree from which the sub tree is derived. That is, any content or media etc. that is associated with or tagged to a particular individual in a main tree is automatically associated with a sub tree upon creation thereof.

As previously described, the position of any particular user within a family determines the displayed structure of a family tree shown to that user. That is, the system ensures that the central focus of a family tree shown to a particular user is that user, and that all information found within is relevant to that user. It will be appreciated that two related users of the system described herein may be presented with different family pyramids, and different sub trees upon selection of family data objects therein. Related users may see some overlap in shared family names, and may also see overlap in people represented on a sub tree for the same family name. However, the user-centric orientation of data objects means that the content and organisation thereof in a particular sub tree may be unique to the user for whom the sub tree is constructed.