schemaorg / suggestions-questions-brainstorming

Suggestions, questions, and brainstorming
19 stars 15 forks source link

We should figure out a productive way to engage with Data Transfer Project (DTP) #121

Open danbri opened 6 years ago

danbri commented 6 years ago

Suggestions for "getting started":

Read the announcements and intro documentation.

Have a look around what's been built so far under models/

Terminology: It seems "data model" in DTP means something like "application/vertical data model" rather than "the relational or JSON or XML or Protobuf data model".

There's a Java codebase, some of it with "per vertical" datamodels indicated via @Json* annotations, for example:

find . -name *.java -exec grep --with-filename @Json {} \;

This gives a feel for what's in there somewhere. A better overview must be possible, but it's a start.

./tasks/TaskModel.java:  @JsonCreator
./tasks/TaskModel.java:      @JsonProperty("taskListId") String taskListId,
./tasks/TaskModel.java:      @JsonProperty("text") String text,
./tasks/TaskModel.java:      @JsonProperty("notes") String notes,
./tasks/TaskModel.java:      @JsonProperty("completedTime") Instant completedTime,
./tasks/TaskModel.java:      @JsonProperty("dueTime") Instant dueTime) {
./tasks/TaskContainerResource.java:@JsonTypeName("TaskContainerResource")
./tasks/TaskContainerResource.java:  @JsonCreator
./tasks/TaskContainerResource.java:      @JsonProperty("lists") Collection<TaskListModel> lists,
./tasks/TaskContainerResource.java:      @JsonProperty("tasks") Collection<TaskModel> tasks) {
./tasks/TaskListModel.java:  @JsonCreator
./tasks/TaskListModel.java:  public TaskListModel(@JsonProperty("id") String id, @JsonProperty("name") String name) {
./calendar/CalendarModel.java:  @JsonCreator
./calendar/CalendarModel.java:      @JsonProperty("id") String id,
./calendar/CalendarModel.java:      @JsonProperty("name") String name,
./calendar/CalendarModel.java:      @JsonProperty("description") String description) {
./calendar/CalendarContainerResource.java:@JsonTypeName("CalendarContainerResource")
./calendar/CalendarContainerResource.java:  @JsonCreator
./calendar/CalendarContainerResource.java:      @JsonProperty("calendars") Collection<CalendarModel> calendars,
./calendar/CalendarContainerResource.java:      @JsonProperty("events") Collection<CalendarEventModel> events) {
./calendar/CalendarEventModel.java:  @JsonCreator
./calendar/CalendarEventModel.java:      @JsonProperty("calendarId") String calendarId,
./calendar/CalendarEventModel.java:      @JsonProperty("title") String title,
./calendar/CalendarEventModel.java:      @JsonProperty("notes") String notes,
./calendar/CalendarEventModel.java:      @JsonProperty("attendees") List<CalendarAttendeeModel> attendees,
./calendar/CalendarEventModel.java:      @JsonProperty("location") String location,
./calendar/CalendarEventModel.java:      @JsonProperty("startTime") CalendarEventTime startTime,
./calendar/CalendarEventModel.java:      @JsonProperty("endTime") CalendarEventTime endTime,
./calendar/CalendarEventModel.java:      @JsonProperty("recurrenceRule") RecurrenceRule recurrenceRule) {
./calendar/CalendarEventModel.java:    @JsonCreator
./calendar/CalendarEventModel.java:        @JsonProperty("dateTime") OffsetDateTime dateTime,
./calendar/CalendarEventModel.java:        @JsonProperty("dateOnly") boolean dateOnly) {
./calendar/CalendarAttendeeModel.java:  @JsonCreator
./calendar/CalendarAttendeeModel.java:      @JsonProperty("displayName") String displayName,
./calendar/CalendarAttendeeModel.java:      @JsonProperty("email") String email,
./calendar/CalendarAttendeeModel.java:      @JsonProperty("optional") boolean optional) {
./mail/MailContainerModel.java:  @JsonCreator
./mail/MailContainerModel.java:  public MailContainerModel(@JsonProperty("id") String id, @JsonProperty("name") String name) {
./mail/MailMessageModel.java:  @JsonCreator
./mail/MailMessageModel.java:      @JsonProperty("rawString") String rawString,
./mail/MailMessageModel.java:      @JsonProperty("containerIds") List<String> containerIds) {
./mail/MailContainerResource.java:@JsonTypeName("MailContainerResource")
./mail/MailContainerResource.java:  @JsonCreator
./mail/MailContainerResource.java:      @JsonProperty("folders") Collection<MailContainerModel> folders,
./mail/MailContainerResource.java:      @JsonProperty("messages") Collection<MailMessageModel> messages) {
./contacts/ContactsModelWrapper.java:  @JsonCreator
./contacts/ContactsModelWrapper.java:  public ContactsModelWrapper(@JsonProperty("vCards") String vCards) {
./photos/PhotoAlbum.java:  @JsonCreator
./photos/PhotoAlbum.java:      @JsonProperty("id") String id,
./photos/PhotoAlbum.java:      @JsonProperty("name") String name,
./photos/PhotoAlbum.java:      @JsonProperty("description") String description) {
./photos/PhotosContainerResource.java:@JsonTypeName("PhotosContainerResource")
./photos/PhotosContainerResource.java:  @JsonCreator
./photos/PhotosContainerResource.java:      @JsonProperty("albums") Collection<PhotoAlbum> albums,
./photos/PhotosContainerResource.java:      @JsonProperty("photos") Collection<PhotoModel> photos) {
./photos/PhotoModel.java:  @JsonCreator
./photos/PhotoModel.java:      @JsonProperty("title") String title,
./photos/PhotoModel.java:      @JsonProperty("fetchableUrl") String fetchableUrl,
./photos/PhotoModel.java:      @JsonProperty("description") String description,
./photos/PhotoModel.java:      @JsonProperty("mediaType") String mediaType,
./photos/PhotoModel.java:      @JsonProperty("dataId") String dataId,
./photos/PhotoModel.java:      @JsonProperty("albumId") String albumId) {
Aaranged commented 6 years ago

@danbri Here is the link for Twitter's announcement of support for DTP.

MichaelAndrews-RM commented 6 years ago

Something not yet mentioned in the Data Transfer Project is the intersection between personal actions and public activities and places that may be marked up in schema.org. For example, I can have my flight info added to my calendar, but can I port that info to another calendar easily? I may want to download details of events I have attended that are on my calendar and keep them. I may also want to keep a list of favorite restaurants, or favorite museums.

As more physical (non-digital) activities become subscription services (like watching movies in theaters), the value of tracking these activities for an individual increases, who may want to monitor their use-value.

There is obvious value in portability of media-focused personal data such as playlists. I think there is also value in events-focused personal data, and schema.org structured data can help bridge this management.

RichardWallis commented 4 years ago

See issue #7 for the context of the move from the main Schema.org issue tracker to this repository.