fredag 12 augusti 2016

Dates from SPARQL

Task how to get date ranges, or century, year and month precision in date.

Example Q337189 WikiTree Arnulfing-2

# Get date forms for Q337189 
PREFIX entity: <http://www.wikidata.org/entity/>
SELECT ?label ?birthDate ?birthYear ?birthMonth ?birthDay ?WikiTreeID WHERE {
hint:Query hint:optimizer 'None' .
  entity:Q337189 rdfs:label ?label filter (lang(?label) = "en")
  entity:Q337189 wdt:P2949 ?WikiTreeID .
  entity:Q337189 wdt:P570 ?birthDate .

  BIND (year(?birthDate) as ?birthYear)
  BIND (month(?birthDate) as ?birthMonth)
  BIND (day(?birthDate) as ?birthDay)
}   


Problem 
  1. Q318912 has 995 in
    1. https://www.wikidata.org/w/api.php?action=wbgetentities&ids=Q318912 ==>

      "mainsnak": {
                                  "snaktype": "value",
                                  "property": "P570",
                                  "datavalue": {
                                      "value": {
                                          "time": "+0995-01-01T00:00:00Z",
                                          "timezone": 0,
                                          "before": 0,
                                          "after": 0,
                                          "precision": 9,
                                          "calendarmodel": "http://www.wikidata.org/entity/Q1985786"
                                      },
                                      "type": "time"
                                  },
                                  "datatype": "time"
                              },
      1. "precision": 9 ==>
  2. Q692927 Property:P570
    1. https://www.wikidata.org/w/api.php?action=wbgetentities&ids=Q692927

      1. 
        "P570": [
                            {
                                "mainsnak": {
                                    "snaktype": "value",
                                    "property": "P570",
                                    "datavalue": {
                                        "value": {
                                            "time": "+1699-01-01T00:00:00Z",
                                            "timezone": 0,
                                            "before": 0,
                                            "after": 0,
                                            "precision": 9,
                                            "calendarmodel": "http://www.wikidata.org/entity/Q1985727"
                                        },
                                        "type": "time"
                                    },
                                    "datatype": "time"
                                },
      2. ===> precision 9 ==> year

  3. Check 

Calendar

Inga kommentarer:

Skicka en kommentar