Firstly I would recommend reading through [Post deleted] and Let’s talk about pods | Ruben Verborgh if you haven’t already as they cover a lot of ground in what you’re asking.
How should both applications save the data?
Pick a good ontology that accurately describes your domain to write your data in, and for now pick a location of your choice in the Pod to write the data.
How can different applications use the same data without knowing the data structure used in another application?
At the moment you will need to rely on the different applications modelling data in the same way. If there is data modelled slightly differently or in a different ontology that you are aware of and want to re-use then you could use eye-js to perform schema alignment using rules you specify (any reasoner of your choice will work - I’ve singled out eye-js because it runs natively in the browser). We are aiming to improve automation of such alignment in due course.
I need to keep track of dates that can and cannot be used by the birthday application, what would be a good solution for this?
This should be made clear from the way the data is modelled. In particular when we are talking about birthdays, we are usually describing the Birthday of a particular individual - so here we can use the foaf
ontology to write the data as follows
ex:Sam a foaf:Person ;
foaf:name "Sam Smith" ;
foaf:birthday "1985-04-23T00:00:00Z"^^xsd:dateTime . .
So the dates that can be re-used by the birthday application are those dats that are the object of a foaf:birthday
. Your other events can also be described using specific schema.org event types.
The general rule-of-thumb here is be as specific as possible in the way you describe your data (e.g. describe a sporting event as a schema.org SportsEvent
rather than just an Event
).
What about duplicate data in a user’s pod? Should an application only rely on their own data?
Data can and should be re-used. As I discussed in Client to client standard resources and guidelines? - #6 by jeswr - in the short term Type Indexes provide a means to discover data written by other applications. In the long term work related to Let’s talk about pods | Ruben Verborgh will make it much easier to re-use data.
When the user creates a new date of birth in the birthday calendar and stores it in it’s pod and wants to use this date in the calendar application it doesn’t have the same fields. The title became John’s birthday for example with a missing location?
In this instance it is up to your app as to how it wants to display this information. What you describe is sensible - another option would be for your calendar application to prompt you for the missing fields.